diff options
Diffstat (limited to 'sdnr/wt/devicemanager/provider/src/test/resources/elasticsearch/plugins/head/src/app/ui/indexSelector/indexSelector.js')
-rw-r--r-- | sdnr/wt/devicemanager/provider/src/test/resources/elasticsearch/plugins/head/src/app/ui/indexSelector/indexSelector.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/sdnr/wt/devicemanager/provider/src/test/resources/elasticsearch/plugins/head/src/app/ui/indexSelector/indexSelector.js b/sdnr/wt/devicemanager/provider/src/test/resources/elasticsearch/plugins/head/src/app/ui/indexSelector/indexSelector.js new file mode 100644 index 000000000..7f51d5f74 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/resources/elasticsearch/plugins/head/src/app/ui/indexSelector/indexSelector.js @@ -0,0 +1,45 @@ +(function( $, app, i18n ) { + + var ui = app.ns("ui"); + + ui.IndexSelector = ui.AbstractWidget.extend({ + init: function(parent) { + this._super(); + this.el = $(this._main_template()); + this.attach( parent ); + this.cluster = this.config.cluster; + this.update(); + }, + update: function() { + this.cluster.get( "_stats", this._update_handler ); + }, + + _update_handler: function(data) { + var options = []; + var index_names = Object.keys(data.indices).sort(); + for(var i=0; i < index_names.length; i++) { + name = index_names[i]; + options.push(this._option_template(name, data.indices[name])); + } + this.el.find(".uiIndexSelector-select").empty().append(this._select_template(options)); + this._indexChanged_handler(); + }, + + _main_template: function() { + return { tag: "DIV", cls: "uiIndexSelector", children: i18n.complex( "IndexSelector.SearchIndexForDocs", { tag: "SPAN", cls: "uiIndexSelector-select" } ) }; + }, + + _indexChanged_handler: function() { + this.fire("indexChanged", this.el.find("SELECT").val()); + }, + + _select_template: function(options) { + return { tag: "SELECT", children: options, onChange: this._indexChanged_handler }; + }, + + _option_template: function(name, index) { + return { tag: "OPTION", value: name, text: i18n.text("IndexSelector.NameWithDocs", name, index.primaries.docs.count ) }; + } + }); + +})( this.jQuery, this.app, this.i18n ); |