get initial display to behave as expected
[myslice.git] / plugins / querytable / static / js / querytable.js
index 772ff7e..a217657 100644 (file)
@@ -8,6 +8,8 @@
 
     var debug=false;
     debug=true
+    var debug_deep=false;
+//    debug_deep=true;
 
     var QueryTable = Plugin.extend({
 
            var all_columns = this.options.columns; // .concat(this.options.hidden_columns)
            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, width:100, minWidth:40, });
            }
 
            // xxx should be extensible from caller with this.options.slickgrid_options 
            this.slick_options = {
                enableCellNavigation: false,
                enableColumnReorder: true,
+               explicitInitialization: true,           
            };
 
            this.slick_data=[];
            
            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];
         }, // getColIndex
 
         checkbox_html : function (key, value) {
-//         if (debug) messages.debug("checkbox_html, value="+value);
+           if (debug_deep) messages.debug("checkbox_html, value="+value);
             var result="";
             // Prefix id with plugin_uuid
             result += "<input";
         },
 
         set_checkbox: function(record, checked) {
-           console.log("set_checkbox not implemented");
+           console.log("set_checkbox not yet implemented with slickgrid");
            return;
             /* Default: checked = true */
             if (checked === undefined) checked = true;
             checkbox_id = escape_id(checkbox_id);
             // using dataTables's $ to search also in nodes that are not currently displayed
             var element = this.table.$(checkbox_id);
-            if (debug) 
+            if (debug_deep
                 messages.debug("set_checkbox checked=" + checked
                                + " id=" + checkbox_id + " matches=" + element.length);
             element.attr('checked', checked);
 
         on_all_query_done: function() {
            if (debug) messages.debug("1-shot initializing dataTables content with " + this.slick_data.length + " lines");
+           var start=new Date();
            this.slick_grid.setData (this.slick_data, true);
-           if (debug) 
+           this.slick_grid.init();
+           var duration=new Date()-start;
+           if (debug) messages.debug("setData+render took " + duration + " ms");
+           if (debug_deep) {
+               // show full contents of first row app
                for (k in this.slick_data[0]) messages.debug("slick_data[0]["+k+"]="+this.slick_data[0][k]);
-           this.slick_grid.render();
+           }
            
             var self = this;
            // if we've already received the slice query, we have not been able to set