initial commit
[namibia] / public / js / app / portal-workspace / memberview.js
1 ;(function(){
2
3         window._w.memberview = {
4
5                 clubId : null,
6                 itemId : null,
7                 itemData : null,
8                 formMeta : null,
9                 ti : null,
10                 newItem : false,
11                 ownAccount : true,
12
13                 onViewTemplateReady : function( template, event, eventData )
14                 {
15                         _w.memberview.ti = _t[template];
16
17                         _w.memberview.setMemberViewFormMeta();
18                         _w.memberview.ti.hydrate(_w.memberview.formMeta);
19
20                         // Retrieve initial view data.
21                         _w.memberview.itemId = App.Util.getUrlParam('id');
22                         _w.memberview.clubId = App.Util.getUrlParam('clubId');
23                         _w.memberview.newItem = false;
24                         App.API.getTask(
25                                 'updateClubMember:' + _w.memberview.itemId, 'PriceGuide', 'Member.UpdateStatus', null,
26                                 {'id':_w.memberview.itemId},
27                                 $.proxy( _w.memberview._onMemberViewDataReceived, this ),
28                                 _w.taskContractError
29                         );
30                 },
31
32                 onViewPublished : function( template, event, eventData )
33                 {
34                         if (null != _w.memberview.itemData)
35                         {
36                                 _w.memberview._onDataAndTemplate();
37                         }
38                 },
39
40                 setMemberViewFormMeta : function( data )
41                 {
42                         if (!data)
43                         {
44                                 data = {};
45                         }
46                         _w.memberview.formMeta = {
47                                 'companyName' : {
48                                         title : 'Dealer',
49                                         value : data.company ? data.company.name : ''
50                                 },
51                                 'firstName' : {
52                                         title : 'Name',
53                                         value : data.profile ? data.profile.firstName : ''
54                                 },
55                                 'familyName' : {
56                                         title : 'Surname',
57                                         value : data.profile ? data.profile.familyName : ''
58                                 },
59                                 'email' : {
60                                         title : 'Email',
61                                         value : data.profile ? data.profile.email : ''
62                                 }
63                         };
64                 },
65
66                 _onDataAndTemplate : function ()
67                 {
68                         if ('Active' == _w.memberview.itemData.status)
69                         {
70                                 $('#btnSuspend').show();
71                                 $('#btnSuspend').click(function() {
72                                         App.API.execTask(
73                                                         'updateClubMember:' + _w.memberview.itemId, {Member:{status:'Suspended'}}, {},
74                                                         _w.memberview._onMemberUpdated, _w.taskExecError
75                                                 );
76                                 });
77                         }
78                         if ('Suspended' == _w.memberview.itemData.status)
79                         {
80                                 $('#btnActivate').show();
81                                 $('#btnActivate').click(function() {
82                                         App.API.execTask(
83                                                         'updateClubMember:' + _w.memberview.itemId, {Member:{status:'Active'}}, {},
84                                                         _w.memberview._onMemberUpdated, _w.taskExecError
85                                                 );
86                                 });
87                                 $('#btnArchive').show();
88                                 $('#btnArchive').click(function() {
89                                         App.API.execTask(
90                                                         'updateClubMember:' + _w.memberview.itemId, {Member:{status:'Archived'}}, {},
91                                                         _w.memberview._onMemberUpdated, _w.taskExecError
92                                                 );
93                                 });
94                         }
95                         if ('Archived' == _w.memberview.itemData.status)
96                         {
97                                 $('#btnUnarchive').show();
98                                 $('#btnUnarchive').click(function() {
99                                         App.API.execTask(
100                                                         'updateClubMember:' + _w.memberview.itemId, {Member:{status:'Active'}}, {},
101                                                         _w.memberview._onMemberUpdated, _w.taskExecError
102                                                 );
103                                 });
104                         }
105                 },
106
107                 _onMemberViewDataReceived : function( response )
108                 {
109                         _w.memberview.itemId = response.Data.id;
110                         _w.memberview.itemData = response.Data;
111                         _w.memberview.setMemberViewFormMeta(response.Data);
112                         _w.memberview.ti.hydrate(_w.memberview.formMeta);
113                         if (_w.memberview.ti.published)
114                         {
115                                 _w.memberview._onDataAndTemplate();
116                         }
117                 },
118
119                 _onMemberUpdated : function( response )
120                 {
121                         window.location.hash = '/clubview?id=' + _w.memberview.clubId;
122                 }
123
124         };
125
126 })();