Bug 22553: Unchecking a subpermission does not uncheck the top level permission
authorOwen Leonard <oleonard@myacpl.org>
Tue, 9 Apr 2019 13:21:08 +0000 (13:21 +0000)
committerNick Clemens <nick@bywatersolutions.com>
Wed, 10 Apr 2019 20:06:50 +0000 (20:06 +0000)
This patch makes a minor change to the set permissions page's JavaScript
so that unchecking a subpermission will uncheck the top level
permission.

To test, apply the patch and open the "Set permissions" page for a
patron.

 - Expand a permission with multiple subpermissions.
 - Check the top level permission. All subpermissions should be checked.
 - Uncheck one of the subpermissions. The top level permission should
   now be unchecked.

Signed-off-by: Liz Rea <wizzyrea@gmail.com>

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

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

koha-tmpl/intranet-tmpl/prog/en/modules/members/member-flags.tt

index a777dda..6c65d69 100644 (file)
 
             $(".flag").on("change",function(e){
                 e.preventDefault();
-                var bit = $(this).data("bit");
-                if( $(this).is(":checked") ){
-                    $("#flag-" + bit + "-children").show().find(".flag").prop("checked", true);
-                    $(".toggle-" + bit + ".togglechildren_on").hide();
-                    $(".toggle-" + bit + ".togglechildren_off").show();
+                if( $(this).hasClass("child") ){
+                    $(this).closest(".parent").find(".flag.parent").prop("checked", false);
                 } else {
-                    $("#flag-" + bit + "-children").show().find(".flag").prop("checked", false);
+                    var bit = $(this).data("bit");
+                    if( $(this).is(":checked") ){
+                        $("#flag-" + bit + "-children").show().find(".flag").prop("checked", true);
+                        $(".toggle-" + bit + ".togglechildren_on").hide();
+                        $(".toggle-" + bit + ".togglechildren_off").show();
+                    } else {
+                        $("#flag-" + bit + "-children").show().find(".flag").prop("checked", false);
+                    }
                 }
             });