X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Fquerytable%2Fstatic%2Fjs%2Fquerytable.js;h=6fc65617ab210e44103fd5b43fd4bb35a144d801;hb=5e315adb266ab4a89e885f8c2eef2e3eb8301ae3;hp=42dfee5eb27a7044e44826c6a18337d6c6ef3068;hpb=c18db44fd7a666c17c60769db57a4e23e64bc7ea;p=myslice.git diff --git a/plugins/querytable/static/js/querytable.js b/plugins/querytable/static/js/querytable.js index 42dfee5e..6fc65617 100644 --- a/plugins/querytable/static/js/querytable.js +++ b/plugins/querytable/static/js/querytable.js @@ -7,7 +7,9 @@ (function($) { var debug=false; -// debug=true + debug=true + var debug_deep=false; +// debug_deep=true; var QueryTable = Plugin.extend({ @@ -63,7 +65,7 @@ on_show: function(e) { var self = e.data; - self.table.fnAdjustColumnSizing() + self.redraw_table(); }, // on_show /* GUI EVENTS */ @@ -74,21 +76,34 @@ // compute columns based on columns and hidden_columns this.slick_columns = []; var all_columns = this.options.columns; // .concat(this.options.hidden_columns) + // xxx would be helpful to support a column_renamings options arg + // for redefining some labels like 'network_hrn' that really are not meaningful for (c in all_columns) { var column=all_columns[c]; - this.slick_columns.push ( {id:column, name:column, field:column }); + this.slick_columns.push ( {id:column, name:column, field:column, + cssClass: "querytable-column-"+column, + width:100, minWidth:40, }); } // xxx should be extensible from caller with this.options.slickgrid_options this.slick_options = { enableCellNavigation: false, enableColumnReorder: true, + showHeaderRow: true, + syncColumnCellResize: true, }; - this.slick_data=[]; + this.slick_data = []; + this.slick_dataview = new Slick.Data.DataView(); + var self=this; + this.slick_dataview.onRowCountChanged.subscribe ( function (e,args) { + self.slick_grid.updateRowCount(); + self.slick_grid.autosizeColumns(); + self.slick_grid.render(); + }); var selector="#grid-"+this.options.domid; - if (debug) { + if (debug_deep) { messages.debug("slick grid selector is " + selector); for (c in this.slick_columns) { var col=this.slick_columns[c]; @@ -102,66 +117,41 @@ cssClass: "slick-cell-checkboxsel" }); this.slick_columns.push(checkbox_selector.getColumnDefinition()); - this.slick_grid = new Slick.Grid(selector, this.slick_data, this.slick_columns, this.slick_options); + this.slick_grid = new Slick.Grid(selector, this.slick_dataview, this.slick_columns, this.slick_options); this.slick_grid.setSelectionModel (new Slick.RowSelectionModel ({selectActiveRow: false})); this.slick_grid.registerPlugin (checkbox_selector); + // autotooltips: for showing the full column name when ellipsed + var auto_tooltips = new Slick.AutoTooltips ({ enableForHeaderCells: true }); + this.slick_grid.registerPlugin (auto_tooltips); this.columnpicker = new Slick.Controls.ColumnPicker (this.slick_columns, this.slick_grid, this.slick_options) - }, // initialize_table - // Determine index of key in the table columns - getColIndex: function(key, cols) { - var tabIndex = $.map(cols, function(x, i) { if (x.sTitle == key) return i; }); - return (tabIndex.length > 0) ? tabIndex[0] : -1; - }, // getColIndex - - checkbox_html : function (key, value) { -// if (debug) messages.debug("checkbox_html, value="+value); - var result=""; - // Prefix id with plugin_uuid - result += "