Author: indika
Date: Sun Jan 13 08:16:05 2008
New Revision: 12168

Log:

fix for ESB-JAVA 420


Modified:
   
branches/esb/java/1.6/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/makefault_mediator.js

Modified: 
branches/esb/java/1.6/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/makefault_mediator.js
==============================================================================
--- 
branches/esb/java/1.6/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/makefault_mediator.js
 (original)
+++ 
branches/esb/java/1.6/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/makefault_mediator.js
 Sun Jan 13 08:16:05 2008
@@ -19,6 +19,14 @@
  */
 
 var mediatorPosition;
+var currentsoapversion = "soap11"
+
+initedit["makefault"] = function initmakefaultedit(mediator) {
+    var version = mediator.getAttribute("version");
+    if (version != null && version != undefined) {
+        currentsoapversion = version;
+    }
+};
 
 collectdata["makefault"] = function collectlogdata(mediator) {
 
@@ -28,7 +36,7 @@
     } else {
         selectedVersion = "soap12";
     }
-    
+
     var reasonContent = document.getElementById("reasonContent").value;
 
     var prefix = "";
@@ -58,23 +66,23 @@
         var codeelem = mediator.getElementsByTagName(prefix + "code")[0];
         mediator.removeChild(codeelem);
 
-        if(selectedVersion == "soap11"){
+        if (selectedVersion == "soap11") {
             mediator.appendChild(createesbelement("<syn:code value='sf11:" + 
codeValue
-                    + "' 
xmlns:sf11='http://schemas.xmlsoap.org/soap/envelope/' "
-                    + "xmlns:syn='http://ws.apache.org/ns/synapse'/>"));
-            mediator.setAttribute("version","soap11");
+                + "' xmlns:sf11='http://schemas.xmlsoap.org/soap/envelope/' "
+                + "xmlns:syn='http://ws.apache.org/ns/synapse'/>"));
+            mediator.setAttribute("version", "soap11");
         }
 
-        if(selectedVersion == "soap12"){
+        if (selectedVersion == "soap12") {
             mediator.appendChild(createesbelement("<syn:code value='sf12:" + 
codeValue
-                    + "' xmlns:sf12='http://www.w3.org/2003/05/soap-envelope' "
-                    + "xmlns:syn='http://ws.apache.org/ns/synapse'/>"));
-            mediator.setAttribute("version","soap12");
+                + "' xmlns:sf12='http://www.w3.org/2003/05/soap-envelope' "
+                + "xmlns:syn='http://ws.apache.org/ns/synapse'/>"));
+            mediator.setAttribute("version", "soap12");
         }
 
         var reasonTypeValue = document.getElementById("reasonTypeValue");
         var reasonelem = mediator.getElementsByTagName(prefix + "reason")[0];
-        
+
         if (reasonTypeValue.checked) {
             if (reasonelem.getAttribute("expression") != null) {
                 reasonelem.removeAttribute("expression");
@@ -88,31 +96,31 @@
         }
 
         if (selectedVersion == "soap12") {
-            
+
             if (document.getElementById("node").value != "") {
                 mediator.appendChild(createesbelement(
-                        "<syn:node 
xmlns:syn='http://ws.apache.org/ns/synapse'>"
-                                + trim(document.getElementById("node").value) 
+ "</syn:node>"));
-            } 
+                    "<syn:node xmlns:syn='http://ws.apache.org/ns/synapse'>"
+                        + trim(document.getElementById("node").value) + 
"</syn:node>"));
+            }
         }
 
         if (document.getElementById("role").value != "") {
             mediator.appendChild(createesbelement(
-                    "<syn:role xmlns:syn='http://ws.apache.org/ns/synapse'>"
-                            + trim(document.getElementById("role").value) + 
"</syn:role>"));
+                "<syn:role xmlns:syn='http://ws.apache.org/ns/synapse'>"
+                    + trim(document.getElementById("role").value) + 
"</syn:role>"));
         }
 
         if (document.getElementById("detail") != null && 
document.getElementById("detail").value != "") {
             mediator.appendChild(createesbelement(
-                    "<syn:detail xmlns:syn='http://ws.apache.org/ns/synapse'>"
-                            + trim(document.getElementById("detail").value) + 
"</syn:detail>"));
+                "<syn:detail xmlns:syn='http://ws.apache.org/ns/synapse'>"
+                    + trim(document.getElementById("detail").value) + 
"</syn:detail>"));
         }
 
     } else {
         esbwarning("Code and Reason must be specified", TYPE_INFO);
         return false;
     }
-
+    currentsoapversion = "soap11"
     return true;
 };
 
@@ -123,37 +131,80 @@
 
 function changeVersion(version, position) {
 
-    if (version == "soap11") {
-        if (document.getElementById("soap12").checked) {
-            document.getElementById("soap11").checked = true;
-            document.getElementById("soap12").checked = false;
-
-            var epdiv = document.getElementById("makefault_edit_div");
-            var mediator = getnestedmediator(internalmodel.sequence, position);
+    if (currentsoapversion != version) {
 
+        currentsoapversion = version;
 
-            if (epdiv != null && mediator != null) {
-                mediator.setAttribute("version","soap11");
-                processXML(mediator, "mediators/makefault_edit.xsl", epdiv);
-            }
+        var epdiv = document.getElementById("makefault_edit_div");
+        var mediator = getnestedmediator(internalmodel.sequence, position);
+
+        clearAllAttributesOfMakeFaultMediator(mediator);
+
+        if (epdiv != null && mediator != null) {
+            mediator.setAttribute("version", version);
+            processXML(mediator, "mediators/makefault_edit.xsl", epdiv);
         }
+
     } else {
-        if (document.getElementById("soap11").checked) {
-            document.getElementById("soap11").checked = false;
-            document.getElementById("soap12").checked = true;
-
-            var epdiv = document.getElementById("makefault_edit_div");
-            var mediator = getnestedmediator(internalmodel.sequence, position);
-
-            if (epdiv != null && mediator != null) {
-                mediator.setAttribute("version", "soap12")
-                processXML(mediator, "mediators/makefault_edit.xsl", epdiv);
+        if (version == "soap11") {
+            if (document.getElementById("soap12").checked) {
+                document.getElementById("soap11").checked = true;
+                document.getElementById("soap12").checked = false;
+
+                var epdiv = document.getElementById("makefault_edit_div");
+                var mediator = getnestedmediator(internalmodel.sequence, 
position);
+
+
+                if (epdiv != null && mediator != null) {
+                    mediator.setAttribute("version", "soap11");
+                    processXML(mediator, "mediators/makefault_edit.xsl", 
epdiv);
+                }
+            }
+        } else {
+            if (document.getElementById("soap11").checked) {
+                document.getElementById("soap11").checked = false;
+                document.getElementById("soap12").checked = true;
+
+                var epdiv = document.getElementById("makefault_edit_div");
+                var mediator = getnestedmediator(internalmodel.sequence, 
position);
+
+                if (epdiv != null && mediator != null) {
+                    mediator.setAttribute("version", "soap12")
+                    processXML(mediator, "mediators/makefault_edit.xsl", 
epdiv);
+                }
             }
-        }
 
+        }
     }
 
-
+    function clearAllAttributesOfMakeFaultMediator(mediator) {
+        var limit = mediator.childNodes.length;
+        for (var i = 0; i < limit; i++) {
+            var child = mediator.childNodes[i] ;
+            if (child != null && child != undefined) {
+                var name = child.nodeName;
+                if (name == "syn:code" || name == "code") {
+                    child.removeAttribute("expression");
+                    child.removeAttribute("value");
+                } else if (name == "syn:reason" || name == "reason") {
+                    child.removeAttribute("expression");
+                    child.removeAttribute("value");
+                } else if (name == "syn:node" || name == "node") {
+                    while (child.childNodes != null && child.childNodes.length 
> 0) {
+                        
child.removeChild(child.childNodes[child.childNodes.length - 1]);
+                    }
+                } else if (name == "syn:role" || name == "role") {
+                    while (child.childNodes != null && child.childNodes.length 
> 0) {
+                        
child.removeChild(child.childNodes[child.childNodes.length - 1]);
+                    }
+                } else if (name == "syn:detail" || name == "detail") {
+                    while (child.childNodes != null && child.childNodes.length 
> 0) {
+                        
child.removeChild(child.childNodes[child.childNodes.length - 1]);
+                    }
+                }
+            }
+        }
+    }
 }
 
 

_______________________________________________
Esb-java-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/esb-java-dev

Reply via email to