Bug 9565: (follow-up) Deleting a biblio should alert/fail if there are existent subsc...
[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': "anti-the", 'aTargets' : [ 'anti-the'] }
430                 ]
431             }));
432             if( $("#mana_results_datatable").length && $("td.dataTables_empty").length == 0){
433                 $("#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>");
434             }
435             else if ( $("#mana_results_datatable").length ){
436                 $("#mana_search").html("<p>" + MSG_MANA_NO_SUBSCRIPTION_FOUND + "</p><p>" + MSG_MANA_SHARE_PATTERN + "</p>");
437             }
438             else{
439                 $("#mana_search").html( result );
440             }
441             $("#mana_search").show();
442         });
443 }
444
445 function mana_use(mana_id){
446     $("tr").removeClass("selected");
447     $("#row"+mana_id).addClass("selected");
448     $.ajax( {
449         type: "POST",
450         url: "/cgi-bin/koha/svc/mana/use",
451         data: {id: mana_id, resource: 'subscription'},
452         dataType: "json",
453     })
454         .done(function(result){
455             var select = document.getElementById('numberpattern');
456             for(i = 0; i < select.length; i++){
457                 if(select[i].value === "mana"){
458                     select.remove(i);
459                 }
460             }
461             var optionnumpattern = document.createElement("option");
462             optionnumpattern.text = result.label + " (mana)";
463             optionnumpattern.selected = true;
464             optionnumpattern.value="mana";
465             select.add(optionnumpattern);
466
467             mananumpatterndata = {
468                 id:"mana",
469                 add1:result.add1,
470                 add2:result.add2,
471                 add3:result.add3,
472                 description:result.sndescription,
473                 displayorder:result.displayorder,
474                 every1:result.every1,
475                 every2:result.every2,
476                 every3:result.every3,
477                 label:result.label,
478                 label1:result.label1,
479                 label2:result.label2,
480                 label3:result.label3,
481                 numbering1:result.numbering1,
482                 numbering2:result.numbering2,
483                 numbering3:result.numbering3,
484                 numberingmethod:result.numberingmethod,
485                 setto1:result.setto1,
486                 setto2:result.setto2,
487                 setto3:result.setto3,
488                 whenmorethan1:result.whenmorethan1,
489                 whenmorethan2:result.whenmorethan2,
490                 whenmorethan3:result.whenmorethan3,
491             };
492             select = document.getElementById("frequency");
493             for(i = 0; i < select.length; i++){
494                 if(select[i].value === "mana"){
495                     select.remove(i);
496                 }
497             }
498             var optionfreq = document.createElement("option");
499             optionfreq.text = result.sfdescription + " (mana)";
500             optionfreq.selected = true;
501             optionfreq.value="mana";
502             select.add(optionfreq);
503             manafreqdata = {
504                 id:"mana",
505                 description:result.sfdescription,
506                 displayorder:result.displayorder,
507                 issuesperunit:result.issuesperunit,
508                 unit:result.unit,
509                 unitsperissue:result.unitsperissue,
510             };
511             manaid = result.id;
512             $("#mana_id").val(manaid);
513             $("#mana_search_result").modal("hide");
514             frequencyload();
515             numberpatternload();
516         })
517         .done( function(){
518             $("tr").removeClass("selected");
519             $(".mana-use i").attr("class","fa fa-download");
520         })
521         .fail( function( result ){
522         });
523 }
524
525 function mana_comment_close(){
526     $("#selected_id").val("");
527     $("#mana-resource-id").val("");
528     $("#mana-comment").val("");
529     $("#mana_results").show();
530     $("#new_mana_comment").hide();
531 }
532
533 function showPredictionPatternTest( data ){
534     $("#displayexample").html(data).show();
535     $("#page_2 > div").attr("class","col-xs-6");
536 }
537
538 function hidePredcitionPatternTest(){
539     $("#displayexample").hide();
540     $("#page_2 > div").attr("class","col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2");
541 }
542
543 $(document).ready(function() {
544     if ( mana_enabled == 1 ) {
545         mana_search();
546     }
547     $("#displayexample").hide();
548
549     // When Mana search results modal is hidden, hide comment form and any status messages
550     $("#mana_search_result").on("hide.bs.modal", function(){
551         $("#mana_results").show();
552         $("#new_mana_comment").hide();
553         $(".mana_comment_status").hide();
554     });
555
556     $("#aqbooksellerid").on('keypress', function(e) {
557         if (e.keyCode == 13) {
558             e.preventDefault();
559             FindAcqui();
560         }
561     });
562     $("#biblionumber").on('keypress', function(e) {
563         if (e.keyCode == 13) {
564             e.preventDefault();
565             Plugin();
566         }
567     });
568     $("select#frequency").change(function(){
569         patternneedtobetested = 1;
570         $("input[name='enddate']").val('');
571         frequencyload();
572     });
573     $("select#numberpattern").change(function(){
574         patternneedtobetested = 1;
575         numberpatternload();
576     });
577     $("#subtype").change(function(){
578         $("input[name='enddate']").val('');
579     });
580     $("#sublength").change(function(){
581         $("input[name='enddate']").val('');
582     });
583     $("#lastvaluetemp1").keyup(function(){
584         $("#lastvalue1").val($(this).val());
585     });
586     $("#lastvaluetemp2").keyup(function(){
587         $("#lastvalue2").val($(this).val());
588     });
589     $("#lastvaluetemp3").keyup(function(){
590         $("#lastvalue3").val($(this).val());
591     });
592     $("#lastvalue1").keyup(function(){
593         $("#lastvaluetemp1").val($(this).val());
594     });
595     $("#lastvalue2").keyup(function(){
596         $("#lastvaluetemp2").val($(this).val());
597     });
598     $("#lastvalue3").keyup(function(){
599         $("#lastvaluetemp3").val($(this).val());
600     });
601
602     $("#innerlooptemp1").keyup(function(){
603         $("#innerloop1").val($(this).val());
604     });
605     $("#innerlooptemp2").keyup(function(){
606         $("#innerloop2").val($(this).val());
607     });
608     $("#innerlooptemp3").keyup(function(){
609         $("#innerloop3").val($(this).val());
610     });
611     $("#innerloop1").keyup(function(){
612         $("#innerlooptemp1").val($(this).val());
613     });
614     $("#innerloop2").keyup(function(){
615         $("#innerlooptemp2").val($(this).val());
616     });
617     $("#innerloop3").keyup(function(){
618         $("#innerlooptemp3").val($(this).val());
619     });
620
621     if($("#frequency").val() != ""){
622         frequencyload();
623     }
624     if($("#numberpattern").val() != ""){
625         numberpatternload();
626     }
627
628     if( tags.length > 0 ){
629         tags.forEach( function( item ) {
630             var node = $("[name='" + item + "']");
631             if ( $(node).is('input') || $(node).is('textarea') ) {
632                 $(node).val("");
633             } else if ( $(node).is('select') ) {
634                 $(node).find("option:first").attr('selected','selected');
635             }
636         });
637     }
638
639     $("#mana_search").hide();
640
641     show_page_1();
642     $("#subscription_add_form").on("submit",function(){
643         return Check_page2();
644     });
645     $("#vendor_search").on("click",function(e){
646         e.preventDefault();
647         FindAcqui();
648     });
649     $("#record_search").on("click",function(e){
650         e.preventDefault();
651         Plugin();
652     });
653     $("#biblio_add_edit").on("click",function(e){
654         e.preventDefault();
655         if( $(this).data("biblionumber") ){
656             addbiblioPopup( $(this).data("biblionumber") );
657         } else {
658             addbiblioPopup();
659         }
660     });
661     $("#subscription_add_next").on("click",function(){
662         if ( Check_page1() ){
663             if ( mana_enabled == 1 ) {
664                 mana_search();
665             }
666             show_page_2();
667         }
668     });
669     $("#subscription_add_previous").on("click",function(){
670         show_page_1();
671     });
672     $(".toggle_advanced_pattern").on("click",function(e){
673         e.preventDefault();
674         $("#advancedpredictionpattern").toggle();
675         $(".toggle_advanced_pattern").toggle();
676     });
677     $("#modifyadvancedpatternbutton").on("click",function(e){
678         e.preventDefault();
679         modifyAdvancedPattern();
680     });
681     $("#restoreadvancedpatternbutton").on("click",function(e){
682         e.preventDefault();
683         restoreAdvancedPattern();
684     });
685     $("#saveadvancedpatternbutton").on("click",function(e){
686         e.preventDefault();
687         saveAdvancedPattern();
688     });
689     $("#testpatternbutton").on("click",function(e){
690         e.preventDefault();
691         testPredictionPattern();
692     });
693     $('#save-subscription').on("click", function(e){
694         $('select:disabled').removeAttr('disabled');
695     });
696
697     $("body").on("click", ".mana-use", function(e) {
698         e.preventDefault();
699         $(this).find("i").attr("class","fa fa-refresh fa-spin");
700         var subscription_id = $(this).data("subscription_id");
701         mana_use( subscription_id );
702     });
703
704     $("#displayexample").on("click", "#hidepredictionpattern", function(e){
705         e.preventDefault();
706         hidePredcitionPatternTest();
707     });
708
709     $("#biblionumber").on("change", function(){
710         var biblionumber = $(this).val();
711         $.ajax({
712             url: "/api/v1/biblios/" + biblionumber,
713             type: "GET",
714             headers: {
715               Accept: "application/json",
716             },
717             contentType: "application/json",
718             success: function (biblio) {
719                 $("input[name='title']").val(biblio['title']);
720                 $("#error_bib_not_exist").html("");
721             },
722             error: function (x) {
723                 $("input[name='title']").val('');
724                 $("#error_bib_not_exist").html("This bibliographic record does not exist");
725             }
726         });
727     });
728
729 });