Html editor improvements (new toolbar type)

This commit is contained in:
RainLoop Team 2014-02-12 04:08:31 +04:00
parent 96b37227b2
commit 8da34e8d5f
105 changed files with 1423 additions and 1545 deletions

View file

@ -248,7 +248,7 @@ module.exports = function (grunt) {
"dev/Common/Knockout.js",
"dev/Common/LinkBuilder.js",
"dev/Common/Plugins.js",
"dev/Common/HtmlEditorWrapper.js",
"dev/Common/NewHtmlEditorWrapper.js",
"dev/Common/Selector.js",
"dev/Storages/LocalStorages/CookieDriver.js",

View file

@ -87,7 +87,10 @@ Globals.oHtmlEditorDefaultConfig = {
'title': false,
'stylesSet': false,
'customConfig': '',
'contentsCss': '',
// 'height': '100%',
'toolbarGroups': [
{name: 'spec'},
{name: 'styles'},
{name: 'basicstyles', groups: ['basicstyles', 'cleanup']},
{name: 'colors'},
@ -96,17 +99,20 @@ Globals.oHtmlEditorDefaultConfig = {
{name: 'insert'}
// {name: 'document', groups: ['mode', 'document', 'doctools']}
],
'removeButtons': 'Format,Undo,Redo,Cut,Copy,Paste,Anchor,Strike,Subscript,Superscript,Image,Indent,Outdent',
'removeDialogTabs': 'link:advanced;link:target;image:advanced',
'extraPlugins': 'plain',
'allowedContent': false,
'autoParagraph': false,
// 'enterMode': window.CKEDITOR.ENTER_BR,
// 'shiftEnterMode': window.CKEDITOR.ENTER_P,
'enterMode': window.CKEDITOR.ENTER_DIV,
// 'enterMode': window.CKEDITOR.ENTER_DIV,
'enterMode': window.CKEDITOR.ENTER_BR,
'shiftEnterMode': window.CKEDITOR.ENTER_BR,
// 'floatSpaceDockedOffsetY': 1,
'font_defaultLabel': 'Arial',
'fontSize_defaultLabel': '12px',

View file

@ -1,450 +0,0 @@
/**
* @constructor
* @param {Object} oElement
* @param {Function=} fOnBlur
* @param {Function=} fOnReady
*/
function HtmlEditorWrapper(oElement, fOnBlur, fOnReady)
{
var self = this;
self.editor = null;
self.bHtml = true;
self.bPlainDirty = false;
self.iBlurTimer = 0;
self.fOnBlur = fOnBlur || null;
self.fOnReady = fOnReady || null;
self.$element = $(oElement);
self.LANG = {
'HTML': 'Rich formatting',
'PLAIN': 'Plain text',
'FULL': 'Fullscreen'
};
self.init();
}
HtmlEditorWrapper.prototype.addInputFormatStyle = function ()
{
if (this.$plain)
{
this.$plain.addClass('styled');
}
if (this.$html)
{
this.$html.addClass('styled');
}
};
HtmlEditorWrapper.prototype.setupLang = function (sHtml, sPlain, sFullscreen)
{
this.LANG = {
'HTML': sHtml || this.LANG.HTML,
'PLAIN': sPlain || this.LANG.PLAIN,
'FULL': sFullscreen || this.LANG.FULL
};
this.setModeButtonText();
};
HtmlEditorWrapper.prototype.blurTrigger = function ()
{
if (this.fOnBlur)
{
var self = this;
window.clearTimeout(self.iBlurTimer);
self.iBlurTimer = window.setTimeout(function () {
self.fOnBlur();
}, 200);
}
};
HtmlEditorWrapper.prototype.focusTrigger = function ()
{
if (this.fOnBlur)
{
window.clearTimeout(this.iBlurTimer);
}
};
HtmlEditorWrapper.prototype.hideEditorToolbar = function ()
{
if (this.editor)
{
$('.cke.cke_float').hide();
}
};
/**
* @param {string} sHtml
* @return {string}
*/
HtmlEditorWrapper.prototype.htmlToPlain = function (sHtml)
{
var
sText = '',
sQuoteChar = '> ',
convertBlockquote = function () {
if (arguments && 1 < arguments.length)
{
var sText = $.trim(arguments[1])
.replace(/__bq__start__(.|[\s\S\n\r]*)__bq__end__/gm, convertBlockquote)
;
sText = '\n' + sQuoteChar + $.trim(sText).replace(/\n/gm, '\n' + sQuoteChar) + '\n>\n';
return sText.replace(/\n([> ]+)/gm, function () {
return (arguments && 1 < arguments.length) ? '\n' + $.trim(arguments[1].replace(/[\s]/, '')) + ' ' : '';
});
}
return '';
},
convertDivs = function () {
if (arguments && 1 < arguments.length)
{
var sText = $.trim(arguments[1]);
if (0 < sText.length)
{
sText = sText.replace(/<div[^>]*>(.|[\s\S\r\n]*)<\/div>/gmi, convertDivs);
sText = '\n' + $.trim(sText) + '\n';
}
return sText;
}
return '';
},
fixAttibuteValue = function () {
if (arguments && 1 < arguments.length)
{
return '' + arguments[1] + arguments[2].replace(/</g, '&lt;').replace(/>/g, '&gt;');
}
return '';
},
convertLinks = function () {
if (arguments && 1 < arguments.length)
{
var
sName = $.trim(arguments[1])
// sHref = $.trim(arguments[0].replace(/<a [\s\S]*href[ ]?=[ ]?["']?([^"']+).+<\/a>/gmi, '$1'))
;
return sName;
// sName = (0 === trim(sName).length) ? '' : sName;
// sHref = ('mailto:' === sHref.substr(0, 7)) ? '' : sHref;
// sHref = ('http' === sHref.substr(0, 4)) ? sHref : '';
// sHref = (sName === sHref) ? '' : sHref;
// sHref = (0 < sHref.length) ? ' (' + sHref + ') ' : '';
// return (0 < sName.length) ? sName + sHref : sName;
}
return '';
}
;
sText = sHtml
.replace(/[\s]+/gm, ' ')
.replace(/((?:href|data)\s?=\s?)("[^"]+?"|'[^']+?')/gmi, fixAttibuteValue)
.replace(/<br\s?\/?>/gmi, '\n')
.replace(/<\/h\d>/gi, '\n')
.replace(/<\/p>/gi, '\n\n')
.replace(/<\/li>/gi, '\n')
.replace(/<\/td>/gi, '\n')
.replace(/<\/tr>/gi, '\n')
.replace(/<hr[^>]*>/gmi, '\n_______________________________\n\n')
.replace(/<img [^>]*>/gmi, '')
.replace(/<div[^>]*>(.|[\s\S\r\n]*)<\/div>/gmi, convertDivs)
.replace(/<blockquote[^>]*>/gmi, '\n__bq__start__\n')
.replace(/<\/blockquote>/gmi, '\n__bq__end__\n')
.replace(/<a [^>]*>(.|[\s\S\r\n]*)<\/a>/gmi, convertLinks)
.replace(/&nbsp;/gi, ' ')
.replace(/<[^>]*>/gm, '')
.replace(/&gt;/gi, '>')
.replace(/&lt;/gi, '<')
.replace(/&amp;/gi, '&')
.replace(/&\w{2,6};/gi, '')
;
return sText
.replace(/\n[ \t]+/gm, '\n')
.replace(/[\n]{3,}/gm, '\n\n')
.replace(/__bq__start__(.|[\s\S\r\n]*)__bq__end__/gm, convertBlockquote)
.replace(/__bq__start__/gm, '')
.replace(/__bq__end__/gm, '')
;
};
/**
* @param {string} sPlain
* @return {string}
*/
HtmlEditorWrapper.prototype.plainToHtml = function (sPlain)
{
return sPlain.toString()
.replace(/&/g, '&amp;').replace(/>/g, '&gt;').replace(/</g, '&lt;')
.replace(/\r/g, '').replace(/\n/g, '<br />');
};
HtmlEditorWrapper.prototype.initToolbar = function ()
{
var self = this;
self.$mode = $('<a tabindex="-1" href="jav' + 'ascript:v' + 'oid(0);"></a>')
.addClass('html-editor-wrapper-mode-button')
.on('click', function () {
self.modeToggle(true);
})
;
self.$toolbar
.append(self.$mode)
;
};
/**
* @return {boolean}
*/
HtmlEditorWrapper.prototype.isHtml = function ()
{
return this.bHtml;
};
/**
* @return {boolean}
*/
HtmlEditorWrapper.prototype.checkDirty = function ()
{
return this.bHtml && this.editor ? this.editor.checkDirty() : this.bPlainDirty;
};
HtmlEditorWrapper.prototype.resetDirty = function ()
{
if (this.editor)
{
this.editor.resetDirty();
}
this.bPlainDirty = false;
};
/**
* @return {string}
*/
HtmlEditorWrapper.prototype.getData = function ()
{
if (this.bHtml && this.editor)
{
return this.editor.getData();
}
else
{
return this.$plain.val();
}
};
HtmlEditorWrapper.prototype.setHtml = function (sHtml, bFocus)
{
if (this.editor)
{
if (!this.bHtml)
{
this.modeToggle(bFocus);
}
this.editor.setData(sHtml);
}
};
HtmlEditorWrapper.prototype.setPlain = function (sPlain, bFocus)
{
if (this.bHtml)
{
this.modeToggle(bFocus);
}
this.$plain.val(sPlain);
};
HtmlEditorWrapper.prototype.init = function ()
{
if (this.$element && this.$element[0])
{
var
self = this,
oConfig = Globals.oHtmlEditorDefaultConfig,
sLanguage = RL.settingsGet('Language'),
bSource = !!RL.settingsGet('AllowHtmlEditorSourceButton')
;
self.$toolbar = $('<div></div>')
.addClass('html-editor-wrapper-toolbar')
;
self.$plain = $('<textarea></textarea>')
.addClass('html-editor-wrapper-plain')
.on('change', function () {
self.bPlainDirty = true;
})
.on('blur', function() {
self.blurTrigger();
})
.on('focus', function() {
self.focusTrigger();
})
.hide()
;
// self.$html = $('<div></div>')
// .addClass('html-editor-wrapper-html')
// .attr('contenteditable', 'true')
// .on('blur', function() {
// self.blurTrigger();
// })
// .on('focus', function() {
// self.focusTrigger();
// })
// .hide()
// ;
self.$html = $('<div></div>')
.addClass('html-editor-wrapper-html')
.attr('contenteditable', 'true')
.hide()
;
if (self.bHtml) {
self.$html.show();
} else {
self.$plain.show();
}
self.$element
.addClass('html-editor-wrapper')
.append(self.$toolbar)
.append(self.$plain)
.append(self.$html)
;
if (bSource && oConfig.toolbarGroups && !oConfig.toolbarGroups.__SourceInited)
{
oConfig.toolbarGroups.__SourceInited = true;
oConfig.toolbarGroups.push({name: 'document', groups: ['mode', 'document', 'doctools']});
}
oConfig.language = Globals.oHtmlEditorLangsMap[sLanguage] || 'en';
// self.editor = window.CKEDITOR.appendTo(self.$html[0], oConfig);
self.editor = window.CKEDITOR.inline(self.$html[0], oConfig);
self.editor.on('blur', function() {
self.blurTrigger();
});
self.editor.on('focus', function() {
self.focusTrigger();
});
if (self.fOnReady)
{
self.editor.on('instanceReady', function () {
self.fOnReady();
});
}
self.initToolbar();
self.setModeButtonText();
}
};
HtmlEditorWrapper.prototype.toolbarReposition = function ()
{
if (this.bHtml && this.editor && this.editor.focusManager.hasFocus)
{
var oEd = this.editor;
oEd.focusManager.blur(true);
_.delay(function () {
oEd.focusManager.focus();
}, 1);
}
};
HtmlEditorWrapper.prototype.focus = function ()
{
if (this.bHtml) {
if (this.editor) {
this.editor.focusManager.focus();
}
} else {
this.$plain.focus();
}
};
HtmlEditorWrapper.prototype.blur = function ()
{
if (this.bHtml) {
if (this.editor) {
this.editor.focusManager.blur(true);
}
} else {
this.$plain.blur();
}
};
HtmlEditorWrapper.prototype.setModeButtonText = function ()
{
this.$mode.text(this.bHtml ? this.LANG.PLAIN : this.LANG.HTML);
};
HtmlEditorWrapper.prototype.clear = function (bFocus)
{
this.setHtml('', bFocus);
};
HtmlEditorWrapper.prototype.modeToggle = function (bFocus)
{
bFocus = Utils.isUnd(bFocus) ? true : !!bFocus;
if (bFocus)
{
this.blur();
}
if (this.editor)
{
if (this.bHtml)
{
this.$html.hide();
this.$plain.show();
this.$plain.val(this.htmlToPlain(this.editor.getData()));
this.bHtml = false;
this.bPlainDirty = true;
}
else
{
this.$plain.hide();
this.$html.show();
this.editor.setData(this.plainToHtml(this.$plain.val()));
this.bHtml = true;
this.bPlainDirty = true;
}
}
this.setModeButtonText();
if (bFocus)
{
this.focus();
}
this.blurTrigger();
};

View file

@ -0,0 +1,203 @@
/**
* @constructor
* @param {Object} oElement
* @param {Function=} fOnBlur
* @param {Function=} fOnReady
*/
function NewHtmlEditorWrapper(oElement, fOnBlur, fOnReady)
{
var self = this;
self.editor = null;
self.iBlurTimer = 0;
self.fOnBlur = fOnBlur || null;
self.fOnReady = fOnReady || null;
self.$element = $(oElement);
self.init();
}
NewHtmlEditorWrapper.prototype.blurTrigger = function ()
{
if (this.fOnBlur)
{
var self = this;
window.clearTimeout(self.iBlurTimer);
self.iBlurTimer = window.setTimeout(function () {
self.fOnBlur();
}, 200);
}
};
NewHtmlEditorWrapper.prototype.focusTrigger = function ()
{
if (this.fOnBlur)
{
window.clearTimeout(this.iBlurTimer);
}
};
/**
* @return {boolean}
*/
NewHtmlEditorWrapper.prototype.isHtml = function ()
{
window.console.log(this.editor.mode);
return this.editor ? 'wysiwyg' === this.editor.mode : false;
};
/**
* @return {boolean}
*/
NewHtmlEditorWrapper.prototype.checkDirty = function ()
{
return this.editor ? this.editor.checkDirty() : false;
};
NewHtmlEditorWrapper.prototype.resetDirty = function ()
{
if (this.editor)
{
this.editor.resetDirty();
}
};
/**
* @return {string}
*/
NewHtmlEditorWrapper.prototype.getData = function ()
{
if (this.editor)
{
if ('plain' === this.editor.mode && this.editor.plugins.plain && this.editor.__plain)
{
return this.editor.__plain.getRawData();
}
return this.editor.getData();
}
return '';
};
NewHtmlEditorWrapper.prototype.modeToggle = function (bPlain)
{
if (this.editor)
{
if (bPlain)
{
if ('plain' === this.editor.mode)
{
this.editor.setMode('wysiwyg');
}
}
else
{
if ('wysiwyg' === this.editor.mode)
{
this.editor.setMode('plain');
}
}
}
};
NewHtmlEditorWrapper.prototype.setHtml = function (sHtml, bFocus)
{
if (this.editor)
{
this.modeToggle(true);
this.editor.setData(sHtml);
if (bFocus)
{
this.focus();
}
}
};
NewHtmlEditorWrapper.prototype.setPlain = function (sPlain, bFocus)
{
if (this.editor)
{
this.modeToggle(false);
this.editor.setData(sPlain);
if (bFocus)
{
this.focus();
}
}
};
NewHtmlEditorWrapper.prototype.init = function ()
{
if (this.$element && this.$element[0])
{
var
self = this,
oConfig = Globals.oHtmlEditorDefaultConfig,
sLanguage = RL.settingsGet('Language'),
bSource = !!RL.settingsGet('AllowHtmlEditorSourceButton')
;
if (bSource && oConfig.toolbarGroups && !oConfig.toolbarGroups.__SourceInited)
{
oConfig.toolbarGroups.__SourceInited = true;
oConfig.toolbarGroups.push({name: 'document', groups: ['mode', 'document', 'doctools']});
}
oConfig.language = Globals.oHtmlEditorLangsMap[sLanguage] || 'en';
self.editor = window.CKEDITOR.appendTo(self.$element[0], oConfig);
self.editor.on('blur', function() {
self.blurTrigger();
});
self.editor.on('mode', function() {
self.blurTrigger();
});
self.editor.on('focus', function() {
self.focusTrigger();
});
if (self.fOnReady)
{
self.editor.on('instanceReady', function () {
self.fOnReady();
self.resize();
});
}
}
};
NewHtmlEditorWrapper.prototype.focus = function ()
{
if (this.editor)
{
this.editor.focusManager.focus();
}
};
NewHtmlEditorWrapper.prototype.blur = function ()
{
if (this.editor)
{
this.editor.focusManager.blur(true);
}
};
NewHtmlEditorWrapper.prototype.resize = function ()
{
if (this.editor)
{
this.editor.resize(this.$element.width(), this.$element.innerHeight());
}
};
NewHtmlEditorWrapper.prototype.clear = function (bFocus)
{
this.setHtml('', bFocus);
};

View file

@ -1434,6 +1434,120 @@ Utils.settingsSaveHelperSimpleFunction = function (koTrigger, oContext)
return Utils.settingsSaveHelperFunction(null, koTrigger, oContext, 1000);
};
/**
* @param {string} sHtml
* @return {string}
*/
Utils.htmlToPlain = function (sHtml)
{
var
sText = '',
sQuoteChar = '> ',
convertBlockquote = function () {
if (arguments && 1 < arguments.length)
{
var sText = $.trim(arguments[1])
.replace(/__bq__start__(.|[\s\S\n\r]*)__bq__end__/gm, convertBlockquote)
;
sText = '\n' + sQuoteChar + $.trim(sText).replace(/\n/gm, '\n' + sQuoteChar) + '\n>\n';
return sText.replace(/\n([> ]+)/gm, function () {
return (arguments && 1 < arguments.length) ? '\n' + $.trim(arguments[1].replace(/[\s]/, '')) + ' ' : '';
});
}
return '';
},
convertDivs = function () {
if (arguments && 1 < arguments.length)
{
var sText = $.trim(arguments[1]);
if (0 < sText.length)
{
sText = sText.replace(/<div[^>]*>(.|[\s\S\r\n]*)<\/div>/gmi, convertDivs);
sText = '\n' + $.trim(sText) + '\n';
}
return sText;
}
return '';
},
fixAttibuteValue = function () {
if (arguments && 1 < arguments.length)
{
return '' + arguments[1] + arguments[2].replace(/</g, '&lt;').replace(/>/g, '&gt;');
}
return '';
},
convertLinks = function () {
if (arguments && 1 < arguments.length)
{
var
sName = $.trim(arguments[1])
// sHref = $.trim(arguments[0].replace(/<a [\s\S]*href[ ]?=[ ]?["']?([^"']+).+<\/a>/gmi, '$1'))
;
return sName;
// sName = (0 === trim(sName).length) ? '' : sName;
// sHref = ('mailto:' === sHref.substr(0, 7)) ? '' : sHref;
// sHref = ('http' === sHref.substr(0, 4)) ? sHref : '';
// sHref = (sName === sHref) ? '' : sHref;
// sHref = (0 < sHref.length) ? ' (' + sHref + ') ' : '';
// return (0 < sName.length) ? sName + sHref : sName;
}
return '';
}
;
sText = sHtml
.replace(/[\s]+/gm, ' ')
.replace(/((?:href|data)\s?=\s?)("[^"]+?"|'[^']+?')/gmi, fixAttibuteValue)
.replace(/<br\s?\/?>/gmi, '\n')
.replace(/<\/h\d>/gi, '\n')
.replace(/<\/p>/gi, '\n\n')
.replace(/<\/li>/gi, '\n')
.replace(/<\/td>/gi, '\n')
.replace(/<\/tr>/gi, '\n')
.replace(/<hr[^>]*>/gmi, '\n_______________________________\n\n')
.replace(/<img [^>]*>/gmi, '')
.replace(/<div[^>]*>(.|[\s\S\r\n]*)<\/div>/gmi, convertDivs)
.replace(/<blockquote[^>]*>/gmi, '\n__bq__start__\n')
.replace(/<\/blockquote>/gmi, '\n__bq__end__\n')
.replace(/<a [^>]*>(.|[\s\S\r\n]*)<\/a>/gmi, convertLinks)
.replace(/&nbsp;/gi, ' ')
.replace(/<[^>]*>/gm, '')
.replace(/&gt;/gi, '>')
.replace(/&lt;/gi, '<')
.replace(/&amp;/gi, '&')
.replace(/&\w{2,6};/gi, '')
;
return sText
.replace(/\n[ \t]+/gm, '\n')
.replace(/[\n]{3,}/gm, '\n\n')
.replace(/__bq__start__(.|[\s\S\r\n]*)__bq__end__/gm, convertBlockquote)
.replace(/__bq__start__/gm, '')
.replace(/__bq__end__/gm, '')
;
};
/**
* @param {string} sPlain
* @return {string}
*/
Utils.plainToHtml = function (sPlain)
{
return sPlain.toString()
.replace(/&/g, '&amp;').replace(/>/g, '&gt;').replace(/</g, '&lt;')
.replace(/\r/g, '').replace(/\n/g, '<br />');
};
Utils.resizeAndCrop = function (sUrl, iValue, fCallback)
{
var oTempImg = new window.Image();

View file

@ -83,14 +83,6 @@ SettingsIdentities.prototype.deleteIdentity = function (oIdentityToRemove)
}
};
SettingsIdentities.prototype.onHide = function ()
{
if (this.editor)
{
this.editor.hideEditorToolbar();
}
};
SettingsIdentities.prototype.onFocus = function ()
{
if (!this.editor && this.signatureDom())
@ -100,7 +92,7 @@ SettingsIdentities.prototype.onFocus = function ()
sSignature = RL.data().signature()
;
this.editor = new HtmlEditorWrapper(self.signatureDom(), function () {
this.editor = new NewHtmlEditorWrapper(self.signatureDom(), function () {
RL.data().signature(
(self.editor.isHtml() ? ':HTML:' : '') + self.editor.getData()
);
@ -114,15 +106,6 @@ SettingsIdentities.prototype.onFocus = function ()
self.editor.setPlain(sSignature, false);
}
});
this.editor.addInputFormatStyle();
Utils.initOnStartOrLangChange(function () {
self.editor.setupLang(
Utils.i18n('EDITOR/TEXT_SWITCHER_RICH_FORMATTING'),
Utils.i18n('EDITOR/TEXT_SWITCHER_PLAINT_TEXT')
);
});
}
};

View file

@ -23,14 +23,6 @@ function SettingsIdentity()
Utils.addSettingsViewModel(SettingsIdentity, 'SettingsIdentity', 'SETTINGS_LABELS/LABEL_IDENTITY_NAME', 'identity');
SettingsIdentity.prototype.onHide = function ()
{
if (this.editor)
{
this.editor.hideEditorToolbar();
}
};
SettingsIdentity.prototype.onFocus = function ()
{
if (!this.editor && this.signatureDom())
@ -40,7 +32,7 @@ SettingsIdentity.prototype.onFocus = function ()
sSignature = RL.data().signature()
;
this.editor = new HtmlEditorWrapper(self.signatureDom(), function () {
this.editor = new NewHtmlEditorWrapper(self.signatureDom(), function () {
RL.data().signature(
(self.editor.isHtml() ? ':HTML:' : '') + self.editor.getData()
);
@ -54,15 +46,6 @@ SettingsIdentity.prototype.onFocus = function ()
self.editor.setPlain(sSignature, false);
}
});
this.editor.addInputFormatStyle();
Utils.initOnStartOrLangChange(function () {
self.editor.setupLang(
Utils.i18n('EDITOR/TEXT_SWITCHER_RICH_FORMATTING'),
Utils.i18n('EDITOR/TEXT_SWITCHER_PLAINT_TEXT')
);
});
}
};

View file

@ -33,6 +33,7 @@
@import "_FontasticToBoot.less";
@import "_BootstrapFix.less";
@import "_InputosaurusFix.less";
@import "_CkeFix.less";
@import "Ui.less";
@import "Main.less";
@ -71,5 +72,4 @@
@import "SettingsThemes.less";
@import "Animations.less";
@import "HtmlEditorWrapper.less";
@import "_End.less";

View file

@ -12,6 +12,10 @@
}
}
.textAreaParent {
overflow: hidden;
}
.b-header-toolbar {
height: 40px;
@ -45,7 +49,7 @@
.b-header {
padding: 10px;
border-bottom: 1px solid #333;
/*border-bottom: 1px solid #333;*/
background-color: #eee;
color: #333;

View file

@ -1,163 +0,0 @@
.html-editor-wrapper {
position: relative;
/*overflow: hidden;*/
}
.html-editor-wrapper-fullscreen {
border: 0;
padding: 0;
margin: 0;
overflow: hidden;
background: #fff;
height: 100%;
}
html.html-editor-wrapper-fullscreen .html-editor-wrapper {
position: absolute;
z-index: 1000;
top: 0;
left: 0;
right: 0;
bottom: 0;
height: auto !important;
width: auto !important;
}
.html-editor-wrapper-html, .html-editor-wrapper-plain {
background-color: #fff;
outline: none;
overflow: auto;
z-index: 1;
margin: 0;
border: 0;
padding: 10px;
padding-right: 0;
font-family: arial,sans-serif;
font-size: 12px;
line-height: 16px;
color: #333;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.html-editor-wrapper-html:focus, .html-editor-wrapper-plain:focus {
border: 0;
}
.html-editor-wrapper-html.styled, .html-editor-wrapper-plain.styled {
border: 1px solid #cccccc;
-webkit-transition: border linear .2s, box-shadow linear .2s;
-moz-transition: border linear .2s, box-shadow linear .2s;
-o-transition: border linear .2s, box-shadow linear .2s;
transition: border linear .2s, box-shadow linear .2s;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
html.html-editor-wrapper-fullscreen .html-editor-wrapper-html.styled, html.html-editor-wrapper-fullscreen .html-editor-wrapper-plain.styled {
border: 0;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
}
.html-editor-wrapper-html.styled:focus, .html-editor-wrapper-plain.styled:focus,
.html-editor-wrapper-html.styled.focused, .html-editor-wrapper-plain.styled.focused
{
border: 1px solid #999999;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.html-editor-wrapper-html {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
.html-editor-wrapper-plain {
position: relative;
width: 100%;
height: 100%;
resize: none;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
-o-box-sizing: border-box;
box-sizing: border-box;
}
.html-editor-wrapper-mode-button, .html-editor-wrapper-fullscreen-button {
position: absolute;
bottom: 5px;
right: 25px;
z-index: 100;
color: #555;
text-decoration: underline;
font-family: Arial,Helvetica,Tahoma,Verdana,Sans-Serif;
font-size: 12px;
background-color: #fff;
/*background-color: rgba(255, 255, 255, 0.8);*/
padding: 1px 3px;
}
.html-editor-wrapper-mode-button:hover, .html-editor-wrapper-fullscreen-button:hover {
text-decoration: underline;
color: #555;
}
.html-editor-wrapper-fullscreen-button {
bottom: 30px;
}
.html-editor-wrapper-html ul {
padding-left: 40px;
}
.html-editor-wrapper-html ul li {
list-style-type: disc !important;
}
.html-editor-wrapper-html ol {
padding-left: 40px;
}
.html-editor-wrapper-html ol li {
list-style-type: decimal !important;
}
.html-editor-wrapper-html blockquote {
border: 0;
border-left: solid 2px #444;
margin: 5px 0 5px 5px;
padding-left: 5px;
}
.html-editor-wrapper-html img {
vertical-align: bottom;
}
.cke_button__sourcedialog_label {
display: none !important;
}

View file

@ -9,7 +9,7 @@
.e-signature-place {
display: inline-block;
width: 600px;
width: 700px;
height: 200px;
}

101
dev/Styles/_CkeFix.less Normal file
View file

@ -0,0 +1,101 @@
/*.cke_button__sourcedialog_label {
display: none !important;
}*/
.cke_plain {
background-color: #fff;
outline: none;
overflow: auto;
z-index: 1;
margin: 0;
border: 0;
padding: 10px;
padding-right: 0;
font-family: arial,sans-serif;
font-size: 12px;
line-height: 16px;
color: #333;
resize: none;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
-o-box-sizing: border-box;
box-sizing: border-box;
}
.cke_plain:focus, .cke_source:focus {
border: 0;
}
.b-compose .cke_chrome {
border-right: 0;
border-left: 0;
border-bottom: 0;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.cke_wysiwyg_div {
padding: 10px !important;
font-family: arial,sans-serif;
font-size: 12px;
line-height: 16px;
color: #333;
ul {
padding-left: 40px;
li {
list-style-type: disc !important;
}
}
ol {
padding-left: 40px;
li {
list-style-type: decimal !important;
}
}
blockquote {
border: 0;
border-left: solid 2px #444;
margin: 5px 0 5px 5px;
padding-left: 5px;
}
blockquote * {
font-family: arial,sans-serif;
font-size: 12px;
line-height: 16px;
color: #333;
}
img {
vertical-align: bottom;
}
a {
color: blue;
text-decoration: underline;
&:visited {
color: #609;
}
&:active {
color: red;
}
}
}

View file

@ -156,13 +156,12 @@ function PopupsComposeViewModel()
}
}, this);
this.emptyToError.subscribe(function (bValue) {
if (this.oEditor && bValue)
{
this.oEditor.toolbarReposition();
}
}, this);
this.editorResizeThrottle = _.throttle(_.bind(this.editorResize, this), 100);
this.resizer.subscribe(function () {
this.editorResizeThrottle();
}, this);
this.canBeSended = ko.computed(function () {
return !this.sending() &&
!this.saving() &&
@ -564,11 +563,6 @@ PopupsComposeViewModel.prototype.onHide = function ()
{
this.reset();
kn.routeOn();
if (this.oEditor)
{
this.oEditor.hideEditorToolbar();
}
};
/**
@ -618,20 +612,10 @@ PopupsComposeViewModel.prototype.editor = function (fOnInit)
if (!this.oEditor && this.composeEditorArea())
{
_.delay(function () {
self.oEditor = new HtmlEditorWrapper(self.composeEditorArea(), null, function () {
self.oEditor = new NewHtmlEditorWrapper(self.composeEditorArea(), null, function () {
fOnInit(self.oEditor);
});
Utils.initOnStartOrLangChange(null, self, function () {
if (self.oEditor)
{
self.oEditor.setupLang(
Utils.i18n('EDITOR/TEXT_SWITCHER_RICH_FORMATTING'),
Utils.i18n('EDITOR/TEXT_SWITCHER_PLAINT_TEXT')
);
}
});
}, 400);
}, 300);
}
else if (this.oEditor)
{
@ -904,6 +888,14 @@ PopupsComposeViewModel.prototype.onFocus = function ()
this.triggerForResize();
};
PopupsComposeViewModel.prototype.editorResize = function ()
{
if (this.oEditor)
{
this.oEditor.resize();
}
};
PopupsComposeViewModel.prototype.tryToClosePopup = function ()
{
var self = this;
@ -951,6 +943,7 @@ PopupsComposeViewModel.prototype.onBuild = function ()
$window.on('resize', function () {
self.triggerForResize();
self.editorResizeThrottle();
});
if (this.dropboxEnabled())

View file

@ -13,10 +13,10 @@
* (1) http://ckeditor.com/builder
* Visit online builder to build CKEditor from scratch.
*
* (2) http://ckeditor.com/builder/327368eb3879dd55bb1e95e8dd1cd012
* (2) http://ckeditor.com/builder/af76b6866f8bae6375658db2b013837e
* Visit online builder to build CKEditor, starting with the same setup as before.
*
* (3) http://ckeditor.com/builder/download/327368eb3879dd55bb1e95e8dd1cd012
* (3) http://ckeditor.com/builder/download/af76b6866f8bae6375658db2b013837e
* Straight download link to the latest version of CKEditor (Optimized) with the same setup as before.
*
* NOTE:
@ -49,9 +49,11 @@ var CKBUILDER_CONFIG = {
'indent' : 1,
'link' : 1,
'list' : 1,
'maximize' : 1,
'panelbutton' : 1,
'removeformat' : 1,
'sourcedialog' : 1,
'sharedspace' : 1,
'sourcearea' : 1,
'toolbar' : 1,
'undo' : 1
},

View file

@ -730,4 +730,16 @@ a&&a.getComputedStyle("back"==g?"background-color":"color")||"transparent";while
f.auto,'" onclick="CKEDITOR.tools.callFunction(',k,",null,'",g,"');return false;\" href=\"javascript:void('",f.auto,'\')" role="option"><table role="presentation" cellspacing=0 cellpadding=0 width="100%"><tr><td><span class="cke_colorbox" id="',e,'"></span></td><td colspan=7 align=center>',f.auto,'</td></tr></table></a><table role="presentation" cellspacing=0 cellpadding=0 width="100%">');for(e=0;e<j.length;e++){0===e%8&&h.push("</tr><tr>");var a=j[e].split("/"),b=a[0],d=a[1]||b;a[1]||(b="#"+b.replace(/^(.)(.)(.)$/,
"$1$1$2$2$3$3"));a=c.lang.colorbutton.colors[d]||d;h.push('<td><a class="cke_colorbox" _cke_focus=1 hidefocus=true title="',a,'" onclick="CKEDITOR.tools.callFunction(',k,",'",b,"','",g,"'); return false;\" href=\"javascript:void('",a,'\')" role="option"><span class="cke_colorbox" style="background-color:#',d,'"></span></a></td>')}(c.plugins.colordialog&&void 0===i.colorButton_enableMore||i.colorButton_enableMore)&&h.push('</tr><tr><td colspan=8 align=center><a class="cke_colormore" _cke_focus=1 hidefocus=true title="',
f.more,'" onclick="CKEDITOR.tools.callFunction(',k,",'?','",g,"');return false;\" href=\"javascript:void('",f.more,"')\"",' role="option">',f.more,"</a></td>");h.push("</tr></table>");return h.join("")}function n(c){return"false"==c.getAttribute("contentEditable")||c.getAttribute("data-nostyle")}var i=c.config,f=c.lang.colorbutton;CKEDITOR.env.hc||(m("TextColor","fore",f.textColorTitle,10),m("BGColor","back",f.bgColorTitle,20))}});CKEDITOR.config.colorButton_colors="000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF";
CKEDITOR.config.colorButton_foreStyle={element:"span",styles:{color:"#(color)"},overrides:[{element:"font",attributes:{color:null}}]};CKEDITOR.config.colorButton_backStyle={element:"span",styles:{"background-color":"#(color)"}};CKEDITOR.plugins.add("sourcedialog",{init:function(a){a.addCommand("sourcedialog",new CKEDITOR.dialogCommand("sourcedialog"));CKEDITOR.dialog.add("sourcedialog",this.path+"dialogs/sourcedialog.js");a.ui.addButton&&a.ui.addButton("Sourcedialog",{label:a.lang.sourcedialog.toolbar,command:"sourcedialog",toolbar:"mode,10"})}});CKEDITOR.config.plugins='basicstyles,button,toolbar,enterkey,entities,floatingspace,indent,dialogui,dialog,fakeobjects,link,indentlist,list,undo,base64image,blockquote,divarea,panel,floatpanel,listblock,richcombo,font,image,panelbutton,removeformat,colorbutton,sourcedialog';CKEDITOR.config.skin='moono';(function() {var setIcons = function(icons, strip) {var path = CKEDITOR.getUrl( 'plugins/' + strip );icons = icons.split( ',' );for ( var i = 0; i < icons.length; i++ )CKEDITOR.skin.icons[ icons[ i ] ] = { path: path, offset: -icons[ ++i ], bgsize : icons[ ++i ] };};if (CKEDITOR.env.hidpi) setIcons('bold,0,,italic,24,,strike,48,,subscript,72,,superscript,96,,underline,120,,indent-rtl,144,,indent,168,,outdent-rtl,192,,outdent,216,,anchor-rtl,240,,anchor,264,,link,288,,unlink,312,,bulletedlist-rtl,336,,bulletedlist,360,,numberedlist-rtl,384,,numberedlist,408,,redo-rtl,432,,redo,456,,undo-rtl,480,,undo,504,,base64image,528,,blockquote,552,,image,576,,removeformat,600,,bgcolor,624,,textcolor,648,,sourcedialog-rtl,672,,sourcedialog,696,','icons_hidpi.png');else setIcons('bold,0,auto,italic,24,auto,strike,48,auto,subscript,72,auto,superscript,96,auto,underline,120,auto,indent-rtl,144,auto,indent,168,auto,outdent-rtl,192,auto,outdent,216,auto,anchor-rtl,240,auto,anchor,264,auto,link,288,auto,unlink,312,auto,bulletedlist-rtl,336,auto,bulletedlist,360,auto,numberedlist-rtl,384,auto,numberedlist,408,auto,redo-rtl,432,auto,redo,456,auto,undo-rtl,480,auto,undo,504,auto,base64image,528,auto,blockquote,552,auto,image,576,auto,removeformat,600,auto,bgcolor,624,auto,textcolor,648,auto,sourcedialog-rtl,672,auto,sourcedialog,696,auto','icons.png');})();CKEDITOR.lang.languages={"af":1,"sq":1,"ar":1,"eu":1,"bn":1,"bs":1,"bg":1,"ca":1,"zh-cn":1,"zh":1,"hr":1,"cs":1,"da":1,"nl":1,"en":1,"en-au":1,"en-ca":1,"en-gb":1,"eo":1,"et":1,"fo":1,"fi":1,"fr":1,"fr-ca":1,"gl":1,"ka":1,"de":1,"el":1,"gu":1,"he":1,"hi":1,"hu":1,"is":1,"id":1,"it":1,"ja":1,"km":1,"ko":1,"ku":1,"lv":1,"lt":1,"mk":1,"ms":1,"mn":1,"no":1,"nb":1,"fa":1,"pl":1,"pt-br":1,"pt":1,"ro":1,"ru":1,"sr":1,"sr-latn":1,"si":1,"sk":1,"sl":1,"es":1,"sv":1,"th":1,"tr":1,"ug":1,"uk":1,"vi":1,"cy":1};}());
CKEDITOR.config.colorButton_foreStyle={element:"span",styles:{color:"#(color)"},overrides:[{element:"font",attributes:{color:null}}]};CKEDITOR.config.colorButton_backStyle={element:"span",styles:{"background-color":"#(color)"}};(function(){function f(a,b,c){var e=CKEDITOR.document.getById(c),d;if(e&&(c=a.fire("uiSpace",{space:b,html:""}).html))a.on("uiSpace",function(a){a.data.space==b&&a.cancel()},null,null,1),d=e.append(CKEDITOR.dom.element.createFromHtml(g.output({id:a.id,name:a.name,langDir:a.lang.dir,langCode:a.langCode,space:b,spaceId:a.ui.spaceId(b),content:c}))),e.getCustomData("cke_hasshared")?d.hide():e.setCustomData("cke_hasshared",1),d.unselectable(),d.on("mousedown",function(a){a=a.data;a.getTarget().hasAscendant("a",
1)||a.preventDefault()}),a.focusManager.add(d,1),a.on("focus",function(){for(var a=0,b,c=e.getChildren();b=c.getItem(a);a++)b.type==CKEDITOR.NODE_ELEMENT&&(!b.equals(d)&&b.hasClass("cke_shared"))&&b.hide();d.show()}),a.on("destroy",function(){d.remove()})}var g=CKEDITOR.addTemplate("sharedcontainer",'<div id="cke_{name}" class="cke {id} cke_reset_all cke_chrome cke_editor_{name} cke_shared cke_detached cke_{langDir} '+CKEDITOR.env.cssClass+'" dir="{langDir}" title="'+(CKEDITOR.env.gecko?" ":"")+'" lang="{langCode}" role="presentation"><div class="cke_inner"><div id="{spaceId}" class="cke_{space}" role="presentation">{content}</div></div></div>');
CKEDITOR.plugins.add("sharedspace",{init:function(a){a.on("loaded",function(){var b=a.config.sharedSpaces;if(b)for(var c in b)f(a,c,b[c])},null,null,9)}})})();(function(){CKEDITOR.plugins.add("sourcearea",{init:function(a){function d(){this.hide();this.setStyle("height",this.getParent().$.clientHeight+"px");this.setStyle("width",this.getParent().$.clientWidth+"px");this.show()}if(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var e=CKEDITOR.plugins.sourcearea;a.addMode("source",function(e){var b=a.ui.space("contents").getDocument().createElement("textarea");b.setStyles(CKEDITOR.tools.extend({width:CKEDITOR.env.ie7Compat?"99%":"100%",height:"100%",resize:"none",
outline:"none","text-align":"left"},CKEDITOR.tools.cssVendorPrefix("tab-size",a.config.sourceAreaTabSize||4)));b.setAttribute("dir","ltr");b.addClass("cke_source cke_reset cke_enable_context_menu");a.ui.space("contents").append(b);b=a.editable(new c(a,b));b.setData(a.getData(1));CKEDITOR.env.ie&&(b.attachListener(a,"resize",d,b),b.attachListener(CKEDITOR.document.getWindow(),"resize",d,b),CKEDITOR.tools.setTimeout(d,0,b));a.fire("ariaWidget",this);e()});a.addCommand("source",e.commands.source);a.ui.addButton&&
a.ui.addButton("Source",{label:a.lang.sourcearea.toolbar,command:"source",toolbar:"mode,10"});a.on("mode",function(){a.getCommand("source").setState("source"==a.mode?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)})}}});var c=CKEDITOR.tools.createClass({base:CKEDITOR.editable,proto:{setData:function(a){this.setValue(a);this.editor.fire("dataReady")},getData:function(){return this.getValue()},insertHtml:function(){},insertElement:function(){},insertText:function(){},setReadOnly:function(a){this[(a?"set":
"remove")+"Attribute"]("readOnly","readonly")},detach:function(){c.baseProto.detach.call(this);this.clearCustomData();this.remove()}}})})();CKEDITOR.plugins.sourcearea={commands:{source:{modes:{wysiwyg:1,source:1},editorFocus:!1,readOnly:1,exec:function(c){"wysiwyg"==c.mode&&c.fire("saveSnapshot");c.getCommand("source").setState(CKEDITOR.TRISTATE_DISABLED);c.setMode("source"==c.mode?"wysiwyg":"source")},canUndo:!1}}};(function(){function l(a){if(!a||a.type!=CKEDITOR.NODE_ELEMENT||"form"!=a.getName())return[];for(var e=[],f=["style","className"],b=0;b<f.length;b++){var d=a.$.elements.namedItem(f[b]);d&&(d=new CKEDITOR.dom.element(d),e.push([d,d.nextSibling]),d.remove())}return e}function o(a,e){if(a&&!(a.type!=CKEDITOR.NODE_ELEMENT||"form"!=a.getName())&&0<e.length)for(var f=e.length-1;0<=f;f--){var b=e[f][0],d=e[f][1];d?b.insertBefore(d):b.appendTo(a)}}function n(a,e){var f=l(a),b={},d=a.$;e||(b["class"]=d.className||
"",d.className="");b.inline=d.style.cssText||"";e||(d.style.cssText="position: static; overflow: visible");o(f);return b}function p(a,e){var f=l(a),b=a.$;"class"in e&&(b.className=e["class"]);"inline"in e&&(b.style.cssText=e.inline);o(f)}function q(a){if(!a.editable().isInline()){var e=CKEDITOR.instances,f;for(f in e){var b=e[f];"wysiwyg"==b.mode&&!b.readOnly&&(b=b.document.getBody(),b.setAttribute("contentEditable",!1),b.setAttribute("contentEditable",!0))}a.editable().hasFocus&&(a.toolbox.focus(),
a.focus())}}CKEDITOR.plugins.add("maximize",{init:function(a){function e(){var b=d.getViewPaneSize();a.resize(b.width,b.height,null,!0)}if(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var f=a.lang,b=CKEDITOR.document,d=b.getWindow(),j,k,m,l=CKEDITOR.TRISTATE_OFF;a.addCommand("maximize",{modes:{wysiwyg:!CKEDITOR.env.iOS,source:!CKEDITOR.env.iOS},readOnly:1,editorFocus:!1,exec:function(){var h=a.container.getChild(1),g=a.ui.space("contents");if("wysiwyg"==a.mode){var c=a.getSelection();j=c&&c.getRanges();
k=d.getScrollPosition()}else{var i=a.editable().$;j=!CKEDITOR.env.ie&&[i.selectionStart,i.selectionEnd];k=[i.scrollLeft,i.scrollTop]}if(this.state==CKEDITOR.TRISTATE_OFF){d.on("resize",e);m=d.getScrollPosition();for(c=a.container;c=c.getParent();)c.setCustomData("maximize_saved_styles",n(c)),c.setStyle("z-index",a.config.baseFloatZIndex-5);g.setCustomData("maximize_saved_styles",n(g,!0));h.setCustomData("maximize_saved_styles",n(h,!0));g={overflow:CKEDITOR.env.webkit?"":"hidden",width:0,height:0};
b.getDocumentElement().setStyles(g);!CKEDITOR.env.gecko&&b.getDocumentElement().setStyle("position","fixed");(!CKEDITOR.env.gecko||!CKEDITOR.env.quirks)&&b.getBody().setStyles(g);CKEDITOR.env.ie?setTimeout(function(){d.$.scrollTo(0,0)},0):d.$.scrollTo(0,0);h.setStyle("position",CKEDITOR.env.gecko&&CKEDITOR.env.quirks?"fixed":"absolute");h.$.offsetLeft;h.setStyles({"z-index":a.config.baseFloatZIndex-5,left:"0px",top:"0px"});h.addClass("cke_maximized");e();g=h.getDocumentPosition();h.setStyles({left:-1*
g.x+"px",top:-1*g.y+"px"});CKEDITOR.env.gecko&&q(a)}else if(this.state==CKEDITOR.TRISTATE_ON){d.removeListener("resize",e);g=[g,h];for(c=0;c<g.length;c++)p(g[c],g[c].getCustomData("maximize_saved_styles")),g[c].removeCustomData("maximize_saved_styles");for(c=a.container;c=c.getParent();)p(c,c.getCustomData("maximize_saved_styles")),c.removeCustomData("maximize_saved_styles");CKEDITOR.env.ie?setTimeout(function(){d.$.scrollTo(m.x,m.y)},0):d.$.scrollTo(m.x,m.y);h.removeClass("cke_maximized");CKEDITOR.env.webkit&&
(h.setStyle("display","inline"),setTimeout(function(){h.setStyle("display","block")},0));a.fire("resize")}this.toggleState();if(c=this.uiItems[0])g=this.state==CKEDITOR.TRISTATE_OFF?f.maximize.maximize:f.maximize.minimize,c=CKEDITOR.document.getById(c._.id),c.getChild(1).setHtml(g),c.setAttribute("title",g),c.setAttribute("href",'javascript:void("'+g+'");');"wysiwyg"==a.mode?j?(CKEDITOR.env.gecko&&q(a),a.getSelection().selectRanges(j),(i=a.getSelection().getStartElement())&&i.scrollIntoView(!0)):
d.$.scrollTo(k.x,k.y):(j&&(i.selectionStart=j[0],i.selectionEnd=j[1]),i.scrollLeft=k[0],i.scrollTop=k[1]);j=k=null;l=this.state;a.fire("maximize",this.state)},canUndo:!1});a.ui.addButton&&a.ui.addButton("Maximize",{label:f.maximize.maximize,command:"maximize",toolbar:"tools,10"});a.on("mode",function(){var b=a.getCommand("maximize");b.setState(b.state==CKEDITOR.TRISTATE_DISABLED?CKEDITOR.TRISTATE_DISABLED:l)},null,null,100)}}})})();CKEDITOR.config.plugins='basicstyles,button,toolbar,enterkey,entities,floatingspace,indent,dialogui,dialog,fakeobjects,link,indentlist,list,undo,base64image,blockquote,divarea,panel,floatpanel,listblock,richcombo,font,image,panelbutton,removeformat,colorbutton,sharedspace,sourcearea,maximize';CKEDITOR.config.skin='moono';(function() {var setIcons = function(icons, strip) {var path = CKEDITOR.getUrl( 'plugins/' + strip );icons = icons.split( ',' );for ( var i = 0; i < icons.length; i++ )CKEDITOR.skin.icons[ icons[ i ] ] = { path: path, offset: -icons[ ++i ], bgsize : icons[ ++i ] };};if (CKEDITOR.env.hidpi) setIcons('bold,0,,italic,24,,strike,48,,subscript,72,,superscript,96,,underline,120,,indent-rtl,144,,indent,168,,outdent-rtl,192,,outdent,216,,anchor-rtl,240,,anchor,264,,link,288,,unlink,312,,bulletedlist-rtl,336,,bulletedlist,360,,numberedlist-rtl,384,,numberedlist,408,,redo-rtl,432,,redo,456,,undo-rtl,480,,undo,504,,base64image,528,,blockquote,552,,image,576,,removeformat,600,,bgcolor,624,,textcolor,648,,source-rtl,672,,source,696,,maximize,720,','icons_hidpi.png');else setIcons('bold,0,auto,italic,24,auto,strike,48,auto,subscript,72,auto,superscript,96,auto,underline,120,auto,indent-rtl,144,auto,indent,168,auto,outdent-rtl,192,auto,outdent,216,auto,anchor-rtl,240,auto,anchor,264,auto,link,288,auto,unlink,312,auto,bulletedlist-rtl,336,auto,bulletedlist,360,auto,numberedlist-rtl,384,auto,numberedlist,408,auto,redo-rtl,432,auto,redo,456,auto,undo-rtl,480,auto,undo,504,auto,base64image,528,auto,blockquote,552,auto,image,576,auto,removeformat,600,auto,bgcolor,624,auto,textcolor,648,auto,source-rtl,672,auto,source,696,auto,maximize,720,auto','icons.png');})();CKEDITOR.lang.languages={"af":1,"sq":1,"ar":1,"eu":1,"bn":1,"bs":1,"bg":1,"ca":1,"zh-cn":1,"zh":1,"hr":1,"cs":1,"da":1,"nl":1,"en":1,"en-au":1,"en-ca":1,"en-gb":1,"eo":1,"et":1,"fo":1,"fi":1,"fr":1,"fr-ca":1,"gl":1,"ka":1,"de":1,"el":1,"gu":1,"he":1,"hi":1,"hu":1,"is":1,"id":1,"it":1,"ja":1,"km":1,"ko":1,"ku":1,"lv":1,"lt":1,"mk":1,"ms":1,"mn":1,"no":1,"nb":1,"fa":1,"pl":1,"pt-br":1,"pt":1,"ro":1,"ru":1,"sr":1,"sr-latn":1,"si":1,"sk":1,"sl":1,"es":1,"sv":1,"th":1,"tr":1,"ug":1,"uk":1,"vi":1,"cy":1};}());

View file

@ -10,33 +10,25 @@ CKEDITOR.editorConfig = function( config ) {
// The toolbar groups arrangement, optimized for a single toolbar row.
config.toolbarGroups = [
{ name: 'styles' },
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
{ name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] },
{ name: 'forms' },
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
{ name: 'links' },
{ name: 'insert' },
{ name: 'styles' },
{ name: 'colors' },
{ name: 'tools' },
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
{ name: 'others' }
{ name: 'others' },
{ name: 'about' }
];
// The default plugins included in the basic setup define some buttons that
// we don't want too have in a basic editor. We remove them here.
config.removeButtons = 'Format,Undo,Redo,Cut,Copy,Paste,Anchor,Strike,Subscript,Superscript,Image,Indent,Outdent,ToolbarSwitch,Source';
config.removeButtons = 'Cut,Copy,Paste,Undo,Redo,Anchor,Underline,Strike,Subscript,Superscript';
// Let's have it basic on dialogs as well.
config.removeDialogTabs = 'link:advanced;link:target;image:advanced';
config.stylesSet = false;
config.allowedContent = true;
config.autoParagraph = false;
config.enterMode = CKEDITOR.ENTER_BR;
config.shiftEnterMode = CKEDITOR.ENTER_P;
config.font_defaultLabel = 'Arial';
config.fontSize_defaultLabel = '12px';
config.removeDialogTabs = 'link:advanced';
};

View file

@ -1,34 +0,0 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here.
// For the complete reference:
// http://docs.ckeditor.com/#!/api/CKEDITOR.config
// The toolbar groups arrangement, optimized for a single toolbar row.
config.toolbarGroups = [
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
{ name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] },
{ name: 'forms' },
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
{ name: 'links' },
{ name: 'insert' },
{ name: 'styles' },
{ name: 'colors' },
{ name: 'tools' },
{ name: 'others' },
{ name: 'about' }
];
// The default plugins included in the basic setup define some buttons that
// we don't want too have in a basic editor. We remove them here.
config.removeButtons = 'Cut,Copy,Paste,Undo,Redo,Anchor,Underline,Strike,Subscript,Superscript';
// Let's have it basic on dialogs as well.
config.removeDialogTabs = 'link:advanced';
};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 762 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 B

View file

@ -0,0 +1,240 @@
( function() {
var
trim = $.trim,
/**
* @param {string} sHtml
* @return {string}
*/
htmlToPlain = function (sHtml)
{
var
sText = '',
sQuoteChar = '> ',
convertBlockquote = function () {
if (arguments && 1 < arguments.length)
{
var sText = trim(arguments[1])
.replace(/__bq__start__(.|[\s\S\n\r]*)__bq__end__/gm, convertBlockquote)
;
sText = '\n' + sQuoteChar + trim(sText).replace(/\n/gm, '\n' + sQuoteChar) + '\n>\n';
return sText.replace(/\n([> ]+)/gm, function () {
return (arguments && 1 < arguments.length) ? '\n' + trim(arguments[1].replace(/[\s]/, '')) + ' ' : '';
});
}
return '';
},
convertDivs = function () {
if (arguments && 1 < arguments.length)
{
var sText = trim(arguments[1]);
if (0 < sText.length)
{
sText = sText.replace(/<div[^>]*>(.|[\s\S\r\n]*)<\/div>/gmi, convertDivs);
sText = '\n' + trim(sText) + '\n';
}
return sText;
}
return '';
},
fixAttibuteValue = function () {
if (arguments && 1 < arguments.length)
{
return '' + arguments[1] + arguments[2].replace(/</g, '&lt;').replace(/>/g, '&gt;');
}
return '';
},
convertLinks = function () {
return (arguments && 1 < arguments.length) ? trim(arguments[1]) : '';
}
;
sText = sHtml
.replace(/[\s]+/gm, ' ')
.replace(/((?:href|data)\s?=\s?)("[^"]+?"|'[^']+?')/gmi, fixAttibuteValue)
.replace(/<br\s?\/?>/gmi, '\n')
.replace(/<\/h\d>/gi, '\n')
.replace(/<\/p>/gi, '\n\n')
.replace(/<\/li>/gi, '\n')
.replace(/<\/td>/gi, '\n')
.replace(/<\/tr>/gi, '\n')
.replace(/<hr[^>]*>/gmi, '\n_______________________________\n\n')
.replace(/<img [^>]*>/gmi, '')
.replace(/<div[^>]*>(.|[\s\S\r\n]*)<\/div>/gmi, convertDivs)
.replace(/<blockquote[^>]*>/gmi, '\n__bq__start__\n')
.replace(/<\/blockquote>/gmi, '\n__bq__end__\n')
.replace(/<a [^>]*>(.|[\s\S\r\n]*)<\/a>/gmi, convertLinks)
.replace(/&nbsp;/gi, ' ')
.replace(/<[^>]*>/gm, '')
.replace(/&gt;/gi, '>')
.replace(/&lt;/gi, '<')
.replace(/&amp;/gi, '&')
.replace(/&\w{2,6};/gi, '')
;
return sText
.replace(/\n[ \t]+/gm, '\n')
.replace(/[\n]{3,}/gm, '\n\n')
.replace(/__bq__start__(.|[\s\S\r\n]*)__bq__end__/gm, convertBlockquote)
.replace(/__bq__start__/gm, '')
.replace(/__bq__end__/gm, '')
;
},
/**
* @param {string} sPlain
* @return {string}
*/
plainToHtml = function (sPlain)
{
return sPlain.toString()
.replace(/&/g, '&amp;').replace(/>/g, '&gt;').replace(/</g, '&lt;')
.replace(/\r/g, '').replace(/\n/g, '<br />');
}
;
CKEDITOR.plugins.add('plain', {
lang: '',
icons: 'plain',
hidpi: false,
init: function(editor) {
// Source mode isn't available in inline mode yet.
if (editor.elementMode === CKEDITOR.ELEMENT_MODE_INLINE)
return;
var plain = CKEDITOR.plugins.plain;
editor.addMode( 'plain', function( callback ) {
var contentsSpace = editor.ui.space('contents'),
textarea = contentsSpace.getDocument().createElement('textarea');
textarea.setStyles(
CKEDITOR.tools.extend( {
// IE7 has overflow the <textarea> from wrapping table cell.
width: CKEDITOR.env.ie7Compat ? '99%' : '100%',
height: '100%',
resize: 'none',
outline: 'none',
'text-align': 'left'
},
CKEDITOR.tools.cssVendorPrefix( 'tab-size', 4 ) ) );
// Make sure that source code is always displayed LTR,
// regardless of editor language (#10105).
textarea.setAttribute( 'dir', 'ltr' );
textarea.addClass( 'cke_plain' );
contentsSpace.append( textarea );
var editable = editor.editable(new plainEditable(editor, textarea));
// Fill the textarea with the current editor data.
editable.setData(editor.getData(1));
editor.__plain = editable;
// Having to make <textarea> fixed sized to conquer the following bugs:
// 1. The textarea height/width='100%' doesn't constraint to the 'td' in IE6/7.
// 2. Unexpected vertical-scrolling behavior happens whenever focus is moving out of editor
// if text content within it has overflowed. (#4762)
if (CKEDITOR.env.ie) {
editable.attachListener(editor, 'resize', onResize, editable);
editable.attachListener(CKEDITOR.document.getWindow(), 'resize', onResize, editable);
CKEDITOR.tools.setTimeout(onResize, 0, editable);
}
editor.fire('ariaWidget', this);
callback();
} );
editor.addCommand('plain', plain.commands.plain);
if (editor.ui.addButton) {
editor.ui.addButton('plain', {
label: '',
command: 'plain',
toolbar: 'spec,10'
});
}
editor.on('mode', function() {
editor.getCommand('plain').setState(editor.mode === 'plain' ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF);
});
function onResize() {
// Holder rectange size is stretched by textarea,
// so hide it just for a moment.
this.hide();
this.setStyle( 'height', this.getParent().$.clientHeight + 'px' );
this.setStyle( 'width', this.getParent().$.clientWidth + 'px' );
// When we have proper holder size, show textarea again.
this.show();
}
}
} );
var plainEditable = CKEDITOR.tools.createClass({
base: CKEDITOR.editable,
proto: {
setData: function(data) {
this.setValue(htmlToPlain(data));
this.editor.fire('dataReady');
},
getData: function() {
return plainToHtml(this.getValue());
},
getRawData: function() {
return this.getValue();
},
// Insertions are not supported in source editable.
insertHtml: function() {},
insertElement: function() {},
insertText: function() {},
// Read-only support for textarea.
setReadOnly: function( isReadOnly ) {
this[ ( isReadOnly ? 'set' : 'remove' ) + 'Attribute' ]( 'readOnly', 'readonly' );
},
detach: function() {
plainEditable.baseProto.detach.call( this );
this.clearCustomData();
this.remove();
}
}
} );
} )();
CKEDITOR.plugins.plain = {
commands: {
plain: {
modes: { wysiwyg: 1, plain: 1 },
editorFocus: false,
readOnly: 1,
exec: function(editor)
{
if (editor.mode === 'wysiwyg')
{
editor.fire('saveSnapshot');
}
editor.getCommand('plain').setState(CKEDITOR.TRISTATE_DISABLED);
editor.setMode(editor.mode === 'plain' ? 'wysiwyg' : 'plain');
},
canUndo: false
}
}
};

View file

@ -1,6 +0,0 @@
/*
Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.dialog.add("sourcedialog",function(a){var b=CKEDITOR.document.getWindow().getViewPaneSize(),d=Math.min(b.width-70,800),b=b.height/1.5,c;return{title:a.lang.sourcedialog.title,minWidth:100,minHeight:100,onShow:function(){this.setValueOf("main","data",c=a.getData())},onOk:function(){function b(e){var c=this;a.setData(e,function(){c.hide();var b=a.createRange();b.moveToElementEditStart(a.editable());b.select()})}return function(){var a=this.getValueOf("main","data").replace(/\r/g,"");if(a===
c)return!0;CKEDITOR.env.ie?CKEDITOR.tools.setTimeout(b,0,this,a):b.call(this,a);return!1}}(),contents:[{id:"main",label:a.lang.sourcedialog.title,elements:[{type:"textarea",id:"data",dir:"ltr",inputStyle:"cursor:auto;width:"+d+"px;height:"+b+"px;tab-size:4;text-align:left;","class":"cke_source"}]}]}});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Before After
Before After

View file

@ -637,7 +637,7 @@
border-radius: 8px;
}
/*! normalize.css 2012-03-11T12:53 UTC - http://github.com/necolas/normalize.css */
/* =============================================================================
@ -1142,7 +1142,7 @@ table {
border-collapse: collapse;
border-spacing: 0;
}
@charset "UTF-8";
@font-face {
@ -1474,7 +1474,7 @@ table {
.icon-mail:before {
content: "\e062";
}
/** initial setup **/
.nano {
/*
@ -1591,7 +1591,7 @@ table {
.nano > .pane2:hover > .slider2, .nano > .pane2.active > .slider2 {
background-color: rgba(0, 0, 0, 0.4);
}
/* Magnific Popup CSS */
.mfp-bg {
top: 0;
@ -1956,7 +1956,7 @@ img.mfp-img {
right: 0;
padding-top: 0; }
/* overlay at start */
.mfp-fade.mfp-bg {
@ -2002,7 +2002,7 @@ img.mfp-img {
-moz-transform: translateX(50px);
transform: translateX(50px);
}
.simple-pace {
-webkit-pointer-events: none;
pointer-events: none;
@ -2073,7 +2073,7 @@ img.mfp-img {
@keyframes simple-pace-stripe-animation {
0% { transform: none; transform: none; }
100% { transform: translate(-32px, 0); transform: translate(-32px, 0); }
}
}
.inputosaurus-container {
background-color:#fff;
border:1px solid #bcbec0;
@ -2141,7 +2141,7 @@ img.mfp-img {
box-shadow:none;
}
.inputosaurus-input-hidden { display:none; }
.flag-wrapper {
width: 24px;
height: 16px;
@ -2183,7 +2183,7 @@ img.mfp-img {
.flag.flag-pt-br {background-position: -192px -11px}
.flag.flag-cn, .flag.flag-zh-tw, .flag.flag-zh-cn, .flag.flag-zh-hk {background-position: -208px -22px}
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
.clearfix {
*zoom: 1;
@ -5680,6 +5680,91 @@ html.no-rgba .modal {
top: 0;
left: -5000px;
}
/*.cke_button__sourcedialog_label {
display: none !important;
}*/
.cke_plain {
background-color: #fff;
outline: none;
overflow: auto;
z-index: 1;
margin: 0;
border: 0;
padding: 10px;
padding-right: 0;
font-family: arial, sans-serif;
font-size: 12px;
line-height: 16px;
color: #333;
resize: none;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
-o-box-sizing: border-box;
box-sizing: border-box;
}
.cke_plain:focus,
.cke_source:focus {
border: 0;
}
.b-compose .cke_chrome {
border-right: 0;
border-left: 0;
border-bottom: 0;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.cke_wysiwyg_div {
padding: 10px !important;
font-family: arial, sans-serif;
font-size: 12px;
line-height: 16px;
color: #333;
}
.cke_wysiwyg_div ul {
padding-left: 40px;
}
.cke_wysiwyg_div ul li {
list-style-type: disc !important;
}
.cke_wysiwyg_div ol {
padding-left: 40px;
}
.cke_wysiwyg_div ol li {
list-style-type: decimal !important;
}
.cke_wysiwyg_div blockquote {
border: 0;
border-left: solid 2px #444;
margin: 5px 0 5px 5px;
padding-left: 5px;
}
.cke_wysiwyg_div blockquote * {
font-family: arial, sans-serif;
font-size: 12px;
line-height: 16px;
color: #333;
}
.cke_wysiwyg_div img {
vertical-align: bottom;
}
.cke_wysiwyg_div a {
color: blue;
text-decoration: underline;
}
.cke_wysiwyg_div a:visited {
color: #609;
}
.cke_wysiwyg_div a:active {
color: red;
}
.g-ui-user-select-none {
-webkit-user-select: none;
-webkit-touch-callout: none;
@ -7620,6 +7705,9 @@ html.rl-message-fullscreen .messageView .b-content .buttonFull {
overflow: auto;
padding: 0px;
}
.b-compose .textAreaParent {
overflow: hidden;
}
.b-compose .b-header-toolbar {
height: 40px;
background-color: #aaaaaa;
@ -7645,7 +7733,8 @@ html.rl-message-fullscreen .messageView .b-content .buttonFull {
}
.b-compose .b-header {
padding: 10px;
border-bottom: 1px solid #333;
/*border-bottom: 1px solid #333;*/
background-color: #eee;
color: #333;
}
@ -8128,7 +8217,7 @@ html.rl-message-fullscreen .messageView .b-content .buttonFull {
}
.b-settings-identities .e-signature-place {
display: inline-block;
width: 600px;
width: 700px;
height: 200px;
}
.b-settings-identities .list-table {
@ -8558,146 +8647,3 @@ html.rl-started-trigger.no-mobile #rl-content {
-moz-animation-delay: 0.6s;
animation-delay: 0.6s;
}
.html-editor-wrapper {
position: relative;
/*overflow: hidden;*/
}
.html-editor-wrapper-fullscreen {
border: 0;
padding: 0;
margin: 0;
overflow: hidden;
background: #fff;
height: 100%;
}
html.html-editor-wrapper-fullscreen .html-editor-wrapper {
position: absolute;
z-index: 1000;
top: 0;
left: 0;
right: 0;
bottom: 0;
height: auto !important;
width: auto !important;
}
.html-editor-wrapper-html,
.html-editor-wrapper-plain {
background-color: #fff;
outline: none;
overflow: auto;
z-index: 1;
margin: 0;
border: 0;
padding: 10px;
padding-right: 0;
font-family: arial, sans-serif;
font-size: 12px;
line-height: 16px;
color: #333;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.html-editor-wrapper-html:focus,
.html-editor-wrapper-plain:focus {
border: 0;
}
.html-editor-wrapper-html.styled,
.html-editor-wrapper-plain.styled {
border: 1px solid #cccccc;
-webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
-moz-transition: border linear 0.2s, box-shadow linear 0.2s;
-o-transition: border linear 0.2s, box-shadow linear 0.2s;
transition: border linear 0.2s, box-shadow linear 0.2s;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
html.html-editor-wrapper-fullscreen .html-editor-wrapper-html.styled,
html.html-editor-wrapper-fullscreen .html-editor-wrapper-plain.styled {
border: 0;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
}
.html-editor-wrapper-html.styled:focus,
.html-editor-wrapper-plain.styled:focus,
.html-editor-wrapper-html.styled.focused,
.html-editor-wrapper-plain.styled.focused {
border: 1px solid #999999;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.html-editor-wrapper-html {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
.html-editor-wrapper-plain {
position: relative;
width: 100%;
height: 100%;
resize: none;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
-o-box-sizing: border-box;
box-sizing: border-box;
}
.html-editor-wrapper-mode-button,
.html-editor-wrapper-fullscreen-button {
position: absolute;
bottom: 5px;
right: 25px;
z-index: 100;
color: #555;
text-decoration: underline;
font-family: Arial, Helvetica, Tahoma, Verdana, Sans-Serif;
font-size: 12px;
background-color: #fff;
/*background-color: rgba(255, 255, 255, 0.8);*/
padding: 1px 3px;
}
.html-editor-wrapper-mode-button:hover,
.html-editor-wrapper-fullscreen-button:hover {
text-decoration: underline;
color: #555;
}
.html-editor-wrapper-fullscreen-button {
bottom: 30px;
}
.html-editor-wrapper-html ul {
padding-left: 40px;
}
.html-editor-wrapper-html ul li {
list-style-type: disc !important;
}
.html-editor-wrapper-html ol {
padding-left: 40px;
}
.html-editor-wrapper-html ol li {
list-style-type: decimal !important;
}
.html-editor-wrapper-html blockquote {
border: 0;
border-left: solid 2px #444;
margin: 5px 0 5px 5px;
padding-left: 5px;
}
.html-editor-wrapper-html img {
vertical-align: bottom;
}
.cke_button__sourcedialog_label {
display: none !important;
}

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show more