1 gNewReplyHost = null ; |
1 gNewReplyHost = null ; |
2 gNewReply = null |
2 gNewReply = null |
3 |
3 |
4 instanciateNewReplyForm = function(iCommentToAppendTo) { |
4 instanciateNewReplyForm = function(iCommentToAppendTo) { |
5 |
5 |
6 if (gNewReply == null) { |
6 if (gNewReply == null) { |
7 gNewReply = { |
7 gNewReply = { |
8 'val': { |
8 'val': { |
9 'name':gPrefs.get('user','name'), |
9 'name':gPrefs.get('user','name'), |
10 'email':gPrefs.get('user','email'), |
10 'email':gPrefs.get('user','email'), |
11 'title':'', |
11 'title':'', |
12 'content':'', |
12 'content':'', |
13 'tags':''}, |
13 'tags':''}, |
14 'ids': { |
14 'ids': { |
15 'name':gPrefs.get('user','name'), |
15 'name':gPrefs.get('user','name'), |
16 'email':gPrefs.get('user','email'), |
16 'email':gPrefs.get('user','email'), |
17 'title':'', |
17 'title':'', |
18 'content':'', |
18 'content':'', |
19 'tags':'', |
19 'tags':'', |
20 'formId':CY.guid(), |
20 'formId':CY.guid(), |
21 'nameInputId':CY.guid(), |
21 'nameInputId':CY.guid(), |
22 'emailInputId':CY.guid(), |
22 'emailInputId':CY.guid(), |
23 'titleInputId':CY.guid(), |
23 'titleInputId':CY.guid(), |
24 'contentInputId':CY.guid(), |
24 'contentInputId':CY.guid(), |
25 'keyInputId':CY.guid(), |
25 'keyInputId':CY.guid(), |
26 'formatInputId':CY.guid(), |
26 'formatInputId':CY.guid(), |
27 'tagsInputId':CY.guid(), |
27 'tagsInputId':CY.guid(), |
28 'parentCommentId':CY.guid(), |
28 'parentCommentId':CY.guid(), |
29 'addBtnId':CY.guid(), |
29 'addBtnId':CY.guid(), |
30 'cancelBtnId':CY.guid()}, |
30 'cancelBtnId':CY.guid()}, |
31 'handlers':{} |
31 'handlers':{} |
32 } ; |
32 } ; |
33 } |
33 } |
34 |
34 |
35 gNewReplyHost = iCommentToAppendTo ; |
35 gNewReplyHost = iCommentToAppendTo ; |
36 |
36 |
37 var headerHtml = '<hr/><center><div class="c-header-title">' + gettext('New reply') + '</div></center>' ; |
37 var headerHtml = '<hr/><center><div class="c-header-title">' + gettext('New reply') + '</div></center>' ; |
38 var html = gFormHtml['formStart'].replace('###', gNewReply['ids']['formId']) ; |
38 var html = gFormHtml['formStart'].replace('###', gNewReply['ids']['formId']) ; |
39 if (!sv_loggedIn) { |
39 if (!sv_loggedIn) { |
40 html = html + gFormHtml['nameInput'].replace('###', gNewReply['ids']['nameInputId']) + gFormHtml['emailInput'].replace('###', gNewReply['ids']['emailInputId']) ; |
40 html = html + gFormHtml['nameInput'].replace('###', gNewReply['ids']['nameInputId']) + gFormHtml['emailInput'].replace('###', gNewReply['ids']['emailInputId']) ; |
41 } |
41 } |
42 html = html + gFormHtml['titleInput'].replace('###', gNewReply['ids']['titleInputId']) + gFormHtml['contentInput'].replace('###', gNewReply['ids']['contentInputId']) + gFormHtml['tagsInput'].replace('###', gNewReply['ids']['tagsInputId']); |
42 html = html + gFormHtml['titleInput'].replace('###', gNewReply['ids']['titleInputId']) + gFormHtml['contentInput'].replace('###', gNewReply['ids']['contentInputId']) + gFormHtml['tagsInput'].replace('###', gNewReply['ids']['tagsInputId']); |
43 html = html + gFormHtml['hidden'].replace('###', gNewReply['ids']['keyInputId']).replace('???', 'comment_key') ; |
43 html = html + gFormHtml['hidden'].replace('###', gNewReply['ids']['keyInputId']).replace('???', 'comment_key') ; |
44 html = html + gFormHtml['hidden'].replace('###', gNewReply['ids']['formatInputId']).replace('???', 'format') ; |
44 html = html + gFormHtml['hidden'].replace('###', gNewReply['ids']['formatInputId']).replace('???', 'format') ; |
45 html = html + gFormHtml['hidden'].replace('###', gNewReply['ids']['parentCommentId']).replace('???', 'reply_to_id') ; |
45 html = html + gFormHtml['hidden'].replace('###', gNewReply['ids']['parentCommentId']).replace('???', 'reply_to_id') ; |
46 var btnsHtml = gFormHtml['btns'].replace('###', gNewReply['ids']['addBtnId']).replace('???', gNewReply['ids']['cancelBtnId']) ; |
46 var btnsHtml = gFormHtml['btns'].replace('###', gNewReply['ids']['addBtnId']).replace('???', gNewReply['ids']['cancelBtnId']) ; |
47 |
47 |
48 gNewReplyHost['overlay'].setStdModContent(CY.WidgetStdMod.FOOTER, headerHtml + html + btnsHtml) ; |
48 gNewReplyHost['overlay'].setStdModContent(CY.WidgetStdMod.FOOTER, headerHtml + html + btnsHtml) ; |
49 var replyNode = gNewReplyHost['overlay'].getStdModNode(CY.WidgetStdMod.FOOTER) ; |
49 var replyNode = gNewReplyHost['overlay'].getStdModNode(CY.WidgetStdMod.FOOTER) ; |
50 |
50 |
51 var comment = gDb.getComment(iCommentToAppendTo.commentId) ; |
51 var comment = gDb.getComment(iCommentToAppendTo.commentId) ; |
52 var REPLYPREF = "Re: " ; |
52 var REPLYPREF = "Re: " ; |
53 var newReplyTitle = (gNewReply['val']['title'] == "" || gNewReply['val']['title'].substring(0, REPLYPREF.length) == REPLYPREF) ? REPLYPREF + comment['title'] : gNewReply['val']['title'] ; |
53 var newReplyTitle = (gNewReply['val']['title'] == "" || gNewReply['val']['title'].substring(0, REPLYPREF.length) == REPLYPREF) ? REPLYPREF + comment['title'] : gNewReply['val']['title'] ; |
54 |
54 |
55 if (!sv_loggedIn) { |
55 if (!sv_loggedIn) { |
56 replyNode.query('.n_name').set('value', gNewReply['val']['name']) ; |
56 replyNode.query('.n_name').set('value', gNewReply['val']['name']) ; |
57 replyNode.query('.n_email').set('value', gNewReply['val']['email']) ; |
57 replyNode.query('.n_email').set('value', gNewReply['val']['email']) ; |
58 } |
58 } |
59 replyNode.query('.n_title').set('value', newReplyTitle) ; |
59 replyNode.query('.n_title').set('value', newReplyTitle) ; |
60 replyNode.query('.n_content').set('value', gNewReply['val']['content']) ; |
60 replyNode.query('.n_content').set('value', gNewReply['val']['content']) ; |
61 replyNode.query('.n_tags').set('value', gNewReply['val']['tags']) ; |
61 replyNode.query('.n_tags').set('value', gNewReply['val']['tags']) ; |
62 |
62 |
63 replyNode.query('#'+gNewReply['ids']['parentCommentId']).set('value', iCommentToAppendTo['commentId']) ; |
63 replyNode.query('#'+gNewReply['ids']['parentCommentId']).set('value', iCommentToAppendTo['commentId']) ; |
64 replyNode.query('#'+gNewReply['ids']['formatInputId']).set('value', gConf['defaultCommentFormat']) ; |
64 replyNode.query('#'+gNewReply['ids']['formatInputId']).set('value', gConf['defaultCommentFormat']) ; |
65 |
65 |
66 gNewReplyHost['overlay'].get('contentBox').query(".c-reply").addClass('displaynone') ; |
66 gNewReplyHost['overlay'].get('contentBox').query(".c-reply").addClass('displaynone') ; |
67 |
67 |
68 gNewReply['handlers']['addBtnId'] = CY.on("click", onAddNewReplyClick, "#"+gNewReply['ids']['addBtnId']); |
68 gNewReply['handlers']['addBtnId'] = CY.on("click", onAddNewReplyClick, "#"+gNewReply['ids']['addBtnId']); |
69 gNewReply['handlers']['cancelBtnId'] = CY.on("click", onCancelNewReplyClick, "#"+gNewReply['ids']['cancelBtnId']); |
69 gNewReply['handlers']['cancelBtnId'] = CY.on("click", onCancelNewReplyClick, "#"+gNewReply['ids']['cancelBtnId']); |
70 |
70 |
71 var width = gLayout.getTopICommentsWidth() ; |
71 var width = gLayout.getTopICommentsWidth() ; |
72 changeFormFieldsWidth(gNewReply['ids']['formId'], width) ; |
72 changeFormFieldsWidth(gNewReply['ids']['formId'], width) ; |
73 CY.get("#"+gNewReply['ids']['contentInputId']).focus(); |
73 CY.get("#"+gNewReply['ids']['contentInputId']).focus(); |
74 } |
74 } |
75 cleanNewReplyForm = function() { |
75 cleanNewReplyForm = function() { |
76 if (gNewReplyHost != null) { |
76 if (gNewReplyHost != null) { |
77 var replyNode = gNewReplyHost['overlay'].getStdModNode(CY.WidgetStdMod.FOOTER) ; |
77 var replyNode = gNewReplyHost['overlay'].getStdModNode(CY.WidgetStdMod.FOOTER) ; |
78 replyNode.queryAll('.comment_input').set('value','') ; |
78 replyNode.queryAll('.comment_input').set('value','') ; |
79 } |
79 } |
80 } |
80 } |
81 cancelNewReplyForm = function() { |
81 cancelNewReplyForm = function() { |
82 if (gNewReplyHost != null) { |
82 if (gNewReplyHost != null) { |
83 |
83 |
84 // DETACH EVENT HANDLERS |
84 // DETACH EVENT HANDLERS |
85 for (var id in gNewReply['handlers']) { |
85 for (var id in gNewReply['handlers']) { |
86 if (gNewReply['handlers'][id] != null) { |
86 if (gNewReply['handlers'][id] != null) { |
87 gNewReply['handlers'][id].detach() ; |
87 gNewReply['handlers'][id].detach() ; |
88 gNewReply['handlers'][id] = null ; |
88 gNewReply['handlers'][id] = null ; |
89 } |
89 } |
90 } |
90 } |
91 |
91 |
92 gNewReplyHost['overlay'].get('contentBox').query(".c-reply").removeClass('displaynone') ; |
92 gNewReplyHost['overlay'].get('contentBox').query(".c-reply").removeClass('displaynone') ; |
93 |
93 |
94 var footer = gNewReplyHost['overlay'].getStdModNode(CY.WidgetStdMod.FOOTER) ; |
94 var footer = gNewReplyHost['overlay'].getStdModNode(CY.WidgetStdMod.FOOTER) ; |
95 if (!sv_loggedIn) { |
95 if (!sv_loggedIn) { |
96 gNewReply['val']['name'] = footer.query('.n_name').get('value') ; |
96 gNewReply['val']['name'] = footer.query('.n_name').get('value') ; |
97 gNewReply['val']['email'] = footer.query('.n_email').get('value') ; |
97 gNewReply['val']['email'] = footer.query('.n_email').get('value') ; |
98 } |
98 } |
99 gNewReply['val']['title'] = footer.query('.n_title').get('value') ; |
99 gNewReply['val']['title'] = footer.query('.n_title').get('value') ; |
100 gNewReply['val']['content'] = footer.query('.n_content').get('value') ; |
100 gNewReply['val']['content'] = footer.query('.n_content').get('value') ; |
101 gNewReply['val']['tags'] = footer.query('.n_tags').get('value') ; |
101 gNewReply['val']['tags'] = footer.query('.n_tags').get('value') ; |
102 |
102 |
103 footer.set('innerHTML', '') ; |
103 footer.set('innerHTML', '') ; |
104 |
104 |
105 gNewReplyHost = null ; |
105 gNewReplyHost = null ; |
106 } |
106 } |
107 } |
107 } |
108 // event triggered |
108 // event triggered |
109 onAddNewReplyClick = function() { |
109 onAddNewReplyClick = function() { |
110 if (!sv_loggedIn) { |
110 if (!sv_loggedIn) { |
111 var name = CY.get("#"+gNewReply['ids']['nameInputId']).get('value') ; |
111 var name = CY.get("#"+gNewReply['ids']['nameInputId']).get('value') ; |
112 gPrefs.persist("user", "name", name) ; |
112 gPrefs.persist("user", "name", name) ; |
113 |
113 |
114 var email = CY.get("#"+gNewReply['ids']['emailInputId']).get('value') ; |
114 var email = CY.get("#"+gNewReply['ids']['emailInputId']).get('value') ; |
115 gPrefs.persist("user", "email", email) ; |
115 gPrefs.persist("user", "email", email) ; |
116 } |
116 } |
117 |
117 |
118 gSync.saveComment(gNewReply['ids']['formId']) ; |
118 gSync.saveComment(gNewReply['ids']['formId']) ; |
119 } |
119 } |
120 onCancelNewReplyClick = function() { |
120 onCancelNewReplyClick = function() { |
121 gSync.cancelReply() ; |
121 gSync.cancelReply() ; |
122 } |
122 } |