Initial commit
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
{{define "body_content"}}
|
||||
<div class="notification is-danger">
|
||||
<strong>Diese Seite existiert nicht</strong>
|
||||
</div>
|
||||
{{end}}
|
||||
@@ -0,0 +1,19 @@
|
||||
{{define "header_additions"}}
|
||||
<script src="https://js.stripe.com/v3/"></script>
|
||||
{{end}}
|
||||
{{define "body_content"}}
|
||||
<p class="title is-4">Checkout</p>
|
||||
|
||||
<p id="charge_data" hidden>0002CC01000003F7:2</p>
|
||||
|
||||
<div id="card-element">
|
||||
<!-- Elements will create input elements here -->
|
||||
</div>
|
||||
|
||||
<!-- We'll put the error messages in this element -->
|
||||
<div id="card-errors" role="alert"></div>
|
||||
|
||||
<button id="submit">Pay</button>
|
||||
|
||||
<script src="static/js/checkout.js"></script>
|
||||
{{end}}
|
||||
@@ -0,0 +1,9 @@
|
||||
{{define "body_content"}}
|
||||
<p class="title is-4">Kontakt</p>
|
||||
<p>nbit Informatik GmbH<br />
|
||||
Kirchweg 2<br />
|
||||
3510 Konolfingen<br />
|
||||
<br />
|
||||
+41 31 792 00 40<br />
|
||||
<a href='mailto:i%6Efo@%6Ebit.%63h'>info@nbit.ch</a>
|
||||
{{end}}
|
||||
@@ -0,0 +1,63 @@
|
||||
{{define "body_content"}}
|
||||
{{ if ne .UserName "" }}
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/momentjs/latest/moment-with-locales.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" />
|
||||
|
||||
<link href="static/bulma-calendar/css/bulma-calendar.min.css" rel="stylesheet">
|
||||
<script src="static/bulma-calendar/js/bulma-calendar.min.js"></script>
|
||||
|
||||
<div class="columns" id="myselectors">
|
||||
<div class="column is-half py-1">
|
||||
<div id="reportrange" style="background: #fff; cursor: pointer; padding: 5px 10px; border: 1px solid #ccc; width: 100%">
|
||||
<i class="fa fa-calendar"></i>
|
||||
<span></span> <i class="fa fa-caret-down"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column is-half py-1">
|
||||
<a id="btn_w" class="button">
|
||||
<span class="icon">
|
||||
<i class="fa fa-balance-scale"></i>
|
||||
</span>
|
||||
</a>
|
||||
<a id="btn_t" class="button">
|
||||
<span class="icon">
|
||||
<i class="fa fa-thermometer-half"></i>
|
||||
</span>
|
||||
</a>
|
||||
<a id="btn_h" class="button">
|
||||
<span class="icon">
|
||||
<i class="fa fa-tint"></i>
|
||||
</span>
|
||||
</a>
|
||||
<a id="btn_p" class="button">
|
||||
<span class="icon">
|
||||
<i class="fa fa-cloud"></i>
|
||||
</span>
|
||||
</a>
|
||||
<a id="btn_vp" class="button">
|
||||
<span class="icon">
|
||||
<i class="fa fa-battery-three-quarters"></i>
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="static/js/graph.js"></script>
|
||||
|
||||
<div>
|
||||
<section id="chart">
|
||||
<!-- Content ... -->
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/apexcharts"></script>
|
||||
|
||||
<script src="static/js/chart.js"></script>
|
||||
|
||||
{{ else }}
|
||||
<h4>Bitte zuerst <a href="login.html">einloggen</a></h4>
|
||||
{{end}}
|
||||
{{end}}
|
||||
@@ -0,0 +1,28 @@
|
||||
{{define "header_additions"}}
|
||||
{{end}}
|
||||
{{define "body_content"}}
|
||||
<p class="title is-4">GPS Tracking leichtgemacht...</p>
|
||||
<div class="message is-danger">
|
||||
<div class="message-body">
|
||||
Aktuell noch in Entwicklung, kommen Sie später noch einmal vorbei...
|
||||
</div>
|
||||
</div>
|
||||
{{ if ne .UserName "" }}
|
||||
<p>
|
||||
<strong>Ich will weitere bestellen!</strong>
|
||||
<span class="icon"><i class="fa fa-arrow-right"></i></span>
|
||||
Hier geht's zur <a href="/order.html">Bestellung</a>
|
||||
</p>
|
||||
{{ else }}
|
||||
<p>
|
||||
<strong>Ich will auch einen!</strong>
|
||||
<span class="icon"><i class="fa fa-arrow-right"></i></span>
|
||||
Hier geht's zur <a href="/order.html">Bestellung</a>
|
||||
</p>
|
||||
<p> </p>
|
||||
<p>
|
||||
<strong>Ich habe bereits einen (oder mehrere)</strong>
|
||||
<span class="icon"><i class="fa fa-arrow-right"></i></span>
|
||||
Hier geht's zum <a href="/login.html">Login</a>
|
||||
{{end}}
|
||||
{{end}}
|
||||
@@ -0,0 +1,5 @@
|
||||
{{define "body_content"}}
|
||||
<div class="notification is-danger">
|
||||
<strong>Ungültiges Login!</strong>
|
||||
</div>
|
||||
{{end}}
|
||||
@@ -0,0 +1,46 @@
|
||||
{{define "body_content"}}
|
||||
{{ if ne .UserName "" }}
|
||||
Sie sind bereits eingeloggt!
|
||||
{{ else }}
|
||||
<form class="form-signin" id="login-form" action="/login">
|
||||
<div class="column is-auto">
|
||||
<div class="columns is-centered">
|
||||
<div class="column is-4">
|
||||
<h1 class="title">Login</h1>
|
||||
<div class="field">
|
||||
<p class="control has-icons-left has-icons-right">
|
||||
<input id="email" name="email" class="input is-success is-focused" type="text" placeholder="E-Mail">
|
||||
<span class="icon is-small is-left">
|
||||
<i class="fa fa-envelope"></i>
|
||||
</span>
|
||||
<span class="icon is-small is-right">
|
||||
<i class="fa fa-check"></i>
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="field">
|
||||
<p class="control has-icons-left has-icons-right">
|
||||
<input id="password" name="password" class="input" type="password" placeholder="Passwort">
|
||||
<span class="icon is-small is-left">
|
||||
<i class="fa fa-lock"></i>
|
||||
</span>
|
||||
<span class="icon is-small is-right">
|
||||
<i class="fa fa-check"></i>
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="has-text-centered">
|
||||
<a href="/reset_password.html">Passwort vergessen?</a><br/>
|
||||
</div>
|
||||
<br>
|
||||
<div id="errorbox" class="notification is-danger is-size-7-mobile" style="display: none;">
|
||||
</div>
|
||||
<div class="has-text-centered">
|
||||
<input id="login-button" name="login-button" type="submit" class="form-button button is-primary is-centered" value="Anmelden"></input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{{end}}
|
||||
{{end}}
|
||||
@@ -0,0 +1,8 @@
|
||||
{{define "body_content"}}
|
||||
<p class="title is-4">Bestellformular</p>
|
||||
<div class="message is-danger">
|
||||
<div class="message-body">
|
||||
Aktuell noch in Entwicklung, kommen Sie später noch einmal vorbei...
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
@@ -0,0 +1,9 @@
|
||||
{{define "body_content"}}
|
||||
{{ if ne .UserName "" }}
|
||||
Sie sind bereits eingeloggt!
|
||||
{{ else }}
|
||||
<div class="notification is-info">
|
||||
Passwort wurde erfolgreich geändert!
|
||||
</div>
|
||||
{{ end }}
|
||||
{{end}}
|
||||
@@ -0,0 +1,9 @@
|
||||
{{define "body_content"}}
|
||||
{{ if ne .UserName "" }}
|
||||
|
||||
<p class="title is-4">Zahlung abgebrochen!</p>
|
||||
<p>Zahlung wurde abgebrochen</p>
|
||||
{{ else }}
|
||||
<h4>Bitte zuerst <a href="login.html">einloggen</a></h4>
|
||||
{{end}}
|
||||
{{end}}
|
||||
@@ -0,0 +1,9 @@
|
||||
{{define "body_content"}}
|
||||
{{ if ne .UserName "" }}
|
||||
|
||||
<p class="title is-4">Danke schoen!</p>
|
||||
<p>Danke fuer die Zahlung!</p>
|
||||
{{ else }}
|
||||
<h4>Bitte zuerst <a href="login.html">einloggen</a></h4>
|
||||
{{end}}
|
||||
{{end}}
|
||||
@@ -0,0 +1,46 @@
|
||||
{{define "body_content"}}
|
||||
{{ if ne .UserName "" }}
|
||||
Sie sind bereits eingeloggt!
|
||||
{{ else }}
|
||||
<p class="title is-4">Passwort zurücksetzen</p>
|
||||
<div class="notification is-info">
|
||||
<p>Hier können Sie ein neues Passwort setzen. Sie erhalten anschliessend eine Meldung zur Bestätigung zugesendet. Das neue Passwort wird erst gültig, wenn Sie die Bestätigung durchgeführt haben.</p>
|
||||
</div>
|
||||
<form class="form-signin" id="reset-password-form" action="/reset_password">
|
||||
<div class="column is-auto">
|
||||
<div class="columns is-centered">
|
||||
<div class="column is-4">
|
||||
<div class="field">
|
||||
<p class="control has-icons-left has-icons-right">
|
||||
<input id="email" name="email" class="input is-success is-focused" type="text" placeholder="E-Mail">
|
||||
<span class="icon is-small is-left">
|
||||
<i class="fa fa-envelope"></i>
|
||||
</span>
|
||||
<span class="icon is-small is-right">
|
||||
<i class="fa fa-check"></i>
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="field">
|
||||
<p class="control has-icons-left has-icons-right">
|
||||
<input id="password" name="password" class="input" type="password" placeholder="Password">
|
||||
<span class="icon is-small is-left">
|
||||
<i class="fa fa-lock"></i>
|
||||
</span>
|
||||
<span class="icon is-small is-right">
|
||||
<i class="fa fa-check"></i>
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
<br>
|
||||
<div id="errorbox" class="notification is-danger is-size-7-mobile" style="display: none;">
|
||||
</div>
|
||||
<div class="has-text-centered">
|
||||
<input id="login-button" name="login-button" type="submit" class="form-button button is-primary is-centered" value="Passwort zurücksetzen"></input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{{end}}
|
||||
{{end}}
|
||||
@@ -0,0 +1,174 @@
|
||||
{{define "body_content"}}
|
||||
{{ if ne .UserName "" }}
|
||||
<div id="modal" class="modal">
|
||||
<div class="modal-background"></div>
|
||||
<div class="modal-card">
|
||||
<header class="modal-card-head">
|
||||
<p class="modal-card-title">Einstellungen</p>
|
||||
</header>
|
||||
<div class="modal-card-body">
|
||||
<!-- Content ... -->
|
||||
<div class="field"> <label id="label" class="label">Bezeichnung</label>
|
||||
<div class="control has-icons-right">
|
||||
<input id="alias" class="input" type="text" maxlength="25">
|
||||
<span id="alias_exclamation" class="icon is-small is-right">
|
||||
<i class="fas fa-exclamation-triangle"></i>
|
||||
</span>
|
||||
</div>
|
||||
<p id="alias_errormsg" class="help is-danger"></p>
|
||||
</div>
|
||||
|
||||
<div class="is-size-7">
|
||||
Device ID: <span id="deveui"></span>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="modal-card-foot">
|
||||
<button id="modal-save" class="button is-success">OK</button>
|
||||
<button id="modal-close" class="button">Cancel</button>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="cart" class="modal">
|
||||
<div class="modal-background"></div>
|
||||
<div class="modal-card">
|
||||
<header class="modal-card-head">
|
||||
<p class="modal-card-title">Abo verlängern</p>
|
||||
</header>
|
||||
<p id="charge_data" hidden>0</p>
|
||||
<div class="modal-card-body">
|
||||
<div id="abos_verlaengern">
|
||||
<!-- Content ... -->
|
||||
</div>
|
||||
<div>
|
||||
<div class="has-margin-top-20" id="card-element">
|
||||
<!-- Elements will create input elements here -->
|
||||
</div>
|
||||
|
||||
<!-- We'll put the error messages in this element -->
|
||||
<div class="message is-danger has-margin-top-20" id="card-errors-article" role="alert">
|
||||
<div class="message-body" id="card-errors">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="modal-card-foot">
|
||||
|
||||
<button id="cart-pay" class="button is-success">Bezahlen</button>
|
||||
<button id="cart-close" class="button">Cancel</button>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="payment_notifier" class="modal">
|
||||
<div class="modal-background"></div>
|
||||
<div class="modal-card">
|
||||
<header class="modal-card-head">
|
||||
<p class="modal-card-title">Info: Bezahlung durchgeführt</p>
|
||||
</header>
|
||||
<div class="modal-card-body">
|
||||
<div class="message is-info">
|
||||
<div class="message-body">
|
||||
Sie haben eine Abo Verlängerung bezahlt, besten Dank!
|
||||
|
||||
Sie erhalten eine E-Mail, sobald die Zahlung erfolgreich abgeschlossen ist.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="modal-card-foot">
|
||||
|
||||
<button id="payment_notifier_close" class="button is-success">Schliessen</button>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{range .LastMetrics}}
|
||||
<div class="column waage is-full notification is-warning">
|
||||
<p class="is-size-2 is-size-5-mobile has-text-centered has-text-weight-bold" ><span class="alias" id="alias_{{.Deveui}}">{{.Alias}}</span>{{ if not .Readonly }}<a class="show-modal" class="block-link"><span style="float:right;" class="icon is-size-4 is-size-5-mobile"><i class="fa fa-cog"></i></span></a>{{ end }}</p>
|
||||
<p id="lastmeasurement_{{.Deveui}}" class="has-text-centered">letzte übermittelte Messung: {{.Timestamp}}</p>
|
||||
<div id="{{.Deveui}}">
|
||||
<div class="column is-full notification is-warning">
|
||||
<nav class="level">
|
||||
<div class="level-item has-text-centered">
|
||||
<a class="block-link" href="/graph.html?deveui={{.Deveui}}&alias={{.Alias}}&property=t">
|
||||
<div>
|
||||
<p class="icon"><i class="fa fa-thermometer-half"></i></p>
|
||||
<p id="temp_{{.Deveui}}" class="title">Lat {{.Lat}}</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="level-item has-text-centered">
|
||||
<a class="block-link" href="/graph.html?deveui={{.Deveui}}&alias={{.Alias}}&property=h">
|
||||
<div>
|
||||
<p class="icon"><i class="fa fa-tint"></i></p>
|
||||
<p id="humidity_{{.Deveui}}" class="title">Lon {{.Lon}}</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
{{ if (lt .DaysUntilDeactivated 0) }}
|
||||
<div class="level-item has-text-centered">
|
||||
<div>
|
||||
<p class="icon"><i class="fa fa-balance-scale"></i></p>
|
||||
<p id="weight_{{.Deveui}}" class="title is-size-2 has-text-weight-bold has-text-danger">Abo ist abgelaufen</p>
|
||||
</div>
|
||||
</div>
|
||||
{{ else }}
|
||||
{{ end }}
|
||||
<div class="level-item has-text-centered">
|
||||
<a class="block-link" href="/graph.html?deveui={{.Deveui}}&alias={{.Alias}}&property=p">
|
||||
<div>
|
||||
<p class="icon"><i class="fa fa-cloud"></i></p>
|
||||
<p id="pressure_{{.Deveui}}" class="title">VBat {{.Vbat}} mV</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="level-item has-text-centered">
|
||||
<a class="block-link" href="/graph.html?deveui={{.Deveui}}&alias={{.Alias}}&property=vp">
|
||||
<div>
|
||||
<p class="icon"><i class="fa fa-battery-three-quarters"></i></p>
|
||||
<p id="acculevel_{{.Deveui}}" class="title">Fw {{.Fw}}</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="has-text-centered">
|
||||
<span class="is-size-6 has-text-centered">Abo aktiv bis</span>
|
||||
<span class="paid_until is-size-6 has-text-centered">{{.ActiveUntil}}</span>
|
||||
</div>
|
||||
{{ if (lt .DaysUntilDeactivated 1095) }}
|
||||
<div class="has-text-centered is-size-7">
|
||||
<p class="abo_add_years_text" id="abo_add_years_text_{.Deveui}}"> </p>
|
||||
</div>
|
||||
<div class="has-text-centered">
|
||||
<p class="abo_add_years" id="abo_add_years_{{.Deveui}}" hidden>0</p>
|
||||
<a class="block-link abo_plus is-unselectable" id="abo_plus_{{.Deveui}}">
|
||||
<span class="icon is-medium">
|
||||
<i class="fa fa-lg fa-plus"></i>
|
||||
</span>
|
||||
</a>
|
||||
<a class="block-link abo_pay is-unselectable" id="abo_{{.Deveui}}">
|
||||
<span class="icon is-medium">
|
||||
<i class="fa fa-2x fa-shopping-cart"></i>
|
||||
</span>
|
||||
</a>
|
||||
<a class="block-link abo_minus is-unselectable" id="abo_minus_{{.Deveui}}">
|
||||
<span class="icon is-medium">
|
||||
<i class="fa fa-lg fa-minus"></i>
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{end}}
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/momentjs/latest/moment-with-locales.min.js"></script>
|
||||
|
||||
<script src="static/js/scales.js"></script>
|
||||
|
||||
{{ else }}
|
||||
<h4>Bitte zuerst <a href="login.html">einloggen</a></h4>
|
||||
{{end}}
|
||||
{{end}}
|
||||
@@ -0,0 +1,5 @@
|
||||
{{define "body_content"}}
|
||||
<div class="notification is-danger">
|
||||
<strong>Benutzer existiert nicht!</strong>
|
||||
</div>
|
||||
{{end}}
|
||||
@@ -0,0 +1,10 @@
|
||||
{{define "body_content"}}
|
||||
{{ if ne .UserName "" }}
|
||||
Sie sind bereits eingeloggt!
|
||||
{{ else }}
|
||||
<p class="title is-4">Passwort zurücksetzen - warte auf Bestätigung</p>
|
||||
<div class="notification is-info">
|
||||
<p>Bitte checken Sie Ihre Mailbox. Das neue Passwort wird erst gültig, wenn Sie die Bestätigung durchgeführt haben.</p>
|
||||
</div>
|
||||
{{end}}
|
||||
{{end}}
|
||||
Reference in New Issue
Block a user