src/cm/media/js/client/c_reply_form.js
changeset 341 053551f213fb
parent 338 3174f59df260
child 525 89ef5ed3c48b
equal deleted inserted replaced
340:9e2b9e568e42 341:053551f213fb
     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 }