Fixed bug: select columns all checked in filters, autocomplete based on query_all...
[unfold.git] / plugins / query_editor / static / js / query_editor.js
index 553dbc6..7338b69 100644 (file)
 
         init: function(options, element) {
             this._super(options, element);
-            console.log("init Query_Editor");
             this.listen_query(options.query_uuid);
+            // this one is the complete list of resources
+            // and will be bound to callbacks like on_all_new_record
+            this.listen_query(options.query_all_uuid, 'all');
+
 
             this.elts('queryeditor-auto-filter').change(this.event_filter_added('='));
             this.elts('queryeditor-filter').change(this.event_filter_added('='));
@@ -57,7 +60,7 @@
             // XXX Why isn't it done statically ?
             var nCloneTh = document.createElement( 'th' );
             var nCloneTd = document.createElement( 'td' );
-            nCloneTd.innerHTML = "<span class='ui-icon ui-icon-triangle-1-e' style='cursor:pointer'></span>";
+            nCloneTd.innerHTML = "<span class='glyphicon glyphicon-chevron-right' style='cursor:pointer'></span>";
             //nCloneTd.innerHTML = '<img src="/components/com_tophat/images/details_open.png">';
             nCloneTh.innerHTML = '<b>Info</b>';
             nCloneTd.className = "center";
             // We are currently using a DataTable display, but another browsing component could be better
             //jQuery('#'+this.options.plugin_uuid+'-table').dataTable...
             var  metaTable = this.elmt('table').dataTable({
-                bFilter     : false,
-                bPaginate   : false,
-                bInfo       : false,
-                sScrollX    : '100%',         // Horizontal scrolling
-                sScrollY    : '200px',
-                //bJQueryUI   : true,           // Use jQuery UI
-                bProcessing : true,           // Loading
-                aaSorting   : [[ 1, "asc" ]], // sort by column fields on load
-                aoColumnDefs: [
-                    { 'bSortable': false, 'aTargets': [ 0 ]},
-                    { 'sWidth': '8px', 'aTargets': [ 0 ] },
-                    { 'sWidth': '8px', 'aTargets': [ 4 ] } // XXX NB OF COLS
-                ]
+// Thierry : I'm turning off all the dataTables options for now, so that
+// the table displays more properly again, might need more tuning though
+//                bFilter     : false,
+//                bPaginate   : false,
+//                bInfo       : false,
+//                sScrollX    : '100%',         // Horizontal scrolling
+//                sScrollY    : '200px',
+//                //bJQueryUI   : true,           // Use jQuery UI
+//                bProcessing : true,           // Loading
+//                aaSorting   : [[ 1, "asc" ]], // sort by column fields on load
+//                aoColumnDefs: [
+//                    { 'bSortable': false, 'aTargets': [ 0 ]},
+//                    { 'sWidth': '8px', 'aTargets': [ 0 ] },
+//                    { 'sWidth': '8px', 'aTargets': [ 4 ] } // XXX NB OF COLS
+//                ]
             });
 
             // Actions on the newly added fields
             this.elmt('table tbody td span').on('click', function() {
                 var nTr = this.parentNode.parentNode;
                 // use jQuery UI instead of images to keep a common UI
-                // class="ui-icon treeclick ui-icon-triangle-1-s tree-minus"
-                // East oriented Triangle class="ui-icon-triangle-1-e"
-                // South oriented Triangle class="ui-icon-triangle-1-s"
+                // class="glyphicon glyphicon-chevron-down treeclick tree-minus"
+                // East oriented Triangle class="glyphicon-chevron-right"
+                // South oriented Triangle class="glyphicon-chevron-down"
                 
-                if (this.className=="ui-icon ui-icon-triangle-1-e") {
-                    this.removeClass("ui-icon-triangle-1-e").addClass("ui-icon-triangle-1-s");
+                if (this.hasClass("glyphicon-chevron-right")) {
+                    this.removeClass("glyphicon-chevron-right").addClass("glyphicon-chevron-down");
                     // XXX ??????
                     metaTable.fnOpen(nTr, this.fnFormatDetails(metaTable, nTr, self.options.plugin_uuid+'_div'), 'details' );
                 } else {
-                    this.removeClass("ui-icon-triangle-1-s").addClass("ui-icon-triangle-1-e");
+                    this.removeClass("glyphicon-chevron-down").addClass("glyphicon-chevron-right");
                     metaTable.fnClose(nTr);
                 }
             });
 
         on_field_added: function(field)
         {
-            console.log("on_field_added : "+field);
             this.check_field(field);
         },
 
             //console.log("Query_Editor: query_done!");
             //console.log(this.availableTags);
         },
-        on_new_record: function(record)
+        /* Autocomplete based on query_all to get all the fields, where query get only the fields selected  */
+        on_all_new_record: function(record)
         {
-            //console.log("Query_Editor: new_record!");
-            //console.log(record);
             availableTags = this.availableTags;           
             jQuery.each(record,function(key,value){
-                value = get_value(value);
+                value = unfold.get_value(value);
                 if(!availableTags.hasOwnProperty(key)){availableTags[key]=new Array();}
                 //availableTags[key].push(value);
                 var currentArray = availableTags[key];
             var availableTags={};
             jQuery.each (rows, function(index, obj) {                    
                 jQuery.each(obj,function(key,value){                       
-                    value = get_value(value); 
+                    value = unfold.get_value(value); 
                     if(!availableTags.hasOwnProperty(key)){availableTags[key]=new Array();}
                     //availableTags[key].push(value);
                     var currentArray=availableTags[key];