server/resources/report/buildUsedResources.jsp (122 lines of code) (raw):
<%--suppress ELValidationInJSP --%>
<%@ include file="/include-internal.jsp" %>
<%@ taglib prefix="admin" tagdir="/WEB-INF/tags/admin" %>
<%@ page import="jetbrains.buildServer.sharedResources.model.resources.ResourceType" %>
<%@ page import="jetbrains.buildServer.sharedResources.model.LockType" %>
<c:set var="CUSTOM" value="<%=ResourceType.CUSTOM.name()%>"/>
<c:set var ="TYPE_READ" value="<%=LockType.READ.getName()%>"/>
<c:set var ="TYPE_WRITE" value="<%=LockType.WRITE.getName()%>"/>
<bs:linkCSS>
/css/buildLog/buildParameters.css
</bs:linkCSS>
<c:choose>
<%--@elvariable id="usedResources" type="java.util.List<jetbrains.buildServer.sharedResources.server.report.UsedResource>"--%>
<%--@elvariable id="resourceOrigins" type="java.util.Map<java.lang.String, jetbrains.buildServer.serverSide.SProject>"--%>
<%--@elvariable id="parameters" type="java.util.List<com.intellij.openapi.util.Pair<java.lang.String, java.lang.String>>"--%>
<c:when test="${not empty usedResources}">
<div class="buildParameters">
<h2>Shared resources used by the build</h2>
<table class="runnerFormTable" style="width: 80em;">
<tr>
<th style="width: 25%; white-space: nowrap">Resource</th>
<th>Lock</th>
</tr>
<c:forEach var="ur" items="${usedResources}">
<c:set var="rc" value="${ur.resource}"/>
<tr>
<td style="white-space: nowrap">
<c:set var="tooltipContent" value=""/>
<c:set var="project" value="${resourceOrigins[rc.name]}"/>
<c:set var="resourceNameContent">
<c:choose>
<c:when test="${not empty project}">
<authz:authorize projectId="${project.externalId}" allPermissions="EDIT_PROJECT">
<jsp:attribute name="ifAccessGranted"> <%--edit project--%>
<admin:editProjectLink projectId="${project.externalId}" addToUrl="&tab=JetBrains.SharedResources"><bs:out value="${project.name} / ${rc.name}"/></admin:editProjectLink>
</jsp:attribute>
<jsp:attribute name="ifAccessDenied"> <%--view project--%>
<bs:projectLink project="${project}"><bs:out value="${project.name} / ${rc.name}"/></bs:projectLink>
</jsp:attribute>
</authz:authorize>
</c:when>
<c:otherwise>
<bs:out value="${rc.name}"/>
</c:otherwise>
</c:choose>
</c:set>
<c:choose>
<c:when test="${not empty rc}">
<c:set var="containerId" value="resource_${util:forJSIdentifier(rc.name)}"/>
<c:choose>
<c:when test="${rc.type == CUSTOM}">
<div id="${containerId}" style="display:none">
<bs:out value="Resource with custom values: "/>
<ul>
<c:forEach items="${rc.values}" var="val">
<li><bs:out value="${val}"/></li>
</c:forEach>
</ul>
</div>
</c:when>
<c:otherwise>
<div id="${containerId}" style="display:none">
<c:choose>
<c:when test="${rc.quota == -1}">
<bs:out value="Resource with infinite quota"/><br/>
</c:when>
<c:otherwise>
<bs:out value="Resource with quota of ${rc.quota}"/><br/>
</c:otherwise>
</c:choose>
</div>
</c:otherwise>
</c:choose>
<c:set var="tooltipContent">
<bs:tooltipAttrs containerId="${containerId}"/>
</c:set>
</c:when>
<c:otherwise/>
</c:choose>
<span ${tooltipContent}>${resourceNameContent}</span>
</td>
<td>
<c:forEach items="${ur.locks}" var="lock">
<c:choose>
<c:when test="${rc.type == CUSTOM}">
<c:choose>
<c:when test="${lock.type.name == TYPE_READ}">
Locked value: <code><bs:out value="${lock.value}"/></code><br/>
</c:when>
<c:otherwise>
<bs:out value="All custom values were locked"/>
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
<bs:out value="${lock.type.descriptiveName}"/><br/>
</c:otherwise>
</c:choose>
</c:forEach>
</td>
</tr>
</c:forEach>
</table>
<c:if test="${not empty parameters}">
<h2>Provided build parameters</h2>
<table class="runnerFormTable" style="width: 80em;">
<tr>
<th style="width: 25%; white-space: nowrap">Name</th>
<th>Value</th>
</tr>
<c:forEach items="${parameters}" var="pair">
<c:set var="val" value="${empty pair.second ? '<empty>' : pair.second}"/>
<c:set var="valueClass" value="${empty pair.second ? 'emptyValue' : ''}"/>
<tr>
<td class="at_top"><c:out value="${pair.first}"/></td>
<td class="${valueClass}"><bs:out value="${val}" multilineOnly="true"/></td>
</tr>
</c:forEach>
</table>
</c:if>
</div>
</c:when>
<c:otherwise>
<bs:out value="No resources were locked by the current build"/>
</c:otherwise>
</c:choose>