v6.5.0
This commit is contained in:
@@ -1,5 +1,13 @@
|
|||||||
# Changelog
|
# 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)
|
## 2026-02-16 - 6.4.5 - fix(remoteingress)
|
||||||
mark remote ingress data actions as row actions and bump @design.estate/dees-catalog dependency
|
mark remote ingress data actions as row actions and bump @design.estate/dees-catalog dependency
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@serve.zone/dcrouter",
|
"name": "@serve.zone/dcrouter",
|
||||||
"private": false,
|
"private": false,
|
||||||
"version": "6.4.5",
|
"version": "6.5.0",
|
||||||
"description": "A multifaceted routing service handling mail and SMS delivery functions.",
|
"description": "A multifaceted routing service handling mail and SMS delivery functions.",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"exports": {
|
"exports": {
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@serve.zone/dcrouter',
|
name: '@serve.zone/dcrouter',
|
||||||
version: '6.4.5',
|
version: '6.5.0',
|
||||||
description: 'A multifaceted routing service handling mail and SMS delivery functions.'
|
description: 'A multifaceted routing service handling mail and SMS delivery functions.'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@serve.zone/dcrouter',
|
name: '@serve.zone/dcrouter',
|
||||||
version: '6.4.5',
|
version: '6.5.0',
|
||||||
description: 'A multifaceted routing service handling mail and SMS delivery functions.'
|
description: 'A multifaceted routing service handling mail and SMS delivery functions.'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -192,6 +192,43 @@ export class OpsViewRemoteIngress extends DeesElement {
|
|||||||
lastHeartbeat: this.getLastHeartbeat(edge.id),
|
lastHeartbeat: this.getLastHeartbeat(edge.id),
|
||||||
})}
|
})}
|
||||||
.dataActions=${[
|
.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`
|
||||||
|
<dees-form>
|
||||||
|
<dees-input-text .key=${'name'} .label=${'Name'} .required=${true}></dees-input-text>
|
||||||
|
<dees-input-text .key=${'listenPorts'} .label=${'Listen Ports (comma-separated)'} .required=${true} .value=${'443,25'}></dees-input-text>
|
||||||
|
<dees-input-text .key=${'tags'} .label=${'Tags (comma-separated, optional)'}></dees-input-text>
|
||||||
|
</dees-form>
|
||||||
|
`,
|
||||||
|
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',
|
name: 'Regenerate Secret',
|
||||||
iconName: 'lucide:key',
|
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`
|
|
||||||
<dees-form>
|
|
||||||
<dees-input-text .key=${'name'} .label=${'Name'} .required=${true}></dees-input-text>
|
|
||||||
<dees-input-text .key=${'listenPorts'} .label=${'Listen Ports (comma-separated)'} .required=${true} .value=${'443,25'}></dees-input-text>
|
|
||||||
<dees-input-text .key=${'tags'} .label=${'Tags (comma-separated, optional)'}></dees-input-text>
|
|
||||||
</dees-form>
|
|
||||||
`,
|
|
||||||
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,
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
></dees-table>
|
></dees-table>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
|||||||
Reference in New Issue
Block a user