Blame | Letzte Änderung | Log anzeigen | RSS feed
tinyMCEPopup.requireLangPack();var SearchReplaceDialog = {init : function(ed) {var t = this, f = document.forms[0], m = tinyMCEPopup.getWindowArg("mode");t.switchMode(m);f[m + '_panel_searchstring'].value = tinyMCEPopup.getWindowArg("search_string");// Focus input fieldf[m + '_panel_searchstring'].focus();mcTabs.onChange.add(function(tab_id, panel_id) {t.switchMode(tab_id.substring(0, tab_id.indexOf('_')));});},switchMode : function(m) {var f, lm = this.lastMode;if (lm != m) {f = document.forms[0];if (lm) {f[m + '_panel_searchstring'].value = f[lm + '_panel_searchstring'].value;f[m + '_panel_backwardsu'].checked = f[lm + '_panel_backwardsu'].checked;f[m + '_panel_backwardsd'].checked = f[lm + '_panel_backwardsd'].checked;f[m + '_panel_casesensitivebox'].checked = f[lm + '_panel_casesensitivebox'].checked;}mcTabs.displayTab(m + '_tab', m + '_panel');document.getElementById("replaceBtn").style.display = (m == "replace") ? "inline" : "none";document.getElementById("replaceAllBtn").style.display = (m == "replace") ? "inline" : "none";this.lastMode = m;}},searchNext : function(a) {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;// Get inputf = document.forms[0];s = f[m + '_panel_searchstring'].value;b = f[m + '_panel_backwardsu'].checked;ca = f[m + '_panel_casesensitivebox'].checked;rs = f['replace_panel_replacestring'].value;if (tinymce.isIE) {r = ed.getDoc().selection.createRange();}if (s == '')return;function fix() {// Correct Firefox graphics glitches// TODO: Verify if this is actually needed any more, maybe it was for very old FF versions?r = se.getRng().cloneRange();ed.getDoc().execCommand('SelectAll', false, null);se.setRng(r);};function replace() {ed.selection.setContent(rs); // Needs to be duplicated due to selection bug in IE};// IE flagsif (ca)fl = fl | 4;switch (a) {case 'all':// Move caret to beginning of texted.execCommand('SelectAll');ed.selection.collapse(true);if (tinymce.isIE) {ed.focus();r = ed.getDoc().selection.createRange();while (r.findText(s, b ? -1 : 1, fl)) {r.scrollIntoView();r.select();replace();fo = 1;if (b) {r.moveEnd("character", -(rs.length)); // Otherwise will loop forever}}tinyMCEPopup.storeSelection();} else {while (w.find(s, ca, b, false, false, false, false)) {replace();fo = 1;}}if (fo)tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.allreplaced'));elsetinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));return;case 'current':if (!ed.selection.isCollapsed())replace();break;}se.collapse(b);r = se.getRng();// Whats the pointif (!s)return;if (tinymce.isIE) {ed.focus();r = ed.getDoc().selection.createRange();if (r.findText(s, b ? -1 : 1, fl)) {r.scrollIntoView();r.select();} elsetinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));tinyMCEPopup.storeSelection();} else {if (!w.find(s, ca, b, false, false, false, false))tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));elsefix();}}};tinyMCEPopup.onInit.add(SearchReplaceDialog.init, SearchReplaceDialog);