From f64b96ac5d87611594c4c3aeee0508573fbbfe98 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Fri, 12 Mar 2021 12:41:08 +0100 Subject: [PATCH] Add warning when using templates in service dev tools --- .../service/developer-tools-service.ts | 15 ++++++++++++++- src/translations/en.json | 3 ++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/panels/developer-tools/service/developer-tools-service.ts b/src/panels/developer-tools/service/developer-tools-service.ts index 8488b93c0d..1279258693 100644 --- a/src/panels/developer-tools/service/developer-tools-service.ts +++ b/src/panels/developer-tools/service/developer-tools-service.ts @@ -4,6 +4,7 @@ import { CSSResultArray, html, LitElement, + internalProperty, property, query, } from "lit-element"; @@ -25,12 +26,15 @@ import { haStyle } from "../../../resources/styles"; import "../../../styles/polymer-ha-style"; import { HomeAssistant } from "../../../types"; import "../../../util/app-localstorage-document"; +import { hasTemplate } from "../../../common/string/has-template"; class HaPanelDevService extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; @property() public narrow!: boolean; + @internalProperty() private _error?: string; + @LocalStorage("panel-dev-service-state-service-data", true) private _serviceData?: ServiceAction = { service: "", target: {}, data: {} }; @@ -84,7 +88,6 @@ class HaPanelDevService extends LitElement { "ui.panel.developer-tools.tabs.services.description" )}

- ${this._yamlMode ? html``} + ${this._error ? html`

Error: ${this._error}

` : ""}
@@ -255,6 +259,15 @@ class HaPanelDevService extends LitElement { if (!domain || !service) { return; } + + this._error = undefined; + if (hasTemplate(this._serviceData!)) { + this._error = this.hass.localize( + "ui.panel.developer-tools.tabs.services.no_templates" + ); + return; + } + this.hass.callService( domain, service, diff --git a/src/translations/en.json b/src/translations/en.json index 6eab53161e..d7ee851c67 100755 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -3340,7 +3340,8 @@ "ui_mode": "Go to UI mode", "yaml_parameters": "Parameters only available in YAML mode", "all_parameters": "All available parameters", - "accepts_target": "This service accepts a target, for example: `entity_id: light.bed_light`" + "accepts_target": "This service accepts a target, for example: `entity_id: light.bed_light`", + "no_templates": "The service dev tools does not support the use of Jinja templates" }, "states": { "title": "States",