3 window._w.systemauctions = {
8 onTemplateReady : function( template, event, eventData )
10 _w.systemauctions.ti = _t[template];
11 App.DataStore.setData('auctionstatuses',
13 {"value":"Active", "label":"Active"},
14 {"value":"Sold", "label":"Sold"},
15 {"value":"Relist", "label":"Relist"},
16 {"value":"Undone", "label":"Undone"},
19 _w.systemauctions.ti.hydrate({
20 'gridTitle': 'Auction',
21 'gridTitleSubtext': 'Please use the filters below to narrow down the view',
23 constructor: 'Button',
27 id: 'exportAuctionGrid',
28 handler: _w.systemauctions.exportAuctionGrid
32 'gridContextFilter': {
33 constructor: 'GridContextFilter',
36 title: 'Search here:',
37 style: 'filter-input-wrapper',
38 id: 'gridAuctionContext_RegNo',
39 placeholder: 'Registration number',
40 context: 'gridAuctionContext'
44 searchId: 'searchAuctionGrid',
45 bindSearch: _w.systemauctions.searchAuctionGrid,
46 clearId: 'clearAuctionGridContext',
47 bindClear: _w.systemauctions.clearAuctionGridContext
51 'gridColumnHeaders': {
52 constructor: 'GridColumnHeader',
55 id: 'gridAuctionColumn_ID',
58 id: 'gridAuctionOrder_IDAsc',
59 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'auction.id', 'ASC')
62 id: 'gridAuctionOrder_IDDesc',
63 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'auction.id', 'DESC')
67 id: 'gridAuctionColumn_Make',
70 id: 'gridAuctionOrder_MakeAsc',
71 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'make.name', 'ASC')
74 id: 'gridAuctionOrder_MakeDesc',
75 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'make.name', 'DESC')
79 id: 'gridAuctionColumn_Model',
82 id: 'gridAuctionOrder_ModelAsc',
83 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'model.name', 'ASC')
86 id: 'gridAuctionOrder_ModelDesc',
87 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'model.name', 'DESC')
91 id: 'gridAuctionColumn_Type',
94 id: 'gridAuctionOrder_TypeAsc',
95 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'type.name', 'ASC')
98 id: 'gridAuctionOrder_TypeDesc',
99 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'type.name', 'DESC')
104 id: 'gridAuctionColumn_Year',
107 id: 'gridAuctionOrder_YearAsc',
108 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'vehicleYear.name', 'ASC')
111 id: 'gridAuctionOrder_YearDesc',
112 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'vehicleYear.name', 'DESC')
117 id: 'gridAuctionColumn_KM',
120 id: 'gridAuctionOrder_KMAsc',
121 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'stock.km', 'ASC')
124 id: 'gridAuctionOrder_KMDesc',
125 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'stock.km', 'DESC')
130 id: 'gridAuctionColumn_Trade',
133 id: 'gridAuctionOrder_TradeAsc',
134 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'stock.tradePrice', 'ASC')
137 id: 'gridAuctionOrder_TradeDesc',
138 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'stock.tradePrice', 'DESC')
142 id: 'gridAuctionColumn_Retail',
145 id: 'gridAuctionOrder_RetailAsc',
146 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'stock.retailPrice', 'ASC')
149 id: 'gridAuctionOrder_RetailDesc',
150 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'stock.retailPrice', 'DESC')
154 id: 'gridAuctionColumn_List',
155 title: 'NEW LIST PRICE',
157 id: 'gridAuctionOrder_ListAsc',
158 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'stock.listPrice', 'ASC')
161 id: 'gridAuctionOrder_ListDesc',
162 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'stock.listPrice', 'DESC')
166 id: 'gridAuctionFilter_Company',
169 id: 'gridAuctionOrder_CompanyAsc',
170 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'company.name', 'ASC')
173 id: 'gridAuctionOrder_CompanyDesc',
174 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'company.name', 'DESC')
178 id: 'gridAuctionFilter_Region',
181 id: 'gridAuctionOrder_RegionAsc',
182 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'region.name', 'ASC')
185 id: 'gridAuctionOrder_RegionDesc',
186 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'region.name', 'DESC')
190 id: 'gridAuctionColumn_Bid',
191 title: 'HIGHEST BID',
193 id: 'gridAuctionOrder_BidAsc',
194 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'currentBid.amount', 'ASC')
197 id: 'gridAuctionOrder_BidDesc',
198 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'currentBid.amount', 'DESC')
200 style: 'offer-submitted'
203 id: 'gridAuctionColumn_Time',
204 title: 'TIME REMAINING'
207 id: 'gridAuctionColumn_Status',
210 id: 'gridAuctionOrder_StatusAsc',
211 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'auction.jobState', 'ASC')
214 id: 'gridAuctionOrder_StatusDesc',
215 bind: $.proxy(_w.systemauctions.orderAuctionGrid, this, 'auction.jobState', 'DESC')
220 'gridColumnFilters': {
221 constructor: 'GridColumnFilter',
224 id: 'gridAuctionFilter_ID',
225 context: 'gridAuctionFilter'
228 id: 'gridAuctionFilter_Make',
229 context: 'gridAuctionFilter'
232 id: 'gridAuctionFilter_Model',
233 context: 'gridAuctionFilter'
236 id: 'gridAuctionFilter_Type',
237 context: 'gridAuctionFilter'
240 id: 'gridAuctionFilter_Year',
241 context: 'gridAuctionFilter'
244 id: 'gridAuctionFilter_KM',
245 context: 'gridAuctionFilter'
248 id: 'gridAuctionFilter_Trade',
249 context: 'gridAuctionFilter'
252 id: 'gridAuctionFilter_Retail',
253 context: 'gridAuctionFilter'
256 id: 'gridAuctionColumn_List',
257 context: 'gridAuctionFilter'
260 id: 'gridAuctionFilter_Company',
261 context: 'gridAuctionFilter'
264 id: 'gridAuctionFilter_Region',
265 context: 'gridAuctionFilter'
269 id: 'gridAuctionFilter_Bid',
270 context: 'gridAuctionFilter'
274 id: 'gridAuctionFilter_Status',
275 context: 'gridAuctionFilter',
276 dataStoreId : 'auctionstatuses',
281 'gridRowRepeater': {},
285 // Retrieve initial grid data.
286 if (null == App.API.taskContract('gridAuction'))
289 'gridAdminAuction', 'Auction', 'Auction.AdminGrid', null,
290 {}, _w.systemauctions.loadAuctionGrid, _w.taskContractError
295 _w.systemauctions.loadAuctionGrid( null, {}, {} );
299 onTemplatePublished : function()
301 $(".gridAuctionFilter").keypress(function (evt) {
302 var charCode = evt.charCode || evt.keyCode;
303 if (charCode == 13) { //Enter key's keycode
304 $('#btnSearch').click();
308 $('#exportAuctionGrid').prop('disabled', !App.permissions.pgGridExport);
309 //$('#btnClearSearch').click(_w.systemauctions.clearAuctionGridContext);
310 //$('#btnSearch').click(_w.systemauctions.searchAuctionGrid);
312 var setTableFormWidth = function()
314 $('.table-form').css({
315 width : $(window).width() * 0.96
319 $(window).on('resize', setTableFormWidth );
322 setTimeout(_w.systemauctions.refreshGrid, 30000);
325 refreshGrid : function()
327 if ('systemauctions' != App.activePage)
331 _w.systemauctions.loadAuctionGrid( null, {}, {} );
332 setTimeout(_w.systemauctions.refreshGrid, 30000);
335 pageAuctionGrid : function( page )
337 _w.systemauctions.loadAuctionGrid( {}, {"Grid":{"Page":page}} );
340 loadAuctionGrid : function( contract, data, options )
343 'gridAdminAuction', data, options,
344 _w.systemauctions._onAuctionGridDataReceived, _w.taskExecError
348 _buildGrid : function()
350 _w.systemauctions.ti.hydrateParam('gridRowRepeater', {
351 constructor : 'GridDataRow',
352 items : _w.systemauctions.gridData
356 _onAuctionGridDataReceived : function( response )
358 _w.systemauctions.ti.hydrateParam('gridRowRepeater', {});
359 _w.populateFilters(response.Data.Meta.Filters, {
360 'id': 'gridAuctionFilter_ID',
361 'make.name': 'gridAuctionFilter_Make',
362 'model.name': 'gridAuctionFilter_Model',
363 'type.name': 'gridAuctionFilter_Type',
364 'vehicleYear.name': 'gridAuctionFilter_Year',
365 'stock.km': 'gridAuctionFilter_KM',
366 'stock.tradePrice': 'gridAuctionFilter_Trade',
367 'stock.retailPrice': 'gridAuctionFilter_Retail',
368 'stock.listPrice': 'gridAuctionFilter_List',
369 'company.name': 'gridAuctionFilter_Company',
370 'region.name': 'gridAuctionFilter_Region',
371 'currentBid.amount': 'gridAuctionFilter_Bid',
372 'auction.jobState': 'gridAuctionFilter_Status'
374 $('select.gridAuctionFilter').each(function(i, elem) {
375 $(elem).selectpicker('refresh');
377 _w.systemauctions.gridData = {};
378 for (var i = 0; i < response.Data.DataSet.length; i++)
380 var row = response.Data.DataSet[i];
381 _w.systemauctions.gridData['i' + row.id] = {
382 url: 'systembidview',
392 'Make' : row.stock.type.model.make.name,
393 'Model' : row.stock.type.model.name,
394 'Type' : row.stock.type.name,
395 'Year' : row.stock.vehicleYear.name,
397 'Trade' : row.stock.tradePrice,
398 'Retail' : row.stock.retailPrice,
399 'List' : row.stock.listPrice,
400 'Company' : row.company.name,
401 'Region' : row.company.city.region.name,
402 'Bid' : row.currentBid ? row.currentBid.amount : row.reservePrice,
403 'Time' : App.Util.calculateTimeLeft(row.created, null, row.endDate),
404 'Status' : row.jobState
408 _w.systemauctions._buildGrid();
409 response.Data.Meta.itemName = 'stockPager';
410 response.Data.Meta.bind = _w.systemauctions.pageAuctionGrid;
411 _w.systemauctions.ti.hydrateParam('gridPager', {
412 constructor : 'GridPager',
413 items : [response.Data.Meta]
417 exportAuctionGrid : function()
420 'gridAdminAuction', {}, {'ExportToExcel': true},
421 _w.systemauctions._onExportReceived, _w.taskExecError,
426 _onExportReceived : function( response )
428 var win = window.open();
429 win.document.write(response);
432 clearAuctionGridContext : function()
436 $('select.gridAuctionFilter').each(function(i, elem) {
437 $(elem).selectpicker('val', '');
438 $(elem).selectpicker('refresh');
441 catch (err) { console.log(err); }
442 $('.gridAuctionContext').val('');
443 $('.gridAuctionFilter').val('');
444 _w.systemauctions.searchAuctionGrid(true);
447 searchAuctionGrid : function(resetOrder)
453 filter = _w.filterIfnotEmpty(filter, 'gridAuctionFilter_ID', 'id');
454 filter = _w.filterIfnotEmpty(filter, 'gridAuctionFilter_Make', 'make.name');
455 filter = _w.filterIfnotEmpty(filter, 'gridAuctionFilter_Model', 'model.name');
456 filter = _w.filterIfnotEmpty(filter, 'gridAuctionFilter_Type', 'type.name');
457 filter = _w.filterIfnotEmpty(filter, 'gridAuctionFilter_Year', 'vehicleYear.name');
458 filter = _w.filterIfnotEmpty(filter, 'gridAuctionContext_RegNo', 'stock.registrationNumber');
459 filter = _w.filterIfnotEmpty(filter, 'gridAuctionFilter_KM', 'stock.km');
460 filter = _w.filterIfnotEmpty(filter, 'gridAuctionFilter_Trade', 'stock.tradePrice');
461 filter = _w.filterIfnotEmpty(filter, 'gridAuctionFilter_Retail', 'stock.retailPrice');
462 filter = _w.filterIfnotEmpty(filter, 'gridAuctionFilter_List', 'stock.listPrice');
463 filter = _w.filterIfnotEmpty(filter, 'gridAuctionFilter_Company', 'company.name');
464 filter = _w.filterIfnotEmpty(filter, 'gridAuctionFilter_Region', 'region.name');
465 filter = _w.filterIfnotEmpty(filter, 'gridAuctionFilter_Bid', 'currentBid.amount');
466 filter = _w.filterIfnotEmpty(filter, 'gridAuctionFilter_Status', 'auction.jobState');
467 var request = {"Grid":{
469 "Filter": filter.filters
473 request.Grid.OrderBy = {'auction.created': 'DESC'};
476 _w.systemauctions.loadAuctionGrid( null, request, {} );
479 orderAuctionGrid : function(field, direction)
482 order[field] = direction;
483 _w.systemauctions.loadAuctionGrid( {}, {"Grid":{"Page": 1, "OrderBy": order}} );