From 534d1f5055d5f9ff43655fa4651d5dc8ea720df2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Sat, 17 Oct 2020 22:18:17 +0200 Subject: [PATCH] Add dialog and links for unsupported supervisor installation (#7332) --- hassio/src/system/hassio-supervisor-info.ts | 74 +++++++++++++++++---- src/data/hassio/resolution.ts | 15 +++++ 2 files changed, 77 insertions(+), 12 deletions(-) create mode 100644 src/data/hassio/resolution.ts diff --git a/hassio/src/system/hassio-supervisor-info.ts b/hassio/src/system/hassio-supervisor-info.ts index d53597699c..ad9fb4e417 100644 --- a/hassio/src/system/hassio-supervisor-info.ts +++ b/hassio/src/system/hassio-supervisor-info.ts @@ -11,14 +11,16 @@ import "../../../src/components/buttons/ha-progress-button"; import "../../../src/components/ha-card"; import "../../../src/components/ha-settings-row"; import "../../../src/components/ha-switch"; +import { extractApiErrorMessage } from "../../../src/data/hassio/common"; import { HassioHostInfo as HassioHostInfoType } from "../../../src/data/hassio/host"; +import { fetchHassioResolution } from "../../../src/data/hassio/resolution"; import { + fetchHassioSupervisorInfo, HassioSupervisorInfo as HassioSupervisorInfoType, reloadSupervisor, setSupervisorOption, SupervisorOptions, updateSupervisor, - fetchHassioSupervisorInfo, } from "../../../src/data/hassio/supervisor"; import { showAlertDialog, @@ -26,8 +28,35 @@ import { } from "../../../src/dialogs/generic/show-dialog-box"; import { haStyle } from "../../../src/resources/styles"; import { HomeAssistant } from "../../../src/types"; +import { documentationUrl } from "../../../src/util/documentation-url"; import { hassioStyle } from "../resources/hassio-style"; -import { extractApiErrorMessage } from "../../../src/data/hassio/common"; + +const ISSUES = { + container: { + title: "Containers known to cause issues", + url: "/more-info/unsupported/container", + }, + dbus: { title: "DBUS", url: "/more-info/unsupported/dbus" }, + docker_configuration: { + title: "Docker Configuration", + url: "/more-info/unsupported/docker_configuration", + }, + docker_version: { + title: "Docker Version", + url: "/more-info/unsupported/docker_version", + }, + lxc: { title: "LXC", url: "/more-info/unsupported/lxc" }, + network_manager: { + title: "Network Manager", + url: "/more-info/unsupported/network_manager", + }, + os: { title: "Operating System", url: "/more-info/unsupported/os" }, + privileged: { + title: "Supervisor is not privileged", + url: "/more-info/unsupported/privileged", + }, + systemd: { title: "Systemd", url: "/more-info/unsupported/systemd" }, +}; @customElement("hassio-supervisor-info") class HassioSupervisorInfo extends LitElement { @@ -118,18 +147,13 @@ class HassioSupervisorInfo extends LitElement { ` : html`
You are running an unsupported installation. - - Learn More - + Learn more +
`}
@@ -249,6 +273,32 @@ class HassioSupervisorInfo extends LitElement { }); } + private async _unsupportedDialog(): Promise { + const resolution = await fetchHassioResolution(this.hass); + await showAlertDialog(this, { + title: "You are running an unsupported installation", + text: html`Below is a list of issues found with your installation, click + on the links to learn how you can resolve the issues.

+ `, + }); + } + private async _toggleDiagnostics(): Promise { try { const data: SupervisorOptions = { diff --git a/src/data/hassio/resolution.ts b/src/data/hassio/resolution.ts new file mode 100644 index 0000000000..8f85943de3 --- /dev/null +++ b/src/data/hassio/resolution.ts @@ -0,0 +1,15 @@ +import { HomeAssistant } from "../../types"; +import { hassioApiResultExtractor, HassioResponse } from "./common"; + +export interface HassioResolution { + unsupported: string[]; +} + +export const fetchHassioResolution = async (hass: HomeAssistant) => { + return hassioApiResultExtractor( + await hass.callApi>( + "GET", + "hassio/resolution/info" + ) + ); +};