aboutsummaryrefslogtreecommitdiffstats
path: root/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/button/button.js
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/button/button.js')
-rw-r--r--sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/button/button.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/button/button.js b/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/button/button.js
new file mode 100644
index 000000000..57f83a083
--- /dev/null
+++ b/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/button/button.js
@@ -0,0 +1,53 @@
+(function( $, joey, app ) {
+
+ var ui = app.ns("ui");
+
+ ui.Button = ui.AbstractWidget.extend({
+ defaults : {
+ label: "", // the label text
+ disabled: false, // create a disabled button
+ autoDisable: false // automatically disable the button when clicked
+ },
+
+ _baseCls: "uiButton",
+
+ init: function(parent) {
+ this._super();
+ this.el = $.joey(this.button_template())
+ .bind("click", this.click_handler);
+ this.config.disabled && this.disable();
+ this.attach( parent );
+ },
+
+ click_handler: function(jEv) {
+ if(! this.disabled) {
+ this.fire("click", jEv, this);
+ this.config.autoDisable && this.disable();
+ }
+ },
+
+ enable: function() {
+ this.el.removeClass("disabled");
+ this.disabled = false;
+ return this;
+ },
+
+ disable: function(disable) {
+ if(disable === false) {
+ return this.enable();
+ }
+ this.el.addClass("disabled");
+ this.disabled = true;
+ return this;
+ },
+
+ button_template: function() { return (
+ { tag: 'BUTTON', type: 'button', id: this.id(), cls: this._baseCls, children: [
+ { tag: 'DIV', cls: 'uiButton-content', children: [
+ { tag: 'DIV', cls: 'uiButton-label', text: this.config.label }
+ ] }
+ ] }
+ ); }
+ });
+
+})( this.jQuery, this.joey, this.app );