annotate sites/all/modules/wysiwyg/editors/js/openwysiwyg.js @ 13:134d4b2e75f6

updated quicktabs and google analytics modules
author danieleb <danielebarchiesi@me.com>
date Tue, 29 Oct 2013 13:48:59 +0000
parents ff03f76ab3fe
children
rev   line source
danielebarchiesi@0 1
danielebarchiesi@0 2 // Backup $ and reset it to jQuery.
danielebarchiesi@0 3 Drupal.wysiwyg._openwysiwyg = $;
danielebarchiesi@0 4 $ = jQuery;
danielebarchiesi@0 5
danielebarchiesi@0 6 // Wrap openWYSIWYG's methods to temporarily use its version of $.
danielebarchiesi@0 7 jQuery.each(WYSIWYG, function (key, value) {
danielebarchiesi@0 8 if (jQuery.isFunction(value)) {
danielebarchiesi@0 9 WYSIWYG[key] = function () {
danielebarchiesi@0 10 var old$ = $;
danielebarchiesi@0 11 $ = Drupal.wysiwyg._openwysiwyg;
danielebarchiesi@0 12 var result = value.apply(this, arguments);
danielebarchiesi@0 13 $ = old$;
danielebarchiesi@0 14 return result;
danielebarchiesi@0 15 };
danielebarchiesi@0 16 }
danielebarchiesi@0 17 });
danielebarchiesi@0 18
danielebarchiesi@0 19 // Override editor functions.
danielebarchiesi@0 20 WYSIWYG.getEditor = function (n) {
danielebarchiesi@0 21 return Drupal.wysiwyg._openwysiwyg("wysiwyg" + n);
danielebarchiesi@0 22 };
danielebarchiesi@0 23
danielebarchiesi@0 24 (function($) {
danielebarchiesi@0 25
danielebarchiesi@0 26 // Fix Drupal toolbar obscuring editor toolbar in fullscreen mode.
danielebarchiesi@0 27 var oldMaximize = WYSIWYG.maximize;
danielebarchiesi@0 28 WYSIWYG.maximize = function (n) {
danielebarchiesi@0 29 var $drupalToolbar = $('#toolbar', Drupal.overlayChild ? window.parent.document : document);
danielebarchiesi@0 30 oldMaximize.apply(this, arguments);
danielebarchiesi@0 31 if (this.maximized[n]) {
danielebarchiesi@0 32 $drupalToolbar.hide();
danielebarchiesi@0 33 }
danielebarchiesi@0 34 else {
danielebarchiesi@0 35 $drupalToolbar.show();
danielebarchiesi@0 36 }
danielebarchiesi@0 37 }
danielebarchiesi@0 38
danielebarchiesi@0 39 /**
danielebarchiesi@0 40 * Attach this editor to a target element.
danielebarchiesi@0 41 */
danielebarchiesi@0 42 Drupal.wysiwyg.editor.attach.openwysiwyg = function(context, params, settings) {
danielebarchiesi@0 43 // Initialize settings.
danielebarchiesi@0 44 settings.ImagesDir = settings.path + 'images/';
danielebarchiesi@0 45 settings.PopupsDir = settings.path + 'popups/';
danielebarchiesi@0 46 settings.CSSFile = settings.path + 'styles/wysiwyg.css';
danielebarchiesi@0 47 //settings.DropDowns = [];
danielebarchiesi@0 48 var config = new WYSIWYG.Settings();
danielebarchiesi@0 49 for (var setting in settings) {
danielebarchiesi@0 50 config[setting] = settings[setting];
danielebarchiesi@0 51 }
danielebarchiesi@0 52 // Attach editor.
danielebarchiesi@0 53 WYSIWYG.setSettings(params.field, config);
danielebarchiesi@0 54 WYSIWYG_Core.includeCSS(WYSIWYG.config[params.field].CSSFile);
danielebarchiesi@0 55 WYSIWYG._generate(params.field, config);
danielebarchiesi@0 56 };
danielebarchiesi@0 57
danielebarchiesi@0 58 /**
danielebarchiesi@0 59 * Detach a single or all editors.
danielebarchiesi@0 60 */
danielebarchiesi@0 61 Drupal.wysiwyg.editor.detach.openwysiwyg = function (context, params, trigger) {
danielebarchiesi@0 62 if (typeof params != 'undefined') {
danielebarchiesi@0 63 var instance = WYSIWYG.config[params.field];
danielebarchiesi@0 64 if (typeof instance != 'undefined') {
danielebarchiesi@0 65 WYSIWYG.updateTextArea(params.field);
danielebarchiesi@0 66 if (trigger != 'serialize') {
danielebarchiesi@0 67 jQuery('#wysiwyg_div_' + params.field).remove();
danielebarchiesi@0 68 delete instance;
danielebarchiesi@0 69 }
danielebarchiesi@0 70 }
danielebarchiesi@0 71 if (trigger != 'serialize') {
danielebarchiesi@0 72 jQuery('#' + params.field).show();
danielebarchiesi@0 73 }
danielebarchiesi@0 74 }
danielebarchiesi@0 75 else {
danielebarchiesi@0 76 jQuery.each(WYSIWYG.config, function(field) {
danielebarchiesi@0 77 WYSIWYG.updateTextArea(field);
danielebarchiesi@0 78 if (trigger != 'serialize') {
danielebarchiesi@0 79 jQuery('#wysiwyg_div_' + field).remove();
danielebarchiesi@0 80 delete this;
danielebarchiesi@0 81 jQuery('#' + field).show();
danielebarchiesi@0 82 }
danielebarchiesi@0 83 });
danielebarchiesi@0 84 }
danielebarchiesi@0 85 };
danielebarchiesi@0 86
danielebarchiesi@0 87 /**
danielebarchiesi@0 88 * Instance methods for openWYSIWYG.
danielebarchiesi@0 89 */
danielebarchiesi@0 90 Drupal.wysiwyg.editor.instance.openwysiwyg = {
danielebarchiesi@0 91 insert: function (content) {
danielebarchiesi@0 92 // If IE has dropped focus content will be inserted at the top of the page.
danielebarchiesi@0 93 $('#wysiwyg' + this.field).contents().find('body').focus();
danielebarchiesi@0 94 WYSIWYG.insertHTML(content, this.field);
danielebarchiesi@0 95 },
danielebarchiesi@0 96
danielebarchiesi@0 97 setContent: function (content) {
danielebarchiesi@0 98 // Based on openWYSIWYG's _generate() method.
danielebarchiesi@0 99 var doc = WYSIWYG.getEditorWindow(this.field).document;
danielebarchiesi@0 100 if (WYSIWYG.config[this.field].ReplaceLineBreaks) {
danielebarchiesi@0 101 content = content.replace(/\n\r|\n/ig, '<br />');
danielebarchiesi@0 102 }
danielebarchiesi@0 103 if (WYSIWYG.viewTextMode[this.field]) {
danielebarchiesi@0 104 var html = document.createTextNode(content);
danielebarchiesi@0 105 doc.body.innerHTML = '';
danielebarchiesi@0 106 doc.body.appendChild(html);
danielebarchiesi@0 107 }
danielebarchiesi@0 108 else {
danielebarchiesi@0 109 doc.open();
danielebarchiesi@0 110 doc.write(content);
danielebarchiesi@0 111 doc.close();
danielebarchiesi@0 112 }
danielebarchiesi@0 113 },
danielebarchiesi@0 114
danielebarchiesi@0 115 getContent: function () {
danielebarchiesi@0 116 // Based on openWYSIWYG's updateTextarea() method.
danielebarchiesi@0 117 var content = '';
danielebarchiesi@0 118 var doc = WYSIWYG.getEditorWindow(this.field).document;
danielebarchiesi@0 119 if (WYSIWYG.viewTextMode[this.field]) {
danielebarchiesi@0 120 if (WYSIWYG_Core.isMSIE) {
danielebarchiesi@0 121 content = doc.body.innerText;
danielebarchiesi@0 122 }
danielebarchiesi@0 123 else {
danielebarchiesi@0 124 var range = doc.body.ownerDocument.createRange();
danielebarchiesi@0 125 range.selectNodeContents(doc.body);
danielebarchiesi@0 126 content = range.toString();
danielebarchiesi@0 127 }
danielebarchiesi@0 128 }
danielebarchiesi@0 129 else {
danielebarchiesi@0 130 content = doc.body.innerHTML;
danielebarchiesi@0 131 }
danielebarchiesi@0 132 content = WYSIWYG.stripURLPath(this.field, content);
danielebarchiesi@0 133 content = WYSIWYG_Core.replaceRGBWithHexColor(content);
danielebarchiesi@0 134 if (WYSIWYG.config[this.field].ReplaceLineBreaks) {
danielebarchiesi@0 135 content = content.replace(/(\r\n)|(\n)/ig, '');
danielebarchiesi@0 136 }
danielebarchiesi@0 137 return content;
danielebarchiesi@0 138 }
danielebarchiesi@0 139 };
danielebarchiesi@0 140
danielebarchiesi@0 141 })(jQuery);