Mercurial > hg > rr-repo
diff sites/all/modules/wysiwyg/editors/js/none.js @ 0:ff03f76ab3fe
initial version
author | danieleb <danielebarchiesi@me.com> |
---|---|
date | Wed, 21 Aug 2013 18:51:11 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sites/all/modules/wysiwyg/editors/js/none.js Wed Aug 21 18:51:11 2013 +0100 @@ -0,0 +1,91 @@ +(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);