aboutsummaryrefslogtreecommitdiffstats
path: root/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/resultTable/resultTable.js
diff options
context:
space:
mode:
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.js55
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 );