Skip to content

Commit

Permalink
MINOR Moved permission checkbox logic from SecurityAdmin.js to Member…
Browse files Browse the repository at this point in the history
…TableField.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
  • Loading branch information
chillu committed Feb 22, 2010
1 parent f22f2e2 commit f90f66a
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 31 deletions.
36 changes: 36 additions & 0 deletions javascript/MemberTableField.js
Original file line number Diff line number Diff line change
@@ -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
Expand Down
31 changes: 0 additions & 31 deletions javascript/SecurityAdmin.js
Original file line number Diff line number Diff line change
Expand Up @@ -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));

0 comments on commit f90f66a

Please sign in to comment.