mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-19 15:26:36 +00:00
Update supervisor info on addon action (#8404)
This commit is contained in:
parent
c01c0528a6
commit
acefa39796
@ -15,6 +15,7 @@ import {
|
|||||||
TemplateResult,
|
TemplateResult,
|
||||||
} from "lit-element";
|
} from "lit-element";
|
||||||
import memoizeOne from "memoize-one";
|
import memoizeOne from "memoize-one";
|
||||||
|
import { fireEvent } from "../../../src/common/dom/fire_event";
|
||||||
import { navigate } from "../../../src/common/navigate";
|
import { navigate } from "../../../src/common/navigate";
|
||||||
import { extractSearchParam } from "../../../src/common/url/search-params";
|
import { extractSearchParam } from "../../../src/common/url/search-params";
|
||||||
import "../../../src/components/ha-circular-progress";
|
import "../../../src/components/ha-circular-progress";
|
||||||
@ -22,9 +23,12 @@ import {
|
|||||||
fetchHassioAddonInfo,
|
fetchHassioAddonInfo,
|
||||||
HassioAddonDetails,
|
HassioAddonDetails,
|
||||||
} from "../../../src/data/hassio/addon";
|
} from "../../../src/data/hassio/addon";
|
||||||
import "../../../src/layouts/hass-loading-screen";
|
import { extractApiErrorMessage } from "../../../src/data/hassio/common";
|
||||||
import "../../../src/layouts/hass-error-screen";
|
import { fetchHassioSupervisorInfo } from "../../../src/data/hassio/supervisor";
|
||||||
import { Supervisor } from "../../../src/data/supervisor/supervisor";
|
import { Supervisor } from "../../../src/data/supervisor/supervisor";
|
||||||
|
import { showAlertDialog } from "../../../src/dialogs/generic/show-dialog-box";
|
||||||
|
import "../../../src/layouts/hass-error-screen";
|
||||||
|
import "../../../src/layouts/hass-loading-screen";
|
||||||
import "../../../src/layouts/hass-tabs-subpage";
|
import "../../../src/layouts/hass-tabs-subpage";
|
||||||
import type { PageNavigation } from "../../../src/layouts/hass-tabs-subpage";
|
import type { PageNavigation } from "../../../src/layouts/hass-tabs-subpage";
|
||||||
import { haStyle } from "../../../src/resources/styles";
|
import { haStyle } from "../../../src/resources/styles";
|
||||||
@ -36,7 +40,6 @@ import "./config/hassio-addon-network";
|
|||||||
import "./hassio-addon-router";
|
import "./hassio-addon-router";
|
||||||
import "./info/hassio-addon-info";
|
import "./info/hassio-addon-info";
|
||||||
import "./log/hassio-addon-logs";
|
import "./log/hassio-addon-logs";
|
||||||
import { extractApiErrorMessage } from "../../../src/data/hassio/common";
|
|
||||||
|
|
||||||
@customElement("hassio-addon-dashboard")
|
@customElement("hassio-addon-dashboard")
|
||||||
class HassioAddonDashboard extends LitElement {
|
class HassioAddonDashboard extends LitElement {
|
||||||
@ -180,14 +183,20 @@ class HassioAddonDashboard extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async _apiCalled(ev): Promise<void> {
|
private async _apiCalled(ev): Promise<void> {
|
||||||
const path: string = ev.detail.path;
|
const pathSplit: string[] = ev.detail.path?.split("/");
|
||||||
|
|
||||||
if (!path) {
|
if (!pathSplit || pathSplit.length === 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const path: string = pathSplit[pathSplit.length - 1];
|
||||||
|
|
||||||
|
if (["uninstall", "install", "update", "start", "stop"].includes(path)) {
|
||||||
|
await this._updateSupervisor();
|
||||||
|
}
|
||||||
|
|
||||||
if (path === "uninstall") {
|
if (path === "uninstall") {
|
||||||
history.back();
|
window.history.back();
|
||||||
} else {
|
} else {
|
||||||
await this._routeDataChanged();
|
await this._routeDataChanged();
|
||||||
}
|
}
|
||||||
@ -212,6 +221,18 @@ class HassioAddonDashboard extends LitElement {
|
|||||||
this.addon = undefined;
|
this.addon = undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async _updateSupervisor(): Promise<void> {
|
||||||
|
try {
|
||||||
|
const supervisor = await fetchHassioSupervisorInfo(this.hass);
|
||||||
|
fireEvent(this, "supervisor-update", { supervisor });
|
||||||
|
} catch (err) {
|
||||||
|
showAlertDialog(this, {
|
||||||
|
title: "Failed to fetch supervisor information",
|
||||||
|
text: extractApiErrorMessage(err),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
declare global {
|
declare global {
|
||||||
|
@ -914,6 +914,12 @@ class HassioAddonInfo extends LitElement {
|
|||||||
try {
|
try {
|
||||||
await startHassioAddon(this.hass, this.addon.slug);
|
await startHassioAddon(this.hass, this.addon.slug);
|
||||||
this.addon = await fetchHassioAddonInfo(this.hass, this.addon.slug);
|
this.addon = await fetchHassioAddonInfo(this.hass, this.addon.slug);
|
||||||
|
const eventdata = {
|
||||||
|
success: true,
|
||||||
|
response: undefined,
|
||||||
|
path: "start",
|
||||||
|
};
|
||||||
|
fireEvent(this, "hass-api-called", eventdata);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
showAlertDialog(this, {
|
showAlertDialog(this, {
|
||||||
title: "Failed to start addon",
|
title: "Failed to start addon",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user