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|&nbsp;/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|&nbsp;/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