3 window._w.membershipview = {
13 onViewTemplateReady : function( template, event, eventData )
15 _w.membershipview.ti = _t[template];
16 _w.membershipview.limited = ('limitedmembershipview' == template)
20 App.DataStore.loadSelectListData('years', true, 'Stock', 'Year.SelectList');
21 App.DataStore.loadSelectListData('makes', true, 'Stock', 'Make.SelectList');
23 _w.membershipview.setMembershipViewFormMeta();
24 _w.membershipview.ti.hydrate(_w.membershipview.formMeta);
26 // Retrieve initial view data.
27 _w.membershipview.itemId = App.Util.getUrlParam('id');
28 _w.membershipview.newItem = false;
30 'updateMembership:' + _w.membershipview.itemId, 'PriceGuide', 'Member.Update', null,
31 {'id':_w.membershipview.itemId},
32 $.proxy( _w.membershipview._onMembershipViewDataReceived, this ),
38 onViewPublished : function( template, event, eventData )
40 if (null != _w.membershipview.itemData)
42 _w.membershipview._onDataAndTemplate();
46 setMembershipViewFormMeta : function( data )
52 _w.membershipview.formMeta = {
57 value : data.fromKm ? data.fromKm : ''
63 value : data.toKm ? data.toKm : ''
69 dataStoreId : 'years',
70 value : data.fromYear ? data.fromYear : ''
76 dataStoreId : 'years',
77 value : data.toYear ? data.toYear : ''
79 'emailNotification' : {
81 id : 'emailNotification',
82 title : 'Receive email notifications',
83 value : data.emailNotification
87 id : 'smsNotification',
88 title : 'Receive sms notifications',
89 value : data.smsNotification
95 value : data.allMakes ? data.allMakes : false,
96 onChange : function() {
97 $(this).prop('checked')
98 ? $('#makes-section').hide()
99 : $('#makes-section').show();
105 title : 'Apply changes to all clubs',
111 dataStoreId : 'makes',
114 data : data.makes ? data.makes : {}
119 _onDataAndTemplate : function ()
121 if (!_w.membershipview.itemData.allMakes)
123 $('#makes-section').show();
125 if ('Invited' == _w.membershipview.itemData.status)
127 $('#btnUpdate').hide();
128 $('#btnAccept').show();
129 $('#btnDecline').show();
130 $('#btnAccept').click(function() {
132 'acceptMembership:' + _w.membershipview.itemId, 'PriceGuide', 'Member.Accept', null,
133 {'id':_w.membershipview.itemId}, function() {
135 'acceptMembership:' + _w.membershipview.itemId, {}, {},
136 _w.membershipview._onMembershipUpdated, _w.taskExecError
138 }, _w.taskContractError
141 $('#btnDecline').click(function() {
143 'declineMembership:' + _w.membershipview.itemId, 'PriceGuide', 'Member.Decline', null,
144 {'id':_w.membershipview.itemId}, function() {
146 'declineMembership:' + _w.membershipview.itemId, {}, {},
147 _w.membershipview._onMembershipUpdated, _w.taskExecError
149 }, _w.taskContractError
153 if ('Active' != _w.membershipview.itemData.status)
155 $('#btnUpdate').hide();
157 if ('Active' == _w.membershipview.itemData.status)
159 $('#btnDeactivate').show();
160 $('#btnDeactivate').click(function() {
162 'deactivateMembership:' + _w.membershipview.itemId, 'PriceGuide', 'Member.Deactivate', null,
163 {'id':_w.membershipview.itemId}, function() {
165 'deactivateMembership:' + _w.membershipview.itemId, {}, {},
166 _w.membershipview._onMembershipUpdated, _w.taskExecError
168 }, _w.taskContractError
172 if ('Inactive' == _w.membershipview.itemData.status || 'Declined' == _w.membershipview.itemData.status)
174 $('#btnActivate').show();
175 $('#btnActivate').click(function() {
177 'activateMembership:' + _w.membershipview.itemId, 'PriceGuide', 'Member.Activate', null,
178 {'id':_w.membershipview.itemId}, function() {
180 'activateMembership:' + _w.membershipview.itemId, {}, {},
181 _w.membershipview._onMembershipUpdated, _w.taskExecError
183 }, _w.taskContractError
187 _w.membershipview._setupValidation();
190 _onMembershipViewDataReceived : function( response )
192 _w.membershipview.itemId = response.Data.id;
193 _w.membershipview.itemData = response.Data;
194 _w.membershipview.setMembershipViewFormMeta(response.Data);
195 _w.membershipview.ti.hydrate(_w.membershipview.formMeta);
196 if (_w.membershipview.ti.published)
198 _w.membershipview._onDataAndTemplate();
202 _setupValidation : function ()
204 $('#frmMembershipView').validate({
206 fromKm: {digits: true},
209 submitHandler: function( form ) {
210 $('#btnUpdate').prop('disabled', true);
211 var data = _w.membershipview._prepMembershipUpdateData();
213 'updateMembership:' + _w.membershipview.itemId, data, {},
214 _w.membershipview._onMembershipUpdated, _w.taskExecError
218 $('#btnUpdate').prop('disabled', false);
221 _prepMembershipUpdateData : function()
223 var data = _w.membershipview.ti.harvest();
224 if ('' == data.fromKm)
232 return {Member:data};
235 _onMembershipUpdated : function( response )
237 window.location.hash = '/settings';