3 [% INCLUDE 'doc-head-open.inc' %]
4 <title>Authority details › Koha</title>
5 [% INCLUDE 'doc-head-close.inc' %]
8 <body id="auth_blinddetail-biblio-search" class="auth">
10 <div class="main container-fluid">
12 <div class="col-md-8 col-md-offset-2">
14 <div id="loading"> <img src="[% interface | html %]/[% theme | html %]/img/spinner-small.gif" alt="" /> Loading </div>
19 [% MACRO jsinclude BLOCK %]
21 $(document).ready(function(){
23 function RancorReplaceField( new_text, ind_1, ind_2 ){
24 var cur_field = opener.opener.jQuery(".CodeMirror")[0].CodeMirror.marceditor.getCurrentField();
25 // The new_text is entity-encoded and we want decoded text
26 new_text = new DOMParser().parseFromString(new_text, 'text/html').body.innerText;
27 cur_field.setText(new_text);
28 [% IF update_ind1 %]cur_field.setIndicator1(ind_1);[% END %]
29 [% IF update_ind2 %]cur_field.setIndicator2(ind_2);[% END %]
36 [%- FOREACH SUBFIELD_LOO IN SUBFIELD_LOOP -%]‡
37 [%- To.json( SUBFIELD_LOO.marc_subfield ) | html -%]
38 [%- FOREACH marc_value IN SUBFIELD_LOO.marc_values -%]
39 [%- To.json( marc_value ) | html -%]
41 [%- END -%]‡9[% authid | html %]";
43 RancorReplaceField( new_line, "[% indicator1 | html %]", "[% indicator2 | html %]" );
45 var index_start = "[% index | html %]";
48 whichfield = opener.opener.document.getElementById(index_start);
49 autolinker_dialog = opener.opener.document.getElementById("autolinker_dialog");
51 whichfield = opener.document.getElementById(index_start);
52 autolinker_dialog = opener.document.getElementById("autolinker_dialog");
54 var field_start = whichfield.parentNode.parentNode.parentNode.parentNode;
56 // Sets the good number of form fields for the specified subfield
57 // Returns false if the cloning failed
58 function SetSubfieldNumber(subfield_name, nb) {
59 // Nothing to do if we only have one value
64 // Find the subfield we want to clone
65 var re = new RegExp('^subfield' + subfield_name,'g');
66 var subfields = $(field_start).children('ul').children('li').filter( function() {
67 return this.id.match(re);
70 // Try to add as many clones as needed
72 for(var i=0; i<nb-subfields.length; i++) {
73 window.opener.opener.CloneSubfield(subfields[0].getAttribute('id'),'[% advancedMARCEditor | html %]');
82 // Fills the subfield with the values entered in argument
83 function SetSubfieldValues() {
85 var subfield_name = arguments[0];
86 var values = new Array();
87 for(var i=1; i<arguments.length; i++) {
88 values.push(arguments[i]);
91 // Create the correct number of form fields for all values
92 // If the field cloning failed, only the first value will be added to the form.
93 SetSubfieldNumber(subfield_name, values.length);
95 // Find the subfields where we will add the new values
96 var re = new RegExp('^subfield' + subfield_name,'g');
97 var subfields = $(field_start).children('ul').children('li').filter( function() {
98 return this.id.match(re);
101 // Add the new values to those subfields, empty the additional fields
103 subfields.each(function() {
106 new_value = values[i];
111 $(this).find('.input_marceditor').val(new_value);
116 function ReOrderSubField(){
118 var subfield_start = $(field_start).children('ul')[0];
119 var first = subfield_start.firstElementChild;
121 [% FOREACH SUBFIELD IN SUBFIELD_LOOP %]
122 // grab all subfields
123 var subfield_name = "[% To.json(tag_number) | $raw %][% To.json(SUBFIELD.marc_subfield) | $raw %]"
124 var re = new RegExp('^subfield' + subfield_name,'g');
125 var subfields = $(subfield_start).children('li').filter( function() {return this.id.match(re); });
126 for (var i=0; i<subfields.length; i++){
127 var subfield = subfields[i];
129 first = subfield_start.insertBefore(subfield, first);
133 first = subfield_start.insertBefore(subfield, first.nextSibling);
139 [% UNLESS ( clear ) %]
141 [% FOREACH SUBFIELD_LOO IN SUBFIELD_LOOP %]
143 "[% To.json(tag_number) | $raw %][% To.json(SUBFIELD_LOO.marc_subfield) | $raw %]"
144 [% FOREACH marc_value IN SUBFIELD_LOO.marc_values %]
145 ,"[% To.json( marc_value ) | $raw %]"
149 var indicators = field_start.getElementsByClassName('indicator flat');
151 indicators[0].value="[% indicator1 | html %]";
154 indicators[1].value="[% indicator2 | html %]";
158 // browse all its subfields (clear and $9)
159 var subfields = field_start.getElementsByTagName('input');
160 var re = /^tag_\d*_code_/;
161 for(var i=0, len = subfields.length ; i< len ; i++) { // browse all subfields
162 if(subfields[i].hasAttribute('name') == 0 ) {continue; } // div elements specific to Select2
163 if(subfields[i].getAttribute('name').match(re)){ // it s a subfield
164 var code = subfields[i]; // code is the first input
165 var subfield = subfields[i+1]; // subfield the second
168 if (subfield){subfield.value="" ;}
171 subfield.value = "[% To.json(authid) | $raw %]";
172 subfield.className = subfield.className.replace("no_matching_authority_field", "matching_authority_field");
179 //Delete create authority button and status
180 var linkinfos = field_start.getElementsByTagName('i');
181 for (index = linkinfos.length - 1; index >= 0; index--) {
182 linkinfos[index].parentNode.removeChild(linkinfos[index]);
184 //Change message autolinker_dialog
185 var subfield_dialog = $(autolinker_dialog).children('ul').children('li');
186 for (index = subfield_dialog.length - 1; index >= 0; index--){
187 var tag_field = field_start.id.split("_")[1];
188 if (subfield_dialog[index].innerHTML.indexOf(tag_field) !== -1 ){
189 subfield_dialog[index].innerHTML = subfield_dialog[index].innerHTML.replace(_("No matching authority found."), _("No matching authority found. A new authority was created or imported"));
201 [% INCLUDE 'intranet-bottom.inc' popup_window = 1 %]