X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Fhazelnut%2Fhazelnut.js;h=a5a9ad8e8071561ca9d4953c5651a2d40cb1810e;hb=8bd7506149ec3e26a194fcc6e596781e0b399b0f;hp=2709af9231f288c948166a888ec1770ad5fe5c4e;hpb=d89d22bf3efa4cee1897668189f2deacf83bb19c;p=myslice.git diff --git a/plugins/hazelnut/hazelnut.js b/plugins/hazelnut/hazelnut.js index 2709af92..a5a9ad8e 100644 --- a/plugins/hazelnut/hazelnut.js +++ b/plugins/hazelnut/hazelnut.js @@ -15,7 +15,7 @@ (function($){ var debug=false; - debug=true +// debug=true // routing calls $.fn.Hazelnut = function( method ) { @@ -56,7 +56,7 @@ $.subscribe(query_channel, function(e, query) { hazelnut.set_query(query); }); $.subscribe(update_channel, function(e, resources, instance) { hazelnut.set_resources(resources, instance); }); $.subscribe(results_channel, $this, function(e, rows) { hazelnut.update_plugin(e,rows); }); - if (debug) console.log("hazelnut " + this.id + " subscribed to " + query_channel + " " + update_channel + " " + results_channel); + if (debug) console.log("hazelnut '" + this.id + "' subscribed to e.g." + results_channel); }); // this.each }, // init @@ -78,6 +78,7 @@ show : function( ) { var $this=$(this); // xxx wtf. why [1] ? would expect 0... + if (debug) console.log("Hitting suspicious line in hazelnut.show"); var oTable = $($('.dataTable', $this)[1]).dataTable(); oTable.fnAdjustColumnSizing() @@ -104,7 +105,7 @@ this.options = options; /* constructor */ this.table = null; - // xxx thierry : init this here - it was not, I expect this relied on set_query somehow.. + // xxx thierry : initialize this here - it was not, I expect this relied on set_query somehow.. //this.current_query = null; this.current_query=manifold.find_query(this.options.query_uuid); if (debug) console.log("Hazelnut constructor: have set current_query -> " + this.current_query); @@ -120,19 +121,20 @@ // http://datatables.net/release-datatables/examples/advanced_init/dom_toolbar.html // http://www.datatables.net/forums/discussion/3914/adding-buttons-to-header-or-footer/p1 //"sDom": 'lf<"#datatableSelectAll-'+ options.plugin_uuid+'">rtip', - sDom: '<"H"Tfr>t<"F"ip>', - bJQueryUI: true, - sPaginationType: 'full_numbers', + sDom: "<'row-fluid'<'span6'T><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>", + sPaginationType: 'bootstrap', // Handle the null values & the error : Datatables warning Requested unknown parameter // http://datatables.net/forums/discussion/5331/datatables-warning-...-requested-unknown-parameter/p2 aoColumnDefs: [{sDefaultContent: '',aTargets: [ '_all' ]}], - bRetrieve: true, - sScrollX: '100%', /* Horizontal scrolling */ +// bRetrieve: true, + // WARNING: this one causes tables in a 'tabs' that are not exposed at the time this is run to show up empty + // sScrollX: '100%', /* Horizontal scrolling */ bProcessing: true, /* Loading */ - fnRowCallback: function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) { - $(nRow).attr('id', get_value(aData[3])); - return nRow; - }, +// this looks like just another ugly hack +// fnRowCallback: function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) { +// $(nRow).attr('id', unfold.get_value(aData[3])); +// return nRow; +// }, fnDrawCallback: function() { hazelnut_draw_callback.call(object, options); } }); @@ -147,9 +149,6 @@ oSelectAll.unbind('click'); oSelectAll.click(selectAll); - /* Spinner (could be done when the query is received = a query is in progress, also for update) */ -// $('#' + options.plugin_uuid).spin() - /* Add a filtering function to the current table * Note: we use closure to get access to the 'options' */ @@ -163,13 +162,12 @@ /* methods */ this.set_query = function(query) { - if (debug) console.log("entering set_query"); var options = this.options; /* Compare current and advertised query to get added and removed fields */ previous_query = this.current_query; /* Save the query as the current query */ this.current_query = query; - if (debug) console.log("set_query, current_query is now -> " + this.current_query); + if (debug) console.log("hazelnut.set_query, current_query is now -> " + this.current_query); /* We check all necessary fields : in column editor I presume XXX */ // XXX ID naming has no plugin_uuid if (typeof(query.fields) != 'undefined') { @@ -217,7 +215,7 @@ } this.set_resources = function(resources, instance) { - if (debug) console.log("entering set_resources"); + if (debug) console.log("entering hazelnut.set_resources"); var options = this.options; var previous_resources = this.current_resources; this.current_resources = resources; @@ -246,7 +244,7 @@ * XXX will be removed/replaced */ this.selected_changed = function(e, change) { - if (debug) console.log("entering selected_changed"); + if (debug) console.log("entering hazelnut.selected_changed"); var actions = change.split("/"); if (actions.length > 1) { var oNodes = this.table.fnGetNodes(); @@ -267,10 +265,10 @@ } this.update_plugin = function(e, rows) { - if (debug) console.log("entering update_plugin"); // e.data is what we passed in second argument to subscribe // so here it is the jquery object attached to the plugin
var $plugindiv=e.data; + if (debug) console.log("entering hazelnut.update_plugin on id '" + $plugindiv.attr('id') + "'"); // clear the spinning wheel: look up an ancestor that has the need-spin class // do this before we might return $plugindiv.closest('.need-spin').spin(false); @@ -279,13 +277,13 @@ var hazelnut = this; if (rows.length==0) { - this.table.html(errorDisplay("No Result")); + if (debug) console.l ("empty result"); + this.table.html(unfold.errorDisplay("No Result")); + return; + } else if (typeof(rows[0].error) != 'undefined') { + if (debug) console.log ("undefined result"); + this.table.html(unfold.errorDisplay(rows[0].error)); return; - } else { - if (typeof(rows[0].error) != 'undefined') { - this.table.html(errorDisplay(rows[0].error)); - return; - } } newlines = new Array(); @@ -333,17 +331,17 @@ }); -// console.log ("end of each, newlines=" + newlines.length); + this.table.fnClearTable(); + if (debug) console.log("hazelnut.update_plugin: total of " + newlines.length + " rows"); this.table.fnAddData(newlines); -// console.log (" exiting update_plugin = "); }; this.checkbox = function (plugin_uuid, header, field, selected_str, disabled_str) { var result=""; /* Prefix id with plugin_uuid */ - result += "