mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-23 17:26:42 +00:00
Add add-on logs to log selector (#12556)
This commit is contained in:
parent
85a37e2d2f
commit
10aa0a8829
@ -179,7 +179,10 @@ export const fetchHassioInfo = async (
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fetchHassioLogs = async (hass: HomeAssistant, provider: string) =>
|
export const fetchHassioLogs = async (hass: HomeAssistant, provider: string) =>
|
||||||
hass.callApi<string>("GET", `hassio/${provider}/logs`);
|
hass.callApi<string>(
|
||||||
|
"GET",
|
||||||
|
`hassio/${provider.includes("_") ? `addons/${provider}` : provider}/logs`
|
||||||
|
);
|
||||||
|
|
||||||
export const setSupervisorOption = async (
|
export const setSupervisorOption = async (
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
|
@ -6,6 +6,7 @@ import { extractSearchParam } from "../../../common/url/search-params";
|
|||||||
import "../../../components/ha-button-menu";
|
import "../../../components/ha-button-menu";
|
||||||
import "../../../components/search-input";
|
import "../../../components/search-input";
|
||||||
import { LogProvider } from "../../../data/error_log";
|
import { LogProvider } from "../../../data/error_log";
|
||||||
|
import { fetchHassioSupervisorInfo } from "../../../data/hassio/supervisor";
|
||||||
import "../../../layouts/hass-subpage";
|
import "../../../layouts/hass-subpage";
|
||||||
import "../../../layouts/hass-tabs-subpage";
|
import "../../../layouts/hass-tabs-subpage";
|
||||||
import { haStyle } from "../../../resources/styles";
|
import { haStyle } from "../../../resources/styles";
|
||||||
@ -59,6 +60,8 @@ export class HaConfigLogs extends LitElement {
|
|||||||
|
|
||||||
@state() private _selectedLogProvider = "core";
|
@state() private _selectedLogProvider = "core";
|
||||||
|
|
||||||
|
@state() private _logProviders = logProviders;
|
||||||
|
|
||||||
public connectedCallback() {
|
public connectedCallback() {
|
||||||
super.connectedCallback();
|
super.connectedCallback();
|
||||||
if (this.systemLog && this.systemLog.loaded) {
|
if (this.systemLog && this.systemLog.loaded) {
|
||||||
@ -66,6 +69,13 @@ export class HaConfigLogs extends LitElement {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected firstUpdated(changedProps): void {
|
||||||
|
super.firstUpdated(changedProps);
|
||||||
|
if (isComponentLoaded(this.hass, "hassio")) {
|
||||||
|
this._getInstalledAddons();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private async _filterChanged(ev) {
|
private async _filterChanged(ev) {
|
||||||
this._filter = ev.detail.value;
|
this._filter = ev.detail.value;
|
||||||
}
|
}
|
||||||
@ -107,7 +117,7 @@ export class HaConfigLogs extends LitElement {
|
|||||||
<ha-button-menu corner="BOTTOM_START" slot="toolbar-icon">
|
<ha-button-menu corner="BOTTOM_START" slot="toolbar-icon">
|
||||||
<mwc-button
|
<mwc-button
|
||||||
slot="trigger"
|
slot="trigger"
|
||||||
.label=${logProviders.find(
|
.label=${this._logProviders.find(
|
||||||
(p) => p.key === this._selectedLogProvider
|
(p) => p.key === this._selectedLogProvider
|
||||||
)!.name}
|
)!.name}
|
||||||
>
|
>
|
||||||
@ -116,7 +126,7 @@ export class HaConfigLogs extends LitElement {
|
|||||||
.path=${mdiChevronDown}
|
.path=${mdiChevronDown}
|
||||||
></ha-svg-icon>
|
></ha-svg-icon>
|
||||||
</mwc-button>
|
</mwc-button>
|
||||||
${logProviders.map(
|
${this._logProviders.map(
|
||||||
(provider) => html`
|
(provider) => html`
|
||||||
<mwc-list-item
|
<mwc-list-item
|
||||||
?selected=${provider.key === this._selectedLogProvider}
|
?selected=${provider.key === this._selectedLogProvider}
|
||||||
@ -155,6 +165,21 @@ export class HaConfigLogs extends LitElement {
|
|||||||
this._selectedLogProvider = (ev.currentTarget as any).provider;
|
this._selectedLogProvider = (ev.currentTarget as any).provider;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async _getInstalledAddons() {
|
||||||
|
try {
|
||||||
|
const supervisorInfo = await fetchHassioSupervisorInfo(this.hass);
|
||||||
|
this._logProviders = [
|
||||||
|
...this._logProviders,
|
||||||
|
...supervisorInfo.addons.map((addon) => ({
|
||||||
|
key: addon.slug,
|
||||||
|
name: addon.name,
|
||||||
|
})),
|
||||||
|
];
|
||||||
|
} catch (err) {
|
||||||
|
// Ignore, nothing the user can do anyway
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static get styles(): CSSResultGroup {
|
static get styles(): CSSResultGroup {
|
||||||
return [
|
return [
|
||||||
haStyle,
|
haStyle,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user