Reorder configuration (#10817)

This commit is contained in:
Joakim Sørensen 2021-12-07 00:10:50 +01:00 committed by GitHub
parent 2459477ec4
commit 5c78b74005
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 49 additions and 50 deletions

View File

@ -224,7 +224,7 @@ class HaBlueprintOverview extends LitElement {
.narrow=${this.narrow} .narrow=${this.narrow}
back-path="/config" back-path="/config"
.route=${this.route} .route=${this.route}
.tabs=${configSections.automations} .tabs=${configSections.blueprints}
.columns=${this._columns(this.narrow, this.hass.language)} .columns=${this._columns(this.narrow, this.hass.language)}
.data=${this._processedBlueprints(this.blueprints)} .data=${this._processedBlueprints(this.blueprints)}
id="entity_id" id="entity_id"

View File

@ -1,4 +1,4 @@
import { mdiCellphoneCog, mdiCloudLock } from "@mdi/js"; import { mdiCloudLock } from "@mdi/js";
import "@polymer/app-layout/app-header/app-header"; import "@polymer/app-layout/app-header/app-header";
import "@polymer/app-layout/app-toolbar/app-toolbar"; import "@polymer/app-layout/app-toolbar/app-toolbar";
import { import {
@ -110,29 +110,10 @@ class HaConfigDashboard extends LitElement {
></ha-config-navigation> ></ha-config-navigation>
` `
: ""} : ""}
${this._externalConfig?.hasSettingsScreen
? html`
<ha-config-navigation
.hass=${this.hass}
.narrow=${this.narrow}
.showAdvanced=${this.showAdvanced}
.pages=${[
{
path: "#external-app-configuration",
name: "Companion App",
description: "Location and notifications",
iconPath: mdiCellphoneCog,
iconColor: "#37474F",
core: true,
},
]}
@click=${this._handleExternalAppConfiguration}
></ha-config-navigation>
`
: ""}
<ha-config-navigation <ha-config-navigation
.hass=${this.hass} .hass=${this.hass}
.narrow=${this.narrow} .narrow=${this.narrow}
.externalConfig=${this._externalConfig}
.showAdvanced=${this.showAdvanced} .showAdvanced=${this.showAdvanced}
.pages=${configSections.dashboard} .pages=${configSections.dashboard}
></ha-config-navigation> ></ha-config-navigation>
@ -142,13 +123,6 @@ class HaConfigDashboard extends LitElement {
`; `;
} }
private _handleExternalAppConfiguration(ev: Event) {
ev.preventDefault();
this.hass.auth.external!.fireMessage({
type: "config_screen/show",
});
}
static get styles(): CSSResultGroup { static get styles(): CSSResultGroup {
return [ return [
haStyle, haStyle,

View File

@ -6,6 +6,7 @@ import { canShowPage } from "../../../common/config/can_show_page";
import "../../../components/ha-card"; import "../../../components/ha-card";
import "../../../components/ha-icon-next"; import "../../../components/ha-icon-next";
import { CloudStatus, CloudStatusLoggedIn } from "../../../data/cloud"; import { CloudStatus, CloudStatusLoggedIn } from "../../../data/cloud";
import { ExternalConfig } from "../../../external_app/external_config";
import { PageNavigation } from "../../../layouts/hass-tabs-subpage"; import { PageNavigation } from "../../../layouts/hass-tabs-subpage";
import { HomeAssistant } from "../../../types"; import { HomeAssistant } from "../../../types";
@ -19,10 +20,16 @@ class HaConfigNavigation extends LitElement {
@property() public pages!: PageNavigation[]; @property() public pages!: PageNavigation[];
@property() public externalConfig?: ExternalConfig;
protected render(): TemplateResult { protected render(): TemplateResult {
return html` return html`
${this.pages.map((page) => ${this.pages.map((page) =>
canShowPage(this.hass, page) (
page.path === "#external-app-configuration"
? this.externalConfig?.hasSettingsScreen
: canShowPage(this.hass, page)
)
? html` ? html`
<a href=${page.path} aria-role="option" tabindex="-1"> <a href=${page.path} aria-role="option" tabindex="-1">
<paper-icon-item @click=${this._entryClicked}> <paper-icon-item @click=${this._entryClicked}>
@ -77,6 +84,16 @@ class HaConfigNavigation extends LitElement {
private _entryClicked(ev) { private _entryClicked(ev) {
ev.currentTarget.blur(); ev.currentTarget.blur();
if (
ev.currentTarget.parentElement.href.endsWith(
"#external-app-configuration"
)
) {
ev.preventDefault();
this.hass.auth.external!.fireMessage({
type: "config_screen/show",
});
}
} }
static get styles(): CSSResultGroup { static get styles(): CSSResultGroup {

View File

@ -1,6 +1,7 @@
import { import {
mdiAccount, mdiAccount,
mdiBadgeAccountHorizontal, mdiBadgeAccountHorizontal,
mdiCellphoneCog,
mdiCog, mdiCog,
mdiDevices, mdiDevices,
mdiHomeAssistant, mdiHomeAssistant,
@ -57,22 +58,22 @@ export const configSections: { [name: string]: PageNavigation[] } = {
{ {
path: "/config/automation", path: "/config/automation",
name: "Automations & Scenes", name: "Automations & Scenes",
description: "Automations, blueprints, scenes and scripts", description: "Manage automations, scenes, scripts and helpers",
iconPath: mdiRobot, iconPath: mdiRobot,
iconColor: "#518C43", iconColor: "#518C43",
components: ["automation", "blueprint", "scene", "script"],
},
{
path: "/config/helpers",
name: "Automation Helpers",
description: "Elements that help build automations",
iconPath: mdiTools,
iconColor: "#4D2EA4",
core: true, core: true,
}, },
{
path: "/config/blueprint",
name: "Blueprints",
description: "Manage blueprints",
iconPath: mdiPaletteSwatch,
iconColor: "#64B5F6",
component: "blueprint",
},
{ {
path: "/hassio", path: "/hassio",
name: "Add-ons & Backups (Supervisor)", name: "Add-ons, Backups & Supervisor",
description: "Create backups, check logs or reboot your system", description: "Create backups, check logs or reboot your system",
iconPath: mdiHomeAssistant, iconPath: mdiHomeAssistant,
iconColor: "#4084CD", iconColor: "#4084CD",
@ -111,6 +112,13 @@ export const configSections: { [name: string]: PageNavigation[] } = {
iconColor: "#E48629", iconColor: "#E48629",
components: ["person", "zone", "users"], components: ["person", "zone", "users"],
}, },
{
path: "#external-app-configuration",
name: "Companion App",
description: "Location and notifications",
iconPath: mdiCellphoneCog,
iconColor: "#8E24AA",
},
{ {
path: "/config/core", path: "/config/core",
name: "Settings", name: "Settings",
@ -155,13 +163,6 @@ export const configSections: { [name: string]: PageNavigation[] } = {
}, },
], ],
automations: [ automations: [
{
component: "blueprint",
path: "/config/blueprint",
translationKey: "ui.panel.config.blueprint.caption",
iconPath: mdiPaletteSwatch,
iconColor: "#518C43",
},
{ {
component: "automation", component: "automation",
path: "/config/automation", path: "/config/automation",
@ -183,8 +184,6 @@ export const configSections: { [name: string]: PageNavigation[] } = {
iconPath: mdiScriptText, iconPath: mdiScriptText,
iconColor: "#518C43", iconColor: "#518C43",
}, },
],
helpers: [
{ {
component: "helpers", component: "helpers",
path: "/config/helpers", path: "/config/helpers",
@ -194,6 +193,15 @@ export const configSections: { [name: string]: PageNavigation[] } = {
core: true, core: true,
}, },
], ],
blueprints: [
{
component: "blueprint",
path: "/config/blueprint",
translationKey: "ui.panel.config.blueprint.caption",
iconPath: mdiPaletteSwatch,
iconColor: "#518C43",
},
],
tags: [ tags: [
{ {
component: "tag", component: "tag",

View File

@ -132,7 +132,7 @@ export class HaConfigHelpers extends LitElement {
.narrow=${this.narrow} .narrow=${this.narrow}
back-path="/config" back-path="/config"
.route=${this.route} .route=${this.route}
.tabs=${configSections.helpers} .tabs=${configSections.automations}
.columns=${this._columns(this.narrow, this.hass.language)} .columns=${this._columns(this.narrow, this.hass.language)}
.data=${this._getItems(this._stateItems)} .data=${this._getItems(this._stateItems)}
@row-click=${this._openEditDialog} @row-click=${this._openEditDialog}