BUGFIX: Fix JS for PermissionCheckboxsetField in SecurityAdmin

This commit is contained in:
madmatt 2014-01-15 15:51:35 +13:00
parent ac1658b500
commit e69e65c1e3
2 changed files with 17 additions and 20 deletions

View File

@ -60,15 +60,15 @@
if(this.is(':checked')) { if(this.is(':checked')) {
checkboxes.each(function() { checkboxes.each(function() {
$(this).data('SecurityAdmin.oldChecked', $(this).attr('checked')); $(this).data('SecurityAdmin.oldChecked', $(this).is(':checked'));
$(this).data('SecurityAdmin.oldDisabled', $(this).attr('disabled')); $(this).data('SecurityAdmin.oldDisabled', $(this).is(':disabled'));
$(this).attr('disabled', 'disabled'); $(this).prop('disabled', true);
$(this).attr('checked', 'checked'); $(this).prop('checked', true);
}); });
} else { } else {
checkboxes.each(function() { checkboxes.each(function() {
$(this).attr('checked', $(this).data('SecurityAdmin.oldChecked')); $(this).prop('checked', $(this).data('SecurityAdmin.oldChecked'));
$(this).attr('disabled', $(this).data('SecurityAdmin.oldDisabled')); $(this).prop('disabled', $(this).data('SecurityAdmin.oldDisabled'));
}); });
} }
} }

View File

@ -10,8 +10,6 @@
$('.permissioncheckboxset .valADMIN input').entwine({ $('.permissioncheckboxset .valADMIN input').entwine({
onmatch: function() { onmatch: function() {
this._super(); this._super();
this.toggleCheckboxes();
}, },
onunmatch: function() { onunmatch: function() {
this._super(); this._super();
@ -55,13 +53,7 @@
}).find('.checkbox').not(this); }).find('.checkbox').not(this);
}, },
onmatch: function() { onmatch: function() {
var checkboxes = this.getCheckboxesExceptThisOne(); this.toggleCheckboxes();
if($(this).is(':checked')) {
checkboxes.each(function() {
$(this).attr('disabled', 'disabled');
$(this).attr('checked', 'checked');
});
}
this._super(); this._super();
}, },
@ -69,16 +61,21 @@
this._super(); this._super();
}, },
onclick: function(e) { onclick: function(e) {
this.toggleCheckboxes();
},
toggleCheckboxes: function() {
var checkboxes = this.getCheckboxesExceptThisOne(); var checkboxes = this.getCheckboxesExceptThisOne();
if($(this).is(':checked')) { if($(this).is(':checked')) {
checkboxes.each(function() { checkboxes.each(function() {
$(this).attr('disabled', 'disabled'); $(this).data('PermissionCheckboxSetField.oldChecked', $(this).is(':checked'));
$(this).attr('checked', 'checked'); $(this).data('PermissionCheckboxSetField.oldDisabled', $(this).is(':disabled'));
$(this).prop('disabled', 'disabled');
$(this).prop('checked', 'checked');
}); });
} else { } else {
checkboxes.each(function() { checkboxes.each(function() {
$(this).prop('checked', false); $(this).prop('checked', $(this).data('PermissionCheckboxSetField.oldChecked'));
$(this).prop('disabled', false); $(this).prop('disabled', $(this).data('PermissionCheckboxSetField.oldDisabled'));
}); });
} }
} }