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