| <%-- |
| ~ 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. |
| --%> |
| |
| <%@ taglib prefix="s" uri="/struts-tags" %> |
| <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> |
| <%@ taglib prefix="redback" uri="http://plexus.codehaus.org/redback/taglib-1.0" %> |
| <%@ taglib prefix="archiva" uri="http://archiva.apache.org" %> |
| |
| <html> |
| <head> |
| <title>Administration - Repositories</title> |
| <s:head/> |
| </head> |
| |
| <body> |
| |
| <h1>Administration - Repositories</h1> |
| |
| <div id="contentArea"> |
| |
| <s:actionerror/> |
| <s:actionmessage/> |
| |
| <div class="admin"> |
| <div class="controls"> |
| <redback:ifAuthorized permission="archiva-manage-configuration"> |
| <s:url id="addRepositoryUrl" action="addRepository"/> |
| <s:a href="%{addRepositoryUrl}"> |
| <img src="<c:url value="/images/icons/create.png" />" alt="" width="16" height="16"/> |
| Add |
| </s:a> |
| </redback:ifAuthorized> |
| </div> |
| <h2>Managed Repositories</h2> |
| |
| <c:choose> |
| <c:when test="${empty (managedRepositories)}"> |
| <%-- No Managed Repositories. --%> |
| <strong>There are no managed repositories configured yet.</strong> |
| </c:when> |
| <c:otherwise> |
| <%-- Display the repositories. --%> |
| |
| <c:forEach items="${managedRepositories}" var="repository" varStatus="i"> |
| <c:choose> |
| <c:when test='${(i.index)%2 eq 0}'> |
| <c:set var="rowColor" value="dark" scope="page"/> |
| </c:when> |
| <c:otherwise> |
| <c:set var="rowColor" value="lite" scope="page"/> |
| </c:otherwise> |
| </c:choose> |
| |
| <div class="repository ${rowColor}"> |
| |
| <div class="controls"> |
| <%-- TODO: make some icons --%> |
| <redback:ifAnyAuthorized permissions="archiva-manage-configuration"> |
| <s:url id="editRepositoryUrl" action="editRepository"> |
| <s:param name="repoid" value="%{#attr.repository.id}"/> |
| </s:url> |
| <s:url id="deleteRepositoryUrl" action="confirmDeleteRepository"> |
| <s:param name="repoid" value="%{#attr.repository.id}"/> |
| </s:url> |
| <s:a href="%{editRepositoryUrl}"> |
| <img src="<c:url value="/images/icons/edit.png" />" alt="" width="16" height="16"/> |
| Edit |
| </s:a> |
| <s:a href="%{deleteRepositoryUrl}"> |
| <img src="<c:url value="/images/icons/delete.gif" />" alt="" width="16" height="16"/> |
| Delete |
| </s:a> |
| </redback:ifAnyAuthorized> |
| <c:url var="rssFeedIconUrl" value="/images/icons/rss-feed.png"/> |
| <a href="/archiva/feeds/${repository.id}"> |
| <img src="${rssFeedIconUrl}" /> |
| </a> |
| </div> |
| |
| <div style="float: left"> |
| <img src="<c:url value="/images/archiva-splat-32.gif"/>" alt="" width="32" height="32"/> |
| </div> |
| |
| <h3 class="repository">${repository.name}</h3> |
| |
| <table class="infoTable"> |
| <tr> |
| <th>Identifier</th> |
| <td> |
| <code>${repository.id}</code> |
| </td> |
| </tr> |
| <tr> |
| <th>Name</th> |
| <td> |
| <code>${repository.name}</code> |
| </td> |
| </tr> |
| <tr> |
| <th>Directory</th> |
| <td>${repository.location}</td> |
| </tr> |
| <c:if test="${!empty (repository.indexDir)}"> |
| <tr> |
| <th>Index Directory</th> |
| <td>${repository.indexDir}</td> |
| </tr> |
| </c:if> |
| <tr> |
| <th>WebDAV URL</th> |
| <td><a href="${baseUrl}/${repository.id}/">${baseUrl}/${repository.id}/</a></td> |
| </tr> |
| <tr> |
| <th>Type</th> |
| <%-- TODO: can probably just use layout appended to a key prefix in i18n to simplify this --%> |
| <td> |
| <c:choose> |
| <c:when test="${repository.layout == 'default'}"> |
| Maven 2.x Repository |
| </c:when> |
| <c:otherwise> |
| Maven 1.x Repository |
| </c:otherwise> |
| </c:choose> |
| </td> |
| </tr> |
| <c:if test="${!empty (repositoryToGroupMap[repository.id])}"> |
| <tr> |
| <th>Groups</th> |
| <td> |
| <c:forEach items="${repositoryToGroupMap[repository.id]}" varStatus="i" var="group"> |
| ${group}<c:if test="${!i.last}">,</c:if> |
| </c:forEach> |
| </td> |
| </tr> |
| </c:if> |
| <tr> |
| <th>Releases Included</th> |
| <td class="${repository.releases ? 'donemark' : 'errormark'} booleanIcon"> </td> |
| </tr> |
| <tr> |
| <th>Snapshots Included</th> |
| <td class="${repository.snapshots ? 'donemark' : 'errormark'} booleanIcon"> </td> |
| </tr> |
| <c:if test="${repository.snapshots}"> |
| <tr> |
| <th>Delete Released Snapshots</th> |
| <td class="${repository.deleteReleasedSnapshots ? 'donemark' : 'errormark'} booleanIcon"> </td> |
| </tr> |
| <tr> |
| <th>Repository Purge By Days Older Than</th> |
| <td>${repository.daysOlder}</td> |
| </tr> |
| <tr> |
| <th>Repository Purge By Retention Count</th> |
| <td>${repository.retentionCount}</td> |
| </tr> |
| </c:if> |
| <tr> |
| <th>Scanned</th> |
| <td class="${repository.scanned ? 'donemark' : 'errormark'} booleanIcon"> </td> |
| </tr> |
| <c:if test="${repository.scanned}"> |
| <tr> |
| <th>Scanning Cron</th> |
| <td>${repository.refreshCronExpression}</td> |
| </tr> |
| <tr> |
| <th> |
| Actions |
| </th> |
| <td> |
| <table> |
| <tr> |
| <td> |
| <redback:ifAuthorized permission="archiva-run-indexer"> |
| <s:form action="indexRepository" theme="simple"> |
| <s:hidden name="repoid" value="%{#attr.repository.id}"/> |
| <s:submit value="Scan Repository Now"/> |
| </s:form> |
| </redback:ifAuthorized> |
| </td> |
| </tr> |
| </table> |
| </td> |
| </tr> |
| <tr> |
| <th>Stats</th> |
| <td> |
| <c:set var="stats" value="${repositoryStatistics[repository.id]}"/> |
| <c:choose> |
| <c:when test="${empty (stats)}"> |
| No Statistics Available. |
| </c:when> |
| <c:otherwise> |
| <table> |
| <tr> |
| <th>Last Scanned</th> |
| <td>${stats.whenGathered}</td> |
| </tr> |
| <tr> |
| <th>Duration</th> |
| <td>${stats.duration} ms</td> |
| </tr> |
| <tr> |
| <th>Total File Count</th> |
| <td>${stats.totalFileCount} |
| </tr> |
| <tr> |
| <th>New Files Found</th> |
| <td>${stats.newFileCount} |
| </tr> |
| </table> |
| </c:otherwise> |
| </c:choose> |
| </td> |
| </tr> |
| </c:if> |
| <tr> |
| <th>POM Snippet</th> |
| <td> |
| <archiva:copy-paste-snippet object="${repository}" wrapper="toggle" /> |
| </td> |
| </tr> |
| </table> |
| |
| </div> |
| </c:forEach> |
| |
| </c:otherwise> |
| </c:choose> |
| |
| <div class="controls"> |
| <redback:ifAuthorized permission="archiva-manage-configuration"> |
| <s:url id="addRepositoryUrl" action="addRemoteRepository"/> |
| <s:a href="%{addRepositoryUrl}"> |
| <img src="<c:url value="/images/icons/create.png" />" alt="" width="16" height="16"/> |
| Add |
| </s:a> |
| </redback:ifAuthorized> |
| </div> |
| <h2>Remote Repositories</h2> |
| |
| <c:choose> |
| <c:when test="${empty (remoteRepositories)}"> |
| <%-- No Remote Repositories. --%> |
| <strong>There are no remote repositories configured yet.</strong> |
| </c:when> |
| <c:otherwise> |
| <%-- Display the repositories. --%> |
| <c:forEach items="${remoteRepositories}" var="repository" varStatus="i"> |
| <c:choose> |
| <c:when test='${(i.index)%2 eq 0}'> |
| <c:set var="rowColor" value="dark" scope="page"/> |
| </c:when> |
| <c:otherwise> |
| <c:set var="rowColor" value="lite" scope="page"/> |
| </c:otherwise> |
| </c:choose> |
| |
| <div class="repository ${rowColor}"> |
| |
| <div class="controls"> |
| <redback:ifAnyAuthorized permissions="archiva-manage-configuration"> |
| <s:url id="editRepositoryUrl" action="editRemoteRepository"> |
| <s:param name="repoid" value="%{#attr.repository.id}"/> |
| </s:url> |
| <s:a href="%{editRepositoryUrl}"> |
| <img src="<c:url value="/images/icons/edit.png" />" alt="" width="16" height="16"/> |
| Edit |
| </s:a> |
| <s:url id="deleteRepositoryUrl" action="confirmDeleteRemoteRepository"> |
| <s:param name="repoid" value="%{#attr.repository.id}"/> |
| </s:url> |
| <s:a href="%{deleteRepositoryUrl}"> |
| <img src="<c:url value="/images/icons/delete.gif" />" alt="" width="16" height="16"/> |
| Delete |
| </s:a> |
| </redback:ifAnyAuthorized> |
| </div> |
| |
| <div style="float: left"> |
| <img src="<c:url value="/images/archiva-world.png"/>" alt="" width="32" height="32"/> |
| </div> |
| |
| <h3 class="repository">${repository.name}</h3> |
| |
| <table class="infoTable"> |
| <tr> |
| <th>Identifier</th> |
| <td> |
| <code>${repository.id}</code> |
| </td> |
| </tr> |
| <tr> |
| <th>Name</th> |
| <td> |
| <code>${repository.name}</code> |
| </td> |
| </tr> |
| <tr> |
| <th>URL</th> |
| <td>${repository.url}</td> |
| </tr> |
| <tr> |
| <th>Type</th> |
| <%-- TODO: can probably just use layout appended to a key prefix in i18n to simplify this --%> |
| <td> |
| <c:choose> |
| <c:when test="${repository.layout == 'default'}"> |
| Maven 2.x Repository |
| </c:when> |
| <c:otherwise> |
| Maven 1.x Repository |
| </c:otherwise> |
| </c:choose> |
| </td> |
| </tr> |
| </table> |
| |
| </div> |
| </c:forEach> |
| </c:otherwise> |
| </c:choose> |
| |
| </div> |
| |
| </div> |
| |
| </body> |
| </html> |