From 351fd7f186342ab9ffda70e80d594dfbc575abd5 Mon Sep 17 00:00:00 2001 From: jemu75 Date: Mon, 5 Feb 2024 17:34:51 +0100 Subject: [PATCH] v4.0.17-beta --- public/CHANGELOG.md | 5 +- src/components/SettingsProps.vue | 2 +- src/locales/de.json | 4 ++ src/locales/en.json | 4 ++ src/stores/fhem.js | 23 ++++++--- src/views/SettingsView.vue | 5 ++ www/fhemapp4/CHANGELOG.md | 5 +- ...ew-4cb1b4b6.js => DevicesView-236dec70.js} | 2 +- ...-ffcbfca0.js => InternalsView-c3350d90.js} | 2 +- ...Card-f991908f.js => PanelCard-28e39448.js} | 2 +- ...w-5c385817.js => SettingsView-ab3fc284.js} | 10 ++-- .../{index-2346b675.js => index-3a3c578f.js} | 50 +++++++++---------- .../{index-2a8fa789.js => index-98a7d18b.js} | 2 +- www/fhemapp4/index.html | 2 +- 14 files changed, 73 insertions(+), 45 deletions(-) rename www/fhemapp4/assets/{DevicesView-4cb1b4b6.js => DevicesView-236dec70.js} (86%) rename www/fhemapp4/assets/{InternalsView-ffcbfca0.js => InternalsView-c3350d90.js} (91%) rename www/fhemapp4/assets/{PanelCard-f991908f.js => PanelCard-28e39448.js} (98%) rename www/fhemapp4/assets/{SettingsView-5c385817.js => SettingsView-ab3fc284.js} (51%) rename www/fhemapp4/assets/{index-2346b675.js => index-3a3c578f.js} (77%) rename www/fhemapp4/assets/{index-2a8fa789.js => index-98a7d18b.js} (98%) diff --git a/public/CHANGELOG.md b/public/CHANGELOG.md index 3c61189e..d4658ff7 100644 --- a/public/CHANGELOG.md +++ b/public/CHANGELOG.md @@ -1,4 +1,7 @@ -# v4.0.16-beta (04.02.2024) +# v4.0.17-beta (04.02.2024) +## Core +- Optimization in case of new Instance +# v4.0.16-beta (03.02.2024) ## Settings - Optimization Panel and Template Settings - Add rawMode diff --git a/src/components/SettingsProps.vue b/src/components/SettingsProps.vue index ca449f99..935cbe7b 100644 --- a/src/components/SettingsProps.vue +++ b/src/components/SettingsProps.vue @@ -78,7 +78,7 @@ if(el.main.length > 1 || Object.keys(el.main[0].level).length > 0) advanced.push('main') if(Object.keys(el.info).length > 0) advanced.push('info') - devices = el.panel.devices.join(', ') + if(el.panel.devices) devices = el.panel.devices.join(', ') } else { panelCount = fhem.app.config.panels.map((e) => e.template).filter(e => e === el.name).length } diff --git a/src/locales/de.json b/src/locales/de.json index 2b380179..05c4a82d 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -119,6 +119,10 @@ "title": "Interner Fehler", "text": "Fehler bei der Verarbeitung der Konfiguration. Die Decodierung der base64-codierten Konfiguarationsdaten ist fehlgeschlagen. Für weitere Informationen solltest du das Fehlerlogging über den URL Parameter (?loglevel=7) aktivieren." }, + "noConfig": { + "title": "Keine Einstellungen gefunden", + "text": "Für diese Instanz wurden noch keine Einstellungen vorgenommen. Bitte zuerst die Grundeinstellungen für FHEMapp vornehmen und speichern." + }, "config": { "title": "Laden der Konfiguration fehalgeschlagen", "text": "Es konnten keine Konfiguationsdaten verarbeitet werden. Für weitere Informationen solltest du das Fehlerlogging über den URL Parameter (?loglevel=7) aktivieren." diff --git a/src/locales/en.json b/src/locales/en.json index 7f6ee519..1875b6ca 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -119,6 +119,10 @@ "title": "Internal error", "text": "Error processing the configuration. The decoding of the base64-encoded configuration data has failed. For more information, you should activate error logging via the URL parameter (?loglevel=7)." }, + "noConfig": { + "title": "No settings found", + "text": "No settings have yet been made for this instance. Please make and save the basic settings for FHEMapp first." + }, "config": { "title": "Failed to load the configuration", "text": "No configuration data could be processed. For more information, you should activate error logging via the URL parameter (?loglevel=7)." diff --git a/src/stores/fhem.js b/src/stores/fhem.js index 1e4f441f..cba25f74 100644 --- a/src/stores/fhem.js +++ b/src/stores/fhem.js @@ -47,7 +47,8 @@ export const useFhemStore = defineStore('fhem', () => { navigation: [], panelMaximized: false, threads: [], - distTemplates: [], + distTemplates: [], + noConfig: null, isReady: false, message: false, currentView: null, @@ -297,16 +298,24 @@ export const useFhemStore = defineStore('fhem', () => { resText = base64ToString(res) cfg = typeof resText === 'string' ? stringToJson(resText) : false + app.noConfig = false + if(!cfg) { log(2, 'Loading the Configuration of FHEM failed.', res, 'config') return false } if(cfg.error) { - //ToDo - //evtl. Hinweis in Oberfläche anzeigen - //mit Standardkonfiguration weitermachen - console.log(cfg.error) + if(cfg.error === 'No config found!') { + app.noConfig = true + router.push({ name: 'settings', query: router.currentRoute.value.query }) + log(3, cfg.error, null) + } else { + //ToDo + //ggf. weitere Fehler von FHEM, die beim Laden der Konfiguration auftreten, abfangen + console.log(cfg.error) + } + } for(const cfgPart of Object.keys(app.config)) { @@ -808,11 +817,11 @@ export const useFhemStore = defineStore('fhem', () => { return navObj } + //subFunction for createNavigation() function sortNavItems(group) { for(const item of group) { if(item.sort && item.group && item.group.length > 1) { - item.group.sort((a, b) => (a.title > b.title) ? 1 : (b.title > a.title) ? -1 : 0) - //console.log(item) + item.group.sort((a, b) => (a.title.toUpperCase() > b.title.toUpperCase()) ? 1 : (b.title.toUpperCase() > a.title.toUpperCase()) ? -1 : 0) } if(item.group) sortNavItems(item.group) diff --git a/src/views/SettingsView.vue b/src/views/SettingsView.vue index f8ffc12e..4b029957 100644 --- a/src/views/SettingsView.vue +++ b/src/views/SettingsView.vue @@ -7,6 +7,7 @@ import SettingsProps from '../components/SettingsProps.vue' import SettingsColors from '../components/SettingsColors.vue' import SettingsContent from '../components/SettingsContent.vue' +import { onMounted } from 'vue' const tabs = ['header', 'panels', 'templates', 'navigation', 'colors', 'content'] @@ -36,6 +37,10 @@ configIsChanged.value = false } + onMounted(() => { + if(fhem.app.noConfig) fhem.log(3, 'Settings View - No Config handling', null, 'noConfig') + }) +