31 lines
1.0 KiB
JavaScript
31 lines
1.0 KiB
JavaScript
/**
|
|
* @file
|
|
* Extends core/misc/states.js.
|
|
*/
|
|
(function($) {
|
|
|
|
// Unbind core state.js from document first so we can then override below.
|
|
$(document).unbind('state:disabled');
|
|
|
|
/**
|
|
* Global state change handlers. These are bound to "document" to cover all
|
|
* elements whose state changes. Events sent to elements within the page
|
|
* bubble up to these handlers. We use this system so that themes and modules
|
|
* can override these state change handlers for particular parts of a page.
|
|
*/
|
|
$(document).bind('state:disabled', function(e) {
|
|
// Only act when this change was triggered by a dependency and not by the
|
|
// element monitoring itself.
|
|
if (e.trigger) {
|
|
$(e.target)
|
|
.attr('disabled', e.value)
|
|
.closest('.form-item, .form-submit, .form-wrapper').toggleClass('form-disabled', e.value)
|
|
.find(':input').attr('disabled', e.value);
|
|
|
|
// Note: WebKit nightlies don't reflect that change correctly.
|
|
// See https://bugs.webkit.org/show_bug.cgi?id=23789
|
|
}
|
|
});
|
|
|
|
})(jQuery);
|