411 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			411 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!DOCTYPE html>
 | 
						|
<html>
 | 
						|
 | 
						|
<head>
 | 
						|
  <meta charset="utf-8" />
 | 
						|
  <title>Dark Emergency Timer</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="" />
 | 
						|
      <span class="data-devicename">DE Airsoft Timer</span>
 | 
						|
    </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">
 | 
						|
              <span class="data-devicename">DE Airsoft Timer</span>
 | 
						|
            </h3>
 | 
						|
          </div>
 | 
						|
        </div>
 | 
						|
        <!-- Div Group Battery remain -->
 | 
						|
        <hr />
 | 
						|
        <h4>Akkuladestand</h4>
 | 
						|
        <div class="progress">
 | 
						|
          <div id="batterylevel" class="data-batterylevel progress-bar text-light" role="progressbar" aria-valuenow="0"
 | 
						|
            aria-valuemin="0" aria-valuemax="100" style="width: 0%">
 | 
						|
            0
 | 
						|
          </div>
 | 
						|
        </div>
 | 
						|
        <!-- Div Group Battery remain -->
 | 
						|
        <!-- Div Group current Mode -->
 | 
						|
        <hr />
 | 
						|
        <h4>aktueller Modus</h4>
 | 
						|
        <input class="data-systemstatus form-control" type="text" id="sysstatus" readonly />
 | 
						|
        <!-- Div Group current Mode -->
 | 
						|
        <!-- Div Group Faction Points -->
 | 
						|
        <hr />
 | 
						|
        <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 data-activefaction faction-logo faction1">
 | 
						|
              <div class="glow-container">
 | 
						|
                <img src="static/img/logo_fac1.png" class="rounded mx-auto img-fluid d-block" alt="..." />
 | 
						|
              </div>
 | 
						|
            </div>
 | 
						|
            <div class="col bg-dark text-white p-3 data-activefaction faction-logo faction2 glow-active-faction">
 | 
						|
              <div class="glow-container">
 | 
						|
                <img src="static/img/logo_fac2.png" class="rounded mx-auto img-fluid d-block" alt="..." />
 | 
						|
              </div>
 | 
						|
            </div>
 | 
						|
            <div class="col bg-dark text-white p-3 data-activefaction faction-logo faction3">
 | 
						|
              <div class="glow-container">
 | 
						|
                <img src="static/img/logo_fac3.png" class="rounded mx-auto img-fluid d-block" alt="..." />
 | 
						|
              </div>
 | 
						|
            </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 class="row mt-3">
 | 
						|
            <div class="col text-center">
 | 
						|
              <button id="faction1" class="btn-wsevent btn btn-outline-primary">
 | 
						|
                Aktivieren
 | 
						|
              </button>
 | 
						|
            </div>
 | 
						|
            <div class="col text-center">
 | 
						|
              <button id="faction2" class="btn-wsevent btn btn-outline-primary">
 | 
						|
                Aktivieren
 | 
						|
              </button>
 | 
						|
            </div>
 | 
						|
            <div class="col text-center">
 | 
						|
              <button id="faction3" class="btn-wsevent btn btn-outline-primary">
 | 
						|
                Aktivieren
 | 
						|
              </button>
 | 
						|
            </div>
 | 
						|
          </div>
 | 
						|
        </div>
 | 
						|
        <!-- Div GroupFaction Points -->
 | 
						|
        <!-- Div Group DTC Table -->
 | 
						|
        <div id="dtc_container" hidden>
 | 
						|
          <hr />
 | 
						|
          <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>
 | 
						|
        </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 />
 | 
						|
        <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>
 | 
						|
        <!-- Div Group Reset Timers  -->
 | 
						|
        <!-- Div Group LiveDebug -->
 | 
						|
        <hr />
 | 
						|
        <h4>Live Debug</h4>
 | 
						|
        <div class="form-group row">
 | 
						|
          <input id="livedebug-in" type="text" class="set-wsevent data-livedebug-in form-control" />
 | 
						|
        </div>
 | 
						|
        <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>
 | 
						|
        <!-- Div Group LiveDebug -->
 | 
						|
        <!-- Div Group Device Reboot -->
 | 
						|
        <hr />
 | 
						|
        <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>
 | 
						|
        <!-- 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 />
 | 
						|
        <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="LiPo 3S">LiPo 3S</option>
 | 
						|
              <option value="LiPo 2S">LiPo 2S</option>
 | 
						|
            </select>
 | 
						|
          </div>
 | 
						|
        </div>
 | 
						|
        <!-- Div Group Battery Type -->
 | 
						|
        <!-- Div Group Timer Settings -->
 | 
						|
        <hr />
 | 
						|
        <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">
 | 
						|
            <div class="input-group">
 | 
						|
              <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>
 | 
						|
        <div class="form-group row">
 | 
						|
          <label for="name_faction2" class="control-label col-4">Faktion 2</label>
 | 
						|
          <div class="col-8">
 | 
						|
            <div class="input-group">
 | 
						|
              <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>
 | 
						|
        <div class="form-group row">
 | 
						|
          <label for="name_faction3" class="control-label col-4">Faktion 3</label>
 | 
						|
          <div class="col-8">
 | 
						|
            <div class="input-group">
 | 
						|
              <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>
 | 
						|
        <!-- Div Group Timer Settings -->
 | 
						|
        <!-- Div Group Save Button-->
 | 
						|
        <hr />
 | 
						|
        <div class="form-group row">
 | 
						|
          <div class="col text-center">
 | 
						|
            <button id="settingssave" class="btn-wsevent btn btn-outline-primary">
 | 
						|
              Speichern
 | 
						|
            </button>
 | 
						|
          </div>
 | 
						|
        </div>
 | 
						|
      </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 />
 | 
						|
        <h4>Version-Info</h4>
 | 
						|
        <table class="table">
 | 
						|
          <tbody>
 | 
						|
            <tr>
 | 
						|
              <th class="col-7" scope="col">Parameter</th>
 | 
						|
              <th class="col-5" scope="col">Value</th>
 | 
						|
            </tr>
 | 
						|
            <tr>
 | 
						|
              <td>Firmware Version</td>
 | 
						|
              <td><span class="data-fw-version"></span></td>
 | 
						|
            </tr>
 | 
						|
            <tr>
 | 
						|
              <td>Flash Version</td>
 | 
						|
              <td><span class="data-flash-version"></span></td>
 | 
						|
            </tr>
 | 
						|
            <tr>
 | 
						|
              <td>Git Revision</td>
 | 
						|
              <td><span class="data-git-revision"></span></td>
 | 
						|
            </tr>
 | 
						|
          </tbody>
 | 
						|
        </table>
 | 
						|
        <!-- Div Group VersionInfo -->
 | 
						|
        <!-- Div Group EEPROM Backup -->
 | 
						|
        <hr />
 | 
						|
        <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>
 | 
						|
        <!-- Div Group EEPROM Backup -->
 | 
						|
        <!-- Div Group EEPROM Restore -->
 | 
						|
        <hr />
 | 
						|
        <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>
 | 
						|
        <!-- Div Group EEPROM Restore -->
 | 
						|
        <!-- Div Group Firmware Update -->
 | 
						|
        <hr />
 | 
						|
        <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>
 | 
						|
        <!-- 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> |