2
* $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
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.
10
/* Import plugin specific language pack */
11
tinyMCE.importPluginLanguagePack('foswikiimage');
13
var TinyMCE_FoswikiImagePlugin = {
14
getInfo : function() {
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
24
getControlHTML : function(cn) {
27
return tinyMCE.getButtonHTML(
28
cn, 'lang_image_desc',
29
'{$themeurl}/images/image.gif', 'mceAdvImage');
35
execCommand : function(
36
editor_id, element, command, user_interface, value) {
39
var template = new Array();
41
template['file'] = '../../plugins/foswikiimage/image.htm';
42
template['width'] = 480;
43
template['height'] = 380;
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);
51
var inst = tinyMCE.getInstanceById(editor_id);
52
var elm = inst.getFocusElement();
55
tinyMCE.getAttrib(elm, 'class').indexOf('mceItem') != -1)
58
tinyMCE.openWindow(template, {editor_id : editor_id,
67
cleanup : function(type, content) {
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'));
77
if ((src = this._getImageSrc(onmouseover)) != "") {
78
src = eval(tinyMCE.settings['foswikipuburl_callback']
81
imgs[i].setAttribute('onmouseover', "this.src='"
85
if ((src = this._getImageSrc(onmouseout)) != "") {
86
src = eval(tinyMCE.settings['foswikipuburl_callback']
89
imgs[i].setAttribute('onmouseout', "this.src='"
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'));
103
if ((src = this._getImageSrc(onmouseover)) != "") {
104
src = eval(tinyMCE.settings['foswikipuburl_callback']
107
imgs[i].setAttribute('onmouseover', "this.src='"
111
if ((src = this._getImageSrc(onmouseout)) != "") {
112
src = eval(tinyMCE.settings['foswikipuburl_callback']
113
+ "(src, null, true);");
115
imgs[i].setAttribute('onmouseout', "this.src='"
125
handleNodeChange : function(
126
editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
131
if (node.nodeName == "IMG" &&
132
tinyMCE.getAttrib(node, 'class').indexOf('mceItem') == -1) {
133
tinyMCE.switchClass(editor_id + '_foswikiimage',
134
'mceButtonSelected');
137
} while ((node = node.parentNode));
139
tinyMCE.switchClass(editor_id + '_foswikiimage', 'mceButtonNormal');
145
* Returns the image src from a scripted mouse over image str.
147
* @param {string} s String to get real src from.
148
* @return Image src from a scripted mouse over image str.
151
_getImageSrc : function(s) {
157
if ((p = s.indexOf('this.src=')) != -1) {
158
sr = s.substring(p + 10);
159
sr = sr.substring(0, sr.indexOf('\''));
168
tinyMCE.addPlugin("foswikiimage", TinyMCE_FoswikiImagePlugin);