From e2788d75a1e1010f7a82f6ad7be081eeaca1ff2f Mon Sep 17 00:00:00 2001 From: Bastian Date: Mon, 16 Jun 2025 10:46:05 +0200 Subject: [PATCH] Add ip sort functionality to dhcp config panel datatable --- src/components/data-table/sort-filter-worker.ts | 6 ++++-- .../integration-panels/dhcp/dhcp-config-panel.ts | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/components/data-table/sort-filter-worker.ts b/src/components/data-table/sort-filter-worker.ts index b34ec899ff..3436993249 100644 --- a/src/components/data-table/sort-filter-worker.ts +++ b/src/components/data-table/sort-filter-worker.ts @@ -1,5 +1,5 @@ import { expose } from "comlink"; -import { stringCompare } from "../../common/string/compare"; +import { stringCompare, ipCompare } from "../../common/string/compare"; import { stripDiacritics } from "../../common/string/strip-diacritics"; import type { ClonedDataTableColumnData, @@ -57,7 +57,9 @@ const sortData = ( if (column.type === "numeric") { valA = isNaN(valA) ? undefined : Number(valA); valB = isNaN(valB) ? undefined : Number(valB); - } else if (typeof valA === "string" && typeof valB === "string") { + } else if (column.type === "ip") { + return sort * ipCompare(valA, valB); + } else if (typeof valA === "string" && typeof valB === "string") { return sort * stringCompare(valA, valB, language); } diff --git a/src/panels/config/integrations/integration-panels/dhcp/dhcp-config-panel.ts b/src/panels/config/integrations/integration-panels/dhcp/dhcp-config-panel.ts index 683719ee43..fdf8768c6f 100644 --- a/src/panels/config/integrations/integration-panels/dhcp/dhcp-config-panel.ts +++ b/src/panels/config/integrations/integration-panels/dhcp/dhcp-config-panel.ts @@ -60,6 +60,7 @@ export class DHCPConfigPanel extends SubscribeMixin(LitElement) { title: localize("ui.panel.config.dhcp.ip_address"), filterable: true, sortable: true, + type: "ip", }, };