define(function(require) { var BaseDataModel = require('app/models/data/BaseDataModel'), filterByItem = require('app/data/operations/filterByItem'), filterByEmployee = require('app/data/operations/filterByEmployee'); var RevenueOverTimeModel = BaseDataModel.extend(function RevenueOverTimeModel() { BaseDataModel.apply(this, arguments); this.addDataOperation(_dataOperation); }); function _dataOperation(handle) { // Filter if necessary filterByItem(handle, this.get('itemId')); filterByEmployee(handle, this.get('employeeName')); handle .map(function(order) { return { total: order.total, modified: order.modified }; }); } return RevenueOverTimeModel; });
define(function(require) { var BaseDataModel = require('app/models/data/BaseDataModel'); var BaseMetricsModel = BaseDataModel.extend(function BaseMetricsModel() { BaseDataModel.apply(this, arguments); }, { addMetric: function(name, dataOperation) { if (typeof name === 'object') { for (var key in name) { this.addMetric(key, name[key]); } } else { this.addDataOperation(function(handle) { dataOperation.call(this, handle); handle.done(function(data) { this.set(name, data); }.bind(this)); }); } } }); return BaseMetricsModel; });