return this.each(function() {
var $this = $(this);
/* Events */
- $(this).on('show.Datatables', methods.show);
+ $this.on('show.Datatables', methods.show);
/* An object that will hold private variables and methods */
var hazelnut = new Hazelnut (options);
- $(this).data('Hazelnut', hazelnut);
+ $this.data('Hazelnut', hazelnut);
var query_channel = '/query/' + options.query_uuid + '/changed';
var update_channel = '/update-set/' + options.query_uuid;
var results_channel = '/results/' + options.query_uuid + '/changed';
+ // xxx not tested yet
$.subscribe(query_channel, function(e, query) { hazelnut.set_query(query); });
+ // xxx not tested yet
$.subscribe(update_channel, function(e, resources, instance) { hazelnut.set_resources(resources, instance); });
+ // expected to work
$.subscribe(results_channel, $this, function(e, rows) { hazelnut.update_plugin(e,rows); });
- if (debug) console.log("hazelnut '" + this.id + "' subscribed to e.g." + results_channel);
+ if (debug) messages.debug("hazelnut '" + this.id + "' subscribed to e.g." + results_channel);
}); // this.each
}, // init
show : function( ) {
var $this=$(this);
// xxx wtf. why [1] ? would expect 0...
- if (debug) console.log("Hitting suspicious line in hazelnut.show");
+ if (debug) messages.debug("Hitting suspicious line in hazelnut.show");
var oTable = $($('.dataTable', $this)[1]).dataTable();
oTable.fnAdjustColumnSizing()
// 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);
+// if (debug) messages.debug("Hazelnut constructor: have set current_query -> " + this.current_query.__repr());
this.query_update = null;
this.current_resources = Array();
previous_query = this.current_query;
/* Save the query as the current query */
this.current_query = query;
- if (debug) console.log("hazelnut.set_query, current_query is now -> " + this.current_query);
+ if (debug) messages.debug("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') {
}
this.set_resources = function(resources, instance) {
- if (debug) console.log("entering hazelnut.set_resources");
+ if (debug) messages.debug("entering hazelnut.set_resources");
var options = this.options;
var previous_resources = this.current_resources;
this.current_resources = resources;
* XXX will be removed/replaced
*/
this.selected_changed = function(e, change) {
- if (debug) console.log("entering hazelnut.selected_changed");
+ if (debug) messages.debug("entering hazelnut.selected_changed");
var actions = change.split("/");
if (actions.length > 1) {
var oNodes = this.table.fnGetNodes();
// e.data is what we passed in second argument to subscribe
// so here it is the jquery object attached to the plugin <div>
var $plugindiv=e.data;
- if (debug) console.log("entering hazelnut.update_plugin on id '" + $plugindiv.attr('id') + "'");
+ if (debug) messages.debug("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);
var hazelnut = this;
if (rows.length==0) {
- if (debug) console.l ("empty result");
- this.table.html(unfold.errorDisplay("No Result"));
+ if (debug) messages.debug("Empty result on hazelnut " + domid);
+ var placeholder=$(this.table).find("td.dataTables_empty");
+ console.log("placeholder "+placeholder);
+ if (placeholder.length==1) placeholder.html(unfold.warning("Empty result"));
+ else this.table.html(unfold.warning("Empty result"));
return;
} else if (typeof(rows[0].error) != 'undefined') {
- if (debug) console.log ("undefined result");
- this.table.html(unfold.errorDisplay(rows[0].error));
+ // we now should have another means to report errors that this inline/embedded hack
+ if (debug) messages.error ("undefined result on " + domid + " - should not happen anymore");
+ this.table.html(unfold.error(rows[0].error));
return;
}
newlines = new Array();
});
this.table.fnClearTable();
- if (debug) console.log("hazelnut.update_plugin: total of " + newlines.length + " rows");
+ if (debug) messages.debug("hazelnut.update_plugin: total of " + newlines.length + " rows");
this.table.fnAddData(newlines);
};