From f349f4b0ee8bf6ff451baca0a73f0707ba34cd0f Mon Sep 17 00:00:00 2001 From: brindosch Date: Sat, 17 Sep 2016 23:37:44 +0200 Subject: [PATCH] forms: horizontal layout and unit support (#245) * update * sync [skip ci] * always required [skip ci] * append support * update schemas [skip ci] * typo [skip ci] * adjustment * update [skip ci] * sync [skip ci] * slightly smaller logo [skip ci] * also for checkboxes [skip ci] * new connection lost page [skip ci] * update con_lost page [skip ci] * lost change [skip ci] * fix center position [skip ci] --- assets/webconfig/content/connection_lost.html | 29 ++++--- assets/webconfig/css/hyperion.css | 14 +++- .../img/hyperion/hyperionwhitelogo.png | Bin 0 -> 26176 bytes assets/webconfig/js/lib/jsoneditor.js | 79 ++++++++++++++---- libsrc/hyperion/hyperion.schema.json | 38 +++++++-- libsrc/leddevice/schemas/schema-adalight.json | 1 + .../schemas/schema-adalightapa102.json | 1 + libsrc/leddevice/schemas/schema-atmo.json | 1 + .../leddevice/schemas/schema-philipshue.json | 3 +- 9 files changed, 130 insertions(+), 36 deletions(-) create mode 100644 assets/webconfig/img/hyperion/hyperionwhitelogo.png diff --git a/assets/webconfig/content/connection_lost.html b/assets/webconfig/content/connection_lost.html index fa883b28..f1114904 100644 --- a/assets/webconfig/content/connection_lost.html +++ b/assets/webconfig/content/connection_lost.html @@ -1,15 +1,22 @@
- - -
-
-
Connection to Hyperion Service lost!
- -
+
+
+
+
+

Lost connection to Hyperion service!

+
+

Possible reasons:

+

1. Hyperion restarts

+

2. You perform an update

+

3. An older browser session

+

3. Hyperion isn't running

+
+ +

This page will be automatically refreshed.

+

We reconnect again after Hyperion is available.

+ If not, click me +
+
diff --git a/assets/webconfig/css/hyperion.css b/assets/webconfig/css/hyperion.css index 4c04f22a..051c8953 100644 --- a/assets/webconfig/css/hyperion.css +++ b/assets/webconfig/css/hyperion.css @@ -49,9 +49,21 @@ table.borderless td,table.borderless th{border: none !important;} .introd{padding-left:14px;border-left:5px solid #0088cc;} .introd h4{line-height:25px;} -.overlay { +/*backported bootstrap 4 forms-label alignment*/ +.col-form-label { + padding-top: .5rem; + padding-bottom: .5rem; + margin-bottom: 0; +} + +.logoimg{ background-image: url('/img/hyperion/hyperionlogo.png'); background-repeat: no-repeat; +} + +.overlay { + background-image: url('/img/hyperion/hyperionwhitelogo.png'); + background-repeat: no-repeat; background-position: center center; background-color: rgba(1, 1, 1, 0.7); position: fixed; diff --git a/assets/webconfig/img/hyperion/hyperionwhitelogo.png b/assets/webconfig/img/hyperion/hyperionwhitelogo.png new file mode 100644 index 0000000000000000000000000000000000000000..65338f6852dfd7a2a9d283ee7072621867bd031f GIT binary patch literal 26176 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