diff options
Diffstat (limited to 'sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/resultTable/resultTable.js')
-rw-r--r-- | sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/resultTable/resultTable.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/resultTable/resultTable.js b/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/resultTable/resultTable.js new file mode 100644 index 000000000..6c7cf558d --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/resultTable/resultTable.js @@ -0,0 +1,55 @@ +(function( $, app ) { + + var ui = app.ns("ui"); + + ui.ResultTable = ui.Table.extend({ + defaults: { + width: 500, + height: 400 + }, + + init: function() { + this._super(); + this.on("rowClick", this._showPreview_handler); + this.selectedRow = null; + $(document).bind("keydown", this._nav_handler); + }, + remove: function() { + $(document).unbind("keydown", this._nav_handler); + this._super(); + }, + attach: function(parent) { + if(parent) { + var height = parent.height() || ( $(document).height() - parent.offset().top - 41 ); // 41 = height in px of .uiTable-tools + uiTable-header + var width = parent.width(); + this.el.width( width ); + this.body.width( width ).height( height ); + } + this._super(parent); + }, + showPreview: function(row) { + row.addClass("selected"); + this.preview = new app.ui.JsonPanel({ + title: i18n.text("Browser.ResultSourcePanelTitle"), + json: row.data("row")._source, + onClose: function() { row.removeClass("selected"); } + }); + }, + _nav_handler: function(jEv) { + if(jEv.keyCode !== 40 && jEv.keyCode !== 38) { + return; + } + this.selectedRow && this.preview && this.preview.remove(); + if(jEv.keyCode === 40) { // up arrow + this.selectedRow = this.selectedRow ? this.selectedRow.next("TR") : this.body.find("TR:first"); + } else if(jEv.keyCode === 38) { // down arrow + this.selectedRow = this.selectedRow ? this.selectedRow.prev("TR") : this.body.find("TR:last"); + } + this.selectedRow && this.showPreview(this.selectedRow); + }, + _showPreview_handler: function(obj, data) { + this.showPreview(this.selectedRow = data.row); + } + }); + +})( this.jQuery, this.app ); |