From f202d05474ef8bb1ba9233d316b430c248f825c9 Mon Sep 17 00:00:00 2001 From: Michael Geers Date: Sat, 20 Dec 2025 23:52:07 +0100 Subject: [PATCH] Config UI: release and final touches (#25762) --- assets/js/components/Config/DeviceCard.vue | 29 +- .../components/Config/ExperimentalBanner.vue | 18 - .../components/Config/ExperimentalModal.vue | 47 ++ assets/js/components/Config/GeneralConfig.vue | 8 +- .../components/Config/GeneralConfigEntry.vue | 5 +- assets/js/components/Config/WelcomeBanner.vue | 68 +- .../GlobalSettings/UserInterfaceSettings.vue | 21 - assets/js/components/Loadpoints/Loadpoint.vue | 2 +- .../Loadpoints/SettingsBatteryBoost.vue | 2 +- assets/js/views/Config.vue | 600 +++++++++--------- i18n/de.json | 8 +- i18n/en.json | 8 +- tests/backup-restore.spec.ts | 12 +- tests/boot.spec.ts | 4 +- tests/config-aux.spec.ts | 11 +- tests/config-battery.spec.ts | 4 +- tests/config-circuit.spec.ts | 10 +- tests/config-device-auth.spec.ts | 7 +- tests/config-ext-meter.spec.ts | 11 +- tests/config-fatals.spec.ts | 11 +- tests/config-grid.spec.ts | 3 +- tests/config-invalid-template.spec.ts | 3 +- tests/config-loadpoint.spec.ts | 13 - tests/config-messaging.spec.ts | 11 +- tests/config-modbus-fields.spec.ts | 3 +- tests/config-modbusproxy.spec.ts | 5 +- tests/config-mqtt.spec.ts | 3 +- tests/config-ocpp.spec.ts | 4 +- tests/config-onboarding.spec.ts | 8 +- tests/config-param-service.spec.ts | 3 +- tests/config-pv.spec.ts | 4 +- tests/config-shm.spec.ts | 3 +- tests/config-tariffs.spec.ts | 26 +- tests/config-vehicles.spec.ts | 14 +- tests/config.spec.ts | 3 - tests/hems.spec.ts | 4 - tests/issue.spec.ts | 5 +- tests/sponsor.spec.ts | 4 - tests/utils.ts | 23 +- 39 files changed, 438 insertions(+), 590 deletions(-) delete mode 100644 assets/js/components/Config/ExperimentalBanner.vue create mode 100644 assets/js/components/Config/ExperimentalModal.vue diff --git a/assets/js/components/Config/DeviceCard.vue b/assets/js/components/Config/DeviceCard.vue index 9aa82e1c4..a90df71cd 100644 --- a/assets/js/components/Config/DeviceCard.vue +++ b/assets/js/components/Config/DeviceCard.vue @@ -1,7 +1,12 @@ - - diff --git a/assets/js/components/Config/ExperimentalModal.vue b/assets/js/components/Config/ExperimentalModal.vue new file mode 100644 index 000000000..15e4f851e --- /dev/null +++ b/assets/js/components/Config/ExperimentalModal.vue @@ -0,0 +1,47 @@ + + + diff --git a/assets/js/components/Config/GeneralConfig.vue b/assets/js/components/Config/GeneralConfig.vue index c15f45bc2..e068919bf 100644 --- a/assets/js/components/Config/GeneralConfig.vue +++ b/assets/js/components/Config/GeneralConfig.vue @@ -26,17 +26,15 @@ test-id="generalconfig-experimental" :label="$t('config.general.experimental')" :text="$t(`config.general.${hiddenFeatures ? 'on' : 'off'}`)" - modal-id="globalSettingsModal" + modal-id="experimentalModal" /> diff --git a/assets/js/components/GlobalSettings/UserInterfaceSettings.vue b/assets/js/components/GlobalSettings/UserInterfaceSettings.vue index f04a021f5..b7997c583 100644 --- a/assets/js/components/GlobalSettings/UserInterfaceSettings.vue +++ b/assets/js/components/GlobalSettings/UserInterfaceSettings.vue @@ -74,22 +74,6 @@ {{ $t("settings.fullscreen.enter") }} - -
- -
- -
-
-
{{ $t("settings.deviceInfo") }}
@@ -108,7 +92,6 @@ import { } from "@/i18n.ts"; import { getThemePreference, setThemePreference } from "@/theme.ts"; import { getUnits, setUnits, is12hFormat, set12hFormat } from "@/units"; -import { getHiddenFeatures, setHiddenFeatures } from "@/featureflags.ts"; import { isApp } from "@/utils/native"; import { defineComponent, type PropType } from "vue"; import { LENGTH_UNIT, THEME, type UiLoadpoint } from "@/types/evcc"; @@ -128,7 +111,6 @@ export default defineComponent({ language: getLocalePreference() || "", unit: getUnits(), timeFormat: is12hFormat() ? TIME_12H : TIME_24H, - hiddenFeatures: getHiddenFeatures(), fullscreenActive: false, THEMES: Object.values(THEME), UNITS: Object.values(LENGTH_UNIT), @@ -162,9 +144,6 @@ export default defineComponent({ theme(value) { setThemePreference(value); }, - hiddenFeatures(value) { - setHiddenFeatures(value); - }, language(value) { const i18n = this.$root?.$i18n; if (!i18n) return; diff --git a/assets/js/components/Loadpoints/Loadpoint.vue b/assets/js/components/Loadpoints/Loadpoint.vue index cc9fba3c4..63197b9a9 100644 --- a/assets/js/components/Loadpoints/Loadpoint.vue +++ b/assets/js/components/Loadpoints/Loadpoint.vue @@ -296,7 +296,7 @@ export default defineComponent({ return this.pvConfigured || this.gridConfigured; }, batteryBoostAvailable() { - return this.batteryConfigured && this.$hiddenFeatures(); + return this.batteryConfigured; }, batteryBoostActive() { return ( diff --git a/assets/js/components/Loadpoints/SettingsBatteryBoost.vue b/assets/js/components/Loadpoints/SettingsBatteryBoost.vue index 4ccb7f6dd..659f74efe 100644 --- a/assets/js/components/Loadpoints/SettingsBatteryBoost.vue +++ b/assets/js/components/Loadpoints/SettingsBatteryBoost.vue @@ -6,7 +6,7 @@
diff --git a/assets/js/views/Config.vue b/assets/js/views/Config.vue index 572a1bac8..091a765d8 100644 --- a/assets/js/views/Config.vue +++ b/assets/js/views/Config.vue @@ -13,8 +13,6 @@ :error="callbackError" :auth-providers="authProviders" /> - -

{{ $t("config.section.general") }}

-
-

{{ $t("config.section.loadpoints") }} 🧪

-

{{ $t("config.section.loadpoints") }} + +

+ - {{ $t("config.main.loadpointRequired") }} -

-
- - - - + + + - -
+ +
-

{{ $t("config.section.vehicles") }} 🧪

-
- - - - - -
+

{{ $t("config.section.vehicles") }}

+
+ + + + + +
-

{{ $t("config.section.grid") }} 🧪

-
- - - - - - - -
-

{{ $t("config.section.meter") }} 🧪

-
- - - -
+

{{ $t("config.section.grid") }}

+
+ + + + + + +
+

{{ $t("config.section.meter") }}

+
+ + + +
-

{{ $t("config.section.additionalMeter") }} 🧪

-
- - - -
+

{{ $t("config.section.additionalMeter") }}

+
+ + + +
-

{{ $t("config.section.integrations") }} 🧪

+

{{ $t("config.section.integrations") }}

-
- - - - - - - - - - - - - - - - - - - - - +
+ + + + + + + + + + + + + + + + + + + + + - - -