diff options
Diffstat (limited to 'sdnr/wt/devicemanager/provider/src/test/resources/elasticsearch/plugins/head/src/app/ui/menuPanel')
2 files changed, 73 insertions, 0 deletions
diff --git a/sdnr/wt/devicemanager/provider/src/test/resources/elasticsearch/plugins/head/src/app/ui/menuPanel/menuPanel.css b/sdnr/wt/devicemanager/provider/src/test/resources/elasticsearch/plugins/head/src/app/ui/menuPanel/menuPanel.css new file mode 100644 index 000000000..8236a856f --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/resources/elasticsearch/plugins/head/src/app/ui/menuPanel/menuPanel.css @@ -0,0 +1,30 @@ +.uiMenuPanel { + border: 1px solid #668dc6; + position: absolute; + background: #96c6eb; + color: white; +} + +.uiMenuPanel LI { + list-style: none; + border-bottom: 1px solid #668dc6; +} + +.uiMenuPanel LI:hover { + background: #2575b7; +} + +.uiMenuPanel LI:last-child { + border-bottom: 0; +} + +.uiMenuPanel-label { + white-space: nowrap; + padding: 2px 10px 2px 10px; + cursor: pointer; +} + +.disabled .uiMenuPanel-label { + cursor: auto; + color: #888; +} diff --git a/sdnr/wt/devicemanager/provider/src/test/resources/elasticsearch/plugins/head/src/app/ui/menuPanel/menuPanel.js b/sdnr/wt/devicemanager/provider/src/test/resources/elasticsearch/plugins/head/src/app/ui/menuPanel/menuPanel.js new file mode 100644 index 000000000..631ea5b4c --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/resources/elasticsearch/plugins/head/src/app/ui/menuPanel/menuPanel.js @@ -0,0 +1,43 @@ +(function( app ) { + + var ui = app.ns("ui"); + + ui.MenuPanel = ui.AbstractPanel.extend({ + defaults: { + items: [], // (required) an array of menu items + modal: false + }, + _baseCls: "uiMenuPanel", + init: function() { + this._super(); + this.el = $(this._main_template()); + }, + open: function(jEv) { + this._super(jEv); + var cx = this; setTimeout(function() { $(document).bind("click", cx._close_handler); }, 50); + }, + _getItems: function() { + return this.config.items; + }, + _close_handler: function(jEv) { + this._super(jEv); + $(document).unbind("click", this._close_handler); + }, + _main_template: function() { + return { tag: "DIV", cls: this._baseCls, children: this._getItems().map(this._menuItem_template, this) }; + }, + _menuItem_template: function(item) { + var dx = item.disabled ? { onclick: function() {} } : {}; + return { tag: "LI", cls: "uiMenuPanel-item" + (item.disabled ? " disabled" : "") + (item.selected ? " selected" : ""), children: [ $.extend({ tag: "DIV", cls: "uiMenuPanel-label" }, item, dx ) ] }; + }, + _getPosition: function(jEv) { + var right = !! $(jEv.target).parents(".pull-right").length; + var parent = $(jEv.target).closest("BUTTON"); + return parent.vOffset() + .addY(parent.vSize().y) + .addX( right ? parent.vSize().x - this.el.vOuterSize().x : 0 ) + .asOffset(); + } + }); + +})( this.app ); |