From 018efa32f6be1ac29414536805c2e8d6b47640df Mon Sep 17 00:00:00 2001 From: Juergen Kunz Date: Mon, 16 Feb 2026 22:42:30 +0000 Subject: [PATCH] v6.5.0 --- changelog.md | 8 +++ package.json | 2 +- ts/00_commitinfo_data.ts | 2 +- ts_web/00_commitinfo_data.ts | 2 +- ts_web/elements/ops-view-remoteingress.ts | 69 ++++++++++++----------- 5 files changed, 48 insertions(+), 35 deletions(-) diff --git a/changelog.md b/changelog.md index f1fb367..de9c054 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,13 @@ # Changelog +## 2026-02-16 - 6.5.0 - feat(ops-view-remoteingress) +add 'Create Edge Node' header action to remote ingress table and remove duplicate createNewAction + +- Add a 'Create Edge Node' header action in dataActions that opens DeesModal to collect name, listenPorts and tags +- Parse comma-separated listenPorts into integer array and normalize optional tags +- Dispatch appstate.createRemoteIngressAction with the collected payload +- Remove the previously duplicated createNewAction prop from the dees-table + ## 2026-02-16 - 6.4.5 - fix(remoteingress) mark remote ingress data actions as row actions and bump @design.estate/dees-catalog dependency diff --git a/package.json b/package.json index d8dcd1f..3c69909 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@serve.zone/dcrouter", "private": false, - "version": "6.4.5", + "version": "6.5.0", "description": "A multifaceted routing service handling mail and SMS delivery functions.", "type": "module", "exports": { diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 31ed328..b133585 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@serve.zone/dcrouter', - version: '6.4.5', + version: '6.5.0', description: 'A multifaceted routing service handling mail and SMS delivery functions.' } diff --git a/ts_web/00_commitinfo_data.ts b/ts_web/00_commitinfo_data.ts index 31ed328..b133585 100644 --- a/ts_web/00_commitinfo_data.ts +++ b/ts_web/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@serve.zone/dcrouter', - version: '6.4.5', + version: '6.5.0', description: 'A multifaceted routing service handling mail and SMS delivery functions.' } diff --git a/ts_web/elements/ops-view-remoteingress.ts b/ts_web/elements/ops-view-remoteingress.ts index 0978b9b..14db9b0 100644 --- a/ts_web/elements/ops-view-remoteingress.ts +++ b/ts_web/elements/ops-view-remoteingress.ts @@ -192,6 +192,43 @@ export class OpsViewRemoteIngress extends DeesElement { lastHeartbeat: this.getLastHeartbeat(edge.id), })} .dataActions=${[ + { + name: 'Create Edge Node', + iconName: 'lucide:plus', + type: ['header'], + actionFunc: async () => { + const { DeesModal } = await import('@design.estate/dees-catalog'); + const result = await DeesModal.createAndShow({ + heading: 'Create Edge Node', + content: html` + + + + + + `, + menuOptions: [], + }); + if (result) { + const formData = result as any; + const ports = (formData.name ? formData.listenPorts : '443') + .split(',') + .map((p: string) => parseInt(p.trim(), 10)) + .filter((p: number) => !isNaN(p)); + const tags = formData.tags + ? formData.tags.split(',').map((t: string) => t.trim()).filter(Boolean) + : undefined; + await appstate.remoteIngressStatePart.dispatchAction( + appstate.createRemoteIngressAction, + { + name: formData.name, + listenPorts: ports, + tags, + }, + ); + } + }, + }, { name: 'Regenerate Secret', iconName: 'lucide:key', @@ -215,38 +252,6 @@ export class OpsViewRemoteIngress extends DeesElement { }, }, ]} - .createNewAction=${async () => { - const { DeesModal } = await import('@design.estate/dees-catalog'); - const result = await DeesModal.createAndShow({ - heading: 'Create Edge Node', - content: html` - - - - - - `, - menuOptions: [], - }); - if (result) { - const formData = result as any; - const ports = (formData.name ? formData.listenPorts : '443') - .split(',') - .map((p: string) => parseInt(p.trim(), 10)) - .filter((p: number) => !isNaN(p)); - const tags = formData.tags - ? formData.tags.split(',').map((t: string) => t.trim()).filter(Boolean) - : undefined; - await appstate.remoteIngressStatePart.dispatchAction( - appstate.createRemoteIngressAction, - { - name: formData.name, - listenPorts: ports, - tags, - }, - ); - } - }} > `;