diff --git a/lib/editor/atto/plugins/html/yui/build/moodle-atto_html-button/moodle-atto_html-button-debug.js b/lib/editor/atto/plugins/html/yui/build/moodle-atto_html-button/moodle-atto_html-button-debug.js index 8e19cb21a61..5bb791494f3 100644 --- a/lib/editor/atto/plugins/html/yui/build/moodle-atto_html-button/moodle-atto_html-button-debug.js +++ b/lib/editor/atto/plugins/html/yui/build/moodle-atto_html-button/moodle-atto_html-button-debug.js @@ -39,6 +39,12 @@ Y.namespace('M.atto_html').Button = Y.Base.create('button', Y.M.editor_atto.Edit icon: 'e/source_code', callback: this._toggleHTML }); + + // Attach a submit listener to the form. + var form = this.get('host').textarea.ancestor('form'); + if (form) { + form.on('submit', this._submitClean, this); + } }, /** @@ -109,10 +115,25 @@ Y.namespace('M.atto_html').Button = Y.Base.create('button', Y.M.editor_atto.Edit this.editor.hide(); host.textarea.show(); - // Focus on the textarea. host.textarea.focus(); } + }, + + /** + * Run the textarea content through the HTML scrubber if it was form submitted in HTML mode. + * + * @method _submitClean + * @private + */ + _submitClean: function() { + // If we are in HTML mode, clean the text area. + if (this.get('isHTML')) { + var host = this.get('host'); + // Update the editor from text area then textarea from editor. This ensures all proper cleaning happens. + host.updateFromTextArea(); + host.updateOriginal(); + } } }, { ATTRS: { diff --git a/lib/editor/atto/plugins/html/yui/build/moodle-atto_html-button/moodle-atto_html-button-min.js b/lib/editor/atto/plugins/html/yui/build/moodle-atto_html-button/moodle-atto_html-button-min.js index 0b9d2ea5299..16fb19241c4 100644 --- a/lib/editor/atto/plugins/html/yui/build/moodle-atto_html-button/moodle-atto_html-button-min.js +++ b/lib/editor/atto/plugins/html/yui/build/moodle-atto_html-button/moodle-atto_html-button-min.js @@ -1 +1 @@ -YUI.add("moodle-atto_html-button",function(e,t){e.namespace("M.atto_html").Button=e.Base.create("button",e.M.editor_atto.EditorPlugin,[],{initializer:function(){this.addButton({icon:"e/source_code",callback:this._toggleHTML})},_toggleHTML:function(){this.set("isHTML",!this.get("isHTML")),this._showHTML()},_showHTML:function(){var e=this.get("host");this.get("isHTML")?(this.highlightButtons("html"),e.disablePlugins(),e.enablePlugins(this.name),e.updateOriginal(),e.textarea.setStyles({width:this.editor.getComputedStyle("width"),height:this.editor.getComputedStyle("height"),margin:this.editor.getComputedStyle("margin"),padding:this.editor.getComputedStyle("padding")}),this.editor.hide(),e.textarea.show(),e.textarea.focus()):(this.unHighlightButtons("html"),e.enablePlugins(),e.updateFromTextArea(),e.textarea.hide(),this.editor.show(),e.focus(),this.markUpdated())}},{ATTRS:{isHTML:{value:!1}}})},"@VERSION@",{requires:["moodle-editor_atto-plugin","event-valuechange"]}); +YUI.add("moodle-atto_html-button",function(e,t){e.namespace("M.atto_html").Button=e.Base.create("button",e.M.editor_atto.EditorPlugin,[],{initializer:function(){this.addButton({icon:"e/source_code",callback:this._toggleHTML});var e=this.get("host").textarea.ancestor("form");e&&e.on("submit",this._submitClean,this)},_toggleHTML:function(){this.set("isHTML",!this.get("isHTML")),this._showHTML()},_showHTML:function(){var e=this.get("host");this.get("isHTML")?(this.highlightButtons("html"),e.disablePlugins(),e.enablePlugins(this.name),e.updateOriginal(),e.textarea.setStyles({width:this.editor.getComputedStyle("width"),height:this.editor.getComputedStyle("height"),margin:this.editor.getComputedStyle("margin"),padding:this.editor.getComputedStyle("padding")}),this.editor.hide(),e.textarea.show(),e.textarea.focus()):(this.unHighlightButtons("html"),e.enablePlugins(),e.updateFromTextArea(),e.textarea.hide(),this.editor.show(),e.focus(),this.markUpdated())},_submitClean:function(){if(this.get("isHTML")){var e=this.get("host");e.updateFromTextArea(),e.updateOriginal()}}},{ATTRS:{isHTML:{value:!1}}})},"@VERSION@",{requires:["moodle-editor_atto-plugin","event-valuechange"]}); diff --git a/lib/editor/atto/plugins/html/yui/build/moodle-atto_html-button/moodle-atto_html-button.js b/lib/editor/atto/plugins/html/yui/build/moodle-atto_html-button/moodle-atto_html-button.js index 8e19cb21a61..5bb791494f3 100644 --- a/lib/editor/atto/plugins/html/yui/build/moodle-atto_html-button/moodle-atto_html-button.js +++ b/lib/editor/atto/plugins/html/yui/build/moodle-atto_html-button/moodle-atto_html-button.js @@ -39,6 +39,12 @@ Y.namespace('M.atto_html').Button = Y.Base.create('button', Y.M.editor_atto.Edit icon: 'e/source_code', callback: this._toggleHTML }); + + // Attach a submit listener to the form. + var form = this.get('host').textarea.ancestor('form'); + if (form) { + form.on('submit', this._submitClean, this); + } }, /** @@ -109,10 +115,25 @@ Y.namespace('M.atto_html').Button = Y.Base.create('button', Y.M.editor_atto.Edit this.editor.hide(); host.textarea.show(); - // Focus on the textarea. host.textarea.focus(); } + }, + + /** + * Run the textarea content through the HTML scrubber if it was form submitted in HTML mode. + * + * @method _submitClean + * @private + */ + _submitClean: function() { + // If we are in HTML mode, clean the text area. + if (this.get('isHTML')) { + var host = this.get('host'); + // Update the editor from text area then textarea from editor. This ensures all proper cleaning happens. + host.updateFromTextArea(); + host.updateOriginal(); + } } }, { ATTRS: { diff --git a/lib/editor/atto/plugins/html/yui/src/button/js/button.js b/lib/editor/atto/plugins/html/yui/src/button/js/button.js index 9c65d866ad0..b8639998195 100644 --- a/lib/editor/atto/plugins/html/yui/src/button/js/button.js +++ b/lib/editor/atto/plugins/html/yui/src/button/js/button.js @@ -37,6 +37,12 @@ Y.namespace('M.atto_html').Button = Y.Base.create('button', Y.M.editor_atto.Edit icon: 'e/source_code', callback: this._toggleHTML }); + + // Attach a submit listener to the form. + var form = this.get('host').textarea.ancestor('form'); + if (form) { + form.on('submit', this._submitClean, this); + } }, /** @@ -107,10 +113,25 @@ Y.namespace('M.atto_html').Button = Y.Base.create('button', Y.M.editor_atto.Edit this.editor.hide(); host.textarea.show(); - // Focus on the textarea. host.textarea.focus(); } + }, + + /** + * Run the textarea content through the HTML scrubber if it was form submitted in HTML mode. + * + * @method _submitClean + * @private + */ + _submitClean: function() { + // If we are in HTML mode, clean the text area. + if (this.get('isHTML')) { + var host = this.get('host'); + // Update the editor from text area then textarea from editor. This ensures all proper cleaning happens. + host.updateFromTextArea(); + host.updateOriginal(); + } } }, { ATTRS: {