]> git.mxchange.org Git - friendica.git/blobdiff - library/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js
updated tinymce to 3.5.11
[friendica.git] / library / tinymce / jscripts / tiny_mce / plugins / searchreplace / js / searchreplace.js
index c0a62432978dd4cda1343ce7a2d376692a44a886..35cfb2b04d586a4bd9b776a50a10b5fd70d6b6af 100644 (file)
@@ -2,14 +2,19 @@ tinyMCEPopup.requireLangPack();
 \r
 var SearchReplaceDialog = {\r
        init : function(ed) {\r
-               var f = document.forms[0], m = tinyMCEPopup.getWindowArg("mode");\r
+               var t = this, f = document.forms[0], m = tinyMCEPopup.getWindowArg("mode");\r
 \r
-               this.switchMode(m);\r
+               t.switchMode(m);\r
 \r
                f[m + '_panel_searchstring'].value = tinyMCEPopup.getWindowArg("search_string");\r
 \r
                // Focus input field\r
                f[m + '_panel_searchstring'].focus();\r
+               \r
+               mcTabs.onChange.add(function(tab_id, panel_id) {\r
+                       t.switchMode(tab_id.substring(0, tab_id.indexOf('_')));\r
+               });\r
+\r
        },\r
 \r
        switchMode : function(m) {\r
@@ -35,6 +40,11 @@ var SearchReplaceDialog = {
        searchNext : function(a) {\r
                var ed = tinyMCEPopup.editor, se = ed.selection, r = se.getRng(), f, m = this.lastMode, s, b, fl = 0, w = ed.getWin(), wm = ed.windowManager, fo = 0;\r
 \r
+               if (tinymce.isIE11 && !window.find) {\r
+                       ed.windowManager.alert("This feature is not available in IE 11+. Upgrade TinyMCE to 4.x to get this functionallity back.");\r
+                       return;\r
+               }\r
+\r
                // Get input\r
                f = document.forms[0];\r
                s = f[m + '_panel_searchstring'].value;\r
@@ -42,21 +52,23 @@ var SearchReplaceDialog = {
                ca = f[m + '_panel_casesensitivebox'].checked;\r
                rs = f['replace_panel_replacestring'].value;\r
 \r
+               if (tinymce.isIE) {\r
+                       r = ed.getDoc().selection.createRange();\r
+               }\r
+\r
                if (s == '')\r
                        return;\r
 \r
                function fix() {\r
                        // Correct Firefox graphics glitches\r
+                       // TODO: Verify if this is actually needed any more, maybe it was for very old FF versions? \r
                        r = se.getRng().cloneRange();\r
                        ed.getDoc().execCommand('SelectAll', false, null);\r
                        se.setRng(r);\r
                };\r
 \r
                function replace() {\r
-                       if (tinymce.isIE)\r
-                               ed.selection.getRng().duplicate().pasteHTML(rs); // Needs to be duplicated due to selection bug in IE\r
-                       else\r
-                               ed.getDoc().execCommand('InsertHTML', false, rs);\r
+                       ed.selection.setContent(rs); // Needs to be duplicated due to selection bug in IE\r
                };\r
 \r
                // IE flags\r
@@ -70,6 +82,9 @@ var SearchReplaceDialog = {
                                ed.selection.collapse(true);\r
 \r
                                if (tinymce.isIE) {\r
+                                       ed.focus();\r
+                                       r = ed.getDoc().selection.createRange();\r
+\r
                                        while (r.findText(s, b ? -1 : 1, fl)) {\r
                                                r.scrollIntoView();\r
                                                r.select();\r
@@ -78,6 +93,10 @@ var SearchReplaceDialog = {
 \r
                                                if (b) {\r
                                                        r.moveEnd("character", -(rs.length)); // Otherwise will loop forever\r
+                                               } else {\r
+                                                       // to avoid looping for ever in MSIE 9/10 when just\r
+                                                       // changing the case\r
+                                                       r.moveStart("character", rs.length);\r
                                                }\r
                                        }\r
 \r
@@ -111,6 +130,9 @@ var SearchReplaceDialog = {
                        return;\r
 \r
                if (tinymce.isIE) {\r
+                       ed.focus();\r
+                       r = ed.getDoc().selection.createRange();\r
+\r
                        if (r.findText(s, b ? -1 : 1, fl)) {\r
                                r.scrollIntoView();\r
                                r.select();\r