aboutsummaryrefslogtreecommitdiff
path: root/mod/tinymce
diff options
context:
space:
mode:
authorCash Costello <cash.costello@gmail.com>2011-11-06 17:54:05 -0500
committerCash Costello <cash.costello@gmail.com>2011-11-06 17:54:05 -0500
commit8699afa034a94cc93a18b20a21aec70e036443fc (patch)
tree3289f4bbe629929ae4f7aac8955e84006901791d /mod/tinymce
parentb11ff06ff2e81c007ce68ed035431bea2455c7e7 (diff)
downloadelgg-8699afa034a94cc93a18b20a21aec70e036443fc.tar.gz
elgg-8699afa034a94cc93a18b20a21aec70e036443fc.tar.bz2
Fixes #3853 caching a bookmark for insert carot when embedding content into TinyMCE editor
Diffstat (limited to 'mod/tinymce')
-rw-r--r--mod/tinymce/views/default/js/tinymce.php21
-rw-r--r--mod/tinymce/views/default/tinymce/embed_custom_insert_js.php10
2 files changed, 26 insertions, 5 deletions
diff --git a/mod/tinymce/views/default/js/tinymce.php b/mod/tinymce/views/default/js/tinymce.php
index c6973d878..20236d657 100644
--- a/mod/tinymce/views/default/js/tinymce.php
+++ b/mod/tinymce/views/default/js/tinymce.php
@@ -18,7 +18,7 @@ elgg.tinymce.toggleEditor = function(event) {
tinyMCE.execCommand('mceRemoveControl', false, id);
$(this).html(elgg.echo('tinymce:add'));
}
-};
+}
/**
* TinyMCE initialization script
@@ -59,7 +59,7 @@ elgg.tinymce.init = function() {
var text = elgg.echo('tinymce:word_count') + strip.split(' ').length + ' ';
tinymce.DOM.setHTML(tinymce.DOM.get(tinyMCE.activeEditor.id + '_path_row'), text);
});
-
+
ed.onKeyUp.add(function(ed, e) {
var strip = (tinyMCE.activeEditor.getContent()).replace(/(&lt;([^&gt;]+)&gt;)/ig,"");
var text = elgg.echo('tinymce:word_count') + strip.split(' ').length + ' ';
@@ -69,6 +69,21 @@ elgg.tinymce.init = function() {
content_css: elgg.config.wwwroot + 'mod/tinymce/css/elgg_tinymce.css'
});
-};
+ // work around for IE/TinyMCE bug where TinyMCE loses insert carot
+ if ($.browser.msie) {
+ $(".embed-control").live('hover', function() {
+ var classes = $(this).attr('class');
+ var embedClass = classes.split(/[, ]+/).pop();
+ var textAreaId = embedClass.substr(embedClass.indexOf('embed-control-') + "embed-control-".length);
+
+ if (window.tinyMCE) {
+ var editor = window.tinyMCE.get(textAreaId);
+ if (elgg.tinymce.bookmark == null) {
+ elgg.tinymce.bookmark = editor.selection.getBookmark(2);
+ }
+ }
+ });
+ }
+}
elgg.register_hook_handler('init', 'system', elgg.tinymce.init); \ No newline at end of file
diff --git a/mod/tinymce/views/default/tinymce/embed_custom_insert_js.php b/mod/tinymce/views/default/tinymce/embed_custom_insert_js.php
index d5513cef1..a861a4035 100644
--- a/mod/tinymce/views/default/tinymce/embed_custom_insert_js.php
+++ b/mod/tinymce/views/default/tinymce/embed_custom_insert_js.php
@@ -1,8 +1,14 @@
if (window.tinyMCE) {
var editor = window.tinyMCE.get(textAreaId);
-
+
if (editor) {
+
+ // work around for IE/TinyMCE bug where TinyMCE loses insert carot
+ if ($.browser.msie) {
+ editor.focus();
+ editor.selection.moveToBookmark(elgg.tinymce.bookmark);
+ }
+
editor.execCommand("mceInsertContent", true, content);
}
}
- \ No newline at end of file