blob: 8bd1f388129a10cef7491bfa169ad6a7d0e58a3f [file] [log] [blame]
<%-- /*
* 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.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
<div id="query-debug" class="scroll-container reload-container">
<sling:adaptTo adaptable="${slingRequest}" adaptTo="org.apache.sling.cms.core.models.QueryDebugger" var="queryDebugger" />
<br/><hr/><br/>
<dl>
<c:if test="${not empty queryDebugger.statement}">
<dt><fmt:message key="Query Statement" /><dt>
<dd>${sling:encode(queryDebugger.statement,'HTML')}</dd>
</c:if>
<c:if test="${not empty queryDebugger.plan}">
<dt><fmt:message key="Plan" /><dt>
<dd>${sling:encode(queryDebugger.plan,'HTML')}</dd>
</c:if>
<c:if test="${not empty queryDebugger.exception}">
<dt><fmt:message key="Exception" /><dt>
<dd>${sling:encode(queryDebugger.exception,'HTML')}</dd>
</c:if>
<c:if test="${queryDebugger.executionEnabled}">
<dt><fmt:message key="Duration" /><dt>
<dd>${queryDebugger.duration}</dd>
<dt><fmt:message key="Size" /><dt>
<dd>${queryDebugger.estimatedSize}</dd>
<dt><fmt:message key="Results" /><dt>
<dd>
<nav class="panel fixed-box">
<c:forEach var="result" items="${queryDebugger.results}">
<a class="panel-block" href="/bin/browser.html${result.path}" target="_blank">
${result.path} [${result.resourceType}]
</a>
</c:forEach>
</nav>
</dd>
</c:if>
</dl>
<br/><hr/><br/>
<h2><fmt:message key="Popular Queries" /></h2>
<table class="table">
<tr>
<th scope="col">
#
</th>
<th scope="col">
<fmt:message key="Query Statement" />
</th>
<th scope="col">
<fmt:message key="Query Language" />
</th>
<th scope="col">
<fmt:message key="Count" />
</th>
<th scope="col">
<fmt:message key="Duration" />
</th>
</tr>
<c:forEach var="query" items="${queryDebugger.popularQueries}">
<tr>
<td>
${query.position}
</td>
<td>
${sling:encode(query.statement,'HTML')}
</td>
<td>
${query.language}
</td>
<td>
${query.occurrenceCount}
</td>
<td>
${query.duration}
</td>
</tr>
</c:forEach>
</table>
<h2><fmt:message key="Slow Queries" /></h2>
<table class="table">
<tr>
<th scope="col">
#
</th>
<th scope="col">
<fmt:message key="Query Statement" />
</th>
<th scope="col">
<fmt:message key="Query Language" />
</th>
<th scope="col">
<fmt:message key="Count" />
</th>
<th scope="col">
<fmt:message key="Duration" />
</th>
</tr>
<c:forEach var="query" items="${queryDebugger.slowQueries}">
<tr>
<td>
${query.position}
</td>
<td>
${sling:encode(query.statement,'HTML')}
</td>
<td>
${query.language}
</td>
<td>
${query.occurrenceCount}
</td>
<td>
${query.duration}
</td>
</tr>
</c:forEach>
</table>
</div>