mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-08-26 12:36:07 +02:00
The main benefit of this is so that authors who make use of .editorconfig don't end up with whitespace changes in their PRs. Spaces vs. tabs has been left alone, although that could do with a tidy-up in SS4 after the switch to PSR-1/2. The command used was this: for match in '*.ss' '*.css' '*.scss' '*.html' '*.yml' '*.php' '*.js' '*.csv' '*.inc' '*.php5'; do find . -path ./thirdparty -not -prune -o -path ./admin/thirdparty -not -prune -o -type f -name "$match" -exec sed -E -i '' 's/[[:space:]]+$//' {} \+ find . -path ./thirdparty -not -prune -o -path ./admin/thirdparty -not -prune -o -type f -name "$match" | xargs perl -pi -e 's/ +$//' done
87 lines
2.7 KiB
JavaScript
87 lines
2.7 KiB
JavaScript
(function($) {
|
|
|
|
$.entwine('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.
|
|
*/
|
|
$('.permissioncheckboxset .valADMIN input').entwine({
|
|
onmatch: function() {
|
|
this._super();
|
|
},
|
|
onunmatch: function() {
|
|
this._super();
|
|
},
|
|
onclick: function(e) {
|
|
this.toggleCheckboxes();
|
|
},
|
|
toggleCheckboxes: function() {
|
|
var 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).data('SecurityAdmin.oldDisabled', $(this).attr('disabled'));
|
|
$(this).attr('disabled', 'disabled');
|
|
$(this).attr('checked', 'checked');
|
|
});
|
|
} else {
|
|
checkboxes.each(function() {
|
|
// only update attributes if previous values have been saved
|
|
var oldChecked = $(this).data('SecurityAdmin.oldChecked');
|
|
var oldDisabled = $(this).data('SecurityAdmin.oldDisabled');
|
|
if(oldChecked !== null) $(this).attr('checked', oldChecked);
|
|
if(oldDisabled !== null) $(this).attr('disabled', oldDisabled);
|
|
});
|
|
}
|
|
}
|
|
});
|
|
|
|
/**
|
|
* Automatically check all "CMS section" checkboxes when "Access to all CMS interfaces" is ticked.
|
|
*
|
|
* @todo This should really be abstracted into a declarative dependency system
|
|
* instead of custom logic.
|
|
*/
|
|
$('.permissioncheckboxset .valCMS_ACCESS_LeftAndMain input').entwine({
|
|
getCheckboxesExceptThisOne: function() {
|
|
return $(this).parents('.field:eq(0)').find('li').filter(function(i) {
|
|
var klass = $(this).attr('class');
|
|
return (klass ? klass.match(/CMS_ACCESS_/) : false);
|
|
}).find('.checkbox').not(this);
|
|
},
|
|
onmatch: function() {
|
|
this.toggleCheckboxes();
|
|
|
|
this._super();
|
|
},
|
|
onunmatch: function() {
|
|
this._super();
|
|
},
|
|
onclick: function(e) {
|
|
this.toggleCheckboxes();
|
|
},
|
|
toggleCheckboxes: function() {
|
|
var checkboxes = this.getCheckboxesExceptThisOne();
|
|
if($(this).is(':checked')) {
|
|
checkboxes.each(function() {
|
|
$(this).data('PermissionCheckboxSetField.oldChecked', $(this).is(':checked'));
|
|
$(this).data('PermissionCheckboxSetField.oldDisabled', $(this).is(':disabled'));
|
|
$(this).prop('disabled', 'disabled');
|
|
$(this).prop('checked', 'checked');
|
|
});
|
|
} else {
|
|
checkboxes.each(function() {
|
|
$(this).prop('checked', $(this).data('PermissionCheckboxSetField.oldChecked'));
|
|
$(this).prop('disabled', $(this).data('PermissionCheckboxSetField.oldDisabled'));
|
|
});
|
|
}
|
|
}
|
|
});
|
|
|
|
});
|
|
|
|
}(jQuery));
|