$.widget( "fitness.transferList", {
options: {
transfers: [],
columns: [
{ 'label' : 'Termék' },
{ 'label' : 'Ár' },
{ 'label' : 'Db' },
{ 'label' : 'Összesen' },
],
footers: [
{
'label' : 'Összesen',
'total' : function(transfers){
var totals;
totals = 0;
for ( var i = 0; i < transfers.length ; i++ ){
totals += transfers[i].money;
}
return totals;
},
'count' : function(transfers){
var totals;
totals = 0;
for ( var i = 0; i < transfers.length ; i++ ){
totals += transfers[i].count;
}
return totals;
},
}
]
},
_create: function() {
var o;
o = this.options;
this._refresh();
},
_refresh: function(){
var s;
s = this._render('table',{ 'columns' : this.options.columns, 'transfers' : this.options.transfers,'footer': this.options.footers });
this.element.html(s);
},
_render: function(template,params){
var s;
var columsn;
var transfer;
var footer;
s = "";
switch(template){
case 'table':
s += this._render('openTable', {});
s += this._render('header', { 'columns' : params.columns });
s += this._render('body' , { 'transfers' : params.transfers });
s += this._render('footer' , { 'transfers' : params.transfers ,'footers': this.options.footers});
s += this._render('closeTable', { });
break;
case 'openTable':
s += '
';
break;
case 'closeTable':
s += '
';
break;
case 'header':
s += ''
columns = params.columns;
for(var i = 0; i < columns.length; i++){
s += this._render('headrow', { 'column' : columns[i] })
}
s += '';
break;
case 'headrow':
s += '';
s += params.column.label;
s += ' | ';
break;
case 'body':
s += '';
for( var i = 0; i < params.transfers.length; i++){
s += this._render('row', { 'transfer' : params.transfers[i] })
}
s += '';
break;
case 'row':
transfer = params.transfer;
s += '';
s += '| ';
s += transfer.product_name;
s += ' | ';
s += '';
s += transfer.item_price;
s += ' | ';
s += '';
s += transfer.count;
s += ' | ';
s += '';
s += transfer.money;
s += ' | ';
s += '
';
break;
case 'footer':
s += "";
for ( var i = 0; i < params.footers.length; i++ ){
footer = params.footers[i];
s += "";
s += "| ";
s += footer.label;
s += " | ";
s += "";
s += " | ";
s += "";
s += footer.count( params.transfers );
s += " | ";
s += "";
s += footer.total( params.transfers );
s += " | ";
s += "
";
}
s += "";
break;
}
return s;
},
_setOption: function (key, value) {
var self = this,
prev = this.options[key],
fnMap = {
'transfers': function () {
self._refresh();
},
};
// base
this._super(key, value);
if (key in fnMap) {
fnMap[key]();
// Fire event
// this._triggerOptionChanged(key, prev, value);
}
}
});