Update Show Skipped/ignored in updates/repairs, update dialog of integration startup time (#13296)

This commit is contained in:
Zack Barett 2022-07-28 03:39:16 -05:00 committed by GitHub
parent 86c971b76a
commit f3229bb8a7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 55 additions and 32 deletions

View File

@ -1,15 +1,16 @@
import type { ActionDetail } from "@material/mwc-list"; import { RequestSelectedDetail } from "@material/mwc-list/mwc-list-item";
import "@material/mwc-list/mwc-list-item";
import { mdiDotsVertical, mdiRefresh } from "@mdi/js"; import { mdiDotsVertical, mdiRefresh } from "@mdi/js";
import { HassEntities } from "home-assistant-js-websocket"; import { HassEntities } from "home-assistant-js-websocket";
import { css, html, LitElement, TemplateResult } from "lit"; import { css, html, LitElement, TemplateResult } from "lit";
import { customElement, property, state } from "lit/decorators"; import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one"; import memoizeOne from "memoize-one";
import { isComponentLoaded } from "../../../common/config/is_component_loaded"; import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { shouldHandleRequestSelectedEvent } from "../../../common/mwc/handle-request-selected-event";
import "../../../components/ha-alert"; import "../../../components/ha-alert";
import "../../../components/ha-bar"; import "../../../components/ha-bar";
import "../../../components/ha-button-menu"; import "../../../components/ha-button-menu";
import "../../../components/ha-card"; import "../../../components/ha-card";
import "../../../components/ha-check-list-item";
import "../../../components/ha-metric"; import "../../../components/ha-metric";
import { extractApiErrorMessage } from "../../../data/hassio/common"; import { extractApiErrorMessage } from "../../../data/hassio/common";
import { import {
@ -72,20 +73,23 @@ class HaConfigSectionUpdates extends LitElement {
.path=${mdiRefresh} .path=${mdiRefresh}
@click=${this._checkUpdates} @click=${this._checkUpdates}
></ha-icon-button> ></ha-icon-button>
<ha-button-menu corner="BOTTOM_START" @action=${this._handleAction}> <ha-button-menu corner="BOTTOM_START" multi>
<ha-icon-button <ha-icon-button
slot="trigger" slot="trigger"
.label=${this.hass.localize("ui.common.menu")} .label=${this.hass.localize("ui.common.menu")}
.path=${mdiDotsVertical} .path=${mdiDotsVertical}
></ha-icon-button> ></ha-icon-button>
<mwc-list-item id="skipped"> <ha-check-list-item
${this._showSkipped left
? this.hass.localize("ui.panel.config.updates.hide_skipped") @request-selected=${this._toggleSkipped}
: this.hass.localize("ui.panel.config.updates.show_skipped")} .selected=${this._showSkipped}
</mwc-list-item> >
${this.hass.localize("ui.panel.config.updates.show_skipped")}
</ha-check-list-item>
${this._supervisorInfo?.channel !== "dev" ${this._supervisorInfo?.channel !== "dev"
? html` ? html`
<mwc-list-item id="beta"> <li divider role="separator"></li>
<mwc-list-item @request-selected=${this._toggleBeta}>
${this._supervisorInfo?.channel === "stable" ${this._supervisorInfo?.channel === "stable"
? this.hass.localize("ui.panel.config.updates.join_beta") ? this.hass.localize("ui.panel.config.updates.join_beta")
: this.hass.localize( : this.hass.localize(
@ -122,18 +126,21 @@ class HaConfigSectionUpdates extends LitElement {
`; `;
} }
private _handleAction(ev: CustomEvent<ActionDetail>) { private _toggleSkipped(ev: CustomEvent<RequestSelectedDetail>): void {
switch (ev.detail.index) { if (ev.detail.source !== "property") {
case 0: return;
this._showSkipped = !this._showSkipped;
break;
case 1:
this._toggleBeta();
break;
} }
this._showSkipped = !this._showSkipped;
} }
private async _toggleBeta(): Promise<void> { private async _toggleBeta(
ev: CustomEvent<RequestSelectedDetail>
): Promise<void> {
if (!shouldHandleRequestSelectedEvent(ev)) {
return;
}
if (this._supervisorInfo!.channel === "stable") { if (this._supervisorInfo!.channel === "stable") {
const confirmed = await showConfirmationDialog(this, { const confirmed = await showConfirmationDialog(this, {
title: this.hass.localize("ui.dialogs.join_beta_channel.title"), title: this.hass.localize("ui.dialogs.join_beta_channel.title"),
@ -206,6 +213,9 @@ class HaConfigSectionUpdates extends LitElement {
.no-updates { .no-updates {
padding: 16px; padding: 16px;
} }
li[divider] {
border-bottom-color: var(--divider-color);
}
`; `;
} }

View File

@ -1,5 +1,5 @@
import "@material/mwc-button/mwc-button"; import "@material/mwc-button/mwc-button";
import { CSSResultGroup, html, LitElement, TemplateResult } from "lit"; import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
import { customElement, property, state } from "lit/decorators"; import { customElement, property, state } from "lit/decorators";
import { fireEvent } from "../../../common/dom/fire_event"; import { fireEvent } from "../../../common/dom/fire_event";
import "../../../components/ha-card"; import "../../../components/ha-card";
@ -31,13 +31,14 @@ class DialogIntegrationStartup extends LitElement {
return html` return html`
<ha-dialog <ha-dialog
open open
@closed=${this.closeDialog}
scrimClickAction scrimClickAction
escapeKeyAction escapeKeyAction
hideActions
.heading=${createCloseHeading( .heading=${createCloseHeading(
this.hass, this.hass,
this.hass.localize("ui.panel.config.repairs.integration_startup_time") this.hass.localize("ui.panel.config.repairs.integration_startup_time")
)} )}
@closed=${this.closeDialog}
> >
<integrations-startup-time <integrations-startup-time
.hass=${this.hass} .hass=${this.hass}
@ -47,7 +48,14 @@ class DialogIntegrationStartup extends LitElement {
`; `;
} }
static styles: CSSResultGroup = haStyleDialog; static styles: CSSResultGroup = [
haStyleDialog,
css`
ha-dialog {
--dialog-content-padding: 0;
}
`,
];
} }
declare global { declare global {

View File

@ -7,6 +7,7 @@ import memoizeOne from "memoize-one";
import { isComponentLoaded } from "../../../common/config/is_component_loaded"; import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { shouldHandleRequestSelectedEvent } from "../../../common/mwc/handle-request-selected-event"; import { shouldHandleRequestSelectedEvent } from "../../../common/mwc/handle-request-selected-event";
import "../../../components/ha-card"; import "../../../components/ha-card";
import "../../../components/ha-check-list-item";
import { import {
RepairsIssue, RepairsIssue,
severitySort, severitySort,
@ -65,12 +66,20 @@ class HaConfigRepairsDashboard extends SubscribeMixin(LitElement) {
.header=${this.hass.localize("ui.panel.config.repairs.caption")} .header=${this.hass.localize("ui.panel.config.repairs.caption")}
> >
<div slot="toolbar-icon"> <div slot="toolbar-icon">
<ha-button-menu corner="BOTTOM_START"> <ha-button-menu corner="BOTTOM_START" multi>
<ha-icon-button <ha-icon-button
slot="trigger" slot="trigger"
.label=${this.hass.localize("ui.common.menu")} .label=${this.hass.localize("ui.common.menu")}
.path=${mdiDotsVertical} .path=${mdiDotsVertical}
></ha-icon-button> ></ha-icon-button>
<ha-check-list-item
left
@request-selected=${this._toggleIgnored}
.selected=${this._showIgnored}
>
${this.hass.localize("ui.panel.config.repairs.show_ignored")}
</ha-check-list-item>
<li divider role="separator"></li>
${isComponentLoaded(this.hass, "system_health") || ${isComponentLoaded(this.hass, "system_health") ||
isComponentLoaded(this.hass, "hassio") isComponentLoaded(this.hass, "hassio")
? html` ? html`
@ -90,11 +99,6 @@ class HaConfigRepairsDashboard extends SubscribeMixin(LitElement) {
"ui.panel.config.repairs.integration_startup_time" "ui.panel.config.repairs.integration_startup_time"
)} )}
</mwc-list-item> </mwc-list-item>
<mwc-list-item @request-selected=${this._toggleIgnored}>
${this._showIgnored
? this.hass.localize("ui.panel.config.repairs.hide_ignored")
: this.hass.localize("ui.panel.config.repairs.show_ignored")}
</mwc-list-item>
</ha-button-menu> </ha-button-menu>
</div> </div>
<div class="content"> <div class="content">
@ -143,7 +147,7 @@ class HaConfigRepairsDashboard extends SubscribeMixin(LitElement) {
} }
private _toggleIgnored(ev: CustomEvent<RequestSelectedDetail>): void { private _toggleIgnored(ev: CustomEvent<RequestSelectedDetail>): void {
if (!shouldHandleRequestSelectedEvent(ev)) { if (ev.detail.source !== "property") {
return; return;
} }
@ -177,6 +181,9 @@ class HaConfigRepairsDashboard extends SubscribeMixin(LitElement) {
.no-repairs { .no-repairs {
padding: 16px; padding: 16px;
} }
li[divider] {
border-bottom-color: var(--divider-color);
}
`; `;
} }

View File

@ -1220,8 +1220,7 @@
"version_available": "Version {version_available} is available", "version_available": "Version {version_available} is available",
"more_updates": "Show all updates", "more_updates": "Show all updates",
"show": "show", "show": "show",
"show_skipped": "Show skipped", "show_skipped": "Show skipped updates",
"hide_skipped": "Hide skipped",
"join_beta": "[%key:supervisor::system::supervisor::join_beta_action%]", "join_beta": "[%key:supervisor::system::supervisor::join_beta_action%]",
"leave_beta": "[%key:supervisor::system::supervisor::leave_beta_action%]", "leave_beta": "[%key:supervisor::system::supervisor::leave_beta_action%]",
"skipped": "Skipped" "skipped": "Skipped"
@ -1232,8 +1231,7 @@
"title": "{count} {count, plural,\n one {repair}\n other {repairs}\n}", "title": "{count} {count, plural,\n one {repair}\n other {repairs}\n}",
"no_repairs": "There are currently no repairs available", "no_repairs": "There are currently no repairs available",
"more_repairs": "Show all repairs", "more_repairs": "Show all repairs",
"show_ignored": "Show ignored", "show_ignored": "Show ignored repairs",
"hide_ignored": "Hide ignored",
"critical": "Critical", "critical": "Critical",
"error": "Error", "error": "Error",
"warning": "Warning", "warning": "Warning",