diff --git a/src/panels/config/scene/ha-scene-dashboard.ts b/src/panels/config/scene/ha-scene-dashboard.ts index 07ca40e110..b112b0047c 100644 --- a/src/panels/config/scene/ha-scene-dashboard.ts +++ b/src/panels/config/scene/ha-scene-dashboard.ts @@ -11,9 +11,13 @@ import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit"; import { customElement, property, state } from "lit/decorators"; import { ifDefined } from "lit/directives/if-defined"; import memoizeOne from "memoize-one"; -import { fireEvent } from "../../../common/dom/fire_event"; +import { fireEvent, HASSDomEvent } from "../../../common/dom/fire_event"; import { computeStateName } from "../../../common/entity/compute_state_name"; -import { DataTableColumnContainer } from "../../../components/data-table/ha-data-table"; +import { navigate } from "../../../common/navigate"; +import { + DataTableColumnContainer, + RowClickedEvent, +} from "../../../components/data-table/ha-data-table"; import "../../../components/ha-button-related-filter-menu"; import "../../../components/ha-fab"; import "../../../components/ha-icon-button"; @@ -165,6 +169,8 @@ class HaSceneDashboard extends LitElement { )} @clear-filter=${this._clearFilter} hasFab + clickable + @row-click=${this._handleRowClicked} > ) { + const scene = this.scenes.find((a) => a.entity_id === ev.detail.id); + + if (scene?.attributes.id) { + navigate(`/config/scene/edit/${scene?.attributes.id}`); + } + } + private _relatedFilterChanged(ev: CustomEvent) { this._filterValue = ev.detail.value; if (!this._filterValue) { diff --git a/src/panels/config/scene/ha-scene-editor.ts b/src/panels/config/scene/ha-scene-editor.ts index 584792533f..d693bf2417 100644 --- a/src/panels/config/scene/ha-scene-editor.ts +++ b/src/panels/config/scene/ha-scene-editor.ts @@ -63,13 +63,13 @@ import { showAlertDialog, showConfirmationDialog, } from "../../../dialogs/generic/show-dialog-box"; +import "../../../layouts/hass-subpage"; import { KeyboardShortcutMixin } from "../../../mixins/keyboard-shortcut-mixin"; import { SubscribeMixin } from "../../../mixins/subscribe-mixin"; import { haStyle } from "../../../resources/styles"; import { HomeAssistant, Route } from "../../../types"; import { showToast } from "../../../util/toast"; import "../ha-config-section"; -import { configSections } from "../ha-panel-config"; interface DeviceEntities { id: string; @@ -214,17 +214,16 @@ export class HaSceneEditor extends SubscribeMixin( this._deviceEntityLookup, this._deviceRegistryEntries ); - const name = this._scene - ? computeStateName(this._scene) - : this.hass.localize("ui.panel.config.scene.editor.default_name"); return html` - ${this._errors ? html`
${this._errors}
` : ""} - ${this.narrow ? html` ${name} ` : ""}
${this._config ? html` - - ${!this.narrow - ? html` ${name} ` - : ""} -
- ${this.hass.localize( - "ui.panel.config.scene.editor.introduction" - )} -
+
- +
@@ -486,7 +476,7 @@ export class HaSceneEditor extends SubscribeMixin( > - + `; } @@ -963,6 +953,16 @@ export class HaSceneEditor extends SubscribeMixin( ha-card { overflow: hidden; } + .container { + display: flex; + justify-content: center; + margin-top: 24px; + } + .container > * { + max-width: 1040px; + flex: 1 1 auto; + } + .errors { padding: 20px; font-weight: bold; diff --git a/src/panels/config/script/ha-script-editor.ts b/src/panels/config/script/ha-script-editor.ts index 08fa9ef75d..acfee65f3f 100644 --- a/src/panels/config/script/ha-script-editor.ts +++ b/src/panels/config/script/ha-script-editor.ts @@ -18,7 +18,7 @@ import { PropertyValues, TemplateResult, } from "lit"; -import { property, state, query } from "lit/decorators"; +import { property, query, state } from "lit/decorators"; import { classMap } from "lit/directives/class-map"; import memoizeOne from "memoize-one"; import { computeObjectId } from "../../../common/entity/compute_object_id"; @@ -51,13 +51,13 @@ import { } from "../../../data/script"; import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box"; import "../../../layouts/ha-app-layout"; +import "../../../layouts/hass-subpage"; import { KeyboardShortcutMixin } from "../../../mixins/keyboard-shortcut-mixin"; import { haStyle } from "../../../resources/styles"; import type { HomeAssistant, Route } from "../../../types"; import { documentationUrl } from "../../../util/documentation-url"; import { showToast } from "../../../util/toast"; import { HaDeviceAction } from "../automation/action/types/ha-automation-action-device_id"; -import { configSections } from "../ha-panel-config"; import "./blueprint-script-editor"; export class HaScriptEditor extends KeyboardShortcutMixin(LitElement) { @@ -168,12 +168,12 @@ export class HaScriptEditor extends KeyboardShortcutMixin(LitElement) { }; return html` - - ${this.narrow - ? html`${this._config?.alias}` - : ""}
- + `; } diff --git a/src/panels/config/script/ha-script-picker.ts b/src/panels/config/script/ha-script-picker.ts index 8131ca19e8..ab828534bd 100644 --- a/src/panels/config/script/ha-script-picker.ts +++ b/src/panels/config/script/ha-script-picker.ts @@ -11,10 +11,14 @@ import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit"; import { customElement, property, state } from "lit/decorators"; import memoizeOne from "memoize-one"; import { formatDateTime } from "../../../common/datetime/format_date_time"; -import { fireEvent } from "../../../common/dom/fire_event"; +import { fireEvent, HASSDomEvent } from "../../../common/dom/fire_event"; import { computeStateName } from "../../../common/entity/compute_state_name"; +import { navigate } from "../../../common/navigate"; import { computeRTL } from "../../../common/util/compute_rtl"; -import { DataTableColumnContainer } from "../../../components/data-table/ha-data-table"; +import { + DataTableColumnContainer, + RowClickedEvent, +} from "../../../components/data-table/ha-data-table"; import "../../../components/ha-button-related-filter-menu"; import "../../../components/ha-fab"; import "../../../components/ha-icon-button"; @@ -191,6 +195,8 @@ class HaScriptPicker extends LitElement { )} @clear-filter=${this._clearFilter} hasFab + clickable + @row-click=${this._handleRowClicked} > ) { + navigate(`/config/script/edit/${ev.detail.id}`); + } + private _runScript = async (ev) => { ev.stopPropagation(); const script = ev.currentTarget.script as HassEntity; diff --git a/src/translations/en.json b/src/translations/en.json index bb807ef13a..2bfdcb136d 100755 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -2331,7 +2331,6 @@ } }, "editor": { - "introduction": "Use scenes to bring your home to life.", "default_name": "New Scene", "load_error_not_editable": "Only scenes in scenes.yaml are editable.", "load_error_unknown": "Error loading scene ({err_no}).",