tinymce-rails 3.5.7.1 → 3.5.8
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +3 -2
- data/lib/tasks/tinymce-assets.rake +1 -1
- data/lib/tinymce/rails/version.rb +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/autolink/editor_plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/autolink/editor_plugin_src.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/media/js/media.js +27 -17
- data/vendor/assets/javascripts/tinymce/plugins/table/editor_plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/table/editor_plugin_src.js +4 -0
- data/vendor/assets/javascripts/tinymce/plugins/table/js/row.js +17 -0
- data/vendor/assets/javascripts/tinymce/plugins/table/row.htm +15 -15
- data/vendor/assets/javascripts/tinymce/themes/advanced/editor_template.js +1 -1
- data/vendor/assets/javascripts/tinymce/themes/advanced/editor_template_src.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 +67 -25
- data/vendor/assets/javascripts/tinymce/tiny_mce_src.js +67 -25
- metadata +2 -3
- data/vendor/assets/javascripts/tinymce/plugins/autosave/langs/en.js +0 -4
@@ -6,9 +6,9 @@
|
|
6
6
|
var tinymce = {
|
7
7
|
majorVersion : '3',
|
8
8
|
|
9
|
-
minorVersion : '5.
|
9
|
+
minorVersion : '5.8',
|
10
10
|
|
11
|
-
releaseDate : '2012-
|
11
|
+
releaseDate : '2012-11-20',
|
12
12
|
|
13
13
|
_init : function() {
|
14
14
|
var t = this, d = document, na = navigator, ua = na.userAgent, i, nl, n, base, p, v;
|
@@ -1098,7 +1098,7 @@ tinymce.create('static tinymce.util.XHR', {
|
|
1098
1098
|
|
1099
1099
|
tinymce.util.Quirks = function(editor) {
|
1100
1100
|
var VK = tinymce.VK, BACKSPACE = VK.BACKSPACE, DELETE = VK.DELETE, dom = editor.dom, selection = editor.selection,
|
1101
|
-
settings = editor.settings, parser = editor.parser, serializer = editor.serializer;
|
1101
|
+
settings = editor.settings, parser = editor.parser, serializer = editor.serializer, each = tinymce.each;
|
1102
1102
|
|
1103
1103
|
function setEditorCommandState(cmd, state) {
|
1104
1104
|
try {
|
@@ -1128,40 +1128,48 @@ tinymce.util.Quirks = function(editor) {
|
|
1128
1128
|
blockElm = dom.getParent(rng.startContainer, dom.isBlock);
|
1129
1129
|
|
1130
1130
|
// On delete clone the root span of the next block element
|
1131
|
-
if (isDelete)
|
1131
|
+
if (isDelete) {
|
1132
1132
|
blockElm = dom.getNext(blockElm, dom.isBlock);
|
1133
|
+
}
|
1133
1134
|
|
1134
1135
|
// Locate root span element and clone it since it would otherwise get merged by the "apple-style-span" on delete/backspace
|
1135
1136
|
if (blockElm) {
|
1136
1137
|
node = blockElm.firstChild;
|
1137
1138
|
|
1138
1139
|
// Ignore empty text nodes
|
1139
|
-
while (node && node.nodeType == 3 && node.nodeValue.length === 0)
|
1140
|
+
while (node && node.nodeType == 3 && node.nodeValue.length === 0) {
|
1140
1141
|
node = node.nextSibling;
|
1142
|
+
}
|
1141
1143
|
|
1142
1144
|
if (node && node.nodeName === 'SPAN') {
|
1143
1145
|
clonedSpan = node.cloneNode(false);
|
1144
1146
|
}
|
1145
1147
|
}
|
1146
1148
|
|
1149
|
+
each(dom.select('span', blockElm), function(span) {
|
1150
|
+
span.setAttribute('data-mce-mark', '1');
|
1151
|
+
});
|
1152
|
+
|
1147
1153
|
// Do the backspace/delete action
|
1148
1154
|
editor.getDoc().execCommand(isDelete ? 'ForwardDelete' : 'Delete', false, null);
|
1149
1155
|
|
1150
1156
|
// Find all odd apple-style-spans
|
1151
1157
|
blockElm = dom.getParent(rng.startContainer, dom.isBlock);
|
1152
|
-
|
1158
|
+
each(dom.select('span', blockElm), function(span) {
|
1153
1159
|
var bm = selection.getBookmark();
|
1154
1160
|
|
1155
1161
|
if (clonedSpan) {
|
1156
1162
|
dom.replace(clonedSpan.cloneNode(false), span, true);
|
1157
|
-
} else {
|
1163
|
+
} else if (!span.getAttribute('data-mce-mark')) {
|
1158
1164
|
dom.remove(span, true);
|
1165
|
+
} else {
|
1166
|
+
span.removeAttribute('data-mce-mark');
|
1159
1167
|
}
|
1160
1168
|
|
1161
1169
|
// Restore the selection
|
1162
1170
|
selection.moveToBookmark(bm);
|
1163
1171
|
});
|
1164
|
-
}
|
1172
|
+
}
|
1165
1173
|
|
1166
1174
|
editor.onKeyDown.add(function(editor, e) {
|
1167
1175
|
var isDelete;
|
@@ -1315,7 +1323,7 @@ tinymce.util.Quirks = function(editor) {
|
|
1315
1323
|
if (target !== editor.getBody()) {
|
1316
1324
|
dom.setAttrib(target, "style", null);
|
1317
1325
|
|
1318
|
-
|
1326
|
+
each(template, function(attr) {
|
1319
1327
|
target.setAttributeNode(attr.cloneNode(true));
|
1320
1328
|
});
|
1321
1329
|
}
|
@@ -1565,7 +1573,7 @@ tinymce.util.Quirks = function(editor) {
|
|
1565
1573
|
|
1566
1574
|
function addBrAfterLastLinks() {
|
1567
1575
|
function fixLinks(editor, o) {
|
1568
|
-
|
1576
|
+
each(dom.select('a'), function(node) {
|
1569
1577
|
var parentNode = node.parentNode, root = dom.getRoot();
|
1570
1578
|
|
1571
1579
|
if (parentNode.lastChild === node) {
|
@@ -1633,7 +1641,7 @@ tinymce.util.Quirks = function(editor) {
|
|
1633
1641
|
// IE10+
|
1634
1642
|
if (getDocumentMode() >= 10) {
|
1635
1643
|
emptyBlocksCSS = '';
|
1636
|
-
|
1644
|
+
each('p div h1 h2 h3 h4 h5 h6'.split(' '), function(name, i) {
|
1637
1645
|
emptyBlocksCSS += (i > 0 ? ',' : '') + name + ':empty';
|
1638
1646
|
});
|
1639
1647
|
|
@@ -1750,7 +1758,7 @@ tinymce.util.Quirks = function(editor) {
|
|
1750
1758
|
width = height = 0;
|
1751
1759
|
}
|
1752
1760
|
|
1753
|
-
|
1761
|
+
each(resizeHandles, function(handle, name) {
|
1754
1762
|
var handleElm;
|
1755
1763
|
|
1756
1764
|
// Get existing or render resize handle
|
@@ -1847,7 +1855,7 @@ tinymce.util.Quirks = function(editor) {
|
|
1847
1855
|
var controlElm = dom.getParent(selection.getNode(), 'table,img');
|
1848
1856
|
|
1849
1857
|
// Remove data-mce-selected from all elements since they might have been copied using Ctrl+c/v
|
1850
|
-
|
1858
|
+
each(dom.select('img[data-mce-selected]'), function(img) {
|
1851
1859
|
img.removeAttribute('data-mce-selected');
|
1852
1860
|
});
|
1853
1861
|
|
@@ -3146,7 +3154,7 @@ tinymce.html.Styles = function(settings, schema) {
|
|
3146
3154
|
value = name in fillAttrsMap ? name : decode(value || val2 || val3 || ''); // Handle boolean attribute than value attribute
|
3147
3155
|
|
3148
3156
|
// Validate name and value
|
3149
|
-
if (validate && !isInternalElement && name.indexOf('data-
|
3157
|
+
if (validate && !isInternalElement && name.indexOf('data-') !== 0) {
|
3150
3158
|
attrRule = validAttributesMap[name];
|
3151
3159
|
|
3152
3160
|
// Find rule by pattern matching
|
@@ -5209,6 +5217,11 @@ tinymce.dom.TreeWalker = function(start_node, root_node) {
|
|
5209
5217
|
blockElementsMap = s.schema ? s.schema.getBlockElements() : {};
|
5210
5218
|
|
5211
5219
|
t.isBlock = function(node) {
|
5220
|
+
// Fix for #5446
|
5221
|
+
if (!node) {
|
5222
|
+
return false;
|
5223
|
+
}
|
5224
|
+
|
5212
5225
|
// This function is called in module pattern style since it might be executed with the wrong this scope
|
5213
5226
|
var type = node.nodeType;
|
5214
5227
|
|
@@ -10318,6 +10331,16 @@ window.tinymce.dom.Sizzle = Sizzle;
|
|
10318
10331
|
return self;
|
10319
10332
|
},
|
10320
10333
|
|
10334
|
+
scrollIntoView: function(elm) {
|
10335
|
+
var y, viewPort, self = this, dom = self.dom;
|
10336
|
+
|
10337
|
+
viewPort = dom.getViewPort(self.editor.getWin());
|
10338
|
+
y = dom.getPos(elm).y;
|
10339
|
+
if (y < viewPort.y || y + 25 > viewPort.y + viewPort.h) {
|
10340
|
+
self.editor.getWin().scrollTo(0, y < viewPort.y ? y : y - viewPort.h + 25);
|
10341
|
+
}
|
10342
|
+
},
|
10343
|
+
|
10321
10344
|
destroy : function(manual) {
|
10322
10345
|
var self = this;
|
10323
10346
|
|
@@ -13667,10 +13690,12 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
|
|
13667
13690
|
t.iframeHTML += '<base href="' + t.documentBaseURI.getURI() + '" />';
|
13668
13691
|
|
13669
13692
|
// IE8 doesn't support carets behind images setting ie7_compat would force IE8+ to run in IE7 compat mode.
|
13670
|
-
if (
|
13671
|
-
|
13672
|
-
|
13673
|
-
|
13693
|
+
if (tinymce.isIE8) {
|
13694
|
+
if (s.ie7_compat)
|
13695
|
+
t.iframeHTML += '<meta http-equiv="X-UA-Compatible" content="IE=7" />';
|
13696
|
+
else
|
13697
|
+
t.iframeHTML += '<meta http-equiv="X-UA-Compatible" content="IE=edge" />';
|
13698
|
+
}
|
13674
13699
|
|
13675
13700
|
t.iframeHTML += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
|
13676
13701
|
|
@@ -14300,9 +14325,7 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
|
|
14300
14325
|
self.save();
|
14301
14326
|
|
14302
14327
|
// defer the call to hide to prevent an IE9 crash #4921
|
14303
|
-
|
14304
|
-
DOM.hide(self.getContainer());
|
14305
|
-
}, 1);
|
14328
|
+
DOM.hide(self.getContainer());
|
14306
14329
|
DOM.setStyle(self.id, 'display', self.orgDisplay);
|
14307
14330
|
},
|
14308
14331
|
|
@@ -14581,11 +14604,19 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
|
|
14581
14604
|
},
|
14582
14605
|
|
14583
14606
|
remove : function() {
|
14584
|
-
var self = this, elm = self.getContainer();
|
14607
|
+
var self = this, elm = self.getContainer(), doc = self.getDoc();
|
14585
14608
|
|
14586
14609
|
if (!self.removed) {
|
14587
14610
|
self.removed = 1; // Cancels post remove event execution
|
14588
|
-
|
14611
|
+
|
14612
|
+
// Fixed bug where IE has a blinking cursor left from the editor
|
14613
|
+
if (isIE && doc)
|
14614
|
+
doc.execCommand('SelectAll');
|
14615
|
+
|
14616
|
+
// We must save before we hide so Safari doesn't crash
|
14617
|
+
self.save();
|
14618
|
+
|
14619
|
+
DOM.setStyle(self.id, 'display', self.orgDisplay);
|
14589
14620
|
|
14590
14621
|
// Don't clear the window or document if content editable
|
14591
14622
|
// is enabled since other instances might still be present
|
@@ -15578,7 +15609,7 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
|
|
15578
15609
|
// Add undo level on save contents, drag end and blur/focusout
|
15579
15610
|
editor.onSaveContent.add(addNonTypingUndoLevel);
|
15580
15611
|
editor.dom.bind(editor.dom.getRoot(), 'dragend', addNonTypingUndoLevel);
|
15581
|
-
editor.dom.bind(editor.
|
15612
|
+
editor.dom.bind(editor.getBody(), 'focusout', function(e) {
|
15582
15613
|
if (!editor.removed && self.typing) {
|
15583
15614
|
addNonTypingUndoLevel();
|
15584
15615
|
}
|
@@ -16941,6 +16972,11 @@ tinymce.ForceBlocks = function(editor) {
|
|
16941
16972
|
function process(node) {
|
16942
16973
|
var children, i, l, localContentEditable, lastContentEditable, hasContentEditableState;
|
16943
16974
|
|
16975
|
+
// Skip on text nodes as they have neither format to remove nor children
|
16976
|
+
if (node.nodeType === 3) {
|
16977
|
+
return;
|
16978
|
+
}
|
16979
|
+
|
16944
16980
|
// Node has a contentEditable value
|
16945
16981
|
if (node.nodeType === 1 && getContentEditable(node)) {
|
16946
16982
|
lastContentEditable = contentEditable;
|
@@ -18755,7 +18791,7 @@ tinymce.onAddEditor.add(function(tinymce, ed) {
|
|
18755
18791
|
|
18756
18792
|
// Inserts a BR element if the forced_root_block option is set to false or empty string
|
18757
18793
|
function insertBr() {
|
18758
|
-
var brElm, extraBr;
|
18794
|
+
var brElm, extraBr, marker;
|
18759
18795
|
|
18760
18796
|
if (container && container.nodeType == 3 && offset >= container.nodeValue.length) {
|
18761
18797
|
// Insert extra BR element at the end block elements
|
@@ -18776,6 +18812,12 @@ tinymce.onAddEditor.add(function(tinymce, ed) {
|
|
18776
18812
|
brElm.parentNode.insertBefore(dom.doc.createTextNode('\r'), brElm);
|
18777
18813
|
}
|
18778
18814
|
|
18815
|
+
// Insert temp marker and scroll to that
|
18816
|
+
marker = dom.create('span', {}, ' ');
|
18817
|
+
brElm.parentNode.insertBefore(marker, brElm);
|
18818
|
+
selection.scrollIntoView(marker);
|
18819
|
+
dom.remove(marker);
|
18820
|
+
|
18779
18821
|
if (!extraBr) {
|
18780
18822
|
rng.setStartAfter(brElm);
|
18781
18823
|
rng.setEndAfter(brElm);
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tinymce-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.5.
|
4
|
+
version: 3.5.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|
@@ -77,7 +77,6 @@ files:
|
|
77
77
|
- vendor/assets/javascripts/tinymce/plugins/autoresize/editor_plugin_src.js
|
78
78
|
- vendor/assets/javascripts/tinymce/plugins/autosave/editor_plugin.js
|
79
79
|
- vendor/assets/javascripts/tinymce/plugins/autosave/editor_plugin_src.js
|
80
|
-
- vendor/assets/javascripts/tinymce/plugins/autosave/langs/en.js
|
81
80
|
- vendor/assets/javascripts/tinymce/plugins/bbcode/editor_plugin.js
|
82
81
|
- vendor/assets/javascripts/tinymce/plugins/bbcode/editor_plugin_src.js
|
83
82
|
- vendor/assets/javascripts/tinymce/plugins/contextmenu/editor_plugin.js
|