1 /* global _ irregularity more_than_one_serial subscriptionid tags interface theme mana_enabled MSG_FREQUENCY_LENGTH_ERROR */
3 var globalnumpatterndata;
5 var mananumpatterndata;
8 var advancedpatternlocked;
9 var patternneedtobetested = 0;
10 if ( irregularity !== "" ){
11 patternneedtobetested = 1;
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 );
24 function addbiblioPopup(biblionumber) {
25 var destination = "/cgi-bin/koha/cataloguing/addbiblio.pl?mode=popup";
27 destination += "&biblionumber="+biblionumber;
29 window.open(destination,'AddBiblioPopup','width=1024,height=768,toolbar=no,scrollbars=yes');
33 window.open('subscription-bib-search.pl','FindABibIndex','width=800,height=400,toolbar=no,scrollbars=yes');
37 window.open('acqui-search.pl','FindASupplier','width=800,height=400,toolbar=no,scrollbars=yes');
40 function Find_ISSN(f){
41 window.open('issn-search.pl','FindABibIndex','width=800,height=400,toolbar=no,scrollbars=yes');
48 function Check_page1() {
49 if ( $("#aqbooksellerid").val().length == 0) {
50 input_box = confirm( MSG_LINK_TO_VENDOR );
51 if (input_box==false) {
55 if ($("#biblionumber").val().length == 0) {
56 alert( MSG_LINK_BIBLIO );
63 function Check_page2(){
64 if( more_than_one_serial == "" ){
65 if($("#acqui_date").val().length == 0){
66 alert( MSG_REQUIRED_PUB_DATE );
70 if($("#sublength").val().length == 0 && $("input[name='enddate']").val().length == 0){
71 alert( MSG_REQUIRED_SUB_LENGTH );
74 if(advancedpatternlocked == 0){
75 alert( MSG_SAVE_PREDICTION_PATTERN );
78 if(patternneedtobetested){
79 if( irregularity !== "" ){
80 alert( MSG_PATTERN_IRREG );
82 alert( MSG_TEST_PREDICTION );
90 function frequencyload(){
91 if ($("#frequency option:selected").val() === "mana"){
92 globalfreqdata=manafreqdata;
93 $("input[name='sfdescription']").val(manafreqdata.description);
94 $("input[name='unit']").val(manafreqdata.unit);
95 $("input[name='unitsperissue']").val(manafreqdata.unitsperissue);
96 $("input[name='issuesperunit']").val(manafreqdata.issuesperunit);
97 if ($( "#numberpattern option:selected" ).val() === "mana" ) {
98 $("#mana_id").val(manaid);
101 $.getJSON("subscription-frequency.pl",{"frequency_id":document.f.frequency.value,ajax:'true'},
103 globalfreqdata=freqdata;
104 if ( globalfreqdata.unit && globalfreqdata.unit.length == 0 ) {
105 var option = $("#subtype option[value='issues']");
106 $(option).attr('selected', 'selected');
107 $("#subtype option[value!='issues']").prop('disabled', true);
109 $("#subtype option").prop('disabled', false);
113 $("#mana_id").val("");
117 function numberpatternload(){
118 if($("#numberpattern option:selected" ).val() === "mana"){
119 globalnumpatterndata=mananumpatterndata;
120 $("input[name='sndescription']").val(mananumpatterndata.description);
121 if($("#frequency option:selected" ).val() === "mana"){
122 $("#mana_id").val(manaid);
124 if (globalnumpatterndata==undefined){
127 displaymoreoptions();
128 restoreAdvancedPattern();
130 $.getJSON("subscription-numberpattern.pl",{"numberpattern_id":document.f.numbering_pattern.value,ajax:'true'},
131 function(numpatterndata){
132 globalnumpatterndata=numpatterndata;
133 if (globalnumpatterndata==undefined){
136 displaymoreoptions();
137 restoreAdvancedPattern();
140 $("#mana_id").val("");
144 function displaymoreoptions() {
145 if(globalnumpatterndata == undefined){
146 $("#moreoptionst").hide();
150 var X = 0, Y = 0, Z = 0;
151 var numberingmethod = globalnumpatterndata.numberingmethod;
152 if(numberingmethod.match(/{X}/)) X = 1;
153 if(numberingmethod.match(/{Y}/)) Y = 1;
154 if(numberingmethod.match(/{Z}/)) Z = 1;
157 $("#moreoptionst").show();
159 $("#moreoptionst").hide();
163 if(globalnumpatterndata.label1) {
164 $("#headerX").html(globalnumpatterndata.label1);
166 $("#headerX").html("X");
168 $("#headerX").show();
169 $("#beginsX").show();
172 $("#headerX").hide();
173 $("#beginsX").hide();
175 $("#lastvaluetemp1").val('');
176 $("#innerlooptemp1").val('');
179 if(globalnumpatterndata.label2) {
180 $("#headerY").html(globalnumpatterndata.label2);
182 $("#headerY").html("Y");
184 $("#headerY").show();
185 $("#beginsY").show();
188 $("#headerY").hide();
189 $("#beginsY").hide();
191 $("#lastvaluetemp2").val('');
192 $("#innerlooptemp2").val('');
195 if(globalnumpatterndata.label3) {
196 $("#headerZ").html(globalnumpatterndata.label3);
198 $("#headerZ").html("Z");
200 $("#headerZ").show();
201 $("#beginsZ").show();
204 $("#headerZ").hide();
205 $("#beginsZ").hide();
207 $("#lastvaluetemp3").val('');
208 $("#innerlooptemp3").val('');
212 function modifyAdvancedPattern() {
213 $("#patternname").prop('readOnly', false).val('');
214 $("#numberingmethod").prop('readOnly', false);
216 $("#advancedpredictionpatternt input").each(function() {
217 $(this).prop('readOnly', false);
219 $("#advancedpredictionpatternt select").each(function() {
220 $(this).prop('disabled', false);
223 $("#restoreadvancedpatternbutton").show();
224 $("#saveadvancedpatternbutton").show();
225 $("#modifyadvancedpatternbutton").hide();
227 advancedpatternlocked = 0;
230 function restoreAdvancedPattern() {
231 $("#patternname").prop('readOnly', true).val(globalnumpatterndata.label);
232 $("#numberingmethod").prop('readOnly', true).val(globalnumpatterndata.numberingmethod);
234 $("#advancedpredictionpatternt input").each(function() {
235 $(this).prop('readOnly', true);
236 var id = $(this).attr('id');
237 if(id.match(/lastvalue/) || id.match(/innerloop/)) {
238 var tempid = id.replace(/(\d)/, "temp$1");
239 $(this).val($("#"+tempid).val());
241 $(this).val(globalnumpatterndata[id]);
244 $("#advancedpredictionpatternt select").each(function() {
245 $(this).prop('disabled', true);
246 var id = $(this).attr('id');
247 $(this).val(globalnumpatterndata[id]);
250 $("#restoreadvancedpatternbutton").hide();
251 $("#saveadvancedpatternbutton").hide();
252 $("#modifyadvancedpatternbutton").show();
254 advancedpatternlocked = 1;
257 function testPredictionPattern() {
258 var frequencyid = $("#frequency").val();
262 if(frequencyid == undefined || frequencyid == ""){
263 error_msg += "- " + MSG_FREQUENCY_UNDEFINED + "\n";
266 acquidate = $("#acqui_date").val();
267 if(acquidate == undefined || acquidate == ""){
268 error_msg += "-" + MSG_PUB_DATE_UNDEFINED + "\n";
271 if( more_than_one_serial !== "" ){
272 var nextacquidate = $("#nextacquidate").val();
273 if(nextacquidate == undefined || nextacquidate == ""){
274 error_msg += "-" + MSG_NEXT_ISSUE_UNDEFINED + "\n";
280 alert( MSG_PATTERN_TEST_FAILED.format(error_msg) );
284 var custompattern = 0;
285 if(advancedpatternlocked == 0) {
290 'custompattern': custompattern,
291 'firstacquidate': acquidate
294 if( subscriptionid !== "" ){
295 ajaxData.subscriptionid = subscriptionid;
297 if( more_than_one_serial !== "" ){
298 ajaxData.nextacquidate = nextacquidate;
303 'to', 'subtype', 'sublength', 'frequency', 'numberingmethod',
304 'lastvalue1', 'lastvalue2', 'lastvalue3', 'add1', 'add2', 'add3',
305 'every1', 'every2', 'every3', 'innerloop1', 'innerloop2', 'innerloop3',
306 'setto1', 'setto2', 'setto3', 'numbering1', 'numbering2', 'numbering3',
307 'whenmorethan1', 'whenmorethan2', 'whenmorethan3', 'locale',
308 'sfdescription', 'unitsperissue', 'issuesperunit', 'unit'
310 for(i in ajaxParams) {
311 var param = ajaxParams[i];
312 var value = $("#"+param).val();
314 ajaxData[param] = value;
318 url:"/cgi-bin/koha/serials/showpredictionpattern.pl",
320 success: function(data) {
321 $("#displayexample").html(data).show();
322 patternneedtobetested = 0;
327 function saveAdvancedPattern() {
328 if ($("#patternname").val().length == 0) {
329 alert( MSG_PATTERN_NAME );
333 // Check if patternname already exists, and modify pattern
334 // instead of creating it if so
336 $("#numberpattern option").each(function(){
337 if($(this).text() == $("#patternname").val()){
344 var msg = MSG_PATTERN_NAME_EXISTS
345 + "\n" + MSG_OVERWRITE_PATTERNS;
346 cnfrm = confirm(msg);
352 'patternname', 'numberingmethod', 'label1', 'label2', 'label3',
353 'add1', 'add2', 'add3', 'every1', 'every2', 'every3',
354 'setto1', 'setto2', 'setto3', 'numbering1', 'numbering2', 'numbering3',
355 'whenmorethan1', 'whenmorethan2', 'whenmorethan3', 'locale'
357 for(i in ajaxParams) {
358 var param = ajaxParams[i];
359 var value = $("#"+param).val();
361 ajaxData[param] = value;
365 "/cgi-bin/koha/serials/create-numberpattern.pl",
368 if (data.numberpatternid) {
370 $("#numberpattern").append("<option value=\""+data.numberpatternid+"\">"+$("#patternname").val()+"</option>");
372 $("#numberpattern").val(data.numberpatternid);
375 alert( MSG_PATTERN_CREATE_FAILED );
382 function show_page_1() {
385 $("#page_number").text("1/2");
388 function show_page_2() {
391 $("#page_number").text("2/2");
392 displaymoreoptions();
395 function mana_search() {
396 $("#mana_search").html("<p>" + MSG_MANA_SEARCHING + "... <img src='" + interface + "/" + theme + "/img/spinner-small.gif' /></p>");
397 $("#mana_search").show();
401 url: "/cgi-bin/koha/svc/mana/search",
402 data: {id: $("#biblionumber").val(), resource: 'subscription', usecomments: 1},
405 .done( function( result ) {
406 $("#mana_search_result .modal-body").html(result);
407 $("#mana_search_result_label").text( MSG_MANA_RESULTS );
408 $("#mana_results_datatable").dataTable($.extend(true, {}, dataTablesDefaults, {
409 "sPaginationType": "four_button",
410 "order":[[4, "desc"], [5, "desc"]],
413 { "width": "35%", "targets": 1 }
416 { 'bSortable': false, "bSearchable": false, 'aTargets': [ 'NoSort' ] },
417 { "sType": "title-string", "aTargets" : [ "title-string" ] },
418 { 'sType': "anti-the", 'aTargets' : [ 'anti-the'] }
421 if( $("#mana_results_datatable").length && $("td.dataTables_empty").length == 0){
422 $("#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>");
424 else if ( $("#mana_results_datatable").length ){
425 $("#mana_search").html("<p>" + MSG_MANA_NO_SUBSCRIPTION_FOUND + "</p><p>" + MSG_MANA_SHARE_PATTERN + "</p>");
428 $("#mana_search").html( result );
430 $("#mana_search").show();
434 function mana_use(mana_id){
435 $("tr").removeClass("selected");
436 $("#row"+mana_id).addClass("selected");
439 url: "/cgi-bin/koha/svc/mana/use",
440 data: {id: mana_id, resource: 'subscription'},
443 .done(function(result){
444 var select = document.getElementById('numberpattern');
445 for(i = 0; i < select.length; i++){
446 if(select[i].value === "mana"){
450 var optionnumpattern = document.createElement("option");
451 optionnumpattern.text = result.label + " (mana)";
452 optionnumpattern.selected = true;
453 optionnumpattern.value="mana";
454 select.add(optionnumpattern);
456 mananumpatterndata = {
461 description:result.sndescription,
462 displayorder:result.displayorder,
463 every1:result.every1,
464 every2:result.every2,
465 every3:result.every3,
467 label1:result.label1,
468 label2:result.label2,
469 label3:result.label3,
470 numbering1:result.numbering1,
471 numbering2:result.numbering2,
472 numbering3:result.numbering3,
473 numberingmethod:result.numberingmethod,
474 setto1:result.setto1,
475 setto2:result.setto2,
476 setto3:result.setto3,
477 whenmorethan1:result.whenmorethan1,
478 whenmorethan2:result.whenmorethan2,
479 whenmorethan3:result.whenmorethan3,
481 select = document.getElementById("frequency");
482 for(i = 0; i < select.length; i++){
483 if(select[i].value === "mana"){
487 var optionfreq = document.createElement("option");
488 optionfreq.text = result.sfdescription + " (mana)";
489 optionfreq.selected = true;
490 optionfreq.value="mana";
491 select.add(optionfreq);
494 description:result.sfdescription,
495 displayorder:result.displayorder,
496 issuesperunit:result.issuesperunit,
498 unitsperissue:result.unitsperissue,
501 $("#mana_id").val(manaid);
502 $("#mana_search_result").modal("hide");
507 $("tr").removeClass("selected");
508 $(".mana-use i").attr("class","fa fa-download");
510 .fail( function( result ){
514 function mana_comment_close(){
515 $("#selected_id").val("");
516 $("#mana-resource-id").val("");
517 $("#mana-comment").val("");
518 $("#mana_results").show();
519 $("#new_mana_comment").hide();
522 $(document).ready(function() {
523 if ( mana_enabled == 1 ) {
526 $("#displayexample").hide();
528 // When Mana search results modal is hidden, hide comment form and any status messages
529 $("#mana_search_result").on("hide.bs.modal", function(){
530 $("#mana_results").show();
531 $("#new_mana_comment").hide();
532 $(".mana_comment_status").hide();
535 $("#aqbooksellerid").on('keypress', function(e) {
536 if (e.keyCode == 13) {
541 $("#biblionumber").on('keypress', function(e) {
542 if (e.keyCode == 13) {
547 $("select#frequency").change(function(){
548 patternneedtobetested = 1;
549 $("input[name='enddate']").val('');
552 $("select#numberpattern").change(function(){
553 patternneedtobetested = 1;
556 $("#subtype").change(function(){
557 $("input[name='enddate']").val('');
559 $("#sublength").change(function(){
560 $("input[name='enddate']").val('');
562 $("#lastvaluetemp1").keyup(function(){
563 $("#lastvalue1").val($(this).val());
565 $("#lastvaluetemp2").keyup(function(){
566 $("#lastvalue2").val($(this).val());
568 $("#lastvaluetemp3").keyup(function(){
569 $("#lastvalue3").val($(this).val());
571 $("#lastvalue1").keyup(function(){
572 $("#lastvaluetemp1").val($(this).val());
574 $("#lastvalue2").keyup(function(){
575 $("#lastvaluetemp2").val($(this).val());
577 $("#lastvalue3").keyup(function(){
578 $("#lastvaluetemp3").val($(this).val());
581 $("#innerlooptemp1").keyup(function(){
582 $("#innerloop1").val($(this).val());
584 $("#innerlooptemp2").keyup(function(){
585 $("#innerloop2").val($(this).val());
587 $("#innerlooptemp3").keyup(function(){
588 $("#innerloop3").val($(this).val());
590 $("#innerloop1").keyup(function(){
591 $("#innerlooptemp1").val($(this).val());
593 $("#innerloop2").keyup(function(){
594 $("#innerlooptemp2").val($(this).val());
596 $("#innerloop3").keyup(function(){
597 $("#innerlooptemp3").val($(this).val());
600 if($("#frequency").val() != ""){
603 if($("#numberpattern").val() != ""){
607 if( tags.length > 0 ){
608 tags.forEach( function( item ) {
609 var node = $("[name='" + item + "']");
610 if ( $(node).is('input') || $(node).is('textarea') ) {
612 } else if ( $(node).is('select') ) {
613 $(node).find("option:first").attr('selected','selected');
618 $("#mana_search").hide();
621 $("#subscription_add_form").on("submit",function(){
622 return Check_page2();
624 $("#vendor_search").on("click",function(e){
628 $("#record_search").on("click",function(e){
632 $("#biblio_add_edit").on("click",function(e){
634 if( $(this).data("biblionumber") ){
635 addbiblioPopup( $(this).data("biblionumber") );
640 $("#subscription_add_next").on("click",function(){
641 if ( Check_page1() ){
642 if ( mana_enabled == 1 ) {
648 $("#subscription_add_previous").on("click",function(){
651 $(".toggle_advanced_pattern").on("click",function(e){
653 $("#advancedpredictionpattern").toggle();
654 $(".toggle_advanced_pattern").toggle();
656 $("#modifyadvancedpatternbutton").on("click",function(e){
658 modifyAdvancedPattern();
660 $("#restoreadvancedpatternbutton").on("click",function(e){
662 restoreAdvancedPattern();
664 $("#saveadvancedpatternbutton").on("click",function(e){
666 saveAdvancedPattern();
668 $("#testpatternbutton").on("click",function(e){
670 testPredictionPattern();
672 $('#save-subscription').on("click", function(e){
673 $('select:disabled').removeAttr('disabled');
676 $("body").on("click", ".mana-use", function(e) {
678 $(this).find("i").attr("class","fa fa-refresh fa-spin");
679 var subscription_id = $(this).data("subscription_id");
680 mana_use( subscription_id );