3 window._w.systemuserview = {
13 onTemplateReady : function( template, event, eventData )
15 _w.systemuserview.ti = _t[template];
16 _w.systemuserview.limited = ('limitedsystemuserview' == template)
20 App.DataStore.loadSelectListData('companies', true, 'Company', 'Company.SelectList');
21 App.DataStore.loadSelectListData('fullpermissions', true, 'User', 'Permissions.FullSelectList');
25 _w.systemuserview.setUserViewFormMeta();
26 _w.systemuserview.ti.hydrate(_w.systemuserview.formMeta);
28 // Retrieve initial view data.
29 _w.systemuserview.itemId = App.Util.getUrlParam('id');
30 if (0 == _w.systemuserview.itemId || null == _w.systemuserview.itemId)
32 _w.systemuserview.newItem = true;
33 _w.systemuserview.ownAccount = false;
34 _w.systemuserview.itemData = {};
36 'createUser', 'User', 'Profile.Create',
37 null, {}, function(){}, _w.taskContractError
43 _w.systemuserview.ownAccount = (App.userData.id == _w.systemuserview.itemId)
46 _w.systemuserview.newItem = false;
48 'updateUser:' + _w.systemuserview.itemId, 'User', 'Profile.Update', _w.systemuserview.itemId,
49 {'id':_w.systemuserview.itemId}, $.proxy( _w.systemuserview._onUserViewDataReceived, this ), _w.taskContractError
55 onTemplatePublished : function( template, event, eventData )
57 _w.systemuserview.ti = _t[template];
58 if (_w.systemuserview.newItem)
60 _w.systemuserview._setupValidation();
62 $('#btnResetPin').click(function() {
64 'PinReset:' + _w.systemuserview.itemId, 'User', 'Profile.ForgotPassword', null,
66 //( id, data, options, callback, errorCallback, method, direct )
68 'PinReset:' + _w.systemuserview.itemId, {
70 email : _w.systemuserview.itemData.email,
71 mobile : _w.systemuserview.itemData.mobile
75 alert('Pin reset successful.');
78 }, _w.taskContractError
81 $('#btnSuspend').click(_w.systemuserview._routeToSuspended);
82 $('#btnActivate').click(_w.systemuserview._routeToActive);
83 $('#btnArchive').click(_w.systemuserview._routeToArchived);
84 $('#btnUnarchive').click(_w.systemuserview._routeToActive);
85 if (!_w.systemuserview.newItem)
87 $('#btnPermissions').click(function() {
88 window.location.hash = '/override?id=' + _w.systemuserview.itemData.override;
93 $('#btnPermissions').prop('disabled', true);
97 _routeToActive : function()
100 'routeUserActive:' + _w.systemuserview.itemId, 'User', 'Workflow.MoveToActive',
101 _w.systemuserview.itemId, {}, _w.systemuserview._onUserUpdated, _w.taskExecError
105 _routeToSuspended : function()
108 'routeUserSuspended:' + _w.systemuserview.itemId, 'User', 'Workflow.MoveToSuspended',
109 _w.systemuserview.itemId, {}, _w.systemuserview._onUserUpdated, _w.taskExecError
113 _routeToArchived : function()
116 'routeUserArchive:' + _w.systemuserview.itemId, 'User', 'Workflow.MoveToArchive',
117 _w.systemuserview.itemId, {}, _w.systemuserview._onUserUpdated, _w.taskExecError
121 setUserViewFormMeta : function( data )
127 _w.systemuserview.formMeta = {
131 title : 'Dealership',
132 dataStoreId : 'companies',
133 value : data.company ? data.company : '',
134 onChange : function() {
135 if (!App.DataStore.getItem('BuildSelect:company', false))
137 App.DataStore.loadSelectListData('cmpfltrdmanagers', false, 'User', 'Profile.AdminManagerList', null, {
138 Filter: {company: $(this).val()}
147 value : data.firstName ? data.firstName : '',
154 value : data.familyName ? data.familyName : '',
161 value : data.idNumber ? data.idNumber : '',
163 onChange : function() {
164 var dig = $(this).val().substring(0, 6);
165 $('#dateOfBirth').val(
166 '19' + dig.substring(0, 2) +
167 '-' + dig.substring(2, 4) +
168 '-' + dig.substring(4, 6)
175 title : 'Date of birth',
176 style : 'datepicker',
177 value : data.dateOfBirth ? data.dateOfBirth : ''
183 value : data.mobile ? data.mobile : '',
190 value : data.email ? data.email : '',
197 selectEmpty : 'Nobody',
198 dataStoreId : 'cmpfltrdmanagers',
199 value : data.manager ? data.manager : ''
205 dataStoreId : 'fullpermissions',
206 value : data.permissions ? data.permissions : ''
209 'mainMemberPublicCentre' : {
211 id : 'mainMemberPublicCentre',
212 title : 'Main Member of Public Centre',
213 value : data.mainMemberPublicCentre ? data.mainMemberPublicCentre : false
216 'subscribeNewsletter' : {
218 id : 'subscribeNewsletter',
219 title : 'Subscribe to newsletters',
220 value : data.subscribeNewsletter ? data.subscribeNewsletter : false
225 _onUserViewDataReceived : function( response )
227 if (response.Data.company)
229 App.DataStore.loadSelectListData('cmpfltrdmanagers', false, 'User', 'Profile.AdminManagerList', null, {
230 Filter: {company: response.Data.company}
235 App.DataStore.setData('managers', []);
237 _w.systemuserview.itemId = response.Data.id;
238 _w.systemuserview.itemData = response.Data;
239 _w.systemuserview.setUserViewFormMeta(response.Data);
240 _w.systemuserview.ti.hydrate(_w.systemuserview.formMeta);
241 if (!_w.systemuserview.newItem)
243 switch (response.Data.jobState)
246 $('#btnResetPin').show();
247 $('#btnSuspend').show();
248 $('#btnArchive').show();
251 $('#btnActivate').show();
252 $('#btnArchive').show();
255 $('#btnUnarchive').show();
259 _w.systemuserview._setupValidation();
262 _setupValidation : function ()
264 $('#frmUserView').validate({
266 firstName: "required",
267 familyName: "required",
268 idNumber: {required: true, minlength: 13, maxlength: 13, digits: true},
269 dateOfBirth: {required: true, dateISO: true},
270 mobile: {required: true, mobile: true},
275 url: "/workspace/validate-unique-field-direct",
283 return $("#email").val();
285 Id : $.proxy(function() {
286 return _w.systemuserview.itemId;
291 permissions: "required"
294 firstName : "This field is required.",
295 familyName : "This field is required.",
297 email: "Must be a valid email address."
300 minlength: "Must be 13 digits.",
301 maxlength: "Must be 13 digits."
304 dateISO: "Must be a valid date."
306 permissions : "This field is required."
308 submitHandler: function( form ) {
309 $('#btnUpdate').prop('disabled', true);
310 var data = _w.systemuserview._prepUserUpdateData();
311 if (_w.systemuserview.newItem)
314 'createUser', data, {},
315 _w.systemuserview._onUserUpdated, _w.taskExecError
321 'updateUser:' + _w.systemuserview.itemId, data, {},
322 _w.systemuserview._onUserUpdated, _w.taskExecError
327 $('#btnUpdate').prop('disabled', false);
330 _prepUserUpdateData : function()
332 var data = {Profile:_w.systemuserview.ti.harvest()};
333 if ('' == data.Profile.manager)
335 data.Profile.manager = null;
340 _onUserUpdated : function( response )
342 if (_w.systemuserview.ownAccount)
345 'updateOffer:' + _w.offerview.offerId, 'User', 'Profile.ActiveAccount', null,
346 {}, function (response) {
347 App.permissions = response.Data.permissions;
348 delete response.Data.permissions;
349 App.companyData = response.Data.company;
350 delete response.Data.company;
351 App.userData = response.Data;
352 window.location.hash = '/systemusers';
353 }, _w.onActiveAccountFailure
358 window.location.hash = '/systemusers';