Bug 26008: Remove the use of jquery.checkboxes plugin from OPAC cart
authorOwen Leonard <oleonard@myacpl.org>
Fri, 17 Jul 2020 14:43:39 +0000 (14:43 +0000)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 13 Aug 2020 05:55:42 +0000 (07:55 +0200)
This patch removes the use of the jquery.checkboxes plugin from the OPAC
cart and replaces its functionality with "plain" jQuery.

To test, apply the patch and add some items to the Cart in the OPAC.

 - Open the Cart window in the OPAC by clicking the "Cart" link in the
   header.
 - Test that the "Select all" and "Clear all" links work correctly to
   check and uncheck all checkboxes.
   - Controls like "Remove" and "Place hold" should be enabled or
     disabled according to whether there are any checked checkboxes.
 - Test that manually checking a checkbox correctly enables or disables
   the link options too.
 - Test that the "Remove" or "Place hold" controls work correctly,
   applying to only the checked checkboxes.

Signed-off-by: Sally <sally.healey@cheshiresharedservices.gov.uk>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Bug 26008: (follow-up) Removed checkboxed class

This patch removes the "checkboxed" class which was previously
associated with the jquery.checkboxes plugin and is now obsolete.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-basket.tt

index d85427b..9ce442d 100644 (file)
@@ -81,7 +81,7 @@
                         </div> <!-- /#floating -->
 
                         [% IF ( verbose ) %]
-                            <form action="opac-basket.pl" method="get" name="bookbag_form" id="bookbag_form" class="checkboxed">
+                            <form action="opac-basket.pl" method="get" name="bookbag_form" id="bookbag_form">
                                 [% FOREACH BIBLIO_RESULT IN BIBLIO_RESULTS %]
                                     <h2>
                                                 <input type="checkbox" class="cb" value="[% BIBLIO_RESULT.biblionumber | html %]" name="bib[% BIBLIO_RESULT.biblionumber | html %]" id="bib[% BIBLIO_RESULT.biblionumber | html %]">
 
                         [% ELSE %]
 
-                            <form action="/cgi-bin/koha/opac-basket.pl" method="get" name="bookbag_form" id="bookbag_form" class="checkboxed">
+                            <form action="/cgi-bin/koha/opac-basket.pl" method="get" name="bookbag_form" id="bookbag_form">
                                 <table id="itemst" class="table table-bordered table-striped">
                                     <thead>
                                         <tr>
 [% INCLUDE 'opac-bottom.inc' %]
 
 [% BLOCK jsinclude %]
-    [% Asset.js("lib/jquery/plugins/jquery.checkboxes.min.js") | $raw %]
     [% Asset.js("lib/hc-sticky.js") | $raw %]
         [% INCLUDE 'datatables.inc' %]
         <script>
                     tagCanceled();
                 });
 
-                $("#CheckAll").click(function(){
-                    var checked = [];
-                    $(".checkboxed").checkCheckboxes("*", true).each(
-                        function() {
-                            selRecord(this.value,true);
-                        }
-                    );
+                $("#CheckAll").click(function(e){
+                    e.preventDefault();
+                    $(".cb").each(function(){
+                        $(this).prop("checked", true);
+                        selRecord(this.value, true);
+                    });
                     enableCheckboxActions();
-                    return false;
                 });
 
-                $("#CheckNone").click(function(){
-                    var checked = [];
-                    $(".checkboxed").unCheckCheckboxes("*",true).each(
-                        function() {
-                            selRecord(this.value,false);
-                        }
-                    );
+                $("#CheckNone").click(function(e){
+                    e.preventDefault();
+                    $(".cb").each(function(){
+                        $(this).prop("checked", false);
+                        selRecord(this.value, false);
+                    });
                     enableCheckboxActions();
-                    return false;
                 });
 
                 if( $("#itemst").length > 0 ){
 
             function enableCheckboxActions(){
                 // Enable/disable controls if checkboxes are checked
-                var checkedBoxes = $(".checkboxed input:checkbox:checked");
-                if ($(checkedBoxes).size()) {
+                var checkedBoxes = $(".cb:checked");
+                if ( checkedBoxes.length ) {
                   $("#selections").html(_("With selected titles: "));
                   $("#selections-toolbar .links a").removeClass("disabled");
                 } else {