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