151 lines
3.6 KiB
JavaScript
151 lines
3.6 KiB
JavaScript
$.widget( "fitness.transferList", {
|
|
options: {
|
|
transfers: [],
|
|
columns: [
|
|
|
|
{ 'label' : 'Idő' },
|
|
{ '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 += '<table class="table table-bordered table-striped table-transfers">';
|
|
break;
|
|
case 'closeTable':
|
|
s += '</table>';
|
|
break;
|
|
case 'header':
|
|
s += '<thead>'
|
|
columns = params.columns;
|
|
for(var i = 0; i < columns.length; i++){
|
|
s += this._render('headrow', { 'column' : columns[i] })
|
|
}
|
|
s += '</thead>';
|
|
break;
|
|
case 'headrow':
|
|
s += '<th>';
|
|
s += params.column.label;
|
|
s += '</th>';
|
|
break;
|
|
case 'body':
|
|
s += '<tbody>';
|
|
for( var i = 0; i < params.transfers.length; i++){
|
|
s += this._render('row', { 'transfer' : params.transfers[i] })
|
|
}
|
|
s += '</tbody>';
|
|
break;
|
|
case 'row':
|
|
transfer = params.transfer;
|
|
s += '<tr>';
|
|
s += '<td class="product-time">';
|
|
s += transfer.time;
|
|
s += '</td>';
|
|
s += '<td class="product-name">';
|
|
s += transfer.product_name;
|
|
s += '</td>';
|
|
s += '<td class="sale-price">';
|
|
s += transfer.item_price;
|
|
s += '</td>';
|
|
s += '<td class=\'product-count\' >';
|
|
s += transfer.count;
|
|
s += '</td>';
|
|
s += '<td class=\'product-money\' >';
|
|
s += transfer.money;
|
|
s += '</td>';
|
|
s += '</tr>';
|
|
break;
|
|
case 'footer':
|
|
s += "<tfoot>";
|
|
for ( var i = 0; i < params.footers.length; i++ ){
|
|
footer = params.footers[i];
|
|
s += "<tr class='warning' >";
|
|
s += "<th class='product-time'>";
|
|
s += footer.label;
|
|
s += "</th>";
|
|
s += "<th class='product-name'>";
|
|
s += "</th>";
|
|
s += "<td class=\"sale-price\">";
|
|
s += "</td>";
|
|
s += "<td class=\'product-count\' >";
|
|
s += footer.count( params.transfers );
|
|
s += "</td>";
|
|
s += "<td class=\'product-money\' >";
|
|
s += footer.total( params.transfers );
|
|
s += "</td>";
|
|
s += "</tr>";
|
|
}
|
|
s += "</tfoot>";
|
|
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);
|
|
}
|
|
}
|
|
|
|
|
|
}); |