diff --git a/apps/frontend/src/components/ui/admin/TransferModal.vue b/apps/frontend/src/components/ui/admin/TransferModal.vue index bc5801087..5778faf39 100644 --- a/apps/frontend/src/components/ui/admin/TransferModal.vue +++ b/apps/frontend/src/components/ui/admin/TransferModal.vue @@ -46,20 +46,20 @@ Node hostnames * - Add nodes to transfer. + Add nodes to transfer (comma or space-separated).
- @@ -282,18 +282,37 @@ function hide() { modal.value?.hide() } -function addNode() { - const v = nodeInput.value.trim() - if (!v) return - if (!nodeHostnames.value.includes(v)) { +function addNodes() { + const input = nodeInput.value.trim() + if (!input) return + + const nodes = input + .split(/[,\s]+/) + .map((s) => s.trim()) + .filter((s) => s.length > 0) + + const unknownNodes: string[] = [] + const addedNodes: string[] = [] + + for (const v of nodes) { + if (!nodeHostnames.value.includes(v)) { + unknownNodes.push(v) + continue + } + if (!selectedNodes.value.includes(v)) { + selectedNodes.value.push(v) + addedNodes.push(v) + } + } + + if (unknownNodes.length > 0) { addNotification({ - title: 'Unknown node', - text: "This hostname doesn't exist", + title: `Unknown node${unknownNodes.length > 1 ? 's' : ''}`, + text: unknownNodes.join(', '), type: 'error', }) - return } - if (!selectedNodes.value.includes(v)) selectedNodes.value.push(v) + nodeInput.value = '' }