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