(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, context).parents('.form-textarea-wrapper:first'); $wrapper.addClass('resizable'); if (Drupal.behaviors.textarea) { Drupal.behaviors.textarea.attach(context); } } }; /** * Detach a single editor instance. * * The editor syncs its contents back to the original field before its instance * is removed. * * In here, 'this' is an instance of WysiwygInternalInstance. * See Drupal.wysiwyg.editor.instance.none for more details. * * @param context * A DOM element, supplied by Drupal.attachBehaviors(). * @param params * An object containing input format parameters. Only the editor instance in * params.field should be detached and saved, so its data 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 (trigger != 'serialize') { var $wrapper = $('#' + params.field, context).parents('.form-textarea-wrapper:first'); $wrapper.removeOnce('textarea').removeClass('.resizable-textarea').removeClass('resizable') .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);