X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Flists%2Fsimplelist.js;h=46534cefbf4cc3910e37a6de4dbff77baf3b950b;hb=d36cb74e23439c1d0982a3a004c0bff486ca910f;hp=ab320e5efbe9e9aae554011da0d4240aa6283323;hpb=c6cb049fa23065c0c7442f3c021c92dba43c5658;p=unfold.git diff --git a/plugins/lists/simplelist.js b/plugins/lists/simplelist.js index ab320e5e..46534cef 100644 --- a/plugins/lists/simplelist.js +++ b/plugins/lists/simplelist.js @@ -7,11 +7,11 @@ * License: GPLv3 */ -simplelist_debug=false; -//simplelist_debug=true; - (function($){ + var debug=false; + // debug=true + $.fn.SimpleList = function( method ) { /* Method calling logic */ if ( methods[method] ) { @@ -27,19 +27,16 @@ simplelist_debug=false; init : function( options ) { return this.each(function(){ var $this = $(this), data = $this.data('SimpleList'); - // If the plugin hasn't been initialized yet - if ( ! data ) { - /* Subscribe to query updates */ - 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 (simplelist_debug) window.console.log('subscribing to ' + channel); - $this.data('SimpleList', {options: options}); - } + /* Subscribe to query updates */ + 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); + $this.data('SimpleList', options); }); }, destroy : function( ) { - if (simplelist_debug) console.log("SimpleList.destroy..."); + if (debug) console.log("SimpleList.destroy..."); return this.each(function(){ var $this = $(this), data = $this.data('SimpleList'); // xxx not too sure what this is about @@ -48,7 +45,7 @@ simplelist_debug=false; }); }, update : function( content ) { - if (simplelist_debug) console.log("SimpleList.update..."); + if (debug) console.log("SimpleList.update..."); }, }; // methods @@ -65,24 +62,24 @@ simplelist_debug=false; // also we may or may not have a header var $tbody=$table.find("tbody.simplelist").first(); var use_datatables = $table.hasClass("with-datatables"); - if (simplelist_debug) console.log($plugindiv.attr('id') + " udt= " + use_datatables); + if (debug) console.log($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); if (rows.length == 0) { - if (use_datatables) datatables_set_message ("No result"); - else regular_set_message ("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 (error); - else regular_set_message (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.options; + 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); @@ -104,7 +101,7 @@ simplelist_debug=false; } function regular_update_table ($table, $tbody, rows, key) { - if (simplelist_debug) console.log('regular_update_table ' + rows.length + " rows"); + 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); } @@ -116,7 +113,7 @@ simplelist_debug=false; } function datatables_update_table ($table, $tbody, rows, key) { - if (simplelist_debug) console.log('datatables_update_table ' + rows.length + " rows"); + if (debug) console.log('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.