From f22f2e2a1bc7b98ec17293d9f360cee3ac837cb7 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Mon, 22 Feb 2010 10:02:05 +0000 Subject: [PATCH] ENHANCEMENT Disabling/checking permission checkboxes in admin/security when 'ADMIN' permission is selected git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@99600 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- javascript/SecurityAdmin.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/javascript/SecurityAdmin.js b/javascript/SecurityAdmin.js index 9c084fc6..b390b46c 100755 --- a/javascript/SecurityAdmin.js +++ b/javascript/SecurityAdmin.js @@ -61,6 +61,37 @@ return false; } }); + + /** + * Automatically check and disable all checkboxes if ADMIN permissions are selected. + * As they're disabled, any changes won't be submitted (which is intended behaviour), + * checking all boxes is purely presentational. + */ + $('#Form_EditForm #Permissions .checkbox[value=ADMIN]').concrete({ + onmatch: function() { + this.toggleCheckboxes(); + + this._super(); + }, + onclick: function(e) { + this.toggleCheckboxes(); + }, + toggleCheckboxes: function() { + var self = this, checkboxes = this.parents('.permissioncheckboxset:eq(0)').find('.checkbox').not(this); + if(this.is(':checked')) { + checkboxes.each(function() { + $(this).data('SecurityAdmin.oldChecked', $(this).attr('checked')); + $(this).attr('disabled', 'disabled'); + $(this).attr('checked', 'checked'); + }); + } else { + checkboxes.each(function() { + $(this).attr('checked', $(this).data('SecurityAdmin.oldChecked')); + $(this).attr('disabled', ''); + }); + } + } + }); }); }(jQuery)); \ No newline at end of file