7 onTemplateReady : function( template, event, eventData )
9 _w.dealers.ti = _t[template];
11 _w.dealers.initGrids();
14 if (null == App.API.taskContract('gridSystemDealer'))
17 'gridSystemDealer', 'Company', 'Company.Grid', null,
18 {}, _w.dealers.loadDealerGrid, _w.taskContractError
23 _w.dealers.loadDealerGrid( null, {}, {} );
27 onTemplatePublished : function( template, event, eventData )
29 $(".gridDealerFilter").keypress(function (evt) {
30 var charCode = evt.charCode || evt.keyCode;
31 if (charCode == 13) { //Enter key's keycode
32 $('#btnDealerSearch').click();
36 _w.dealers.ti = _t[template];
39 $('#btnDealerAdd').click(function() {
40 window.location.hash = '/systemuserview?id=0';
42 $('#btnDealerClearSearch').click(_w.dealers.clearDealerGridContext);
43 $('#btnDealerSearch').click(_w.dealers.searchDealerGrid);
47 exportDealerGrid : function()
50 'gridSystemDealer', {}, {'ExportToExcel': true},
51 _w.dealers._onExportReceived, _w.taskExecError,
56 initGrids : function()
59 _w.dealers.ti.hydrate({
61 'gridDealerTitle': 'Manage dealerships',
63 constructor: 'Button',
67 id: 'exportAuctionGrid',
68 handler: _w.dealers.exportDealerGrid
72 'gridDealerColumnHeaders': {
73 constructor: 'GridColumnHeader',
76 id: 'gridDealerColumn_Group',
79 id: 'gridDealerOrder_GroupAsc',
80 bind: $.proxy(_w.dealers.orderDealerGrid, this, 'grp.name', 'ASC')
83 id: 'gridDealerOrder_GroupDesc',
84 bind: $.proxy(_w.dealers.orderDealerGrid, this, 'grp.name', 'DESC')
88 id: 'gridDealerColumn_Division',
91 id: 'gridDealerOrder_DivisionAsc',
92 bind: $.proxy(_w.dealers.orderDealerGrid, this, 'division.name', 'ASC')
95 id: 'gridDealerOrder_DivisionDesc',
96 bind: $.proxy(_w.dealers.orderDealerGrid, this, 'division.name', 'DESC')
100 id: 'gridDealerColumn_Company',
103 id: 'gridDealerOrder_CompanyAsc',
104 bind: $.proxy(_w.dealers.orderDealerGrid, this, 'company.name', 'ASC')
107 id: 'gridDealerOrder_CompanyDesc',
108 bind: $.proxy(_w.dealers.orderDealerGrid, this, 'company.name', 'DESC')
112 id: 'gridDealerColumn_Name',
113 title: 'CONTACT NAME',
115 id: 'gridDealerOrder_NameAsc',
116 bind: $.proxy(_w.dealers.orderDealerGrid, this, 'contact.firstName', 'ASC')
119 id: 'gridDealerOrder_NameDesc',
120 bind: $.proxy(_w.dealers.orderDealerGrid, this, 'contact.firstName', 'DESC')
124 id: 'gridDealerColumn_Surname',
125 title: 'CONTACT SURNAME',
127 id: 'gridDealerOrder_SurnameAsc',
128 bind: $.proxy(_w.dealers.orderDealerGrid, this, 'contact.familyName', 'ASC')
131 id: 'gridDealerOrder_SurnameDesc',
132 bind: $.proxy(_w.dealers.orderDealerGrid, this, 'contact.familyName', 'DESC')
136 id: 'gridDealerColumn_Email',
137 title: 'CONTACT EMAIL',
139 id: 'gridDealerOrder_EmailAsc',
140 bind: $.proxy(_w.dealers.orderDealerGrid, this, 'contact.email', 'ASC')
143 id: 'gridDealerOrder_EmailDesc',
144 bind: $.proxy(_w.dealers.orderDealerGrid, this, 'contact.email', 'DESC')
148 id: 'gridDealerColumn_Status',
151 id: 'gridDealerOrder_StatusAsc',
152 bind: $.proxy(_w.dealers.orderDealerGrid, this, 'company.jobState', 'ASC')
155 id: 'gridDealerOrder_StatusDesc',
156 bind: $.proxy(_w.dealers.orderDealerGrid, this, 'company.jobState', 'DESC')
161 'gridDealerColumnFilters': {
162 constructor: 'GridColumnFilter',
165 id: 'gridDealerFilter_Group',
166 context: 'gridDealerFilter'
169 id: 'gridDealerFilter_Division',
170 context: 'gridDealerFilter'
173 id: 'gridDealerFilter_Company',
174 context: 'gridDealerFilter'
177 id: 'gridDealerFilter_Name',
178 context: 'gridDealerFilter'
181 id: 'gridDealerFilter_Surname',
182 context: 'gridDealerFilter'
185 id: 'gridDealerFilter_Email',
186 context: 'gridDealerFilter'
189 id: 'gridDealerFilter_Status',
190 context: 'gridDealerFilter'
194 'gridDealerRowRepeater': {},
195 'gridDealerPager': {}
200 loadDealerGrid : function( contract, data, options )
203 'gridSystemDealer', data, options,
204 _w.dealers._onDealerGridDataReceived, _w.taskExecError
208 pageDealerGrid : function( page )
210 _w.dealers.loadDealerGrid( {}, {"Grid":{"Page":page}} );
213 clearDealerGridContext : function()
215 $('.gridDealerContext').val('');
216 $('.gridDealerFilter').val('');
217 _w.dealers.searchDealerGrid();
220 searchDealerGrid : function()
227 filter = _w.filterIfnotEmpty(filter, 'gridDealerFilter_Group', 'grp.name');
228 filter = _w.filterIfnotEmpty(filter, 'gridDealerFilter_Division', 'division.name');
229 filter = _w.filterIfnotEmpty(filter, 'gridDealerFilter_Company', 'company.name');
230 filter = _w.filterIfnotEmpty(filter, 'gridDealerFilter_Name', 'contact.firstName');
231 filter = _w.filterIfnotEmpty(filter, 'gridDealerFilter_Surname', 'contact.familyName');
232 filter = _w.filterIfnotEmpty(filter, 'gridDealerFilter_Email', 'contact.email');
233 filter = _w.filterIfnotEmpty(filter, 'gridDealerFilter_Status', 'company.jobState');
234 var request = {"Grid":{
236 "Filter": filter.filters
238 _w.dealers.loadDealerGrid( null, request, {} );
241 _onDealerGridDataReceived : function( response )
243 _w.dealers.ti.hydrateParam('gridDealerRowRepeater', {});
244 _w.populateFilters(response.Data.Meta.Filters, {
245 'group.name' : 'gridDealerFilter_Group',
246 'groupDivision.name' : 'gridDealerFilter_Division',
247 'company.name' : 'gridDealerFilter_Company',
248 'profile.firstName' : 'gridDealerFilter_Name',
249 'profile.familyName' : 'gridDealerFilter_Surname',
250 'profile.email' : 'gridDealerFilter_Email',
251 'company.jobState' : 'gridDealerFilter_Status'
254 for (var i = 0; i < response.Data.DataSet.length; i++)
256 var row = response.Data.DataSet[i];
258 url: 'systemdealerview',
263 'Group' : row.group ? row.group.name : '',
264 'Division' : row.groupDivision ? row.groupDivision.name : '',
265 'Company' : row.name,
266 'Name' : row.contact ? row.contact.firstName : '',
267 'Surname' : row.contact ? row.contact.familyName : '',
268 'Email' : row.contact ? row.contact.email : '',
269 'Status' : row.jobState
273 _w.dealers.ti.hydrateParam('gridDealerRowRepeater', {
274 constructor : 'GridDataRow',
277 response.Data.Meta.itemName = 'userPager';
278 response.Data.Meta.bind = _w.dealers.pageDealerGrid;
279 _w.dealers.ti.hydrateParam('gridDealerPager', {
280 constructor : 'GridPager',
281 items : [response.Data.Meta]
285 orderDealerGrid : function(field, direction)
288 order[field] = direction;
289 _w.dealers.loadDealerGrid( {}, {"Grid":{"Page": 1, "OrderBy": order}} );
292 _onExportReceived : function( response )
294 var win = window.open();
295 win.document.write(response);