Fix UI and icon display (#101)

This commit is contained in:
andig 2020-05-05 16:54:31 +02:00 • committed by GitHub
parent b7c9069030
commit 4c3f8a0c73
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 32 additions and 30 deletions

View file

@ -1,14 +1,15 @@
{
"start_url": "../#",
"name": "EV Charge Controller",
"short_name": "EV Charge Controller",
"icons": [
{
"src": "ico/android-chrome-192x192.png",
"src": "android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "ico/android-chrome-512x512.png",
"src": "android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}

View file

@ -40,7 +40,7 @@
<div id="app">
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="https://github.com/andig/evcc"><i class="text-primary far fa-leaf mr-2"></i>evcc</a>
<a class="navbar-brand" href="https://github.com/andig/evcc"><i class="text-primary fas fa-leaf mr-2"></i>evcc</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup"
aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
@ -62,7 +62,7 @@
<div id="error">
<div class="toast" data-delay="2000" style="position: absolute; top: 4rem; right: 0.5rem;">
<div class="toast-header">
<strong class="mr-auto"><i class="text-danger far fa-exclamation-triangle"></i> Error</strong>
<strong class="mr-auto"><i class="text-danger fas fa-exclamation-triangle"></i> Error</strong>
<small v-if="error.status">HTTP {{error.status}}</small>
<button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
<span aria-hidden="true">&times;</span>
@ -154,7 +154,7 @@
<h2 class="card-title pricing-card-title">
{{fmt(state.chargePower)}} <small class="text-muted">{{fmtUnit(state.chargePower)}}W</small>
</h2>
<p>Ladeleistung <i class="text-primary far fa-leaf" v-if="state.chargePower"></i></p>
<p>Ladeleistung <i class="text-primary fas fa-leaf" v-if="state.chargePower"></i></p>
</div>
</div>
</div>
@ -170,10 +170,10 @@
<h2 class="card-title pricing-card-title">{{fmt(state.gridPower)}} <small
class="text-muted">{{fmtUnit(state.gridPower)}}W</small></h2>
<p v-if="state.gridPower > 0">
Bezug <i class="text-primary far fa-arrow-down"></i>
Bezug <i class="text-primary fas fa-arrow-down"></i>
</p>
<p v-else>
Einspeisung <i class="text-primary far fa-arrow-up"></i>
Einspeisung <i class="text-primary fas fa-arrow-up"></i>
</p>
</div>
</div>
@ -190,7 +190,7 @@
<h2 class="card-title pricing-card-title">
{{fmt(state.pvPower)}} <small class="text-muted">{{fmtUnit(state.pvPower)}}W</small>
</h2>
<p>Erzeugung <i class="text-primary far fas fa-sun" v-if="false"></i></p>
<p>Erzeugung <i class="text-primary fas fas fa-sun" v-if="false"></i></p>
</div>
</div>
</div>

View file

@ -3755,13 +3755,13 @@ Kq6S803nwUo2EKLdPwodVV3hH1vUzfKv3f5FuNzf8Of8ePMi/DsAAP//p/PiLcUMAAA=
"/ico/site.webmanifest": {
name: "site.webmanifest",
local: "../assets/ico/site.webmanifest",
size: 472,
size: 486,
modtime: 1566640112,
compressed: `
H4sIAAAAAAAC/5SQwUoDMRCG7/sUQ7y2ll3oob0WX8GLSBmTcTeYzCyTCK2l7y5JYwVBsXOa8H/5+JlT
BwBgGCOZLZiHR9hNqCPBTjirhEBqFhcmTaJ5/x/SW+FktvBUn2VO1+2iUlsc3soK2al4t7STSqRlvxkO
/Wa4n3lstu9P/oOK1TTmZ56Pc23mI460KoJrfl7c3mTdD4d1/3eTxtzSpG7P7VB5okh7K0G08Hevdb7O
+IL2bVR5Z/cr4nyaAx5LkjKywyBMpjt3nwEAAP//6sLjlNgBAAA=
H4sIAAAAAAAC/5SQwWrDMAyGz8tTGPXapiTQQ3ste4VdxgiarSVmjhRkF9qVvvtw5nYw2Fh1UvJ//vjR
uXqAmFBTd9AAOwN1vV7AsjLGGGAcKf97fDL7AbUnsxdOKiGQXpk4iKbuP6S3whF25nn+zHO+bV8qtdmB
7FS8W9lBZaRVs22PzbatJ+6L6fuB/6BshML8zNNpmlv5EXtaZ8Etvyzva7Fp2uOm+btFYe5pMW8v5UBp
oJE6K0E084u3ea7ne0X73qsc2P2KOB+ngKecxITsMAgTVJfqMwAA//+21HeD5gEAAA==
`,
},
@ -3782,7 +3782,7 @@ IxaH+C1l8NJOMnDtp/P05Kv/+eoWzkyKBS0GbHbiVMmVBuWfzdacjYSYEjjgbHfKhftr8GSoYZDAMsui
0F+74U8wRi/PzxHGvR28zpnWYSql0UaRasapmGVaB42RLHB1CTB0RM+2kMKQFWjJ4SbGdv5v21naVfiQ
RlplcfCTDn/6ew3qEh/NjmeHM80od0J/0kEShZ50iquSVQXqTqS9mmktcgYTTO1av1lTqa9ZJ7HPbuB9
V8Mfz6/hXdZwp6Uua8BK1mZSsyj0STlKZX6Z7O1FOV0imrsU4h0lyBJljGgdB4IsU6KQ/8GwrojIMSva
AUaL0qC08BeOG6GIbHPjVBGRt1FSGlPp0zAsqCnrdJZJHrqUGlrUBUlEW2YDa4MrRTlRl2hBFFoQzIAs
AUaL0qC08BeOG6GIbHPjVBGRt1FSGlPp0zAsqCnrdJZJHrqUGlrUBUlEW2YDa4MrRTlRl2hBNFoQzIAs
EFd4bhWiDVBJM21aGyPFztxGFoXN603q8TQByokhzbM4yCRjpNLQDtuaYEPDi3hNlt8wc0bURV0FbiaE
iKLExqGtGt1cW4SexBsM8jhYEGYncKOMpBbmb9301pS0cJHd2M/6syLXKOLzl3VnRUSjeOi1au6sOxvW
VrHWXb2i1t8Tq+4WMBDS8Aqy7B4jFHl4YRfTPSGmBridzT+oUnwYICPjIAySH0gOIgoHjANxFvlRhBQR
@ -3805,19 +3805,19 @@ ez2rn1XtuAWU5kOv7lpip/X2VfW4a2Qv8QFaSGHwCmwrj4VUnLAg+ZYYA4pCFJbHA+l9PZyczDefW1PN
twhcU4baAtYPbTEh9P595wp//LvZtP38cIPAawN5kPzXTuvuV1rOt+4r1xVc1doQkXcFfqTUeL91A2Z+
3xD5kTCWyvWvhZAFN194lGQOIm/kCtSXNwLFMf1Z0GnGH+8OIwZUm1oU6PajsO3cMpjR710/EhKnKsXv
HqCvwVw9GTqHgLQ+2IHjFnjRXcA5FNJBc4zHkfMdD0rQwU7EfAtX9W2AJUrJFc7lSnh0bkVCNZp4uIP1
f6+o0BVQfXts+Knq6uaJPkZEVMv/xIOLB9uZ/dq5ulo+IE/3THfM0a/UFdTFrSDUFoi6Fi1e/AuAe+fl
IRyHRlRydW3LiVosoRYkk8BQcmU35fPr0CAZfo560/lLNXjR4//+l5TOIqd38n0vtDVXebKNg+YEa1DX
pBCQOectQaW16LebW8ddn/Oc6PLFaGPxoDB/Whv+H7hN9Ecy4bh/yV8JUMVlHxnXtCs93Y/lKBp+C4a0
DVROalAf05TfNa9ptkzVDn652fymLPQn0O7E5gqoeXQjvdKGcmLgHkbqrfWgbbx/v3aPY+Tr3h5MH3ju
vLa7x4uE5DswhDKNclBdzsT7qNnpYHeG/Bd3nqwuhrP4E+NmsSfdOW2K53adx9OTtRNEYXkyLhMjKI39
3WDyaBpGZzIHxk73pjx6i6hJDI2TvpbZ2+6Fy9aIe5s2cXR0UxW41wp3lf2eVOSKml9+No+s8EtSkYya
yy2d28HNBl24pPxw1bfS0J2h1G/FHwNJb0qi+8L3GIat7Ay6t6m/32yqJ4aR17TmOisJsxv8p1Ba0Kw0
iPKKAQdhKOye8n+QSmdUzFzJ1UZJ/pj6cCpe1kqBMOiTOLa5EhZU+H5+l2KzQd88sW/PyPqpDEHWtxmi
o/hgQzwsYTRF7LESxru2Sj5q/DT7+uRf//zHE2PpNZirq8fXcPDW5+l1dMflj6+jb0I/kpY3vV5aSGlA
dfFhQ6MNEp7jE3vDcxsvzX0qVQ4KG1nd6zuHftN/wz5iyyLXnYJ8nsnq8gWaH8wPdr9Nukljr2ffiduH
i1pktk9F/hMx97HeF18ifwSmwNRKoL82wsPw9q/8GtL3nRbu2OcUBaPP9YL9jqb9JmdIdt6MbVNSXgyJ
/sCLnefui5YtEv8RzBaVfTCksYu3FA3BZn9LYf/hoBv624s9hDZTm5ruA+Gq2v00OAr9t7pR6P/P4t8B
AAD//805aVt4MQAA
f6+o0BVQfXts+Knq6uaJPkZEVMv/xIOLB9uZ/dq5ulo+IE/3THfM0a/UFdTFrSB0QNS1aPHiXwDcOy8P
4Tg0opKra1tO1GIJtSCZBIaSK7spn1+HBsnwc9Sbzl+qwYse//e/pHQWOb2T73uhrbnKk20cNCdYg7om
hYDMOW8JKq1Fv93cOu76nOdEly9GG4sHhfnT2vD/wG2iP5IJx/1L/kqAKi77yLimXenpfixH0fBbMKRt
oHJSg/qYpvyueU2zZap28MvN5jdloT+Bdic2V0DNoxvplTaUEwP3MFJvrQdt4/37tXscI1/39mD6wHPn
td09XiQk34EhlGmUg+pyJt5HzU4HuzPkv7jzZHUxnMWfGDeLPenOaVM8t+s8np6snSAKy5NxmRhBaezv
BpNH0zA6kzkwdro35dFbRE1iaJz0tczedi9ctkbc27SJo6ObqsC9Vrir7PekIlfU/PKzeWSFX5KKZNRc
buncDm426MIl5YervpWG7gylfiv+GEh6UxLdF77HMGxlZ9C9Tf39ZlM9MYy8pjXXWUmY3eA/hdKCZqVB
lFcMOAhDYfeU/4NUOqNi5kquNkryx9SHU/GyVgqEQZ/Esc2VsKDC9/O7FJsN+uaJfXtG1k9lCLK+zRAd
xQcb4mEJoylij5Uw3rVV8lHjp9nXJ//65z+eGEuvwVxdPb6Gg7c+T6+jOy5/fB19E/qRtLzp9dJCSgOq
iw8bGm2Q8Byf2Bue23hp7lOpclDYyOpe3zn0m/4b9hFbFrnuFOTzTFaXL9D8YH6w+23STRp7PftO3D5c
1CKzfSryn4i5j/W++BL5IzAFplYC/bURHoa3f+XXkL7vtHDHPqcoGH2uF+x3NO03OUOy82Zsm5LyYkj0
B17sPHdftGyR+I9gtqjsgyGNXbylaAg2+1sK+w8H3dDfXuwhtJna1HQfCFfV7qfBUei/1Y1C/38W/w4A
AP//MWVC4HgxAAA=
`,
},

View file

@ -85,12 +85,13 @@ func NewSocketHub() *SocketHub {
func (h *SocketHub) encode(v core.Param) ([]byte, error) {
var s string
switch val := v.Val.(type) {
case string:
case time.Duration:
// must be before stringer to convert to seconds instead of string
s = fmt.Sprintf("{\"%s\": %d}", v.Key, int64(val.Seconds()))
case fmt.Stringer, string:
s = fmt.Sprintf("{\"%s\": \"%s\"}", v.Key, val)
case float64:
s = fmt.Sprintf("{\"%s\": %.3f}", v.Key, val)
case time.Duration:
s = fmt.Sprintf("{\"%s\": %d}", v.Key, int64(val.Seconds()))
default:
s = fmt.Sprintf("{\"%s\": %v}", v.Key, val)
}