iobroker.eos-admin 7.9.29 → 7.9.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/i18n/de.json +19 -0
- package/admin/i18n/en.json +19 -0
- package/admin/i18n/es.json +19 -0
- package/admin/i18n/fr.json +19 -0
- package/admin/i18n/it.json +19 -0
- package/admin/i18n/nl.json +19 -0
- package/admin/i18n/pl.json +19 -0
- package/admin/i18n/pt.json +19 -0
- package/admin/i18n/ru.json +19 -0
- package/admin/i18n/uk.json +19 -0
- package/admin/i18n/zh-cn.json +19 -0
- package/admin/jsonConfig.json5 +19 -19
- package/adminWww/css/eos-branding.css +375 -0
- package/adminWww/index.html +4 -4
- package/adminWww/js/eos-assistant.js +3 -200
- package/adminWww/js/eos-branding.js +152 -54
- package/adminWww/js/eos-security-ui.js +105 -48
- package/build/i18n/de.json +19 -0
- package/build/i18n/en.json +28 -9
- package/io-package.json +10 -8
- package/package.json +143 -143
package/admin/i18n/uk.json
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"1 minute": "1 хвилина",
|
|
3
3
|
"Access to instances": "Доступ до екземплярів (Спрощений режим)",
|
|
4
|
+
"Adapter": "Adapter",
|
|
4
5
|
"Admin adapter settings": "Налаштування екземпляра адміністратора",
|
|
6
|
+
"Administratorgruppen für EOS Sicherheit": "Administratorgruppen für EOS Sicherheit",
|
|
7
|
+
"Aktiv": "Aktiv",
|
|
5
8
|
"Allow access only to specific instances": "Дозволити доступ лише до певних екземплярів",
|
|
9
|
+
"Alten Admin für Installateur und Endkunde ausblenden": "Alten Admin für Installateur und Endkunde ausblenden",
|
|
10
|
+
"Alten Admin sperren": "Alten Admin sperren",
|
|
6
11
|
"Apply access rights for selected instances": "Застосувати права доступу для вибраних екземплярів до вибраного користувача",
|
|
7
12
|
"Authentication": "Аутентифікація",
|
|
8
13
|
"Authentication was deactivated": "Автентифікацію було вимкнено",
|
|
@@ -14,6 +19,7 @@
|
|
|
14
19
|
"Cache": "Файли кешу",
|
|
15
20
|
"Chained certificate": "Прикутий сертифікат",
|
|
16
21
|
"Config": "Сторінка конфігурації",
|
|
22
|
+
"Dieser Bereich ist nur für Administratoren. Hier legst du fest, ob der alte Admin gesperrt wird und welche Systemadapter vor Änderungen durch Installateur- oder Endkundenbenutzer geschützt sind. Updates bleiben möglich.": "Dieser Bereich ist nur für Administratoren. Hier legst du fest, ob der alte Admin gesperrt wird und welche Systemadapter vor Änderungen durch Installateur- oder Endkundenbenutzer geschützt sind. Updates bleiben möglich.",
|
|
17
23
|
"Disable Assistent": "Вимкнути помічника в графічному інтерфейсі",
|
|
18
24
|
"Disable authentication": "Вимкнути автентифікацію",
|
|
19
25
|
"Disable basic authentication": "Вимкнути базову автентифікацію",
|
|
@@ -23,8 +29,14 @@
|
|
|
23
29
|
"End date": "Дата закінчення",
|
|
24
30
|
"End time": "Час закінчення",
|
|
25
31
|
"Events threshold value": "Порогове значення подій",
|
|
32
|
+
"Geschützte Adapter nur durch Administratoren ändern lassen": "Geschützte Adapter nur durch Administratoren ändern lassen",
|
|
33
|
+
"Geschützte Systemadapter": "Geschützte Systemadapter",
|
|
34
|
+
"Geschützte Systemadapter aktivieren": "Geschützte Systemadapter aktivieren",
|
|
26
35
|
"Global path": "Глобальний шлях",
|
|
36
|
+
"Gruppe": "Gruppe",
|
|
27
37
|
"Hide logo": "Приховати логотип",
|
|
38
|
+
"Hinweis": "Hinweis",
|
|
39
|
+
"Hält den alten admin.0 deaktiviert und verschiebt ihn auf den lokalen Fallback-Bind/Port. Nur Administratoren sollten diese Sperre für Wartung deaktivieren.": "Hält den alten admin.0 deaktiviert und verschiebt ihn auf die lokale Sperr-Adresse und den Sperr-Port. Nur Administratoren sollten diese Sperre für Wartung deaktivieren.",
|
|
28
40
|
"IP": "IP",
|
|
29
41
|
"Ignore warning": "Ігнорувати попередження",
|
|
30
42
|
"Insert entry": "Вставте запис",
|
|
@@ -39,7 +51,10 @@
|
|
|
39
51
|
"Login timeout": "Тривалість сеансу входу",
|
|
40
52
|
"Login timeout(sec)": "Тривалість сеансу входу (с)",
|
|
41
53
|
"Main settings": "Основні налаштування",
|
|
54
|
+
"NexoWatt Sicherheit": "NexoWatt Sicherheit",
|
|
42
55
|
"No data in history for selected period": "Немає даних в історії за вибраний період",
|
|
56
|
+
"Nur Benutzer der EOS-Administratorgruppen können den alten admin-Adapter und die Instanz admin.0 sehen oder bewusst entsperren.": "Nur Benutzer der EOS-Administratorgruppen können den alten Admin-Adapter und die Instanz admin.0 sehen oder bewusst entsperren.",
|
|
57
|
+
"Nur Mitglieder dieser Gruppen dürfen gesperrte EOS-Systembereiche sehen und warten. Die Gruppe administrator ist immer enthalten.": "Nur Mitglieder dieser Gruppen dürfen gesperrte EOS-Systembereiche sehen und warten. Die Gruppe administrator ist immer enthalten.",
|
|
43
58
|
"Own motto": "Власний девіз",
|
|
44
59
|
"Port": "Порт",
|
|
45
60
|
"Port to check the domain": "Порт для перевірки домену",
|
|
@@ -48,8 +63,12 @@
|
|
|
48
63
|
"Read about Let's Encrypt certificates": "Прочитайте про сертифікати Let's Encrypt",
|
|
49
64
|
"Reverse proxy": "Reverse проксі",
|
|
50
65
|
"Run as": "Запустити від користувача",
|
|
66
|
+
"Schützt ausgewählte Adapter für Installateur-/Endkundenbenutzer über Administrator-ACLs und EOS-UI-Regeln. dontDelete und nondeletable bleiben false, damit Updates weiter funktionieren.": "Schützt ausgewählte Adapter für Installateur- und Endkundenbenutzer über Administratorrechte und EOS-Regeln. dontDelete und nondeletable bleiben false, damit Updates weiter funktionieren.",
|
|
51
67
|
"Secure(HTTPS)": "Безпечне з'єднання (HTTPS)",
|
|
52
68
|
"Set certificates or load it first in the system settings (right top).": "Встановіть сертифікати або спочатку визначте їх у налаштуваннях системи (справа вгорі).",
|
|
69
|
+
"Setzt Administrator-ACLs auf die geschützte Adapterliste. Installateur-/Endkundenbenutzer können diese Adapter nicht stoppen, aktivieren oder löschen; Administratoren können sie weiterhin updaten und warten.": "Setzt Administratorrechte auf die geschützte Adapterliste. Installateur- und Endkundenbenutzer können diese Adapter nicht stoppen, aktivieren oder löschen. Administratoren können sie weiterhin updaten und warten.",
|
|
70
|
+
"Sperr-Adresse des alten Admins": "Sperr-Adresse des alten Admins",
|
|
71
|
+
"Sperr-Port des alten Admins": "Sperr-Port des alten Admins",
|
|
53
72
|
"Tab": "Сторінка вкладки",
|
|
54
73
|
"There is a option to allow access to the specific configuration pages of selected instances.": "Існує можливість дозволити доступ до конкретних сторінок конфігурації вибраних екземплярів.",
|
|
55
74
|
"Undo": "Скасувати",
|
package/admin/i18n/zh-cn.json
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"1 minute": "1分钟",
|
|
3
3
|
"Access to instances": "访问实例",
|
|
4
|
+
"Adapter": "Adapter",
|
|
4
5
|
"Admin adapter settings": "admin适配器的设置",
|
|
6
|
+
"Administratorgruppen für EOS Sicherheit": "Administratorgruppen für EOS Sicherheit",
|
|
7
|
+
"Aktiv": "Aktiv",
|
|
5
8
|
"Allow access only to specific instances": "只允许访问特定实例",
|
|
9
|
+
"Alten Admin für Installateur und Endkunde ausblenden": "Alten Admin für Installateur und Endkunde ausblenden",
|
|
10
|
+
"Alten Admin sperren": "Alten Admin sperren",
|
|
6
11
|
"Apply access rights for selected instances": "对选定实例应用访问权限",
|
|
7
12
|
"Authentication": "验证",
|
|
8
13
|
"Authentication was deactivated": "身份验证已停用",
|
|
@@ -14,6 +19,7 @@
|
|
|
14
19
|
"Cache": "缓存文件",
|
|
15
20
|
"Chained certificate": "链式证书",
|
|
16
21
|
"Config": "配置页面",
|
|
22
|
+
"Dieser Bereich ist nur für Administratoren. Hier legst du fest, ob der alte Admin gesperrt wird und welche Systemadapter vor Änderungen durch Installateur- oder Endkundenbenutzer geschützt sind. Updates bleiben möglich.": "Dieser Bereich ist nur für Administratoren. Hier legst du fest, ob der alte Admin gesperrt wird und welche Systemadapter vor Änderungen durch Installateur- oder Endkundenbenutzer geschützt sind. Updates bleiben möglich.",
|
|
17
23
|
"Disable Assistent": "在图形用户界面中禁用助手",
|
|
18
24
|
"Disable authentication": "禁用身份验证",
|
|
19
25
|
"Disable basic authentication": "禁用基本身份验证",
|
|
@@ -23,8 +29,14 @@
|
|
|
23
29
|
"End date": "结束日期",
|
|
24
30
|
"End time": "时间结束",
|
|
25
31
|
"Events threshold value": "事件阈值",
|
|
32
|
+
"Geschützte Adapter nur durch Administratoren ändern lassen": "Geschützte Adapter nur durch Administratoren ändern lassen",
|
|
33
|
+
"Geschützte Systemadapter": "Geschützte Systemadapter",
|
|
34
|
+
"Geschützte Systemadapter aktivieren": "Geschützte Systemadapter aktivieren",
|
|
26
35
|
"Global path": "全局路径",
|
|
36
|
+
"Gruppe": "Gruppe",
|
|
27
37
|
"Hide logo": "隐藏图标",
|
|
38
|
+
"Hinweis": "Hinweis",
|
|
39
|
+
"Hält den alten admin.0 deaktiviert und verschiebt ihn auf den lokalen Fallback-Bind/Port. Nur Administratoren sollten diese Sperre für Wartung deaktivieren.": "Hält den alten admin.0 deaktiviert und verschiebt ihn auf die lokale Sperr-Adresse und den Sperr-Port. Nur Administratoren sollten diese Sperre für Wartung deaktivieren.",
|
|
28
40
|
"IP": "IP",
|
|
29
41
|
"Ignore warning": "忽略警告",
|
|
30
42
|
"Insert entry": "插入条目",
|
|
@@ -39,7 +51,10 @@
|
|
|
39
51
|
"Login timeout": "登录会话持续时间",
|
|
40
52
|
"Login timeout(sec)": "登录超时时间(秒)",
|
|
41
53
|
"Main settings": "主要设置",
|
|
54
|
+
"NexoWatt Sicherheit": "NexoWatt Sicherheit",
|
|
42
55
|
"No data in history for selected period": "所选期间的历史记录中没有数据",
|
|
56
|
+
"Nur Benutzer der EOS-Administratorgruppen können den alten admin-Adapter und die Instanz admin.0 sehen oder bewusst entsperren.": "Nur Benutzer der EOS-Administratorgruppen können den alten Admin-Adapter und die Instanz admin.0 sehen oder bewusst entsperren.",
|
|
57
|
+
"Nur Mitglieder dieser Gruppen dürfen gesperrte EOS-Systembereiche sehen und warten. Die Gruppe administrator ist immer enthalten.": "Nur Mitglieder dieser Gruppen dürfen gesperrte EOS-Systembereiche sehen und warten. Die Gruppe administrator ist immer enthalten.",
|
|
43
58
|
"Own motto": "自己的座右铭",
|
|
44
59
|
"Port": "端口",
|
|
45
60
|
"Port to check the domain": "用于检查域的端口",
|
|
@@ -48,8 +63,12 @@
|
|
|
48
63
|
"Read about Let's Encrypt certificates": "阅读让我们加密证书",
|
|
49
64
|
"Reverse proxy": "反向代理",
|
|
50
65
|
"Run as": "运行身份",
|
|
66
|
+
"Schützt ausgewählte Adapter für Installateur-/Endkundenbenutzer über Administrator-ACLs und EOS-UI-Regeln. dontDelete und nondeletable bleiben false, damit Updates weiter funktionieren.": "Schützt ausgewählte Adapter für Installateur- und Endkundenbenutzer über Administratorrechte und EOS-Regeln. dontDelete und nondeletable bleiben false, damit Updates weiter funktionieren.",
|
|
51
67
|
"Secure(HTTPS)": "安全(HTTPS)",
|
|
52
68
|
"Set certificates or load it first in the system settings (right top).": "设置证书或者在系统设置中加载证书(右上角)。",
|
|
69
|
+
"Setzt Administrator-ACLs auf die geschützte Adapterliste. Installateur-/Endkundenbenutzer können diese Adapter nicht stoppen, aktivieren oder löschen; Administratoren können sie weiterhin updaten und warten.": "Setzt Administratorrechte auf die geschützte Adapterliste. Installateur- und Endkundenbenutzer können diese Adapter nicht stoppen, aktivieren oder löschen. Administratoren können sie weiterhin updaten und warten.",
|
|
70
|
+
"Sperr-Adresse des alten Admins": "Sperr-Adresse des alten Admins",
|
|
71
|
+
"Sperr-Port des alten Admins": "Sperr-Port des alten Admins",
|
|
53
72
|
"Tab": "标签页",
|
|
54
73
|
"There is a option to allow access to the specific configuration pages of selected instances.": "有一个选项允许访问所选实例的特定配置页面。",
|
|
55
74
|
"Undo": "撤消",
|
package/admin/jsonConfig.json5
CHANGED
|
@@ -163,27 +163,27 @@
|
|
|
163
163
|
disableMcp: {
|
|
164
164
|
type: 'checkbox',
|
|
165
165
|
newLine: true,
|
|
166
|
-
label: '
|
|
166
|
+
label: 'EOS Assist deaktivieren',
|
|
167
167
|
sx: 12,
|
|
168
168
|
}
|
|
169
169
|
},
|
|
170
170
|
},
|
|
171
171
|
eosSecurityTab: {
|
|
172
172
|
type: 'panel',
|
|
173
|
-
label: 'EOS
|
|
173
|
+
label: 'EOS Sicherheit',
|
|
174
174
|
items: {
|
|
175
175
|
_eosSecurityInfo: {
|
|
176
176
|
type: 'staticText',
|
|
177
177
|
newLine: true,
|
|
178
|
-
text: 'EOS
|
|
178
|
+
text: 'EOS Sicherheit sperrt den alten Admin-Zugang, blendet ihn für Installateur- und Endkundenrollen aus und schützt ausgewählte Systemadapter. Updates bleiben möglich, weil keine harte nondeletable-Sperre verwendet wird.',
|
|
179
179
|
xs: 12,
|
|
180
180
|
sm: 12,
|
|
181
181
|
},
|
|
182
182
|
eosLockLegacyAdmin: {
|
|
183
183
|
newLine: true,
|
|
184
184
|
type: 'checkbox',
|
|
185
|
-
label: 'Alten
|
|
186
|
-
help: 'Hält
|
|
185
|
+
label: 'Alten Admin-Zugang sperren',
|
|
186
|
+
help: 'Hält admin.0 deaktiviert und bindet ihn nur lokal auf den Fallback-Port. Nur Administratoren dürfen diese Sperre für Wartung kurz deaktivieren.',
|
|
187
187
|
xs: 12,
|
|
188
188
|
sm: 12,
|
|
189
189
|
md: 6,
|
|
@@ -191,7 +191,7 @@
|
|
|
191
191
|
},
|
|
192
192
|
eosLegacyAdminLockBind: {
|
|
193
193
|
type: 'text',
|
|
194
|
-
label: 'Bind-Adresse
|
|
194
|
+
label: 'Lokale Bind-Adresse des alten Admin',
|
|
195
195
|
hidden: '!data.eosLockLegacyAdmin',
|
|
196
196
|
xs: 12,
|
|
197
197
|
sm: 12,
|
|
@@ -200,7 +200,7 @@
|
|
|
200
200
|
},
|
|
201
201
|
eosLegacyAdminLockPort: {
|
|
202
202
|
type: 'port',
|
|
203
|
-
label: 'Fallback-Port
|
|
203
|
+
label: 'Lokaler Fallback-Port des alten Admin',
|
|
204
204
|
hidden: '!data.eosLockLegacyAdmin',
|
|
205
205
|
min: 1,
|
|
206
206
|
xs: 12,
|
|
@@ -211,8 +211,8 @@
|
|
|
211
211
|
eosHideLegacyAdminFromNonAdmins: {
|
|
212
212
|
newLine: true,
|
|
213
213
|
type: 'checkbox',
|
|
214
|
-
label: 'Alten Admin
|
|
215
|
-
help: 'Nur Benutzer der EOS-Administratorgruppen
|
|
214
|
+
label: 'Alten Admin vor Installateur und Endkunde ausblenden',
|
|
215
|
+
help: 'Nur Benutzer der EOS-Administratorgruppen sehen den alten admin-Adapter und admin.0. Installateur- und Endkundenrollen sehen diesen Bereich nicht.',
|
|
216
216
|
xs: 12,
|
|
217
217
|
sm: 12,
|
|
218
218
|
md: 8,
|
|
@@ -221,8 +221,8 @@
|
|
|
221
221
|
eosSecurityAdminGroups: {
|
|
222
222
|
newLine: true,
|
|
223
223
|
type: 'table',
|
|
224
|
-
label: 'EOS
|
|
225
|
-
help: 'Nur Mitglieder dieser Gruppen dürfen gesperrte EOS-Systembereiche sehen und warten.
|
|
224
|
+
label: 'EOS Administratorgruppen',
|
|
225
|
+
help: 'Nur Mitglieder dieser Gruppen dürfen gesperrte EOS-Systembereiche sehen und warten. system.group.administrator ist immer enthalten.',
|
|
226
226
|
xs: 12,
|
|
227
227
|
sm: 12,
|
|
228
228
|
items: [
|
|
@@ -237,7 +237,7 @@
|
|
|
237
237
|
},
|
|
238
238
|
{
|
|
239
239
|
type: 'text',
|
|
240
|
-
title: '
|
|
240
|
+
title: 'Beschreibung',
|
|
241
241
|
attr: 'note',
|
|
242
242
|
width: '55%',
|
|
243
243
|
filter: false,
|
|
@@ -256,8 +256,8 @@
|
|
|
256
256
|
eosProtectAdapterDeletion: {
|
|
257
257
|
newLine: true,
|
|
258
258
|
type: 'checkbox',
|
|
259
|
-
label: '
|
|
260
|
-
help: 'Schützt ausgewählte Adapter
|
|
259
|
+
label: 'Systemadapter vor Löschen schützen',
|
|
260
|
+
help: 'Schützt ausgewählte Adapter vor Löschen, Stoppen und kritischen Änderungen durch Installateur- und Endkundenrollen. Updates bleiben möglich.',
|
|
261
261
|
xs: 12,
|
|
262
262
|
sm: 12,
|
|
263
263
|
md: 8,
|
|
@@ -266,8 +266,8 @@
|
|
|
266
266
|
eosApplyAdminOnlyAclToProtectedAdapters: {
|
|
267
267
|
newLine: true,
|
|
268
268
|
type: 'checkbox',
|
|
269
|
-
label: '
|
|
270
|
-
help: 'Setzt
|
|
269
|
+
label: 'Geschützte Adapter nur durch Administratoren ändern lassen',
|
|
270
|
+
help: 'Setzt Administratorrechte auf die Schutzliste. Installateur- und Endkundenrollen können diese Adapter nicht stoppen, aktivieren oder löschen; Administratoren können sie weiterhin aktualisieren und warten.',
|
|
271
271
|
hidden: '!data.eosProtectAdapterDeletion',
|
|
272
272
|
xs: 12,
|
|
273
273
|
sm: 12,
|
|
@@ -277,14 +277,14 @@
|
|
|
277
277
|
eosProtectedAdapters: {
|
|
278
278
|
newLine: true,
|
|
279
279
|
type: 'table',
|
|
280
|
-
label: 'Geschützte
|
|
280
|
+
label: 'Geschützte Systemadapter',
|
|
281
281
|
hidden: '!data.eosProtectAdapterDeletion',
|
|
282
282
|
xs: 12,
|
|
283
283
|
sm: 12,
|
|
284
284
|
items: [
|
|
285
285
|
{
|
|
286
286
|
type: 'text',
|
|
287
|
-
title: '
|
|
287
|
+
title: 'Adapter',
|
|
288
288
|
attr: 'adapter',
|
|
289
289
|
width: '30%',
|
|
290
290
|
filter: false,
|
|
@@ -293,7 +293,7 @@
|
|
|
293
293
|
},
|
|
294
294
|
{
|
|
295
295
|
type: 'text',
|
|
296
|
-
title: '
|
|
296
|
+
title: 'Beschreibung',
|
|
297
297
|
attr: 'note',
|
|
298
298
|
width: '55%',
|
|
299
299
|
filter: false,
|
|
@@ -2647,3 +2647,378 @@ html.eos-app.eos-nav-compact .MuiDrawer-paper .MuiBadge-root .MuiBadge-badge {
|
|
|
2647
2647
|
.eos-assist-button strong, .eos-assist-button small { display: none !important; }
|
|
2648
2648
|
.eos-assist-dot { grid-column: 1; grid-row: 1; width: 14px; height: 14px; }
|
|
2649
2649
|
}
|
|
2650
|
+
|
|
2651
|
+
|
|
2652
|
+
/* === NexoWatt EOS v30: final nav/assist/security polish ==================
|
|
2653
|
+
Pfeil liegt weiter links in einem eigenen Slot, Menü klappt nur kompakt ein,
|
|
2654
|
+
EOS Assist öffnet robust und EOS Sicherheit bleibt Nicht-Admins verborgen. */
|
|
2655
|
+
html.eos-app .eos-brand-badge-mark {
|
|
2656
|
+
background:
|
|
2657
|
+
radial-gradient(circle at 48% 45%, rgba(0, 255, 136, 0.14), rgba(0, 0, 0, 0.98) 54%, #000 100%) !important;
|
|
2658
|
+
border-color: rgba(125, 255, 218, 0.88) !important;
|
|
2659
|
+
box-shadow:
|
|
2660
|
+
inset 0 0 0 1px rgba(255, 255, 255, 0.05),
|
|
2661
|
+
inset 0 0 24px rgba(0, 255, 136, 0.16),
|
|
2662
|
+
0 0 0 2px rgba(0, 0, 0, 0.70),
|
|
2663
|
+
0 0 24px rgba(0, 255, 136, 0.64),
|
|
2664
|
+
0 0 46px rgba(0, 212, 255, 0.20) !important;
|
|
2665
|
+
}
|
|
2666
|
+
|
|
2667
|
+
html.eos-app .eos-brand-badge-logo {
|
|
2668
|
+
background: #000 !important;
|
|
2669
|
+
border-radius: 16px !important;
|
|
2670
|
+
padding: 2px !important;
|
|
2671
|
+
}
|
|
2672
|
+
|
|
2673
|
+
html.eos-app .MuiDrawer-paper,
|
|
2674
|
+
html.eos-app .eos-drawer {
|
|
2675
|
+
padding-left: 128px !important;
|
|
2676
|
+
transform: none !important;
|
|
2677
|
+
visibility: visible !important;
|
|
2678
|
+
opacity: 1 !important;
|
|
2679
|
+
}
|
|
2680
|
+
|
|
2681
|
+
html.eos-app .eos-native-drawer-header {
|
|
2682
|
+
left: 6px !important;
|
|
2683
|
+
top: 7px !important;
|
|
2684
|
+
width: 62px !important;
|
|
2685
|
+
min-width: 62px !important;
|
|
2686
|
+
max-width: 62px !important;
|
|
2687
|
+
height: 58px !important;
|
|
2688
|
+
min-height: 58px !important;
|
|
2689
|
+
background: rgba(0, 0, 0, 0.58) !important;
|
|
2690
|
+
border: 1px solid rgba(0, 255, 136, 0.42) !important;
|
|
2691
|
+
border-radius: 18px !important;
|
|
2692
|
+
}
|
|
2693
|
+
|
|
2694
|
+
html.eos-app .eos-native-drawer-header > div:first-child {
|
|
2695
|
+
width: 62px !important;
|
|
2696
|
+
min-width: 62px !important;
|
|
2697
|
+
max-width: 62px !important;
|
|
2698
|
+
height: 58px !important;
|
|
2699
|
+
min-height: 58px !important;
|
|
2700
|
+
padding: 4px 7px !important;
|
|
2701
|
+
}
|
|
2702
|
+
|
|
2703
|
+
html.eos-app .eos-native-drawer-header button.eos-nav-compact-toggle,
|
|
2704
|
+
html.eos-app .eos-native-drawer-header .eos-nav-compact-toggle {
|
|
2705
|
+
width: 48px !important;
|
|
2706
|
+
height: 48px !important;
|
|
2707
|
+
min-width: 48px !important;
|
|
2708
|
+
min-height: 48px !important;
|
|
2709
|
+
border-radius: 17px !important;
|
|
2710
|
+
background:
|
|
2711
|
+
radial-gradient(circle at 50% 50%, rgba(0, 255, 136, 0.20), rgba(0, 0, 0, 0.82)) !important;
|
|
2712
|
+
border-color: rgba(89, 255, 199, 0.58) !important;
|
|
2713
|
+
box-shadow: inset 0 0 16px rgba(0,255,136,.10), 0 0 18px rgba(0,255,136,.24) !important;
|
|
2714
|
+
}
|
|
2715
|
+
|
|
2716
|
+
html.eos-app.eos-nav-compact .MuiDrawer-paper,
|
|
2717
|
+
html.eos-app.eos-nav-compact .eos-drawer {
|
|
2718
|
+
width: auto !important;
|
|
2719
|
+
min-width: auto !important;
|
|
2720
|
+
transform: none !important;
|
|
2721
|
+
visibility: visible !important;
|
|
2722
|
+
opacity: 1 !important;
|
|
2723
|
+
}
|
|
2724
|
+
|
|
2725
|
+
.eos-assist-root,
|
|
2726
|
+
#eos-assist-root {
|
|
2727
|
+
pointer-events: auto !important;
|
|
2728
|
+
}
|
|
2729
|
+
|
|
2730
|
+
.eos-assist-button,
|
|
2731
|
+
.eos-assist-close,
|
|
2732
|
+
.eos-assist-send {
|
|
2733
|
+
pointer-events: auto !important;
|
|
2734
|
+
user-select: none !important;
|
|
2735
|
+
}
|
|
2736
|
+
|
|
2737
|
+
.eos-assist-root.eos-assist-open .eos-assist-panel,
|
|
2738
|
+
html.eos-assist-open .eos-assist-root .eos-assist-panel,
|
|
2739
|
+
html.eos-assist-open #eos-assist-root .eos-assist-panel {
|
|
2740
|
+
opacity: 1 !important;
|
|
2741
|
+
pointer-events: auto !important;
|
|
2742
|
+
transform: translateY(0) scale(1) !important;
|
|
2743
|
+
}
|
|
2744
|
+
|
|
2745
|
+
.eos-assist-launcher {
|
|
2746
|
+
display: none !important;
|
|
2747
|
+
}
|
|
2748
|
+
|
|
2749
|
+
html.eos-security-non-admin-user .eos-security-admin-only-field,
|
|
2750
|
+
html.eos-security-nonadmin .eos-security-admin-only-field,
|
|
2751
|
+
.eos-security-hidden,
|
|
2752
|
+
.eos-security-hidden-delete {
|
|
2753
|
+
display: none !important;
|
|
2754
|
+
visibility: hidden !important;
|
|
2755
|
+
opacity: 0 !important;
|
|
2756
|
+
pointer-events: none !important;
|
|
2757
|
+
}
|
|
2758
|
+
|
|
2759
|
+
@media (max-width: 720px) {
|
|
2760
|
+
html.eos-app .MuiDrawer-paper,
|
|
2761
|
+
html.eos-app .eos-drawer { padding-left: 92px !important; }
|
|
2762
|
+
html.eos-app .eos-native-drawer-header { left: 6px !important; width: 52px !important; min-width: 52px !important; max-width: 52px !important; }
|
|
2763
|
+
html.eos-app .eos-native-drawer-header > div:first-child { width: 52px !important; min-width: 52px !important; max-width: 52px !important; }
|
|
2764
|
+
}
|
|
2765
|
+
|
|
2766
|
+
/* === NexoWatt EOS v30: nav-toggle position, assistant click layer, security visibility ===
|
|
2767
|
+
Keeps v29 stable backend. Only UI polish: black logo field, compact arrow moved
|
|
2768
|
+
further left with reserved spacing, EOS Assist click/focus layer and admin-only
|
|
2769
|
+
EOS security configuration visibility. */
|
|
2770
|
+
:root {
|
|
2771
|
+
--eos-nav-toggle-slot: 126px;
|
|
2772
|
+
}
|
|
2773
|
+
|
|
2774
|
+
html.eos-app .eos-brand-badge-mark {
|
|
2775
|
+
width: 58px !important;
|
|
2776
|
+
height: 58px !important;
|
|
2777
|
+
min-width: 58px !important;
|
|
2778
|
+
display: grid !important;
|
|
2779
|
+
place-items: center !important;
|
|
2780
|
+
border-radius: 19px !important;
|
|
2781
|
+
background:
|
|
2782
|
+
radial-gradient(circle at 50% 46%, rgba(0, 255, 136, 0.22), rgba(0, 0, 0, 0.94) 62%, #000 100%) !important;
|
|
2783
|
+
border: 1px solid rgba(126, 255, 216, 0.72) !important;
|
|
2784
|
+
box-shadow:
|
|
2785
|
+
inset 0 0 0 1px rgba(255, 255, 255, 0.04),
|
|
2786
|
+
inset 0 0 24px rgba(0, 255, 136, 0.18),
|
|
2787
|
+
0 0 0 1px rgba(0, 0, 0, 0.70),
|
|
2788
|
+
0 0 24px rgba(0, 255, 136, 0.56),
|
|
2789
|
+
0 0 42px rgba(0, 212, 255, 0.18) !important;
|
|
2790
|
+
overflow: hidden !important;
|
|
2791
|
+
transform: translateY(-3px) !important;
|
|
2792
|
+
}
|
|
2793
|
+
|
|
2794
|
+
html.eos-app .eos-brand-badge-logo {
|
|
2795
|
+
background: transparent !important;
|
|
2796
|
+
border: 0 !important;
|
|
2797
|
+
box-shadow: none !important;
|
|
2798
|
+
width: 52px !important;
|
|
2799
|
+
height: 52px !important;
|
|
2800
|
+
min-width: 52px !important;
|
|
2801
|
+
min-height: 52px !important;
|
|
2802
|
+
padding: 4px !important;
|
|
2803
|
+
filter:
|
|
2804
|
+
brightness(2.35)
|
|
2805
|
+
contrast(1.24)
|
|
2806
|
+
saturate(1.50)
|
|
2807
|
+
drop-shadow(0 0 1px rgba(255, 255, 255, 0.98))
|
|
2808
|
+
drop-shadow(0 0 12px rgba(0, 255, 136, 0.82))
|
|
2809
|
+
drop-shadow(0 0 24px rgba(0, 212, 255, 0.30)) !important;
|
|
2810
|
+
}
|
|
2811
|
+
|
|
2812
|
+
html.eos-app .MuiDrawer-paper,
|
|
2813
|
+
html.eos-app .eos-drawer {
|
|
2814
|
+
padding-left: var(--eos-nav-toggle-slot) !important;
|
|
2815
|
+
}
|
|
2816
|
+
|
|
2817
|
+
html.eos-app .eos-native-drawer-header {
|
|
2818
|
+
left: 6px !important;
|
|
2819
|
+
top: 8px !important;
|
|
2820
|
+
width: 58px !important;
|
|
2821
|
+
min-width: 58px !important;
|
|
2822
|
+
max-width: 58px !important;
|
|
2823
|
+
z-index: 8 !important;
|
|
2824
|
+
}
|
|
2825
|
+
|
|
2826
|
+
html.eos-app .eos-native-drawer-header > div:first-child {
|
|
2827
|
+
width: 58px !important;
|
|
2828
|
+
min-width: 58px !important;
|
|
2829
|
+
max-width: 58px !important;
|
|
2830
|
+
}
|
|
2831
|
+
|
|
2832
|
+
html.eos-app .eos-native-drawer-header button.eos-nav-compact-toggle,
|
|
2833
|
+
html.eos-app .eos-native-drawer-header .eos-nav-compact-toggle,
|
|
2834
|
+
html.eos-app .eos-native-drawer-header button,
|
|
2835
|
+
html.eos-app .eos-native-drawer-header .MuiIconButton-root {
|
|
2836
|
+
width: 48px !important;
|
|
2837
|
+
height: 48px !important;
|
|
2838
|
+
min-width: 48px !important;
|
|
2839
|
+
min-height: 48px !important;
|
|
2840
|
+
border-radius: 17px !important;
|
|
2841
|
+
background:
|
|
2842
|
+
radial-gradient(circle at 50% 50%, rgba(0, 255, 136, 0.18), rgba(0, 0, 0, 0.82)) !important;
|
|
2843
|
+
border: 1px solid rgba(0, 255, 136, 0.54) !important;
|
|
2844
|
+
box-shadow: 0 0 18px rgba(0, 255, 136, 0.24), inset 0 1px 0 rgba(255,255,255,.06) !important;
|
|
2845
|
+
}
|
|
2846
|
+
|
|
2847
|
+
html.eos-app.eos-nav-compact .MuiDrawer-paper,
|
|
2848
|
+
html.eos-app.eos-nav-compact .eos-drawer {
|
|
2849
|
+
padding-left: 76px !important;
|
|
2850
|
+
}
|
|
2851
|
+
|
|
2852
|
+
/* Keep EOS Assist clickable even when the route content has high z-index layers. */
|
|
2853
|
+
html.eos-app .eos-assist-root,
|
|
2854
|
+
html.eos-app #eos-assist-root {
|
|
2855
|
+
pointer-events: auto !important;
|
|
2856
|
+
z-index: 3000 !important;
|
|
2857
|
+
}
|
|
2858
|
+
html.eos-app .eos-assist-button,
|
|
2859
|
+
html.eos-app .eos-assist-close,
|
|
2860
|
+
html.eos-app .eos-assist-send,
|
|
2861
|
+
html.eos-app .eos-assist-input,
|
|
2862
|
+
html.eos-app .eos-assist-panel {
|
|
2863
|
+
pointer-events: auto !important;
|
|
2864
|
+
}
|
|
2865
|
+
html.eos-app .eos-assist-root.eos-assist-open .eos-assist-panel,
|
|
2866
|
+
html.eos-app #eos-assist-root.eos-assist-open .eos-assist-panel {
|
|
2867
|
+
opacity: 1 !important;
|
|
2868
|
+
visibility: visible !important;
|
|
2869
|
+
pointer-events: auto !important;
|
|
2870
|
+
transform: translateY(0) scale(1) !important;
|
|
2871
|
+
}
|
|
2872
|
+
|
|
2873
|
+
/* EOS Security is an administrator-only configuration area. */
|
|
2874
|
+
html.eos-security-nonadmin .eos-security-admin-only-field,
|
|
2875
|
+
html.eos-security-non-admin-user .eos-security-admin-only-field,
|
|
2876
|
+
html.eos-security-nonadmin .eos-security-admin-only-tab,
|
|
2877
|
+
html.eos-security-non-admin-user .eos-security-admin-only-tab,
|
|
2878
|
+
html.eos-security-nonadmin .eos-security-settings-restricted .eos-security-admin-only-field,
|
|
2879
|
+
html.eos-security-non-admin-user .eos-security-settings-restricted .eos-security-admin-only-field {
|
|
2880
|
+
display: none !important;
|
|
2881
|
+
}
|
|
2882
|
+
|
|
2883
|
+
@media (max-width: 720px) {
|
|
2884
|
+
:root { --eos-nav-toggle-slot: 86px; }
|
|
2885
|
+
html.eos-app .eos-native-drawer-header { left: 6px !important; width: 50px !important; min-width: 50px !important; max-width: 50px !important; }
|
|
2886
|
+
html.eos-app .eos-native-drawer-header > div:first-child { width: 50px !important; min-width: 50px !important; max-width: 50px !important; }
|
|
2887
|
+
html.eos-app .eos-native-drawer-header button.eos-nav-compact-toggle,
|
|
2888
|
+
html.eos-app .eos-native-drawer-header .eos-nav-compact-toggle,
|
|
2889
|
+
html.eos-app .eos-native-drawer-header button,
|
|
2890
|
+
html.eos-app .eos-native-drawer-header .MuiIconButton-root { width: 42px !important; height: 42px !important; min-width: 42px !important; min-height: 42px !important; }
|
|
2891
|
+
}
|
|
2892
|
+
|
|
2893
|
+
|
|
2894
|
+
/* === NexoWatt EOS v30: nav arrow, black logo badge, assist/security polish === */
|
|
2895
|
+
html.eos-app .eos-brand-badge-mark {
|
|
2896
|
+
background:
|
|
2897
|
+
radial-gradient(circle at 50% 44%, rgba(0, 255, 136, 0.22), rgba(0, 0, 0, 0.96) 50%, #000 100%) !important;
|
|
2898
|
+
border: 1px solid rgba(124, 255, 214, 0.92) !important;
|
|
2899
|
+
box-shadow:
|
|
2900
|
+
inset 0 0 0 1px rgba(255,255,255,.075),
|
|
2901
|
+
inset 0 0 22px rgba(0,255,136,.24),
|
|
2902
|
+
0 0 0 1px rgba(0,0,0,.82),
|
|
2903
|
+
0 0 24px rgba(0,255,136,.72),
|
|
2904
|
+
0 0 46px rgba(0,212,255,.22) !important;
|
|
2905
|
+
transform: translateY(-4px) !important;
|
|
2906
|
+
}
|
|
2907
|
+
html.eos-app .eos-brand-badge-logo {
|
|
2908
|
+
width: 52px !important;
|
|
2909
|
+
height: 52px !important;
|
|
2910
|
+
min-width: 52px !important;
|
|
2911
|
+
min-height: 52px !important;
|
|
2912
|
+
filter:
|
|
2913
|
+
brightness(2.45)
|
|
2914
|
+
contrast(1.28)
|
|
2915
|
+
saturate(1.58)
|
|
2916
|
+
drop-shadow(0 0 1px rgba(255,255,255,.95))
|
|
2917
|
+
drop-shadow(0 0 13px rgba(0,255,136,.90))
|
|
2918
|
+
drop-shadow(0 0 26px rgba(0,212,255,.32)) !important;
|
|
2919
|
+
}
|
|
2920
|
+
html.eos-app .MuiDrawer-paper,
|
|
2921
|
+
html.eos-app .eos-drawer {
|
|
2922
|
+
padding-left: 112px !important;
|
|
2923
|
+
}
|
|
2924
|
+
html.eos-app .eos-native-drawer-header {
|
|
2925
|
+
left: 4px !important;
|
|
2926
|
+
top: 8px !important;
|
|
2927
|
+
width: 58px !important;
|
|
2928
|
+
min-width: 58px !important;
|
|
2929
|
+
max-width: 58px !important;
|
|
2930
|
+
}
|
|
2931
|
+
html.eos-app .eos-native-drawer-header button.eos-nav-compact-toggle,
|
|
2932
|
+
html.eos-app .eos-native-drawer-header .eos-nav-compact-toggle {
|
|
2933
|
+
transform: translateX(-2px) !important;
|
|
2934
|
+
}
|
|
2935
|
+
html.eos-app .eos-hidden-logout,
|
|
2936
|
+
html.eos-app .eos-hidden-logout *,
|
|
2937
|
+
html.eos-app .eos-native-logout-hidden,
|
|
2938
|
+
html.eos-app .eos-native-logout-hidden * {
|
|
2939
|
+
display: none !important;
|
|
2940
|
+
visibility: hidden !important;
|
|
2941
|
+
opacity: 0 !important;
|
|
2942
|
+
pointer-events: none !important;
|
|
2943
|
+
}
|
|
2944
|
+
html.eos-app.eos-nav-compact .MuiDrawer-paper,
|
|
2945
|
+
html.eos-app.eos-nav-compact .eos-drawer {
|
|
2946
|
+
padding-left: 88px !important;
|
|
2947
|
+
}
|
|
2948
|
+
/* EOS Assist stable root */
|
|
2949
|
+
.eos-assist-root {
|
|
2950
|
+
position: fixed !important;
|
|
2951
|
+
right: 26px !important;
|
|
2952
|
+
bottom: 24px !important;
|
|
2953
|
+
z-index: 1700 !important;
|
|
2954
|
+
font-family: inherit !important;
|
|
2955
|
+
}
|
|
2956
|
+
.eos-assist-root .eos-assist-button,
|
|
2957
|
+
.eos-assist-button {
|
|
2958
|
+
display: grid !important;
|
|
2959
|
+
grid-template-columns: 12px auto !important;
|
|
2960
|
+
grid-template-rows: auto auto !important;
|
|
2961
|
+
column-gap: 8px !important;
|
|
2962
|
+
align-items: center !important;
|
|
2963
|
+
min-width: 156px !important;
|
|
2964
|
+
padding: 10px 14px !important;
|
|
2965
|
+
border-radius: 18px !important;
|
|
2966
|
+
border: 1px solid rgba(0, 255, 136, 0.48) !important;
|
|
2967
|
+
background: linear-gradient(135deg, rgba(0, 255, 136, 0.22), rgba(0, 212, 255, 0.12) 62%, rgba(0, 0, 0, 0.72)) !important;
|
|
2968
|
+
color: #f3fffb !important;
|
|
2969
|
+
box-shadow: 0 14px 32px rgba(0,0,0,.38), 0 0 24px rgba(0,255,136,.20) !important;
|
|
2970
|
+
cursor: pointer !important;
|
|
2971
|
+
}
|
|
2972
|
+
.eos-assist-panel {
|
|
2973
|
+
display: block !important;
|
|
2974
|
+
position: absolute !important;
|
|
2975
|
+
right: 0 !important;
|
|
2976
|
+
bottom: calc(100% + 12px) !important;
|
|
2977
|
+
width: min(430px, calc(100vw - 36px)) !important;
|
|
2978
|
+
max-height: min(650px, calc(100vh - 150px)) !important;
|
|
2979
|
+
overflow: auto !important;
|
|
2980
|
+
padding: 16px !important;
|
|
2981
|
+
border-radius: 22px !important;
|
|
2982
|
+
border: 1px solid rgba(0,255,136,.36) !important;
|
|
2983
|
+
background: radial-gradient(circle at 18% 0%, rgba(0,255,136,.14), transparent 44%), linear-gradient(180deg, rgba(8,29,44,.985), rgba(2,9,20,.985)) !important;
|
|
2984
|
+
color: #f3fffb !important;
|
|
2985
|
+
box-shadow: 0 24px 60px rgba(0,0,0,.55), 0 0 28px rgba(0,255,136,.16) !important;
|
|
2986
|
+
opacity: 0 !important;
|
|
2987
|
+
pointer-events: none !important;
|
|
2988
|
+
transform: translateY(10px) scale(.98) !important;
|
|
2989
|
+
transition: opacity .16s ease, transform .16s ease !important;
|
|
2990
|
+
}
|
|
2991
|
+
.eos-assist-root.eos-assist-open .eos-assist-panel,
|
|
2992
|
+
html.eos-assist-open .eos-assist-panel {
|
|
2993
|
+
opacity: 1 !important;
|
|
2994
|
+
pointer-events: auto !important;
|
|
2995
|
+
transform: translateY(0) scale(1) !important;
|
|
2996
|
+
}
|
|
2997
|
+
.eos-assist-card { margin-top: 10px; padding: 12px 13px; border-radius: 16px; border: 1px solid rgba(0,212,255,.20); background: rgba(0,0,0,.30); color: rgba(238,255,250,.92); font-size: 12px; line-height: 1.45; white-space: pre-line; }
|
|
2998
|
+
.eos-assist-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
|
|
2999
|
+
.eos-assist-actions button { border-radius: 999px; border: 1px solid rgba(0,255,136,.24); background: rgba(0,255,136,.09); color: #effffc; padding: 7px 10px; font-weight: 800; cursor: pointer; }
|
|
3000
|
+
.eos-assist-logo { width: 36px; height: 36px; display: grid !important; place-items: center; border-radius: 13px; background: #000; border: 1px solid rgba(0,255,136,.45); box-shadow: 0 0 14px rgba(0,255,136,.22); }
|
|
3001
|
+
.eos-assist-logo img { width: 30px; height: 30px; object-fit: contain; filter: brightness(1.8) drop-shadow(0 0 8px rgba(0,255,136,.55)); }
|
|
3002
|
+
.eos-assist-foot { margin-top: 10px; color: rgba(226,245,255,.62); font-size: 11px; line-height: 1.35; }
|
|
3003
|
+
/* Non-admins must not see the EOS security settings tab/fields. */
|
|
3004
|
+
html.eos-security-nonadmin [data-eos-security-admin-only="true"],
|
|
3005
|
+
html.eos-security-non-admin-user [data-eos-security-admin-only="true"],
|
|
3006
|
+
html:not(.eos-security-admin):not(.eos-security-admin-user) [data-eos-security-admin-only="true"] {
|
|
3007
|
+
display: none !important;
|
|
3008
|
+
visibility: hidden !important;
|
|
3009
|
+
pointer-events: none !important;
|
|
3010
|
+
}
|
|
3011
|
+
.eos-security-restricted-note {
|
|
3012
|
+
border-radius: 18px !important;
|
|
3013
|
+
border: 1px solid rgba(255, 193, 7, .36) !important;
|
|
3014
|
+
background: linear-gradient(135deg, rgba(255,193,7,.14), rgba(0,0,0,.30)) !important;
|
|
3015
|
+
color: #fff8dd !important;
|
|
3016
|
+
margin: 8px 0 14px !important;
|
|
3017
|
+
padding: 12px 14px !important;
|
|
3018
|
+
}
|
|
3019
|
+
@media (max-width: 720px) {
|
|
3020
|
+
html.eos-app .MuiDrawer-paper,
|
|
3021
|
+
html.eos-app .eos-drawer { padding-left: 82px !important; }
|
|
3022
|
+
html.eos-app .eos-native-drawer-header { left: 4px !important; }
|
|
3023
|
+
.eos-assist-root { right: 14px !important; bottom: 16px !important; }
|
|
3024
|
+
}
|
package/adminWww/index.html
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
rel="stylesheet"
|
|
32
32
|
href="css/leaflet.css"
|
|
33
33
|
/>
|
|
34
|
-
<link rel="stylesheet" href="./css/eos-branding.css?v=
|
|
34
|
+
<link rel="stylesheet" href="./css/eos-branding.css?v=30" />
|
|
35
35
|
<link
|
|
36
36
|
rel="manifest"
|
|
37
37
|
href="manifest.json"
|
|
@@ -154,9 +154,9 @@
|
|
|
154
154
|
<script type="module" crossorigin src="./assets/index-CQZugZ1z.js"></script>
|
|
155
155
|
<link rel="modulepreload" crossorigin href="./assets/preload-helper-BDBacUwf.js">
|
|
156
156
|
<link rel="modulepreload" crossorigin href="./assets/iobroker_admin__mf_v__runtimeInit__mf_v__-g2X2zhAf.js">
|
|
157
|
-
<script defer src="./js/eos-branding.js?v=
|
|
158
|
-
<script defer src="./js/eos-security-ui.js?v=
|
|
159
|
-
<script defer src="./js/eos-assistant.js?v=
|
|
157
|
+
<script defer src="./js/eos-branding.js?v=30"></script>
|
|
158
|
+
<script defer src="./js/eos-security-ui.js?v=30"></script>
|
|
159
|
+
<script defer src="./js/eos-assistant.js?v=30"></script>
|
|
160
160
|
</head>
|
|
161
161
|
<body>
|
|
162
162
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|