Bug 14805: Allow the user to delete multiple batches
Allows the user to delete multiple patron card batches. Test plan: 1. Add first some 20 batches 2. Go to the edit page of some X batch by first selecting from the batch list the batch you want to edit and then after that by clicking edit. 3. Delete one batch by selecting one batch and then clicking delete. 4. Select 0 batches and click delete, notice you cannot delete. 5. Select 0 batches and click edit, notice you cannot edit. 6. Select 2 batches and click edit, notice you cannot edit. 7. Apply patch 8. Check that steps from 2-6 work like they worked before. (and add more batches so that you have ~20 of them) 9. Select 2 batches and click delete. Make sure they are deleted. 10. Try to figure out some anomalies this patch might have caused. Sponsored-by: Vaara-kirjastot Followed test plan, works as expected. Signed-off-by: Marc Véron <veron@veron.ch> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
parent
b9a22b3636
commit
808ec53c14
|
|
@ -20,23 +20,38 @@
|
|||
//<![CDATA[
|
||||
var MSG_CONFIRM_DELETE = _("Are you sure you want to delete this?");
|
||||
function DeleteConfirm() {
|
||||
var element_id = selected_layout("delete");
|
||||
if (element_id>-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<document.layouts.action.length;i++){
|
||||
|
|
@ -75,8 +90,26 @@
|
|||
selected.push(i);
|
||||
}
|
||||
};
|
||||
if (selected.length == 1) {
|
||||
return(document.layouts.action[selected[0]].value);
|
||||
if (selected.length == 1 || (op == "delete" && selected.length >= 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));
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue