tinymce-rails 3.5.4.1 → 3.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/tinymce/rails/version.rb +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/advimage/js/image.js +5 -3
- data/vendor/assets/javascripts/tinymce/plugins/autolink/editor_plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/autolink/editor_plugin_src.js +184 -181
- data/vendor/assets/javascripts/tinymce/plugins/autoresize/editor_plugin_src.js +119 -119
- data/vendor/assets/javascripts/tinymce/plugins/emotions/langs/en_dlg.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/example_dependency/editor_plugin_src.js +50 -50
- data/vendor/assets/javascripts/tinymce/plugins/fullscreen/editor_plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/fullscreen/editor_plugin_src.js +4 -4
- data/vendor/assets/javascripts/tinymce/plugins/lists/editor_plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/lists/editor_plugin_src.js +956 -952
- data/vendor/assets/javascripts/tinymce/plugins/media/js/media.js +34 -1
- data/vendor/assets/javascripts/tinymce/plugins/media/langs/en_dlg.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/noneditable/editor_plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/noneditable/editor_plugin_src.js +1 -4
- data/vendor/assets/javascripts/tinymce/plugins/style/langs/en_dlg.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/style/props.htm +845 -845
- data/vendor/assets/javascripts/tinymce/plugins/style/readme.txt +19 -19
- data/vendor/assets/javascripts/tinymce/plugins/tabfocus/editor_plugin_src.js +122 -122
- data/vendor/assets/javascripts/tinymce/plugins/table/editor_plugin_src.js +1449 -1449
- data/vendor/assets/javascripts/tinymce/themes/advanced/editor_template.js +1 -1
- data/vendor/assets/javascripts/tinymce/themes/advanced/editor_template_src.js +2 -1
- data/vendor/assets/javascripts/tinymce/themes/advanced/js/color_picker.js +345 -345
- data/vendor/assets/javascripts/tinymce/themes/advanced/langs/en_dlg.js +1 -1
- data/vendor/assets/javascripts/tinymce/tiny_mce.js +1 -1
- data/vendor/assets/javascripts/tinymce/tiny_mce_jquery.js +1 -1
- data/vendor/assets/javascripts/tinymce/tiny_mce_jquery_src.js +277 -75
- data/vendor/assets/javascripts/tinymce/tiny_mce_src.js +277 -75
- metadata +5 -7
@@ -395,12 +395,14 @@ var ImageDialog = {
|
|
395
395
|
if (v == '0')
|
396
396
|
img.style.border = isIE ? '0' : '0 none none';
|
397
397
|
else {
|
398
|
-
|
399
|
-
|
398
|
+
var isOldIE = tinymce.isIE && (!document.documentMode || document.documentMode < 9);
|
399
|
+
|
400
|
+
if (b.length == 3 && b[isOldIE ? 2 : 1])
|
401
|
+
bStyle = b[isOldIE ? 2 : 1];
|
400
402
|
else if (!bStyle || bStyle == 'none')
|
401
403
|
bStyle = 'solid';
|
402
404
|
if (b.length == 3 && b[isIE ? 0 : 2])
|
403
|
-
bColor = b[
|
405
|
+
bColor = b[isOldIE ? 0 : 2];
|
404
406
|
else if (!bColor || bColor == 'none')
|
405
407
|
bColor = 'black';
|
406
408
|
img.style.border = v + 'px ' + bStyle + ' ' + bColor;
|
@@ -1 +1 @@
|
|
1
|
-
(function(){tinymce.create("tinymce.plugins.AutolinkPlugin",{init:function(a,b){var c=this;a.onKeyDown.addToTop(function(d,f){if(f.keyCode==13){return c.handleEnter(d)}});if(tinyMCE.isIE){return}a.onKeyPress.add(function(d,f){if(f.which==41){return c.handleEclipse(d)}});a.onKeyUp.add(function(d,f){if(f.keyCode==32){return c.handleSpacebar(d)}})},handleEclipse:function(a){this.parseCurrentLine(a,-1,"(",true)},handleSpacebar:function(a){this.parseCurrentLine(a,0,"",true)},handleEnter:function(a){this.parseCurrentLine(a,-1,"",false)},parseCurrentLine:function(i,d,b,g){var a,f,c,n,k,m,h,e,j;a=i.selection.getRng(true).cloneRange();if(a.startOffset<5){e=a.endContainer.previousSibling;if(e==null){if(a.endContainer.firstChild==null||a.endContainer.firstChild.nextSibling==null){return}e=a.endContainer.firstChild.nextSibling}j=e.length;a.setStart(e,j);a.setEnd(e,j);if(a.endOffset<5){return}f=a.endOffset;n=e}else{n=a.endContainer;if(n.nodeType!=3&&n.firstChild){while(n.nodeType!=3&&n.firstChild){n=n.firstChild}a.setStart(n,0);a.setEnd(n,n.nodeValue.length)}if(a.endOffset==1){f=2}else{f=a.endOffset-1-d}}c=f;do{a.setStart(n,f-2);a.setEnd(n,f-1);f-=1}while(a.toString()!=" "&&a.toString()!=""&&a.toString().charCodeAt(0)!=160&&(f-2)>=0&&a.toString()!=b);if(a.toString()==b||a.toString().charCodeAt(0)==160){a.setStart(n,f);a.setEnd(n,c);f+=1}else{if(a.startOffset==0){a.setStart(n,0);a.setEnd(n,c)}else{a.setStart(n,f);a.setEnd(n,c)}}var m=a.toString();if(m.charAt(m.length-1)=="."){a.setEnd(n,c-1)}m=a.toString();h=m.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+-]+@)(.+)$/i);if(h){if(h[1]=="www."){h[1]="http://www."}else{if(/@$/.test(h[1])&&!/^mailto:/.test(h[1])){h[1]="mailto:"+h[1]}}k=i.selection.getBookmark();i.selection.setRng(a);tinyMCE.execCommand("createlink",false,h[1]+h[2]);i.selection.moveToBookmark(k);i.nodeChanged();if(tinyMCE.isWebKit){i.selection.collapse(false);var l=Math.min(n.length,c+1);a.setStart(n,l);a.setEnd(n,l);i.selection.setRng(a)}}},getInfo:function(){return{longname:"Autolink",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autolink",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autolink",tinymce.plugins.AutolinkPlugin)})();
|
1
|
+
(function(){tinymce.create("tinymce.plugins.AutolinkPlugin",{init:function(a,b){var c=this;a.onKeyDown.addToTop(function(d,f){if(f.keyCode==13){return c.handleEnter(d)}});if(tinyMCE.isIE){return}a.onKeyPress.add(function(d,f){if(f.which==41){return c.handleEclipse(d)}});a.onKeyUp.add(function(d,f){if(f.keyCode==32){return c.handleSpacebar(d)}})},handleEclipse:function(a){this.parseCurrentLine(a,-1,"(",true)},handleSpacebar:function(a){this.parseCurrentLine(a,0,"",true)},handleEnter:function(a){this.parseCurrentLine(a,-1,"",false)},parseCurrentLine:function(i,d,b,g){var a,f,c,n,k,m,h,e,j;a=i.selection.getRng(true).cloneRange();if(a.startOffset<5){e=a.endContainer.previousSibling;if(e==null){if(a.endContainer.firstChild==null||a.endContainer.firstChild.nextSibling==null){return}e=a.endContainer.firstChild.nextSibling}j=e.length;a.setStart(e,j);a.setEnd(e,j);if(a.endOffset<5){return}f=a.endOffset;n=e}else{n=a.endContainer;if(n.nodeType!=3&&n.firstChild){while(n.nodeType!=3&&n.firstChild){n=n.firstChild}if(n.nodeType==3){a.setStart(n,0);a.setEnd(n,n.nodeValue.length)}}if(a.endOffset==1){f=2}else{f=a.endOffset-1-d}}c=f;do{a.setStart(n,f-2);a.setEnd(n,f-1);f-=1}while(a.toString()!=" "&&a.toString()!=""&&a.toString().charCodeAt(0)!=160&&(f-2)>=0&&a.toString()!=b);if(a.toString()==b||a.toString().charCodeAt(0)==160){a.setStart(n,f);a.setEnd(n,c);f+=1}else{if(a.startOffset==0){a.setStart(n,0);a.setEnd(n,c)}else{a.setStart(n,f);a.setEnd(n,c)}}var m=a.toString();if(m.charAt(m.length-1)=="."){a.setEnd(n,c-1)}m=a.toString();h=m.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+-]+@)(.+)$/i);if(h){if(h[1]=="www."){h[1]="http://www."}else{if(/@$/.test(h[1])&&!/^mailto:/.test(h[1])){h[1]="mailto:"+h[1]}}k=i.selection.getBookmark();i.selection.setRng(a);tinyMCE.execCommand("createlink",false,h[1]+h[2]);i.selection.moveToBookmark(k);i.nodeChanged();if(tinyMCE.isWebKit){i.selection.collapse(false);var l=Math.min(n.length,c+1);a.setStart(n,l);a.setEnd(n,l);i.selection.setRng(a)}}},getInfo:function(){return{longname:"Autolink",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autolink",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autolink",tinymce.plugins.AutolinkPlugin)})();
|
@@ -1,181 +1,184 @@
|
|
1
|
-
/**
|
2
|
-
* editor_plugin_src.js
|
3
|
-
*
|
4
|
-
* Copyright 2011, Moxiecode Systems AB
|
5
|
-
* Released under LGPL License.
|
6
|
-
*
|
7
|
-
* License: http://tinymce.moxiecode.com/license
|
8
|
-
* Contributing: http://tinymce.moxiecode.com/contributing
|
9
|
-
*/
|
10
|
-
|
11
|
-
(function() {
|
12
|
-
tinymce.create('tinymce.plugins.AutolinkPlugin', {
|
13
|
-
/**
|
14
|
-
* Initializes the plugin, this will be executed after the plugin has been created.
|
15
|
-
* This call is done before the editor instance has finished it's initialization so use the onInit event
|
16
|
-
* of the editor instance to intercept that event.
|
17
|
-
*
|
18
|
-
* @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
|
19
|
-
* @param {string} url Absolute URL to where the plugin is located.
|
20
|
-
*/
|
21
|
-
|
22
|
-
init : function(ed, url) {
|
23
|
-
var t = this;
|
24
|
-
|
25
|
-
// Add a key down handler
|
26
|
-
ed.onKeyDown.addToTop(function(ed, e) {
|
27
|
-
if (e.keyCode == 13)
|
28
|
-
return t.handleEnter(ed);
|
29
|
-
});
|
30
|
-
|
31
|
-
// Internet Explorer has built-in automatic linking for most cases
|
32
|
-
if (tinyMCE.isIE)
|
33
|
-
return;
|
34
|
-
|
35
|
-
ed.onKeyPress.add(function(ed, e) {
|
36
|
-
if (e.which == 41)
|
37
|
-
return t.handleEclipse(ed);
|
38
|
-
});
|
39
|
-
|
40
|
-
// Add a key up handler
|
41
|
-
ed.onKeyUp.add(function(ed, e) {
|
42
|
-
if (e.keyCode == 32)
|
43
|
-
return t.handleSpacebar(ed);
|
44
|
-
});
|
45
|
-
},
|
46
|
-
|
47
|
-
handleEclipse : function(ed) {
|
48
|
-
this.parseCurrentLine(ed, -1, '(', true);
|
49
|
-
},
|
50
|
-
|
51
|
-
handleSpacebar : function(ed) {
|
52
|
-
this.parseCurrentLine(ed, 0, '', true);
|
53
|
-
},
|
54
|
-
|
55
|
-
handleEnter : function(ed) {
|
56
|
-
this.parseCurrentLine(ed, -1, '', false);
|
57
|
-
},
|
58
|
-
|
59
|
-
parseCurrentLine : function(ed, end_offset, delimiter, goback) {
|
60
|
-
var r, end, start, endContainer, bookmark, text, matches, prev, len;
|
61
|
-
|
62
|
-
// We need at least five characters to form a URL,
|
63
|
-
// hence, at minimum, five characters from the beginning of the line.
|
64
|
-
r = ed.selection.getRng(true).cloneRange();
|
65
|
-
if (r.startOffset < 5) {
|
66
|
-
// During testing, the caret is placed inbetween two text nodes.
|
67
|
-
// The previous text node contains the URL.
|
68
|
-
prev = r.endContainer.previousSibling;
|
69
|
-
if (prev == null) {
|
70
|
-
if (r.endContainer.firstChild == null || r.endContainer.firstChild.nextSibling == null)
|
71
|
-
return;
|
72
|
-
|
73
|
-
prev = r.endContainer.firstChild.nextSibling;
|
74
|
-
}
|
75
|
-
len = prev.length;
|
76
|
-
r.setStart(prev, len);
|
77
|
-
r.setEnd(prev, len);
|
78
|
-
|
79
|
-
if (r.endOffset < 5)
|
80
|
-
return;
|
81
|
-
|
82
|
-
end = r.endOffset;
|
83
|
-
endContainer = prev;
|
84
|
-
} else {
|
85
|
-
endContainer = r.endContainer;
|
86
|
-
|
87
|
-
// Get a text node
|
88
|
-
if (endContainer.nodeType != 3 && endContainer.firstChild) {
|
89
|
-
while (endContainer.nodeType != 3 && endContainer.firstChild)
|
90
|
-
endContainer = endContainer.firstChild;
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
r.
|
120
|
-
|
121
|
-
}
|
122
|
-
|
123
|
-
r.
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
ed.
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
*
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
1
|
+
/**
|
2
|
+
* editor_plugin_src.js
|
3
|
+
*
|
4
|
+
* Copyright 2011, Moxiecode Systems AB
|
5
|
+
* Released under LGPL License.
|
6
|
+
*
|
7
|
+
* License: http://tinymce.moxiecode.com/license
|
8
|
+
* Contributing: http://tinymce.moxiecode.com/contributing
|
9
|
+
*/
|
10
|
+
|
11
|
+
(function() {
|
12
|
+
tinymce.create('tinymce.plugins.AutolinkPlugin', {
|
13
|
+
/**
|
14
|
+
* Initializes the plugin, this will be executed after the plugin has been created.
|
15
|
+
* This call is done before the editor instance has finished it's initialization so use the onInit event
|
16
|
+
* of the editor instance to intercept that event.
|
17
|
+
*
|
18
|
+
* @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
|
19
|
+
* @param {string} url Absolute URL to where the plugin is located.
|
20
|
+
*/
|
21
|
+
|
22
|
+
init : function(ed, url) {
|
23
|
+
var t = this;
|
24
|
+
|
25
|
+
// Add a key down handler
|
26
|
+
ed.onKeyDown.addToTop(function(ed, e) {
|
27
|
+
if (e.keyCode == 13)
|
28
|
+
return t.handleEnter(ed);
|
29
|
+
});
|
30
|
+
|
31
|
+
// Internet Explorer has built-in automatic linking for most cases
|
32
|
+
if (tinyMCE.isIE)
|
33
|
+
return;
|
34
|
+
|
35
|
+
ed.onKeyPress.add(function(ed, e) {
|
36
|
+
if (e.which == 41)
|
37
|
+
return t.handleEclipse(ed);
|
38
|
+
});
|
39
|
+
|
40
|
+
// Add a key up handler
|
41
|
+
ed.onKeyUp.add(function(ed, e) {
|
42
|
+
if (e.keyCode == 32)
|
43
|
+
return t.handleSpacebar(ed);
|
44
|
+
});
|
45
|
+
},
|
46
|
+
|
47
|
+
handleEclipse : function(ed) {
|
48
|
+
this.parseCurrentLine(ed, -1, '(', true);
|
49
|
+
},
|
50
|
+
|
51
|
+
handleSpacebar : function(ed) {
|
52
|
+
this.parseCurrentLine(ed, 0, '', true);
|
53
|
+
},
|
54
|
+
|
55
|
+
handleEnter : function(ed) {
|
56
|
+
this.parseCurrentLine(ed, -1, '', false);
|
57
|
+
},
|
58
|
+
|
59
|
+
parseCurrentLine : function(ed, end_offset, delimiter, goback) {
|
60
|
+
var r, end, start, endContainer, bookmark, text, matches, prev, len;
|
61
|
+
|
62
|
+
// We need at least five characters to form a URL,
|
63
|
+
// hence, at minimum, five characters from the beginning of the line.
|
64
|
+
r = ed.selection.getRng(true).cloneRange();
|
65
|
+
if (r.startOffset < 5) {
|
66
|
+
// During testing, the caret is placed inbetween two text nodes.
|
67
|
+
// The previous text node contains the URL.
|
68
|
+
prev = r.endContainer.previousSibling;
|
69
|
+
if (prev == null) {
|
70
|
+
if (r.endContainer.firstChild == null || r.endContainer.firstChild.nextSibling == null)
|
71
|
+
return;
|
72
|
+
|
73
|
+
prev = r.endContainer.firstChild.nextSibling;
|
74
|
+
}
|
75
|
+
len = prev.length;
|
76
|
+
r.setStart(prev, len);
|
77
|
+
r.setEnd(prev, len);
|
78
|
+
|
79
|
+
if (r.endOffset < 5)
|
80
|
+
return;
|
81
|
+
|
82
|
+
end = r.endOffset;
|
83
|
+
endContainer = prev;
|
84
|
+
} else {
|
85
|
+
endContainer = r.endContainer;
|
86
|
+
|
87
|
+
// Get a text node
|
88
|
+
if (endContainer.nodeType != 3 && endContainer.firstChild) {
|
89
|
+
while (endContainer.nodeType != 3 && endContainer.firstChild)
|
90
|
+
endContainer = endContainer.firstChild;
|
91
|
+
|
92
|
+
// Move range to text node
|
93
|
+
if (endContainer.nodeType == 3) {
|
94
|
+
r.setStart(endContainer, 0);
|
95
|
+
r.setEnd(endContainer, endContainer.nodeValue.length);
|
96
|
+
}
|
97
|
+
}
|
98
|
+
|
99
|
+
if (r.endOffset == 1)
|
100
|
+
end = 2;
|
101
|
+
else
|
102
|
+
end = r.endOffset - 1 - end_offset;
|
103
|
+
}
|
104
|
+
|
105
|
+
start = end;
|
106
|
+
|
107
|
+
do
|
108
|
+
{
|
109
|
+
// Move the selection one character backwards.
|
110
|
+
r.setStart(endContainer, end - 2);
|
111
|
+
r.setEnd(endContainer, end - 1);
|
112
|
+
end -= 1;
|
113
|
+
|
114
|
+
// Loop until one of the following is found: a blank space, , delimeter, (end-2) >= 0
|
115
|
+
} while (r.toString() != ' ' && r.toString() != '' && r.toString().charCodeAt(0) != 160 && (end -2) >= 0 && r.toString() != delimiter);
|
116
|
+
|
117
|
+
if (r.toString() == delimiter || r.toString().charCodeAt(0) == 160) {
|
118
|
+
r.setStart(endContainer, end);
|
119
|
+
r.setEnd(endContainer, start);
|
120
|
+
end += 1;
|
121
|
+
} else if (r.startOffset == 0) {
|
122
|
+
r.setStart(endContainer, 0);
|
123
|
+
r.setEnd(endContainer, start);
|
124
|
+
}
|
125
|
+
else {
|
126
|
+
r.setStart(endContainer, end);
|
127
|
+
r.setEnd(endContainer, start);
|
128
|
+
}
|
129
|
+
|
130
|
+
// Exclude last . from word like "www.site.com."
|
131
|
+
var text = r.toString();
|
132
|
+
if (text.charAt(text.length - 1) == '.') {
|
133
|
+
r.setEnd(endContainer, start - 1);
|
134
|
+
}
|
135
|
+
|
136
|
+
text = r.toString();
|
137
|
+
matches = text.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+-]+@)(.+)$/i);
|
138
|
+
|
139
|
+
if (matches) {
|
140
|
+
if (matches[1] == 'www.') {
|
141
|
+
matches[1] = 'http://www.';
|
142
|
+
} else if (/@$/.test(matches[1]) && !/^mailto:/.test(matches[1])) {
|
143
|
+
matches[1] = 'mailto:' + matches[1];
|
144
|
+
}
|
145
|
+
|
146
|
+
bookmark = ed.selection.getBookmark();
|
147
|
+
|
148
|
+
ed.selection.setRng(r);
|
149
|
+
tinyMCE.execCommand('createlink',false, matches[1] + matches[2]);
|
150
|
+
ed.selection.moveToBookmark(bookmark);
|
151
|
+
ed.nodeChanged();
|
152
|
+
|
153
|
+
// TODO: Determine if this is still needed.
|
154
|
+
if (tinyMCE.isWebKit) {
|
155
|
+
// move the caret to its original position
|
156
|
+
ed.selection.collapse(false);
|
157
|
+
var max = Math.min(endContainer.length, start + 1);
|
158
|
+
r.setStart(endContainer, max);
|
159
|
+
r.setEnd(endContainer, max);
|
160
|
+
ed.selection.setRng(r);
|
161
|
+
}
|
162
|
+
}
|
163
|
+
},
|
164
|
+
|
165
|
+
/**
|
166
|
+
* Returns information about the plugin as a name/value array.
|
167
|
+
* The current keys are longname, author, authorurl, infourl and version.
|
168
|
+
*
|
169
|
+
* @return {Object} Name/value array containing information about the plugin.
|
170
|
+
*/
|
171
|
+
getInfo : function() {
|
172
|
+
return {
|
173
|
+
longname : 'Autolink',
|
174
|
+
author : 'Moxiecode Systems AB',
|
175
|
+
authorurl : 'http://tinymce.moxiecode.com',
|
176
|
+
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autolink',
|
177
|
+
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
178
|
+
};
|
179
|
+
}
|
180
|
+
});
|
181
|
+
|
182
|
+
// Register plugin
|
183
|
+
tinymce.PluginManager.add('autolink', tinymce.plugins.AutolinkPlugin);
|
184
|
+
})();
|
@@ -1,119 +1,119 @@
|
|
1
|
-
/**
|
2
|
-
* editor_plugin_src.js
|
3
|
-
*
|
4
|
-
* Copyright 2009, Moxiecode Systems AB
|
5
|
-
* Released under LGPL License.
|
6
|
-
*
|
7
|
-
* License: http://tinymce.moxiecode.com/license
|
8
|
-
* Contributing: http://tinymce.moxiecode.com/contributing
|
9
|
-
*/
|
10
|
-
|
11
|
-
(function() {
|
12
|
-
/**
|
13
|
-
* Auto Resize
|
14
|
-
*
|
15
|
-
* This plugin automatically resizes the content area to fit its content height.
|
16
|
-
* It will retain a minimum height, which is the height of the content area when
|
17
|
-
* it's initialized.
|
18
|
-
*/
|
19
|
-
tinymce.create('tinymce.plugins.AutoResizePlugin', {
|
20
|
-
/**
|
21
|
-
* Initializes the plugin, this will be executed after the plugin has been created.
|
22
|
-
* This call is done before the editor instance has finished it's initialization so use the onInit event
|
23
|
-
* of the editor instance to intercept that event.
|
24
|
-
*
|
25
|
-
* @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
|
26
|
-
* @param {string} url Absolute URL to where the plugin is located.
|
27
|
-
*/
|
28
|
-
init : function(ed, url) {
|
29
|
-
var t = this, oldSize = 0;
|
30
|
-
|
31
|
-
if (ed.getParam('fullscreen_is_enabled'))
|
32
|
-
return;
|
33
|
-
|
34
|
-
/**
|
35
|
-
* This method gets executed each time the editor needs to resize.
|
36
|
-
*/
|
37
|
-
function resize() {
|
38
|
-
var deltaSize, d = ed.getDoc(), body = d.body, de = d.documentElement, DOM = tinymce.DOM, resizeHeight = t.autoresize_min_height, myHeight;
|
39
|
-
|
40
|
-
// Get height differently depending on the browser used
|
41
|
-
myHeight = tinymce.isIE ? body.scrollHeight : (tinymce.isWebKit && body.clientHeight == 0 ? 0 : body.offsetHeight);
|
42
|
-
|
43
|
-
// Don't make it smaller than the minimum height
|
44
|
-
if (myHeight > t.autoresize_min_height)
|
45
|
-
resizeHeight = myHeight;
|
46
|
-
|
47
|
-
// If a maximum height has been defined don't exceed this height
|
48
|
-
if (t.autoresize_max_height && myHeight > t.autoresize_max_height) {
|
49
|
-
resizeHeight = t.autoresize_max_height;
|
50
|
-
body.style.overflowY = "auto";
|
51
|
-
de.style.overflowY = "auto"; // Old IE
|
52
|
-
} else {
|
53
|
-
body.style.overflowY = "hidden";
|
54
|
-
de.style.overflowY = "hidden"; // Old IE
|
55
|
-
body.scrollTop = 0;
|
56
|
-
}
|
57
|
-
|
58
|
-
// Resize content element
|
59
|
-
if (resizeHeight !== oldSize) {
|
60
|
-
deltaSize = resizeHeight - oldSize;
|
61
|
-
DOM.setStyle(DOM.get(ed.id + '_ifr'), 'height', resizeHeight + 'px');
|
62
|
-
oldSize = resizeHeight;
|
63
|
-
|
64
|
-
// WebKit doesn't decrease the size of the body element until the iframe gets resized
|
65
|
-
// So we need to continue to resize the iframe down until the size gets fixed
|
66
|
-
if (tinymce.isWebKit && deltaSize < 0)
|
67
|
-
resize();
|
68
|
-
}
|
69
|
-
};
|
70
|
-
|
71
|
-
t.editor = ed;
|
72
|
-
|
73
|
-
// Define minimum height
|
74
|
-
t.autoresize_min_height = parseInt(ed.getParam('autoresize_min_height', ed.getElement().offsetHeight));
|
75
|
-
|
76
|
-
// Define maximum height
|
77
|
-
t.autoresize_max_height = parseInt(ed.getParam('autoresize_max_height', 0));
|
78
|
-
|
79
|
-
// Add padding at the bottom for better UX
|
80
|
-
ed.onInit.add(function(ed){
|
81
|
-
ed.dom.setStyle(ed.getBody(), 'paddingBottom', ed.getParam('autoresize_bottom_margin', 50) + 'px');
|
82
|
-
});
|
83
|
-
|
84
|
-
// Add appropriate listeners for resizing content area
|
85
|
-
ed.onChange.add(resize);
|
86
|
-
ed.onSetContent.add(resize);
|
87
|
-
ed.onPaste.add(resize);
|
88
|
-
ed.onKeyUp.add(resize);
|
89
|
-
ed.onPostRender.add(resize);
|
90
|
-
|
91
|
-
if (ed.getParam('autoresize_on_init', true)) {
|
92
|
-
ed.onLoad.add(resize);
|
93
|
-
ed.onLoadContent.add(resize);
|
94
|
-
}
|
95
|
-
|
96
|
-
// Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample');
|
97
|
-
ed.addCommand('mceAutoResize', resize);
|
98
|
-
},
|
99
|
-
|
100
|
-
/**
|
101
|
-
* Returns information about the plugin as a name/value array.
|
102
|
-
* The current keys are longname, author, authorurl, infourl and version.
|
103
|
-
*
|
104
|
-
* @return {Object} Name/value array containing information about the plugin.
|
105
|
-
*/
|
106
|
-
getInfo : function() {
|
107
|
-
return {
|
108
|
-
longname : 'Auto Resize',
|
109
|
-
author : 'Moxiecode Systems AB',
|
110
|
-
authorurl : 'http://tinymce.moxiecode.com',
|
111
|
-
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autoresize',
|
112
|
-
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
113
|
-
};
|
114
|
-
}
|
115
|
-
});
|
116
|
-
|
117
|
-
// Register plugin
|
118
|
-
tinymce.PluginManager.add('autoresize', tinymce.plugins.AutoResizePlugin);
|
119
|
-
})();
|
1
|
+
/**
|
2
|
+
* editor_plugin_src.js
|
3
|
+
*
|
4
|
+
* Copyright 2009, Moxiecode Systems AB
|
5
|
+
* Released under LGPL License.
|
6
|
+
*
|
7
|
+
* License: http://tinymce.moxiecode.com/license
|
8
|
+
* Contributing: http://tinymce.moxiecode.com/contributing
|
9
|
+
*/
|
10
|
+
|
11
|
+
(function() {
|
12
|
+
/**
|
13
|
+
* Auto Resize
|
14
|
+
*
|
15
|
+
* This plugin automatically resizes the content area to fit its content height.
|
16
|
+
* It will retain a minimum height, which is the height of the content area when
|
17
|
+
* it's initialized.
|
18
|
+
*/
|
19
|
+
tinymce.create('tinymce.plugins.AutoResizePlugin', {
|
20
|
+
/**
|
21
|
+
* Initializes the plugin, this will be executed after the plugin has been created.
|
22
|
+
* This call is done before the editor instance has finished it's initialization so use the onInit event
|
23
|
+
* of the editor instance to intercept that event.
|
24
|
+
*
|
25
|
+
* @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
|
26
|
+
* @param {string} url Absolute URL to where the plugin is located.
|
27
|
+
*/
|
28
|
+
init : function(ed, url) {
|
29
|
+
var t = this, oldSize = 0;
|
30
|
+
|
31
|
+
if (ed.getParam('fullscreen_is_enabled'))
|
32
|
+
return;
|
33
|
+
|
34
|
+
/**
|
35
|
+
* This method gets executed each time the editor needs to resize.
|
36
|
+
*/
|
37
|
+
function resize() {
|
38
|
+
var deltaSize, d = ed.getDoc(), body = d.body, de = d.documentElement, DOM = tinymce.DOM, resizeHeight = t.autoresize_min_height, myHeight;
|
39
|
+
|
40
|
+
// Get height differently depending on the browser used
|
41
|
+
myHeight = tinymce.isIE ? body.scrollHeight : (tinymce.isWebKit && body.clientHeight == 0 ? 0 : body.offsetHeight);
|
42
|
+
|
43
|
+
// Don't make it smaller than the minimum height
|
44
|
+
if (myHeight > t.autoresize_min_height)
|
45
|
+
resizeHeight = myHeight;
|
46
|
+
|
47
|
+
// If a maximum height has been defined don't exceed this height
|
48
|
+
if (t.autoresize_max_height && myHeight > t.autoresize_max_height) {
|
49
|
+
resizeHeight = t.autoresize_max_height;
|
50
|
+
body.style.overflowY = "auto";
|
51
|
+
de.style.overflowY = "auto"; // Old IE
|
52
|
+
} else {
|
53
|
+
body.style.overflowY = "hidden";
|
54
|
+
de.style.overflowY = "hidden"; // Old IE
|
55
|
+
body.scrollTop = 0;
|
56
|
+
}
|
57
|
+
|
58
|
+
// Resize content element
|
59
|
+
if (resizeHeight !== oldSize) {
|
60
|
+
deltaSize = resizeHeight - oldSize;
|
61
|
+
DOM.setStyle(DOM.get(ed.id + '_ifr'), 'height', resizeHeight + 'px');
|
62
|
+
oldSize = resizeHeight;
|
63
|
+
|
64
|
+
// WebKit doesn't decrease the size of the body element until the iframe gets resized
|
65
|
+
// So we need to continue to resize the iframe down until the size gets fixed
|
66
|
+
if (tinymce.isWebKit && deltaSize < 0)
|
67
|
+
resize();
|
68
|
+
}
|
69
|
+
};
|
70
|
+
|
71
|
+
t.editor = ed;
|
72
|
+
|
73
|
+
// Define minimum height
|
74
|
+
t.autoresize_min_height = parseInt(ed.getParam('autoresize_min_height', ed.getElement().offsetHeight));
|
75
|
+
|
76
|
+
// Define maximum height
|
77
|
+
t.autoresize_max_height = parseInt(ed.getParam('autoresize_max_height', 0));
|
78
|
+
|
79
|
+
// Add padding at the bottom for better UX
|
80
|
+
ed.onInit.add(function(ed){
|
81
|
+
ed.dom.setStyle(ed.getBody(), 'paddingBottom', ed.getParam('autoresize_bottom_margin', 50) + 'px');
|
82
|
+
});
|
83
|
+
|
84
|
+
// Add appropriate listeners for resizing content area
|
85
|
+
ed.onChange.add(resize);
|
86
|
+
ed.onSetContent.add(resize);
|
87
|
+
ed.onPaste.add(resize);
|
88
|
+
ed.onKeyUp.add(resize);
|
89
|
+
ed.onPostRender.add(resize);
|
90
|
+
|
91
|
+
if (ed.getParam('autoresize_on_init', true)) {
|
92
|
+
ed.onLoad.add(resize);
|
93
|
+
ed.onLoadContent.add(resize);
|
94
|
+
}
|
95
|
+
|
96
|
+
// Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample');
|
97
|
+
ed.addCommand('mceAutoResize', resize);
|
98
|
+
},
|
99
|
+
|
100
|
+
/**
|
101
|
+
* Returns information about the plugin as a name/value array.
|
102
|
+
* The current keys are longname, author, authorurl, infourl and version.
|
103
|
+
*
|
104
|
+
* @return {Object} Name/value array containing information about the plugin.
|
105
|
+
*/
|
106
|
+
getInfo : function() {
|
107
|
+
return {
|
108
|
+
longname : 'Auto Resize',
|
109
|
+
author : 'Moxiecode Systems AB',
|
110
|
+
authorurl : 'http://tinymce.moxiecode.com',
|
111
|
+
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autoresize',
|
112
|
+
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
113
|
+
};
|
114
|
+
}
|
115
|
+
});
|
116
|
+
|
117
|
+
// Register plugin
|
118
|
+
tinymce.PluginManager.add('autoresize', tinymce.plugins.AutoResizePlugin);
|
119
|
+
})();
|