Bug 18980: Add js to dynamically show/hide the Anyone remark
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Wed, 21 Jun 2017 14:24:57 +0000 (16:24 +0200)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 10 Aug 2017 16:20:31 +0000 (13:20 -0300)
If we we move from Private to Public or vice versa, this should reflect
on the Anyone remark from the first patch.
If we go back to a private list without shares, we should show it.

Handled in a js sub AdjustRemark, triggered by onchange of the category
combo or the permission combo.

Test plan:
[1] Edit a private list without shares in OPAC. Toggle category and/or
    permissions. Is the remark shown or hidden accordingly?
    Note: Include a test with OpacAllowPublicListCreation enabled.
[2] Edit a shared list or public list in staff. Toggle category/permissions.
    You should never see the remark.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Marc VĂ©ron <veron@veron.ch>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt
koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt

index 2b32ca0..f26acd4 100644 (file)
@@ -12,7 +12,7 @@
 [% BLOCK list_permissions %]
     <li>
         <label for="allow_changes_from">Allow changes to contents from: </label>
-        <select name="allow_changes_from" id="allow_changes_from">
+        <select name="allow_changes_from" id="allow_changes_from" onchange="AdjustRemark()">
 
             [% IF shelf.allow_change_from_owner %]<option value="0">Nobody</option>[% ELSE %]<option value="0" selected="selected">Nobody</option>[% END %]
 
@@ -25,7 +25,7 @@
             [% IF shelf.allow_change_from_others %]<option value="2" selected="selected">Anyone seeing this list</option>[% ELSE %]<option value="2">Anyone seeing this list</option>[% END %]
 
         </select>
-        &emsp; <span id="anyone_remark" style="color:red;">The Anyone permission has no actual effect while this list is strictly private.</span>
+        &emsp; <span id="anyone_remark" style="display:none;color:red;">The Anyone permission has no actual effect while this list is strictly private.</span>
     </li>
 [% END %]
 
@@ -215,6 +215,12 @@ $(document).ready(function(){
         }
     });
 });
+[% END %]
+
+[% IF shelf AND op == 'edit_form' %]
+$(document).ready(function(){
+    AdjustRemark();
+});
 [% END %]
 
     /**
@@ -305,6 +311,25 @@ function placeHold () {
             return false;
         }
     }
+
+function AdjustRemark() {
+    var category = $("#category").val();
+    var perms = $("#allow_changes_from").val();
+
+    if( perms < 2 ) {
+        $("#anyone_remark").hide();
+    } else if( category==1 ) {
+        // If we move to Private (without shares), show Anyone remark
+        // Note: the number of shares is not tested real-time
+        [% IF !shelf.is_shared %]
+            $("#anyone_remark").show();
+        [% ELSE %]
+            $("#anyone_remark").hide();
+        [% END %]
+    } else { // category==2
+        $("#anyone_remark").hide();
+    }
+}
 //]]>
 </script>
 </head>
@@ -556,7 +581,7 @@ function placeHold () {
             [% IF shelf.sortfield == "itemcallnumber" %]<option value="itemcallnumber" selected="selected">Call number</option>[% ELSE %]<option value="itemcallnumber">Call number</option>[% END %]
             </select></li>
             <li><label for="category">Category: </label>
-                <select id="category" name="category">
+                <select id="category" name="category" onchange="AdjustRemark()">
                 [% IF shelf.is_private %]
                     <option value="1" selected="selected">Private</option>
                 [% ELSE %]
index f6922f1..0417531 100644 (file)
@@ -13,7 +13,7 @@
 [% BLOCK list_permissions %]
     <li>
         <label for="allow_changes_from">Allow changes to contents from: </label>
-        <select name="allow_changes_from" id="allow_changes_from">
+        <select name="allow_changes_from" id="allow_changes_from" onchange="AdjustRemark()">
 
             [% IF shelf.allow_change_from_owner %]<option value="0">Nobody</option>[% ELSE %]<option value="0" selected="selected">Nobody</option>[% END %]
 
@@ -26,7 +26,7 @@
             [% IF shelf.allow_change_from_others %]<option value="2" selected="selected">Anyone seeing this list</option>[% ELSE %]<option value="2">Anyone seeing this list</option>[% END %]
 
         </select>
-        &emsp; <span id="anyone_remark" style="color:red;">The Anyone permission has no actual effect while this list is strictly private.</span>
+        &emsp; <span id="anyone_remark" style="display:none;color:red;">The Anyone permission has no actual effect while this list is strictly private.</span>
     </li>
 [% END %]
 
                                     [% IF Koha.Preference('OpacAllowPublicListCreation') OR category == PUBLIC %]
                                         <li>
                                             <label for="category">Category:</label>
-                                            <select name="category" id="category">
+                                            <select name="category" id="category" onchange="AdjustRemark()">
                                                 [% IF shelf.is_private %]
                                                         <option value="1" selected="selected">Private</option>
                                                     [% ELSE %]
@@ -934,6 +934,8 @@ $(function() {
         window.print();
         setTimeout('window.close()', 1);
     [% END %]
+
+    AdjustRemark();
 }); // document.ready
 
 function Check(f) {
@@ -953,6 +955,30 @@ function Check(f) {
         alert(alertString2);
     }
 }
+
+function AdjustRemark() {
+    var category;
+    if( $("#category").length > 0 ) {
+        category = $("#category").val();
+    } else {
+        category = [% category %];
+    }
+    var perms = $("#allow_changes_from").val();
+
+    if( perms < 2 ) {
+        $("#anyone_remark").hide();
+    } else if( category==1 ) {
+        // If we move to Private (without shares), show Anyone remark
+        // Note: the number of shares is not tested real-time
+        [% IF !shelf.is_shared %]
+            $("#anyone_remark").show();
+        [% ELSE %]
+            $("#anyone_remark").hide();
+        [% END %]
+    } else { // category==2
+        $("#anyone_remark").hide();
+    }
+}
 //]]>
 </script>
 [% END %]