server/resources/queueStateItemDisplay.jsp (82 lines of code) (raw):
<%@ page import="java.util.Map" %>
<%@ page import="jetbrains.buildServer.queueManager.server.MessageViewer" %>
<%@ page import="jetbrains.buildServer.queueManager.settings.QueueState" %>
<%@ page import="jetbrains.buildServer.users.SUser" %>
<%@ page import="jetbrains.buildServer.web.util.SessionUser" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ include file="/include-internal.jsp" %>
<jsp:useBean id="healthStatusItem" type="jetbrains.buildServer.serverSide.healthStatus.HealthStatusItem" scope="request"/>
<%--@elvariable id="queueState" type="jetbrains.buildServer.queueManager.settings.QueueState"--%>
<%--@elvariable id="allowManualResume" type="java.lang.Boolean"--%>
<%--@elvariable id="serverAllowsResuming" type="java.lang.Boolean"--%>
<c:set var="queueState" value="${healthStatusItem.additionalData['QUEUE_STATE']}"/>
<c:set var="user" value="${queueState.user}"/>
<c:set var="allowManualResume" value="${healthStatusItem.additionalData['allowManualResume']}"/>
<c:set var="serverAllowsResuming" value="${healthStatusItem.additionalData['serverAllowsResuming']}"/>
<%
final SUser currentUser = SessionUser.getUser(request);
final Map<String, Object> additionalData = healthStatusItem.getAdditionalData();
%>
<c:set var="action">
The build queue was paused
</c:set>
<c:set var="user">
<c:choose>
<c:when test="${not empty user}">
by <strong><c:out value="${user.descriptiveName}"/></strong>
</c:when>
<c:otherwise/>
</c:choose>
</c:set>
<c:set var="date">
<bs:date value="${queueState.timestamp}" smart="true"/>
</c:set>
<c:set var="reason">
<c:choose>
<c:when test="${not empty queueState.reason}">
with the comment: <%=MessageViewer.viewMessage(currentUser, (QueueState)additionalData.get("QUEUE_STATE"))%>
</c:when>
<c:otherwise/>
</c:choose>
</c:set>
${action}${user}${date}<c:if test="${not empty reason}"> <bs:out value="${reason}"/></c:if><br/>
No builds will be started until the queue is resumed.<bs:help file="Build+Queue" anchor="Pausing%2FResumingBuildQueue"/>
<c:if test="${serverAllowsResuming}">
<c:set var="allowResume">
<%
if (currentUser != null && currentUser.isSystemAdministratorRoleGranted()) {
%>
true
<%
} else {
%>
<authz:authorize allPermissions="ENABLE_DISABLE_AGENT">
<jsp:attribute name="ifAccessGranted">
${allowManualResume}
</jsp:attribute>
</authz:authorize>
<%
}
%>
</c:set>
<c:if test="${allowResume}">
<script>
BS.QueueStateActions = {
url: window['base_uri'] + "/queueStartStop.html",
resumeQueue: function() {
var params = {
'newQueueState': 'true',
'stateChangeReason' : ''
};
//noinspection JSUnusedGlobalSymbols
BS.ajaxRequest(this.url, {
parameters: params,
onSuccess: function() {
window.location.reload();
}
});
}
};
</script>
<div style="float:right">
<a class="btn btn_mini" href="#" onclick="BS.QueueStateActions.resumeQueue(); return false">Resume</a>
</div>
</c:if>
</c:if>