|
|
|
@ -16,48 +16,50 @@ |
|
|
|
|
</div> |
|
|
|
|
</nav> |
|
|
|
|
<main class="container"> |
|
|
|
|
<table class="table table-striped table-bordered table-hover"> |
|
|
|
|
<thead class="thead-dark"> |
|
|
|
|
<tr> |
|
|
|
|
<th>Game</th> |
|
|
|
|
<th>Build</th> |
|
|
|
|
<th>Timestamp</th> |
|
|
|
|
<th>Name</th> |
|
|
|
|
<th>Indexes</th> |
|
|
|
|
<th>Groups</th> |
|
|
|
|
<th>Keys<sup><a href="#empty-locs">[1]</a></sup></th> |
|
|
|
|
<th>Download</th> |
|
|
|
|
</tr> |
|
|
|
|
</thead> |
|
|
|
|
<tbody> |
|
|
|
|
<!--/*@thymesVar id="caches" type="java.util.List<org.openrs2.archive.cache.CacheExporter.Cache>"*/--> |
|
|
|
|
<tr th:each="cache : ${caches}"> |
|
|
|
|
<td th:text="${cache.game}">runescape</td> |
|
|
|
|
<td th:text="${cache.build}" class="text-right">550</td> |
|
|
|
|
<td th:text="${#temporals.formatISO(cache.timestamp)}"></td> |
|
|
|
|
<td th:text="${cache.name}"></td> |
|
|
|
|
<td |
|
|
|
|
th:class="${cache.archiveStats}? (${cache.archiveStats.allIndexesValid}? 'table-success' : 'table-danger') + ' text-right'" |
|
|
|
|
th:text="${cache.archiveStats}? ${cache.archiveStats.validIndexes} + ' / ' + ${cache.archiveStats.indexes} + ' (' + ${#numbers.formatPercent(cache.archiveStats.validIndexesFraction, 1, 2)} + ')' : 'Calculating...'" |
|
|
|
|
>Calculating... |
|
|
|
|
</td> |
|
|
|
|
<td |
|
|
|
|
th:class="${cache.groupStats}? (${cache.groupStats.allGroupsValid}? 'table-success' : 'table-warning') + ' text-right'" |
|
|
|
|
th:text="${cache.groupStats}? ${#numbers.formatInteger(cache.groupStats.validGroups, 1, 'COMMA')} + ' / ' + ${#numbers.formatInteger(cache.groupStats.groups, 1, 'COMMA')} + ' (' + ${#numbers.formatPercent(cache.groupStats.validGroupsFraction, 1, 2)} + ')' : 'Calculating...'" |
|
|
|
|
>Calculating... |
|
|
|
|
</td> |
|
|
|
|
<td |
|
|
|
|
th:class="${cache.groupStats}? (${cache.groupStats.allKeysValid}? 'table-success' : 'table-warning') + ' text-right'" |
|
|
|
|
th:text="${cache.groupStats}? ${#numbers.formatInteger(cache.groupStats.validKeys, 1, 'COMMA')} + ' / ' + ${#numbers.formatInteger(cache.groupStats.keys, 1, 'COMMA')} + ' (' + ${#numbers.formatPercent(cache.groupStats.validKeysFraction, 1, 2)} + ')' : 'Calculating...'" |
|
|
|
|
>Calculating... |
|
|
|
|
</td> |
|
|
|
|
<td> |
|
|
|
|
<a th:href="${'/caches/' + cache.id + '.zip'}" class="btn btn-primary btn-sm">Cache</a> |
|
|
|
|
<a th:href="${'/caches/' + cache.id + '.json'}" class="btn btn-primary btn-sm">Keys</a> |
|
|
|
|
</td> |
|
|
|
|
</tr> |
|
|
|
|
</tbody> |
|
|
|
|
</table> |
|
|
|
|
<div class="table-responsive"> |
|
|
|
|
<table class="table table-striped table-bordered table-hover"> |
|
|
|
|
<thead class="thead-dark"> |
|
|
|
|
<tr> |
|
|
|
|
<th>Game</th> |
|
|
|
|
<th>Build</th> |
|
|
|
|
<th>Timestamp</th> |
|
|
|
|
<th>Name</th> |
|
|
|
|
<th>Indexes</th> |
|
|
|
|
<th>Groups</th> |
|
|
|
|
<th>Keys<sup><a href="#empty-locs">[1]</a></sup></th> |
|
|
|
|
<th>Download</th> |
|
|
|
|
</tr> |
|
|
|
|
</thead> |
|
|
|
|
<tbody> |
|
|
|
|
<!--/*@thymesVar id="caches" type="java.util.List<org.openrs2.archive.cache.CacheExporter.Cache>"*/--> |
|
|
|
|
<tr th:each="cache : ${caches}"> |
|
|
|
|
<td th:text="${cache.game}">runescape</td> |
|
|
|
|
<td th:text="${cache.build}" class="text-right">550</td> |
|
|
|
|
<td th:text="${#temporals.formatISO(cache.timestamp)}"></td> |
|
|
|
|
<td th:text="${cache.name}"></td> |
|
|
|
|
<td |
|
|
|
|
th:class="${cache.archiveStats}? (${cache.archiveStats.allIndexesValid}? 'table-success' : 'table-danger') + ' text-right'" |
|
|
|
|
th:text="${cache.archiveStats}? ${cache.archiveStats.validIndexes} + ' / ' + ${cache.archiveStats.indexes} + ' (' + ${#numbers.formatPercent(cache.archiveStats.validIndexesFraction, 1, 2)} + ')' : 'Calculating...'" |
|
|
|
|
>Calculating... |
|
|
|
|
</td> |
|
|
|
|
<td |
|
|
|
|
th:class="${cache.groupStats}? (${cache.groupStats.allGroupsValid}? 'table-success' : 'table-warning') + ' text-right'" |
|
|
|
|
th:text="${cache.groupStats}? ${#numbers.formatInteger(cache.groupStats.validGroups, 1, 'COMMA')} + ' / ' + ${#numbers.formatInteger(cache.groupStats.groups, 1, 'COMMA')} + ' (' + ${#numbers.formatPercent(cache.groupStats.validGroupsFraction, 1, 2)} + ')' : 'Calculating...'" |
|
|
|
|
>Calculating... |
|
|
|
|
</td> |
|
|
|
|
<td |
|
|
|
|
th:class="${cache.groupStats}? (${cache.groupStats.allKeysValid}? 'table-success' : 'table-warning') + ' text-right'" |
|
|
|
|
th:text="${cache.groupStats}? ${#numbers.formatInteger(cache.groupStats.validKeys, 1, 'COMMA')} + ' / ' + ${#numbers.formatInteger(cache.groupStats.keys, 1, 'COMMA')} + ' (' + ${#numbers.formatPercent(cache.groupStats.validKeysFraction, 1, 2)} + ')' : 'Calculating...'" |
|
|
|
|
>Calculating... |
|
|
|
|
</td> |
|
|
|
|
<td> |
|
|
|
|
<a th:href="${'/caches/' + cache.id + '.zip'}" class="btn btn-primary btn-sm">Cache</a> |
|
|
|
|
<a th:href="${'/caches/' + cache.id + '.json'}" class="btn btn-primary btn-sm">Keys</a> |
|
|
|
|
</td> |
|
|
|
|
</tr> |
|
|
|
|
</tbody> |
|
|
|
|
</table> |
|
|
|
|
</div> |
|
|
|
|
<p id="empty-locs"> |
|
|
|
|
[1]: Map squares in the middle of the sea are unreachable by |
|
|
|
|
normal players, making it impossible to obtain the keys for |
|
|
|
|