aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlackDex <[email protected]>2020-06-04 17:05:17 +0200
committerBlackDex <[email protected]>2020-06-04 17:05:17 +0200
commit325691e58864f2419b340beea529ff8dc7e08c1d (patch)
treece7e1866aa1035cd02bec9a5b5f87390732c56f4
parentfac3cb687d1dbc6187cd29e348c6ef688b1067e1 (diff)
downloadvaultwarden-325691e58864f2419b340beea529ff8dc7e08c1d.tar.gz
vaultwarden-325691e58864f2419b340beea529ff8dc7e08c1d.zip
Fixed wrong status if there is an update.
- Checking the sha hash first if this is also in the server version. - Added a badge to show if you are on a branched build.
-rw-r--r--src/static/templates/admin/diagnostics.hbs47
1 files changed, 39 insertions, 8 deletions
diff --git a/src/static/templates/admin/diagnostics.hbs b/src/static/templates/admin/diagnostics.hbs
index 21aa1f66..72d7cab6 100644
--- a/src/static/templates/admin/diagnostics.hbs
+++ b/src/static/templates/admin/diagnostics.hbs
@@ -9,6 +9,7 @@
<dt class="col-sm-5">Server Installed
<span class="badge badge-success d-none" id="server-success" title="Latest version is installed.">Ok</span>
<span class="badge badge-warning d-none" id="server-warning" title="There seems to be an update available.">Update</span>
+ <span class="badge badge-info d-none" id="server-branch" title="This is a branched version.">Branched</span>
</dt>
<dd class="col-sm-7">
<span id="server-installed">{{version}}</span>
@@ -66,7 +67,7 @@
(() => {
const d = new Date();
const year = d.getUTCFullYear();
- const month = String((d.getUTCMonth()+1)).padStart(2, '0');
+ const month = String(d.getUTCMonth()+1).padStart(2, '0');
const day = String(d.getUTCDate()).padStart(2, '0');
const hour = String(d.getUTCHours()).padStart(2, '0');
const minute = String(d.getUTCMinutes()).padStart(2, '0');
@@ -92,27 +93,57 @@
let serverInstalled = document.getElementById('server-installed').innerText;
let serverLatest = document.getElementById('server-latest').innerText;
- if (serverInstalled.indexOf('-') > -1 && serverLatest !== '-') {
+ let serverLatestCommit = document.getElementById('server-latest-commit').innerText.replace('-', '');
+ if (serverInstalled.indexOf('-') !== -1 && serverLatest !== '-' && serverLatestCommit !== '-') {
document.getElementById('server-latest-commit').classList.remove('d-none');
- serverLatest += document.getElementById('server-latest-commit').innerText;
}
const webInstalled = document.getElementById('web-installed').innerText;
const webLatest = document.getElementById('web-latest').innerText;
- checkVersions('server', serverInstalled, serverLatest);
+ checkVersions('server', serverInstalled, serverLatest, serverLatestCommit);
checkVersions('web', webInstalled, webLatest);
- function checkVersions(platform, installed, latest) {
+ function checkVersions(platform, installed, latest, commit=null) {
if (installed === '-' || latest === '-') {
document.getElementById(platform + '-failed').classList.remove('d-none');
return;
}
- if (installed !== latest) {
- document.getElementById(platform + '-warning').classList.remove('d-none');
+ // Only check basic versions, no commit revisions
+ if (commit === null || installed.indexOf('-') === -1) {
+ if (installed !== latest) {
+ document.getElementById(platform + '-warning').classList.remove('d-none');
+ } else {
+ document.getElementById(platform + '-success').classList.remove('d-none');
+ }
} else {
- document.getElementById(platform + '-success').classList.remove('d-none');
+ // Check if this is a branched version.
+ const branchRegex = /(?:\s)\((.*?)\)/;
+ const branchMatch = installed.match(branchRegex);
+ if (branchMatch !== null) {
+ document.getElementById(platform + '-branch').classList.remove('d-none');
+ }
+
+ // This will remove branch info and check if there is a commit hash
+ const installedRegex = /(\d+\.\d+\.\d+)-(\w+)/;
+ const instMatch = installed.match(installedRegex);
+
+ // It could be that a new tagged version has the same commit hash.
+ // In this case the version is the same but only the number is different
+ if (instMatch !== null) {
+ if (instMatch[2] === commit) {
+ // The commit hashes are the same, so latest version is installed
+ document.getElementById(platform + '-success').classList.remove('d-none');
+ return;
+ }
+ }
+
+ if (installed === latest) {
+ document.getElementById(platform + '-success').classList.remove('d-none');
+ } else {
+ document.getElementById(platform + '-warning').classList.remove('d-none');
+ }
}
}
})();