source: trunk/web/app/plugins/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js @ 6

Last change on this file since 6 was 6, checked in by dj3c1t, 12 years ago

mise a jour du trunk

File size: 2.8 KB
Line 
1tinyMCEPopup.requireLangPack();
2
3var SearchReplaceDialog = {
4        init : function(ed) {
5                var f = document.forms[0], m = tinyMCEPopup.getWindowArg("mode");
6
7                this.switchMode(m);
8
9                f[m + '_panel_searchstring'].value = tinyMCEPopup.getWindowArg("search_string");
10        },
11
12        switchMode : function(m) {
13                var f, lm = this.lastMode;
14
15                if (lm != m) {
16                        f = document.forms[0];
17
18                        if (lm) {
19                                f[m + '_panel_searchstring'].value = f[lm + '_panel_searchstring'].value;
20                                f[m + '_panel_backwardsu'].checked = f[lm + '_panel_backwardsu'].checked;
21                                f[m + '_panel_backwardsd'].checked = f[lm + '_panel_backwardsd'].checked;
22                                f[m + '_panel_casesensitivebox'].checked = f[lm + '_panel_casesensitivebox'].checked;
23                        }
24
25                        mcTabs.displayTab(m + '_tab',  m + '_panel');
26                        document.getElementById("replace_buttons").style.visibility = (m == "replace") ? "visible" : "hidden";
27                        this.lastMode = m;
28                }
29        },
30
31        searchNext : function(a) {
32                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;
33
34                // Get input
35                f = document.forms[0];
36                s = f[m + '_panel_searchstring'].value;
37                b = f[m + '_panel_backwardsu'].checked;
38                ca = f[m + '_panel_casesensitivebox'].checked;
39                rs = f['replace_panel_replacestring'].value;
40
41                function fix() {
42                        // Correct Firefox graphics glitches
43                        r = se.getRng().cloneRange();
44                        ed.getDoc().execCommand('SelectAll', false, null);
45                        se.setRng(r);
46                };
47
48                function replace() {
49                        if (tinymce.isIE)
50                                ed.selection.getRng().duplicate().pasteHTML(rs); // Needs to be duplicated due to selection bug in IE
51                        else
52                                ed.getDoc().execCommand('InsertHTML', false, rs);
53                };
54
55                // IE flags
56                if (ca)
57                        fl = fl | 4;
58
59                switch (a) {
60                        case 'all':
61                                if (tinymce.isIE) {
62                                        while (r.findText(s, b ? -1 : 1, fl)) {
63                                                r.scrollIntoView();
64                                                r.select();
65                                                replace();
66                                                fo = 1;
67                                        }
68
69                                        tinyMCEPopup.storeSelection();
70                                } else {
71                                        while (w.find(s, ca, b, false, false, false, false)) {
72                                                replace();
73                                                fo = 1;
74                                        }
75                                }
76
77                                if (fo)
78                                        wm.alert(ed.getLang('searchreplace_dlg.allreplaced'));
79                                else
80                                        wm.alert(ed.getLang('searchreplace_dlg.notfound'));
81
82                                return;
83
84                        case 'current':
85                                replace();
86                                break;
87                }
88
89                se.collapse(b);
90                r = se.getRng();
91
92                if (tinymce.isIE) {
93                        if (r.findText(s, b ? -1 : 1, fl)) {
94                                r.scrollIntoView();
95                                r.select();
96                        } else
97                                wm.alert(ed.getLang('searchreplace_dlg.notfound'));
98
99                        tinyMCEPopup.storeSelection();
100                } else {
101                        if (!w.find(s, ca, b, false, false, false, false))
102                                wm.alert(ed.getLang('searchreplace_dlg.notfound'));
103                        else
104                                fix();
105                }
106        }
107};
108
109tinyMCEPopup.onInit.add(SearchReplaceDialog.init, SearchReplaceDialog);
Note: See TracBrowser for help on using the repository browser.