13 onViewTemplateReady : function( template, event, eventData )
15 _w.userview.ti = _t[template];
16 _w.userview.itemData = null;
17 _w.userview.limited = ('limiteduserview' == template)
21 App.DataStore.loadSelectListData('permissions', true, 'User', 'Permissions.SelectList');
22 App.DataStore.loadSelectListData('managers', true, 'User', 'Profile.ManagerList');
26 _w.userview.setUserViewFormMeta();
27 _w.userview.ti.hydrate(_w.userview.formMeta);
29 // Retrieve initial view data.
30 _w.userview.itemId = App.Util.getUrlParam('id');
31 if (0 == _w.userview.itemId || null == _w.userview.itemId)
33 _w.userview.newItem = true;
34 _w.userview.ownAccount = false;
35 _w.userview.itemData = {};
37 'createUser', 'User', 'Profile.Create',
38 null, {}, function(){}, _w.taskContractError
44 _w.userview.ownAccount = (App.userData.id == _w.userview.itemId)
47 _w.userview.newItem = false;
49 'updateUser:' + _w.userview.itemId, 'User', 'Profile.Update', _w.userview.itemId,
50 {'id':_w.userview.itemId}, _w.userview._onUserViewDataReceived, _w.taskContractError
56 onViewPublished : function( template, event, eventData )
58 $('#btnResetPin').click(function() {
60 'PinReset:' + _w.userview.itemId, 'User', 'Profile.ForgotPassword', null,
63 'PinReset:' + _w.userview.itemId, {
65 email : _w.userview.itemData.email
69 alert('Pin reset successfull.');
72 }, _w.taskContractError
76 $('#btnChangePin').click(function() {
77 window.location.hash = '/changepinview?id='+_w.userview.itemId;
81 $('#btnSuspend').click(_w.userview._routeToSuspended);
82 $('#btnActivate').click(_w.userview._routeToActive);
83 $('#btnArchive').click(_w.userview._routeToArchived);
84 $('#btnUnarchive').click(_w.userview._routeToActive);
85 if (_w.userview.newItem)
87 _w.userview._setupValidation();
90 if (!_w.userview.newItem && null != _w.userview.itemData)
92 _w.userview._onDataAndTemplate();
96 _routeToActive : function()
99 'routeUserActive:' + _w.userview.itemId, 'User', 'Workflow.MoveToActive',
100 _w.userview.itemId, {}, _w.userview._onUserUpdated, _w.taskExecError
104 _routeToSuspended : function()
107 'routeUserSuspended:' + _w.userview.itemId, 'User', 'Workflow.MoveToSuspended',
108 _w.userview.itemId, {}, _w.userview._onUserUpdated, _w.taskExecError
112 _routeToArchived : function()
115 'routeUserArchive:' + _w.userview.itemId, 'User', 'Workflow.MoveToArchive',
116 _w.userview.itemId, {}, _w.userview._onUserUpdated, _w.taskExecError
120 setUserViewFormMeta : function( data )
127 if ('Auction Buyer' == App.permissions.name)
131 if ('Auction Buyer & Seller' == App.permissions.name)
135 _w.userview.formMeta = {
140 value : data.firstName ? data.firstName : '',
147 value : data.familyName ? data.familyName : '',
154 value : data.idNumber ? data.idNumber : '',
156 onChange : function() {
157 var dig = $(this).val().substring(0, 6);
158 $('#dateOfBirth').val(
159 '19' + dig.substring(0, 2) +
160 '-' + dig.substring(2, 4) +
161 '-' + dig.substring(4, 6)
168 title : 'Date of birth',
169 style : 'datepicker',
170 value : data.dateOfBirth ? data.dateOfBirth : ''
176 value : data.mobile ? data.mobile : '',
183 value : data.email ? data.email : '',
190 selectEmpty : 'Nobody',
191 dataStoreId : 'managers',
192 value : data.manager ? data.manager : ''
198 dataStoreId : 'permissions',
199 value : data.permissions
202 disabled : !App.permissions.settingsUser
203 || 'Auction Buyer' == App.permissions.name
204 || 'Auction Buyer & Seller' == App.permissions.name
207 'subscribeNewsletter' : {
209 id : 'subscribeNewsletter',
210 title : 'Subscribe to newsletters',
211 value : data.subscribeNewsletter ? data.subscribeNewsletter : false
216 _onDataAndTemplate : function() {
217 if (!_w.userview.newItem)
219 switch (_w.userview.itemData.jobState)
222 true == App.permissions.settingsResetPin ? $('#btnResetPin').show() : $('#btnResetPin').hide();
223 $('#btnSuspend').show();
224 $('#btnArchive').show();
227 $('#btnActivate').show();
228 $('#btnArchive').show();
231 $('#btnUnarchive').show();
235 _w.userview._setupValidation();
238 _onUserViewDataReceived : function( response )
240 if (App.companyData.id != response.Data.company)
244 _w.userview.itemId = response.Data.id;
245 _w.userview.itemData = response.Data;
246 _w.userview.setUserViewFormMeta(response.Data);
247 _w.userview.ti.hydrate(_w.userview.formMeta);
248 if (_w.userview.ti.published)
250 _w.userview._onDataAndTemplate();
254 _setupValidation : function ()
256 $('#frmUserView').validate({
258 firstName: "required",
259 familyName: "required",
260 //idNumber: {required: true, minlength: 13, maxlength: 13, digits: true},
261 //dateOfBirth: {required: true, dateISO: true},
262 mobile: {required: true, mobile: true},
267 url: "/workspace/validate-unique-field-direct",
275 return $("#email").val();
277 Id : $.proxy(function() {
278 return _w.userview.itemId;
283 permissions: "required"
286 firstName : "This field is required.",
287 familyName : "This field is required.",
289 email: "Must be a valid email address."
292 minlength: "Must be 13 digits.",
293 maxlength: "Must be 13 digits."
296 dateISO: "Must be a valid date."
298 permissions : "This field is required."
300 submitHandler: function( form ) {
301 $('#btnUpdate').prop('disabled', true);
302 var data = _w.userview._prepUserUpdateData();
303 if (_w.userview.newItem)
306 'createUser', data, {},
307 _w.userview._onUserUpdated, _w.taskExecError
313 'updateUser:' + _w.userview.itemId, data, {},
314 _w.userview._onUserUpdated, _w.taskExecError
319 $('#btnUpdate').prop('disabled', false);
322 _prepUserUpdateData : function()
324 var data = {Profile:_w.userview.ti.harvest()};
325 if ('' == data.Profile.manager)
327 data.Profile.manager = null;
332 _onUserUpdated : function( response )
334 if (_w.userview.ownAccount)
337 'updateOffer:' + _w.offerview.offerId, 'User', 'Profile.ActiveAccount', null,
338 {}, function (response) {
339 App.permissions = response.Data.permissions;
340 delete response.Data.permissions;
341 App.companyData = response.Data.company;
342 delete response.Data.company;
343 App.userData = response.Data;
344 window.location.hash = '/settings';
345 }, _w.onActiveAccountFailure
350 window.location.hash = '/settings';