From 20858db96d96cccc8f4d29fa6cec04b4f88960d1 Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Wed, 31 Mar 2021 14:12:06 +0200 Subject: [PATCH] Use service name in action confirmation popup (#8493) --- src/panels/lovelace/common/handle-action.ts | 23 +++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/panels/lovelace/common/handle-action.ts b/src/panels/lovelace/common/handle-action.ts index a4339e2fe4..3be3790397 100644 --- a/src/panels/lovelace/common/handle-action.ts +++ b/src/panels/lovelace/common/handle-action.ts @@ -1,6 +1,7 @@ import { fireEvent } from "../../../common/dom/fire_event"; import { navigate } from "../../../common/navigate"; import { forwardHaptic } from "../../../data/haptics"; +import { domainToName } from "../../../data/integration"; import { ActionConfig } from "../../../data/lovelace"; import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box"; import { HomeAssistant } from "../../../types"; @@ -50,6 +51,18 @@ export const handleAction = async ( ) { forwardHaptic("warning"); + let serviceName; + if (actionConfig.action === "call-service") { + const [domain, service] = actionConfig.service.split(".", 2); + const serviceDomains = hass.services; + if (domain in serviceDomains && service in serviceDomains[domain]) { + const localize = await hass.loadBackendTranslation("title"); + serviceName = `${domainToName(localize, domain)}: ${ + serviceDomains[domain][service].name || service + }`; + } + } + if ( !(await showConfirmationDialog(node, { text: @@ -57,10 +70,12 @@ export const handleAction = async ( hass.localize( "ui.panel.lovelace.cards.actions.action_confirmation", "action", - hass.localize( - "ui.panel.lovelace.editor.action-editor.actions." + - actionConfig.action - ) || actionConfig.action + serviceName || + hass.localize( + "ui.panel.lovelace.editor.action-editor.actions." + + actionConfig.action + ) || + actionConfig.action ), })) ) {