Bug 15111 - Koha is vulnerable to Cross-Frame Scripting (XFS) attacks
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / includes / doc-head-close.inc
1 [% USE Koha %]
2 [% USE AudioAlerts %]
3 [% USE String %]
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5
6 [%# Prevent XFS attacks -%]
7 <style id="antiClickjack">body{display:none !important;}</style>
8 <script type="text/javascript">
9    if (self === top) {
10        var antiClickjack = document.getElementById("antiClickjack");
11        antiClickjack.parentNode.removeChild(antiClickjack);
12    } else {
13        top.location = self.location;
14    }
15 </script>
16
17 <link rel="shortcut icon" href="[% IF ( IntranetFavicon ) %][% IntranetFavicon %][% ELSE %][% interface %]/[% theme %]/img/favicon.ico[% END %]" type="image/x-icon" />
18
19 <link rel="stylesheet" type="text/css" href="[% interface %]/lib/jquery/jquery-ui.css" />
20 <link rel="stylesheet" type="text/css" href="[% interface %]/lib/bootstrap/bootstrap.min.css" />
21 <link rel="stylesheet" type="text/css" href="[% interface %]/lib/font-awesome/css/font-awesome.min.css" />
22 <link rel="stylesheet" type="text/css" media="print" href="[% themelang %]/css/print.css" />
23 [% INCLUDE intranetstylesheet.inc %]
24 [% IF ( bidi )            %]<link rel="stylesheet" type="text/css" href="[% themelang %]/css/right-to-left.css" />[% END %]
25
26 <script type="text/javascript" src="[% interface %]/lib/jquery/jquery.js"></script>
27 <script type="text/javascript" src="[% interface %]/lib/jquery/jquery-ui.js"></script>
28 <script type="text/javascript" src="[% interface %]/lib/shortcut/shortcut.js"></script>
29 <script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.cookie.min.js"></script>
30 <script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.highlight-3.js"></script>
31 <script type="text/javascript" src="[% interface %]/lib/bootstrap/bootstrap.min.js"></script>
32 <script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.validate.min.js"></script>
33
34 [% IF ( login ) %]
35     <link rel="stylesheet" type="text/css" href="[% themelang %]/css/login.css" />
36 [% END %]
37 [% IF ( IntranetUserCSS ) %]<style type="text/css">[% IntranetUserCSS %]</style>[% END %]
38
39 <!-- koha core js -->
40 <script type="text/javascript" src="[% themelang %]/js/staff-global.js"></script>
41
42 [% INCLUDE 'validator-strings.inc' %]
43 [% IF ( IntranetUserJS ) %]
44     <script type="text/javascript">
45     //<![CDATA[
46     [% IntranetUserJS %]
47     //]]>
48     </script>
49 [% END %]
50
51 [% IF ( virtualshelves || intranetbookbag ) %]
52 <script type="text/javascript">
53     //<![CDATA[
54         var MSG_BASKET_EMPTY = _("Your cart is currently empty");
55         var MSG_RECORD_IN_BASKET = _("This item is already in your cart");
56         var MSG_RECORD_ADDED = _("This item has been added to your cart");
57         var MSG_NRECORDS_ADDED = _("%s item(s) added to your cart");
58         var MSG_NRECORDS_IN_BASKET = _("%s already in your cart");
59         var MSG_NO_RECORD_SELECTED = _("No item was selected");
60         var MSG_NO_RECORD_ADDED = _("No item was added to your cart (already in your cart)!");
61         var MSG_CONFIRM_DEL_BASKET = _("Are you sure you want to empty your cart?");
62         var MSG_CONFIRM_DEL_RECORDS = _("Are you sure you want to remove the selected items?");
63         var MSG_IN_YOUR_CART = _("Items in your cart: %s");
64         var MSG_NON_RESERVES_SELECTED = _("One or more selected items cannot be reserved.");
65     //]]>
66     </script>
67
68     <script type="text/javascript" src="[% themelang %]/js/basket.js"></script>
69 [% END %]
70
71 [% IF LocalCoverImages %]
72     <script type="text/javascript" src="[% themelang %]/js/localcovers.js"></script>
73     <script type="text/javascript">
74         //<![CDATA[
75             var NO_LOCAL_JACKET = _("No cover image available");
76         //]]>
77     </script>
78 [% END %]
79
80 [% IF Koha.Preference('AudioAlerts') || AudioAlertsPage %]
81     <script type="text/javascript">
82         //<![CDATA[
83             var AUDIO_ALERT_PATH = '[% interface %]/[% theme %]/sound/';
84             var AUDIO_ALERTS = JSON.parse( '[% AudioAlerts.AudioAlerts | replace( "'", "\\'" ) | replace( '"', '\\"' ) %]' );
85         //]]>
86
87         $( document ).ready(function() {
88             if ( AUDIO_ALERTS ) {
89                 for ( var k in AUDIO_ALERTS ) {
90                     var alert = AUDIO_ALERTS[k];
91                     if ( $( alert.selector ).length ) {
92                         playSound( alert.sound );
93                         break;
94                     }
95                 }
96             }
97         });
98     </script>
99 [% END %]