381 lines
14 KiB
HTML
381 lines
14 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<title>KTM CAN Chain Oiler</title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<link rel="stylesheet" href="static/css/bootstrap.min.css">
|
|
<link rel="stylesheet" href="static/css/custom.css">
|
|
<link rel="stylesheet" href="static/css/tweaks.css">
|
|
<script src="static/js/jquery.min.js"></script>
|
|
<script src="static/js/bootstrap.min.js"></script>
|
|
<script src="static/js/websocket.js"></script>
|
|
<script src="static/js/dtc_table.js"></script>
|
|
<script src="static/js/script.js"></script>
|
|
<link rel="apple-touch-icon" sizes="180x180" href="static/img/apple-touch-icon.png">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="static/img/favicon-32x32.png">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="static/img/favicon-16x16.png">
|
|
<link rel="manifest" href="static/img/site.webmanifest">
|
|
</head>
|
|
|
|
<body>
|
|
<!-- Connection-Overlay -->
|
|
<div id="overlay">
|
|
<div class="overlay-content">
|
|
<p>Verbinde...</p>
|
|
<span class="loader"></span>
|
|
</div>
|
|
</div>
|
|
<!-- Connection-Overlay -->
|
|
<!-- Notification-Container -->
|
|
<div id="notification-container" class="notification-container"></div>
|
|
<!-- Notification-Container -->
|
|
|
|
<nav class="navbar fixed-top navbar-dark bg-primary" id="navbar1">
|
|
<a class="navbar-brand" href="#">
|
|
<img src="static/img/logo.png" width="30" height="30" class="d-inline-block align-top mr-1" alt="">
|
|
DE Airsoft Timer
|
|
</a>
|
|
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsingNavbar"
|
|
aria-controls="collapsingNavbar" aria-expanded="false" aria-label="Toggle navigation">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
|
|
<div class="collapse navbar-collapse" id="collapsingNavbar">
|
|
<ul class="navbar-nav nav mr-auto mt-2 mt-lg-0">
|
|
|
|
<li class="nav-item"><a class="nav-link active" role="tab" data-toggle="tab" href="#tab_home">Home</a></li>
|
|
<li class="nav-item"><a class="nav-link" role="tab" data-toggle="tab" href="#tab_maintenance">Wartung</a></li>
|
|
<li class="nav-item"><a class="nav-link" role="tab" data-toggle="tab" href="#tab_source">Einstellungen</a></li>
|
|
<li class="nav-item"><a class="nav-link" role="tab" data-toggle="tab" href="#tab_fwupdate">Update</a></li>
|
|
|
|
</ul>
|
|
</div>
|
|
</nav>
|
|
|
|
<main class="container">
|
|
|
|
<!-- Tabs Content -->
|
|
<div class="tab-content">
|
|
<!-- Div Tab Home-->
|
|
<div id="tab_home" class="tab-pane fade show active" role="tabpanel">
|
|
<div class="col text-center">
|
|
<div class="jumbotron">
|
|
<img src="static/img/logo.png" width="120" height="120" class="img-fluid" alt="">
|
|
<h3 class="pt-3">KTM CAN Chain Lube</h3>
|
|
</div>
|
|
</div>
|
|
<!-- Div Group Battery remain -->
|
|
<hr />
|
|
<p>
|
|
<h4>Akkuladestand</h4>
|
|
<div class="progress">
|
|
<div id="battery_level" class="data-battery_level progress-bar text-light" role="progressbar" aria-valuenow="0"
|
|
aria-valuemin="0" aria-valuemax="100" style="width: 0%">
|
|
0
|
|
</div>
|
|
</div>
|
|
</p>
|
|
<!-- Div Group Battery remain -->
|
|
<!-- Div Group current Mode -->
|
|
<hr />
|
|
<p>
|
|
<h4>aktueller Modus</h4>
|
|
<input class="data-systemstatus form-control" type="text" id="sysstatus" readonly>
|
|
</p>
|
|
<!-- Div Group current Mode -->
|
|
<!-- Div Group Faction Points -->
|
|
<hr />
|
|
<p>
|
|
<h4>aktueller Punktestand</h4>
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div id="header_faction1" class="col text-center data-name_faction1 text-white p-3">%NAME_FAC_1%</div>
|
|
<div id="header_faction2" class="col text-center data-name_faction2 text-white p-3">%NAME_FAC_2%</div>
|
|
<div id="header_faction3" class="col text-center data-name_faction3 text-white p-3">%NAME_FAC_3%</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col bg-dark text-white p-3"><img src="static/img/logo_fac1.png"
|
|
class="rounded mx-auto img-fluid d-block" alt="...">
|
|
</div>
|
|
<div class="col bg-dark text-white p-3"><img src="static/img/logo_fac2.png"
|
|
class="rounded mx-auto img-fluid d-block" alt="...">
|
|
</div>
|
|
<div class="col bg-dark text-white p-3"><img src="static/img/logo_fac3.png"
|
|
class="rounded mx-auto img-fluid d-block" alt="...">
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div id="time_faction1" class="data-time_faction1 col text-center bg-secondary text-white p-3 format-time">0</div>
|
|
<div id="time_faction2" class="data-time_faction2 col text-center bg-secondary text-white p-3 format-time">0</div>
|
|
<div id="time_faction3" class="data-time_faction3 col text-center bg-secondary text-white p-3 format-time">0</div>
|
|
</div>
|
|
</div>
|
|
</p>
|
|
<!-- Div GroupFaction Points -->
|
|
<!-- Div Group DTC Table -->
|
|
<div id="dtc_container" hidden>
|
|
<hr />
|
|
<p>
|
|
<h4>Fehlercodes</h4>
|
|
<table class="table" id="dtc_table">
|
|
<tbody>
|
|
<tr>
|
|
<th class="col-6" scope="col">Zeitstempel</th>
|
|
<th class="col-2" scope="col">Fehlercode</th>
|
|
<th class="col-2" scope="col">Schwere</th>
|
|
<th class="col-2" scope="col">Aktiv</th>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</p>
|
|
</div>
|
|
<!-- Div Group DTC Table -->
|
|
</div>
|
|
<!-- Div Tab Home-->
|
|
|
|
<!-- Div Tab Maintenance -->
|
|
<div id="tab_maintenance" class="tab-pane fade" role="tabpanel">
|
|
<h3>Wartung</h3>
|
|
<!-- Div Group Reset Timers -->
|
|
<hr />
|
|
<p>
|
|
<h4>Punkte zurücksetzen</h4>
|
|
<div class="form-group row">
|
|
<div class="col text-center">
|
|
<button id="reset-timer" class="btn-wsevent btn btn-outline-primary ml-2">Timer zurücksetzen</button>
|
|
</div>
|
|
</div>
|
|
</p>
|
|
<!-- Div Group Reset Timers -->
|
|
<!-- Div Group LiveDebug -->
|
|
<hr />
|
|
<p>
|
|
<h4>Live Debug</h4>
|
|
<div class="form-group row">
|
|
<textarea class="form-control" spellcheck="false" id="livedebug-out" rows="3" readonly></textarea>
|
|
</div>
|
|
<div class="form-group row">
|
|
<div class="col text-center">
|
|
<button id="debugstart" class="btn-wsevent btn btn-outline-primary ml-2">Start</button>
|
|
<button id="debugstop" class="btn-wsevent btn btn-outline-primary ml-2">Stop</button>
|
|
</div>
|
|
</div>
|
|
</p>
|
|
<!-- Div Group LiveDebug -->
|
|
<!-- Div Group Device Reboot -->
|
|
<hr />
|
|
<p>
|
|
<h4>Gerät neustarten</h4>
|
|
<div class="form-group row">
|
|
<div class="col text-center">
|
|
<button id="reboot" class="btn-wsevent confirm btn btn-outline-primary">Reboot</button>
|
|
</div>
|
|
</div>
|
|
</p>
|
|
<!-- Div Group Device Reboot -->
|
|
</div>
|
|
<!-- Div Tab Maintenance -->
|
|
|
|
<!-- Div Tab Settings-->
|
|
<div id="tab_source" class="tab-pane fade" role="tabpanel">
|
|
<h3>Einstellungen</h3>
|
|
<!-- Div Group Battery Type -->
|
|
<hr />
|
|
<p>
|
|
<h4>Akku</h4>
|
|
<div class="form-group row">
|
|
<label for="batterytype" class="control-label col-4">Akku-Variante</label>
|
|
<div class="col-8">
|
|
<select id="batterytype" class="set-wsevent data-batterytype select form-control">
|
|
<option value="Undefined">Undefined</option>
|
|
<option value="LiPo3S">LiPo 3S</option>
|
|
<option value="LiPo2S">LiPo 2S</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</p>
|
|
<!-- Div Group Battery Type -->
|
|
<!-- Div Group Timer Settings -->
|
|
<hr />
|
|
<p>
|
|
<h4>Timer Einstellungen</h4>
|
|
<div class="form-group row">
|
|
<label for="active_faction_on_reboot" class="control-label col-4">Aktive Fraktion wiederherstellen</label>
|
|
<div class="col-8">
|
|
<div class="form-check">
|
|
<input class="set-wsevent data-active_faction_on_reboot form-check-input" type="checkbox" id="active_faction_on_reboot">
|
|
<label class="form-check-label" for="active_faction_on_reboot">
|
|
aktivieren
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group row">
|
|
<label for="name_faction1" class="control-label col-4">Faktion 1</label>
|
|
<div class="col-8">
|
|
<input id="name_faction1" type="text" class="set-wsevent data-name_faction1 form-control" required="required">
|
|
<div class="input-group-append">
|
|
<span class="input-group-text">max. 32 Zeichen</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group row">
|
|
<label for="name_faction2" class="control-label col-4">Faktion 2</label>
|
|
<div class="col-8">
|
|
<input id="name_faction2" type="text" class="set-wsevent data-name_faction2 form-control" required="required">
|
|
<div class="input-group-append">
|
|
<span class="input-group-text">max. 32 Zeichen</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group row">
|
|
<label for="name_faction3" class="control-label col-4">Faktion 3</label>
|
|
<div class="col-8">
|
|
<input id="name_faction3" type="text" class="set-wsevent data-name_faction3 form-control" required="required">
|
|
<div class="input-group-append">
|
|
<span class="input-group-text">max. 32 Zeichen</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Div Group Timer Settings -->
|
|
<!-- Div Group Save Button-->
|
|
<hr />
|
|
<p>
|
|
<div class="form-group row">
|
|
<div class="col text-center">
|
|
<button id="settingssave" class="btn-wsevent btn btn-outline-primary">Speichern</button>
|
|
</div>
|
|
</div>
|
|
</p>
|
|
</div>
|
|
<!-- Div Tab Settings -->
|
|
|
|
<!-- Div Tab Firmware Update-->
|
|
<div id="tab_fwupdate" class="tab-pane fade" role="tabpanel">
|
|
<h3>Firmware</h3>
|
|
<!-- Div Group VersionInfo -->
|
|
<hr />
|
|
<p>
|
|
<h4>Version-Info</h4>
|
|
<table class="table">
|
|
<tbody>
|
|
<tr>
|
|
<th class="col-7" scope="col">Parameter</td>
|
|
<th class="col-5" scope="col">Value</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Firmware Version</td>
|
|
<td>%SW_VERSION%</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Flash Version</td>
|
|
<td>%FS_VERSION%</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Git Revision</td>
|
|
<td>%GIT_REV%</td>
|
|
</tr>
|
|
</table>
|
|
</p>
|
|
<!-- Div Group VersionInfo -->
|
|
<!-- Div Group EEPROM Backup -->
|
|
<hr />
|
|
<p>
|
|
<h4>EEPROM-Backup</h4>
|
|
<div class="form-group row">
|
|
<div class="col text-center">
|
|
<a class="btn btn-outline-primary" href="eejson" role="button" id="ee-backup-download">Download</a>
|
|
</div>
|
|
</div>
|
|
</p>
|
|
<!-- Div Group EEPROM Backup -->
|
|
<!-- Div Group EEPROM Restore -->
|
|
<hr />
|
|
<p>
|
|
<h4>EEPROM-Restore</h4>
|
|
<form method='POST' action='eeRestore' enctype='multipart/form-data'>
|
|
<div class="form-group row">
|
|
<div class="custom-file">
|
|
<input type="file" name="ee-restore-file" class="custom-file-input" id="ee-restore-file" accept=".ee.json"
|
|
required />
|
|
<label class="custom-file-label" for="ee-restore-file">EEPROM-Backup auswählen</label>
|
|
</div>
|
|
</div>
|
|
<div class="form-group row">
|
|
<div class="col text-center">
|
|
<button name="submit" type="submit" class="btn btn-outline-primary">Restore starten</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</p>
|
|
<!-- Div Group EEPROM Restore -->
|
|
<!-- Div Group Firmware Update -->
|
|
<hr />
|
|
<p>
|
|
<h4>Firmware-Update</h4>
|
|
<form method='POST' action='doUpdate' enctype='multipart/form-data'>
|
|
<div class="form-group row">
|
|
<div class="custom-file">
|
|
<input type="file" name="fw-update-file" class="custom-file-input" id="fw-update-file"
|
|
accept=".fw.bin,.fs.gz" required />
|
|
<label class="custom-file-label" for="fw-update-file">Firmware-Update auswählen</label>
|
|
</div>
|
|
</div>
|
|
<div class="form-group row">
|
|
<div class="col text-center">
|
|
<button name="submit" type="submit" class="btn btn-outline-primary">Update starten</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</p>
|
|
<!-- Div Group Firmware Update -->
|
|
</div>
|
|
<!-- Div Tab Firmware Update-->
|
|
</div>
|
|
<!-- Tabs Content -->
|
|
</main>
|
|
|
|
<!-- Footer -->
|
|
|
|
<footer class="page-footer navbar-dark bg-primary font-small fixed-bottom">
|
|
<div class="container-fluid text-center">
|
|
<div class="footer-copyright text-center py-3">
|
|
<span class="text-muted">© 2023 -
|
|
<a class="text-reset fw-bold" href="https://eventronics.de/">Marcel Peterkau</a></span>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
|
|
<!-- Footer -->
|
|
|
|
<!-- Modal Dialog -->
|
|
|
|
<div class="modal fade" id="dtcModal" tabindex="-1" role="dialog" aria-labelledby="dtcModalLabel" aria-hidden="true">
|
|
<div class="modal-dialog modal-dialog-centered" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="dtcModalLabel">DTC-Description</h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<p class="dtc-desc">DTC Description</p>
|
|
<p class="dtc-debugval">DTC DebugVal</p>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal">Close</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Modal Dialog -->
|
|
|
|
|
|
|
|
</body>
|
|
|
|
</html> |