diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/manage.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/manage.tt index 58feb0e97d..40ea92b07f 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/manage.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/manage.tt @@ -20,23 +20,38 @@ //-1) { - var msg = _("Are you sure you want to delete %s %s?").format("[% PROCESS translate_card_element element=card_element %]", element_id); - var answer = confirm(msg); - if (answer) { - window.location = "/cgi-bin/koha/patroncards/manage.pl?op=delete&card_element=[% card_element %]&element_id=" + element_id; - } - else { - return; // abort delete + var element_ids = selected_layouts("delete"); + + var answer; + if (element_ids.length > 1) { + var msg = _("Are you sure you want to delete %s batches?").format(element_ids.length); + answer = confirm(msg); + } else if (element_ids.length == 1) { + var msg = _("Are you sure you want to delete %s %s?").format("[% PROCESS translate_card_element element=card_element %]", element_ids[0]); + answer = confirm(msg); + } + + if (answer) { + var elements = ""; + for (var i = 0; i < element_ids.length; i++) { + if (element_ids[i] > -1) { + elements += element_ids[i] + "," + } + else { + return; // no layout selected + } } + + window.location = "/cgi-bin/koha/patroncards/manage.pl?op=delete&card_element=[% card_element %]&element_id=" + elements; } else { - return; // no layout selected - }; + return; // abort delete + } + }; + function Edit() { - var element_id = selected_layout("edit"); + var element_id = selected_layouts("edit"); if (element_id>-1) { window.location = "/cgi-bin/koha/patroncards/edit-[% card_element %].pl?op=edit&element_id=" + element_id; } @@ -67,7 +82,7 @@ } return GB_showCenter(_("Export patron cards"), "/cgi-bin/koha/patroncards/print.pl?" + getstr, 700, 800); }; - function selected_layout(op) { + function selected_layouts(op) { var selected = new Array; if (document.layouts.action.length) { for (i=0;i= 1)) { + if (op == "delete") { + var selectedDelete = new Array; + for (i = 0; i < selected.length; i++) { + selectedDelete.push(document.layouts.action[selected[i]].value); + } + return(selectedDelete); + } else { + // op == 'edit' returns only the object and not list + return(document.layouts.action[selected[0]].value); + } + } + else if (selected.length < 1) { + if (op == "edit") { + alert(_("Please select one %s to %s.").format("[% PROCESS translate_card_element element=card_element %]", op)); + return (-1); + } else { + alert(_("Please select at least one %s to %s.").format("[% PROCESS translate_card_element element=card_element %]", op)); + return (-1); + } } else { alert(_("Please select only one %s to %s.").format("[% PROCESS translate_card_element element=card_element %]", op)); diff --git a/patroncards/manage.pl b/patroncards/manage.pl index 316bb90b07..bd420b9642 100755 --- a/patroncards/manage.pl +++ b/patroncards/manage.pl @@ -80,11 +80,14 @@ my $branch_code = ($card_element eq 'batch' ? C4::Context->userenv->{'branch'} : if ($op eq 'delete') { my $err = 0; - if ($card_element eq 'layout') {$err = C4::Patroncards::Layout::delete(layout_id => $element_id);} - elsif ($card_element eq 'template') {$err = C4::Patroncards::Template::delete(template_id => $element_id);} - elsif ($card_element eq 'profile') {$err = C4::Patroncards::Profile::delete(profile_id => $element_id);} - elsif ($card_element eq 'batch') {$err = C4::Labels::Batch::delete(batch_id => $element_id, branch_code => $branch_code);} - else {warn sprintf("Unknown card element passed in for delete operation: %s.",$card_element); $errstr = 202;} + my @element_ids = split(/,/, $element_id); + foreach my $element_id (@element_ids) { + if ($card_element eq 'layout') {$err = C4::Patroncards::Layout::delete(layout_id => $element_id);} + elsif ($card_element eq 'template') {$err = C4::Patroncards::Template::delete(template_id => $element_id);} + elsif ($card_element eq 'profile') {$err = C4::Patroncards::Profile::delete(profile_id => $element_id);} + elsif ($card_element eq 'batch') {$err = C4::Labels::Batch::delete(batch_id => $element_id, branch_code => $branch_code);} + else {warn sprintf("Unknown card element passed in for delete operation: %s.",$card_element); $errstr = 202;} + } print $cgi->redirect("manage.pl?card_element=$card_element" . ($err ? "&error=102" : '')); exit; }