diff --git a/src/panels/lovelace/views/grid/hui-grid-card-options.ts b/src/panels/lovelace/views/grid/hui-grid-card-options.ts index 31fb8198cc..3d76fe7516 100644 --- a/src/panels/lovelace/views/grid/hui-grid-card-options.ts +++ b/src/panels/lovelace/views/grid/hui-grid-card-options.ts @@ -38,7 +38,6 @@ export class HuiGridCardOptions extends LitElement { protected render(): TemplateResult { return html` -
@@ -73,18 +72,17 @@ export class HuiGridCardOptions extends LitElement { aria-label=${this.hass!.localize( "ui.panel.lovelace.editor.edit_card.options" )} - title=${this.hass!.localize( + .title=${this.hass!.localize( "ui.panel.lovelace.editor.edit_card.options" )} > - + - ${this.hass!.localize( "ui.panel.lovelace.editor.edit_card.move" - )} + )} +
diff --git a/src/panels/lovelace/views/hui-grid-view.ts b/src/panels/lovelace/views/hui-grid-view.ts index 25796fba59..9a14627382 100644 --- a/src/panels/lovelace/views/hui-grid-view.ts +++ b/src/panels/lovelace/views/hui-grid-view.ts @@ -26,6 +26,7 @@ import type { HomeAssistant } from "../../../types"; import { computeCardSize } from "../common/compute-card-size"; import { HuiCardOptions } from "../components/hui-card-options"; import { showCreateCardDialog } from "../editor/card-editor/show-create-card-dialog"; +import { replaceView } from "../editor/config-util"; import type { Lovelace, LovelaceBadge, LovelaceCard } from "../types"; import { HuiGridCardOptions } from "./grid/hui-grid-card-options"; @@ -113,7 +114,7 @@ export class GridView extends LitElement implements LovelaceViewElement { .columns=${this._columns} .dragDisabled=${!this.lovelace?.editMode} .resizeDisabled=${!this.lovelace?.editMode} - @layout-changed=${(ev) => console.log(ev.detail)} + @item-changed=${this._saveLayout} > ${this.lovelace?.editMode ? html` @@ -183,6 +184,18 @@ export class GridView extends LitElement implements LovelaceViewElement { } } + private async _saveLayout(ev: CustomEvent): Promise { + console.log("save"); + + const viewConf: LovelaceViewConfig = { + ...this._config, + layout: ev.detail.layout, + }; + await this.lovelace?.saveConfig( + replaceView(this.lovelace!.config, this.index, viewConf) + ); + } + private _itemRenderer = (key: string): TemplateResult => { if (!this._cards) { return html``;