diff -r 000000000000 -r 40c8f766c9b8 src/cm/media/js/client/c_reply_form.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/media/js/client/c_reply_form.js Mon Nov 23 15:14:29 2009 +0100 @@ -0,0 +1,121 @@ +gNewReplyHost = null ; +gNewReply = null + +instanciateNewReplyForm = function(iCommentToAppendTo) { + + if (gNewReply == null) { + gNewReply = { + 'val': { + 'name':gPrefs.get('user','name'), + 'email':gPrefs.get('user','email'), + 'title':'', + 'content':'', + 'tags':''}, + 'ids': { + 'name':gPrefs.get('user','name'), + 'email':gPrefs.get('user','email'), + 'title':'', + 'content':'', + 'tags':'', + 'formId':CY.guid(), + 'nameInputId':CY.guid(), + 'emailInputId':CY.guid(), + 'titleInputId':CY.guid(), + 'contentInputId':CY.guid(), + 'keyInputId':CY.guid(), + 'formatInputId':CY.guid(), + 'tagsInputId':CY.guid(), + 'parentCommentId':CY.guid(), + 'addBtnId':CY.guid(), + 'cancelBtnId':CY.guid()}, + 'handlers':{} + } ; + } + + gNewReplyHost = iCommentToAppendTo ; + + var headerHtml = '
' + gettext('New reply') + '
' ; + var html = gFormHtml['formStart'].replace('###', gNewReply['ids']['formId']) ; + if (!sv_loggedIn) { + html = html + gFormHtml['nameInput'].replace('###', gNewReply['ids']['nameInputId']) + gFormHtml['emailInput'].replace('###', gNewReply['ids']['emailInputId']) ; + } + html = html + gFormHtml['titleInput'].replace('###', gNewReply['ids']['titleInputId']) + gFormHtml['contentInput'].replace('###', gNewReply['ids']['contentInputId']) + gFormHtml['tagsInput'].replace('###', gNewReply['ids']['tagsInputId']); + html = html + gFormHtml['hidden'].replace('###', gNewReply['ids']['keyInputId']).replace('???', 'comment_key') ; + html = html + gFormHtml['hidden'].replace('###', gNewReply['ids']['formatInputId']).replace('???', 'format') ; + html = html + gFormHtml['hidden'].replace('###', gNewReply['ids']['parentCommentId']).replace('???', 'reply_to_id') ; + var btnsHtml = gFormHtml['btns'].replace('###', gNewReply['ids']['addBtnId']).replace('???', gNewReply['ids']['cancelBtnId']) ; + + gNewReplyHost['overlay'].setStdModContent(CY.WidgetStdMod.FOOTER, headerHtml + html + btnsHtml) ; + var replyNode = gNewReplyHost['overlay'].getStdModNode(CY.WidgetStdMod.FOOTER) ; + + var comment = gDb.getComment(iCommentToAppendTo.commentId) ; + var REPLYPREF = "Re: " ; + var newReplyTitle = (gNewReply['val']['title'] == "" || gNewReply['val']['title'].substring(0, REPLYPREF.length) == REPLYPREF) ? REPLYPREF + comment['title'] : gNewReply['val']['title'] ; + + if (!sv_loggedIn) { + replyNode.query('.n_name').set('value', gNewReply['val']['name']) ; + replyNode.query('.n_email').set('value', gNewReply['val']['email']) ; + } + replyNode.query('.n_title').set('value', newReplyTitle) ; + replyNode.query('.n_content').set('value', gNewReply['val']['content']) ; + replyNode.query('.n_tags').set('value', gNewReply['val']['tags']) ; + + replyNode.query('#'+gNewReply['ids']['parentCommentId']).set('value', iCommentToAppendTo['commentId']) ; + replyNode.query('#'+gNewReply['ids']['formatInputId']).set('value', gConf['defaultCommentFormat']) ; + + gNewReplyHost['overlay'].get('contentBox').query(".c-reply").addClass('displaynone') ; + + gNewReply['handlers']['addBtnId'] = CY.on("click", onAddNewReplyClick, "#"+gNewReply['ids']['addBtnId']); + gNewReply['handlers']['cancelBtnId'] = CY.on("click", onCancelNewReplyClick, "#"+gNewReply['ids']['cancelBtnId']); + + var width = gLayout.getTopICommentsWidth() ; + changeFormFieldsWidth(gNewReply['ids']['formId'], width) ; +} +cleanNewReplyForm = function() { + if (gNewReplyHost != null) { + var replyNode = gNewReplyHost['overlay'].getStdModNode(CY.WidgetStdMod.FOOTER) ; + replyNode.queryAll('.comment_input').set('value','') ; + } +} +cancelNewReplyForm = function() { + if (gNewReplyHost != null) { + + // DETACH EVENT HANDLERS + for (var id in gNewReply['handlers']) { + if (gNewReply['handlers'][id] != null) { + gNewReply['handlers'][id].detach() ; + gNewReply['handlers'][id] = null ; + } + } + + gNewReplyHost['overlay'].get('contentBox').query(".c-reply").removeClass('displaynone') ; + + var footer = gNewReplyHost['overlay'].getStdModNode(CY.WidgetStdMod.FOOTER) ; + if (!sv_loggedIn) { + gNewReply['val']['name'] = footer.query('.n_name').get('value') ; + gNewReply['val']['email'] = footer.query('.n_email').get('value') ; + } + gNewReply['val']['title'] = footer.query('.n_title').get('value') ; + gNewReply['val']['content'] = footer.query('.n_content').get('value') ; + gNewReply['val']['tags'] = footer.query('.n_tags').get('value') ; + + footer.set('innerHTML', '') ; + + gNewReplyHost = null ; + } +} +// event triggered +onAddNewReplyClick = function() { + if (!sv_loggedIn) { + var name = CY.get("#"+gNewReply['ids']['nameInputId']).get('value') ; + gPrefs.persist("user", "name", name) ; + + var email = CY.get("#"+gNewReply['ids']['emailInputId']).get('value') ; + gPrefs.persist("user", "email", email) ; + } + + gSync.saveComment(gNewReply['ids']['formId']) ; +} +onCancelNewReplyClick = function() { + gSync.cancelReply() ; +}