]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/templates/opac/parts/ebook_api/base_js.tt2
LP#1822630: further sanitizing of CGI params when embedded in HTML
[Evergreen.git] / Open-ILS / src / templates / opac / parts / ebook_api / base_js.tt2
1 [%
2 # HTML display chunks
3 progress_icon = '<img id="ebook_avail_spinner" src="/opac/images/progressbar_green.gif' _ ctx.cache_key _ '" alt="' _ l("Checking availability for this item...") _ '"/>'
4 %]
5
6 <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/opac/ebook_api/session.js[% ctx.cache_key %]"></script>
7 <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/opac/ebook_api/ebook.js[% ctx.cache_key %]"></script>
8 <script type="text/javascript">
9
10 // translatable strings as JS variables
11 var l_strings = {};
12 l_strings.download = '[% l('Download') %]';
13 l_strings.ready_for_checkout = '[% l('Ready for Checkout') %]';
14 l_strings.suspended = '[% l('Suspended') %]';
15 l_strings.checkout = '[% l('Checkout') %]';
16 l_strings.place_hold = '[% l('Place Hold') %]';
17 l_strings.cancel_hold = '[% l('Cancel Hold') %]';
18
19 // give us cookies!
20 dojo.require("dojo.cookie");
21
22 // context org unit
23 [% IF !ctx.page OR ctx.page != 'rresult';
24     PROCESS get_library;
25 END %]
26 var ou = [% loc_value %];
27
28 // list of enabled vendors
29 var vendor_list = [];
30 [% IF ebook_api.ebook_test.enabled == 'true' %]
31 vendor_list.push('ebook_test');
32 [% END %]
33 [% IF ebook_api.oneclickdigital.enabled == 'true' %]
34 vendor_list.push('oneclickdigital');
35 [% END %]
36 [% IF ebook_api.overdrive.enabled == 'true' %]
37 vendor_list.push('overdrive');
38 [% END %]
39
40 var cookie_registry = [ 'ebook_xact_cache' ];
41 dojo.forEach(vendor_list, function(v) {
42     cookie_registry.push(v);
43 });
44
45 // essential info for performing a transaction
46 var ebook_action = {};
47 [%- IF CGI.param("action").defined %]
48 ebook_action.type = '[% CGI.param("action") | html %]';
49 [%- END -%]
50 [%- IF CGI.param("title").defined %]
51 ebook_action.title_id = '[% CGI.param("title") | html %]';
52 [%- END -%]
53 [%- IF CGI.param("vendor").defined %]
54 ebook_action.vendor = '[% CGI.param("vendor") | html %]';
55 [%- END -%]
56
57 [% IF ctx.user %]
58 // user- or login-specific vars
59 var authtoken = '[% ctx.authtoken %]';
60 var patron_id = '[% ctx.active_card %]'; // using barcode of active card as patron ID
61 [%- IF ctx.user.email %]
62 var patron_email = '[% ctx.user.email | html %]';
63 [%- ELSE %]
64 var patron_email = null;
65 [%- END %]
66
67 var myopac_page;
68 [% IF myopac_page %]
69 myopac_page = "[% myopac_page %]";
70 [% END %]
71
72 [% END %]
73
74 // enforce removal of ebook API cookies on logout
75 dojo.addOnLoad(function() {
76     var logout_handle = dojo.connect(dojo.byId('#logout_link'), 'onclick', function() {
77         dojo.forEach(cookie_registry, function(cookie) {
78             dojo.cookie(cookie, '', {path: '/', expires: '-1h'});
79         });
80         // When we switch to jQuery, use .one()
81         // instead of dojo's .connect() and .disconnect()
82         dojo.disconnect(logout_handle);
83     });
84 });
85 </script>
86
87 [%- IF ctx.user %]
88 <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/opac/ebook_api/relation.js[% ctx.cache_key %]"></script>
89 <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/opac/ebook_api/loggedin.js[% ctx.cache_key %]"></script>
90 [%- END %]
91
92 [%- IF (ctx.page == 'rresult' OR ctx.page == 'record') %]
93 <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/opac/ebook_api/avail.js[% ctx.cache_key %]"></script>
94 [%- END %]
95