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,
67 'PinReset:' + _w.systemuserview.itemId, {
69 email : _w.systemuserview.itemData.email
73 alert('Pin reset successfull.');
76 }, _w.taskContractError
79 $('#btnSuspend').click(_w.systemuserview._routeToSuspended);
80 $('#btnActivate').click(_w.systemuserview._routeToActive);
81 $('#btnArchive').click(_w.systemuserview._routeToArchived);
82 $('#btnUnarchive').click(_w.systemuserview._routeToActive);
83 if (!_w.systemuserview.newItem)
85 $('#btnPermissions').click(function() {
86 window.location.hash = '/override?id=' + _w.systemuserview.itemData.override;
91 $('#btnPermissions').prop('disabled', true);
95 _routeToActive : function()
98 'routeUserActive:' + _w.systemuserview.itemId, 'User', 'Workflow.MoveToActive',
99 _w.systemuserview.itemId, {}, _w.systemuserview._onUserUpdated, _w.taskExecError
103 _routeToSuspended : function()
106 'routeUserSuspended:' + _w.systemuserview.itemId, 'User', 'Workflow.MoveToSuspended',
107 _w.systemuserview.itemId, {}, _w.systemuserview._onUserUpdated, _w.taskExecError
111 _routeToArchived : function()
114 'routeUserArchive:' + _w.systemuserview.itemId, 'User', 'Workflow.MoveToArchive',
115 _w.systemuserview.itemId, {}, _w.systemuserview._onUserUpdated, _w.taskExecError
119 setUserViewFormMeta : function( data )
125 _w.systemuserview.formMeta = {
129 title : 'Dealership',
130 dataStoreId : 'companies',
131 value : data.company ? data.company : '',
132 onChange : function() {
133 if (!App.DataStore.getItem('BuildSelect:company', false))
135 App.DataStore.loadSelectListData('cmpfltrdmanagers', false, 'User', 'Profile.AdminManagerList', null, {
136 Filter: {company: $(this).val()}
145 value : data.firstName ? data.firstName : '',
152 value : data.familyName ? data.familyName : '',
159 value : data.idNumber ? data.idNumber : '',
161 onChange : function() {
162 var dig = $(this).val().substring(0, 6);
163 $('#dateOfBirth').val(
164 '19' + dig.substring(0, 2) +
165 '-' + dig.substring(2, 4) +
166 '-' + dig.substring(4, 6)
173 title : 'Date of birth',
174 style : 'datepicker',
175 value : data.dateOfBirth ? data.dateOfBirth : ''
181 value : data.mobile ? data.mobile : '',
188 value : data.email ? data.email : '',
195 selectEmpty : 'Nobody',
196 dataStoreId : 'cmpfltrdmanagers',
197 value : data.manager ? data.manager : ''
203 dataStoreId : 'fullpermissions',
204 value : data.permissions ? data.permissions : ''
207 'mainMemberPublicCentre' : {
209 id : 'mainMemberPublicCentre',
210 title : 'Main Member of Public Centre',
211 value : data.mainMemberPublicCentre ? data.mainMemberPublicCentre : false
214 'subscribeNewsletter' : {
216 id : 'subscribeNewsletter',
217 title : 'Subscribe to newsletters',
218 value : data.subscribeNewsletter ? data.subscribeNewsletter : false
223 _onUserViewDataReceived : function( response )
225 if (response.Data.company)
227 App.DataStore.loadSelectListData('cmpfltrdmanagers', false, 'User', 'Profile.AdminManagerList', null, {
228 Filter: {company: response.Data.company}
233 App.DataStore.setData('managers', []);
235 _w.systemuserview.itemId = response.Data.id;
236 _w.systemuserview.itemData = response.Data;
237 _w.systemuserview.setUserViewFormMeta(response.Data);
238 _w.systemuserview.ti.hydrate(_w.systemuserview.formMeta);
239 if (!_w.systemuserview.newItem)
241 switch (response.Data.jobState)
244 $('#btnResetPin').show();
245 $('#btnSuspend').show();
246 $('#btnArchive').show();
249 $('#btnActivate').show();
250 $('#btnArchive').show();
253 $('#btnUnarchive').show();
257 _w.systemuserview._setupValidation();
260 _setupValidation : function ()
262 $('#frmUserView').validate({
264 firstName: "required",
265 familyName: "required",
266 idNumber: {required: true, minlength: 13, maxlength: 13, digits: true},
267 dateOfBirth: {required: true, dateISO: true},
268 mobile: {required: true, mobile: true},
273 url: "/workspace/validate-unique-field-direct",
281 return $("#email").val();
283 Id : $.proxy(function() {
284 return _w.systemuserview.itemId;
289 permissions: "required"
292 firstName : "This field is required.",
293 familyName : "This field is required.",
295 email: "Must be a valid email address."
298 minlength: "Must be 13 digits.",
299 maxlength: "Must be 13 digits."
302 dateISO: "Must be a valid date."
304 permissions : "This field is required."
306 submitHandler: function( form ) {
307 $('#btnUpdate').prop('disabled', true);
308 var data = _w.systemuserview._prepUserUpdateData();
309 if (_w.systemuserview.newItem)
312 'createUser', data, {},
313 _w.systemuserview._onUserUpdated, _w.taskExecError
319 'updateUser:' + _w.systemuserview.itemId, data, {},
320 _w.systemuserview._onUserUpdated, _w.taskExecError
325 $('#btnUpdate').prop('disabled', false);
328 _prepUserUpdateData : function()
330 var data = {Profile:_w.systemuserview.ti.harvest()};
331 if ('' == data.Profile.manager)
333 data.Profile.manager = null;
338 _onUserUpdated : function( response )
340 if (_w.systemuserview.ownAccount)
343 'updateOffer:' + _w.offerview.offerId, 'User', 'Profile.ActiveAccount', null,
344 {}, function (response) {
345 App.permissions = response.Data.permissions;
346 delete response.Data.permissions;
347 App.companyData = response.Data.company;
348 delete response.Data.company;
349 App.userData = response.Data;
350 window.location.hash = '/systemusers';
351 }, _w.onActiveAccountFailure
356 window.location.hash = '/systemusers';