Bug 21978: Add support for middle name
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / includes / js_includes.inc
1 [% USE raw %]
2 [% USE Asset %]
3 [% USE AudioAlerts %]
4 [% USE Branches %]
5 [% USE To %]
6 [% USE Koha %]
7 [%# Prevent XFS attacks -%]
8 [% UNLESS popup %]
9     <script>
10        if (self === top) {
11            var antiClickjack = document.getElementById("antiClickjack");
12            antiClickjack.parentNode.removeChild(antiClickjack);
13        } else {
14            top.location = self.location;
15        }
16     </script>
17 [% END %]
18
19 [% Asset.js("lib/jquery/jquery-3.6.0.min.js") | $raw %]
20 [% Asset.js("lib/jquery/jquery-migrate-3.3.2.min.js") | $raw %]
21 [% Asset.js("lib/jquery/jquery-ui-1.13.1.min.js") | $raw %]
22 [% Asset.js("lib/shortcut/shortcut.js") | $raw %]
23 [% Asset.js("lib/js-cookie/js.cookie-2.2.1.min.js") | $raw %]
24 [% Asset.js("lib/jquery/plugins/jquery.highlight-3.js") | $raw %]
25 [% Asset.js("lib/bootstrap/bootstrap.min.js") | $raw %]
26 [% Asset.js("lib/jquery/plugins/jquery.validate.min.js") | $raw %]
27 <!-- koha core js -->
28 [% Asset.js("js/staff-global.js") | $raw %]
29
30 [% INCLUDE 'validator-strings.inc' %]
31 [% IF ( IntranetUserJS ) %]
32     <!-- js_includes.inc: IntranetUserJS -->
33     <script>
34     [% IntranetUserJS | $raw %]
35     </script>
36     <!-- / js_includes.inc: IntranetUserJS -->
37 [% END %]
38
39 <!-- js_includes.inc -->
40 [% IF ( Koha.Preference('virtualshelves') || Koha.Preference('intranetbookbag') ) %]
41     [% Asset.js("js/basket.js") | $raw %]
42 [% END %]
43
44 [% IF LocalCoverImages %]
45     [% Asset.js("js/localcovers.js") | $raw %]
46 [% END %]
47
48 [% IF Koha.Preference('AudioAlerts') || AudioAlertsPage %]
49     <script>
50         // AudioAlerts
51         var AUDIO_ALERT_PATH = '[% interface | html %]/[% theme | html %]/sound/';
52         var AUDIO_ALERTS = JSON.parse( "[% To.json(AudioAlerts.AudioAlerts) | $raw %]" );
53
54         $( document ).ready(function() {
55             if ( AUDIO_ALERTS ) {
56                 for ( var k in AUDIO_ALERTS ) {
57                     var alert = AUDIO_ALERTS[k];
58                     if ( $( alert.selector ).length ) {
59                         playSound( alert.sound );
60                         break;
61                     }
62                 }
63             }
64         });
65     </script>
66 [% END %]
67
68 [% IF ( CAN_user_circulate_circulate_remaining_permissions ) %]
69     [% IF ( PatronAutoComplete ) %]
70         <script>
71             // PatronAutoComplete && CAN_user_circulate_circulate_remaining_permissions
72             var loggedInLibrary = '[% Branches.GetLoggedInBranchcode | html %]';
73             var loggedInClass = "";
74             $(document).ready(function(){
75                 var obj = $( "#findborrower" ).autocomplete({
76                     source: "/cgi-bin/koha/circ/ysearch.pl",
77                     minLength: 3,
78                     select: function( event, ui ) {
79                         window.location.href = ui.item.link;
80                     }
81                 }).data( "ui-autocomplete" );
82                 if( obj ) {
83                     obj._renderItem = function( ul, item ) {
84                         item.link = "/cgi-bin/koha/circ/circulation.pl?borrowernumber=" + item.borrowernumber;
85                         var cardnumber = "";
86                         if( item.cardnumber != "" ){
87                             // Display card number in parentheses if it exists
88                             cardnumber = " (" + item.cardnumber + ") ";
89                         }
90                         var itemString = "<a href=\"" + item.link + "\">" + ( item.surname ? item.surname.escapeHtml() : "" ) + ", "
91                             + ( item.firstname ? item.firstname.escapeHtml() : "" )
92                             + ( item.middle_name ? " " + item.middle_name.escapeHtml() : "" )
93                             + cardnumber.escapeHtml()
94                             + " <small>";
95
96                         if( item.branchcode == loggedInLibrary ){
97                             loggedInClass = "ac-currentlibrary";
98                         } else {
99                             loggedInClass = "";
100                         }
101
102                         if( item.dateofbirth ) {
103                             itemString += ( item.dateofbirth ? item.dateofbirth.escapeHtml() : "" )
104                                         + "<span class=\"age_years\"> (" + ( item.age ? item.age.escapeHtml() : "" ) + " " +  _("years") + ")</span>, ";
105                         }
106                         itemString += ( item.address ? item.address.escapeHtml() : "" ) + " "
107                                     + ( item.city    ? item.city.escapeHtml()    : "" ) + " "
108                                     + ( item.zipcode ? item.zipcode.escapeHtml() : "" ) + " "
109                                     + ( item.country ? item.country.escapeHtml() : "" )
110                                     + "</small></a>";
111                         [% UNLESS ( singleBranchMode ) %]
112                             itemString += " <span class=\"ac-library\">" + item.branchname + "</span> " + "</a>";
113                         [% END %]
114                         return $( "<li></li>" )
115                         .addClass( loggedInClass )
116                         .data( "ui-autocomplete-item", item )
117                         .append( itemString )
118                         .appendTo( ul );
119                     };
120                 }
121             });
122         </script>
123     [% END %]
124 [% END %]
125 [% IF ( PatronAutoComplete ) %]
126     <script>
127     // PatronAutoComplete
128     var loggedInLibrary = '[% Branches.GetLoggedInBranchcode | html %]';
129     var loggedInClass = "";
130     $(document).ready(function(){
131         var obj = $( "#searchmember" ).autocomplete({
132             source: "/cgi-bin/koha/circ/ysearch.pl",
133             minLength: 3,
134             select: function( event, ui ) {
135                 window.location.href = ui.item.link;
136             }
137         }).data( "ui-autocomplete" );
138         if( obj ) {
139             obj._renderItem = function( ul, item ) {
140                 item.link = "/cgi-bin/koha/members/moremember.pl?borrowernumber=" + item.borrowernumber;
141                 var cardnumber = "";
142                 if( item.cardnumber != "" ){
143                     // Display card number in parentheses if it exists
144                     cardnumber = " (" + item.cardnumber + ") ";
145                 }
146                 if( item.branchcode == loggedInLibrary ){
147                     loggedInClass = "ac-currentlibrary";
148                 } else {
149                     loggedInClass = "";
150                 }
151                 return $( "<li></li>" )
152                 .addClass( loggedInClass )
153                 .data( "ui-autocomplete-item", item )
154                 .append(
155                     "<a href=\"" + item.link + "\">" + ( item.surname ? item.surname.escapeHtml() : "" ) + ", "
156                         + ( item.firstname ? item.firstname.escapeHtml() : "" )
157                         + ( item.middle_name ? " " + item.middle_name.escapeHtml() : "" )
158                         + cardnumber.escapeHtml()
159                         + " <small>"
160                             + ( item.dateofbirth ? item.dateofbirth.escapeHtml() : "" ) + " "
161                             + ( item.address     ? item.address.escapeHtml() : "" )     + " "
162                             + ( item.city        ? item.city.escapeHtml() : "" )        + " "
163                             + ( item.zipcode     ? item.zipcode.escapeHtml() : "" )     + " "
164                             + ( item.country     ? item.country.escapeHtml() : "" ) + " "
165                             [% UNLESS ( singleBranchMode ) %]
166                                 + "<span class=\"ac-library\">"
167                                 + ( item.branchname  ? item.branchname.escapeHtml() : "" )
168                                 + "</span>"
169                             [% END %]
170                         + "</small>"
171                     + "</a>" )
172                 .appendTo( ul );
173             };
174         }
175     });
176     </script>
177 [% END %]
178 <!-- / js_includes.inc -->