65 lines
1.9 KiB
JavaScript
65 lines
1.9 KiB
JavaScript
(function ($) {
|
|
|
|
/**
|
|
* Behavior to disable the "unflag" option if "flag" is not available.
|
|
*/
|
|
Drupal.behaviors.flagRoles = {};
|
|
Drupal.behaviors.flagRoles.attach = function(context) {
|
|
$('#flag-roles input.flag-access', context).change(function() {
|
|
var unflagCheckbox = $(this).parents('tr:first').find('input.unflag-access').get(0);
|
|
if (this.checked) {
|
|
// If "flag" is available, restore the state of the "unflag" checkbox.
|
|
unflagCheckbox.disabled = false;
|
|
if (typeof(unflagCheckbox.previousFlagState) != 'undefined') {
|
|
unflagCheckbox.checked = unflagCheckbox.previousFlagState;
|
|
}
|
|
else {
|
|
unflagCheckbox.checked = true;
|
|
}
|
|
}
|
|
else {
|
|
// Remember if the "unflag" option was checked or unchecked, then disable.
|
|
unflagCheckbox.previousFlagState = unflagCheckbox.checked;
|
|
unflagCheckbox.disabled = true;
|
|
unflagCheckbox.checked = false;
|
|
}
|
|
});
|
|
|
|
$('#flag-roles input.unflag-access', context).change(function() {
|
|
if ($(this).parents('table:first').find('input.unflag-access:enabled:not(:checked)').size() == 0) {
|
|
$('div.form-item-unflag-denied-text').slideUp();
|
|
}
|
|
else {
|
|
$('div.form-item-unflag-denied-text').slideDown();
|
|
}
|
|
});
|
|
|
|
// Hide the link options by default if needed.
|
|
if ($('#flag-roles input.unflag-access:enabled:not(:checked)').size() == 0) {
|
|
$('div.form-item-unflag-denied-text').css('display', 'none');
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Vertical tabs integration.
|
|
*/
|
|
Drupal.behaviors.flagSummary = {};
|
|
|
|
Drupal.behaviors.flagSummary.attach = function (context) {
|
|
$('fieldset.flag-fieldset', context).drupalSetSummary(function(context) {
|
|
var flags = [];
|
|
$('input:checkbox:checked', context).each(function() {
|
|
flags.push(this.title);
|
|
});
|
|
|
|
if (flags.length) {
|
|
return flags.join(', ');
|
|
}
|
|
else {
|
|
return Drupal.t('No flags');
|
|
}
|
|
});
|
|
};
|
|
|
|
})(jQuery);
|