mirror of
https://github.com/home-assistant/frontend.git
synced 2025-08-01 13:37:47 +00:00
Allow multiple tap/hold/doubletap actions.
This commit is contained in:
parent
1538fbb102
commit
4dcfe3031d
@ -148,6 +148,11 @@ export interface CustomActionConfig extends BaseActionConfig {
|
||||
action: "fire-dom-event";
|
||||
}
|
||||
|
||||
export interface MultipleActionConfig extends BaseActionConfig {
|
||||
action: "multiple";
|
||||
actions: ActionConfig[];
|
||||
}
|
||||
|
||||
export interface BaseActionConfig {
|
||||
confirmation?: ConfirmationRestrictionConfig;
|
||||
}
|
||||
@ -168,7 +173,8 @@ export type ActionConfig =
|
||||
| UrlActionConfig
|
||||
| MoreInfoActionConfig
|
||||
| NoActionConfig
|
||||
| CustomActionConfig;
|
||||
| CustomActionConfig
|
||||
| MultipleActionConfig;
|
||||
|
||||
type LovelaceUpdatedEvent = HassEventBase & {
|
||||
event_type: "lovelace_updated";
|
||||
|
@ -40,6 +40,10 @@ export const handleAction = async (
|
||||
};
|
||||
}
|
||||
|
||||
const actionConfigs =
|
||||
actionConfig.action === "multiple" ? actionConfig.actions : [actionConfig];
|
||||
|
||||
for await (actionConfig of actionConfigs) {
|
||||
if (
|
||||
actionConfig.confirmation &&
|
||||
(!actionConfig.confirmation.exemptions ||
|
||||
@ -105,4 +109,5 @@ export const handleAction = async (
|
||||
fireEvent(node, "ll-custom", actionConfig);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -130,6 +130,15 @@ export class HuiActionEditor extends LitElement {
|
||||
</b>
|
||||
`
|
||||
: ""}
|
||||
${this.config?.action === "multiple"
|
||||
? html`
|
||||
<b>
|
||||
${this.hass!.localize(
|
||||
"ui.panel.lovelace.editor.action-editor.editor_multiple_actions"
|
||||
)}
|
||||
</b>
|
||||
`
|
||||
: ""}
|
||||
`;
|
||||
}
|
||||
|
||||
|
@ -46,6 +46,7 @@ const actions = [
|
||||
"url",
|
||||
"call-service",
|
||||
"none",
|
||||
"multiple",
|
||||
];
|
||||
|
||||
@customElement("hui-button-card-editor")
|
||||
|
@ -82,6 +82,7 @@ export class HuiLightCardEditor extends LitElement
|
||||
"url",
|
||||
"call-service",
|
||||
"none",
|
||||
"multiple",
|
||||
];
|
||||
|
||||
return html`
|
||||
|
@ -60,7 +60,7 @@ export class HuiPictureCardEditor extends LitElement
|
||||
return html``;
|
||||
}
|
||||
|
||||
const actions = ["navigate", "url", "call-service", "none"];
|
||||
const actions = ["navigate", "url", "call-service", "none", "multiple"];
|
||||
|
||||
return html`
|
||||
<div class="card-config">
|
||||
|
@ -104,7 +104,14 @@ export class HuiPictureEntityCardEditor extends LitElement
|
||||
return html``;
|
||||
}
|
||||
|
||||
const actions = ["more-info", "toggle", "navigate", "call-service", "none"];
|
||||
const actions = [
|
||||
"more-info",
|
||||
"toggle",
|
||||
"navigate",
|
||||
"call-service",
|
||||
"none",
|
||||
"multiple",
|
||||
];
|
||||
const views = ["auto", "live"];
|
||||
const dir = computeRTLDirection(this.hass!);
|
||||
|
||||
|
@ -108,7 +108,14 @@ export class HuiPictureGlanceCardEditor extends LitElement
|
||||
return html``;
|
||||
}
|
||||
|
||||
const actions = ["more-info", "toggle", "navigate", "call-service", "none"];
|
||||
const actions = [
|
||||
"more-info",
|
||||
"toggle",
|
||||
"navigate",
|
||||
"call-service",
|
||||
"none",
|
||||
"multiple",
|
||||
];
|
||||
const views = ["auto", "live"];
|
||||
|
||||
return html`
|
||||
|
@ -98,6 +98,7 @@ export const actionConfigStruct = object({
|
||||
url_path: optional(string()),
|
||||
service: optional(string()),
|
||||
service_data: optional(object()),
|
||||
actions: optional(array()),
|
||||
});
|
||||
|
||||
const buttonEntitiesRowConfigStruct = object({
|
||||
|
@ -2564,6 +2564,7 @@
|
||||
"action-editor": {
|
||||
"navigation_path": "Navigation Path",
|
||||
"url_path": "URL Path",
|
||||
"editor_multiple_actions": "Multiple actions can only be entered in the code editor",
|
||||
"editor_service_data": "Service data can only be entered in the code editor",
|
||||
"actions": {
|
||||
"default_action": "Default Action",
|
||||
@ -2572,7 +2573,8 @@
|
||||
"toggle": "Toggle",
|
||||
"navigate": "Navigate",
|
||||
"url": "URL",
|
||||
"none": "No Action"
|
||||
"none": "No Action",
|
||||
"multiple": "Multiple actions"
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
|
Loading…
x
Reference in New Issue
Block a user