From f90f66aedd4d9bd5d175d0f56ff863caaaf044cc Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Mon, 22 Feb 2010 10:11:54 +0000 Subject: [PATCH] MINOR Moved permission checkbox logic from SecurityAdmin.js to MemberTableField.js in order to have it working in the member popup as well git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@99602 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- javascript/MemberTableField.js | 36 ++++++++++++++++++++++++++++++++++ javascript/SecurityAdmin.js | 31 ----------------------------- 2 files changed, 36 insertions(+), 31 deletions(-) diff --git a/javascript/MemberTableField.js b/javascript/MemberTableField.js index 823b2de9..7f7d7808 100755 --- a/javascript/MemberTableField.js +++ b/javascript/MemberTableField.js @@ -1,3 +1,39 @@ +(function($) { + $.concrete('ss', function($){ + /** + * 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. + */ + $('#Permissions .checkbox[value=ADMIN]').concrete({ + onmatch: function() { + this.toggleCheckboxes(); + + this._super(); + }, + onclick: function(e) { + this.toggleCheckboxes(); + }, + toggleCheckboxes: function() { + var self = this, checkboxes = this.parents('.field: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)); + /** * Modified 2006-10-05, Ingo Schommer * This is more or less a copy of Member.js, with additions and changes diff --git a/javascript/SecurityAdmin.js b/javascript/SecurityAdmin.js index b390b46c..9c084fc6 100755 --- a/javascript/SecurityAdmin.js +++ b/javascript/SecurityAdmin.js @@ -61,37 +61,6 @@ 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