From 48a800882e2a12046cffae2de6eb2bdee59d299c Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Fri, 7 Jan 2022 17:47:57 +0100 Subject: [PATCH] Add `reload_themes` and `reload_core_config` to quick bar (#11072) --- src/dialogs/quick-bar/ha-quick-bar.ts | 66 ++++++++++++++++++--------- src/translations/en.json | 6 ++- 2 files changed, 48 insertions(+), 24 deletions(-) diff --git a/src/dialogs/quick-bar/ha-quick-bar.ts b/src/dialogs/quick-bar/ha-quick-bar.ts index 3394c575a2..5fd0420c25 100644 --- a/src/dialogs/quick-bar/ha-quick-bar.ts +++ b/src/dialogs/quick-bar/ha-quick-bar.ts @@ -428,32 +428,54 @@ export class QuickBar extends LitElement { } private _generateReloadCommands(): CommandItem[] { - const reloadableDomains = componentsWithService(this.hass, "reload").sort(); + // Get all domains that have a direct "reload" service + const reloadableDomains = componentsWithService(this.hass, "reload"); - return reloadableDomains.map((domain) => { - const commandItem = { - primaryText: - this.hass.localize( - `ui.dialogs.quick-bar.commands.reload.${domain}` - ) || - this.hass.localize( - "ui.dialogs.quick-bar.commands.reload.reload", - "domain", - domainToName(this.hass.localize, domain) - ), - action: () => this.hass.callService(domain, "reload"), - iconPath: mdiReload, - categoryText: this.hass.localize( - `ui.dialogs.quick-bar.commands.types.reload` + const commands = reloadableDomains.map((domain) => ({ + primaryText: + this.hass.localize(`ui.dialogs.quick-bar.commands.reload.${domain}`) || + this.hass.localize( + "ui.dialogs.quick-bar.commands.reload.reload", + "domain", + domainToName(this.hass.localize, domain) ), - }; + action: () => this.hass.callService(domain, "reload"), + iconPath: mdiReload, + categoryText: this.hass.localize( + `ui.dialogs.quick-bar.commands.types.reload` + ), + })); - return { - ...commandItem, - categoryKey: "reload", - strings: [`${commandItem.categoryText} ${commandItem.primaryText}`], - }; + // Add "frontend.reload_themes" + commands.push({ + primaryText: this.hass.localize( + "ui.dialogs.quick-bar.commands.reload.themes" + ), + action: () => this.hass.callService("frontend", "reload_themes"), + iconPath: mdiReload, + categoryText: this.hass.localize( + "ui.dialogs.quick-bar.commands.types.reload" + ), }); + + // Add "homeassistant.reload_core_config" + commands.push({ + primaryText: this.hass.localize( + "ui.dialogs.quick-bar.commands.reload.core" + ), + action: () => + this.hass.callService("homeassistant", "reload_core_config"), + iconPath: mdiReload, + categoryText: this.hass.localize( + "ui.dialogs.quick-bar.commands.types.reload" + ), + }); + + return commands.map((command) => ({ + ...command, + categoryKey: "reload", + strings: [`${command.categoryText} ${command.primaryText}`], + })); } private _generateServerControlCommands(): CommandItem[] { diff --git a/src/translations/en.json b/src/translations/en.json index 3a6d224254..793cc7ebb9 100755 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -590,7 +590,8 @@ "telegram": "[%key:ui::panel::config::server_control::section::reloading::telegram%]", "smtp": "[%key:ui::panel::config::server_control::section::reloading::smtp%]", "mqtt": "[%key:ui::panel::config::server_control::section::reloading::mqtt%]", - "rpi_gpio": "[%key:ui::panel::config::server_control::section::reloading::rpi_gpio%]" + "rpi_gpio": "[%key:ui::panel::config::server_control::section::reloading::rpi_gpio%]", + "themes": "[%key:ui::panel::config::server_control::section::reloading::themes%]" }, "server_control": { "perform_action": "{action} server", @@ -1462,7 +1463,8 @@ "smtp": "SMTP notify services", "mqtt": "Manually configured MQTT entities", "rpi_gpio": "Raspberry Pi GPIO entities", - "timer": "Timers" + "timer": "Timers", + "themes": "Themes" }, "server_management": { "heading": "Server management",