$.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 += ''; 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.time; 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 += ""; 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); } } });