Newer
Older
cas-server / cas / WEB-INF / classes / templates / monitoring / viewStatistics.html
zhout on 17 Jun 2021 7 KB first commit
<!DOCTYPE html>
<html xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{monitoring/layout}">

<head>
    <title th:text="#{cas.statistics.pagetitle}"></title>

    <script type="text/javascript" th:src="@{#{webjars.d3js.d3min.js}}"></script>

    <script type="text/javascript" th:inline="javascript">
        var messages = {
            memoryGaugeTitle: /*[[#{cas.statistics.section.serverstatistics.freememorygauge.label}]]*/
        };
        var urls = {
            availability: /*[[@{/status/stats/getAvailability}]]*/,
            memory: /*[[@{/status/stats/getMemStats}]]*/,
            tickets: /*[[@{/status/stats/getTicketStats}]]*/
        };

        function jqueryReady() {
            head.load(
                /*[[@{/js/statisticsview.js}]]*/
                ,
                function () {
                    var server_uptime = upTime([[${upTime}]], 'uptime');

                    casStatistics(urls, messages);
                }
            );
        };
    </script>

</head>

<body>
<div layout:fragment="content">

    <div id="loading" th:text="#{cas.statistics.loading}"></div>

    <div class="statisticsView">
        <h2 th:text="#{cas.statistics.pagetitle}">cas.statistics.pagetitle</h2>

        <div class="section adminPanels">
            <h3 th:text="#{cas.statistics.section.ticket.title}">cas.statistics.section.ticket.title</h3>
            <div class="card-deck">
                <div class="card" id="card-unexpired-tgts">
                    <div class="card-body">
                        <h4 class="card-title semi-huge"
                            th:text="#{cas.statistics.section.ticket.panel.unexpiredtgts.title}"></h4>
                        <p id="unexpiredTgts" class="card-text huge">--</p>
                    </div>
                </div>
                <div class="card" id="card-unexpired-sts">
                    <div class="card-body">
                        <h4 class="card-title semi-huge" th:text="#{cas.statistics.section.ticket.panel.unexpiredsts.title}"/>
                        <p id="unexpiredSts" class="card-text huge">--</p>
                    </div>
                </div>
                <div class="card" id="card-expired-tgts">
                    <div class="card-body">
                        <h4 class="card-title semi-huge" th:text="#{cas.statistics.section.ticket.panel.expiredtgts.title}"/>
                        <p id="expiredTgts" class="card-text huge">--</p>
                    </div>
                </div>

                <div class="card" id="card-expired-sts">
                    <div class="card-body">
                        <h4 class="card-title semi-huge" th:text="#{cas.statistics.section.ticket.panel.expiredsts.title}"/>
                        <p id="expiredSts" class="card-text huge">--</p>
                    </div>
                </div>
            </div>
        </div>

        <section class="runtimePanels">
            <h3 th:text="#{cas.statistics.section.serverstatistics.title}"></h3>
            <div class="row">
                <div class="col-md-4">
                    <div class="text-center">
                        <div class="section" id="memoryUsageWrapper">
                            <div id="memoryGauge"></div>
                        </div>
                        <div id="maxMemoryWrapper">
                            <div id="maxMemoryGauge"></div>
                        </div>
                    </div>
                </div>
                <div class="col-md-8">
                    <div id="card-uptime" class="card">
                        <div class="card-header">
                            <div class="row">
                                <div class="col-auto mr-auto">
                                    <i class="far fa-clock fa-4x"></i>
                                </div>
                                <div class="col-auto text-right">
                                    <div class="huge" th:text="#{cas.statistics.section.serverstatistics.panel.uptime.title}"></div>
                                    <div id="uptime"></div>
                                </div>
                            </div>
                        </div>
                    </div>

                    <div id="card-server-info" class="card">
                        <div class="card-header d-flex">
                            <div class="fas fa-server fa-4x"></div>
                            <div class="ml-auto huge" th:text="#{cas.statistics.section.serverstatistics.panel.serverinfo.title}"></div>
                        </div>
                        <div class="card-body">
                            <table class="table table-striped">
                                <thead>
                                <tr>
                                    <th class="w-25"
                                        th:text="#{cas.statistics.section.serverstatistics.panel.serverinfo.table.property.label}"/>
                                    <th class="w-75"
                                        th:text="#{cas.statistics.section.serverstatistics.panel.serverinfo.table.value.label}"/>
                                </tr>
                                </thead>
                                <tbody>
                                <tr>
                                    <td th:text="#{cas.statistics.section.serverstatistics.panel.serverinfo.table.property.server.label}"/>
                                    <td th:text="${#httpServletRequest.getServerName() + '-' + #httpServletRequest.getLocalAddr()}"/>
                                </tr>
                                <tr th:if="${casTicketSuffix}">
                                    <td th:text="#{cas.statistics.section.serverstatistics.panel.serverinfo.table.property.casticketsuffix.label}"/>
                                    <td th:text="${casTicketSuffix}"/>
                                </tr>
                                <tr>
                                    <td th:text="#{cas.statistics.section.serverstatistics.panel.serverinfo.table.property.starttime.label}"/>
                                    <td th:text="${startTime}"/>
                                </tr>
                                <tr>
                                    <td th:text="#{cas.statistics.section.serverstatistics.panel.serverinfo.table.property.memory.label}"/>
                                    <td><span id="freeMemory" th:text="${freeMemory}"/> MB
                                        <span th:text="#{cas.statistics.section.serverstatistics.panel.serverinfo.table.property.free}"/>
                                        <br/>
                                        <span id="totalMemory" th:text="${totalMemory}"/> MB
                                        <span th:text="#{cas.statistics.section.serverstatistics.panel.serverinfo.table.property.total}"/>
                                    </td>
                                </tr>
                                <tr>
                                    <td th:text="#{cas.statistics.section.serverstatistics.panel.serverinfo.table.property.maxmemory.label}"/>
                                    <td>
                                        <span id="maxMemory" th:text="${maxMemory}"/> MB
                                    </td>
                                </tr>
                                <tr>
                                    <td th:text="#{cas.statistics.section.serverstatistics.panel.serverinfo.table.property.availprocessors.label}"/>
                                    <td id="availableProcessors" th:text="${availableProcessors}"/>
                                </tr>
                                </tbody>
                            </table>
                        </div>
                    </div>
                </div>
            </div>
        </section>
        <div th:replace="monitoring/fragments/footerButtons"/>
    </div>
</div>
</body>
</html>