Bug 7882: (follow-up) Update sorting interaction
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / cataloguing / addbiblio.tt
1 [% USE raw %]
2 [% USE Asset %]
3 [% USE Koha %]
4 [% INCLUDE 'doc-head-open.inc' %]
5 <title>Koha &rsaquo; Cataloging &rsaquo; [% IF ( biblionumber ) %]Editing [% title | html %] (Record number [% biblionumber | html %])[% ELSE %]Add MARC record[% END %]</title>
6 [% INCLUDE 'doc-head-close.inc' %]
7 [% Asset.js("lib/hc-sticky.js") | $raw %]
8 [% Asset.js("js/cataloging.js") | $raw %]
9 [% INCLUDE 'browser-strings.inc' %]
10 [% Asset.js("js/browser.js") | $raw %]
11 <script>
12     var browser = KOHA.browser('[% searchid | html %]', parseInt('[% biblionumber | html %]', 10));
13     browser.show();
14
15     $(window).load(function(){
16         $("#loading").hide();
17     });
18     var Sticky;
19     $(document).ready(function() {
20
21         [% IF bib_doesnt_exist %]
22             $("#addbibliotabs").hide();
23             $("#toolbar").hide();
24         [% END %]
25
26         var $tabs = $('#addbibliotabs').tabs().bind('show.ui-tabs', function(e, ui) {
27             $("#"+ui.panel.id+" input:eq(0)").focus();
28         });
29         $( "ul.sortable_field", $tabs ).sortable({
30             axis: "y",
31             containment: $("#addbibliotabs")
32         });
33         $( "ul.sortable_subfield", $tabs ).sortable({
34             axis: "y",
35             containment: "parent"
36         });
37
38         [% IF tab %]
39             link = $("a[href='#[% tab | html %]']");
40             selectTab( link );
41         [% END %]
42
43         Sticky = $("#toolbar");
44         Sticky.hcSticky({
45             stickTo: "#f",
46             stickyClass: "floating"
47         });
48
49         /* check cookie to hide/show marcdocs*/
50         if($.cookie("marcdocs_[% borrowernumber | html %]") == 'hide'){
51             toggleMARCdocLinks(false);
52         } else {
53             toggleMARCdocLinks(true);
54         }
55
56         $("#marcDocsSelect").click(function(){
57             if($.cookie("marcdocs_[% borrowernumber | html %]") == 'hide'){
58                 toggleMARCdocLinks(true);
59             } else {
60                 toggleMARCdocLinks(false);
61             }
62         });
63
64         /* check cookie to hide/show marc tags*/
65         var marctags_cookie = $.cookie("marctags_[% borrowernumber | html %]");
66         if( marctags_cookie == 'hide'){
67             toggleMARCTagLinks(false);
68         } else if( marctags_cookie == 'show'){
69             toggleMARCTagLinks(true)
70         } else {
71             [% UNLESS Koha.Preference("hide_marc") %]
72                 toggleMARCTagLinks(true)
73             [% ELSE %]
74                 toggleMARCTagLinks(false);
75             [% END %]
76         }
77
78         $("#marcTagsSelect").click(function(){
79             if( $.cookie("marctags_[% borrowernumber | html %]") == 'hide'){
80                 toggleMARCTagLinks(true)
81             } else {
82                 toggleMARCTagLinks(false);
83             }
84         });
85
86         [%# Only ask for a confirmation if it is an edit %]
87         $("#z3950search").click(function(){
88             [% IF biblionumber %]
89                 if (confirm(_("Please note that this external search could replace the current record."))){
90                     PopupZ3950();
91                 }
92             [% ELSE %]
93                 PopupZ3950();
94             [% END %]
95         });
96
97         $("#saverecord").click(function(){
98             $(".btn-group").removeClass("open");
99             onOption();
100             return false;
101         });
102
103         $("#saveandview").click(function(){
104             $(".btn-group").removeClass("open");
105             redirect("view");
106             return false;
107         });
108
109         $("#saveanditems").click(function(){
110             $(".btn-group").removeClass("open");
111             redirect("items");
112             return false;
113         });
114         $("#saveandcontinue").click(function(){
115             $(".btn-group").removeClass("open");
116             var tab = $("#addbibliotabs li.ui-tabs-active:first a").attr('href');
117             tab = tab.replace('#', '');
118             $("#current_tab").val(tab);
119             redirect("just_save", tab);
120             return false;
121         });
122
123         $( '#switcheditor' ).click( function() {
124             var breedingid = [% breedingid || "null" | html %];
125
126             if ( !confirm( breedingid ? _("This record cannot be transferred to the advanced editor. Continue?") : _("Any changes will not be saved. Continue?") ) ) return false;
127
128             $.cookie( 'catalogue_editor_[% logged_in_user.borrowernumber | html %]', 'advanced', { expires: 365, path: '/' } );
129
130             var biblionumber = [% biblionumber || "null" | html %];
131
132             if ( biblionumber ) {
133                 window.location = '/cgi-bin/koha/cataloguing/editor.pl#catalog/' + biblionumber;
134             } else {
135                 window.location = '/cgi-bin/koha/cataloguing/editor.pl';
136             }
137
138             return false;
139         } );
140         $(".change-framework").on("click", function(){
141             var frameworkcode = $(this).data("frameworkcode");
142             $("#frameworkcode").val( frameworkcode );
143             Changefwk();
144         });
145
146         $(".toolbar-tabs a").on("click",function(e){
147             e.preventDefault();
148             selectTab( $(this ) );
149         });
150
151         $(".tag_anchor").on("click", function(e){
152             e.preventDefault();
153             var toolbar_height = $("#toolbar").outerHeight();
154             $(".tag_anchor").removeClass("selected");
155             $(this).addClass("selected");
156             var link = this.href;
157             var linkid = link.substring( link.indexOf("#") + 1 );
158             var dest = $("#" + linkid );
159             var yoffset = dest.offset();
160             window.scrollTo( 0, yoffset.top - toolbar_height - 20 );
161         });
162
163     });
164
165     function selectTab( tablink ){
166         $(".toolbar-tabs li").removeClass("selected");
167         tablink.parent().addClass("selected");
168         var tabid = tablink.data("tabid");
169         $('#addbibliotabs').selectTabByID("#tab" + tabid + "XX");
170         $(".tag_anchors").removeClass("tab_selected").hide();
171         $(".tag_anchors_" + tabid ).addClass("tab_selected").show();
172     }
173
174     function redirect(dest){
175         $("#redirect").attr("value",dest);
176         return Check();
177     }
178
179     [% IF ( CAN_user_editcatalogue_edit_items ) %]
180         var onOption = function () {
181             return Check();
182         }
183     [% END %]
184
185     function confirmnotdup(redirect){
186         $("#confirm_not_duplicate").attr("value","1");
187         $("#redirect").attr("value",redirect);
188         Check();
189     }
190
191     function Dopop(link,i) {
192         defaultvalue = document.getElementById(i).value;
193         window.open(link+"&result="+defaultvalue,"valuebuilder",'width=700,height=550,toolbar=false,scrollbars=yes');
194     }
195
196     /**
197      * this function open a popup to search on z3950 server.
198      */
199     function PopupZ3950() {
200         var strQuery = GetZ3950Terms();
201         if(strQuery){
202             window.open("/cgi-bin/koha/cataloguing/z3950_search.pl?biblionumber=[% biblionumber | html %]"+strQuery,"z3950search",'width=740,height=450,location=yes,toolbar=no,scrollbars=yes,resize=yes');
203         }
204     }
205
206     function PopupMARCFieldDoc(field) {
207         [% IF Koha.Preference('marcfielddocurl') %]
208             var docurl = "[% Koha.Preference('marcfielddocurl').replace('"','&quot;') | html %]";
209             docurl = docurl.replace("{MARC}", "[% marcflavour | html %]");
210             docurl = docurl.replace("{FIELD}", ""+field);
211             docurl = docurl.replace("{LANG}", "[% lang | html %]");
212             window.open(docurl);
213         [% ELSIF ( marcflavour == 'MARC21' ) %]
214             _MARC21FieldDoc(field);
215         [% ELSIF ( marcflavour == 'UNIMARC' ) %]
216             _UNIMARCFieldDoc(field);
217         [% END %]
218     }
219
220     function _MARC21FieldDoc(field) {
221         if(field == 0) {
222             window.open("http://www.loc.gov/marc/bibliographic/bdleader.html");
223         } else if (field < 900) {
224             window.open("http://www.loc.gov/marc/bibliographic/bd" + ("000"+field).slice(-3) + ".html");
225         } else {
226             window.open("http://www.loc.gov/marc/bibliographic/bd9xx.html");
227         }
228     }
229
230     function _UNIMARCFieldDoc(field) {
231         /* http://archive.ifla.org/VI/3/p1996-1/ is an outdated version of UNIMARC, but
232            seems to be the only version available that can be linked to per tag.  More recent
233            versions of the UNIMARC standard are available on the IFLA website only as
234            PDFs!
235         */
236         var url;
237         if (field == 0) {
238             url = "http://archive.ifla.org/VI/3/p1996-1/uni.htm";
239         } else {
240             var first = field.substring(0,1);
241             url = "http://archive.ifla.org/VI/3/p1996-1/uni" + first + ".htm#";
242             if (first == 0) url = url + "b";
243             url = first == 9
244                   ? "http://archive.ifla.org/VI/3/p1996-1/uni9.htm"
245                   : url + field;
246         }
247         window.open(url);
248     }
249
250     /*
251      * Functions to hide/show marc docs and tags links
252      */
253
254     function toggleMARCdocLinks(flag){
255         if( flag === true ){
256             $(".marcdocs").show();
257             $.cookie("marcdocs_[% borrowernumber | html %]",'show', { path: "/", expires: 365 });
258             $("#marcDocsSelect i").addClass('fa-check-square-o').removeClass('fa-square-o');
259         } else {
260             $(".marcdocs").hide();
261             $.cookie("marcdocs_[% borrowernumber | html %]",'hide', { path: "/", expires: 365 });
262             $("#marcDocsSelect i").removeClass('fa-check-square-o').addClass('fa-square-o');
263         }
264     }
265
266     function toggleMARCTagLinks(flag){
267         if( flag === true ){
268             $(".tagnum").show();
269             $(".subfieldcode").show();
270             $.cookie("marctags_[% borrowernumber | html %]",'show', { path: "/", expires: 365 });
271             $("#marcTagsSelect i").addClass('fa-check-square-o').removeClass('fa-square-o');
272         } else {
273             $(".tagnum").hide();
274             $(".subfieldcode").hide();
275             $.cookie("marctags_[% borrowernumber | html %]",'hide', { path: "/", expires: 365 });
276             $("#marcTagsSelect i").removeClass('fa-check-square-o').addClass('fa-square-o');
277         }
278     }
279
280     /**
281      * check if mandatory subfields are written
282      */
283     function AreMandatoriesNotOk(){
284         var mandatories = new Array();
285         var mandatoriesfields = new Array();
286         var tab = new Array();
287         var label = new Array();
288         var flag=0;
289         var tabflag= new Array();
290         [% FOREACH BIG_LOO IN BIG_LOOP %]
291             [% FOREACH innerloo IN BIG_LOO.innerloop %]
292                 [% IF ( innerloo.mandatory ) %]
293                     mandatoriesfields.push(new Array("[% innerloo.tag | html %]","[% innerloo.index | html %][% innerloo.random | html %]","[% innerloo.index | html %]"));
294                 [% END %]
295                 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
296                     [% IF ( subfield_loo.mandatory ) %]mandatories.push("[% subfield_loo.id | html %]");
297                         tab.push("[% BIG_LOO.number | html %]");
298                         label.push("[% subfield_loo.marc_lib | $raw %]");
299                     [% END %]
300                 [% END %]
301             [% END %]
302         [% END %]
303         var StrAlert = _("Can't save this record because the following field aren't filled:");
304         StrAlert += "\n\n";
305         for(var i=0,len=mandatories.length; i<len ; i++){
306             var tag=mandatories[i].substr(4,3);
307             var subfield=mandatories[i].substr(17,1);
308             var tagnumber=mandatories[i].substr(19,mandatories[i].lastIndexOf("_")-19);
309             if (tabflag[tag+subfield+tagnumber] ==  null) {
310             tabflag[tag+subfield+tagnumber]=new Array();
311                 tabflag[tag+subfield+tagnumber][0]=0;
312         }
313             if( tabflag[tag+subfield+tagnumber][0] != 1 && (document.getElementById(mandatories[i]) != null && ! document.getElementById(mandatories[i]).value || document.getElementById(mandatories[i]) == null)){
314                 tabflag[tag+subfield+tagnumber][0] = 0 + tabflag[tag+subfield+tagnumber] ;
315                 document.getElementById(mandatories[i]).setAttribute('class','input_marceditor noEnterSubmit subfield_not_filled');
316                 $('#' + mandatories[i]).focus();
317                 tabflag[tag+subfield+tagnumber][1]=label[i];
318                 tabflag[tag+subfield+tagnumber][2]=tab[i];
319             } else {
320                 tabflag[tag+subfield+tagnumber][0] = 1;
321             }
322         }
323         for (var tagsubfieldid in tabflag){
324             if (tabflag[tagsubfieldid][0]==0){
325                 var tag=tagsubfieldid.substr(0,3);
326                 var subfield=tagsubfieldid.substr(3,1);
327                 StrAlert += "\t* "+_("tag %s subfield %s %s in tab %s").format(tag, subfield, tabflag[tagsubfieldid][1], tabflag[tagsubfieldid][2]) + "\n";
328                 //StrAlert += "\t* "+label[i]+_(" in tab ")+tab[i]+"\n";
329                 flag=1;
330             }
331         }
332
333         /* Check for mandatories field(not subfields) */
334         for(var i=0,len=mandatoriesfields.length; i<len; i++){
335             isempty  = true;
336             arr      = mandatoriesfields[i];
337             divid    = "tag_" + arr[0] + "_" + arr[1];
338             varegexp = new RegExp("^tag_" + arr[0] + "_code_");
339
340             if(parseInt(arr[0]) >= 10){
341                 elem = document.getElementById(divid);
342                 eleminputs = elem.getElementsByTagName('input');
343
344                 for(var j=0,len2=eleminputs.length; j<len2; j++){
345
346                     if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){
347                         inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]);
348
349                         for( var k=0; k<len2; k++){
350                             if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){
351                                 isempty = false
352                             }
353                         }
354
355                         elemselect = elem.getElementsByTagName('select');
356                         for( var k=0; k<elemselect.length; k++){
357                             if(elemselect[k].id.match(inputregexp) && elemselect[k].value){
358                                 isempty = false
359                             }
360                         }
361                     }
362                 }
363
364                 elemtextareas = elem.getElementsByTagName('textarea');
365                 for(var j=0,len2=elemtextareas.length; j<len2; j++){
366                     // this bit assumes that the only textareas in this context would be for subfields
367                     if (elemtextareas[j].value) {
368                         isempty = false;
369                     }
370                 }
371             } else {
372                 isempty = false;
373             }
374
375             if(isempty){
376                 flag = 1;
377                     StrAlert += "\t* " + _("Field %s is mandatory, at least one of its subfields must be filled.").format(arr[0]) + "\n";
378             }
379
380         }
381
382         if(flag){
383             return StrAlert;
384         } else {
385             return flag;
386         }
387     }
388
389     /**
390      *
391      *
392      */
393     function Check(){
394         var StrAlert = AreMandatoriesNotOk();
395         if( ! StrAlert ){
396             document.f.submit();
397             return true;
398         } else {
399             alert(StrAlert);
400             return false;
401         }
402     }
403
404     /**
405      * check if z3950 mandatories are set or not
406      */
407     function GetZ3950Terms(){
408         var frameworkcode = document.getElementById("frameworkcode").value;
409         var strQuery = "&frameworkcode=" + frameworkcode;
410         var mandatories = new Array();
411         var mandatories_label = new Array();
412         [% FOREACH BIG_LOO IN BIG_LOOP %]
413             [% FOREACH innerloo IN BIG_LOO.innerloop %]
414                 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
415                     [% IF ( subfield_loo.z3950_mandatory ) %]
416                         mandatories.push("[% subfield_loo.id | html %]");
417                         mandatories_label.push("[% subfield_loo.z3950_mandatory | html %]");
418                     [% END %]
419                 [% END %]
420             [% END %]
421         [% END %]
422
423         for(var i=0,len=mandatories.length; i<len ; i++){
424             var field_value = document.getElementById(mandatories[i]).value;
425             if( field_value ){
426                 strQuery += "&"+mandatories_label[i]+"="+field_value;
427             }
428         }
429         return strQuery;
430     }
431
432     function Changefwk() {
433         var f = document.f;
434         f.op.value = "[% op | html %]";
435         f.biblionumber.value = "[% biblionumberdata | html %]";
436         f.changed_framework.value = "changed";
437         f.submit();
438     }
439
440 </script>
441 [% Asset.css("css/addbiblio.css") | $raw %]
442
443 [% INCLUDE 'select2.inc' %]
444 <script>
445   $(document).ready(function() {
446     $('.subfield_line select').select2();
447   });
448 </script>
449
450 </head>
451 <body id="cat_addbiblio" class="cat">
452
453    <div id="loading">
454        <div>Loading, please wait...</div>
455    </div>
456
457     [% INCLUDE 'header.inc' %]
458
459     <div id="breadcrumbs">
460         <a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo;
461         <a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a>  &rsaquo;
462         [% IF ( biblionumber ) %]
463             Editing <em>[% title | html %]</em> (Record number [% biblionumber | html %])
464         [% ELSE %]
465             Add MARC record
466         [% END %]
467     </div>
468
469     <div class="main container-fluid">
470         <div class="row">
471             <div class="col-md-10 col-md-offset-1">
472
473                 <h1>
474                     [% IF ( biblionumber ) %]
475                         Editing <em>[% title | html %]</em> (Record number [% biblionumber | html %])
476                     [% ELSE %]
477                         Add MARC record [% IF (circborrowernumber) %]<em>(fast cataloging)</em>[% END %]
478                     [% END %]
479                 </h1>
480
481                 [% UNLESS ( number ) %]
482                     <!-- show duplicate warning on tab 0 only -->
483                     [% IF ( duplicatebiblionumber ) %]
484                         <div class="dialog alert">
485                             <h3>Duplicate record suspected</h3>
486                             <p>Is this a duplicate of <a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% duplicatebiblionumber | uri %]" onclick="openWindow('/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% duplicatebiblionumber | uri %]&amp;popup=1', 'DuplicateBiblio','800','600'); return false;">[% duplicatetitle | html %] <i class="fa fa-window-restore"></i></a> ?</p>
487                             [% IF ( CAN_user_editcatalogue_edit_items ) %]
488                                 <form action="/cgi-bin/koha/cataloguing/additem.pl" method="get">
489                                     <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber | html %]" />
490                                     <button type="submit" class="new"><i class="fa fa-fw fa-pencil"></i> Yes, edit existing items</button>
491                                 </form>
492                             [% ELSE %]
493                                 <form action="/cgi-bin/koha/catalogue/detail.pl" method="get">
494                                     <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber | html %]" />
495                                     <input type="submit" value="Yes: View existing items" />
496                                 </form>
497                             [% END %]
498                             <form action="/cgi-bin/koha/cataloguing/addbiblio.pl" method="get">
499                                 [% IF ( CAN_user_editcatalogue_edit_items ) %]
500                                     <button type="submit" class="new" onclick="confirmnotdup('items'); return false;"><i class="fa fa-fw fa-save"></i> No, save as new record</button>
501                                 [% ELSE %]
502                                     <button type="submit" class="new" onclick="confirmnotdup('view'); return false;"><i class="fa fa-fw fa-save"></i> No, save as new record</button>
503                                 [% END %]
504                             </form>
505                         </div> <!-- /.dialog.alert -->
506                     [% END # /IF duplicatebiblionumber %]
507                 [% END # /UNLESS number %]
508
509                 [% IF ( done ) %]
510                     <script>
511                         opener.document.forms['f'].biblionumber.value=[% biblionumber | html %];
512                         opener.document.forms['f'].title.value='[% title | html %]';
513                         window.close();
514                     </script>
515                 [% ELSE %]
516                     <form method="post" name="f" id="f" action="/cgi-bin/koha/cataloguing/addbiblio.pl" onsubmit="return Check();">
517                         <input type="hidden" value="[% IF ( biblionumber ) %]view[% ELSE %]items[% END %]" id="redirect" name="redirect" />
518                         <input type="hidden" value="" id="current_tab" name="current_tab" />
519                         <input type="hidden" value="0" id="confirm_not_duplicate" name="confirm_not_duplicate" />
520                 [% END %]
521
522                 <div id="toolbar" class="btn-toolbar">
523                     [% IF CAN_user_editcatalogue_edit_items or ( frameworkcode == 'FA' and CAN_user_editcatalogue_fast_cataloging ) %]
524                         [% IF (circborrowernumber) %][%# fast cataloging must lead to items %]
525                             <!-- Action is under fast cataloging - Save button redirecting to items -->
526                             <div class="btn-group"><a href="#" id="saveanditems" class="btn btn-default"><i class="fa fa-save"></i> Save</a></div>
527                         [% ELSE %]
528                             <!-- Not using fast cataloging - Display split menu -->
529                             <div class="btn-group">
530                                 <button class="btn btn-default" id="saverecord"><i class="fa fa-save"></i> Save</button>
531                                 <button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
532                                 <span class="caret"></span>
533                                 </button>
534                                 <ul class="dropdown-menu">
535                                     <li><a id="saveandview" href="#">Save and view record</a></li>
536                                     <li><a id="saveanditems" href="#">Save and edit items</a></li>
537                                     <li><a id="saveandcontinue" href="#">Save and continue editing</a></li>
538                                 </ul>
539                             </div>
540                         [% END %]
541                     [% ELSE %]
542                         <!-- User cannot edit items - single button redirecting to view -->
543                         <div class="btn-group"><a href="#" id="saveandview" class="btn btn-default"><i class="fa fa-save"></i> Save</a></div>
544                     [% END # /IF CAN_user_editcatalogue_edit_items %]
545
546                     [% UNLESS (circborrowernumber) %][%# Hide in fast cataloging %]
547                         <div class="btn-group"><a class="btn btn-default" href="#" id="z3950search"><i class="fa fa-search"></i> Z39.50/SRU search</a></div>
548                     [% END %]
549
550                     <div class="btn-group">
551                         <button class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i> Settings <span class="caret"></span></button>
552                         <ul id="settings-menu" class="dropdown-menu">
553                             [% IF Koha.Preference( 'EnableAdvancedCatalogingEditor' ) == 1 && CAN_user_editcatalogue_advanced_editor %]
554                                 <li><a href="#" id="switcheditor">Switch to advanced editor</a></li>
555                             [% END %]
556                             [% IF marcflavour != 'NORMARC' AND NOT advancedMARCEditor %]
557                                 <li>
558                                     <a href="#" id="marcDocsSelect"><i class="fa fa-check-square-o"></i> Show MARC tag documentation links</a>
559                                 <li>
560                                     <a href="#" id="marcTagsSelect"><i class="fa fa-check-square-o"></i> Show tags</a>
561                                 </li>
562                             [% END %]
563                             <li class="dropdown-header">Change framework</li>
564                             <li>
565                                 <a href="#" class="change-framework" data-frameworkcode="">
566                                     [% IF ( frameworkcode ) %]
567                                        <i class="fa fa-fw">&nbsp;</i>
568                                     [% ELSE %]
569                                         <i class="fa fa-fw fa-check"></i>
570                                     [% END %]
571                                     Default
572                                 </a>
573                             </li>
574                             [% FOREACH framework IN frameworks%]
575                                 <li>
576                                     <a href="#" class="change-framework" data-frameworkcode="[% framework.frameworkcode | html %]">
577                                         [% IF framework.frameworkcode == frameworkcode %]
578                                             <i class="fa fa-fw fa-check"></i>
579                                         [% ELSE %]
580                                             <i class="fa fa-fw">&nbsp;</i>
581                                         [% END %]
582                                         [% framework.frameworktext | html %]
583                                     </a>
584                                 </li>
585                             [% END %]
586                         </ul> <!-- /#settings-menu -->
587                     </div> <!-- /.btn-group -->
588                     [% UNLESS (circborrowernumber) %][%# Hide in fast cataloging %]
589                         [% IF (biblionumber) %]
590                             [% IF ( BiblioDefaultViewmarc ) %]
591                                 <div class="btn-group">
592                                     <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
593                                 </div>
594                             [% ELSIF ( BiblioDefaultViewlabeled_marc ) %]
595                                 <div class="btn-group">
596                                     <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
597                                 </div>
598                             [% ELSIF ( BiblioDefaultViewisbd ) %]
599                                 <div class="btn-group">
600                                     <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
601                                 </div>
602                             [% ELSE %]
603                                 <div class="btn-group">
604                                     <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
605                                 </div>
606                             [% END %]
607                         [% ELSE %]
608                             <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/cataloguing/addbooks.pl">Cancel</a>
609                         [% END %]
610                     [% END # /UNLESS circborrowernumber %]
611                     <div class="toolbar-tabs-container">
612                         [% IF ( BIG_LOOP.size > 1 ) %]
613                             <ul class="toolbar-tabs">
614                                 [%- FOREACH BIG_LOO IN BIG_LOOP -%]
615                                     [% IF loop.first %]
616                                         <li class="selected">
617                                     [% ELSE %]
618                                         <li>
619                                     [% END %]
620                                         <a data-tabid="[% BIG_LOO.number | html %]" href="#tab[% BIG_LOO.number | html %]XX">[% BIG_LOO.number | html %]</a>
621                                     </li>
622                                 [%- END -%]
623                             </ul>
624                         [% END %]
625                         <ul class="tag_anchors_list">
626                             [% FOREACH BIG_LOO IN BIG_LOOP %]
627                                 [% IF loop.first %][% SET tab_selected = "tab_selected" %][% ELSE %][% SET tab_selected = "" %][% END %]
628                                 [% FOREACH innerloo IN BIG_LOO.innerloop %]
629                                     [% IF ( innerloo.tag ) %]
630                                         <li class="tag_anchors tag_anchors_[% BIG_LOO.number | html %] [% tab_selected | html %]">
631                                             <a class="tag_anchor" id="tag_anchor_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]" title="tag_anchor_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]" href="#div_indicator_tag_[% innerloo.tag | uri %]_[% innerloo.index | uri %][% innerloo.random | uri %]">[% innerloo.tag | uri %]</a>
632                                         </li>
633                                     [% END %]
634                                 [% END %]
635                             [% END %]
636                         </ul>
637                     </div>
638                 </div> <!-- /#toolbar.btn-toolbar -->
639
640                 [% IF bib_doesnt_exist %]
641                     <div class="dialog alert">
642                         The record you are trying to edit doesn't exist.<br>
643                         <a href="/cgi-bin/koha/cataloguing/addbiblio.pl?frameworkcode=">Add a new record</a> or <a href="/cgi-bin/koha/catalogue/search.pl">do a catalog search</a>.
644                     </div>
645                 [% END %]
646
647                 [% IF ( popup ) %]
648                         <input type="hidden" name="mode" value="popup" />
649                 [% END %]
650                 <input type="hidden" name="op" value="addbiblio" />
651                 <input type="hidden" id="frameworkcode" name="frameworkcode" value="[% frameworkcode | html %]" />
652                 <input type="hidden" name="biblionumber" value="[% biblionumber | html %]" />
653                 <input type="hidden" name="breedingid" value="[% breedingid | html %]" />
654                 <input type="hidden" name="changed_framework" value="" />
655
656                 <div id="addbibliotabs" class="toptabs numbered">
657                     <ul>
658                         [% FOREACH BIG_LOO IN BIG_LOOP %]
659                             <li><a href="#tab[% BIG_LOO.number | uri %]XX">[% BIG_LOO.number | html %]</a></li>
660                         [% END %]
661                     </ul>
662
663                     [% FOREACH BIG_LOO IN BIG_LOOP %]
664                         <div id="tab[% BIG_LOO.number | html %]XX">
665
666                             [% IF ( BIG_LOOP.size > 1 ) %]
667                                 <h3>Section [% BIG_LOO.number | html %]</h3>
668                             [% END %]
669                             [% previous = "" %]
670                             [% FOREACH innerloo IN BIG_LOO.innerloop %]
671                                 [% IF ( innerloo.tag ) %]
672                                 [% IF innerloo.tag != previous %]
673                                     [% IF previous != "" %]
674                                         </ul>
675                                     [% END %]
676                                     [% previous = innerloo.tag %]
677                                     <ul class="sortable_field">
678                                 [% END %]
679                                     <li class="tag clearfix" id="tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]">
680                                         <div class="tag_title" id="div_indicator_tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]">
681                                             [% IF advancedMARCEditor %]
682                                                 <a href="#" tabindex="1" class="tagnum" title="[% innerloo.tag_lib | html %] - Click to Expand this Tag" onclick="ExpandField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]'); return false;">[% innerloo.tag | html %]</a>
683                                             [% ELSE %]
684                                                 <span class="tagnum" title="[% innerloo.tag_lib | html %]">[% innerloo.tag | html %]</span>
685                                                 [% IF marcflavour != 'NORMARC' %]<a href="#" class="marcdocs" onclick="PopupMARCFieldDoc('[% innerloo.tag | html %]'); return false;">&nbsp;?</a>[% END %]
686                                             [% END %]
687
688                                             [% IF ( innerloo.fixedfield ) %]
689                                                 <input type="text"
690                                                     tabindex="1"
691                                                     class="indicator flat"
692                                                     style="display:none;"
693                                                     name="tag_[% innerloo.tag | html %]_indicator1_[% innerloo.index | html %][% innerloo.random | html %]"
694                                                     size="1"
695                                                     maxlength="1"
696                                                     value="[% innerloo.indicator1 | html %]" />
697                                                 <input type="text"
698                                                     tabindex="1"
699                                                     class="indicator flat"
700                                                     style="display:none;"
701                                                     name="tag_[% innerloo.tag | html %]_indicator2_[% innerloo.index | html %][% innerloo.random | html %]"
702                                                     size="1"
703                                                     maxlength="1"
704                                                     value="[% innerloo.indicator2 | html %]" />
705                                             [% ELSE %]
706                                                 <input type="text"
707                                                     tabindex="1"
708                                                     class="indicator flat"
709                                                     name="tag_[% innerloo.tag | html %]_indicator1_[% innerloo.index | html %][% innerloo.random | html %]"
710                                                     size="1"
711                                                     maxlength="1"
712                                                     value="[% innerloo.indicator1 | html %]" />
713                                                 <input type="text"
714                                                     tabindex="1"
715                                                     class="indicator flat"
716                                                     name="tag_[% innerloo.tag | html %]_indicator2_[% innerloo.index | html %][% innerloo.random | html %]"
717                                                     size="1"
718                                                     maxlength="1"
719                                                     value="[% innerloo.indicator2 | html %]" />
720                                             [% END # /IF innerloo.fixedfield %] -
721
722                                             [% UNLESS advancedMARCEditor %]
723                                                 <a href="#" tabindex="1" class="expandfield" onclick="ExpandField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]'); return false;" title="Click to Expand this Tag">[% innerloo.tag_lib | html %]</a>
724                                             [% END %]
725
726                                             <span class="field_controls">
727                                                 [% IF ( innerloo.repeatable ) %]
728                                                     <a href="#" tabindex="1" class="buttonPlus" onclick="CloneField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]','0','[% advancedMARCEditor | html %]'); return false;" title="Repeat this Tag">
729                                                         <img src="[% interface | html %]/[% theme | html %]/img/repeat-tag.png" alt="Repeat this Tag" />
730                                                     </a>
731                                                 [% END %]
732                                                 <a href="#" tabindex="1" class="buttonMinus" onclick="UnCloneField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]'); return false;" title="Delete this Tag">
733                                                     <img src="[% interface | html %]/[% theme | html %]/img/delete-tag.png" alt="Delete this Tag" />
734                                                 </a>
735                                             </span> <!-- /.field_controls -->
736                                         </div> <!-- /div.tag_title -->
737
738                                         <ul class="sortable_subfield">
739                                         [% FOREACH subfield_loo IN innerloo.subfield_loop %]
740                                             <!--  One line on the marc editor -->
741                                             <li class="subfield_line" style="[% subfield_loo.visibility | html %]" id="subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]">
742                                                 [% UNLESS advancedMARCEditor %]
743                                                     [% IF ( subfield_loo.fixedfield ) %]
744                                                         <label for="tag_[% subfield_loo.tag | html %]_subfield_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]" style="display:none;" class="labelsubfield">
745                                                     [% ELSE %]
746                                                         <label for="tag_[% subfield_loo.tag | html %]_subfield_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]" class="labelsubfield">
747                                                     [% END %]
748                                                 [% END %]
749
750                                                     <span class="subfieldcode">
751                                                             <input type="text"
752                                                                 title="[% subfield_loo.marc_lib | $raw %]"
753                                                                 style=" [% IF ( subfield_loo.fixedfield ) %]display:none; [% END %]border:0;"
754                                                                 name="tag_[% subfield_loo.tag | html %]_code_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]"
755                                                                 value="[% subfield_loo.subfield | html %]"
756                                                                 size="1"
757                                                                 maxlength="1"
758                                                                 class="flat"
759                                                                 tabindex="0" />
760                                                     </span>
761
762                                                 [% UNLESS advancedMARCEditor %]
763                                                         [% IF ( subfield_loo.mandatory ) %]
764                                                             <span class="subfield subfield_mandatory">
765                                                         [% ELSE %]
766                                                             <span class="subfield">
767                                                         [% END %]
768                                                         [% subfield_loo.marc_lib | $raw %]
769                                                         </span>
770                                                     </label>
771                                                 [% END %]
772
773                                                 [% SET mv = subfield_loo.marc_value %]
774                                                 [% IF ( mv.type == 'text' ) %]
775                                                     [% IF ( mv.readonly == 1 ) %]
776                                                         <input type="text" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" value="[%- mv.value | html -%]" class="input_marceditor readonly" tabindex="1" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" readonly="readonly" />
777                                                     [% ELSE %]
778                                                         <input type="text" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" value="[%- mv.value | html -%]" class="input_marceditor" tabindex="1" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" />
779                                                     [% END %]
780
781                                                     [% IF ( mv.authtype ) %]
782                                                         <span class="subfield_controls"><a href="#" class="buttonDot tag_editor" onclick="openAuth(this.parentNode.parentNode.getElementsByTagName('input')[1].id,'[%- mv.authtype | html -%]','biblio'); return false;" tabindex="1" title="Tag editor">Tag editor</a></span>
783                                                     [% END %]
784                                                 [% ELSIF ( mv.type == 'text_complex' ) %]
785                                                     <input type="text" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" value="[%- mv.value | html -%]" class="input_marceditor framework_plugin" tabindex="1" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" />
786                                                     <span class="subfield_controls">
787                                                         [% IF mv.noclick %]
788                                                             <span class="buttonDot tag_editor disabled" tabindex="-1" title="Field autofilled by plugin"></span>
789                                                         [% ELSE %]
790                                                             <a href="#" id="buttonDot_[% mv.id | html %]" class="buttonDot tag_editor framework_plugin" tabindex="1" title="Tag editor">Tag editor</a>
791                                                         [% END %]
792                                                     </span>
793                                                     [% mv.javascript | $raw %]
794                                                 [% ELSIF ( mv.type == 'hidden' ) %]
795                                                     <input tabindex="1" type="hidden" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]" />
796                                                 [% ELSIF ( mv.type == 'textarea' ) %]
797                                                     <textarea cols="70" rows="4" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" class="input_marceditor" tabindex="1">[%- mv.value | html -%]</textarea>
798                                                 [% ELSIF ( mv.type == 'select' ) %]
799                                                     <select name="[%- mv.name | html -%]" tabindex="1" size="1" class="input_marceditor" id="[%- mv.id | html -%]">
800                                                     [% FOREACH aval IN mv.values %]
801                                                         [% IF aval == mv.default %]
802                                                         <option value="[%- aval | html -%]" selected="selected">[%- mv.labels.$aval | html -%]</option>
803                                                         [% ELSE %]
804                                                         <option value="[%- aval | html -%]">[%- mv.labels.$aval | html -%]</option>
805                                                         [% END %]
806                                                     [% END %]
807                                                     </select>
808                                                 [% END  # /IF (mv.type...) %]
809                                                 [% IF ( subfield_loo.mandatory ) %]
810                                                     <span class="required">Required</span>
811                                                 [% END %]
812                                                 <span class="subfield_controls">
813                                                     [% IF ( subfield_loo.repeatable ) %]
814                                                         <a href="#" class="buttonPlus" tabindex="1" onclick="CloneSubfield('subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]','[% advancedMARCEditor | html %]'); return false;">
815                                                             <img src="[% interface | html %]/[% theme | html %]/img/clone-subfield.png" alt="Clone" title="Clone this subfield" />
816                                                         </a>
817                                                         <a href="#" class="buttonMinus" tabindex="1" onclick="UnCloneField('subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]'); return false;">
818                                                             <img src="[% interface | html %]/[% theme | html %]/img/delete-subfield.png" alt="Delete" title="Delete this subfield" />
819                                                         </a>
820                                                     [% END %]
821                                                 </span>
822                                             </li> <!-- /.subfield_line -->
823                                             <!-- End of the line -->
824                                         [% END # /FOREACH subfield_loop %]
825                                         </ul> <!--  /.sortable_subfield -->
826                                     </li> <!-- /.tag.clearfix -->
827                                 [% END %]<!-- if innerloo.tag -->
828                             [% END # /FOREACH BIG_LOO.innerloop %]
829                             </ul> <!--  /.sortable_field -->
830                         </div> <!-- /#tabXXX -->
831                     [% END # /FOREACH BIG_LOOP %]
832                 </div><!-- /#addbibliotabs -->
833
834                 [%# Fields for fast cataloging %]
835                 <input type="hidden" name="barcode" value="[% barcode | html %]" />
836                 <input type="hidden" name="branch" value="[% branch | html %]" />
837                 <input type="hidden" name="circborrowernumber" value="[% circborrowernumber | html %]" />
838                 <input type="hidden" name="stickyduedate" value="[% stickyduedate | html %]" />
839                 <input type="hidden" name="duedatespec" value="[% duedatespec | html %]" />
840                 [%# End of fields for fast cataloging %]
841             </form> <!-- /name=f -->
842         </div> <!-- /.col-md-10.col-md-offset-1 -->
843     </div> <!-- /.row -->
844
845 [% INCLUDE 'intranet-bottom.inc' %]