Reverse to YUI 3.0.0 since with YUI.3.10.3, comment content including words 'paragraph' or 'section' do not show up on Firefox, this is weird and has to be investigated.
gEditICommentHost = null ;
gEdit = null ;
dbgc = null ;
showEditForm = function(iCommentHost) {
if (gEdit == null) {
gEdit = {
'ids':{
'formId':CY.guid(),
'formTitleId':CY.guid(),
'nameInputId':CY.guid(),
'emailInputId':CY.guid(),
'titleInputId':CY.guid(),
'contentInputId':CY.guid(),
'tagsInputId':CY.guid(),
'categoryInputId':CY.guid(),
'formatInputId':CY.guid(),
'startWrapperInputId':CY.guid(),
'endWrapperInputId':CY.guid(),
'startOffsetInputId':CY.guid(),
'endOffsetInputId':CY.guid(),
'changeScopeInputId':CY.guid(),
'changeScopeInputWrapper':CY.guid(),
'selectionPlaceId':CY.guid(),
'keyId':CY.guid(),
'editCommentId':CY.guid(),
'currentSelId':CY.guid(),
'currentSelIdI':CY.guid(),
'addBtnId':CY.guid(),
'cancelBtnId':CY.guid()
},
'handlers':{}
} ;
}
gEditICommentHost = iCommentHost ;
gEditICommentHost.hideContent() ;
// FORM HTML
var overlayHtml = getHtml(gEdit['ids']) ;
var editHeader = '<div class="icomment-edit-header">' + overlayHtml['headerContent'] + '</div>' ;
var editBody = '<div class="icomment-edit-body">' + overlayHtml['bodyContent'] + '</div>' ;
// cf. http://yuilibrary.com/projects/yui3/ticket/2528319
gEditICommentHost['overlay'].setStdModContent(CY.WidgetStdMod.HEADER,CY.Node.create(editHeader),CY.WidgetStdMod.AFTER);
gEditICommentHost['overlay'].setStdModContent(CY.WidgetStdMod.BODY,CY.Node.create(editBody),CY.WidgetStdMod.AFTER);
// FORM TITLE
CY.get("#"+gEdit['ids']['formTitleId']).set('innerHTML', gettext("Edit comment")) ;
// FETCH FORM VALUES FROM COMMENT
var comment = gDb.getComment(gEditICommentHost.commentId) ;
CY.get("#"+gEdit['ids']['editCommentId']).set('value', comment.id) ;
CY.get("#"+gEdit['ids']['keyId']).set('value', comment.key) ;
CY.get("#"+gEdit['ids']['changeScopeInputId']+" input").set('checked', false) ;
// Edit scope and category just for the first comment in a thread
// => hides these inputs for a reply.
if (comment.reply_to_id != null) {
CY.get("#"+gEdit['ids']['changeScopeInputId']).addClass('displaynone')
CY.get("#"+gEdit['ids']['categoryInputId']).addClass('displaynone')
CY.get("#"+gEdit['ids']['categoryInputId']).ancestor().addClass('displaynone')
}
changeScopeFormClick() ; // to adapt
CY.get("#"+gEdit['ids']['nameInputId']).set('value', comment.name) ;
CY.get("#"+gEdit['ids']['emailInputId']).set('value', comment.email) ;
if (comment.logged_author) {
CY.get("#"+gEdit['ids']['nameInputId']).setAttribute("disabled", true);
CY.get("#"+gEdit['ids']['emailInputId']).setAttribute("disabled", true);
}
// FORM VALUES
CY.get("#"+gEdit['ids']['titleInputId']).set('value', comment['title']) ;
CY.get("#"+gEdit['ids']['contentInputId']).set('value', comment['content']) ;
CY.get("#"+gEdit['ids']['tagsInputId']).set('value', comment['tags']) ;
if ( CY.get("#"+gEdit['ids']['categoryInputId']))
CY.get("#"+gEdit['ids']['categoryInputId']).set('value', comment['category']) ;
CY.get("#"+gEdit['ids']['formatInputId']).set('value',gConf['defaultCommentFormat']) ;// for now ...
// WIDTH
var width = gLayout.getTopICommentsWidth() ;
changeFormFieldsWidth(gEdit['ids']['formId'], width) ;
// ATTACH EVENT HANDLERS
gEdit['handlers']['addBtnId'] = CY.on("click", onEditSaveClick, "#"+gEdit['ids']['addBtnId']);
gEdit['handlers']['cancelBtnId'] = CY.on("click", onEditCancelClick, "#"+gEdit['ids']['cancelBtnId']);
gEdit['handlers']['changeScope'] = CY.on("click", onChangeScopeClick, "#"+gEdit['ids']['changeScopeInputId']);
}
onEditSaveClick = function(iCommentHost) {
if (readyForAction())
gSync.editComment() ;
}
onEditCancelClick = function(iCommentHost) {
if (readyForAction())
gSync.cancelEdit() ;
}
onChangeScopeClick = function() {
if (readyForAction())
gSync.changeScopeFormClick() ;
else {// (onChangeScopeClick triggers an animation : checking for readyForAction does not prevent the checkbox change ...)
var chckCtrl = CY.get("#"+gEdit['ids']['changeScopeInputId']+" input") ;
var chck = chckCtrl.get('checked') ;
chckCtrl.set('checked', !chck) ; // set it back
}
}
changeScopeFormClick = function() {
var node = CY.get("#"+gEdit['ids']['currentSelId']) ;
if (CY.get("#"+gEdit['ids']['changeScopeInputId']+" input").get('checked'))
node.removeClass('displaynone') ;
else
node.addClass('displaynone') ;
}
cancelEditForm = function() {
if (gEditICommentHost != null) {
// DETACH EVENT HANDLERS
for (var id in gEdit['handlers']) {
if (gEdit['handlers'][id] != null) {
gEdit['handlers'][id].detach() ;
gEdit['handlers'][id] = null ;
}
}
// REMOVE EDIT FORM NODES FROM ICOMMENT OVERLAY
var node = gEditICommentHost['overlay'].get('contentBox').query(".icomment-edit-body") ;
node.get('parentNode').removeChild(node) ;
node = gEditICommentHost['overlay'].get('contentBox').query(".icomment-edit-header") ;
node.get('parentNode').removeChild(node) ;
// SHOW ICOMMENT OVERLAY
gEditICommentHost.showContent() ;
gEditICommentHost = null ;
}
}