Improved Sceditor integration

This commit is contained in:
2019-01-10 16:28:59 +01:00
parent 6d61c0d621
commit dff9831228
6 changed files with 61 additions and 10 deletions

View File

@ -638,4 +638,44 @@ function removeJavascriptEventsFromHTML(html){
}
return html;
}
/**
* Get and return the DOM of a specified iframe
*
* @param {HTMLIFrameElement} iframe The iframe to process
* @return {HTMLDocument} DOM of the iframe
*/
function GetIframeDOM(iframe){
return iframe.contentWindow
? iframe.contentWindow.document
: iframe.contentDocument;
}
/**
* Initialize styles for a sceditor textarea
*
* @param {HTMLTextAreaElement} textarea Target textarea element that
* have sceditor initialized
*/
function ApplySceditorStyle(textarea){
//Get iframe DOM
var iframeDOM = GetIframeDOM(textarea.parentNode.getElementsByTagName("iframe")[0]);
//Apply stylesheets
document.querySelectorAll("link[rel='stylesheet']").forEach(function(entry){
//Skip the entry if it is disabled
if(entry.disabled)
return;
var elem = iframeDOM.createElement("link");
elem.rel = "stylesheet";
elem.href = entry.href;
iframeDOM.head.appendChild(elem);
});
//Apply new styles to body
iframeDOM.body.className += " sceditor-iframe-body";
}

View File

@ -118,10 +118,11 @@ ComunicWeb.components.posts.edit = {
height: "200px",
width: "100%",
icons: "material",
style: ComunicWeb.components.posts.form.sceditor_stylsheet,
toolbarExclude: "youtube,image,size,link,print,mail,emoticon,maximize"
});
ApplySceditorStyle(editorTextarea);
//Create function to close modal
var closeModal = function(){
$(modal).modal('hide');

View File

@ -6,11 +6,6 @@
ComunicWeb.components.posts.form = {
/**
* SCEDITOR common options
*/
sceditor_stylsheet: "data:text/css;raw, body {font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif;font-size: 14px;line-height: 1.42857143;}",
/**
* Display post creation form
*
@ -69,11 +64,12 @@ ComunicWeb.components.posts.form = {
'bulletlist,orderedlist,table,code,quote,source',
emoticonsEnabled: false,
icons: "material",
//Hack : style a little iframe
style: this.sceditor_stylsheet,
toolbarContainer: inputMessageToolbarTarget
});
//Apply all stylesheets to the editor iframe
ApplySceditorStyle(inputMessageTextarea);
//Enable emojies picker
ComunicWeb.components.emoji.picker.addDetachedPicker(newPostMessageContener, function(emojie){