4 window._w.historicaldata = {
14 onPageDestruct: function ()
16 App.Event.removeListener('historicaldataGridSuFilter', 'SuChange');
20 onHistoricaldataPageTemplateReady: function (template, event, eventData)
22 _w.historicaldata.ti = _t[template];
24 App.DataStore.setData('filterhistoricmakes', []);
25 App.DataStore.setData('filterhistoricmodels', []);
26 App.DataStore.setData('filterhistorictypes', []);
27 App.DataStore.setData('filterhistoricyears', []);
29 App.DataStore.loadSelectListData('filterhistoricmakes', false, 'Auction', 'Auction.HistoricMakeSelectList');
30 App.DataStore.loadSelectListData('filterhistoricmodels', false, 'Auction', 'Auction.HistoricModelSelectList');
31 App.DataStore.loadSelectListData('filterhistorictypes', false, 'Auction', 'Auction.HistoricTypeSelectList');
32 App.DataStore.loadSelectListData('filterhistoricyears', false, 'Auction', 'Auction.HistoricYearSelectList');
33 _w.historicaldata.ti.hydrate({
34 'gridTitle': 'Historical Data',
35 'gridTitleSubtext': 'Please use the filters below to narrow down the view',
37 constructor: 'Button',
41 id: 'exportHistoricGrid',
42 handler: _w.historicaldata.exportHistoricGrid,
43 permission: App.permissions.historicalPage
48 'gridContextFilter': {
49 constructor: 'GridContextFilter',
53 searchId: 'btnSearch',
54 bindSearch: _w.historicaldata.searchHistoricGrid,
55 clearId: 'btnClearSearch',
56 bindClear: _w.historicaldata.clearHistoricGridContext
61 'gridColumnHeaders': {
62 constructor: 'GridColumnHeader',
65 id: 'gridHistoricalColumn_Make',
68 id: 'gridHistoricalOrder_MakeAsc',
69 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'make.name', 'ASC')
72 id: 'gridHistoricalOrder_MakeDesc',
73 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'make.name', 'DESC')
78 id: 'gridHistoricalColumn_Model',
81 id: 'gridHistoricalOrder_ModelAsc',
82 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'model.name', 'ASC')
85 id: 'gridHistoricalOrder_ModelDesc',
86 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'model.name', 'DESC')
91 id: 'gridHistoricalColumn_Type',
94 id: 'gridHistoricalOrder_TypeAsc',
95 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'type.name', 'ASC')
98 id: 'gridHistoricalOrder_TypeDesc',
99 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'type.name', 'DESC')
104 id: 'gridHistoricalColumn_MMCode',
107 id: 'gridHistoricalOrder_MMCodeAsc',
108 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'type.mmCode', 'ASC')
111 id: 'gridHistoricalOrder_MMCodeDesc',
112 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'type.mmCode', 'DESC')
117 id: 'gridHistoricalColumn_Year',
120 id: 'gridHistoricalOrder_YearAsc',
121 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'vehicleYear.name', 'ASC')
124 id: 'gridHistoricalOrder_YearDesc',
125 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'vehicleYear.name', 'DESC')
130 id: 'gridHistoricalColumn_KM',
133 id: 'gridHistoricalOrder_KMAsc',
134 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'stock.km', 'ASC')
137 id: 'gridHistoricalOrder_KMDesc',
138 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'stock.km', 'DESC')
140 style: 'kms hidden-phone'
143 id: 'gridHistoricalColumn_TradePrice',
144 title: 'TRADE PRICE',
146 id: 'gridHistoricalOrder_TradePriceAsc',
147 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'stock.tradePrice', 'ASC')
150 id: 'gridHistoricalOrder_TradePriceDesc',
151 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'stock.tradePrice', 'DESC')
156 id: 'gridHistoricalColumn_ReconCosts',
157 title: 'RECON COSTS',
159 id: 'gridHistoricalOrder_ReconCostsAsc',
160 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'stock.damageTotal', 'ASC')
163 id: 'gridHistoricalOrder_ReconCostsDesc',
164 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'stock.damageTotal', 'DESC')
169 id: 'gridHistoricalColumn_HighestBid',
170 title: 'HIGHEST BID',
172 id: 'gridHistoricalOrder_HighestBidAsc',
173 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'currentBid.amount', 'ASC')
176 id: 'gridHistoricalOrder_HighestBidDesc',
177 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'currentBid.amount', 'DESC')
182 id: 'gridHistoricalColumn_DateSold',
185 id: 'gridHistoricalOrder_DateSoldAsc',
186 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'auction.endDate', 'ASC')
189 id: 'gridHistoricalOrder_DateSoldDesc',
190 bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'auction.endDate', 'DESC')
197 'gridColumnFilters': {
198 constructor: 'GridColumnFilter',
201 id: 'gridHistoricalFilter_Make',
202 context: 'gridHistoricalFilter',
203 dataStoreId: 'filterhistoricmakes',
205 bind: function (meta) {
206 _w.historicaldata.changes = 0;
207 $('#' + meta.id).unbind('change');
208 $('#' + meta.id).change(function () {
209 _w.historicaldata.changes++;
210 if (1 == _w.historicaldata.changes || 'Active' != _w.historicaldata.gridStatus)
214 _w.historicaldata.searchHistoricGrid();
219 id: 'gridHistoricalFilter_Model',
220 context: 'gridHistoricalFilter',
221 dataStoreId: 'filterhistoricmodels',
225 id: 'gridHistoricalFilter_Type',
226 context: 'gridHistoricalFilter',
227 dataStoreId: 'filterhistorictypes',
231 id: 'gridHistoricalFilter_MMCode',
232 context: 'gridHistoricalFilter'
235 id: 'gridHistoricalFilter_Year',
236 context: 'gridHistoricalFilter',
237 dataStoreId: 'filterhistoricyears',
241 id: 'gridHistoricalFilter_KM',
242 context: 'gridHistoricalFilter'
245 id: 'gridHistoricalFilter_TradePrice',
246 context: 'gridHistoricalFilter'
249 id: 'gridHistoricalFilter_ReconCosts',
250 context: 'gridHistoricalFilter'
253 id: 'gridHistoricalFilter_HighestBid',
254 context: 'gridHistoricalFilter'
261 'gridRowRepeater': {},
265 // Retrieve initial grid data.
266 if (null == App.API.taskContract('gridHistorical'))
269 'gridHistorical', 'Auction', 'Auction.HistoricGrid', null,
275 'auction.jobState': 'Sold'
279 }, _w.taskContractError
284 onHistoricGridPublished: function ()
286 $(".gridHistoricalFilter").keyup(function (evt) {
287 var charCode = evt.charCode || evt.keyCode;
289 { //Enter key's keycode
290 $('#btnSearch').click();
295 $("body").on('click', 'div.gridHistoricalFilter li', function () {
296 $('#btnSearch').click();
299 $(".gridHistoricalContext").keyup(function (evt) {
300 var charCode = evt.charCode || evt.keyCode;
302 { //Enter key's keycode
303 $('#btnSearch').click();
308 var setTableFormWidth = function ()
310 $('.table-form').css({
311 width: $(window).width() * 0.98
315 $(window).on('resize', setTableFormWidth);
317 App.Event.listen('historicaldataGridSuFilter', 'SuChange', $.proxy(_w.historicaldata.loadHistoricGrid, this), 'Recurring');
318 setTimeout(_w.historicaldata.refreshGrid, 1200000);
321 refreshGrid: function ()
323 if ('historicaldata' != App.activePage)
327 _w.historicaldata.loadHistoricGrid(null, {}, {});
328 setTimeout(_w.historicaldata.refreshGrid, 1200000);
331 pageHistoricGrid: function (page)
333 _w.historicaldata.loadHistoricGrid({}, {"Grid": {"Page": page}});
336 loadHistoricGrid: function (contract, data, options)
339 'gridHistorical', data, options,
340 _w.historicaldata._onHistoricGridDataReceived, _w.taskExecError
344 _buildGrid: function ()
346 _w.historicaldata.gridData = {};
347 for (var i in _w.historicaldata.rawData.DataSet)
349 var row = _w.historicaldata.rawData.DataSet[i];
351 _w.historicaldata.gridData['i' + row.id] = {
352 bind: function (meta) {
353 $('#row' + meta.rowId).click(function (e) {
354 window.location = '#/' + meta.surl + '?id=' + meta.rowId;
355 console.log('#/' + meta.surl + '?id=' + meta.rowId);
366 Make: 'make hidden-phone',
367 Model: 'hidden-phone',
372 TradePrice: 'amount',
373 ReconCosts: 'amount',
374 HighestBid: 'amount',
379 'Make': row.stock.type.model.make.name,
380 'Model': row.stock.type.model.name,
381 'Type': row.stock.type.name,
382 'MMCode': row.stock.type.mmCode,
383 'Year': row.stock.vehicleYear.name,
385 'TradePrice': row.stock.tradePrice,
386 'ReconCosts': row.stock.damageTotal,
387 'HighestBid': row.currentBid.amount,
388 'DateSold': row.endDate
392 _w.historicaldata.ti.hydrateParam('gridRowRepeater', {
393 constructor: 'GridDataRow',
394 items: _w.historicaldata.gridData
398 rebuildGrid: function ()
400 if ('historicaldata' != App.activePage)
404 _w.historicaldata._buildGrid();
405 setTimeout(_w.historicaldata.rebuildGrid, 5000);
408 _onHistoricGridDataReceived: function (response)
410 _w.historicaldata.gridStatus = 'Sold';
411 if (!_w.timeRebuilder)
413 _w.timeRebuilder = true;
414 setTimeout(_w.historicaldata.rebuildGrid, 5000);
416 _w.historicaldata.ti.hydrateParam('gridRowRepeater', {});
417 _w.historicaldata.currentFilters = response.Data.Meta.Filters;
418 _w.populateFilters(response.Data.Meta.Filters, {
419 'make.id': 'gridHistoricalFilter_Make',
420 'model.id': 'gridHistoricalFilter_Model',
421 'type.id': 'gridHistoricalFilter_Type',
422 'type.mmCode': 'gridHistoricalFilter_MMCode',
423 'vehicleYear.id': 'gridHistoricalFilter_Year',
424 'stock.km': 'gridHistoricalFilter_KM',
425 'stock.tradePrice': 'gridHistoricalFilter_TradePrice',
426 'stock.damageTotal': 'gridHistoricalFilter_ReconCosts',
427 'currentBid.amount': 'gridHistoricalFilter_HighestBid',
429 $('select.gridHistoricalFilter').each(function (i, elem) {
430 $(elem).selectpicker('refresh');
432 _w.historicaldata.rawData = {
434 Meta: response.Data.Meta
436 for (var i = 0; i < response.Data.DataSet.length; i++)
438 _w.historicaldata.rawData.DataSet['a' + response.Data.DataSet[i]['id']] = response.Data.DataSet[i];
442 $('#placeholderLogo').hide();
443 _w.historicaldata._buildGrid();
444 _w.historicaldata.rawData.Meta.itemName = 'stockPager';
445 _w.historicaldata.rawData.Meta.bind = _w.historicaldata.pageHistoricGrid;
446 _w.historicaldata.ti.hydrateParam('gridPager', {
447 constructor: 'GridPager',
448 items: [_w.historicaldata.rawData.Meta]
452 exportHistoricGrid: function ()
455 'gridHistorical', {}, {'ExportToExcel': true},
456 _w.historicaldata._onExportReceived, _w.taskExecError,
461 _onExportReceived: function (response)
463 var win = window.open();
464 win.document.write(response);
467 clearHistoricGridContext: function ()
469 _w.historicaldata.gridStatus = 'Inactive';
472 $('select.gridHistoricalFilter').each(function (i, elem) {
473 $(elem).selectpicker('val', '');
474 $(elem).selectpicker('refresh');
481 $('.gridHistoricalContext').val('');
482 $('.gridHistoricalFilter').val('');
483 $('#gridHistoricalFilter_Status').val('Sold');
484 _w.historicaldata.searchHistoricGrid(true);
487 searchHistoricGrid: function (resetOrder)
489 _w.historicaldata.gridStatus = 'Inactive';
495 filter = _w.filterIfnotEmpty(filter, 'gridHistoricalFilter_Make', 'make.id');
496 filter = _w.filterIfnotEmpty(filter, 'gridHistoricalFilter_Model', 'model.id');
497 filter = _w.filterIfnotEmpty(filter, 'gridHistoricalFilter_Type', 'type.id');
498 filter = _w.filterIfnotEmpty(filter, 'gridHistoricalFilter_MMCode', 'type.mmCode');
499 filter = _w.filterIfnotEmpty(filter, 'gridHistoricalFilter_Year', 'vehicleYear.id');
500 filter = _w.filterIfnotEmpty(filter, 'gridHistoricalFilter_KM', 'stock.km');
501 filter = _w.filterIfnotEmpty(filter, 'gridHistoricalFilter_TradePrice', 'stock.tradePrice');
502 filter = _w.filterIfnotEmpty(filter, 'gridHistoricalFilter_ReconCosts', 'stock.damageTotal');
503 filter = _w.filterIfnotEmpty(filter, 'gridHistoricalFilter_HighestBid', 'currentBid.amount');
507 "Filters": filter.filters
511 App.DataStore.loadSelectListData('filterhistoricmakes', false, 'Auction', 'Auction.HistoricMakeSelectList', null, data, undefined, function()
513 if (undefined != _w.historicaldata.currentFilters['make.id'])
515 $('#gridHistoricalFilter_Make').val(_w.historicaldata.currentFilters['make.id']);
516 $('#gridHistoricalFilter_Make').selectpicker('refresh');
519 App.DataStore.loadSelectListData('filterhistoricmodels', false, 'Auction', 'Auction.HistoricModelSelectList', null, data, undefined, function()
521 if (undefined != _w.historicaldata.currentFilters['model.id'])
523 $('#gridHistoricalFilter_Model').val(_w.historicaldata.currentFilters['model.id']);
524 $('#gridHistoricalFilter_Model').selectpicker('refresh');
527 App.DataStore.loadSelectListData('filterhistorictypes', false, 'Auction', 'Auction.HistoricTypeSelectList', null, data, undefined, function()
529 if (undefined != _w.historicaldata.currentFilters['type.id'])
531 $('#gridHistoricalFilter_Type').val(_w.historicaldata.currentFilters['type.id']);
532 $('#gridHistoricalFilter_Type').selectpicker('refresh');
535 App.DataStore.loadSelectListData('filterhistoricyears', false, 'Auction', 'Auction.HistoricYearSelectList', null, data, undefined, function()
537 if (undefined != _w.historicaldata.currentFilters['vehicleYear.id'])
539 $('#gridHistoricalFilter_Year').val(_w.historicaldata.currentFilters['vehicleYear.id']);
540 $('#gridHistoricalFilter_Year').selectpicker('refresh');
548 "Filter": filter.filters
553 request.Grid.OrderBy = {
556 'auction.endDate': 'DESC'
559 _w.historicaldata.loadHistoricGrid(null, request, {});
562 orderHistoricGrid: function (field, direction)
565 order[field] = direction;
566 _w.historicaldata.loadHistoricGrid({}, {"Grid": {"Page": 1, "OrderBy": order}});