r1085 - in xwiki/trunk/src/main/web: templates tiny_mce/themes/wikieditor wiki_editor/plugins
Phung Hai Nam
namphunghai at users.forge.objectweb.org
Mon Jun 5 16:44:55 CEST 2006
Author: namphunghai
Date: 2006-06-05 16:44:55 +0200 (Mon, 05 Jun 2006)
New Revision: 1085
Modified:
xwiki/trunk/src/main/web/templates/macrowysiwyg.vm
xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/macro.htm
xwiki/trunk/src/main/web/wiki_editor/plugins/macros.js
Log:
Fixed some problems in macro in wysiwyg editor, compatible with IE
Modified: xwiki/trunk/src/main/web/templates/macrowysiwyg.vm
===================================================================
--- xwiki/trunk/src/main/web/templates/macrowysiwyg.vm 2006-06-05 07:17:51 UTC (rev 1084)
+++ xwiki/trunk/src/main/web/templates/macrowysiwyg.vm 2006-06-05 14:44:55 UTC (rev 1085)
@@ -52,10 +52,11 @@
#if ($counter == 2)
#set($params = $infoMacro.split(","))
#foreach ($param in $params)
+ #set($param = $param.trim())
<tr>
- <td nowrap="nowrap" width="25%">$param :</td>
+ <td nowrap="nowrap" width="25%">$param.substring(0,1).toUpperCase()$param.substring(1) :</td>
<td>
- <input type="text" id="$param" name="$param" style="width:240px;"/>
+ <input type="text" id="$param" name="$param" style="width:240px;" value=""/>
</td>
</tr>
#end
@@ -63,7 +64,7 @@
#if($counter == 3)
#if (!$infoMacro.equals(""))
<tr>
- <td nowrap='nowrap'>$infoMacro :</td>
+ <td nowrap='nowrap'>$infoMacro.substring(0,1).toUpperCase()$infoMacro.substring(1) :</td>
<td>
<textarea id="content" name="content" rows='' cols='4' style='width:240px;'></textarea>
</td>
Modified: xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/macro.htm
===================================================================
--- xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/macro.htm 2006-06-05 07:17:51 UTC (rev 1084)
+++ xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/macro.htm 2006-06-05 14:44:55 UTC (rev 1085)
@@ -1,138 +1,142 @@
-<html>
-<head>
-<title>{$lang_insert_macro_title}</title>
-<script language="javascript" src="../../tiny_mce_popup.js"></script>
-<script language="javascript">
- var baseurl = tinyMCE.getParam("wiki_macro_path");
-</script>
-<script language="javascript">
- function init() {
- editor_id = tinyMCE.getWindowArg('editor_id');
- }
- function insertMacro() {
- if (window.opener) {
- var href = document.getElementById("macro").value;
- window.opener.wikiEditor.insertMacro(editor_id, href);
- tinyMCE.closeDialog();
- }
- }
- function cancelAction() {
- tinyMCE.closeDialog();
- }
- //------------------
- // threadsafe asynchronous XMLHTTPRequest code
- function executeCommand(url, callback) {
- // we use a javascript feature here called "inner functions"
- // using these means the local variables retain their values after the outer function
- // has returned. this is useful for thread safety, so
- // reassigning the onreadystatechange function doesn't stomp over earlier requests.
- function ajaxBindCallback() {
- if (ajaxRequest.readyState == 4) {
- if (ajaxRequest.status == 200) {
- if (ajaxCallback) {
- ajaxCallback(ajaxRequest.responseText);
- } else {
- alert('no callback defined');
- }
- } else {
- alert("There was a problem retrieving the xml data:\n" + ajaxRequest.status + ":\t" + ajaxRequest.statusText + "\n" + ajaxRequest.responseText);
- }
- }
- }
- // addMessage(url);
- // use a local variable to hold our request and callback until the inner function is called...
- var ajaxRequest = null;
- var ajaxCallback = callback;
-
- // bind our callback then hit the server...
- if (window.XMLHttpRequest) {
- ajaxRequest = new XMLHttpRequest();
- ajaxRequest.onreadystatechange = ajaxBindCallback;
- ajaxRequest.open("GET", url, true);
- ajaxRequest.send(null);
- } else if (window.ActiveXObject) {
- // ie
- ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
- if (ajaxRequest) {
- ajaxRequest.onreadystatechange = ajaxBindCallback;
- ajaxRequest.open("GET", url, true);
- ajaxRequest.send();
- }
- else{
- alert("your browser does not support xmlhttprequest" )
- }
- }
- else{
- alert("your browser does not support xmlhttprequest" )
- }
- }
- function loadMacroList(baseurl) {
- var url = baseurl + "?xpage=macrowysiwyg";
- executeCommand(url, loadMacroListCallback);
- }
-
- function loadMacroListCallback(e) {
- var macroEl = document.getElementById("macros");
- macroEl.innerHTML = e;
- }
-
-</script>
-<script type="text/javascript">
- function inputMacro() {
- var selObj = document.getElementById("selmacro");
- var selectedindex = selObj.selectedIndex;
- var selectedMacro = document.getElementById("selmacro").options[selectedindex].value;
- document.getElementById("input").innerHTML = document.getElementById(selectedMacro).innerHTML ;
- }
- function checkForm() {
- var macroparamstr = document.getElementById("macroparam").value;
- if (macroparamstr != null && macroparamstr != "") {
- macroparams = macroparamstr.split(",");
- for(var i=0; i < macroparams.length; i++) {
- var value = document.getElementById(macroparams[i]).value;
- if (value == null || value == "" ) {
- alert("You must choose at least a macro and fill all the fields !");
- return false;
- }
- }
- }
- return true;
- }
- function setMacro() {
- var macroparamstr = document.getElementById("macroparam").value;
- var macrocontent = document.getElementById("content").value;
- var macroname = document.getElementById("macroname").value;
- var macro = "";
- if (macroparamstr != null && macroparamstr != "") {
- macro = "{" + macroname + ":";
- macroparams = macroparamstr.split(",");
- for(var i=0; i < macroparams.length; i++) {
- macro += macroparams[i] + "=" + document.getElementById(macroparams[i]).value;
- if (i != macroparams.length-1 ) macro += "|";
- }
- macro += "}";
- if ((macrocontent !=null && macrocontent !="")) {
- macro += macrocontent + "{" +macroname+ "}";
- }
- } else macro = "{" + macroname +"}";
- document.write("<input type='text' id='macro' name='macro' value='" + macro + "'/>");
- }
-</script>
-</head>
-<body onload="init();">
-<div id="macros"></div>
-<script type="text/javascript">
- loadMacroList(baseurl);
-</script>
-<div>
- <table width="95%" border="0" cellspacing="0" cellpadding="0">
- <tr align="center">
- <td align="center"><input type="button" id="insert" name="insert" value="{$lang_insert_macro}" onclick="if(checkForm()){setMacro(); insertMacro();}" >
- </td>
- <td align="left"><input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onClick="cancelAction();"></td>
- <td></td>
- </tr>
- </table>
-</div>
-</body>
-</html>
+<html>
+<head>
+<title>{$lang_insert_macro_title}</title>
+<script language="javascript" src="../../tiny_mce_popup.js"></script>
+<script language="javascript">
+ var baseurl = tinyMCE.getParam("wiki_macro_path");
+ var strMacro = "";
+</script>
+<script language="javascript">
+ function init() {
+ editor_id = tinyMCE.getWindowArg('editor_id');
+ }
+ function insertMacro() {
+ if (window.opener) {
+ var macro = strMacro.toString();
+ window.opener.wikiEditor.insertMacro(editor_id, macro);
+ tinyMCE.closeDialog();
+ }
+ }
+ function cancelAction() {
+ tinyMCE.closeDialog();
+ }
+ //------------------
+ // threadsafe asynchronous XMLHTTPRequest code
+ function executeCommand(url, callback) {
+ // we use a javascript feature here called "inner functions"
+ // using these means the local variables retain their values after the outer function
+ // has returned. this is useful for thread safety, so
+ // reassigning the onreadystatechange function doesn't stomp over earlier requests.
+ function ajaxBindCallback() {
+ if (ajaxRequest.readyState == 4) {
+ if (ajaxRequest.status == 200) {
+ if (ajaxCallback) {
+ ajaxCallback(ajaxRequest.responseText);
+ } else {
+ alert('no callback defined');
+ }
+ } else {
+ alert("There was a problem retrieving the xml data:\n" + ajaxRequest.status + ":\t" + ajaxRequest.statusText + "\n" + ajaxRequest.responseText);
+ }
+ }
+ }
+ // addMessage(url);
+ // use a local variable to hold our request and callback until the inner function is called...
+ var ajaxRequest = null;
+ var ajaxCallback = callback;
+
+ // bind our callback then hit the server...
+ if (window.XMLHttpRequest) {
+ ajaxRequest = new XMLHttpRequest();
+ ajaxRequest.onreadystatechange = ajaxBindCallback;
+ ajaxRequest.open("GET", url, true);
+ ajaxRequest.send(null);
+ } else if (window.ActiveXObject) {
+ // ie
+ ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
+ if (ajaxRequest) {
+ ajaxRequest.onreadystatechange = ajaxBindCallback;
+ ajaxRequest.open("GET", url, true);
+ ajaxRequest.send();
+ }
+ else{
+ alert("your browser does not support xmlhttprequest" )
+ }
+ }
+ else{
+ alert("your browser does not support xmlhttprequest" )
+ }
+ }
+ function loadMacroList(baseurl) {
+ var url = baseurl + "?xpage=macrowysiwyg";
+ executeCommand(url, loadMacroListCallback);
+ }
+
+ function loadMacroListCallback(e) {
+ var macroEl = document.getElementById("macros");
+ macroEl.innerHTML = e;
+ }
+
+</script>
+<script type="text/javascript">
+ function inputMacro() {
+ var selObj = document.getElementById("selmacro");
+ var selectedindex = selObj.selectedIndex;
+ var selectedMacro = document.getElementById("selmacro").options[selectedindex].value;
+ document.getElementById("input").innerHTML = document.getElementById(selectedMacro).innerHTML ;
+ }
+ function checkForm() {
+ var macroparamstr = document.getElementById("macroparam").value;
+ if (macroparamstr != null && macroparamstr != "") {
+ macroparams = macroparamstr.split(",");
+ for(var i=0; i < macroparams.length; i++) {
+ var elementID = macroparams[i].toString().replace(/\r\n| /g,"");
+ values = document.getElementById(elementID).value;
+ if (values == null || values == "" ) {
+ alert("You must choose at least a macro and fill all the fields !");
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+ function setMacro() {
+ var macroparamstr = document.getElementById("macroparam").value;
+ var macrocontent = document.getElementById("content").value;
+ var macroname = document.getElementById("macroname").value;
+ var macro = "";
+ if (macroparamstr != null && macroparamstr != "") {
+ macro = "{" + macroname + ":";
+ macroparams = macroparamstr.split(",");
+ for(var i=0; i < macroparams.length; i++) {
+ var elementID = macroparams[i].toString().replace(/\r\n| /g,"");
+ macro += elementID.toString() + "=" + document.getElementById(elementID).value;
+ if (i != macroparams.length-1 ) macro += "|";
+ }
+ macro += "}";
+ if ((macrocontent !=null && macrocontent !="")) {
+ macro += macrocontent + "{" +macroname+ "}";
+ }
+ } else macro = "{" + macroname +"}";
+
+ strMacro = macro;
+ }
+</script>
+</head>
+<body onload="init();">
+<div id="macros"></div>
+<script type="text/javascript">
+ loadMacroList(baseurl);
+</script>
+<div>
+ <table width="95%" border="0" cellspacing="0" cellpadding="0">
+ <tr align="center">
+ <td align="center"><input type="button" id="insert" name="insert" value="{$lang_insert_macro}" onclick="if(checkForm()){setMacro(); insertMacro();}" >
+ </td>
+ <td align="left"><input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onClick="cancelAction();"></td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+</body>
+</html>
Modified: xwiki/trunk/src/main/web/wiki_editor/plugins/macros.js
===================================================================
--- xwiki/trunk/src/main/web/wiki_editor/plugins/macros.js 2006-06-05 07:17:51 UTC (rev 1084)
+++ xwiki/trunk/src/main/web/wiki_editor/plugins/macros.js 2006-06-05 14:44:55 UTC (rev 1085)
@@ -36,13 +36,13 @@
}
WikiEditor.prototype.handleMacrosButtons = function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
- tinyMCE.switchClassSticky(editor_id + '_image', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_macro', 'mceButtonNormal');
do
{
switch (node.nodeName.toLowerCase())
{
case "macro":
- tinyMCE.switchClassSticky(editor_id + '_image', 'mceButtonSelected');
+ tinyMCE.switchClassSticky(editor_id + '_macro', 'mceButtonSelected');
break;
}
} while ((node = node.parentNode));
More information about the Xwiki-notifications
mailing list