diff --git a/modules/backend/assets/less/core/variables.less b/modules/backend/assets/less/core/variables.less index 63b648d53..6183ffbcd 100644 --- a/modules/backend/assets/less/core/variables.less +++ b/modules/backend/assets/less/core/variables.less @@ -120,7 +120,12 @@ @color-scroll-indicator: #bbbbbb; @color-scrollpanel-fix-button: #aaaaaa; -@color-form-editor-toolbar: #f6f6f6; +@color-richeditor-toolbar: #dddddd; +@color-richeditor-toolbar-btn-color: #404040; +@color-richeditor-toolbar-btn-bg: #404040; +@color-richeditor-toolbar-btn-bg-hover: #999999; +@color-richeditor-toolbar-btn-color-hover: #ffffff; + @color-form-field-border: #e0e0e0; @color-form-field-border-focus: #808c8d; @color-form-required-asterisk: #ff0000; diff --git a/modules/backend/formwidgets/richeditor/assets/js/richeditor.js b/modules/backend/formwidgets/richeditor/assets/js/richeditor.js index 94ae339c5..928e3f1bc 100644 --- a/modules/backend/formwidgets/richeditor/assets/js/richeditor.js +++ b/modules/backend/formwidgets/richeditor/assets/js/richeditor.js @@ -20,7 +20,6 @@ this.$el = $(element) this.$textarea = this.$el.find('>textarea:first') this.$form = this.$el.closest('form') - this.editor = null this.init(); } @@ -44,10 +43,15 @@ * Initialize Redactor editor */ var redactorOptions = { + observeImages: false, focusCallback: function() { self.$el.addClass('editor-focus') }, blurCallback: function() { self.$el.removeClass('editor-focus') }, initCallback: function() { self.build() }, - changeCallback: function() { self.onChange() } + changeCallback: function() { + self.sanityCheckContent(this.$editor) + // this.$editor.trigger('mutate') + self.$form.trigger('change') + } } if (this.options.stylesheet) { @@ -59,6 +63,8 @@ redactorOptions.fullpage = true } + // redactorOptions.plugins = ['cleanup', 'fullscreen', 'figure', 'table', 'quote'] + this.$textarea.redactor(redactorOptions) } @@ -86,9 +92,17 @@ }) } - RichEditor.prototype.onChange = function() { - this.$form.trigger('change') + RichEditor.prototype.sanityCheckContent = function($editor) { + // First and last elements should always be paragraphs + var safeElements = 'p, h1, h2, h3, h4, h5'; + if (!$editor.children(':last-child').is(safeElements)) { + $editor.append('