diff --git a/src/static/templates/admin/diagnostics.hbs b/src/static/templates/admin/diagnostics.hbs index 21aa1f6..72d7cab 100644 --- a/src/static/templates/admin/diagnostics.hbs +++ b/src/static/templates/admin/diagnostics.hbs @@ -9,6 +9,7 @@
Server Installed Ok Update + Branched
{{version}} @@ -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'); + } } } })();