nuget-feed/resources/buildServerResources/packagesSettings.jsp (168 lines of code) (raw):
<%@ include file="/include-internal.jsp" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="afn" uri="/WEB-INF/functions/authz" %>
<%@ taglib prefix="intprop" uri="/WEB-INF/functions/intprop" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<jsp:useBean id="isGuestEnabled" type="java.lang.Boolean" scope="request"/>
<jsp:useBean id="statusRefreshUrl" scope="request" type="java.lang.String"/>
<jsp:useBean id="settingsPostUrl" scope="request" type="java.lang.String"/>
<jsp:useBean id="repositories" scope="request" type="java.util.Collection<jetbrains.buildServer.nuget.feed.server.tab.ProjectRepository>" />
<jsp:useBean id="repositoryTypes" scope="request" type="java.util.Collection<jetbrains.buildServer.serverSide.packages.RepositoryType>" />
<jsp:useBean id="project" scope="request" type="jetbrains.buildServer.serverSide.SProject" />
<jsp:useBean id="publicKey" scope="request" type="java.lang.String"/>
<jsp:useBean id="fb" class="jetbrains.buildServer.nuget.feed.server.tab.PackagesConstants"/>
<c:set var="numberOfRepositoryTypes" value="${fn:length(repositoryTypes)}"/>
<c:set var="canEdit" value="${afn:permissionGrantedForProject(project, 'EDIT_PROJECT') and not project.readOnly}"/>
<bs:refreshable containerId="packages" pageUrl="${statusRefreshUrl}">
<div class="section noMargin">
<h2 style="border: none">
<c:choose>
<c:when test="${numberOfRepositoryTypes gt 1}">
Packages
</c:when>
<c:otherwise>
NuGet Feed
</c:otherwise>
</c:choose>
</h2>
<bs:smallNote>
On this page you can configure NuGet feed which could be used to publish packages by builds of this project and its subprojects.
</bs:smallNote>
<p style="margin-top: 0">
<c:if test="${canEdit}">
<c:forEach var="repoType" items="${repositoryTypes}">
<c:set var="projectExternalId" value="${fn:escapeXml(project.externalId)}" />
<c:set var="repoTypeType" value="${fn:escapeXml(repoType.type)}" />
<c:set var="repoTypeName" value="${fn:escapeXml(repoType.name)}" />
<forms:addButton onclick="BS.Packages.AddRepositoryForm.showDialog('${projectExternalId}', '${repoTypeType}', '${repoTypeName}'); return false;">
Add new ${repoTypeName}
</forms:addButton>
</c:forEach>
</c:if>
<c:if test="${isGuestEnabled}">
<span class="authEndpoints">
Endpoints:
<a href="#" class="selected httpAuth" onclick="return BS.Packages.showUrls('httpAuth')">
HTTP Basic authentication
</a>
<span class="separator">|</span>
<a href="#" class="guestAuth" onclick="return BS.Packages.showUrls('guestAuth')">
Guest authentication
</a>
</span>
</c:if>
</p>
<c:if test="${not empty repositories}">
<table class="parametersTable packageSources">
<tr class="header">
<th colspan="4">
<c:choose>
<c:when test="${numberOfRepositoryTypes gt 1}">
Configured package repositories
</c:when>
<c:otherwise>
Configured NuGet Feeds
</c:otherwise>
</c:choose>
</th>
</tr>
<c:forEach var="entry" items="${repositories}" varStatus="repositoryLoop">
<c:set var="entryProjectExternalId" value="${fn:escapeXml(entry.project.externalId)}" />
<c:set var="entryProjectName" value="${fn:escapeXml(entry.project.name)}" />
<c:set var="entryRepositoryTypeType" value="${fn:escapeXml(entry.repository.type.type)}" />
<c:set var="entryRepositoryTypeName" value="${fn:escapeXml(entry.repository.type.name)}" />
<c:set var="entryRepositoryName" value="${fn:escapeXml(entry.repository.name)}" />
<c:set var="entryUsagesCount" value="${fn:escapeXml(entry.usagesCount)}" />
<tr>
<td>
<c:choose>
<c:when test="${not empty entry.repository.description}">
<c:out value="${entry.repository.description}" />
</c:when>
<c:otherwise>
<c:out value="${entry.repository.name}" />
</c:otherwise>
</c:choose>
<c:if test="${numberOfRepositoryTypes gt 1}">
(${entryRepositoryTypeName})
</c:if>
</td>
<td class="details">
<c:set var="parametersDescription" value="${entry.repository.parametersDescription}"/>
<c:if test="${not empty parametersDescription}">
<c:out value="${parametersDescription}" />
<c:if test="${entryUsagesCount gt 0}">
<span style="float: right">has <c:choose>
<c:when test="${entryUsagesCount ge 100}">
100+
</c:when>
<c:otherwise>
${entryUsagesCount}
</c:otherwise>
</c:choose> usage<bs:s val="${entryUsagesCount}"/>
</span>
</c:if>
<br/>
</c:if>
<ul class="httpAuth">
<c:forEach var="url" items="${entry.httpAuthUrls}" varStatus="loop">
<li>
<c:set var="endpointUrlId" value="http-auth-${entryRepositoryTypeType}-${entryRepositoryTypeName}-${loop.index}"/>
<span id="${endpointUrlId}" class="grayNote"><c:out value="${url}" /></span>
<bs:copy2ClipboardLink dataId="${endpointUrlId}"/>
</li>
</c:forEach>
</ul>
<c:if test="${isGuestEnabled}">
<ul class="guestAuth" style="display: none">
<c:forEach var="url" items="${entry.guestAuthUrls}" varStatus="loop">
<li>
<c:set var="endpointUrlId" value="guest-auth-${entryRepositoryTypeType}-${entryRepositoryTypeName}-${loop.index}"/>
<span id="${endpointUrlId}" class="grayNote"><c:out value="${url}" /></span>
<bs:copy2ClipboardLink dataId="${endpointUrlId}"/>
</li>
</c:forEach>
</ul>
</c:if>
</td>
<td class="edit">
<c:if test="${not project.readOnly and canEdit}">
<p style="margin-top: 0">
<a href="" onclick="BS.Packages.AddRepositoryForm.showDialog('${entryProjectExternalId}', '${entryRepositoryTypeType}', '${entryRepositoryTypeName}', '${entryRepositoryName}', ${entryUsagesCount}); return false;">Edit</a>
</p>
</c:if>
</td>
<td class="edit">
<c:if test="${not project.readOnly and canEdit}">
<p style="margin-top: 0">
<a href="" onclick="BS.Packages.deleteRepository('${entryProjectExternalId}', '${entryProjectName}', '${entryRepositoryTypeType}', '${entryRepositoryTypeName}', '${entryRepositoryName}', ${entryUsagesCount}); return false;">Delete</a>
</p>
</c:if>
</td>
</tr>
</c:forEach>
</table>
<div class="grayNote"><b>HTTP Basic authentication</b>: Lists all packages available for the currently authenticated user (user should have view project permission).</div>
<c:if test="${isGuestEnabled}">
<div class="grayNote"><b>Guest authentication</b>: Lists all packages from builds available for the guest<bs:help file="Guest+User"/> user.</div>
</c:if>
</c:if>
</div>
</bs:refreshable>
<bs:modalDialog formId="newRepositoryForm"
title="Create NuGet Feed"
action="#"
closeCommand="BS.Packages.AddRepositoryForm.close();"
saveCommand="BS.Packages.AddRepositoryForm.submit(); return false;">
<div id="newRepositoryDiv"></div>
<div id="usagesNoteDiv"></div>
<input type="hidden" name="publicKey" value="${publicKey}"/>
<div class="popupSaveButtonsBlock">
<forms:submit label="Save" onclick="BS.Packages.AddRepositoryForm.submit(); return false;"/>
<forms:cancel onclick="BS.Packages.AddRepositoryForm.cancelDialog()" showdiscardchangesmessage="false"/>
<forms:saving id="newRepositoryProgress"/>
</div>
</bs:modalDialog>
<script>
BS.Packages.setPageUrl('${settingsPostUrl}');
</script>