~kosova/+junk/tuxfamily-twiki

« back to all changes in this revision

Viewing changes to foswiki/pub/System/TinyMCEPlugin/tinymce/jscripts/tiny_mce/plugins/foswikiimage/editor_plugin_src.js

  • Committer: James Michael DuPont
  • Date: 2009-07-18 19:58:49 UTC
  • Revision ID: jamesmikedupont@gmail.com-20090718195849-vgbmaht2ys791uo2
added foswiki

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
 
3
 *
 
4
 * @author Moxiecode
 
5
 * @author Crawford Currie http://wikiring.com
 
6
 * @copyright Copyright � 2004-2007, Moxiecode Systems AB, All rights reserved.
 
7
 * @copyright Portions Copyright � 2007, WikiRing.com.
 
8
 */
 
9
 
 
10
/* Import plugin specific language pack */
 
11
tinyMCE.importPluginLanguagePack('foswikiimage');
 
12
 
 
13
var TinyMCE_FoswikiImagePlugin = {
 
14
        getInfo : function() {
 
15
                return {
 
16
                        longname : 'Foswiki image',
 
17
                        author : 'WikiRing, from Moxiecode Systems AB original',
 
18
                        authorurl : 'http://wikiring.com',
 
19
                        infourl : 'http://foswiki.org/cgi-bin/view/Plugins/TinyMCEPlugin',
 
20
                        version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
 
21
                };
 
22
        },
 
23
 
 
24
        getControlHTML : function(cn) {
 
25
                switch (cn) {
 
26
                        case "image":
 
27
                                return tinyMCE.getButtonHTML(
 
28
                    cn, 'lang_image_desc',
 
29
                    '{$themeurl}/images/image.gif', 'mceAdvImage');
 
30
                }
 
31
 
 
32
                return "";
 
33
        },
 
34
 
 
35
        execCommand : function(
 
36
        editor_id, element, command, user_interface, value) {
 
37
                switch (command) {
 
38
                        case "mceAdvImage":
 
39
                                var template = new Array();
 
40
 
 
41
                                template['file']   = '../../plugins/foswikiimage/image.htm';
 
42
                                template['width']  = 480;
 
43
                                template['height'] = 380;
 
44
 
 
45
                                // Language specific width and height addons
 
46
                                template['width']  += tinyMCE.getLang(
 
47
                    'lang_foswikiimage_delta_width', 0);
 
48
                                template['height'] += tinyMCE.getLang(
 
49
                    'lang_foswikiimage_delta_height', 0);
 
50
 
 
51
                                var inst = tinyMCE.getInstanceById(editor_id);
 
52
                                var elm = inst.getFocusElement();
 
53
 
 
54
                                if (elm != null &&
 
55
                    tinyMCE.getAttrib(elm, 'class').indexOf('mceItem') != -1)
 
56
                                        return true;
 
57
 
 
58
                                tinyMCE.openWindow(template, {editor_id : editor_id,
 
59
                                           inline : "yes"});
 
60
 
 
61
                                return true;
 
62
                }
 
63
 
 
64
                return false;
 
65
        },
 
66
 
 
67
        cleanup : function(type, content) {
 
68
                switch (type) {
 
69
                        case "insert_to_editor_dom":
 
70
                                var imgs = content.getElementsByTagName("img"), src, i;
 
71
                                for (i=0; i<imgs.length; i++) {
 
72
                                        var onmouseover = tinyMCE.cleanupEventStr(
 
73
                        tinyMCE.getAttrib(imgs[i], 'onmouseover'));
 
74
                                        var onmouseout = tinyMCE.cleanupEventStr(
 
75
                        tinyMCE.getAttrib(imgs[i], 'onmouseout'));
 
76
 
 
77
                                        if ((src = this._getImageSrc(onmouseover)) != "") {
 
78
                        src = eval(tinyMCE.settings['foswikipuburl_callback']
 
79
                                   + "(src);");
 
80
 
 
81
                                                imgs[i].setAttribute('onmouseover', "this.src='"
 
82
                                             + src + "';");
 
83
                                        }
 
84
 
 
85
                                        if ((src = this._getImageSrc(onmouseout)) != "") {
 
86
                        src = eval(tinyMCE.settings['foswikipuburl_callback']
 
87
                                   + "(src);");
 
88
 
 
89
                                                imgs[i].setAttribute('onmouseout', "this.src='"
 
90
                                             + src + "';");
 
91
                                        }
 
92
                                }
 
93
                                break;
 
94
 
 
95
                        case "get_from_editor_dom":
 
96
                                var imgs = content.getElementsByTagName("img");
 
97
                                for (var i=0; i<imgs.length; i++) {
 
98
                                        var onmouseover = tinyMCE.cleanupEventStr(
 
99
                        tinyMCE.getAttrib(imgs[i], 'onmouseover'));
 
100
                                        var onmouseout = tinyMCE.cleanupEventStr(
 
101
                        tinyMCE.getAttrib(imgs[i], 'onmouseout'));
 
102
 
 
103
                                        if ((src = this._getImageSrc(onmouseover)) != "") {
 
104
                        src = eval(tinyMCE.settings['foswikipuburl_callback']
 
105
                                   + "(src);");
 
106
 
 
107
                                                imgs[i].setAttribute('onmouseover', "this.src='"
 
108
                                             + src + "';");
 
109
                                        }
 
110
 
 
111
                                        if ((src = this._getImageSrc(onmouseout)) != "") {
 
112
                        src = eval(tinyMCE.settings['foswikipuburl_callback']
 
113
                                   + "(src, null, true);");
 
114
 
 
115
                                                imgs[i].setAttribute('onmouseout', "this.src='"
 
116
                                             + src + "';");
 
117
                                        }
 
118
                                }
 
119
                                break;
 
120
                }
 
121
 
 
122
                return content;
 
123
        },
 
124
 
 
125
        handleNodeChange : function(
 
126
        editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
 
127
                if (node == null)
 
128
                        return;
 
129
 
 
130
                do {
 
131
                        if (node.nodeName == "IMG" &&
 
132
                tinyMCE.getAttrib(node, 'class').indexOf('mceItem') == -1) {
 
133
                                tinyMCE.switchClass(editor_id + '_foswikiimage',
 
134
                                    'mceButtonSelected');
 
135
                                return true;
 
136
                        }
 
137
                } while ((node = node.parentNode));
 
138
 
 
139
                tinyMCE.switchClass(editor_id + '_foswikiimage', 'mceButtonNormal');
 
140
 
 
141
                return true;
 
142
        },
 
143
 
 
144
        /**
 
145
         * Returns the image src from a scripted mouse over image str.
 
146
         *
 
147
         * @param {string} s String to get real src from.
 
148
         * @return Image src from a scripted mouse over image str.
 
149
         * @type string
 
150
         */
 
151
        _getImageSrc : function(s) {
 
152
                var sr, p = -1;
 
153
 
 
154
                if (!s)
 
155
                        return "";
 
156
 
 
157
                if ((p = s.indexOf('this.src=')) != -1) {
 
158
                        sr = s.substring(p + 10);
 
159
                        sr = sr.substring(0, sr.indexOf('\''));
 
160
 
 
161
                        return sr;
 
162
                }
 
163
 
 
164
                return "";
 
165
        }
 
166
};
 
167
 
 
168
tinyMCE.addPlugin("foswikiimage", TinyMCE_FoswikiImagePlugin);