Bug 26988: Add API route to fetch hold pickup locations and use it in the holds table
[koha.git] / 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( MSG_FREQUENCY_LENGTH_ERROR );
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( MSG_LINK_TO_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( MSG_LINK_BIBLIO );
66         return false;
67     }
68
69     var bib_exists = $("input[name='title']").val().length;
70
71     if (!bib_exists) alert(MSG_BIBLIO_NOT_EXIST);
72     return bib_exists;
73 }
74
75 function Check_page2(){
76     if( more_than_one_serial == "" ){
77         if($("#acqui_date").val().length == 0){
78             alert( MSG_REQUIRED_PUB_DATE );
79             return false;
80         }
81     }
82     if($("#sublength").val().length == 0 && $("input[name='enddate']").val().length == 0){
83         alert( MSG_REQUIRED_SUB_LENGTH );
84         return false;
85     }
86     if(advancedpatternlocked == 0){
87         alert( MSG_SAVE_PREDICTION_PATTERN );
88         return false;
89     }
90     if(patternneedtobetested){
91         if( irregularity !== "" ){
92             alert( MSG_PATTERN_IRREG );
93         } else {
94             alert( MSG_TEST_PREDICTION );
95         }
96         return false;
97     }
98
99     return true;
100 }
101
102 function frequencyload(){
103     if ($("#frequency option:selected").val() === "mana"){
104         globalfreqdata=manafreqdata;
105         $("input[name='sfdescription']").val(manafreqdata.description);
106         $("input[name='unit']").val(manafreqdata.unit);
107         $("input[name='unitsperissue']").val(manafreqdata.unitsperissue);
108         $("input[name='issuesperunit']").val(manafreqdata.issuesperunit);
109         if ($( "#numberpattern option:selected" ).val() === "mana" ) {
110             $("#mana_id").val(manaid);
111         }
112     } else {
113         $.getJSON("subscription-frequency.pl",{"frequency_id":document.f.frequency.value,ajax:'true'},
114             function(freqdata){
115                 globalfreqdata=freqdata;
116                 if ( globalfreqdata.unit && globalfreqdata.unit.length == 0 ) {
117                     var option = $("#subtype option[value='issues']");
118                     $(option).attr('selected', 'selected');
119                     $("#subtype option[value!='issues']").prop('disabled', true);
120                 } else {
121                     $("#subtype option").prop('disabled', false);
122                 }
123             }
124         );
125         $("#mana_id").val("");
126     }
127 }
128
129 function numberpatternload(){
130     if($("#numberpattern option:selected" ).val() === "mana"){
131         globalnumpatterndata=mananumpatterndata;
132         $("input[name='sndescription']").val(mananumpatterndata.description);
133         if($("#frequency option:selected" ).val() === "mana"){
134             $("#mana_id").val(manaid);
135         }
136         if (globalnumpatterndata==undefined){
137             return false;
138         }
139         displaymoreoptions();
140         restoreAdvancedPattern();
141     } else {
142         $.getJSON("subscription-numberpattern.pl",{"numberpattern_id":document.f.numbering_pattern.value,ajax:'true'},
143             function(numpatterndata){
144                 globalnumpatterndata=numpatterndata;
145                 if (globalnumpatterndata==undefined){
146                     return false;
147                 }
148                 displaymoreoptions();
149                 restoreAdvancedPattern();
150             }
151         );
152         $("#mana_id").val("");
153     }
154 }
155
156 function displaymoreoptions() {
157     if(globalnumpatterndata == undefined){
158         $("#moreoptionst").hide();
159         return false;
160     }
161
162     var X = 0, Y = 0, Z = 0;
163     var numberingmethod = globalnumpatterndata.numberingmethod;
164     if(numberingmethod.match(/{X}/)) X = 1;
165     if(numberingmethod.match(/{Y}/)) Y = 1;
166     if(numberingmethod.match(/{Z}/)) Z = 1;
167
168     if(X || Y || Z) {
169         $("#moreoptionst").show();
170     } else {
171         $("#moreoptionst").hide();
172     }
173
174     if(X) {
175         if(globalnumpatterndata.label1) {
176             $("#headerX").html(globalnumpatterndata.label1);
177         } else {
178             $("#headerX").html("X");
179         }
180         $("#headerX").show();
181         $("#beginsX").show();
182         $("#innerX").show();
183     } else {
184         $("#headerX").hide();
185         $("#beginsX").hide();
186         $("#innerX").hide();
187         $("#lastvaluetemp1").val('');
188         $("#innerlooptemp1").val('');
189     }
190     if(Y) {
191         if(globalnumpatterndata.label2) {
192             $("#headerY").html(globalnumpatterndata.label2);
193         } else {
194             $("#headerY").html("Y");
195         }
196         $("#headerY").show();
197         $("#beginsY").show();
198         $("#innerY").show();
199     } else {
200         $("#headerY").hide();
201         $("#beginsY").hide();
202         $("#innerY").hide();
203         $("#lastvaluetemp2").val('');
204         $("#innerlooptemp2").val('');
205     }
206     if(Z) {
207         if(globalnumpatterndata.label3) {
208             $("#headerZ").html(globalnumpatterndata.label3);
209         } else {
210             $("#headerZ").html("Z");
211         }
212         $("#headerZ").show();
213         $("#beginsZ").show();
214         $("#innerZ").show();
215     } else {
216         $("#headerZ").hide();
217         $("#beginsZ").hide();
218         $("#innerZ").hide();
219         $("#lastvaluetemp3").val('');
220         $("#innerlooptemp3").val('');
221     }
222 }
223
224 function modifyAdvancedPattern() {
225     $("#patternname").prop('readOnly', false).val('').focus();
226     $("#numberingmethod").prop('readOnly', false);
227
228     $("#advancedpredictionpatternt input").each(function() {
229         $(this).prop('readOnly', false);
230     });
231     $("#advancedpredictionpatternt select").each(function() {
232         $(this).prop('disabled', false);
233     });
234
235     $("#restoreadvancedpatternbutton").show();
236     $("#saveadvancedpatternbutton").show();
237     $("#modifyadvancedpatternbutton").hide();
238
239     advancedpatternlocked = 0;
240 }
241
242 function restoreAdvancedPattern() {
243     $("#patternname").prop('readOnly', true).val(globalnumpatterndata.label);
244     $("#numberingmethod").prop('readOnly', true).val(globalnumpatterndata.numberingmethod);
245
246     $("#advancedpredictionpatternt input").each(function() {
247         $(this).prop('readOnly', true);
248         var id = $(this).attr('id');
249         if(id.match(/lastvalue/) || id.match(/innerloop/)) {
250             var tempid = id.replace(/(\d)/, "temp$1");
251             $(this).val($("#"+tempid).val());
252         } else {
253             $(this).val(globalnumpatterndata[id]);
254         }
255     });
256     $("#advancedpredictionpatternt select").each(function() {
257         $(this).prop('disabled', true);
258         var id = $(this).attr('id');
259         $(this).val(globalnumpatterndata[id]);
260     });
261
262     $("#restoreadvancedpatternbutton").hide();
263     $("#saveadvancedpatternbutton").hide();
264     $("#modifyadvancedpatternbutton").show();
265
266     advancedpatternlocked = 1;
267 }
268
269 function testPredictionPattern() {
270     var frequencyid = $("#frequency").val();
271     var acquidate;
272     var error = 0;
273     var error_msg = "";
274     if(frequencyid == undefined || frequencyid == ""){
275         error_msg += "- " + MSG_FREQUENCY_UNDEFINED + "\n";
276         error ++;
277     }
278     acquidate = $("#acqui_date").val();
279     if(acquidate == undefined || acquidate == ""){
280         error_msg += "-" + MSG_PUB_DATE_UNDEFINED + "\n";
281         error ++;
282     }
283     if( more_than_one_serial !== "" ){
284         var nextacquidate = $("#nextacquidate").val();
285         if(nextacquidate == undefined || nextacquidate == ""){
286             error_msg += "-" + MSG_NEXT_ISSUE_UNDEFINED + "\n";
287             error ++;
288         }
289     }
290
291     if(error){
292         alert( MSG_PATTERN_TEST_FAILED.format(error_msg) );
293         return false;
294     }
295
296     var custompattern = 0;
297     if(advancedpatternlocked == 0) {
298         custompattern = 1;
299     }
300
301     var ajaxData = {
302         'custompattern': custompattern,
303         'firstacquidate': acquidate
304     };
305
306     if( subscriptionid !== "" ){
307         ajaxData.subscriptionid = subscriptionid;
308     }
309     if( more_than_one_serial !== "" ){
310         ajaxData.nextacquidate = nextacquidate;
311     }
312
313
314     var ajaxParams = [
315         'to', 'subtype', 'sublength', 'frequency', 'numberingmethod',
316         'lastvalue1', 'lastvalue2', 'lastvalue3', 'add1', 'add2', 'add3',
317         'every1', 'every2', 'every3', 'innerloop1', 'innerloop2', 'innerloop3',
318         'setto1', 'setto2', 'setto3', 'numbering1', 'numbering2', 'numbering3',
319         'whenmorethan1', 'whenmorethan2', 'whenmorethan3', 'locale',
320         'sfdescription', 'unitsperissue', 'issuesperunit', 'unit'
321     ];
322     for(i in ajaxParams) {
323         var param = ajaxParams[i];
324         var value = $("#"+param).val();
325         if(value.length > 0)
326             ajaxData[param] = value;
327     }
328
329     $.ajax({
330         url:"/cgi-bin/koha/serials/showpredictionpattern.pl",
331         data: ajaxData,
332         success: function(data) {
333             showPredictionPatternTest( data );
334             patternneedtobetested = 0;
335         }
336     });
337 }
338
339 function saveAdvancedPattern() {
340     if ($("#patternname").val().length == 0) {
341         alert( MSG_PATTERN_NAME );
342         return false;
343     }
344
345     // Check if patternname already exists, and modify pattern
346     // instead of creating it if so
347     var found = 0;
348     $("#numberpattern option").each(function(){
349         if($(this).text() == $("#patternname").val()){
350             found = 1;
351             return false;
352         }
353     });
354     var cnfrm = 1;
355     if(found){
356         var msg = MSG_PATTERN_NAME_EXISTS
357             + "\n" + MSG_OVERWRITE_PATTERNS;
358         cnfrm = confirm(msg);
359     }
360
361     if(cnfrm) {
362         var ajaxData = {};
363         var ajaxParams = [
364             'patternname', 'numberingmethod', 'label1', 'label2', 'label3',
365             'add1', 'add2', 'add3', 'every1', 'every2', 'every3',
366             'setto1', 'setto2', 'setto3', 'numbering1', 'numbering2', 'numbering3',
367             'whenmorethan1', 'whenmorethan2', 'whenmorethan3', 'locale'
368         ];
369         for(i in ajaxParams) {
370             var param = ajaxParams[i];
371             var value = $("#"+param).val();
372             if(value.length > 0)
373                 ajaxData[param] = value;
374         }
375
376         $.getJSON(
377             "/cgi-bin/koha/serials/create-numberpattern.pl",
378             ajaxData,
379             function(data){
380                 if (data.numberpatternid) {
381                     if(found == 0){
382                         $("#numberpattern").append("<option value=\""+data.numberpatternid+"\">"+$("#patternname").val()+"</option>");
383                     }
384                     $("#numberpattern").val(data.numberpatternid);
385                     numberpatternload();
386                 } else {
387                     alert( MSG_PATTERN_CREATE_FAILED );
388                 }
389             }
390         );
391     }
392 }
393
394 function show_page_1() {
395     $("#page_1").show();
396     $("#page_2").hide();
397     $("#page_number").text("1/2");
398 }
399
400 function show_page_2() {
401     $("#page_1").hide();
402     $("#page_2").show();
403     $("#page_number").text("2/2");
404     displaymoreoptions();
405 }
406
407 function mana_search() {
408     $("#mana_search").html("<p>" + MSG_MANA_SEARCHING + "... <img src='" + interface + "/" + theme + "/img/spinner-small.gif' /></p>");
409     $("#mana_search").show();
410
411     $.ajax({
412         type: "POST",
413         url: "/cgi-bin/koha/svc/mana/search",
414         data: {id: $("#biblionumber").val(), resource: 'subscription', usecomments: 1},
415         dataType: "html",
416     })
417         .done( function( result ) {
418             $("#mana_search_result .modal-body").html(result);
419             $("#mana_search_result_label").text( MSG_MANA_RESULTS );
420             $("#mana_results_datatable").dataTable($.extend(true, {}, dataTablesDefaults, {
421                 "sPaginationType": "full",
422                 "order":[[4, "desc"], [5, "desc"]],
423                 "autoWidth": false,
424                 "columnDefs": [
425                     { "width": "35%", "targets": 1 }
426                 ],
427                 "aoColumnDefs": [
428                     { 'bSortable': false, "bSearchable": false, 'aTargets': [ 'NoSort' ] },
429                     { "sType": "title-string", "aTargets" : [ "title-string" ] },
430                     { 'sType': "anti-the", 'aTargets' : [ 'anti-the'] }
431                 ]
432             }));
433             if( $("#mana_results_datatable").length && $("td.dataTables_empty").length == 0){
434                 $("#mana_search").html("<p>" + MSG_MANA_SUBSCRIPTION_FOUND + "</p><p> <a href=\"#\" data-toggle=\"modal\" data-target=\"#mana_search_result\"><i class=\"fa fa-window-maximize\"></i> " + MSG_MANA_SHOW_DETAILS + "</a></p>");
435             }
436             else if ( $("#mana_results_datatable").length ){
437                 $("#mana_search").html("<p>" + MSG_MANA_NO_SUBSCRIPTION_FOUND + "</p><p>" + MSG_MANA_SHARE_PATTERN + "</p>");
438             }
439             else{
440                 $("#mana_search").html( result );
441             }
442             $("#mana_search").show();
443         });
444 }
445
446 function mana_use(mana_id){
447     $("tr").removeClass("selected");
448     $("#row"+mana_id).addClass("selected");
449     $.ajax( {
450         type: "POST",
451         url: "/cgi-bin/koha/svc/mana/use",
452         data: {id: mana_id, resource: 'subscription'},
453         dataType: "json",
454     })
455         .done(function(result){
456             var select = document.getElementById('numberpattern');
457             for(i = 0; i < select.length; i++){
458                 if(select[i].value === "mana"){
459                     select.remove(i);
460                 }
461             }
462             var optionnumpattern = document.createElement("option");
463             optionnumpattern.text = result.label + " (mana)";
464             optionnumpattern.selected = true;
465             optionnumpattern.value="mana";
466             select.add(optionnumpattern);
467
468             mananumpatterndata = {
469                 id:"mana",
470                 add1:result.add1,
471                 add2:result.add2,
472                 add3:result.add3,
473                 description:result.sndescription,
474                 displayorder:result.displayorder,
475                 every1:result.every1,
476                 every2:result.every2,
477                 every3:result.every3,
478                 label:result.label,
479                 label1:result.label1,
480                 label2:result.label2,
481                 label3:result.label3,
482                 numbering1:result.numbering1,
483                 numbering2:result.numbering2,
484                 numbering3:result.numbering3,
485                 numberingmethod:result.numberingmethod,
486                 setto1:result.setto1,
487                 setto2:result.setto2,
488                 setto3:result.setto3,
489                 whenmorethan1:result.whenmorethan1,
490                 whenmorethan2:result.whenmorethan2,
491                 whenmorethan3:result.whenmorethan3,
492             };
493             select = document.getElementById("frequency");
494             for(i = 0; i < select.length; i++){
495                 if(select[i].value === "mana"){
496                     select.remove(i);
497                 }
498             }
499             var optionfreq = document.createElement("option");
500             optionfreq.text = result.sfdescription + " (mana)";
501             optionfreq.selected = true;
502             optionfreq.value="mana";
503             select.add(optionfreq);
504             manafreqdata = {
505                 id:"mana",
506                 description:result.sfdescription,
507                 displayorder:result.displayorder,
508                 issuesperunit:result.issuesperunit,
509                 unit:result.unit,
510                 unitsperissue:result.unitsperissue,
511             };
512             manaid = result.id;
513             $("#mana_id").val(manaid);
514             $("#mana_search_result").modal("hide");
515             frequencyload();
516             numberpatternload();
517         })
518         .done( function(){
519             $("tr").removeClass("selected");
520             $(".mana-use i").attr("class","fa fa-download");
521         })
522         .fail( function( result ){
523         });
524 }
525
526 function mana_comment_close(){
527     $("#selected_id").val("");
528     $("#mana-resource-id").val("");
529     $("#mana-comment").val("");
530     $("#mana_results").show();
531     $("#new_mana_comment").hide();
532 }
533
534 function showPredictionPatternTest( data ){
535     $("#displayexample").html(data).show();
536     $("#page_2 > div").attr("class","col-xs-6");
537 }
538
539 function hidePredcitionPatternTest(){
540     $("#displayexample").hide();
541     $("#page_2 > div").attr("class","col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2");
542 }
543
544 $(document).ready(function() {
545     if ( mana_enabled == 1 ) {
546         mana_search();
547     }
548     $("#displayexample").hide();
549
550     // When Mana search results modal is hidden, hide comment form and any status messages
551     $("#mana_search_result").on("hide.bs.modal", function(){
552         $("#mana_results").show();
553         $("#new_mana_comment").hide();
554         $(".mana_comment_status").hide();
555     });
556
557     $("#aqbooksellerid").on('keypress', function(e) {
558         if (e.keyCode == 13) {
559             e.preventDefault();
560             FindAcqui();
561         }
562     });
563     $("#biblionumber").on('keypress', function(e) {
564         if (e.keyCode == 13) {
565             e.preventDefault();
566             Plugin();
567         }
568     });
569     $("select#frequency").change(function(){
570         patternneedtobetested = 1;
571         $("input[name='enddate']").val('');
572         frequencyload();
573     });
574     $("select#numberpattern").change(function(){
575         patternneedtobetested = 1;
576         numberpatternload();
577     });
578     $("#subtype").change(function(){
579         $("input[name='enddate']").val('');
580     });
581     $("#sublength").change(function(){
582         $("input[name='enddate']").val('');
583     });
584     $("#lastvaluetemp1").keyup(function(){
585         $("#lastvalue1").val($(this).val());
586     });
587     $("#lastvaluetemp2").keyup(function(){
588         $("#lastvalue2").val($(this).val());
589     });
590     $("#lastvaluetemp3").keyup(function(){
591         $("#lastvalue3").val($(this).val());
592     });
593     $("#lastvalue1").keyup(function(){
594         $("#lastvaluetemp1").val($(this).val());
595     });
596     $("#lastvalue2").keyup(function(){
597         $("#lastvaluetemp2").val($(this).val());
598     });
599     $("#lastvalue3").keyup(function(){
600         $("#lastvaluetemp3").val($(this).val());
601     });
602
603     $("#innerlooptemp1").keyup(function(){
604         $("#innerloop1").val($(this).val());
605     });
606     $("#innerlooptemp2").keyup(function(){
607         $("#innerloop2").val($(this).val());
608     });
609     $("#innerlooptemp3").keyup(function(){
610         $("#innerloop3").val($(this).val());
611     });
612     $("#innerloop1").keyup(function(){
613         $("#innerlooptemp1").val($(this).val());
614     });
615     $("#innerloop2").keyup(function(){
616         $("#innerlooptemp2").val($(this).val());
617     });
618     $("#innerloop3").keyup(function(){
619         $("#innerlooptemp3").val($(this).val());
620     });
621
622     if($("#frequency").val() != ""){
623         frequencyload();
624     }
625     if($("#numberpattern").val() != ""){
626         numberpatternload();
627     }
628
629     if( tags.length > 0 ){
630         tags.forEach( function( item ) {
631             var node = $("[name='" + item + "']");
632             if ( $(node).is('input') || $(node).is('textarea') ) {
633                 $(node).val("");
634             } else if ( $(node).is('select') ) {
635                 $(node).find("option:first").attr('selected','selected');
636             }
637         });
638     }
639
640     $("#mana_search").hide();
641
642     show_page_1();
643     $("#subscription_add_form").on("submit",function(){
644         return Check_page2();
645     });
646     $("#vendor_search").on("click",function(e){
647         e.preventDefault();
648         FindAcqui();
649     });
650     $("#record_search").on("click",function(e){
651         e.preventDefault();
652         Plugin();
653     });
654     $("#biblio_add_edit").on("click",function(e){
655         e.preventDefault();
656         if( $(this).data("biblionumber") ){
657             addbiblioPopup( $(this).data("biblionumber") );
658         } else {
659             addbiblioPopup();
660         }
661     });
662     $("#subscription_add_next").on("click",function(){
663         if ( Check_page1() ){
664             if ( mana_enabled == 1 ) {
665                 mana_search();
666             }
667             show_page_2();
668         }
669     });
670     $("#subscription_add_previous").on("click",function(){
671         show_page_1();
672     });
673     $(".toggle_advanced_pattern").on("click",function(e){
674         e.preventDefault();
675         $("#advancedpredictionpattern").toggle();
676         $(".toggle_advanced_pattern").toggle();
677     });
678     $("#modifyadvancedpatternbutton").on("click",function(e){
679         e.preventDefault();
680         modifyAdvancedPattern();
681     });
682     $("#restoreadvancedpatternbutton").on("click",function(e){
683         e.preventDefault();
684         restoreAdvancedPattern();
685     });
686     $("#saveadvancedpatternbutton").on("click",function(e){
687         e.preventDefault();
688         saveAdvancedPattern();
689     });
690     $("#testpatternbutton").on("click",function(e){
691         e.preventDefault();
692         testPredictionPattern();
693     });
694     $('#save-subscription').on("click", function(e){
695         $('select:disabled').removeAttr('disabled');
696     });
697
698     $("body").on("click", ".mana-use", function(e) {
699         e.preventDefault();
700         $(this).find("i").attr("class","fa fa-refresh fa-spin");
701         var subscription_id = $(this).data("subscription_id");
702         mana_use( subscription_id );
703     });
704
705     $("#displayexample").on("click", "#hidepredictionpattern", function(e){
706         e.preventDefault();
707         hidePredcitionPatternTest();
708     });
709
710     $("#biblionumber").on("change", function(){
711         var biblionumber = $(this).val();
712         $.ajax({
713             url: "/api/v1/biblios/" + biblionumber,
714             type: "GET",
715             headers: {
716               Accept: "application/json",
717             },
718             contentType: "application/json",
719             success: function (biblio) {
720                 $("input[name='title']").val(biblio['title']);
721                 $("#error_bib_not_exist").html("");
722             },
723             error: function (x) {
724                 $("input[name='title']").val('');
725                 $("#error_bib_not_exist").html("This bibliographic record does not exist");
726             }
727         });
728     });
729
730 });