+ {
+ this._selected = { ...this._selected, [idx]: ev.detail.path };
+ }}
+ >
{
+ this._selected = {
+ ...this._selected,
+ [idx]: ev.detail.value,
+ };
+ }}
>
+
`
@@ -53,6 +73,20 @@ export class DemoAutomationTrace extends LitElement {
max-width: 600px;
margin: 24px;
}
+ .card-content {
+ display: flex;
+ }
+ .card-content > * {
+ margin-right: 16px;
+ }
+ .card-content > *:last-child {
+ margin-right: 0;
+ }
+ button {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
`;
}
}
diff --git a/src/components/trace/hat-trace-timeline.ts b/src/components/trace/hat-trace-timeline.ts
index ad7ce559e2..ac1b957004 100644
--- a/src/components/trace/hat-trace-timeline.ts
+++ b/src/components/trace/hat-trace-timeline.ts
@@ -33,6 +33,7 @@ import {
} from "../../data/script";
import relativeTime from "../../common/datetime/relative_time";
import { fireEvent } from "../../common/dom/fire_event";
+import { describeAction } from "../../data/script_i18n";
const LOGBOOK_ENTRIES_BEFORE_FOLD = 2;
@@ -262,7 +263,7 @@ class ActionRenderer {
return this._handleChoose(index);
}
- this._renderEntry(path, data.alias || actionType);
+ this._renderEntry(path, describeAction(this.hass, data, actionType));
return index + 1;
}
@@ -334,7 +335,10 @@ class ActionRenderer {
}
// We're going to skip all conditions
- if (parts[startLevel + 3] === "sequence") {
+ if (
+ (defaultExecuted && parts[startLevel + 1] === "default") ||
+ (!defaultExecuted && parts[startLevel + 3] === "sequence")
+ ) {
break;
}
}
diff --git a/src/data/automation_i18n.ts b/src/data/automation_i18n.ts
new file mode 100644
index 0000000000..c4c9410a75
--- /dev/null
+++ b/src/data/automation_i18n.ts
@@ -0,0 +1,15 @@
+import { Trigger, Condition } from "./automation";
+
+export const describeTrigger = (trigger: Trigger) => {
+ return `${trigger.platform} trigger`;
+};
+
+export const describeCondition = (condition: Condition) => {
+ if (condition.alias) {
+ return condition.alias;
+ }
+ if (condition.condition === "template") {
+ return "Test a template";
+ }
+ return `${condition.condition} condition`;
+};
diff --git a/src/data/script.ts b/src/data/script.ts
index 5bc023b161..bad7b3650c 100644
--- a/src/data/script.ts
+++ b/src/data/script.ts
@@ -37,7 +37,8 @@ export interface EventAction {
export interface ServiceAction {
alias?: string;
- service: string;
+ service?: string;
+ service_template?: string;
entity_id?: string;
target?: HassServiceTarget;
data?: Record