90d2c128d9fced44d5e31946906448cc831301f8
[sitka/overdrive-evergreen-opac.git] / src / od_config_template.coffee
1 # This file represents a template to write a configuration module for the
2 # system.
3
4 define [
5         'moment'
6 ], (M) ->
7
8         # Default configuration of date formats for Moment object;
9         # see http://devdocs.io/moment/index#customization-long-date-formats
10         M.lang 'en', longDateFormat:
11         LT: "h:mm A"
12         L:            "MM/DD/YYYY"
13         LL:         "MMMM Do YYYY"
14         LLL:        "MMMM Do YYYY LT"
15         LLLL: "dddd, MMMM Do YYYY LT"
16
17         # Mapping between long name of home library and Overdrive authorization name
18         longname =
19                 'long name one': 'name1'
20                 'long name two': 'name2'
21
22         return {
23
24                 # Define the credentials to use to get client authentication to the
25                 # API.  The text string is a combination of the client key and client
26                 # secret combined in the method described in
27                 # https://developer.overdrive.com/apis/client-auth, which can be
28                 # expressed by the following function:
29                 #
30                 # OAuthFormat = (key, secret) -> CryptoJS.enc.Base64.stringify CryptoJS.enc.Utf8.parse "#{key}:#{secret}"
31                 #
32                 credentials: '' # Base64 encoded text string
33
34                 # Define the credentials to use to get patron authentication, as described in
35                 # https://developer.overdrive.com/apis/patron-auth
36                 accountID: 4321
37                 websiteID:  321
38
39                 # Define the mapping function between long name and authorization name
40                 authorizationname: (id) -> longname[id]
41
42                 # Define whether a user password is required to complete patron authentication
43                 password_required: 'false' # or 'true'
44
45                 # Base URL/FQDN(s) for hyperlinks to OverDrive products
46                 productbaseURLs: [ 'elm.lib.overdrive.com' ]
47
48                 # Define a blacklist based on hostname component, eg, abc.domain1 or xyz.domain2
49                 blacklisted: ( hn = window.location.hostname, bl = ['abc', 'xyz'] ) ->
50                         return unless hn = hn.match(/^(.+?)\./)?[1] # no proper hostname found
51                         return unless bl?.length > 0 # no blacklist or is empty
52                         return true for v in bl when v is hn # hostname is listed in blacklist
53                         return # not listed in blacklist
54         }