Author: joakime
Date: Fri May 11 11:04:39 2007
New Revision: 537251

URL: http://svn.apache.org/viewvc?view=rev&rev=537251
Log:
[MRM-332]: Adding a Proxy Connector displays a blank page 

Added:
    
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/connectors/
    
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/
    
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/ConfigureProxyConnector-saveProxyConnector-validation.xml
   (with props)
Removed:
    
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/proxyConnectorForm.jspf
Modified:
    
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/ConfigureProxyConnectorAction.java
    maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/xwork.xml
    
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editNetworkProxy.jsp
    
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editProxyConnector.jsp
    
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/repositoryForm.jspf
    
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp

Modified: 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/ConfigureProxyConnectorAction.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/ConfigureProxyConnectorAction.java?view=diff&rev=537251&r1=537250&r2=537251
==============================================================================
--- 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/ConfigureProxyConnectorAction.java
 (original)
+++ 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/ConfigureProxyConnectorAction.java
 Fri May 11 11:04:39 2007
@@ -20,7 +20,6 @@
  */
 
 import com.opensymphony.xwork.Preparable;
-import com.opensymphony.xwork.Validateable;
 
 import org.apache.commons.collections.Closure;
 import org.apache.commons.collections.CollectionUtils;
@@ -29,7 +28,6 @@
 import org.apache.commons.lang.StringUtils;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.InvalidConfigurationException;
 import org.apache.maven.archiva.configuration.NetworkProxyConfiguration;
 import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration;
 import 
org.apache.maven.archiva.configuration.functors.ProxyConnectorSelectionPredicate;
@@ -46,7 +44,6 @@
 import org.codehaus.plexus.registry.RegistryException;
 import org.codehaus.plexus.xwork.action.PlexusActionSupport;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -64,7 +61,7 @@
  */
 public class ConfigureProxyConnectorAction
     extends PlexusActionSupport
-    implements SecureAction, Preparable, Validateable, Initializable
+    implements SecureAction, Preparable, Initializable
 {
     private static final String DIRECT_CONNECTION = "(direct connection)";
 
@@ -408,35 +405,32 @@
         String sourceId = getConnector().getSourceRepoId();
         String targetId = getConnector().getTargetRepoId();
 
+        if ( !validateConnector( getConnector() ) )
+        {
+            return INPUT;
+        }
+
         if ( StringUtils.equalsIgnoreCase( "edit", mode ) )
         {
             removeConnector( sourceId, targetId );
         }
-
-        try
+        else
         {
-            if ( StringUtils.equals( DIRECT_CONNECTION, 
getConnector().getProxyId() ) )
+            if ( findProxyConnector( sourceId, targetId ) != null )
             {
-                getConnector().setProxyId( null );
+                addActionError( "Unable to add new proxy connector with source 
[" + sourceId + "] and target ["
+                    + targetId + "] as previously declared proxy connector, go 
edit that one instead." );
+                return INPUT;
             }
-
-            addProxyConnector( getConnector() );
-            saveConfiguration();
-        }
-        catch ( IOException e )
-        {
-            addActionError( "I/O Exception: " + e.getMessage() );
-        }
-        catch ( InvalidConfigurationException e )
-        {
-            addActionError( "Invalid Configuration Exception: " + 
e.getMessage() );
         }
-        catch ( RegistryException e )
+
+        if ( StringUtils.equals( DIRECT_CONNECTION, 
getConnector().getProxyId() ) )
         {
-            addActionError( "Configuration Registry Exception: " + 
e.getMessage() );
+            getConnector().setProxyId( null );
         }
 
-        return SUCCESS;
+        addProxyConnector( getConnector() );
+        return saveConfiguration();
     }
 
     public void setBlackListPattern( String blackListPattern )
@@ -490,7 +484,6 @@
     }
 
     private void addProxyConnector( ProxyConnectorConfiguration proxyConnector 
)
-        throws IOException
     {
         archivaConfiguration.getConfiguration().addProxyConnector( 
proxyConnector );
     }
@@ -502,11 +495,9 @@
         ProxyConnectorSelectionPredicate selectedProxy = new 
ProxyConnectorSelectionPredicate( sourceId, targetId );
         return (ProxyConnectorConfiguration) CollectionUtils.find( 
config.getProxyConnectors(), selectedProxy );
     }
-    
-    public void validate()
+
+    public boolean validateConnector( ProxyConnectorConfiguration 
proxyConnector )
     {
-        ProxyConnectorConfiguration proxyConnector = getConnector();
-        
         if ( proxyConnector.getPolicies() == null )
         {
             addActionError( "Policies must be set." );
@@ -544,6 +535,8 @@
                 continue;
             }
         }
+
+        return !hasActionErrors();
     }
 
     private void removeConnector( String sourceId, String targetId )
@@ -554,11 +547,16 @@
     }
 
     private String saveConfiguration()
-        throws IOException, InvalidConfigurationException, RegistryException
     {
-        archivaConfiguration.save( archivaConfiguration.getConfiguration() );
-
-        addActionMessage( "Successfully saved configuration" );
+        try
+        {
+            archivaConfiguration.save( archivaConfiguration.getConfiguration() 
);
+            addActionMessage( "Successfully saved configuration" );
+        }
+        catch ( RegistryException e )
+        {
+            addActionError( "Unable to save configuration: " + e.getMessage() 
);
+        }
 
         return SUCCESS;
     }

Added: 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/ConfigureProxyConnector-saveProxyConnector-validation.xml
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/ConfigureProxyConnector-saveProxyConnector-validation.xml?view=auto&rev=537251
==============================================================================
--- 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/ConfigureProxyConnector-saveProxyConnector-validation.xml
 (added)
+++ 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/ConfigureProxyConnector-saveProxyConnector-validation.xml
 Fri May 11 11:04:39 2007
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
+    "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd";>
+
+<validators>
+  <field name="connector.sourceRepoId">
+    <field-validator type="requiredstring">
+      <param name="trim">true</param>
+      <message>You must select a source repository Id.</message>
+    </field-validator>
+  </field>
+  <field name="connector.targetRepoId">
+    <field-validator type="requiredstring">
+      <param name="trim">true</param>
+      <message>You must select a target repository Id.</message>
+    </field-validator>
+  </field>
+</validators>
\ No newline at end of file

Propchange: 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/ConfigureProxyConnector-saveProxyConnector-validation.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/ConfigureProxyConnector-saveProxyConnector-validation.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/apache/maven/archiva/web/action/admin/connectors/proxy/ConfigureProxyConnector-saveProxyConnector-validation.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/xwork.xml
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/xwork.xml?view=diff&rev=537251&r1=537250&r2=537251
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/xwork.xml 
(original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/xwork.xml 
Fri May 11 11:04:39 2007
@@ -271,7 +271,7 @@
     </action>
     
     <action name="addProxyConnector" class="configureProxyConnectorAction" 
method="add">
-      <result name="input">/WEB-INF/jsp/admin/addProxyConnector.jsp</result>
+      <result name="input">/WEB-INF/jsp/admin/editProxyConnector.jsp</result>
       <result name="success" type="redirect-action">proxyConnectors</result>
       <interceptor-ref name="configuredPrepareParamsStack"/>
     </action>

Modified: 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editNetworkProxy.jsp
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editNetworkProxy.jsp?view=diff&rev=537251&r1=537250&r2=537251
==============================================================================
--- 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editNetworkProxy.jsp
 (original)
+++ 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editNetworkProxy.jsp
 Fri May 11 11:04:39 2007
@@ -49,7 +49,7 @@
   <ww:actionmessage/>
   
   <ww:form method="post" action="saveNetworkProxy" namespace="/admin">
-    <ww:hidden name="mode"/>  
+    <ww:hidden name="mode"/>
     
     <ww:textfield name="proxy.id" label="Identifier" size="10" required="true"
       disabled="${disableId}"/>

Modified: 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editProxyConnector.jsp
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editProxyConnector.jsp?view=diff&rev=537251&r1=537250&r2=537251
==============================================================================
--- 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editProxyConnector.jsp
 (original)
+++ 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editProxyConnector.jsp
 Fri May 11 11:04:39 2007
@@ -18,27 +18,215 @@
   --%>
 
 <%@ taglib prefix="ww" uri="/webwork" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"; %>
+
+<c:choose>
+  <c:when test="${mode == 'edit'}">
+    <c:set var="addedit" value="Edit" />
+  </c:when>
+  <c:otherwise>
+    <c:set var="addedit" value="Add" />
+  </c:otherwise>
+</c:choose>
 
 <html>
 <head>
-  <title>Admin : Edit Proxy Connector</title>
+  <title>Admin : ${addedit} Proxy Connector</title>
   <ww:head/>
+  <script type="text/javascript">
+  <!--
+    function setAndSubmit(id, value, action)
+    {
+       var f = document.forms.saveProxyConnector;
+       
+       f.action = action;
+       f[id].value = value;
+       f.submit();
+    }
+  //-->
+  </script>
 </head>
 
 <body>
 
-<h1>Admin : Edit Proxy Connector</h1>
+<h1>Admin : ${addedit} Proxy Connector</h1>
 
 <div id="contentArea">
 
-  <h2>Edit Proxy Connector</h2>
-
   <ww:actionerror/>
   <ww:actionmessage/>
   
-  <ww:form method="post" action="saveProxyConnector" namespace="/admin" 
validate="false">
+  <ww:form method="post" action="saveProxyConnector" namespace="/admin">
     <ww:hidden name="mode"/>  
-    <%@ include file="/WEB-INF/jsp/admin/include/proxyConnectorForm.jspf" %>
+    
+    <input type="hidden" name="pattern"/>
+    <ww:select name="connector.proxyId" list="proxyIdOptions" label="Network 
Proxy" required="true"/>
+    <ww:select name="connector.sourceRepoId" list="localRepoIdList" 
+               label="Local Repository" required="true"/>
+    <ww:select name="connector.targetRepoId" list="remoteRepoIdList" 
+               label="Remote Repository" required="true" />
+  
+    <tr>
+      <td valign="top"><label>Policies:</label>
+    </td>
+    <td>
+      <table>
+        <c:forEach items="${policyMap}" var="policy" varStatus="i">
+          <tr>
+            <td>
+              <ww:label for="policy_${policy.key}" required="true"
+                        theme="simple">${policy.key}:</ww:label>
+            </td>
+            <td>
+            <ww:select name="connector.policies['${policy.key}']"
+                       list="policyMap['${policy.key}'].options"
+                       value="connector.policies['${policy.key}']"
+                       id="policy_${policy.key}"
+                       theme="simple"
+                       cssStyle="width: 10em" />
+            </td>
+          </tr>
+        </c:forEach>
+      </table>
+    </td></tr>
+  
+    <tr class="seperator">
+      <td valign="top">
+        <label for="propertiesEntry">Properties:</label>
+      </td>
+      <td>
+        <ww:textfield name="propertyKey" size="15" id="propertiesEntry" 
theme="simple" /> :
+        <ww:textfield name="propertyValue" size="15" id="propertiesValue" 
theme="simple" />
+        <ww:submit name="action:editProxyConnector!addProperty" value="Add 
Property" theme="simple" />
+      </td>
+    </tr>
+    
+    <tr>
+      <td>
+      </td>
+      <td>
+        <c:choose>
+          <c:when test="${empty(connector.properties)}">
+            <i>No properties have been set.</i>
+          </c:when>
+          <c:otherwise>
+            <ww:url id="removePropertyUrl" 
+                    action="editProxyConnector" 
+                    method="removeProperty" />
+            <table>
+              <c:forEach items="${connector.properties}" var="property" 
varStatus="i">
+                <tr>
+                  <td>
+                    <ww:label for="property_${property.key}"
+                              theme="simple">${property.key}</ww:label>
+                  </td>
+                  <td>
+                    <ww:textfield 
name="connector.properties['${property.key}']" 
+                              size="15"
+                              id="property_${property.key}"
+                              theme="simple" />
+                  </td>
+                  <td>
+                    <ww:a href="#" title="Remove [${property.key}] Property"
+                          onclick="setAndSubmit('propertyKey', 
'${property.key}', '%{removePropertyUrl}')"
+                          theme="simple">
+                    <img src="${iconDeleteUrl}" /></ww:a>
+                    
+                  </td>
+                </tr>
+              </c:forEach>
+            </table>
+          </c:otherwise>
+        </c:choose>
+      </td>
+    </tr>
+  
+    <tr class="seperator">
+      <td valign="top">
+        <label for="blackListEntry">Black List:</label>
+      </td>
+      <td>
+        <ww:textfield name="blackListPattern" size="30" id="blackListEntry" 
theme="simple" />
+        <ww:submit name="action:editProxyConnector!addBlackListPattern" 
value="Add Pattern" theme="simple" />
+      </td>
+    </tr>
+    
+    <tr>
+      <td>
+      </td>
+      <td>
+        <ww:url id="removeBlackListPatternUrl" 
+                action="editProxyConnector" 
+                method="removeBlackListPattern" />
+        <c:choose>
+          <c:when test="${empty(connector.blackListPatterns)}">
+            <i>No black list patterns have been set.</i>
+          </c:when>
+          <c:otherwise>
+            <table>
+            <c:forEach items="${connector.blackListPatterns}" var="pattern" 
varStatus="i">
+              <tr>
+                <td>
+                  <ww:hidden name="connector.blackListPatterns" 
value="${pattern}"/>
+                  <code>"${pattern}"</code>
+                </td>
+                <td>
+                  <ww:a href="#" title="Remove [${pattern}] Pattern"
+                        onclick="setAndSubmit('pattern', '${pattern}', 
'%{removeBlackListPatternUrl}')"
+                        theme="simple">
+                  <img src="${iconDeleteUrl}" /></ww:a>
+                </td>
+              </tr>
+            </c:forEach>
+            </table>
+          </c:otherwise>
+        </c:choose>
+      </td>
+    </tr>
+  
+    <tr class="seperator">
+      <td valign="top">
+        <label for="whiteListEntry">White List:</label>
+      </td>
+      <td>
+        <ww:textfield name="whiteListPattern" size="30" id="whiteListEntry" 
theme="simple" />
+        <ww:submit name="action:editProxyConnector!addWhiteListPattern" 
value="Add Pattern" theme="simple" />
+      </td>
+    </tr>
+    <tr>
+      <td>
+      </td>
+      <td>
+        <ww:url id="removeWhiteListPatternUrl" 
+                action="editProxyConnector" 
+                method="removeWhiteListPattern" />
+        <c:choose>
+          <c:when test="${empty(connector.whiteListPatterns)}">
+            <i>No white list patterns have been set.</i>
+          </c:when>
+          <c:otherwise>
+            <table>
+            <c:forEach items="${connector.whiteListPatterns}" var="pattern" 
varStatus="i">
+              <tr>
+                <td>
+                  <ww:hidden name="connector.whiteListPatterns" 
value="${pattern}"/>
+                  <code>"${pattern}"</code>
+                </td>
+                <td>
+                  <ww:a href="#" title="Remove [${pattern}] Pattern"
+                        onclick="setAndSubmit('pattern', '${pattern}', 
'%{removeWhiteListPatternUrl}')"
+                        theme="simple">
+                  <img src="${iconDeleteUrl}" /></ww:a>
+                </td>
+              </tr>
+            </c:forEach>
+            </table>
+          </c:otherwise>
+        </c:choose>
+      </td>
+    </tr>
+    
+
     <ww:submit value="Save Proxy Connector"/>
   </ww:form>
 

Modified: 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/repositoryForm.jspf
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/repositoryForm.jspf?view=diff&rev=537251&r1=537250&r2=537251
==============================================================================
--- 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/repositoryForm.jspf
 (original)
+++ 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/repositoryForm.jspf
 Fri May 11 11:04:39 2007
@@ -20,10 +20,10 @@
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"; %>
 
 <ww:textfield name="repository.name" label="Name" size="50" required="true"/>
-<ww:textfield name="repository.url" label="Directory or URL" size="100" 
required="true"/>  
+<ww:textfield name="repository.url" label="Directory or URL" size="50" 
required="true"/>  
 <ww:select list="[EMAIL PROTECTED]@{'default' : 'Maven 2.x Repository', 
'legacy' : 'Maven 1.x Repository'}"
            name="repository.layout" label="Type"/>
-<ww:textfield name="repository.refreshCronExpression" label="Cron" size="100" 
required="true" />
+<ww:textfield name="repository.refreshCronExpression" label="Cron" size="40" 
required="true" />
 <ww:checkbox name="repository.releases" fieldValue="true" label="Releases 
Included"/>
 <ww:checkbox name="repository.snapshots" fieldValue="false" label="Snapshots 
Included"/>
 <ww:checkbox name="repository.indexed" fieldValue="true" label="Indexed"/>

Modified: 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp?view=diff&rev=537251&r1=537250&r2=537251
==============================================================================
--- 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp
 (original)
+++ 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp
 Fri May 11 11:04:39 2007
@@ -33,6 +33,10 @@
 
 <h1>Administration - Proxy Connectors</h1>
 
+<c:url var="iconDeleteUrl" value="/images/icons/delete.gif" /> 
+<c:url var="iconEditUrl" value="/images/icons/edit.png" /> 
+<c:url var="iconCreateUrl" value="/images/icons/create.png" /> 
+
 <div id="contentArea">
 
   <ww:actionerror />
@@ -82,10 +86,10 @@
                       <ww:param name="target" 
value="%{'${connector.targetRepoId}'}" />
                     </ww:url>
                     <ww:a href="%{editProxyConnectorUrl}" cssClass="edit" 
title="Edit Proxy Connector">
-                      <img src="<c:url value="/images/icons/edit.png" />" />
+                      <img src="${iconEditUrl}" />
                     </ww:a>
                     <ww:a href="%{deleteProxyConnectorUrl}" cssClass="delete" 
title="Delete Proxy Connector">
-                      <img src="<c:url value="/images/icons/delete.gif" />" />
+                      <img src="${iconDeleteUrl}" />
                     </ww:a>
                   </redback:ifAnyAuthorized>
                 </div>
@@ -100,7 +104,13 @@
                           <i>(Direct Connection)</i>
                         </c:when>
                         <c:otherwise>
-                          ${connector.proxyId}
+                          <ww:url id="editProxyIdUrl" 
action="editNetworkProxy">
+                            <ww:param name="proxyid" 
value="%{'${connector.proxyId}'}" />
+                          </ww:url>
+                          <ww:a href="%{editProxyIdUrl}" cssClass="edit" 
title="Edit Network Proxy">
+                            ${connector.proxyId}
+                            <img src="${iconEditUrl}" />
+                          </ww:a>
                         </c:otherwise>
                       </c:choose>
                     </td>


Reply via email to