(function($) { /** * Attach this editor to a target element. * * @param context * A DOM element, supplied by Drupal.attachBehaviors(). * @param params * An object containing input format parameters. Default parameters are: * - editor: The internal editor name. * - theme: The name/key of the editor theme/profile to use. * - field: The CSS id of the target element. * @param settings * An object containing editor settings for all enabled editor themes. */ Drupal.wysiwyg.editor.attach.none = function(context, params, settings) { if (params.resizable) { var $wrapper = $('#' + params.field).parents('.form-textarea-wrapper:first'); $wrapper.addClass('resizable'); if (Drupal.behaviors.textarea) { Drupal.behaviors.textarea.attach(); } } }; /** * Detach a single or all editors. * * The editor syncs its contents back to the original field before its instance * is removed. * * @param context * A DOM element, supplied by Drupal.attachBehaviors(). * @param params * (optional) An object containing input format parameters. If defined, * only the editor instance in params.field should be detached. Otherwise, * all editors should be detached and saved, so they can be submitted in * AJAX/AHAH applications. * @param trigger * A string describing why the editor is being detached. * Possible triggers are: * - unload: (default) Another or no editor is about to take its place. * - move: Currently expected to produce the same result as unload. * - serialize: The form is about to be serialized before an AJAX request or * a normal form submission. If possible, perform a quick detach and leave * the editor's GUI elements in place to avoid flashes or scrolling issues. * @see Drupal.detachBehaviors */ Drupal.wysiwyg.editor.detach.none = function (context, params, trigger) { if (typeof params != 'undefined' && (trigger != 'serialize')) { var $wrapper = $('#' + params.field).parents('.form-textarea-wrapper:first'); $wrapper.removeOnce('textarea').removeClass('.resizable-textarea') .find('.grippie').remove(); } }; /** * Instance methods for plain text areas. */ Drupal.wysiwyg.editor.instance.none = { insert: function(content) { var editor = document.getElementById(this.field); // IE support. if (document.selection) { editor.focus(); var sel = document.selection.createRange(); sel.text = content; } // Mozilla/Firefox/Netscape 7+ support. else if (editor.selectionStart || editor.selectionStart == '0') { var startPos = editor.selectionStart; var endPos = editor.selectionEnd; editor.value = editor.value.substring(0, startPos) + content + editor.value.substring(endPos, editor.value.length); } // Fallback, just add to the end of the content. else { editor.value += content; } }, setContent: function (content) { $('#' + this.field).val(content); }, getContent: function () { return $('#' + this.field).val(); } }; })(jQuery);