Bug 26377: Simplify JS code
[srvgit] / koha-tmpl / intranet-tmpl / prog / js / subscription-add.js
1 /* global __ irregularity more_than_one_serial subscriptionid tags interface theme mana_enabled MSG_FREQUENCY_LENGTH_ERROR MSG_BIBLIO_NOT_EXIST */
2
3 var globalnumpatterndata;
4 var globalfreqdata;
5 var mananumpatterndata;
6 var manafreqdata;
7 var manaid;
8 var advancedpatternlocked;
9 var patternneedtobetested = 0;
10 if ( irregularity !== "" ){
11     patternneedtobetested = 1;
12 }
13
14 function check_issues(){
15     if (globalfreqdata.unit.length >0) {
16         if (document.f.subtype.value == globalfreqdata.unit){
17             document.f.issuelengthcount.value=(document.f.sublength.value*globalfreqdata.issuesperunit)/globalfreqdata.unitsperissue;
18         } else if (document.f.subtype.value != "issues"){
19             alert( __("Frequency and subscription length provided doesn't combine well. Please consider entering an issue count rather than a time period.") );
20         }
21     }
22 }
23
24 function addbiblioPopup(biblionumber) {
25     var destination = "/cgi-bin/koha/cataloguing/addbiblio.pl?mode=popup";
26     if(biblionumber){
27         destination += "&biblionumber="+biblionumber;
28     }
29     window.open(destination,'AddBiblioPopup','width=1024,height=768,toolbar=no,scrollbars=yes');
30 }
31
32 function Plugin(){
33     window.open('subscription-bib-search.pl','FindABibIndex','width=800,height=400,toolbar=no,scrollbars=yes');
34 }
35
36 function FindAcqui(){
37     window.open('acqui-search.pl','FindASupplier','width=800,height=400,toolbar=no,scrollbars=yes');
38 }
39
40 function Find_ISSN(f){
41     window.open('issn-search.pl','FindABibIndex','width=800,height=400,toolbar=no,scrollbars=yes');
42 }
43
44 function Clear(id) {
45     $("#"+id).val('');
46 }
47
48 function Check_page1() {
49     var bookseller_id = $("#aqbooksellerid").val();
50     if ( bookseller_id.length == 0) {
51         input_box = confirm( __("If you wish to claim late or missing issues you must link this subscription to a vendor. Click OK to ignore or Cancel to return and enter a vendor") );
52         if (input_box==false) {
53             return false;
54         }
55     } else {
56         var bookseller_ids = BOOKSELLER_IDS;
57         if ( $.inArray(Number(bookseller_id), bookseller_ids) == -1 ) {
58             alert ( __("The vendor does not exist") );
59             return false;
60         }
61     }
62
63     var biblionumber = $("#biblionumber").val()
64     if ( biblionumber.length == 0 ) {
65         alert( __("You must choose or create a bibliographic record") );
66         return false;
67     }
68
69     var bib_exists = $("input[name='title']").val().length;
70
71     if (!bib_exists){
72         alert( __("Bibliographic record does not exist!") );
73         return false;
74     }
75
76     if( isNaN( $("#staffdisplaycount").val() ) ){
77         alert( __("Number of issues to display to staff must be a number") );
78         return false;
79     }
80     if( isNaN( $("#opacdisplaycount").val() ) ){
81         alert( __("Number of issues to display to the public must be a number") );
82         return false;
83     } else {
84         return true;
85     }
86 }
87
88 function Check_page2(){
89     if( more_than_one_serial == "" ){
90         if($("#acqui_date").val().length == 0){
91             alert( __("You must choose a first publication date") );
92             return false;
93         }
94     }
95     if($("#sublength").val().length == 0 && $("input[name='enddate']").val().length == 0){
96         alert( __("You must choose a subscription length or an end date.") );
97         return false;
98     }
99     if(advancedpatternlocked == 0){
100         alert( __("You have modified the advanced prediction pattern. Please save your work or cancel modifications.") );
101         return false;
102     }
103     if(patternneedtobetested){
104         if( irregularity !== "" ){
105             alert( __("Warning! Present pattern has planned irregularities. Click on 'Test prediction pattern' to check if it's still valid") );
106         } else {
107             alert( __("Please click on 'Test prediction pattern' before saving subscription.") );
108         }
109         return false;
110     }
111
112     return true;
113 }
114
115 function frequencyload(){
116     if ($("#frequency option:selected").val() === "mana"){
117         globalfreqdata=manafreqdata;
118         $("input[name='sfdescription']").val(manafreqdata.description);
119         $("input[name='unit']").val(manafreqdata.unit);
120         $("input[name='unitsperissue']").val(manafreqdata.unitsperissue);
121         $("input[name='issuesperunit']").val(manafreqdata.issuesperunit);
122         if ($( "#numberpattern option:selected" ).val() === "mana" ) {
123             $("#mana_id").val(manaid);
124         }
125     } else {
126         $.getJSON("subscription-frequency.pl",{"frequency_id":document.f.frequency.value,ajax:'true'},
127             function(freqdata){
128                 globalfreqdata=freqdata;
129                 if ( globalfreqdata.unit && globalfreqdata.unit.length == 0 ) {
130                     var option = $("#subtype option[value='issues']");
131                     $(option).attr('selected', 'selected');
132                     $("#subtype option[value!='issues']").prop('disabled', true);
133                 } else {
134                     $("#subtype option").prop('disabled', false);
135                 }
136             }
137         );
138         $("#mana_id").val("");
139     }
140 }
141
142 function numberpatternload(){
143     if($("#numberpattern option:selected" ).val() === "mana"){
144         globalnumpatterndata=mananumpatterndata;
145         $("input[name='sndescription']").val(mananumpatterndata.description);
146         if($("#frequency option:selected" ).val() === "mana"){
147             $("#mana_id").val(manaid);
148         }
149         if (globalnumpatterndata==undefined){
150             return false;
151         }
152         displaymoreoptions();
153         restoreAdvancedPattern();
154     } else {
155         $.getJSON("subscription-numberpattern.pl",{"numberpattern_id":document.f.numbering_pattern.value,ajax:'true'},
156             function(numpatterndata){
157                 globalnumpatterndata=numpatterndata;
158                 if (globalnumpatterndata==undefined){
159                     return false;
160                 }
161                 displaymoreoptions();
162                 restoreAdvancedPattern();
163             }
164         );
165         $("#mana_id").val("");
166     }
167 }
168
169 function displaymoreoptions() {
170     if(globalnumpatterndata == undefined){
171         $("#moreoptionst").hide();
172         return false;
173     }
174
175     var X = 0, Y = 0, Z = 0;
176     var numberingmethod = globalnumpatterndata.numberingmethod;
177     if(numberingmethod.match(/{X}/)) X = 1;
178     if(numberingmethod.match(/{Y}/)) Y = 1;
179     if(numberingmethod.match(/{Z}/)) Z = 1;
180
181     if(X || Y || Z) {
182         $("#moreoptionst").show();
183     } else {
184         $("#moreoptionst").hide();
185     }
186
187     if(X) {
188         if(globalnumpatterndata.label1) {
189             $("#headerX").html(globalnumpatterndata.label1);
190         } else {
191             $("#headerX").html("X");
192         }
193         $("#headerX").show();
194         $("#beginsX").show();
195         $("#innerX").show();
196     } else {
197         $("#headerX").hide();
198         $("#beginsX").hide();
199         $("#innerX").hide();
200         $("#lastvaluetemp1").val('');
201         $("#innerlooptemp1").val('');
202     }
203     if(Y) {
204         if(globalnumpatterndata.label2) {
205             $("#headerY").html(globalnumpatterndata.label2);
206         } else {
207             $("#headerY").html("Y");
208         }
209         $("#headerY").show();
210         $("#beginsY").show();
211         $("#innerY").show();
212     } else {
213         $("#headerY").hide();
214         $("#beginsY").hide();
215         $("#innerY").hide();
216         $("#lastvaluetemp2").val('');
217         $("#innerlooptemp2").val('');
218     }
219     if(Z) {
220         if(globalnumpatterndata.label3) {
221             $("#headerZ").html(globalnumpatterndata.label3);
222         } else {
223             $("#headerZ").html("Z");
224         }
225         $("#headerZ").show();
226         $("#beginsZ").show();
227         $("#innerZ").show();
228     } else {
229         $("#headerZ").hide();
230         $("#beginsZ").hide();
231         $("#innerZ").hide();
232         $("#lastvaluetemp3").val('');
233         $("#innerlooptemp3").val('');
234     }
235 }
236
237 function modifyAdvancedPattern() {
238     $("#patternname").prop('readOnly', false).val('').focus();
239     $("#numberingmethod").prop('readOnly', false);
240
241     $("#advancedpredictionpatternt input").each(function() {
242         $(this).prop('readOnly', false);
243     });
244     $("#advancedpredictionpatternt select").each(function() {
245         $(this).prop('disabled', false);
246     });
247
248     $("#restoreadvancedpatternbutton").show();
249     $("#saveadvancedpatternbutton").show();
250     $("#modifyadvancedpatternbutton").hide();
251
252     advancedpatternlocked = 0;
253 }
254
255 function restoreAdvancedPattern() {
256     $("#patternname").prop('readOnly', true).val(globalnumpatterndata.label);
257     $("#numberingmethod").prop('readOnly', true).val(globalnumpatterndata.numberingmethod);
258
259     $("#advancedpredictionpatternt input").each(function() {
260         $(this).prop('readOnly', true);
261         var id = $(this).attr('id');
262         if(id.match(/lastvalue/) || id.match(/innerloop/)) {
263             var tempid = id.replace(/(\d)/, "temp$1");
264             $(this).val($("#"+tempid).val());
265         } else {
266             $(this).val(globalnumpatterndata[id]);
267         }
268     });
269     $("#advancedpredictionpatternt select").each(function() {
270         $(this).prop('disabled', true);
271         var id = $(this).attr('id');
272         $(this).val(globalnumpatterndata[id]);
273     });
274
275     $("#restoreadvancedpatternbutton").hide();
276     $("#saveadvancedpatternbutton").hide();
277     $("#modifyadvancedpatternbutton").show();
278
279     advancedpatternlocked = 1;
280 }
281
282 function testPredictionPattern() {
283     var frequencyid = $("#frequency").val();
284     var acquidate;
285     var error = 0;
286     var error_msg = "";
287     if(frequencyid == undefined || frequencyid == ""){
288         error_msg += "- " + __("Frequency is not defined") + "\n";
289         error ++;
290     }
291     acquidate = $("#acqui_date").val();
292     if(acquidate == undefined || acquidate == ""){
293         error_msg += "-" + __("First publication date is not defined") + "\n";
294         error ++;
295     }
296     if( more_than_one_serial !== "" ){
297         var nextacquidate = $("#nextacquidate").val();
298         if(nextacquidate == undefined || nextacquidate == ""){
299             error_msg += "-" + __("Next issue publication date is not defined") + "\n";
300             error ++;
301         }
302     }
303
304     if(error){
305         alert( __("Cannot test prediction pattern for the following reason(s): %s").format(error_msg) );
306         return false;
307     }
308
309     var custompattern = 0;
310     if(advancedpatternlocked == 0) {
311         custompattern = 1;
312     }
313
314     var ajaxData = {
315         'custompattern': custompattern,
316         'firstacquidate': acquidate
317     };
318
319     if( subscriptionid !== "" ){
320         ajaxData.subscriptionid = subscriptionid;
321     }
322     if( more_than_one_serial !== "" ){
323         ajaxData.nextacquidate = nextacquidate;
324     }
325
326
327     var ajaxParams = [
328         'to', 'subtype', 'sublength', 'frequency', 'numberingmethod',
329         'lastvalue1', 'lastvalue2', 'lastvalue3', 'add1', 'add2', 'add3',
330         'every1', 'every2', 'every3', 'innerloop1', 'innerloop2', 'innerloop3',
331         'setto1', 'setto2', 'setto3', 'numbering1', 'numbering2', 'numbering3',
332         'whenmorethan1', 'whenmorethan2', 'whenmorethan3', 'locale',
333         'sfdescription', 'unitsperissue', 'issuesperunit', 'unit'
334     ];
335     for(i in ajaxParams) {
336         var param = ajaxParams[i];
337         var value = $("#"+param).val();
338         if(value.length > 0)
339             ajaxData[param] = value;
340     }
341
342     $.ajax({
343         url:"/cgi-bin/koha/serials/showpredictionpattern.pl",
344         data: ajaxData,
345         success: function(data) {
346             showPredictionPatternTest( data );
347             patternneedtobetested = 0;
348         }
349     });
350 }
351
352 function saveAdvancedPattern() {
353     if ($("#patternname").val().length == 0) {
354         alert( __("Please enter a name for this pattern") );
355         return false;
356     }
357
358     // Check if patternname already exists, and modify pattern
359     // instead of creating it if so
360     var found = 0;
361     $("#numberpattern option").each(function(){
362         if($(this).text() == $("#patternname").val()){
363             found = 1;
364             return false;
365         }
366     });
367     var cnfrm = 1;
368     if(found){
369         var msg = __("This pattern name already exists. Do you want to modify it?")
370             +"\n" + __("Warning: This will modify the pattern for all subscriptions that are using it.");
371         cnfrm = confirm(msg);
372     }
373
374     if(cnfrm) {
375         var ajaxData = {};
376         var ajaxParams = [
377             'patternname', 'numberingmethod', 'label1', 'label2', 'label3',
378             'add1', 'add2', 'add3', 'every1', 'every2', 'every3',
379             'setto1', 'setto2', 'setto3', 'numbering1', 'numbering2', 'numbering3',
380             'whenmorethan1', 'whenmorethan2', 'whenmorethan3', 'locale'
381         ];
382         for(i in ajaxParams) {
383             var param = ajaxParams[i];
384             var value = $("#"+param).val();
385             if(value.length > 0)
386                 ajaxData[param] = value;
387         }
388
389         $.getJSON(
390             "/cgi-bin/koha/serials/create-numberpattern.pl",
391             ajaxData,
392             function(data){
393                 if (data.numberpatternid) {
394                     if(found == 0){
395                         $("#numberpattern").append("<option value=\""+data.numberpatternid+"\">"+$("#patternname").val()+"</option>");
396                     }
397                     $("#numberpattern").val(data.numberpatternid);
398                     numberpatternload();
399                 } else {
400                     alert( __("Something went wrong. Unable to create a new numbering pattern.") );
401                 }
402             }
403         );
404     }
405 }
406
407 function show_page_1() {
408     $("#page_1").show();
409     $("#page_2").hide();
410     $("#page_number").text("1/2");
411 }
412
413 function show_page_2() {
414     $("#page_1").hide();
415     $("#page_2").show();
416     $("#page_number").text("2/2");
417     displaymoreoptions();
418 }
419
420 function mana_search() {
421     $("#mana_search").html("<p>" + __("Searching for subscription in Mana Knowledge Base") + "... <img src='" + interface + "/" + theme + "/img/spinner-small.gif' /></p>");
422     $("#mana_search").show();
423
424     $.ajax({
425         type: "POST",
426         url: "/cgi-bin/koha/svc/mana/search",
427         data: {id: $("#biblionumber").val(), resource: 'subscription', usecomments: 1},
428         dataType: "html",
429     })
430         .done( function( result ) {
431             $("#mana_search_result .modal-body").html(result);
432             $("#mana_search_result_label").text( __("Results from Mana Knowledge Base") );
433             $("#mana_results_datatable").dataTable($.extend(true, {}, dataTablesDefaults, {
434                 "sPaginationType": "full",
435                 "order":[[4, "desc"], [5, "desc"]],
436                 "autoWidth": false,
437                 "columnDefs": [
438                     { "width": "35%", "targets": 1 }
439                 ],
440                 "aoColumnDefs": [
441                     { 'bSortable': false, "bSearchable": false, 'aTargets': [ 'NoSort' ] },
442                     { 'sType': "anti-the", 'aTargets' : [ 'anti-the'] }
443                 ]
444             }));
445             if( $("#mana_results_datatable").length && $("td.dataTables_empty").length == 0){
446                 $("#mana_search").html("<p>" + __("Subscription found on Mana Knowledge Base:") + "</p><p> <a href=\"#\" data-toggle=\"modal\" data-target=\"#mana_search_result\"><i class=\"fa fa-window-maximize\"></i> " + __("Show Mana results") + "</a></p>");
447             }
448             else if ( $("#mana_results_datatable").length ){
449                 $("#mana_search").html("<p>" + __("No subscription found on Mana Knowledge Base") + "</p><p>" + __("Please feel free to share your pattern with all others librarians once you are done") + "</p>");
450             }
451             else{
452                 $("#mana_search").html( result );
453             }
454             $("#mana_search").show();
455         });
456 }
457
458 function mana_use(mana_id){
459     $("tr").removeClass("selected");
460     $("#row"+mana_id).addClass("selected");
461     $.ajax( {
462         type: "POST",
463         url: "/cgi-bin/koha/svc/mana/use",
464         data: {id: mana_id, resource: 'subscription'},
465         dataType: "json",
466     })
467         .done(function(result){
468             var select = document.getElementById('numberpattern');
469             for(i = 0; i < select.length; i++){
470                 if(select[i].value === "mana"){
471                     select.remove(i);
472                 }
473             }
474             var optionnumpattern = document.createElement("option");
475             optionnumpattern.text = result.label + " (mana)";
476             optionnumpattern.selected = true;
477             optionnumpattern.value="mana";
478             select.add(optionnumpattern);
479
480             mananumpatterndata = {
481                 id:"mana",
482                 add1:result.add1,
483                 add2:result.add2,
484                 add3:result.add3,
485                 description:result.sndescription,
486                 displayorder:result.displayorder,
487                 every1:result.every1,
488                 every2:result.every2,
489                 every3:result.every3,
490                 label:result.label,
491                 label1:result.label1,
492                 label2:result.label2,
493                 label3:result.label3,
494                 numbering1:result.numbering1,
495                 numbering2:result.numbering2,
496                 numbering3:result.numbering3,
497                 numberingmethod:result.numberingmethod,
498                 setto1:result.setto1,
499                 setto2:result.setto2,
500                 setto3:result.setto3,
501                 whenmorethan1:result.whenmorethan1,
502                 whenmorethan2:result.whenmorethan2,
503                 whenmorethan3:result.whenmorethan3,
504             };
505             select = document.getElementById("frequency");
506             for(i = 0; i < select.length; i++){
507                 if(select[i].value === "mana"){
508                     select.remove(i);
509                 }
510             }
511             var optionfreq = document.createElement("option");
512             optionfreq.text = result.sfdescription + " (mana)";
513             optionfreq.selected = true;
514             optionfreq.value="mana";
515             select.add(optionfreq);
516             manafreqdata = {
517                 id:"mana",
518                 description:result.sfdescription,
519                 displayorder:result.displayorder,
520                 issuesperunit:result.issuesperunit,
521                 unit:result.unit,
522                 unitsperissue:result.unitsperissue,
523             };
524             manaid = result.id;
525             $("#mana_id").val(manaid);
526             $("#mana_search_result").modal("hide");
527             frequencyload();
528             numberpatternload();
529         })
530         .done( function(){
531             $("tr").removeClass("selected");
532             $(".mana-use i").attr("class","fa fa-download");
533         })
534         .fail( function( result ){
535         });
536 }
537
538 function mana_comment_close(){
539     $("#selected_id").val("");
540     $("#mana-resource-id").val("");
541     $("#mana-comment").val("");
542     $("#mana_results").show();
543     $("#new_mana_comment").hide();
544 }
545
546 function showPredictionPatternTest( data ){
547     $("#displayexample").html(data).show();
548     $("#page_2 > div").attr("class","col-xs-6");
549 }
550
551 function hidePredcitionPatternTest(){
552     $("#displayexample").hide();
553     $("#page_2 > div").attr("class","col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2");
554 }
555
556 $(document).ready(function() {
557     if ( mana_enabled == 1 ) {
558         mana_search();
559     }
560     $("#displayexample").hide();
561
562     // When Mana search results modal is hidden, hide comment form and any status messages
563     $("#mana_search_result").on("hide.bs.modal", function(){
564         $("#mana_results").show();
565         $("#new_mana_comment").hide();
566         $(".mana_comment_status").hide();
567     });
568
569     $("#aqbooksellerid").on('keypress', function(e) {
570         if (e.keyCode == 13) {
571             e.preventDefault();
572             FindAcqui();
573         }
574     });
575     $("#biblionumber").on('keypress', function(e) {
576         if (e.keyCode == 13) {
577             e.preventDefault();
578             Plugin();
579         }
580     });
581     $("select#frequency").change(function(){
582         patternneedtobetested = 1;
583         $("input[name='enddate']").val('');
584         frequencyload();
585     });
586     $("select#numberpattern").change(function(){
587         patternneedtobetested = 1;
588         numberpatternload();
589     });
590     $("#subtype").change(function(){
591         $("input[name='enddate']").val('');
592     });
593     $("#sublength").change(function(){
594         $("input[name='enddate']").val('');
595     });
596     $("#lastvaluetemp1").keyup(function(){
597         $("#lastvalue1").val($(this).val());
598     });
599     $("#lastvaluetemp2").keyup(function(){
600         $("#lastvalue2").val($(this).val());
601     });
602     $("#lastvaluetemp3").keyup(function(){
603         $("#lastvalue3").val($(this).val());
604     });
605     $("#lastvalue1").keyup(function(){
606         $("#lastvaluetemp1").val($(this).val());
607     });
608     $("#lastvalue2").keyup(function(){
609         $("#lastvaluetemp2").val($(this).val());
610     });
611     $("#lastvalue3").keyup(function(){
612         $("#lastvaluetemp3").val($(this).val());
613     });
614
615     $("#innerlooptemp1").keyup(function(){
616         $("#innerloop1").val($(this).val());
617     });
618     $("#innerlooptemp2").keyup(function(){
619         $("#innerloop2").val($(this).val());
620     });
621     $("#innerlooptemp3").keyup(function(){
622         $("#innerloop3").val($(this).val());
623     });
624     $("#innerloop1").keyup(function(){
625         $("#innerlooptemp1").val($(this).val());
626     });
627     $("#innerloop2").keyup(function(){
628         $("#innerlooptemp2").val($(this).val());
629     });
630     $("#innerloop3").keyup(function(){
631         $("#innerlooptemp3").val($(this).val());
632     });
633
634     if($("#frequency").val() != ""){
635         frequencyload();
636     }
637     if($("#numberpattern").val() != ""){
638         numberpatternload();
639     }
640
641     if( tags.length > 0 ){
642         tags.forEach( function( item ) {
643             var node = $("[name='" + item + "']");
644             if ( $(node).is('input') || $(node).is('textarea') ) {
645                 $(node).val("");
646             } else if ( $(node).is('select') ) {
647                 $(node).find("option:first").attr('selected','selected');
648             }
649         });
650     }
651
652     $("#mana_search").hide();
653
654     show_page_1();
655     $("#subscription_add_form").on("submit",function(){
656         return Check_page2();
657     });
658     $("#vendor_search").on("click",function(e){
659         e.preventDefault();
660         FindAcqui();
661     });
662     $("#record_search").on("click",function(e){
663         e.preventDefault();
664         Plugin();
665     });
666     $("#biblio_add_edit").on("click",function(e){
667         e.preventDefault();
668         if( $(this).data("biblionumber") ){
669             addbiblioPopup( $(this).data("biblionumber") );
670         } else {
671             addbiblioPopup();
672         }
673     });
674     $("#subscription_add_next").on("click",function(){
675         if ( Check_page1() ){
676             if ( mana_enabled == 1 ) {
677                 mana_search();
678             }
679             show_page_2();
680         }
681     });
682     $("#subscription_add_previous").on("click",function(){
683         show_page_1();
684     });
685     $(".toggle_advanced_pattern").on("click",function(e){
686         e.preventDefault();
687         $("#advancedpredictionpattern").toggle();
688         $(".toggle_advanced_pattern").toggle();
689     });
690     $("#modifyadvancedpatternbutton").on("click",function(e){
691         e.preventDefault();
692         modifyAdvancedPattern();
693     });
694     $("#restoreadvancedpatternbutton").on("click",function(e){
695         e.preventDefault();
696         restoreAdvancedPattern();
697     });
698     $("#saveadvancedpatternbutton").on("click",function(e){
699         e.preventDefault();
700         saveAdvancedPattern();
701     });
702     $("#testpatternbutton").on("click",function(e){
703         e.preventDefault();
704         testPredictionPattern();
705     });
706     $('#save-subscription').on("click", function(e){
707         $('select:disabled').removeAttr('disabled');
708     });
709
710     $("body").on("click", ".mana-use", function(e) {
711         e.preventDefault();
712         $(this).find("i").attr("class","fa fa-refresh fa-spin");
713         var subscription_id = $(this).data("subscription_id");
714         mana_use( subscription_id );
715     });
716
717     $("#displayexample").on("click", "#hidepredictionpattern", function(e){
718         e.preventDefault();
719         hidePredcitionPatternTest();
720     });
721
722     $("#biblionumber").on("change", function(){
723         var biblionumber = $(this).val();
724         $.ajax({
725             url: "/api/v1/biblios/" + biblionumber,
726             type: "GET",
727             headers: {
728               Accept: "application/json",
729             },
730             contentType: "application/json",
731             success: function (biblio) {
732                 $("input[name='title']").val(biblio['title']);
733                 $("#error_bib_not_exist").html("");
734             },
735             error: function (x) {
736                 $("input[name='title']").val('');
737                 $("#error_bib_not_exist").html( __("This bibliographic record does not exist") );
738             }
739         });
740     });
741
742     $("input[name='serialsadditems']").on("change", function(){
743         const display = $(this).val() == "1" ? "block" : "none";
744         $(".use_items").css('display', display).find("select").val("")
745     });
746
747 });