X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Fhazelnut%2Fstatic%2Fjs%2Fhazelnut.js;h=249d2b4b80399ce5646809a18f1ae0dec473ec9b;hb=4a99831db81024d5d25869d4c475d381fd39f75a;hp=ab22c1e443bdffaa05c48ace37ab58b1c3131031;hpb=c33f536cc523e21c29cf06d0c906009b01b6f576;p=myslice.git diff --git a/plugins/hazelnut/static/js/hazelnut.js b/plugins/hazelnut/static/js/hazelnut.js index ab22c1e4..249d2b4b 100644 --- a/plugins/hazelnut/static/js/hazelnut.js +++ b/plugins/hazelnut/static/js/hazelnut.js @@ -86,7 +86,7 @@ // XXX as of sept. 2013, I cannot locate a bootstrap3-friendly mode for now // hopefully this would come with dataTables v1.10 ? // in any case, search for 'sPaginationType' all over the code for more comments - sPaginationType: 'full_numbers', + 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' ]}], @@ -112,7 +112,7 @@ /* Setup the SelectAll button in the dataTable header */ /* xxx not sure this is still working */ var oSelectAll = $('#datatableSelectAll-'+ this.options.plugin_uuid); - oSelectAll.html("Select All"); + oSelectAll.html("Select All"); oSelectAll.button(); oSelectAll.css('font-size','11px'); oSelectAll.css('float','right'); @@ -133,7 +133,8 @@ /* Processing hidden_columns */ $.each(this.options.hidden_columns, function(i, field) { - self.hide_column(field); + manifold.raise_event(self.options.query_all_uuid, FIELD_REMOVED, field); + //self.hide_column(field); }); }, // initialize_table @@ -186,6 +187,9 @@ line.push(''); else line.push(record['hostname']); + + } else if (colnames[j] == 'hrn' && typeof(record) != 'undefined') { + line.push(' '+record['hrn']); } else { if (record[colnames[j]]) line.push(record[colnames[j]]); @@ -198,12 +202,11 @@ if (this.options.checkboxes) { // Use a key instead of hostname (hard coded...) line.push(this.checkbox_html(this.key, record[this.key])); - } + } - // adding an array in one call is *much* more efficient - // this.table.fnAddData(line); - this.buffered_lines.push(line); - + // adding an array in one call is *much* more efficient + // this.table.fnAddData(line); + this.buffered_lines.push(line); }, clear_table: function() @@ -257,9 +260,9 @@ var checkbox_id = this.flat_id(this.id('checkbox', key_value)); checkbox_id = '#' + checkbox_id; - // using dataTables's $ to search also in nodes that are not currently displayed + // 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); + if (debug) messages.debug("set_checkbox checked=" + checked + " id=" + checkbox_id + " matches=" + element.length); element.attr('checked', checked); }, @@ -298,19 +301,56 @@ alert('Hazelnut::clear_fields() not implemented'); }, + /* XXX TODO: make this generic a plugin has to subscribe to a set of Queries to avoid duplicated code ! */ + /*************************** ALL QUERY HANDLER ****************************/ + + on_all_filter_added: function(filter) + { + // XXX + this.redraw_table(); + }, + + on_all_filter_removed: function(filter) + { + // XXX + this.redraw_table(); + }, + + on_all_filter_clear: function() + { + // XXX + this.redraw_table(); + }, + + on_all_field_added: function(field) + { + this.show_column(field); + }, + + on_all_field_removed: function(field) + { + this.hide_column(field); + }, + + on_all_field_clear: function() + { + alert('Hazelnut::clear_fields() not implemented'); + }, + + /*************************** RECORD HANDLER ***************************/ on_new_record: function(record) { if (this.received_all_query) { - // if the 'all' query has been dealt with already we may turn on the checkbox - if (debug) messages.debug("turning on checkbox for record "+record[this.key]); + // if the 'all' query has been dealt with already we may turn on the checkbox + if (debug) messages.debug("turning on checkbox for record "+record[this.key]); this.set_checkbox(record, true); - } else { - // otherwise we need to remember that and do it later on - if (debug) messages.debug ("Remembering record to check " + record[this.key]); + } else { + // otherwise we need to remember that and do it later on + if (debug) messages.debug("Remembering record to check " + record[this.key]); this.buffered_records_to_check.push(record); - } + } }, on_clear_records: function() @@ -326,7 +366,7 @@ on_query_done: function() { this.received_query = true; - // unspin once we have received both + // unspin once we have received both if (this.received_all_query && this.received_query) this.unspin(); }, @@ -346,7 +386,23 @@ } }, + /* XXX TODO: make this generic a plugin has to subscribe to a set of Queries to avoid duplicated code ! */ // all + on_all_field_state_changed: function(data) + { + switch(data.request) { + case FIELD_REQUEST_ADD: + case FIELD_REQUEST_ADD_RESET: + this.set_checkbox(data.value, true); + break; + case FIELD_REQUEST_REMOVE: + case FIELD_REQUEST_REMOVE_RESET: + this.set_checkbox(data.value, false); + break; + default: + break; + } + }, on_all_new_record: function(record) {