3 window._w.dealerview = {
13 onViewTemplateReady : function( template, event, eventData )
15 _w.dealerview.ti = _t[template];
16 _w.dealerview.limited = ('limiteddealerview' == template)
20 App.DataStore.setData('companytypes', [
21 {"value":"Limited", "label":"Limited"},
22 {"value":"PTY Limited", "label":"PTY Limited"},
23 {"value":"Closed Corporation", "label":"Closed Corporation"},
24 {"value":"Sole Proprietor", "label":"Sole Proprietor"}
26 App.DataStore.loadSelectListData('countries', true, 'Location', 'Country.SelectList');
30 _w.dealerview.setCompanyViewFormMeta();
31 _w.dealerview.ti.hydrate(_w.dealerview.formMeta);
33 // Retrieve initial view data.
34 _w.dealerview.itemId = App.companyData.id;
35 _w.dealerview.newItem = false;
37 'updateCompany:' + _w.dealerview.itemId, 'Company', 'Company.Update', _w.dealerview.itemId,
38 {'id':_w.dealerview.itemId}, $.proxy( _w.dealerview._onCompanyViewDataReceived, this ), _w.taskContractError
43 onViewPublished : function( template, event, eventData )
45 if (null != _w.dealerview.itemData)
47 _w.dealerview._setupValidation();
51 setCompanyViewFormMeta : function( data )
57 _w.dealerview.formMeta = {
62 value : data.contact ? data.contact.firstName : ''
68 value : data.contact ? data.contact.familyName : ''
74 value : data.contact ? data.contact.office : ''
80 value : data.contact ? data.contact.mobile : ''
86 value : data.contact ? data.contact.email : ''
93 value : data.name ? data.name : ''
98 title : 'Business name',
99 value : data.businessName ? data.businessName : ''
101 'companyRegistrationNumber' : {
103 id : 'companyRegistrationNumber',
104 title : 'Company Reg no',
105 value : data.companyRegistrationNumber ? data.companyRegistrationNumber : ''
111 value : data.vatNumber ? data.vatNumber : ''
113 'dealerStockNumber' : {
115 id : 'dealerStockNumber',
116 title : 'Dealer stock no',
117 value : data.dealerStockNumber ? data.dealerStockNumber : ''
122 title : 'Company type',
123 dataStoreId : 'companytypes',
124 value : data.companyType ? data.companyType : ''
131 dataStoreId : 'countries',
132 value : data.city ? data.city.region.country.id : '',
133 onChange : function () {
134 if (!App.DataStore.getItem('BuildSelect:country', false))
136 _w.dealerview.itemData.city.region.country.id = $('#country').val();
137 _w.dealerview._listRegionTown();
145 dataStoreId : 'regions',
146 value : data.city ? data.city.region.id : '',
147 onChange : function () {
148 if (!App.DataStore.getItem('BuildSelect:region', false))
150 _w.dealerview.itemData.city.region.id = $('#region').val();
151 _w.dealerview._listRegionTown();
160 dataStoreId : 'cities',
161 value : data.city ? data.city.id : ''
167 value : data.street ? data.street : ''
173 value : data.postalCode ? data.postalCode : ''
178 _listRegionTown : function()
180 App.DataStore.loadSelectListData(
181 'regions', false, 'Location', 'Region.SelectList', null,
183 "country" : _w.dealerview.itemData.city.region.country.id
186 App.DataStore.loadSelectListData(
187 'cities', false, 'Location', 'Town.SelectList', null,
189 "region" : _w.dealerview.itemData.city.region.id
194 _onCompanyViewDataReceived : function( response )
196 _w.dealerview.itemId = response.Data.id;
197 _w.dealerview.itemData = response.Data;
198 _w.dealerview._listRegionTown();
199 _w.dealerview.setCompanyViewFormMeta(response.Data);
200 _w.dealerview.ti.hydrate(_w.dealerview.formMeta);
201 if (_w.dealerview.ti.published)
203 _w.dealerview._setupValidation();
207 _setupValidation : function ()
209 $('#frmDealerView').validate({
211 name: {required: true},
212 street: {required: true},
213 postalCode: {required: true, digits: true},
214 firstName: {required: true},
215 familyName: {required: true},
216 mobile: {required: true, mobile: true},
217 office: {required: true},
218 email: {required: true, email: true},
225 email: "Must be a valid email address."
227 country : "This field is required.",
228 region : "This field is required.",
229 city : "This field is required."
231 submitHandler: function( form ) {
232 $('#btnUpdate').prop('disabled', true);
233 var data = _w.dealerview._prepCompanyUpdateData();
235 'updateCompany:' + _w.dealerview.itemId, data, {},
236 _w.dealerview._onCompanyUpdated, _w.taskExecError
240 $('#btnUpdate').prop('disabled', false);
243 _prepCompanyUpdateData : function()
245 var data = _w.dealerview.ti.harvest();
246 var postData = {Company:{}, Contact:{}};
247 var contactFields = ["firstName","familyName","office","mobile","email"];
248 for (var field in data)
250 if (-1 == contactFields.indexOf(field))
252 postData.Company[field] = data[field];
256 postData.Contact[field] = data[field];
262 _onCompanyUpdated : function( response )
264 if (_w.dealerview.ownAccount)
267 'updateOffer:' + _w.offerview.offerId, 'User', 'Profile.ActiveAccount', null,
268 {}, function (response) {
269 App.permissions = response.Data.permissions;
270 delete response.Data.permissions;
271 App.companyData = response.Data.company;
272 delete response.Data.company;
273 App.userData = response.Data;
274 window.location.hash = '/settings';
275 }, _w.onActiveAccountFailure
280 window.location.hash = '/settings';