From 1cf24ffc8dc7039ceec952e9b33e38f3d2efe230 Mon Sep 17 00:00:00 2001
From: karwosts <32912880+karwosts@users.noreply.github.com>
Date: Tue, 20 Jun 2023 07:53:13 -0700
Subject: [PATCH] Allow continue_on_error in the UI action editor (#16834)
---
src/data/script.ts | 15 +++++++----
.../action/ha-automation-action-row.ts | 27 +++++++++++++++++--
src/translations/en.json | 1 +
3 files changed, 36 insertions(+), 7 deletions(-)
diff --git a/src/data/script.ts b/src/data/script.ts
index a1288158db..b679b0a22f 100644
--- a/src/data/script.ts
+++ b/src/data/script.ts
@@ -33,6 +33,7 @@ export const isMaxMode = arrayLiteralIncludes(MODES_MAX);
export const baseActionStruct = object({
alias: optional(string()),
+ continue_on_error: optional(boolean()),
enabled: optional(boolean()),
});
@@ -99,6 +100,7 @@ export interface BlueprintScriptConfig extends ManualScriptConfig {
interface BaseAction {
alias?: string;
+ continue_on_error?: boolean;
enabled?: boolean;
}
@@ -230,14 +232,10 @@ interface UnknownAction extends BaseAction {
[key: string]: unknown;
}
-export type Action =
+export type NonConditionAction =
| EventAction
| DeviceAction
| ServiceAction
- | Condition
- | ShorthandAndCondition
- | ShorthandOrCondition
- | ShorthandNotCondition
| DelayAction
| SceneAction
| WaitAction
@@ -251,6 +249,13 @@ export type Action =
| ParallelAction
| UnknownAction;
+export type Action =
+ | NonConditionAction
+ | Condition
+ | ShorthandAndCondition
+ | ShorthandOrCondition
+ | ShorthandNotCondition;
+
export interface ActionTypes {
delay: DelayAction;
wait_template: WaitAction;
diff --git a/src/panels/config/automation/action/ha-automation-action-row.ts b/src/panels/config/automation/action/ha-automation-action-row.ts
index 0819a14287..242fd3173f 100644
--- a/src/panels/config/automation/action/ha-automation-action-row.ts
+++ b/src/panels/config/automation/action/ha-automation-action-row.ts
@@ -1,6 +1,7 @@
import { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
import "@material/mwc-list/mwc-list-item";
import {
+ mdiAlertCircleCheck,
mdiCheck,
mdiContentDuplicate,
mdiContentCopy,
@@ -14,7 +15,14 @@ import {
mdiStopCircleOutline,
} from "@mdi/js";
import { UnsubscribeFunc } from "home-assistant-js-websocket";
-import { css, CSSResultGroup, html, LitElement, PropertyValues } from "lit";
+import {
+ css,
+ CSSResultGroup,
+ html,
+ LitElement,
+ nothing,
+ PropertyValues,
+} from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import { dynamicElement } from "../../../../common/dom/dynamic-element-directive";
@@ -34,7 +42,11 @@ import {
subscribeEntityRegistry,
} from "../../../../data/entity_registry";
import { Clipboard } from "../../../../data/automation";
-import { Action, getActionType } from "../../../../data/script";
+import {
+ Action,
+ NonConditionAction,
+ getActionType,
+} from "../../../../data/script";
import { describeAction } from "../../../../data/script_i18n";
import { callExecuteScript } from "../../../../data/service";
import {
@@ -184,6 +196,17 @@ export default class HaAutomationActionRow extends LitElement {