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