<%@ taglib prefix="ww" uri="/webwork" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
-<c:url var="iconDeleteUrl" value="/images/icons/delete.gif" />
-<c:url var="iconCreateUrl" value="/images/icons/create.png" />
+<c:url var="iconDeleteUrl" value="/images/icons/delete.gif"/>
+<c:url var="iconCreateUrl" value="/images/icons/create.png"/>
<c:choose>
<c:when test="${mode == 'edit'}">
- <c:set var="addedit" value="Edit" />
+ <c:set var="addedit" value="Edit"/>
</c:when>
<c:otherwise>
- <c:set var="addedit" value="Add" />
+ <c:set var="addedit" value="Add"/>
</c:otherwise>
</c:choose>
<div id="contentArea">
- <ww:actionerror/>
- <ww:actionmessage/>
-
- <ww:form name="saveProxyConnector" method="post" action="saveProxyConnector" namespace="/admin">
- <ww:hidden name="mode"/>
-
- <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="Managed 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:actionerror/>
+<ww:actionmessage/>
+
+<ww:form name="saveProxyConnector" method="post" action="saveProxyConnector" namespace="/admin">
+<ww:hidden name="mode"/>
+
+<input type="hidden" name="pattern"/>
+<ww:select name="connector.proxyId" list="proxyIdOptions" label="Network Proxy" required="true"/>
+<ww:select name="connector.sourceRepoId" list="managedRepoIdList"
+ label="Managed 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"
- onkeypress="submitenter(event, 'editProxyConnector!addProperty.action')" /> :
- <ww:textfield name="propertyValue" size="15" id="propertiesValue" theme="simple"
- onkeypress="submitenter(event, 'editProxyConnector!addProperty.action')"/>
- <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}']"
+ 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"
+ onkeypress="submitenter(event, 'editProxyConnector!addProperty.action')"/>
+ :
+ <ww:textfield name="propertyValue" size="15" id="propertiesValue" theme="simple"
+ onkeypress="submitenter(event, 'editProxyConnector!addProperty.action')"/>
+ <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"
- onkeypress="submitenter(event, 'editProxyConnector!addBlackListPattern.action')"/>
- <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"
- onkeypress="submitenter(event, 'editProxyConnector!addWhiteListPattern.action')"/>
- <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>
-
+ 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>
- <ww:submit value="Save Proxy Connector"/>
- </ww:form>
+ </td>
+ </tr>
+ </c:forEach>
+ </table>
+ </c:otherwise>
+ </c:choose>
+ </td>
+</tr>
- <script type="text/javascript">
- <!--
- document.getElementById("saveProxyConnector_proxyId").focus();
+<tr class="seperator">
+ <td valign="top">
+ <label for="blackListEntry">Black List:</label>
+ </td>
+ <td>
+ <ww:textfield name="blackListPattern" size="30" id="blackListEntry" theme="simple"
+ onkeypress="submitenter(event, 'editProxyConnector!addBlackListPattern.action')"/>
+ <ww:submit name="action:editProxyConnector!addBlackListPattern" value="Add Pattern" theme="simple"/>
+ </td>
+</tr>
- function setAndSubmit(id, value, action)
- {
- var f = document.forms['saveProxyConnector'];
+<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>
- f.action = action;
- f.elements[id].value = value;
- f.submit();
- }
+<tr class="seperator">
+ <td valign="top">
+ <label for="whiteListEntry">White List:</label>
+ </td>
+ <td>
+ <ww:textfield name="whiteListPattern" size="30" id="whiteListEntry" theme="simple"
+ onkeypress="submitenter(event, 'editProxyConnector!addWhiteListPattern.action')"/>
+ <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>
- function submitForm( action )
- {
- var f = document.forms['saveProxyConnector'];
- f.action = action;
- f.submit();
- }
+<ww:submit value="Save Proxy Connector"/>
+</ww:form>
- function submitenter( e, action )
- {
- var keycode;
+<script type="text/javascript">
+ <!--
+ document.getElementById("saveProxyConnector_proxyId").focus();
+
+ function setAndSubmit( id, value, action )
+ {
+ var f = document.forms['saveProxyConnector'];
+
+ f.action = action;
+ f.elements[id].value = value;
+ f.submit();
+ }
- if (window.event)
- {
- keycode = window.event.keyCode;
- }
- else if (e)
- {
- keycode = e.which;
- }
- else
- {
- return true;
- }
+ function submitForm( action )
+ {
+ var f = document.forms['saveProxyConnector'];
- if (keycode == 13)
- {
- submitForm( action );
- return false;
- }
- else
- {
- return true;
- }
+ f.action = action;
+ f.submit();
+ }
+
+ function submitenter( e, action )
+ {
+ var keycode;
+
+ if ( window.event )
+ {
+ keycode = window.event.keyCode;
+ }
+ else if ( e )
+ {
+ keycode = e.which;
+ }
+ else
+ {
+ return true;
+ }
+
+ if ( keycode == 13 )
+ {
+ submitForm(action);
+ return false;
+ }
+ else
+ {
+ return true;
}
+ }
- //-->
- </script>
+ //-->
+</script>
</div>
<%@ taglib prefix="ww" uri="/webwork" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
-<%@ taglib prefix="redback" uri="http://plexus.codehaus.org/redback/taglib-1.0" %>
+<%@ taglib prefix="redback" uri="http://plexus.codehaus.org/redback/taglib-1.0" %>
<%@ taglib prefix="archiva" uri="http://maven.apache.org/archiva" %>
<html>
<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" />
+<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 />
- <ww:actionmessage />
-
- <div style="float:right">
- <redback:ifAnyAuthorized permissions="archiva-manage-configuration">
- <ww:url id="addProxyConnectorUrl" action="addProxyConnector" />
- <ww:a href="%{addProxyConnectorUrl}" cssClass="create">
- <img src="<c:url value="/images/icons/create.png" />" />
- Add Proxy Connector
- </ww:a>
- </redback:ifAnyAuthorized>
+<ww:actionerror/>
+<ww:actionmessage/>
+
+<div style="float:right">
+ <redback:ifAnyAuthorized permissions="archiva-manage-configuration">
+ <ww:url id="addProxyConnectorUrl" action="addProxyConnector"/>
+ <ww:a href="%{addProxyConnectorUrl}" cssClass="create">
+ <img src="<c:url value="/images/icons/create.png" />"/>
+ Add
+ </ww:a>
+ </redback:ifAnyAuthorized>
+</div>
+
+<h2>Repository Proxy Connectors</h2>
+
+<c:choose>
+<c:when test="${empty(proxyConnectorMap)}">
+ <strong>No Repository Proxy Connectors Defined.</strong>
+</c:when>
+<c:otherwise>
+<table width="100%">
+<c:forEach items="${proxyConnectorMap}" var="repository" varStatus="i">
+
+<c:forEach items="${repository.value}" var="connector" varStatus="pc">
+<tr class="proxyConnector">
+<c:if test="${pc.first}">
+ <td class="managedRepo" rowspan="${fn:length(repository.value)}">
+ <div>
+ <img src="<c:url value="/images/archiva-splat-32.gif"/>"/>
+
+ <p class="id">${repository.key}</p>
+
+ <p class="name">${repoMap[repository.key].name}</p>
+ </div>
+ </td>
+</c:if>
+<td class="connector">
+ <div class="wrap">
+ <div class="controls">
+ <redback:ifAnyAuthorized permissions="archiva-manage-configuration">
+ <ww:url id="editProxyConnectorUrl" action="editProxyConnector">
+ <ww:param name="target" value="%{'${connector.targetRepoId}'}"/>
+ <ww:param name="source" value="%{'${connector.sourceRepoId}'}"/>
+ </ww:url>
+ <ww:url id="deleteProxyConnectorUrl" action="deleteProxyConnector" method="confirm">
+ <ww:param name="source" value="%{'${connector.sourceRepoId}'}"/>
+ <ww:param name="target" value="%{'${connector.targetRepoId}'}"/>
+ </ww:url>
+ <ww:a href="%{editProxyConnectorUrl}" cssClass="edit" title="Edit Proxy Connector">
+ <img src="${iconEditUrl}"/>
+ </ww:a>
+ <ww:a href="%{deleteProxyConnectorUrl}" cssClass="delete" title="Delete Proxy Connector">
+ <img src="${iconDeleteUrl}"/>
+ </ww:a>
+ </redback:ifAnyAuthorized>
+ </div>
+
+ <h4>Proxy Connector</h4>
+ <table>
+ <tr>
+ <th nowrap="nowrap">Network Proxy:</th>
+ <td>
+ <c:choose>
+ <c:when test="${empty(connector.proxyId)}">
+ <i>(Direct Connection)</i>
+ </c:when>
+ <c:otherwise>
+ <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>
+ </tr>
+ <tr>
+ <th>Policies:</th>
+ <td nowrap="nowrap">
+ <c:forEach items="${connector.policies}" var="policies">
+ <p><em>${policies.key}</em>: ${policies.value}</p>
+ </c:forEach>
+ </td>
+ </tr>
+
+ <c:if test="${not(empty(connector.whiteListPatterns))}">
+ <tr>
+ <th nowrap="nowrap">White List:</th>
+ <td nowrap="nowrap">
+ <c:forEach items="${connector.whiteListPatterns}" var="pattern">
+ <p><code>"${pattern}"</code></p>
+ </c:forEach>
+ </td>
+ </tr>
+ </c:if>
+
+ <c:if test="${not(empty(connector.blackListPatterns))}">
+ <tr>
+ <th nowrap="nowrap">Black List:</th>
+ <td>
+ <c:forEach items="${connector.blackListPatterns}" var="pattern">
+ <p><code>"${pattern}"</code></p>
+ </c:forEach>
+ </td>
+ </tr>
+ </c:if>
+
+ <c:if test="${not(empty(connector.properties))}">
+ <tr>
+ <th>Properties:</th>
+ <td>
+ <c:forEach items="${connector.properties}" var="prop">
+ <p><em>${prop.key}</em>: ${prop.value}</p>
+ </c:forEach>
+ </td>
+ </tr>
+ </c:if>
+ </table>
+ </div>
+</td>
+<td class="remoteRepo">
+ <div>
+ <img src="<c:url value="/images/archiva-world.png"/>"/>
+
+ <p class="id">${connector.targetRepoId}</p>
+
+ <p class="name">${repoMap[connector.targetRepoId].name}</p>
+
+ <p class="url">${repoMap[connector.targetRepoId].url}</p>
</div>
-
- <h2>Repository Proxy Connectors</h2>
-
- <c:choose>
- <c:when test="${empty(proxyConnectorMap)}">
- <strong>No Repository Proxy Connectors Defined.</strong>
- </c:when>
- <c:otherwise>
- <table width="100%">
- <c:forEach items="${proxyConnectorMap}" var="repository" varStatus="i">
-
- <c:forEach items="${repository.value}" var="connector" varStatus="pc">
- <tr class="proxyConnector">
- <c:if test="${pc.first}">
- <td class="managedRepo" rowspan="${fn:length(repository.value)}">
- <div>
- <img src="<c:url value="/images/archiva-splat-32.gif"/>" />
- <p class="id">${repository.key}</p>
- <p class="name">${repoMap[repository.key].name}</p>
- </div>
- </td>
- </c:if>
- <td class="connector">
- <div class="wrap">
- <div class="controls">
- <redback:ifAnyAuthorized permissions="archiva-manage-configuration">
- <ww:url id="editProxyConnectorUrl" action="editProxyConnector">
- <ww:param name="target" value="%{'${connector.targetRepoId}'}" />
- <ww:param name="source" value="%{'${connector.sourceRepoId}'}" />
- </ww:url>
- <ww:url id="deleteProxyConnectorUrl" action="deleteProxyConnector" method="confirm">
- <ww:param name="source" value="%{'${connector.sourceRepoId}'}" />
- <ww:param name="target" value="%{'${connector.targetRepoId}'}" />
- </ww:url>
- <ww:a href="%{editProxyConnectorUrl}" cssClass="edit" title="Edit Proxy Connector">
- <img src="${iconEditUrl}" />
- </ww:a>
- <ww:a href="%{deleteProxyConnectorUrl}" cssClass="delete" title="Delete Proxy Connector">
- <img src="${iconDeleteUrl}" />
- </ww:a>
- </redback:ifAnyAuthorized>
- </div>
-
- <h4>Proxy Connector</h4>
- <table>
- <tr>
- <th nowrap="nowrap">Network Proxy:</th>
- <td>
- <c:choose>
- <c:when test="${empty(connector.proxyId)}">
- <i>(Direct Connection)</i>
- </c:when>
- <c:otherwise>
- <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>
- </tr>
- <tr>
- <th>Policies:</th>
- <td nowrap="nowrap">
- <c:forEach items="${connector.policies}" var="policies">
- <p><em>${policies.key}</em>: ${policies.value}</p>
- </c:forEach>
- </td>
- </tr>
-
- <c:if test="${not(empty(connector.whiteListPatterns))}">
- <tr>
- <th nowrap="nowrap">White List:</th>
- <td nowrap="nowrap">
- <c:forEach items="${connector.whiteListPatterns}" var="pattern">
- <p><code>"${pattern}"</code></p>
- </c:forEach>
- </td>
- </tr>
- </c:if>
-
- <c:if test="${not(empty(connector.blackListPatterns))}">
- <tr>
- <th nowrap="nowrap">Black List:</th>
- <td>
- <c:forEach items="${connector.blackListPatterns}" var="pattern">
- <p><code>"${pattern}"</code></p>
- </c:forEach>
- </td>
- </tr>
- </c:if>
-
- <c:if test="${not(empty(connector.properties))}">
- <tr>
- <th>Properties:</th>
- <td>
- <c:forEach items="${connector.properties}" var="prop">
- <p><em>${prop.key}</em>: ${prop.value}</p>
- </c:forEach>
- </td>
- </tr>
- </c:if>
- </table>
- </div>
- </td>
- <td class="remoteRepo">
- <div>
- <img src="<c:url value="/images/archiva-world.png"/>" />
- <p class="id">${connector.targetRepoId}</p>
- <p class="name">${repoMap[connector.targetRepoId].name}</p>
- <p class="url">${repoMap[connector.targetRepoId].url}</p>
- </div>
- </td>
- </tr>
- </c:forEach>
- </c:forEach>
- </table>
- </c:otherwise>
- </c:choose>
+</td>
+</tr>
+</c:forEach>
+</c:forEach>
+</table>
+</c:otherwise>
+</c:choose>
</div>