From 3857c53b7fd93b60aa3d9eb27dbae090e919acfa Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Mon, 24 Mar 2025 18:56:58 +0100 Subject: [PATCH] Use ha-md-button-menu in tabs subpage data table (#24738) --- src/layouts/hass-tabs-subpage-data-table.ts | 216 +++++++++----------- 1 file changed, 102 insertions(+), 114 deletions(-) diff --git a/src/layouts/hass-tabs-subpage-data-table.ts b/src/layouts/hass-tabs-subpage-data-table.ts index db63c30c7c..cd66b170a6 100644 --- a/src/layouts/hass-tabs-subpage-data-table.ts +++ b/src/layouts/hass-tabs-subpage-data-table.ts @@ -31,7 +31,6 @@ import "../components/ha-md-button-menu"; import "../components/ha-dialog"; import "../components/ha-dialog-header"; import "../components/ha-md-divider"; -import type { HaMenu } from "../components/ha-menu"; import "../components/ha-md-menu-item"; import "../components/search-input-outlined"; import type { HomeAssistant, Route } from "../types"; @@ -185,10 +184,6 @@ export class HaTabsSubpageDataTable extends KeyboardShortcutMixin(LitElement) { @query("ha-data-table", true) private _dataTable!: HaDataTable; - @query("#group-by-menu") private _groupByMenu!: HaMenu; - - @query("#sort-by-menu") private _sortByMenu!: HaMenu; - @query("search-input-outlined") private _searchInput!: HTMLElement; protected supportedShortcuts(): SupportedShortcuts { @@ -218,14 +213,6 @@ export class HaTabsSubpageDataTable extends KeyboardShortcutMixin(LitElement) { } } - private _toggleGroupBy() { - this._groupByMenu.open = !this._groupByMenu.open; - } - - private _toggleSortBy() { - this._sortByMenu.open = !this._sortByMenu.open; - } - protected render(): TemplateResult { const localize = this.localizeFunc || this.hass.localize; const showPane = this._showPaneController.value ?? !this.narrow; @@ -269,37 +256,113 @@ export class HaTabsSubpageDataTable extends KeyboardShortcutMixin(LitElement) { const sortByMenu = Object.values(this.columns).find((col) => col.sortable) ? html` - - - + + + + + ${Object.entries(this.columns).map(([id, column]) => + column.sortable + ? html` + + ${this._sortColumn === id + ? html` + + ` + : nothing} + ${column.title || column.label} + + ` + : nothing + )} + ` : nothing; const groupByMenu = Object.values(this.columns).find((col) => col.groupable) ? html` - - + + + + ${Object.entries(this.columns).map(([id, column]) => + column.groupable + ? html` + + ${column.title || column.label} + + ` + : nothing + )} + + ${localize("ui.components.subpage-data-table.dont_group_by")} + + + + + ${localize( + "ui.components.subpage-data-table.collapse_all_groups" + )} + + + + ${localize("ui.components.subpage-data-table.expand_all_groups")} + + ` : nothing; @@ -493,79 +556,6 @@ export class HaTabsSubpageDataTable extends KeyboardShortcutMixin(LitElement) { `}
- - ${Object.entries(this.columns).map(([id, column]) => - column.groupable - ? html` - - ${column.title || column.label} - - ` - : nothing - )} - - ${localize("ui.components.subpage-data-table.dont_group_by")} - - - - - ${localize("ui.components.subpage-data-table.collapse_all_groups")} - - - - ${localize("ui.components.subpage-data-table.expand_all_groups")} - - - - ${Object.entries(this.columns).map(([id, column]) => - column.sortable - ? html` - - ${this._sortColumn === id - ? html` - - ` - : nothing} - ${column.title || column.label} - - ` - : nothing - )} - ${this.showFilters && !showPane ? html`