X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Flists%2Fstatic%2Fjs%2Fsimplelist.js;h=f3476c07ac81c995b80af29233fdd46ebc01ab82;hb=31cc945eda5880557485ca4c78f2c23ad991faf4;hp=2bed5b438bcbf547c061bbe16a4b243184dd4b71;hpb=c1c3a70229279cdd36c1a641525ff3ccdb32fa5f;p=unfold.git
diff --git a/plugins/lists/static/js/simplelist.js b/plugins/lists/static/js/simplelist.js
index 2bed5b43..f3476c07 100644
--- a/plugins/lists/static/js/simplelist.js
+++ b/plugins/lists/static/js/simplelist.js
@@ -12,6 +12,7 @@
var SimpleList = Plugin.extend ({
init: function (options, element) {
+ this.classname=options.classname;
this._super (options, element);
this.buffered_records=[];
this.listen_query(options.query_uuid);
@@ -23,8 +24,11 @@
},
on_query_done: function() {
- this._display_table();
+ this._display_table();
this.unspin();
+ console.log("query simple list done");
+ console.log(this);
+ console.log(this.buffered_records);
},
on_new_record: function(record) {
@@ -35,41 +39,45 @@
_display_table: function() {
var self=this;
- var $plugindiv = this.elmt();
- var options = this.options;
- var classname=options.classname;
- // locate the
element; with datatables in the way,
- // this might not be a direct son of the div-plugin
- var $table = $plugindiv.find("table."+classname).first();
- // also we may or may not have a header
- var $tbody = $table.find("tbody."+classname).first();
- var use_datatables = $table.hasClass("with-datatables");
+ var $plugindiv = this.elmt();
+ var options = this.options;
+ // locate the element; with datatables in the way,
+ // this might not be a direct son of the div-plugin
+ var $table = $plugindiv.find("table."+this.classname).first();
+ // also we may or may not have a header
+ var $tbody = $table.find("tbody."+this.classname).first();
+ var use_datatables = $table.hasClass("with-datatables");
var rows=self.buffered_records;
self.buffered_records=[];
- if (debug)
- messages.debug($plugindiv.attr('id') + " udt= " + use_datatables + " rows="+rows.length);
-
- if (rows.length == 0) {
- if (use_datatables)
- this._datatables_set_message ($table, $tbody, unfold.warning("No result"));
- else
+ if (debug){
+ messages.debug($plugindiv.attr('id') + " udt= " + use_datatables + " rows="+rows.length);
+ }
+ // check if rows contains results related to the object key
+ object_key = this.options.key.split('.');
+ if (rows.length == 0 || rows[0][object_key[0]].length == 0) {
+ if (use_datatables){
+ this._datatables_set_message ($table, $tbody, unfold.warning("No result"));
+ }else{
this._regular_set_message ($table, $tbody, unfold.warning("No result"));
- return;
}
+ return;
+ }
- if (typeof rows[0].error != 'undefined') {
- var error="ERROR: " + rows[0].error;
- if (use_datatables)
- this._datatables_set_message ($table, $tbody, unfold.error(error));
- else
+ if (typeof rows[0].error != 'undefined') {
+ var error="ERROR: " + rows[0].error;
+ if (use_datatables){
+ this._datatables_set_message ($table, $tbody, unfold.error(error));
+ }else{
this._regular_set_message ($table, $tbody, unfold.error(error));
- return;
}
+ return;
+ }
- if (use_datatables)
- this._datatables_update_table($table, $tbody, rows, options.key);
- else
- this._regular_update_table($table, $tbody, rows, options.key, classname);
+ if (use_datatables){
+ this._datatables_update_table($table, $tbody, rows, options.key);
+ }else{
+ this._regular_update_table($table, $tbody, rows, options.key, this.classname);
+ }
},
_regular_set_message: function ($table, $tbody, message) {
@@ -78,7 +86,8 @@
_regular_update_table: function ($table, $tbody, rows, key, classname) {
if (debug)
- messages.debug('regular_update_table ' + rows.length + " rows" + " key=" + key + " classname=" + classname);
+ messages.debug('regular_update_table ' + rows.length + " rows" +
+ " key=" + key + " classname=" + this.classname);
var self=this;
var html=$.map(rows, function (row) {
var value = row;
@@ -91,10 +100,10 @@
});
if ($.isArray(value)) {
return $.map(value, function(val, i) {
- return self._html_row ( self._cell (key, val), classname);
+ return self._html_row ( self._cell (key, val), this.classname);
});
} else {
- return self._html_row ( self._cell (key, value), classname);
+ return self._html_row ( self._cell (key, value), this.classname);
}
}).join();
$tbody.html(html);