src/cm/media/js/client/c_edit_form.js
author reno
Mon, 23 Nov 2009 17:06:53 +0100
changeset 4 8e6d7ff63451
parent 0 40c8f766c9b8
child 113 cf99f4e14534
permissions -rw-r--r--
client min
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
gEditICommentHost = null ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
gEdit = 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
dbgc = null ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
showEditForm = function(iCommentHost) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
	if (gEdit == null) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
		gEdit = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
				'ids':{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
					'formId':CY.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
					'formTitleId':CY.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
					'nameInputId':CY.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
					'emailInputId':CY.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
					'titleInputId':CY.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
					'contentInputId':CY.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
					'tagsInputId':CY.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
					'formatInputId':CY.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
					'startWrapperInputId':CY.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
					'endWrapperInputId':CY.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
					'startOffsetInputId':CY.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
					'endOffsetInputId':CY.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
					'changeScopeInputId':CY.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
					'changeScopeInputWrapper':CY.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
					'selectionPlaceId':CY.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
					'keyId':CY.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
					'editCommentId':CY.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
					'currentSelId':CY.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
					'currentSelIdI':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
					},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
				'handlers':{}
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
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
	gEditICommentHost = iCommentHost ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
	gEditICommentHost.hideContent() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
// FORM HTML 	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
	var overlayHtml = getHtml(gEdit['ids']) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
	var editHeader = '<div class="icomment-edit-header">' + overlayHtml['headerContent'] + '</div>' ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
	var editBody = '<div class="icomment-edit-body">' + overlayHtml['bodyContent'] + '</div>' ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
//	cf. http://yuilibrary.com/projects/yui3/ticket/2528319 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
	gEditICommentHost['overlay'].setStdModContent(CY.WidgetStdMod.HEADER,CY.Node.create(editHeader),CY.WidgetStdMod.AFTER); 	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
	gEditICommentHost['overlay'].setStdModContent(CY.WidgetStdMod.BODY,CY.Node.create(editBody),CY.WidgetStdMod.AFTER);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
// FORM TITLE 	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
	CY.get("#"+gEdit['ids']['formTitleId']).set('innerHTML', gettext("Edit comment")) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
// FETCH FORM VALUES FROM COMMENT
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
	var comment = gDb.getComment(gEditICommentHost.commentId) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
	CY.get("#"+gEdit['ids']['editCommentId']).set('value', comment.id) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
	CY.get("#"+gEdit['ids']['keyId']).set('value', comment.key) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
	CY.get("#"+gEdit['ids']['changeScopeInputId']+" input").set('checked', false) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
	if (comment.reply_to_id != null) 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
		CY.get("#"+gEdit['ids']['changeScopeInputId']).addClass('displaynone')
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
	changeScopeFormClick() ; // to adapt
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
	CY.get("#"+gEdit['ids']['nameInputId']).set('value', comment.name) ; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
	CY.get("#"+gEdit['ids']['emailInputId']).set('value', comment.email) ; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
	if (comment.logged_author) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
		CY.get("#"+gEdit['ids']['nameInputId']).setAttribute("disabled", true); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
		CY.get("#"+gEdit['ids']['emailInputId']).setAttribute("disabled", true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
	}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
// FORM VALUES
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
	CY.get("#"+gEdit['ids']['titleInputId']).set('value', comment['title']) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
	CY.get("#"+gEdit['ids']['contentInputId']).set('value', comment['content']) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
	CY.get("#"+gEdit['ids']['tagsInputId']).set('value', comment['tags']) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
	CY.get("#"+gEdit['ids']['formatInputId']).set('value',gConf['defaultCommentFormat']) ;// for now ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
// WIDTH 	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
	var width = gLayout.getTopICommentsWidth() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
	changeFormFieldsWidth(gEdit['ids']['formId'], width) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
// ATTACH EVENT HANDLERS
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
	gEdit['handlers']['addBtnId'] = CY.on("click", onEditSaveClick, "#"+gEdit['ids']['addBtnId']);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
	gEdit['handlers']['cancelBtnId'] = CY.on("click", onEditCancelClick, "#"+gEdit['ids']['cancelBtnId']);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
	gEdit['handlers']['changeScope'] = CY.on("click", onChangeScopeClick, "#"+gEdit['ids']['changeScopeInputId']);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
onEditSaveClick = function(iCommentHost) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
	if (readyForAction())
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
		gSync.editComment() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
onEditCancelClick = function(iCommentHost) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
	if (readyForAction())
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
		gSync.cancelEdit() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
onChangeScopeClick = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
	if (readyForAction())
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
		gSync.changeScopeFormClick() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
changeScopeFormClick = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
	var node = CY.get("#"+gEdit['ids']['currentSelId']) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
	if (CY.get("#"+gEdit['ids']['changeScopeInputId']+" input").get('checked'))
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
		node.removeClass('displaynone') ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
	else
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
		node.addClass('displaynone') ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
cancelEditForm = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
	if (gEditICommentHost != null) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
// DETACH EVENT HANDLERS
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
		for (var id in gEdit['handlers']) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
			if (gEdit['handlers'][id] != null) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
				gEdit['handlers'][id].detach() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
				gEdit['handlers'][id] = null ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
			}
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
// REMOVE EDIT FORM NODES FROM ICOMMENT OVERLAY
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
		var node = gEditICommentHost['overlay'].get('contentBox').query(".icomment-edit-body") ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
		node.get('parentNode').removeChild(node) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
		node = gEditICommentHost['overlay'].get('contentBox').query(".icomment-edit-header") ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
		node.get('parentNode').removeChild(node) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
// SHOW ICOMMENT OVERLAY
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
		gEditICommentHost.showContent() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
		gEditICommentHost = null ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
	}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
}