Skip to content

Commit

Permalink
Add supervisor_ingress support to my (#9087)
Browse files Browse the repository at this point in the history
  • Loading branch information
ludeeus committed May 7, 2021
1 parent 83cabca commit 4b796b4
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 3 deletions.
6 changes: 6 additions & 0 deletions hassio/src/hassio-my-redirect.ts
Expand Up @@ -43,6 +43,12 @@ const REDIRECTS: Redirects = {
addon: "string",
},
},
supervisor_ingress: {
redirect: "/hassio/ingress",
params: {
addon: "string",
},
},
supervisor_add_addon_repository: {
redirect: "/hassio/store",
params: {
Expand Down
3 changes: 1 addition & 2 deletions hassio/src/hassio-router.ts
Expand Up @@ -61,11 +61,10 @@ class HassioRouter extends HassRouterPage {
el.hass = this.hass;
el.narrow = this.narrow;
el.route = route;
el.supervisor = this.supervisor;

if (el.localName === "hassio-ingress-view") {
el.ingressPanel = this.panel.config && this.panel.config.ingress;
} else {
el.supervisor = this.supervisor;
}
}

Expand Down
33 changes: 33 additions & 0 deletions hassio/src/ingress-view/hassio-ingress-view.ts
Expand Up @@ -12,14 +12,17 @@ import {
} from "lit-element";
import { fireEvent } from "../../../src/common/dom/fire_event";
import { navigate } from "../../../src/common/navigate";
import { extractSearchParam } from "../../../src/common/url/search-params";
import {
fetchHassioAddonInfo,
HassioAddonDetails,
} from "../../../src/data/hassio/addon";
import { extractApiErrorMessage } from "../../../src/data/hassio/common";
import {
createHassioSession,
validateHassioSession,
} from "../../../src/data/hassio/ingress";
import { Supervisor } from "../../../src/data/supervisor/supervisor";
import { showAlertDialog } from "../../../src/dialogs/generic/show-dialog-box";
import "../../../src/layouts/hass-loading-screen";
import "../../../src/layouts/hass-subpage";
Expand All @@ -29,6 +32,8 @@ import { HomeAssistant, Route } from "../../../src/types";
class HassioIngressView extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;

@property({ attribute: false }) public supervisor!: Supervisor;

@property() public route!: Route;

@property() public ingressPanel = false;
Expand Down Expand Up @@ -80,6 +85,34 @@ class HassioIngressView extends LitElement {
: iframe}`;
}

protected async firstUpdated(): Promise<void> {
if (this.route.path === "") {
const requestedAddon = extractSearchParam("addon");
let addonInfo: HassioAddonDetails;
if (requestedAddon) {
try {
addonInfo = await fetchHassioAddonInfo(this.hass, requestedAddon);
} catch (err) {
await showAlertDialog(this, {
text: extractApiErrorMessage(err),
title: requestedAddon,
});
history.back();
return;
}
if (!addonInfo.ingress) {
await showAlertDialog(this, {
text: this.supervisor.localize("my.error_addon_no_ingress"),
title: addonInfo.name,
});
history.back();
} else {
navigate(this, `/hassio/ingress/${addonInfo.slug}`, true);
}
}
}
}

protected updated(changedProps: PropertyValues) {
super.updated(changedProps);

Expand Down
3 changes: 2 additions & 1 deletion src/translations/en.json
Expand Up @@ -3786,7 +3786,8 @@
"not_supported": "[%key:ui::panel::my::not_supported%]",
"faq_link": "[%key:ui::panel::my::faq_link%]",
"error": "[%key:ui::panel::my::error%]",
"error_addon_not_found": "Add-on not found"
"error_addon_not_found": "Add-on not found",
"error_addon_no_ingress": "The requested add-on does not support ingress"
},
"system": {
"log": {
Expand Down

0 comments on commit 4b796b4

Please sign in to comment.