Prevent JavaScript error on non-Novelist sites
[working/Evergreen.git] / Open-ILS / src / templates / opac / parts / acjs.tt2
1
2 <script type="text/javascript">
3
4     /* Checks to see if a given type of added content has data to show.
5      * The first arg to callback() is boolean indicating the presence of data */
6     function acIsAvailable(ident, type, callback) {
7         var url = '/opac/extras/ac/' + type + '/html/' + ident;
8         dojo.xhr('HEAD', {
9             url : url, 
10             failOk : true, // http://bugs.dojotoolkit.org/ticket/11568
11             error : function(err) { callback(false, ident, type); },
12             load : function(result) { callback(true, ident, type); }
13         });
14     }
15
16     [%-  # XXX revisit when ident=ctx.bre_id
17         ident = ctx.record_attrs.isbn_clean || ctx.record_attrs.upc; 
18         IF ident; 
19             FOR type IN ctx.added_content.keys;
20                 IF ctx.added_content.$type.status == '3' # status unknown %]
21
22                     dojo.addOnLoad(function() {
23                         var ident = '[% ident %]';
24                         var type = '[% type %]';
25
26                         acIsAvailable(ident, type, function(avail, ident, type) { 
27                             if (avail) {
28
29                                 [% IF CGI.param('expand') == 'addedcontent' %]
30
31                                     // if the content is available, un-hide the tab
32                                     dojo.removeClass(dojo.byId('ac:' + type), 'hidden');
33
34                                 [% ELSE %]
35                                     // if no default type is selected on the main tab link
36                                     // set one here, since we have available content
37
38                                     var link = dojo.query('[name=addedcontent]')[0];
39                                     var href = link.getAttribute('href');
40                                     if (!href.match('[\&;]ac=')) {
41                                         href = href.replace('#addedcontent', ';ac=' + type + '#addedcontent');
42                                         dojo.attr(link, 'href', href);
43                                         dojo.attr(dojo.query('[name=addedcontent_lbl]')[0], 'href', href);
44                                     }
45
46                                 [% END %]
47                             }
48                         });
49                     });
50                 [% END; # IF status unknown
51             END  %] 
52
53 [%- IF ENV.OILS_NOVELIST_URL -%]
54             /* Load novelist content */
55             novSelect.loadContentForQuery(
56                 {
57                     ClientIdentifier : '[% ident %]',
58                     ISBN : '[% ident %]',
59                     version : '2.1'
60                 }, 
61                 '[% ENV.OILS_NOVELIST_PROFILE %]',
62                 '[% ENV.OILS_NOVELIST_PASSWORD %]',
63                 function(d){
64                     // note if d.length == 0, there is no content to display
65                     // hide the Loading... text
66                     dojo.byId('novelist-loading').innerHTML = '';
67                 }
68             );
69 [%- END; # Novelist -%]
70
71         [% END; # IF ident
72     %]
73 </script>