(function($){
- // TEMP
var debug=false;
// debug=true
set_checkbox: function(record, checked)
{
/* Default: checked = true */
- if (typeof checked === 'undefined')
- checked = true;
+ if (checked === undefined) checked = true;
var key_value;
/* The function accepts both records and their key */
var checkbox_id = this.flat_id(this.id('checkbox', key_value));
checkbox_id = '#' + checkbox_id;
- var element = $(checkbox_id, this.table.fnGetNodes());
+ // using dataTables's $ to search also in nodes that are not currently displayed
+ var element = this.table.$(checkbox_id);
if (debug) messages.debug("set_checkbox checked=" + checked + " id=" + checkbox_id + " matches=" + element.length);
element.attr('checked', checked);
},
on_query_done: function()
{
- if (this.received_all_query)
- this.unspin();
this.received_query = true;
+ // unspin once we have received both
+ if (this.received_all_query && this.received_query) this.unspin();
},
on_field_state_changed: function(data)
on_all_query_done: function()
{
- var self = this;
- if (this.received_query) {
- /* XXX needed ? XXX We uncheck all checkboxes ... */
- $("[id^='datatables-checkbox-" + this.options.plugin_uuid +"']").attr('checked', false);
-
- /* ... and check the ones specified in the resource list */
- $.each(this.buffered_records_to_check, function(i, record) {
- if (debug) messages.debug ("delayed turning on checkbox " + i + " record= " + record);
- self.set_checkbox(record, true);
- });
-
- this.unspin();
- }
+ if (debug) messages.debug("1-shot initializing dataTables content with " + this.buffered_lines.length + " lines");
this.table.fnAddData (this.buffered_lines);
this.buffered_lines=[];
+
+ var self = this;
+ // if we've already received the slice query, we have not been able to set
+ // checkboxes on the fly at that time (dom not yet created)
+ $.each(this.buffered_records_to_check, function(i, record) {
+ if (debug) messages.debug ("delayed turning on checkbox " + i + " record= " + record);
+ self.set_checkbox(record, true);
+ });
+ this.buffered_records_to_check = [];
+
this.received_all_query = true;
+ // unspin once we have received both
+ if (this.received_all_query && this.received_query) this.unspin();
}, // on_all_query_done
var self = e.data;
// XXX this.value = key of object to be added... what about multiple keys ?
+ if (debug) messages.debug("hazelnut click handler checked=" + this.checked + " hrn=" + this.value);
manifold.raise_event(self.options.query_uuid, this.checked?SET_ADD:SET_REMOVED, this.value);
//return false; // prevent checkbox to be checked, waiting response from manifold plugin api