X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Fquerytable%2Fstatic%2Fjs%2Fquerytable.js;h=57b260dc073c9f2ee1928d9b43629b9289b02a17;hb=df596019496a6fb2ad0a8e2c32f1a2310101cf49;hp=45d12aaeceef84570a1cb542b9964bee0af9c591;hpb=120979bd0e438477dfeb702ed99d06a3d257b9af;p=myslice.git diff --git a/plugins/querytable/static/js/querytable.js b/plugins/querytable/static/js/querytable.js index 45d12aae..57b260dc 100644 --- a/plugins/querytable/static/js/querytable.js +++ b/plugins/querytable/static/js/querytable.js @@ -8,6 +8,8 @@ var debug=false; debug=true + var debug_deep=false; +// debug_deep=true; var QueryTable = Plugin.extend({ @@ -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]; @@ -97,62 +112,46 @@ messages.debug("slick_column["+c+"]:"+msg); } } - this.slick_grid = new Slick.Grid(selector, this.slick_data, this.slick_columns, this.slick_options); + // add a checkbox column + var checkbox_selector = new Slick.CheckboxSelectColumn({ + cssClass: "slick-cell-checkboxsel" + }); + this.slick_columns.push(checkbox_selector.getColumnDefinition()); + 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 += "