viewSsoSessions.html 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <!DOCTYPE html>
  2. <html xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{monitoring/layout}">
  3. <head>
  4. <title th:text="#{cas.ssosessions.report.pagetitle}"></title>
  5. </head>
  6. <body id="cas">
  7. <div layout:fragment="content">
  8. <link rel="stylesheet" th:href="@{/css/ssosessions.css}"/>
  9. <div id="content">
  10. <script type="text/javascript" th:inline="javascript">
  11. var urls = {
  12. destroy: {
  13. all: /*[[@{/status/ssosessions/destroySsoSessions}]]*/,
  14. single: /*[[@{/status/ssosessions/destroySsoSession}]]*/
  15. },
  16. getSessions: /*[[@{/status/ssosessions/getSsoSessions}]]*/
  17. };
  18. function jqueryReady() {
  19. head.load(
  20. /*[[@{/js/ssosessions.js}]]*/
  21. );
  22. }
  23. </script>
  24. <div class="ssoSessions">
  25. <div id="loadingMessage"><h3 th:text="#{cas.ssosessions.loading}"/></div>
  26. <div id="no-cas-sessions">
  27. <h3 th:text="#{cas.ssosessions.nosessionsfound}"/>
  28. <p/>
  29. </div>
  30. <div id="cas-sessions">
  31. <div id="alertWrapper"></div>
  32. <div class="card">
  33. <div class="card-header">
  34. <h4 th:text="#{cas.ssosessions.report.pagetitle}"><span class="glyphicon glyphicon-stats"
  35. aria-hidden="true"/></h4>
  36. </div>
  37. <div class="card-body">
  38. <div id="session-counts" class="container-fluid">
  39. <div class="row adminPanels">
  40. <div class="col-lg-3 col-md-6">
  41. <div class="card text-white bg-info">
  42. <div class="card-header">
  43. <div class="row">
  44. <div class="col-xs-3">
  45. <i class="fas fa-users fa-4x"></i>
  46. </div>
  47. <div class="col-xs-9 text-right">
  48. <div class="huge" id="totalUsers">0</div>
  49. <div th:text="#{cas.ssosessions.report.panel.totalactiveprincipals}"/>
  50. </div>
  51. </div>
  52. </div>
  53. </div>
  54. </div>
  55. <div class="col-lg-3 col-md-6">
  56. <div class="card text-white bg-success">
  57. <div class="card-header">
  58. <div class="row">
  59. <div class="col-xs-3">
  60. <i class="fas fa-tasks fa-4x"></i>
  61. </div>
  62. <div class="col-xs-9 text-right">
  63. <div class="huge" id="totalUsageSessions">0</div>
  64. <div th:text="#{cas.ssosessions.report.panel.usagecountsessions}"/>
  65. </div>
  66. </div>
  67. </div>
  68. </div>
  69. </div>
  70. <div class="col-lg-3 col-md-6">
  71. <div class="card text-white bg-warning">
  72. <div class="card-header">
  73. <div class="row">
  74. <div class="col-xs-3">
  75. <i class="fas fa-ticket-alt fa-4x"></i>
  76. </div>
  77. <div class="col-xs-9 text-right">
  78. <div class="huge" id="totalTGTs">0</div>
  79. <div th:text="#{cas.ssosessions.report.panel.totalssosessions}"/>
  80. </div>
  81. </div>
  82. </div>
  83. </div>
  84. </div>
  85. </div>
  86. </div>
  87. <div class="container-fluid">
  88. <div class="row">
  89. <div class="col">
  90. <button id="removeAllSessionsButton" class="btn btn-sm btn-danger" type="button"
  91. value="ALL"
  92. th:text="#{cas.ssosessions.buttons.removeall}"/>
  93. </div>
  94. <div class="col text-right">
  95. <div id="filterButtons" class="btn-group btn-group-sm btn-group-toggle" data-toggle="buttons">
  96. <label class="btn btn-light active" data-filter="all">
  97. <input type="radio" name="options" id="optionAll" autocomplete="off"
  98. th:text="#{cas.ssosessions.buttons.filter.all}"/>
  99. </label>
  100. <label class="btn btn-light" data-filter="proxied">
  101. <input type="radio" name="options" id="optionProxied" autocomplete="off"
  102. th:text="#{cas.ssosessions.buttons.filter.proxied}"/>
  103. </label>
  104. <label class="btn btn-light" data-filter="non-proxied">
  105. <input type="radio" name="options" id="optionDirect" autocomplete="off"
  106. th:text="#{cas.ssosessions.buttons.filter.nonproxied}"/>
  107. </label>
  108. </div>
  109. </div>
  110. </div>
  111. </div>
  112. <div id="container-stable" class="container-fluid">
  113. <div id="msg" style="display:none"></div>
  114. <table id="ssoSessions" class="table table-striped table-bordered">
  115. <thead>
  116. <tr>
  117. <th>&nbsp;</th>
  118. <th>&nbsp;</th>
  119. <th th:text="#{cas.ssosessions.table.header.principal}"/>
  120. <th th:text="#{cas.ssosessions.table.header.ticketgrantingticket}"/>
  121. <th th:text="#{cas.ssosessions.table.header.authenticationdate}"/>
  122. <th th:text="#{cas.ssosessions.table.header.usagecount}"/>
  123. <th>&nbsp;</th>
  124. </tr>
  125. </thead>
  126. <tbody>
  127. <tr>
  128. <td></td>
  129. <td></td>
  130. <td>User</td>
  131. <td>TGT</td>
  132. <td>Auth_Date</td>
  133. <td>Usage_Count</td>
  134. <td></td>
  135. </tr>
  136. </tbody>
  137. </table>
  138. <hr/>
  139. </div>
  140. </div>
  141. </div>
  142. </div>
  143. </div>
  144. <div th:replace="monitoring/fragments/footerButtons"/>
  145. </div>
  146. </div>
  147. </body>
  148. </html>