Вход Регистрация
Файл: framework/thirdparty/tinymce/plugins/searchreplace/js/searchreplace.js
Строк: 157
<?php
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 field
        
f[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;

        if (
tinymce.isIE11 && !window.find) {
            
ed.windowManager.alert("This feature is not available in IE 11+. Upgrade TinyMCE to 4.x to get this functionallity back.");
            return;
        }

        
// Get input
        
f = 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 flags
        
if (ca)
            
fl = fl | 4;

        switch (
a) {
            case 
'all':
                
// Move caret to beginning of text
                
ed.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
                        
} else {
                            
// to avoid looping for ever in MSIE 9/10 when just
                            // changing the case
                            
r.moveStart("character", rs.length);
                        }
                    }

                    
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'));
                else
                    
tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));

                return;

            case 
'current':
                if (!
ed.selection.isCollapsed())
                    
replace();

                break;
        }

        
se.collapse(b);
        
r = se.getRng();

        
// Whats the point
        
if (!s)
            return;

        if (
tinymce.isIE) {
            
ed.focus();
            
r = ed.getDoc().selection.createRange();

            if (
r.findText(s, b ? -1 : 1, fl)) {
                
r.scrollIntoView();
                
r.select();
            } else
                
tinyMCEPopup.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'));
            else
                
fix();
        }
    }
};

tinyMCEPopup.onInit.add(SearchReplaceDialog.init, SearchReplaceDialog);
?>
Онлайн: 2
Реклама