X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Flists%2Fsimplelist.js;h=9cd5129722784d64647707f0b5d265ae65f953d2;hb=a953233a34580bc72aa8b6b03c017ff94f9eee7d;hp=172cd34e80058e827dc81465b8b43f92743bb854;hpb=f4331c700e8d1d577323c2e9cb6e3d4531453f70;p=myslice.git
diff --git a/plugins/lists/simplelist.js b/plugins/lists/simplelist.js
index 172cd34e..9cd51297 100644
--- a/plugins/lists/simplelist.js
+++ b/plugins/lists/simplelist.js
@@ -28,12 +28,12 @@
var channel='/results/' + options.query_uuid + '/changed';
/* passing $this as 2nd arg: callbacks will retrieve $this as e.data */
$.subscribe(channel, $this, update_plugin);
- if (debug) window.console.log('subscribing to ' + channel);
+ if (debug) window.messages.debug('subscribing to ' + channel);
$this.data('SimpleList', options);
});
},
destroy : function( ) {
- if (debug) console.log("SimpleList.destroy...");
+ if (debug) messages.debug("SimpleList.destroy...");
return this.each(function(){
var $this = $(this), data = $this.data('SimpleList');
// xxx not too sure what this is about
@@ -42,7 +42,7 @@
});
},
update : function( content ) {
- if (debug) console.log("SimpleList.update...");
+ if (debug) messages.debug("SimpleList.update...");
},
}; // methods
@@ -50,41 +50,50 @@
// complexity here is mostly because a datatables-enabled table cannot
// be updated in a "normal" way using .html()
function update_plugin(e, rows) {
- // 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;
- // locate the
element; with datatables in the way,
- // this might not be a direct son of the div-plugin
- var $table=$plugindiv.find("table.simplelist").first();
- // also we may or may not have a header
- var $tbody=$table.find("tbody.simplelist").first();
- var use_datatables = $table.hasClass("with-datatables");
- if (debug) console.log($plugindiv.attr('id') + " udt= " + use_datatables);
+ // 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;
+ // locate the
element; with datatables in the way,
+ // this might not be a direct son of the div-plugin
+ var $table = $plugindiv.find("table.simplelist").first();
+ // also we may or may not have a header
+ var $tbody = $table.find("tbody.simplelist").first();
+ var use_datatables = $table.hasClass("with-datatables");
+ if (debug)
+ messages.debug($plugindiv.attr('id') + " udt= " + use_datatables);
// 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);
+ $plugindiv.closest('.need-spin').spin(false);
if (rows.length == 0) {
- if (use_datatables) datatables_set_message ($table, $tbody, unfold.warning("No result"));
- else regular_set_message ($table, $tbody, unfold.warning("No result"));
+ if (use_datatables)
+ datatables_set_message ($table, $tbody, unfold.warning("No result"));
+ else
+ regular_set_message ($table, $tbody, unfold.warning("No result"));
return;
}
+
if (typeof rows[0].error != 'undefined') {
- var error="ERROR: " + rows[0].error;
- if (use_datatables) datatables_set_message ($table, $tbody, unfold.error(error));
- else regular_set_message ($table, $tbody, unfold.error(error));
+ var error="ERROR: " + rows[0].error;
+ if (use_datatables)
+ datatables_set_message ($table, $tbody, unfold.error(error));
+ else
+ regular_set_message ($table, $tbody, unfold.error(error));
return;
}
+
var options = $plugindiv.data().SimpleList;
- if (use_datatables) datatables_update_table ($table,$tbody,rows,options.key);
- else regular_update_table ($table,$tbody,rows,options.key);
+ if (use_datatables)
+ datatables_update_table($table, $tbody, rows, options.key);
+ else
+ regular_update_table($table, $tbody, rows, options.key);
- }
+ }
// hard-wire a separate presentation depending on the key being used....
function cell(key, value) {
- if (key == 'slice_hrn') {
+ if (key == 'slice.slice_hrn') {
return "" + value + "";
} else if (key == 'network_hrn') {
return "" + value ;
@@ -98,19 +107,35 @@
}
function regular_update_table ($table, $tbody, rows, key) {
- if (debug) console.log('regular_update_table ' + rows.length + " rows");
- var html=$.map(rows, function (row) { return html_row ( cell (key, row[key])); }).join();
- $tbody.html(html);
+ if (debug)
+ messages.debug('regular_update_table ' + rows.length + " rows");
+ var html=$.map(rows, function (row) {
+ value = row;
+ $.each(key.split('.'), function(i, k) {
+ if ($.isArray(value)) {
+ value = $.map(value, function(val, i) { return val[k]});
+ } else {
+ value = value[k];
+ }
+ });
+ if ($.isArray(value)) {
+ x = $.map(value, function(val, i) { return html_row ( cell (key, val)); });
+ return x;
+ } else {
+ return html_row ( cell (key, value));
+ }
+ }).join();
+ $tbody.html(html);
}
function datatables_set_message ($table, $tbody, message) {
- $table.dataTable().fnClearTable();
- $table.dataTable().fnAddData( [ message ] );
- $table.dataTable().fnDraw();
+ $table.dataTable().fnClearTable();
+ $table.dataTable().fnAddData( [ message ] );
+ $table.dataTable().fnDraw();
}
function datatables_update_table ($table, $tbody, rows, key) {
- if (debug) console.log('datatables_update_table ' + rows.length + " rows");
+ if (debug) messages.debug('datatables_update_table ' + rows.length + " rows");
$table.dataTable().fnClearTable();
// the lambda here returns a [[]] because $.map is kind of broken; as per the doc:
// The function can return any value to add to the array. A returned array will be flattened into the resulting array.
@@ -119,6 +144,8 @@
$table.dataTable().fnDraw();
}
- function html_row (cell) { return ""+cell+" |
"; }
+ function html_row (cell) {
+ return ""+cell+" |
";
+ }
})( jQuery );