diff options
author | Cash Costello <cash.costello@gmail.com> | 2011-11-06 17:54:05 -0500 |
---|---|---|
committer | Cash Costello <cash.costello@gmail.com> | 2011-11-06 17:54:05 -0500 |
commit | 8699afa034a94cc93a18b20a21aec70e036443fc (patch) | |
tree | 3289f4bbe629929ae4f7aac8955e84006901791d | |
parent | b11ff06ff2e81c007ce68ed035431bea2455c7e7 (diff) | |
download | elgg-8699afa034a94cc93a18b20a21aec70e036443fc.tar.gz elgg-8699afa034a94cc93a18b20a21aec70e036443fc.tar.bz2 |
Fixes #3853 caching a bookmark for insert carot when embedding content into TinyMCE editor
-rw-r--r-- | mod/tinymce/views/default/js/tinymce.php | 21 | ||||
-rw-r--r-- | mod/tinymce/views/default/tinymce/embed_custom_insert_js.php | 10 |
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(/(<([^>]+)>)/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 |