mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-28 03:36:44 +00:00
Use restart dialog confirmation for quick command (#18113)
This commit is contained in:
parent
d7f1e9d091
commit
0489d8922e
@ -8,7 +8,7 @@ import {
|
|||||||
mdiReload,
|
mdiReload,
|
||||||
mdiServerNetwork,
|
mdiServerNetwork,
|
||||||
} from "@mdi/js";
|
} from "@mdi/js";
|
||||||
import { css, html, LitElement, nothing } from "lit";
|
import { LitElement, css, html, nothing } from "lit";
|
||||||
import { customElement, property, query, state } from "lit/decorators";
|
import { customElement, property, query, state } from "lit/decorators";
|
||||||
import { ifDefined } from "lit/directives/if-defined";
|
import { ifDefined } from "lit/directives/if-defined";
|
||||||
import { styleMap } from "lit/directives/style-map";
|
import { styleMap } from "lit/directives/style-map";
|
||||||
@ -23,8 +23,8 @@ import { domainIcon } from "../../common/entity/domain_icon";
|
|||||||
import { navigate } from "../../common/navigate";
|
import { navigate } from "../../common/navigate";
|
||||||
import { caseInsensitiveStringCompare } from "../../common/string/compare";
|
import { caseInsensitiveStringCompare } from "../../common/string/compare";
|
||||||
import {
|
import {
|
||||||
fuzzyFilterSort,
|
|
||||||
ScorableTextItem,
|
ScorableTextItem,
|
||||||
|
fuzzyFilterSort,
|
||||||
} from "../../common/string/filter/sequence-matching";
|
} from "../../common/string/filter/sequence-matching";
|
||||||
import { debounce } from "../../common/util/debounce";
|
import { debounce } from "../../common/util/debounce";
|
||||||
import "../../components/ha-chip";
|
import "../../components/ha-chip";
|
||||||
@ -40,10 +40,7 @@ import { configSections } from "../../panels/config/ha-panel-config";
|
|||||||
import { haStyleDialog, haStyleScrollbar } from "../../resources/styles";
|
import { haStyleDialog, haStyleScrollbar } from "../../resources/styles";
|
||||||
import { loadVirtualizer } from "../../resources/virtualizer";
|
import { loadVirtualizer } from "../../resources/virtualizer";
|
||||||
import { HomeAssistant } from "../../types";
|
import { HomeAssistant } from "../../types";
|
||||||
import {
|
import { showConfirmationDialog } from "../generic/show-dialog-box";
|
||||||
ConfirmationDialogParams,
|
|
||||||
showConfirmationDialog,
|
|
||||||
} from "../generic/show-dialog-box";
|
|
||||||
import { QuickBarParams } from "./show-dialog-quick-bar";
|
import { QuickBarParams } from "./show-dialog-quick-bar";
|
||||||
|
|
||||||
interface QuickBarItem extends ScorableTextItem {
|
interface QuickBarItem extends ScorableTextItem {
|
||||||
@ -602,16 +599,30 @@ export class QuickBar extends LitElement {
|
|||||||
`ui.dialogs.quick-bar.commands.types.${categoryKey}`
|
`ui.dialogs.quick-bar.commands.types.${categoryKey}`
|
||||||
),
|
),
|
||||||
categoryKey,
|
categoryKey,
|
||||||
action: () => this.hass.callService("homeassistant", action),
|
action: async () => {
|
||||||
|
const confirmed = await showConfirmationDialog(this, {
|
||||||
|
title: this.hass.localize(
|
||||||
|
`ui.dialogs.restart.${action}.confirm_title`
|
||||||
|
),
|
||||||
|
text: this.hass.localize(
|
||||||
|
`ui.dialogs.restart.${action}.confirm_description`
|
||||||
|
),
|
||||||
|
confirmText: this.hass.localize(
|
||||||
|
`ui.dialogs.restart.${action}.confirm_action`
|
||||||
|
),
|
||||||
|
destructive: true,
|
||||||
|
});
|
||||||
|
if (!confirmed) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.hass.callService("homeassistant", action);
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
return this._generateConfirmationCommand(
|
return {
|
||||||
{
|
|
||||||
...item,
|
...item,
|
||||||
strings: [`${item.categoryText} ${item.primaryText}`],
|
strings: [`${item.categoryText} ${item.primaryText}`],
|
||||||
},
|
};
|
||||||
this.hass.localize("ui.dialogs.generic.ok")
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -717,20 +728,6 @@ export class QuickBar extends LitElement {
|
|||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _generateConfirmationCommand(
|
|
||||||
item: CommandItem,
|
|
||||||
confirmText: ConfirmationDialogParams["confirmText"]
|
|
||||||
): CommandItem {
|
|
||||||
return {
|
|
||||||
...item,
|
|
||||||
action: () =>
|
|
||||||
showConfirmationDialog(this, {
|
|
||||||
confirmText,
|
|
||||||
confirm: item.action,
|
|
||||||
}),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private _finalizeNavigationCommands(
|
private _finalizeNavigationCommands(
|
||||||
items: BaseNavigationCommand[]
|
items: BaseNavigationCommand[]
|
||||||
): CommandItem[] {
|
): CommandItem[] {
|
||||||
|
@ -1203,6 +1203,11 @@
|
|||||||
"confirm_action": "Restart",
|
"confirm_action": "Restart",
|
||||||
"failed": "Failed to restart Home Assistant"
|
"failed": "Failed to restart Home Assistant"
|
||||||
},
|
},
|
||||||
|
"stop": {
|
||||||
|
"confirm_title": "Stop Home Assistant?",
|
||||||
|
"confirm_description": "This will interrupt all running automations and scripts.",
|
||||||
|
"confirm_action": "Stop"
|
||||||
|
},
|
||||||
"reboot": {
|
"reboot": {
|
||||||
"title": "Reboot system",
|
"title": "Reboot system",
|
||||||
"description": "Restart the system running Home Assistant and all Add-ons.",
|
"description": "Restart the system running Home Assistant and all Add-ons.",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user