text changes to registration mail content
[namibia] / public / js / app / portal-workspace / questionview.js
1 ;(function(){
2
3         window._w.questionview = {
4
5                 auctionId : null,
6                 itemId    : null,
7                 itemData  : null,
8                 formMeta  : null,
9                 ti        : null,
10
11                 onViewTemplateReady : function( template, event, eventData )
12                 {
13                         _w.questionview.ti = _t[template];
14                         _w.questionview.itemData = null;
15
16                         _w.questionview.setQuestionViewFormMeta();
17                         _w.questionview.ti.hydrate(_w.questionview.formMeta);
18
19                         // Retrieve initial view data.
20                         _w.questionview.itemId    = App.Util.getUrlParam('id');
21                         _w.questionview.auctionId = App.Util.getUrlParam('auctionId');
22                         App.API.getTask(
23                                 'viewQuestion:' + _w.questionview.itemId, 'Auction', 'Question.View', _w.questionview.auctionId,
24                                 {'id':_w.questionview.itemId}, _w.questionview._onQuestionViewDataReceived, _w.taskContractError
25                         );
26                         App.API.getTask(
27                                 'createQuestion:' + _w.questionview.itemId, 'Auction', 'Question.Create', _w.questionview.auctionId,
28                                 {}, function() {}, _w.taskContractError
29                         );
30                 },
31
32                 onViewPublished : function( template, event, eventData )
33                 {
34                         if (null != _w.questionview.itemData)
35                         {
36                                 _w.questionview._onDataAndTemplate();
37                         }
38                 },
39
40                 setQuestionViewFormMeta : function( data )
41                 {
42                         if (!data)
43                         {
44                                 data = {};
45                         }
46                         _w.questionview.formMeta = {
47                                 'vehicle' : {
48                                         title : 'Vehicle',
49                                         value : data.auction
50                                                 ? data.auction.stock.type.model.make.name
51                                                         + ', ' + data.auction.stock.type.model.name
52                                                         + ', ' + data.auction.stock.type.name
53                                                         + ' (' + data.auction.stock.vehicleYear.name + ')'
54                                                 : ''
55                                 },
56                                 'created' : {
57                                         title : 'Created',
58                                         value : data.created ? ((data.created).split(' '))[0] : ''
59                                 },
60                                 'company' : {
61                                         title : 'Company',
62                                         value : data.company ? data.company.name : ''
63                                 },
64                                 'user' : {
65                                         title : 'User',
66                                         value : data.profile ? data.profile.firstName + ' ' + data.profile.familyName : ''
67                                 },
68                                 'question' : {
69                                         title : 'Question',
70                                         value : data.question ? data.question : ''
71                                 },
72                                 'reply' : {
73                                         title : 'Reply',
74                                         value : data.reply ? data.reply.reply : ''
75                                 }
76                         };
77                 },
78
79                 _onDataAndTemplate : function() {
80                         _w.questionview._setupValidation();
81                 },
82
83                 _onQuestionViewDataReceived : function( response )
84                 {
85                         _w.questionview.itemId = response.Data.id;
86                         _w.questionview.itemData = response.Data;
87                         _w.questionview.setQuestionViewFormMeta(response.Data);
88                         _w.questionview.ti.hydrate(_w.questionview.formMeta);
89                         if (_w.questionview.ti.published)
90                         {
91                                 _w.questionview._onDataAndTemplate();
92                         }
93                 },
94
95                 _setupValidation : function ()
96                 {
97                         $('#frmQuestionView').validate({
98                                 submitHandler: function( form ) {
99                                         if ('' == $('#question').val())
100                                         {
101                                                 alert('Please specify a question.');
102                                                 return;
103                                         }
104                                         $('#btnUpdate').prop('disabled', true);
105                                         var data = _w.questionview._prepQuestionUpdateData();
106                                         App.API.execTask(
107                                                         'createQuestion:' + _w.questionview.itemId, data, {},
108                                                         _w.questionview._onQuestionUpdated, _w.taskExecError
109                                                 );
110                                 }
111                         });
112                         $('#btnUpdate').prop('disabled', false);
113                         if (!_w.questionview.itemData.question || !_w.questionview.itemData.question.id)
114                         {
115                                 $('#btnUpdate').show();
116                         }
117                 },
118
119                 _prepQuestionUpdateData : function()
120                 {
121                         var data = {
122                                         Question : {
123                                                 question : _w.questionview.itemId,
124                                                 question    : $('#question').val()
125                                         }
126                         };
127                         return data;
128                 },
129
130                 _onQuestionUpdated : function( response )
131                 {
132                         window.location.hash = '/settings';
133                 }
134
135         };
136
137 })();