Set initial focus for supervisor dialogs (#11710)

This commit is contained in:
Steve Repsher 2022-02-21 11:02:55 -05:00 committed by GitHub
parent 6cac7eeff0
commit 2281f5bafa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 26 additions and 5 deletions

View File

@ -1,7 +1,7 @@
import { mdiFolder, mdiHomeAssistant, mdiPuzzle } from "@mdi/js"; import { mdiFolder, mdiHomeAssistant, mdiPuzzle } from "@mdi/js";
import { PaperInputElement } from "@polymer/paper-input/paper-input"; import { PaperInputElement } from "@polymer/paper-input/paper-input";
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit"; import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
import { customElement, property } from "lit/decorators"; import { customElement, property, query } from "lit/decorators";
import { atLeastVersion } from "../../../src/common/config/version"; import { atLeastVersion } from "../../../src/common/config/version";
import { formatDate } from "../../../src/common/datetime/format_date"; import { formatDate } from "../../../src/common/datetime/format_date";
import { formatDateTime } from "../../../src/common/datetime/format_date_time"; import { formatDateTime } from "../../../src/common/datetime/format_date_time";
@ -92,6 +92,8 @@ export class SupervisorBackupContent extends LitElement {
@property() public confirmBackupPassword = ""; @property() public confirmBackupPassword = "";
@query("paper-input, ha-radio, ha-checkbox", true) private _focusTarget;
public willUpdate(changedProps) { public willUpdate(changedProps) {
super.willUpdate(changedProps); super.willUpdate(changedProps);
if (!this.hasUpdated) { if (!this.hasUpdated) {
@ -109,6 +111,10 @@ export class SupervisorBackupContent extends LitElement {
} }
} }
public override focus() {
this._focusTarget?.focus();
}
private _localize = (string: string) => private _localize = (string: string) =>
this.supervisor?.localize(`backup.${string}`) || this.supervisor?.localize(`backup.${string}`) ||
this.localize!(`ui.panel.page-onboarding.restore.${string}`); this.localize!(`ui.panel.page-onboarding.restore.${string}`);

View File

@ -64,6 +64,7 @@ export class DialogHassioBackupUpload
.path=${mdiClose} .path=${mdiClose}
slot="actionItems" slot="actionItems"
dialogAction="cancel" dialogAction="cancel"
dialogInitialFocus
></ha-icon-button> ></ha-icon-button>
</ha-header-bar> </ha-header-bar>
</div> </div>

View File

@ -92,6 +92,7 @@ class HassioBackupDialog
.backup=${this._backup} .backup=${this._backup}
.onboarding=${this._dialogParams.onboarding || false} .onboarding=${this._dialogParams.onboarding || false}
.localize=${this._dialogParams.localize} .localize=${this._dialogParams.localize}
dialogInitialFocus
> >
</supervisor-backup-content>`} </supervisor-backup-content>`}
${this._error ${this._error

View File

@ -61,6 +61,7 @@ class HassioCreateBackupDialog extends LitElement {
: html`<supervisor-backup-content : html`<supervisor-backup-content
.hass=${this.hass} .hass=${this.hass}
.supervisor=${this._dialogParams.supervisor} .supervisor=${this._dialogParams.supervisor}
dialogInitialFocus
> >
</supervisor-backup-content>`} </supervisor-backup-content>`}
${this._error ${this._error

View File

@ -94,6 +94,7 @@ class HassioDatadiskDialog extends LitElement {
"dialog.datadisk_move.select_device" "dialog.datadisk_move.select_device"
)} )}
@selected=${this._select_device} @selected=${this._select_device}
dialogInitialFocus
> >
${this.devices.map( ${this.devices.map(
(device) => (device) =>
@ -111,7 +112,11 @@ class HassioDatadiskDialog extends LitElement {
"dialog.datadisk_move.no_devices" "dialog.datadisk_move.no_devices"
)} )}
<mwc-button slot="secondaryAction" @click=${this.closeDialog}> <mwc-button
slot="secondaryAction"
@click=${this.closeDialog}
dialogInitialFocus
>
${this.dialogParams.supervisor.localize( ${this.dialogParams.supervisor.localize(
"dialog.datadisk_move.cancel" "dialog.datadisk_move.cancel"
)} )}

View File

@ -80,7 +80,7 @@ class HassioHardwareDialog extends LitElement {
></ha-icon-button> ></ha-icon-button>
<search-input <search-input
.hass=${this.hass} .hass=${this.hass}
autofocus dialogInitialFocus
no-label-float no-label-float
.filter=${this._filter} .filter=${this._filter}
@value-changed=${this._handleSearchChange} @value-changed=${this._handleSearchChange}

View File

@ -37,7 +37,10 @@ class HassioMarkdownDialog extends LitElement {
@closed=${this.closeDialog} @closed=${this.closeDialog}
.heading=${createCloseHeading(this.hass, this.title)} .heading=${createCloseHeading(this.hass, this.title)}
> >
<ha-markdown .content=${this.content || ""}></ha-markdown> <ha-markdown
.content=${this.content || ""}
dialogInitialFocus
></ha-markdown>
</ha-dialog> </ha-dialog>
`; `;
} }

View File

@ -119,6 +119,7 @@ export class DialogHassioNetwork
html`<mwc-tab html`<mwc-tab
.id=${device.interface} .id=${device.interface}
.label=${device.interface} .label=${device.interface}
dialogInitialFocus
> >
</mwc-tab>` </mwc-tab>`
)} )}
@ -315,6 +316,7 @@ export class DialogHassioNetwork
value="auto" value="auto"
name="${version}method" name="${version}method"
.checked=${this._interface![version]?.method === "auto"} .checked=${this._interface![version]?.method === "auto"}
dialogInitialFocus
> >
</ha-radio> </ha-radio>
</ha-formfield> </ha-formfield>

View File

@ -80,6 +80,7 @@ class HassioRegistriesDialog extends LitElement {
.schema=${SCHEMA} .schema=${SCHEMA}
@value-changed=${this._valueChanged} @value-changed=${this._valueChanged}
.computeLabel=${this._computeLabel} .computeLabel=${this._computeLabel}
dialogInitialFocus
></ha-form> ></ha-form>
<div class="action"> <div class="action">
<mwc-button <mwc-button
@ -124,7 +125,7 @@ class HassioRegistriesDialog extends LitElement {
</ha-alert> </ha-alert>
`} `}
<div class="action"> <div class="action">
<mwc-button @click=${this._addRegistry}> <mwc-button @click=${this._addRegistry} dialogInitialFocus>
${this.supervisor.localize( ${this.supervisor.localize(
"dialog.registries.add_new_registry" "dialog.registries.add_new_registry"
)} )}

View File

@ -139,6 +139,7 @@ class HassioRepositoriesDialog extends LitElement {
"dialog.repositories.add" "dialog.repositories.add"
)} )}
@keydown=${this._handleKeyAdd} @keydown=${this._handleKeyAdd}
dialogInitialFocus
></paper-input> ></paper-input>
<mwc-button @click=${this._addRepository}> <mwc-button @click=${this._addRepository}>
${this._processing ${this._processing