Bug 24193: Add CodeMirror linting of JavaScript, CSS, HTML, and YAML
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / authorities / blinddetail-biblio-search.tt
1 [% USE To %]
2 [% SET footerjs = 1 %]
3 [% INCLUDE 'doc-head-open.inc' %]
4 <title>Koha &rsaquo; Authority details</title>
5 [% INCLUDE 'doc-head-close.inc' %]
6 </head>
7
8 <body id="auth_blinddetail-biblio-search" class="auth">
9
10     <div class="main container-fluid">
11         <div class="row">
12             <div class="col-md-8 col-md-offset-2">
13
14         <div id="loading"> <img src="[% interface | html %]/[% theme | html %]/img/spinner-small.gif" alt="" /> Loading </div>
15
16             </div>
17         </div>
18
19 [% MACRO jsinclude BLOCK %]
20     <script>
21         $(document).ready(function(){
22             [% IF rancor %]
23             function RancorReplaceField( new_text, ind_1, ind_2 ){
24                 var cur_field = opener.opener.jQuery(".CodeMirror")[0].CodeMirror.marceditor.getCurrentField();
25                 cur_field.setText(new_text);
26                 [% IF update_ind1 %]cur_field.setIndicator1(ind_1);[% END %]
27                 [% IF update_ind2 %]cur_field.setIndicator2(ind_2);[% END %]
28                 return true;
29             }
30                 [% IF ( clear ) %]
31                 var new_line = "";
32                 [% ELSE %]
33                 var new_line = "
34                 [%- FOREACH SUBFIELD_LOO IN SUBFIELD_LOOP -%]‡
35                     [%- To.json( SUBFIELD_LOO.marc_subfield ) | $raw -%]
36                     [%- FOREACH marc_value IN SUBFIELD_LOO.marc_values -%]
37                         [%- To.json( marc_value ) | $raw -%]
38                     [%- END -%]
39                 [%- END -%]‡9[% authid | html %]";
40                 [% END %]
41                 RancorReplaceField( new_line, "[% indicator1 | html %]", "[% indicator2 | html %]" );
42             [% ELSE %]
43             var index_start = "[% index | html %]";
44             var whichfield;
45             try {
46                 whichfield = opener.opener.document.getElementById(index_start);
47             } catch(e) {
48                 return;
49             }
50             var field_start = whichfield.parentNode.parentNode.parentNode;
51
52             // Sets the good number of form fields for the specified subfield
53             // Returns false if the cloning failed
54             function SetSubfieldNumber(subfield_name, nb) {
55                 // Nothing to do if we only have one value
56                 if(nb <= 1) {
57                     return true;
58                 }
59
60                 // Find the subfield we want to clone
61                 var re = new RegExp('^subfield' + subfield_name,'g');
62                 var subfields = $(field_start).children('ul').children('li').filter( function() {
63                     return this.id.match(re);
64                 });
65
66                 // Try to add as many clones as needed
67                 try {
68                     for(var i=0; i<nb-subfields.length; i++) {
69                         window.opener.opener.CloneSubfield(subfields[0].getAttribute('id'),'[% advancedMARCEditor | html %]');
70                     }
71                 }
72                 catch(err) {
73                     return false;
74                 }
75                 return true;
76             }
77
78             // Fills the subfield with the values entered in argument
79             function SetSubfieldValues() {
80                 // Get the arguments
81                 var subfield_name = arguments[0];
82                 var values = new Array();
83                 for(var i=1; i<arguments.length; i++) {
84                     values.push(arguments[i]);
85                 }
86
87                 // Create the correct number of form fields for all values
88                 // If the field cloning failed, only the first value will be added to the form.
89                 SetSubfieldNumber(subfield_name, values.length);
90
91                 // Find the subfields where we will add the new values
92                 var re = new RegExp('^subfield' + subfield_name,'g');
93                 var subfields = $(field_start).children('ul').children('li').filter( function() {
94                     return this.id.match(re);
95                 });
96
97                 // Add the new values to those subfields, empty the additional fields
98                 var i=0;
99                 subfields.each(function() {
100                     if(i in values) {
101                         this.getElementsByTagName('input')[1].value = values[i];
102                     }
103                     else {
104                         this.getElementsByTagName('input')[1].value = "";
105                     }
106                     i++;
107                 });
108             }
109             [% UNLESS ( clear ) %]
110                 [% FOREACH SUBFIELD_LOO IN SUBFIELD_LOOP %]
111                     SetSubfieldValues(
112                         "[% To.json(tag_number) | $raw %][% To.json(SUBFIELD_LOO.marc_subfield) | $raw %]"
113                     [% FOREACH marc_value IN SUBFIELD_LOO.marc_values %]
114                         ,"[% To.json( marc_value ) | $raw %]"
115                     [% END %]
116                     );
117                 [% END %]
118                 var indicators = field_start.getElementsByClassName('indicator flat');
119                 [% IF update_ind1 %]
120                     indicators[0].value="[% indicator1 | html %]";
121                 [% END %]
122                 [% IF update_ind2 %]
123                     indicators[1].value="[% indicator2 | html %]";
124                 [% END %]
125             [% END %]
126
127             // browse all its subfields (clear and $9)
128             var subfields = field_start.getElementsByTagName('input');
129             var re = /^tag_\d*_code_/;
130             for(var i=0, len = subfields.length ; i< len ; i++) { // browse all subfields
131                 if(subfields[i].hasAttribute('name') == 0 ) {continue; }  // div elements specific to Select2
132                 if(subfields[i].getAttribute('name').match(re)){ // it s a subfield
133                     var code     = subfields[i];   // code is the first input
134                     var subfield = subfields[i+1]; // subfield the second
135
136                 [% IF ( clear ) %]
137                     if (subfield){subfield.value="" ;}
138                 [% ELSE %]
139                     if(code.value=='9'){
140                         subfield.value = "[% To.json(authid) | $raw %]";
141                         break;
142                     }
143                 [% END %]
144                 }
145             }
146             [% END %]
147
148             opener.close();
149             window.close();
150             return false;
151         });
152     </script>
153 [% END %]
154
155 [% INCLUDE 'intranet-bottom.inc' popup_window = 1 %]