diff options
Diffstat (limited to 'web-ui/app/js/mixins/with_enable_disable_on_event.js')
-rw-r--r-- | web-ui/app/js/mixins/with_enable_disable_on_event.js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/web-ui/app/js/mixins/with_enable_disable_on_event.js b/web-ui/app/js/mixins/with_enable_disable_on_event.js new file mode 100644 index 00000000..fa574a97 --- /dev/null +++ b/web-ui/app/js/mixins/with_enable_disable_on_event.js @@ -0,0 +1,34 @@ +/*global Smail */ +/*global _ */ + +define([], + function () { + 'use strict'; + + function withEnableDisableOnEvent(ev) { + return function () { + this.disableElement = function () { + this.$node.attr('disabled', 'disabled'); + }; + + this.enableElement = function () { + this.$node.removeAttr('disabled'); + }; + + this.toggleEnabled = function (ev, enable) { + if (enable) { + this.enableElement(); + } else { + this.disableElement(); + } + }; + + this.after('initialize', function () { + this.on(document, ev, this.toggleEnabled); + }); + }; + } + + return withEnableDisableOnEvent; + } +); |