X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Fhazelnut%2Fstatic%2Fjs%2Fhazelnut.js;h=dcd4e1ff9bb2e5f769c0e51f096d7deae4e1e45b;hb=fea9b7e286cc86f11844e371d67d184198afc287;hp=ab22c1e443bdffaa05c48ace37ab58b1c3131031;hpb=c33f536cc523e21c29cf06d0c906009b01b6f576;p=unfold.git
diff --git a/plugins/hazelnut/static/js/hazelnut.js b/plugins/hazelnut/static/js/hazelnut.js
index ab22c1e4..dcd4e1ff 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,6 +133,7 @@
/* Processing hidden_columns */
$.each(this.options.hidden_columns, function(i, 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()
@@ -256,10 +259,11 @@
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
+ // function escape_id(myid) is defined in portal/static/js/common.functions.js
+ checkbox_id = escape_id(checkbox_id);
+ // 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);
},
@@ -268,6 +272,7 @@
on_filter_added: function(filter)
{
// XXX
+ console.log(filter);
this.redraw_table();
},
@@ -298,19 +303,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 +368,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 +388,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)
{