Hi Nam,
Is it normal that we need all this just to get the focus? Isn't there a simpler way?
Thanks
-Vincent
-----Original Message-----
From: Phung Hai Nam [mailto:namphunghai@users.forge.objectweb.org]
Sent: mercredi 10 janvier 2007 07:43
To: xwiki-commits(a)objectweb.org
Subject: [xwiki-commits] r1928 - in
xwiki/trunk/web/standard/src/main/webapp: tiny_mce/themes/wikieditor
wiki_editor/plugins
Author: namphunghai
Date: 2007-01-10 07:43:16 +0100 (Wed, 10 Jan 2007) New Revision: 1928
Modified:
xwiki/trunk/web/standard/src/main/webapp/tiny_mce/themes/wikieditor/edi
tor_template.js
xwiki/trunk/web/standard/src/main/webapp/wiki_editor/plugins/attachment
s.js
xwiki/trunk/web/standard/src/main/webapp/wiki_editor/plugins/macros.js
Log:
Fixed XWIKI-706 : When clicking on buttons (insert/edit image, insert
an attachment link, etc) in WYSIWYG editor the new window doesn't have
the focus and is opened in the background.
Modified:
xwiki/trunk/web/standard/src/main/webapp/tiny_mce/themes/wikieditor/edi
tor_template.js
===================================================================
---
xwiki/trunk/web/standard/src/main/webapp/tiny_mce/themes/wikieditor/edi
tor_template.js 2007-01-10 06:06:45 UTC (rev 1927)
+++
xwiki/trunk/web/standard/src/main/webapp/tiny_mce/themes/wikieditor/edi
tor_template.js 2007-01-10 06:43:16 UTC (rev 1928)
@@ -102,6 +102,118 @@
return true;
+ case "mceImage":
+ var src = "", alt = "", border = "",
hspace = "",
vspace = "", width = "", height = "", align = "",
halign = "";
+ var title = "", onmouseover = "", onmouseout =
"",
action = "insert";
+ var img = tinyMCE.imgElement;
+ var inst = tinyMCE.getInstanceById(editor_id);
+
+ if (tinyMCE.selectedElement != null &&
tinyMCE.selectedElement.nodeName.toLowerCase() == "img") {
+ img = tinyMCE.selectedElement;
+ tinyMCE.imgElement = img;
+ var parent = tinyMCE.selectedElement.parentNode;
+ var parentClassName = parent.className;
+ if (parent.nodeName.toLowerCase() == "div") {
+ halign = parentClassName.substring(3,
parentClassName.length);
+ }
+ }
+
+ if (img) {
+ // Is it a internal MCE visual aid image, then
skip this one.
+ if (tinyMCE.getAttrib(img, 'name').indexOf('mce_')
== 0)
+ return true;
+
+ src = tinyMCE.getAttrib(img, 'src');
+ alt = tinyMCE.getAttrib(img, 'alt');
+
+ // Try polling out the title
+ if (alt == "")
+ alt = tinyMCE.getAttrib(img, 'title');
+
+ // Fix width/height attributes if the styles is
specified
+ if (tinyMCE.isGecko) {
+ var w = img.style.width;
+ if (w != null && w != "")
+ img.setAttribute("width", w);
+
+ var h = img.style.height;
+ if (h != null && h != "")
+ img.setAttribute("height", h);
+ }
+
+ border = tinyMCE.getAttrib(img, 'border');
+ hspace = tinyMCE.getAttrib(img, 'hspace');
+ vspace = tinyMCE.getAttrib(img, 'vspace');
+ width = tinyMCE.getAttrib(img, 'width');
+ height = tinyMCE.getAttrib(img, 'height');
+ align = tinyMCE.getAttrib(img, 'align');
+
+ onmouseover = tinyMCE.getAttrib(img,
'onmouseover');
+ onmouseout = tinyMCE.getAttrib(img, 'onmouseout');
+ title = tinyMCE.getAttrib(img, 'title');
+
+ // Is realy specified?
+ if (tinyMCE.isMSIE) {
+ width = img.attributes['width'].specified ?
width : "";
+ height = img.attributes['height'].specified ?
height : "";
+ }
+
+ src =
+ eval(tinyMCE.settings['urlconverter_callback'] + "(src, img,
true);");
+
+ src = src.substring(src.lastIndexOf("/") + 1,
+ src.length);
+
+ // Use mce_src if defined
+ mceRealSrc = tinyMCE.getAttrib(img, 'mce_src');
+ if (mceRealSrc != "") {
+ src = mceRealSrc;
+
+ if (tinyMCE.getParam('convert_urls'))
+ src =
eval(tinyMCE.settings['urlconverter_callback'] + "(src, img, true);");
+ src = src.substring(src.lastIndexOf("/") +
1, src.length);
+ }
+
+ action = "update";
+ }
+
+ var template = new Array();
+
+ template['file'] = 'image.htm';
+ template['width'] = 550;
+ template['height'] = 400 + (tinyMCE.isMSIE ? 25 : 0);
+
+ if (inst.settings['insertimage_callback']) {
+ var returnVal =
eval(inst.settings['insertimage_callback'] + "(src, alt, border,
hspace, vspace, width, height, align, title, onmouseover, onmouseout,
action);");
+ if (returnVal && returnVal['src'])
+
TinyMCE_WikieditorTheme.insertImage(returnVal['src'],
returnVal['width'], returnVal['height'], returnVal['align']);
+ } else {
+ tinyMCE.openWindow(template, {editor_id :
editor_id, scrollbars : 'yes', resizable : 'no', mce_windowresize:
false, src : src, alt : alt, border : border, hspace : hspace, vspace :
vspace, width : width, height : height, align : align, halign : halign,
title : title, onmouseover : onmouseover, onmouseout : onmouseout,
action : action, inline : "yes"});
+ }
+
+ return true;
+
+ case "wikiAttachment":
+ var href = "", action = "insert";
+ var template = new Array();
+
+ template['file'] = 'attachment.htm';
+ template['width'] = 550;
+ template['height'] = 400 + (tinyMCE.isMSIE ? 25 : 0);
+
+ tinyMCE.openWindow(template, {editor_id : editor_id,
+ href : href, action : action, inline : "yes", scrollbars : 'yes',
+ resizable : 'no', mce_windowresize: false});
+
+ return true;
+
+ case "wikiMacro":
+ var template = new Array();
+
+ template['file'] = 'macro.htm';
+ template['width'] = 520;
+ template['height'] = 300;
+
+ tinyMCE.openWindow(template, {editor_id : editor_id,
+ inline : "yes", command : "insert", scrollbars : 'yes',
resizable :
+ 'no', mce_windowresize: false});
+
+ return true;
+
case "mceForeColor":
var template = new Array();
var elm = tinyMCE.selectedInstance.getFocusElement();
Modified:
xwiki/trunk/web/standard/src/main/webapp/wiki_editor/plugins/attachment
s.js
===================================================================
---
xwiki/trunk/web/standard/src/main/webapp/wiki_editor/plugins/attachment
s.js 2007-01-10 06:06:45 UTC (rev 1927)
+++
xwiki/trunk/web/standard/src/main/webapp/wiki_editor/plugins/attachment
s.js 2007-01-10 06:43:16 UTC (rev 1928)
@@ -19,9 +19,6 @@
this.addInternalProcessorBefore('convertLinkInternal',
(/<a\s*href=\"wikiattachment:-:(.*?)\"\s*([^>]*)>(.*?)<\/a>/i),
'convertAttachmentInternal');
this.addToolbarHandler('handleAttachmentsButtons');
-
- this.addCommand('wikiAttachment', 'attachmentCommand');
- this.addCommand('mceImage', 'imageCommand');
}
wikiEditor.initAttachmentsPlugin();
@@ -33,109 +30,6 @@
this.core.execInstanceCommand(editor_id, "mceInsertRawHTML",
false, '<a href="wikiattachment:-:' + name + '"
class="' +
this.ATTACHMENT_CLASS_NAME + '">' + text + '<\/a>'); }
-WikiEditor.prototype.attachmentCommand = function(editor_id, element,
command, user_interface, value) {
- var href = "", action = "insert";
- var template = new Array();
-
- template['file'] = 'attachment.htm';
- template['width'] = 550;
- template['height'] = 400 + (tinyMCE.isMSIE ? 25 : 0);
-
- tinyMCE.openWindow(template, {editor_id : editor_id, href : href,
action : action, scrollbars : 'yes', resizable : 'no',
mce_windowresize: false});
-
- return this.dummyCommand();
-}
-
-WikiEditor.prototype.imageCommand = function(editor_id, element,
command, user_interface, value) {
- var src = "", alt = "", border = "", hspace =
"", vspace = "",
width = "", height = "", align = "", halign =
"";
- var title = "", onmouseover = "", onmouseout = "",
action =
"insert";
- var img = tinyMCE.imgElement;
- var inst = tinyMCE.getInstanceById(editor_id);
-
- if (tinyMCE.selectedElement != null &&
tinyMCE.selectedElement.nodeName.toLowerCase() == "img") {
- img = tinyMCE.selectedElement;
- tinyMCE.imgElement = img;
- var parent = tinyMCE.selectedElement.parentNode;
- var parentClassName = parent.className;
- if (parent.nodeName.toLowerCase() == "div") {
- halign = parentClassName.substring(3,
parentClassName.length);
- }
- }
-
- if (img) {
- // Is it a internal MCE visual aid image, then skip this one.
- if (tinyMCE.getAttrib(img, 'name').indexOf('mce_') == 0)
- return true;
-
- src = tinyMCE.getAttrib(img, 'src');
- alt = tinyMCE.getAttrib(img, 'alt');
-
- // Try polling out the title
- if (alt == "")
- alt = tinyMCE.getAttrib(img, 'title');
-
- // Fix width/height attributes if the styles is specified
- if (tinyMCE.isGecko) {
- var w = img.style.width;
- if (w != null && w != "")
- img.setAttribute("width", w);
-
- var h = img.style.height;
- if (h != null && h != "")
- img.setAttribute("height", h);
- }
-
- border = tinyMCE.getAttrib(img, 'border');
- hspace = tinyMCE.getAttrib(img, 'hspace');
- vspace = tinyMCE.getAttrib(img, 'vspace');
- width = tinyMCE.getAttrib(img, 'width');
- height = tinyMCE.getAttrib(img, 'height');
- align = tinyMCE.getAttrib(img, 'align');
-
- onmouseover = tinyMCE.getAttrib(img, 'onmouseover');
- onmouseout = tinyMCE.getAttrib(img, 'onmouseout');
- title = tinyMCE.getAttrib(img, 'title');
-
- // Is realy specified?
- if (tinyMCE.isMSIE) {
- width = img.attributes['width'].specified ? width : "";
- height = img.attributes['height'].specified ? height :
"";
- }
-
- src = eval(tinyMCE.settings['urlconverter_callback'] + "(src,
img, true);");
-
- src = src.substring(src.lastIndexOf("/") + 1, src.length);
-
- // Use mce_src if defined
- mceRealSrc = tinyMCE.getAttrib(img, 'mce_src');
- if (mceRealSrc != "") {
- src = mceRealSrc;
-
- if (tinyMCE.getParam('convert_urls'))
- src = eval(tinyMCE.settings['urlconverter_callback'] +
"(src, img, true);");
- src = src.substring(src.lastIndexOf("/") + 1,
src.length);
- }
-
- action = "update";
- }
-
- var template = new Array();
-
- template['file'] = 'image.htm';
- template['width'] = 550;
- template['height'] = 400 + (tinyMCE.isMSIE ? 25 : 0);
-
- if (inst.settings['insertimage_callback']) {
- var returnVal = eval(inst.settings['insertimage_callback'] +
"(src, alt, border, hspace, vspace, width, height, align, title,
onmouseover, onmouseout, action);");
- if (returnVal && returnVal['src'])
- TinyMCE_WikieditorTheme.insertImage(returnVal['src'],
returnVal['width'], returnVal['height'], returnVal['align']);
- } else {
- tinyMCE.openWindow(template, {editor_id : editor_id,
scrollbars : 'yes', resizable : 'no', mce_windowresize: false, src :
src, alt : alt, border : border, hspace : hspace, vspace : vspace,
width : width, height : height, align : align, halign : halign, title :
title, onmouseover : onmouseover, onmouseout : onmouseout, action :
action, inline : "yes"});
- }
-
- return this.dummyCommand();
-}
-
WikiEditor.prototype.convertImageInternal = function(regexp, result,
content) {
var str="";
var href;
Modified:
xwiki/trunk/web/standard/src/main/webapp/wiki_editor/plugins/macros.js
===================================================================
---
xwiki/trunk/web/standard/src/main/webapp/wiki_editor/plugins/macros.js
2007-01-10 06:06:45 UTC (rev 1927)
+++
xwiki/trunk/web/standard/src/main/webapp/wiki_editor/plugins/macros.js
2007-01-10 06:43:16 UTC (rev 1928)
@@ -10,10 +10,8 @@
alert("Macros Plugin: You must load the core syntax plugin
before!");
return;
}
-
+
this.addToolbarHandler('handleMacrosButtons');
-
- this.addCommand('wikiMacro', 'macroCommand');
}
wikiEditor.initMacrosPlugin();
@@ -22,19 +20,6 @@
this.core.execInstanceCommand(editor_id, "mceInsertRawHTML",
false, name); }
-
-WikiEditor.prototype.macroCommand = function(editor_id, element,
command, user_interface, value) {
- var template = new Array();
-
- template['file'] = 'macro.htm';
- template['width'] = 520;
- template['height'] = 300;
-
- tinyMCE.openWindow(template, {editor_id : editor_id, scrollbars :
'yes', resizable : 'no', mce_windowresize: false});
-
- return this.dummyCommand();
-}
-
WikiEditor.prototype.handleMacrosButtons = function(editor_id, node,
undo_index, undo_levels, visual_aid, any_selection) {
tinyMCE.switchClass(editor_id + '_macro', 'mceButtonNormal');
do
___________________________________________________________________________
D�couvrez une nouvelle fa�on d'obtenir des r�ponses � toutes vos questions !
Profitez des connaissances, des opinions et des exp�riences des internautes sur Yahoo!
Questions/R�ponses
http://fr.answers.yahoo.com