387 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			387 lines
		
	
	
		
			15 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 />
 | |
|         <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 data-activefaction faction-logo faction1">
 | |
|               <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 data-activefaction faction-logo faction2">
 | |
|               <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 data-activefaction faction-logo faction3">
 | |
|               <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="LiPo 3S">LiPo 3S</option>
 | |
|                   <option value="LiPo 2S">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">
 | |
|                 <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 />
 | |
|         <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><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>
 | |
|       </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> |