From 32d04cbaf70efb8580a00ef520ae489041b7d69a Mon Sep 17 00:00:00 2001
From: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Date: Wed, 25 Aug 2021 11:47:18 +0200
Subject: [PATCH] Bug 28882: Disable select/hide all links
Content-Type: text/plain; charset=utf-8

We want to prevent non-superlibrarian users to remove superlibrarian
flag.
It's handled already in the controller, but needs to be done
client-side.

Here we are disabling the select/hide all links to remove the remaining
possibility to remove the superlibrarian flag from non-superlibrarian
users.

Signed-off-by: Hayley Pelham <hayleypelham@catalyst.net.nz>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
---
 .../prog/en/modules/members/member-flags.tt   | 51 +++++++++++--------
 1 file changed, 29 insertions(+), 22 deletions(-)

diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member-flags.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/member-flags.tt
index d2f4156f51..6acb98bceb 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member-flags.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/member-flags.tt
@@ -127,28 +127,35 @@
         var Sticky;
         $(document).ready(function() {
 
-            $("#CheckAllFlags").on("click",function(){
-                $(".flag").attr("disabled", false);
-                $(".flag").prop("checked", true);
-                $("#flag-0").prop("checked", false);
-                [% IF disable_superlibrarian_privs %]
-                    $("#flag-0").prop("disabled", true);
-                [% END %]
-                return false;
-            });
-            $("#UncheckAllFlags").on("click",function(){
-                $(".flag").attr("disabled", false);
-                [% IF disable_superlibrarian_privs %]
-                    $("#flag-0").prop("disabled", true);
-                [% END %]
-                $(".flag").prop("checked", false);
-                return false;
-            });
-            $(".flag").change(function(){
-                if(!$(this).is(':checked')){
-                    $("input#flag-0").prop("checked", false);
-                }
-            });
+            [% IF disable_superlibrarian_privs && patron.is_superlibrarian %]
+                $("#CheckAllFlags,#UncheckAllFlags")
+                    .attr("disabled", true)
+                    .attr("title", _("The system preference ProtectSuperlibrarian is enabled"))
+                    .on("click", function(e){e.preventDefault()});
+            [% ELSE %]
+                $("#CheckAllFlags").on("click",function(){
+                    $(".flag").attr("disabled", false);
+                    $(".flag").prop("checked", true);
+                    $("#flag-0").prop("checked", false);
+                    [% IF disable_superlibrarian_privs %]
+                        $("#flag-0").prop("disabled", true);
+                    [% END %]
+                    return false;
+                });
+                $("#UncheckAllFlags").on("click",function(){
+                    $(".flag").attr("disabled", false);
+                    [% IF disable_superlibrarian_privs %]
+                        $("#flag-0").prop("disabled", true);
+                    [% END %]
+                    $(".flag").prop("checked", false);
+                    return false;
+                });
+                $(".flag").change(function(){
+                    if(!$(this).is(':checked')){
+                        $("input#flag-0").prop("checked", false);
+                    }
+                });
+            [% END %]
 
             Sticky = $("#permissions_toolbar");
             Sticky.hcSticky({
-- 
2.20.1