Bug 9439 - Enforce superlibrarian mutual exclusivity of other permissions
Basically, when you check the checkbox for the superlibrarian permission in the patron record, it will disable and uncheck all the other permission checkboxes. When you uncheck the checkbox for the superlibrarian permission, it will renable those boxes. There is also some JS code there to ensure that the other boxes are disabled when returning to the change permission screen (i.e. the patch is not just a click handler). In the event that the checkboxes for superlibrarian and other permissions are already checked, the user will be shown a pop-up window explaining that the superlibrarian permission is mutually exclusive to the others (since it already includes the others) and that the permissions for that patron will then be reset to just include the superlibrarian permission. Comment: Tested on master. Works as described. Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com> Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
This commit is contained in:
parent
d534035eb9
commit
0839645894
1 changed files with 31 additions and 0 deletions
|
@ -7,6 +7,37 @@
|
|||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$("#permissionstree").treeview({animated: "fast", collapsed: true});
|
||||
|
||||
// Enforce Superlibrarian Privilege Mutual Exclusivity
|
||||
if($('input[id="flag-0"]:checked').length){
|
||||
if ($('input[name="flag"]:checked').length > 1){
|
||||
alert('Inconsistency Detected!\n\nThe superlibrarian privilege is mutually exclusive of other privileges, as it includes them all.\n\nThis patron\'s privileges will now be reset to include only superlibrarian.');
|
||||
}
|
||||
|
||||
$('input[name="flag"]').each(function() {
|
||||
if($(this).attr('id') != "flag-0"){
|
||||
$(this).attr('disabled', 'disabled');
|
||||
$(this).removeAttr('checked', 'checked');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$('input#flag-0').click(function() {
|
||||
if($('input[id="flag-0"]:checked').length){
|
||||
$('input[name="flag"]').each(function() {
|
||||
if($(this).attr('id') != "flag-0"){
|
||||
$(this).attr('disabled', 'disabled');
|
||||
$(this).removeAttr('checked', 'checked');
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
$('input[name="flag"]').each(function() {
|
||||
$(this).removeAttr('disabled', 'disabled');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
<!-- manage checking/unchecking parent permissions -->
|
||||
|
|
Loading…
Reference in a new issue