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);
|