Bug 31364: Check length of the multiple syspref array instead whether it is null
authorJoonas Kylmälä <joonas.kylmala@iki.fi>
Sun, 4 Sep 2022 11:37:46 +0000 (14:37 +0300)
committerTomas Cohen Arazi <tomascohen@theke.io>
Wed, 7 Sep 2022 19:07:00 +0000 (12:07 -0700)
The multiple systempreferences are always defined as an empty array at
the minimum, so in order to determine whether we need to remove all
the selections from the systempreference we should check whether the
array is empty and not whether the array doesn't exist.

To test:
 1) Set at least 1 value for OPACHoldsIfAvailableAtPickupExceptions
 2) Remove all the values for OPACHoldsIfAvailableAtPickupExceptions
 and notice you get the message "Nothing to save"
 3) Apply patch and repeat, removing all the values should work now.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
koha-tmpl/intranet-tmpl/prog/js/pages/preferences.js

index fb63d4b..f5da1d9 100644 (file)
@@ -13,7 +13,7 @@ KOHA.Preferences = {
         // If a multiple select has all its entries unselected
         var unserialized = new Array();
         $(modified_prefs).each(function(){
-            if ( $(this).attr('multiple') && $(this).val() == null ) {
+            if ( $(this).attr('multiple') && $(this).val().length == 0 ) {
                 unserialized.push($(this));
             }
         });