From 51ed7aa16687732a5927071ee4c48da822aba202 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Fri, 20 Oct 2023 18:18:38 +0000 Subject: [PATCH] Bug 26824: Use confirmation modal when removing titles from a list in the OPAC This patch changes the process of removing a title from a list so that it uses a confirmation modal dialog instead of a JavaScript alert. To test, apply the patch and view the contents of a list in the OPAC. - Click the "Remove from this list" link under one of the titles. - You should see a modal confirmation message, "Are you sure you want to remove this item from the list?" It should show the title of the item on the list. - Test both the "Yes" and "No" choices. - Check the box next to one title on the list, and click the "Remove from list" link at the top of the table. - You should see a modal confirmation message, "Are you sure you want to remove this item from the list?" It should show the title of the item on the list. - Test boh the "Yes" and "No" choices. - Check the box next to multiple titles on the list and click the "Remove from list" link at the top of the table. - You should see a modal confirmation message, "Are you sure you want to remove these items from the list?" It should show the titles of all the records you selected. - Test both the "Yes" and "No" choices. Signed-off-by: David Nind Signed-off-by: Katrin Fischer --- .../en/includes/title-actions-menu.inc | 2 +- .../bootstrap/en/modules/opac-shelves.tt | 66 +++++++++++++------ 2 files changed, 46 insertions(+), 22 deletions(-) diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/title-actions-menu.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/title-actions-menu.inc index 451e2f7096..d2b050cd4f 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/title-actions-menu.inc +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/title-actions-menu.inc @@ -52,7 +52,7 @@ [% IF ( shelf AND op == 'view' ) %] Save to another list [% IF can_remove_biblios %] - Remove from this list + Remove from this list [% END %] [% ELSE %] Save to lists diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt index 5d524587fc..78c3c1de65 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt @@ -402,7 +402,7 @@ [% ELSE %] [% check_title = itemsloo.biblionumber %] [% END %] - + [% UNLESS ( item_level_itypes ) %] [% UNLESS ( Koha.Preference('OpacNoItemTypeImages') ) %] @@ -541,7 +541,7 @@ - + [% END %] [% ELSE %] @@ -980,29 +980,53 @@ $(function() { [% END %] [% IF loggedinusername && can_remove_biblios %] - $(".removefromlist").on("click", function(e){ - return confirmDelete(MSG_REMOVE_ONE_FROM_LIST); - }); - - $("#myform").submit(function(){ - var checkedBoxes = $(".cb:checked"); - var numchecked = $(checkedBoxes).size(); - if (numchecked) { - if( numchecked > 1 ){ - return confirmDelete(MSG_REMOVE_FROM_LIST); - } else { - return confirmDelete(MSG_REMOVE_ONE_FROM_LIST); - } + $("body").on("click", ".removeitems", function(e){ + e.preventDefault(); + var href; + var title; + var yes_label; + var no_label; + var message = ""; + /* Single "Remove from list" link has a biblionumber data-attribute */ + if( $(this).data("biblionumber") ){ + /* Use the checkbox with that value to preview the title in the confirmation */ + var selected_titles = $(".cb[value='" + $(this).data("biblionumber") + "'"); + var href = $(this).attr("href"); } else { + var selected_titles = $(".cb:checked"); + } + if ( selected_titles.size() < 1 ) { alert( _("No item was selected") ); - return false; + } else { + if( selected_titles.size() > 1 ){ + message = $("
    "); + title = _("Are you sure you want to remove these items from the list?"); + yes_label = _("Yes, delete from list"); + no_label = _("No, do not delete from list"); + selected_titles.each(function(){ + message.append( "
  • " + $(this).data("title") + "
  • " ); + }); + } else { + title = _("Are you sure you want to remove this item from the list?"); + yes_label = _("Yes, delete from list"); + no_label = _("No, do not delete from list"); + selected_titles.each(function(){ + message += $(this).data("title"); + }); + } + confirmModal( message, title, yes_label, no_label, function( result ){ + if( result ){ + if( href ){ + location.href= href; + } else { + $("#myform").submit(); + } + } + }); } }); - $("#removeitems").html(" "+_("Remove from list")+"") - .click(function(){ - $("#myform").submit(); - return false; - }); + + $("#removeitems").html(" "+_("Remove from list")+""); [% END %] [% IF OpenLibraryCovers %]KOHA.OpenLibrary.GetCoverFromIsbn();[% END %] [% IF OPACLocalCoverImages %]KOHA.LocalCover.GetCoverFromBibnumber(false);[% END %] -- 2.30.2