| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -6,14 +6,30 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        <div class="row"> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            <div class="col-md"> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                <dl class="row"> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    <dt class="col-sm-5">Server Installed</dt> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    <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-danger d-none" id="server-failed" title="Unable to determine latest version.">Unknown</span> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    </dt> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    <dd class="col-sm-7"> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        <span id="server-installed">{{version}}</span> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    </dd> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    <dt class="col-sm-5">Web Installed</dt> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    <dt class="col-sm-5">Server Latest</dt> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    <dd class="col-sm-7"> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        <span id="server-latest">{{diagnostics.latest_release}}<span id="server-latest-commit" class="d-none">-{{diagnostics.latest_commit}}</span></span> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    </dd> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    <dt class="col-sm-5">Web Installed | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        <span class="badge badge-success d-none" id="web-success" title="Latest version is installed.">Ok</span> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        <span class="badge badge-warning d-none" id="web-warning" title="There seems to be an update available.">Update</span> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        <span class="badge badge-danger d-none" id="web-failed" title="Unable to determine latest version.">Unknown</span> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    </dt> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    <dd class="col-sm-7"> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        <span id="web-installed">{{diagnostics.web_vault_version}}</span> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    </dd> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    <dt class="col-sm-5">Web Latest</dt> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    <dd class="col-sm-7"> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        <span id="web-latest">{{diagnostics.latest_web_build}}</span> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    </dd> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                </dl> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            </div> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        </div> | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -45,29 +61,57 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					</main> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					<script> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const d = new Date(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const year = d.getUTCFullYear(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    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'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const seconds = String(d.getUTCSeconds()).padStart(2, '0'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const browserUTC = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + seconds; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    document.getElementById("time-browser-string").innerText = browserUTC; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    (() => { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        const d = new Date(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        const year = d.getUTCFullYear(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        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'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        const seconds = String(d.getUTCSeconds()).padStart(2, '0'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        const browserUTC = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + seconds; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        document.getElementById("time-browser-string").innerText = browserUTC; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        const serverUTC = document.getElementById("time-server-string").innerText; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        const timeDrift = (Date.parse(serverUTC) - Date.parse(browserUTC)) / 1000; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (timeDrift > 30 || timeDrift < -30) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            document.getElementById('time-warning').classList.remove('d-none'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            document.getElementById('time-success').classList.remove('d-none'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        // Check if the output is a valid IP | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        const isValidIp = value => (/^(?:(?:^|\.)(?:2(?:5[0-5]|[0-4]\d)|1?\d?\d)){4}$/.test(value) ? true : false); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (isValidIp(document.getElementById('dns-resolved').innerText)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            document.getElementById('dns-success').classList.remove('d-none'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            document.getElementById('dns-warning').classList.remove('d-none'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        let serverInstalled = document.getElementById('server-installed').innerText; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        let serverLatest = document.getElementById('server-latest').innerText; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (serverInstalled.indexOf('-') > -1 && serverLatest !== '-') { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            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('web', webInstalled, webLatest); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const serverUTC = document.getElementById("time-server-string").innerText; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const timeDrift = (Date.parse(serverUTC) - Date.parse(browserUTC)) / 1000; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if (timeDrift > 30 || timeDrift < -30) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        document.getElementById('time-warning').classList.remove('d-none'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        document.getElementById('time-success').classList.remove('d-none'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        function checkVersions(platform, installed, latest) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (installed === '-' || latest === '-') { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                document.getElementById(platform + '-failed').classList.remove('d-none'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    // Check if the output is a valid IP | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const isValidIp = value => (/^(?:(?:^|\.)(?:2(?:5[0-5]|[0-4]\d)|1?\d?\d)){4}$/.test(value) ? true : false); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if (isValidIp(document.getElementById('dns-resolved').innerText)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        document.getElementById('dns-success').classList.remove('d-none'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        document.getElementById('dns-warning').classList.remove('d-none'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (installed !== latest) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                document.getElementById(platform + '-warning').classList.remove('d-none'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                document.getElementById(platform + '-success').classList.remove('d-none'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    })(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					</script> |