167 lines
5.0 KiB
HTML
167 lines
5.0 KiB
HTML
<!DOCTYPE html>
|
|
<html><head>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title>OBPkeyboard 6/1</title>
|
|
<link rel="icon" href="data:,">
|
|
<script>
|
|
if (!window.isSecureContext) {
|
|
const s = document.createElement('script');
|
|
s.src = 'sha256.js';
|
|
document.head.appendChild(s);
|
|
}
|
|
</script>
|
|
<script type="text/javascript" src="index.js"></script>
|
|
<link rel="stylesheet" href="index.css">
|
|
</head>
|
|
<body>
|
|
<div class="main">
|
|
<h1 id="headline">OBPkb</h1>
|
|
<div class="row">
|
|
<span class="label" id="conn_label">disconnected</span>
|
|
<span class="value" id="connected"></span>
|
|
</div>
|
|
<div id="tabs">
|
|
<div class="tab active" data-page="statusPage">Status</div>
|
|
<div class="tab" data-page="configPage">Config</div>
|
|
<div class="tab" data-page="updatePage">Update</div>
|
|
<div class="tab" data-url="https://computerclub.hoogi.de/obpkeypad" data-window="help" id="helpButton">Help</div>
|
|
</div>
|
|
<div id="tabPages">
|
|
|
|
<div id="statusPage" class="tabPage">
|
|
<div id="statusPageContent">
|
|
<div class="row">
|
|
<span class="label">Firmware</span>
|
|
<span class="value" id="version">---</span>
|
|
<button class="infoButton" id="converterInfo">?</button>
|
|
</div>
|
|
<div class="row even">
|
|
<span class="label">MCU-ID</span>
|
|
<span class="value" id="chipid">---</span>
|
|
</div>
|
|
<div class="row">
|
|
<span class="label">CPU speed</span>
|
|
<span class="value" id="cpuspeed">---</span>
|
|
</div>
|
|
<div class="row even">
|
|
<span class="label">Free heap</span>
|
|
<span class="value" id="heap">---</span>
|
|
</div>
|
|
<div class="row">
|
|
<span class="label">Uptime</span>
|
|
<span class="value" id="uptime">---</span>
|
|
</div>
|
|
<div class="row even">
|
|
<span class="label">NMEA2000 State</span>
|
|
[<span class="value" id="n2knode">---</span>]
|
|
<span class="value" id="n2kstate">UNKNOWN</span>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<span class="label">Dest A</span>
|
|
<span class="value" id="destA">---</span>
|
|
</div>
|
|
<div class="row even">
|
|
<span class="label">Dest B</span>
|
|
<span class="value" id="destB">---</span>
|
|
</div>
|
|
<div class="row">
|
|
<span class="label">Dest C</span>
|
|
<span class="value" id="destC">---</span>
|
|
</div>
|
|
|
|
<div class="row even">
|
|
<span class="label">Sensor: Temperature</span>
|
|
<span class="value" id="temp">---</span>°C
|
|
</div>
|
|
<div class="row">
|
|
<span class="label">Sensor: Humidity</span>
|
|
<span class="value" id="hum">---</span>%
|
|
</div>
|
|
|
|
</div>
|
|
<button id="reset">Reset</button>
|
|
</div>
|
|
|
|
<div class="configForm tabPage hidden" id="configPage">
|
|
<div class="buttons">
|
|
<button id="resetForm">ReloadConfig</button>
|
|
<button id="forgetPass">ForgetPass</button>
|
|
<button id="changeConfig">Save&Restart</button>
|
|
<button id="exportConfig">Export</button>
|
|
<button id="importConfig">Import</button>
|
|
<button id="factoryReset">FactoryReset</button>
|
|
</div>
|
|
<div class="configFormRows">
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="tabPage hidden" id="updatePage">
|
|
<div class="row">
|
|
<span class="label">Firmware type</span>
|
|
<span class="value status-fwtype">---</span>
|
|
</div>
|
|
<div class="row">
|
|
<span class="label">Chip type</span>
|
|
<span class="value status-chipid">---</span>
|
|
</div>
|
|
<div class="row">
|
|
<span class="label">Current version</span>
|
|
<span class="value status-version">---</span>
|
|
</div>
|
|
<div class="row">
|
|
<span class="label">New Firmware</span>
|
|
<input type="file" name="file1" id="uploadFile">
|
|
</div>
|
|
<div class="row">
|
|
<span class="label"></span>
|
|
<span id="imageProperties" class="value"></span>
|
|
</div>
|
|
<div id="uploadProgress">
|
|
<div id="uploadDone"></div>
|
|
</div>
|
|
<div class="buttons">
|
|
<button id="uploadBin">Upload</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="overlayContainer hidden" id="overlayContainer">
|
|
<div id="overlay" class="overlay">
|
|
<div id="overlayContent" class="overlayContent">
|
|
AHA
|
|
</div>
|
|
<div class="overlayButtons">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="overlayContainer hidden" id="adminPassOverlay">
|
|
<div id="adminPassOverlay" class="overlay">
|
|
<div id="adminPassOverlayContent" class="overlayContent">
|
|
<h2>Admin Password</h2>
|
|
<div id="adminPassHint"></div>
|
|
<div id="adminPassError" ></div>
|
|
<input id="adminPassInput" type="password">
|
|
<div class="row">
|
|
<span class="label">remember me</span>
|
|
<select id="adminPassKeep">
|
|
<option value="true">on</option>
|
|
<option value="false" selected>off</option>
|
|
</select>
|
|
</div>
|
|
<div class="overlayButtons">
|
|
<button id="adminPassCancel">Cancel</button>
|
|
<button id="adminPassOk">OK</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|