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