feat(frontend): multi-node cloning initial implementation (#6216)

* feat(frontend): multinode cloning initial implementation

* fix(frontend): harden live node detection in multinode cloning

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix(frontend): add aria label to clone inbound modal

* fix(frontend): shallow copy inbound settings during cloning

* fix(frontend): avoid potential port conflict during testing

* fix(frontend): selection buttons and websocket selection reset fix

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
Lex Rivera
2026-08-15 18:36:25 +03:00
committed by GitHub
parent 03950b1295
commit 8c8556ab32
20 changed files with 597 additions and 46 deletions
+2
View File
@@ -412,6 +412,8 @@
"inboundCreateSuccess": "تم إنشاء الوارد بنجاح",
"bulkDeleted": "تم حذف {count} إدخال",
"bulkDeletedMixed": "تم حذف {ok}, وفشل {failed}",
"clonedMany": "تم استنساخ {count} إدخال",
"clonedMixed": "تم استنساخ {ok}, وفشل {failed}",
"inboundDeleteSuccess": "تم حذف الوارد بنجاح",
"inboundClientAddSuccess": "تمت إضافة عميل(عملاء) وارد",
"inboundClientDeleteSuccess": "تم حذف عميل وارد",
+2
View File
@@ -412,6 +412,8 @@
"inboundCreateSuccess": "Inbound has been successfully created.",
"bulkDeleted": "{count} inbounds deleted",
"bulkDeletedMixed": "{ok} deleted, {failed} failed",
"clonedMany": "{count} inbounds cloned",
"clonedMixed": "{ok} cloned, {failed} failed",
"inboundDeleteSuccess": "Inbound has been successfully deleted.",
"inboundClientAddSuccess": "Inbound client(s) have been added.",
"inboundClientDeleteSuccess": "Inbound client has been deleted.",
+2
View File
@@ -412,6 +412,8 @@
"inboundCreateSuccess": "Entrada creada correctamente",
"bulkDeleted": "{count} inbounds eliminados",
"bulkDeletedMixed": "{ok} eliminados, {failed} fallidos",
"clonedMany": "{count} inbounds clonados",
"clonedMixed": "{ok} clonados, {failed} fallidos",
"inboundDeleteSuccess": "Entrada eliminada correctamente",
"inboundClientAddSuccess": "Cliente(s) de entrada añadido(s)",
"inboundClientDeleteSuccess": "Cliente de entrada eliminado",
+2
View File
@@ -412,6 +412,8 @@
"inboundCreateSuccess": "ورودی با موفقیت ایجاد شد",
"bulkDeleted": "{count} اینباند حذف شد",
"bulkDeletedMixed": "{ok} حذف، {failed} ناموفق",
"clonedMany": "{count} اینباند کلون شد",
"clonedMixed": "{ok} کلون، {failed} ناموفق",
"inboundDeleteSuccess": "ورودی با موفقیت حذف شد",
"inboundClientAddSuccess": "کلاینت(های) ورودی اضافه شدند",
"inboundClientDeleteSuccess": "کلاینت ورودی حذف شد",
+2
View File
@@ -412,6 +412,8 @@
"inboundCreateSuccess": "Inbound berhasil dibuat",
"bulkDeleted": "{count} inbound dihapus",
"bulkDeletedMixed": "{ok} dihapus, {failed} gagal",
"clonedMany": "{count} inbound digandakan",
"clonedMixed": "{ok} digandakan, {failed} gagal",
"inboundDeleteSuccess": "Inbound berhasil dihapus",
"inboundClientAddSuccess": "Klien inbound telah ditambahkan",
"inboundClientDeleteSuccess": "Klien inbound telah dihapus",
+2
View File
@@ -412,6 +412,8 @@
"inboundCreateSuccess": "インバウンドが正常に作成されました",
"bulkDeleted": "{count} 件のインバウンドを削除しました",
"bulkDeletedMixed": "{ok} 件削除、{failed} 件失敗",
"clonedMany": "{count} 件のインバウンドを複製しました",
"clonedMixed": "{ok} 件複製、{failed} 件失敗",
"inboundDeleteSuccess": "インバウンドが正常に削除されました",
"inboundClientAddSuccess": "インバウンドクライアントが追加されました",
"inboundClientDeleteSuccess": "インバウンドクライアントが削除されました",
+2
View File
@@ -412,6 +412,8 @@
"inboundCreateSuccess": "Entrada criada com sucesso",
"bulkDeleted": "{count} inbounds excluídos",
"bulkDeletedMixed": "{ok} excluídos, {failed} com falha",
"clonedMany": "{count} inbounds clonados",
"clonedMixed": "{ok} clonados, {failed} com falha",
"inboundDeleteSuccess": "Entrada excluída com sucesso",
"inboundClientAddSuccess": "Cliente(s) de entrada adicionado(s)",
"inboundClientDeleteSuccess": "Cliente de entrada excluído",
+2
View File
@@ -412,6 +412,8 @@
"inboundCreateSuccess": "Подключение успешно создано",
"bulkDeleted": "Удалено подключений: {count}",
"bulkDeletedMixed": "Удалено: {ok}, не удалось: {failed}",
"clonedMany": "Скопировано подключений: {count}",
"clonedMixed": "Скопировано: {ok}, не удалось: {failed}",
"inboundDeleteSuccess": "Подключение успешно удалено",
"inboundClientAddSuccess": "Клиент(ы) подключения добавлен(ы)",
"inboundClientDeleteSuccess": "Клиент подключения удалён",
+2
View File
@@ -412,6 +412,8 @@
"inboundCreateSuccess": "Gelen bağlantı başarıyla oluşturuldu.",
"bulkDeleted": "{count} gelen bağlantı silindi",
"bulkDeletedMixed": "{ok} silindi, {failed} başarısız",
"clonedMany": "{count} gelen bağlantı klonlandı",
"clonedMixed": "{ok} klonlandı, {failed} başarısız",
"inboundDeleteSuccess": "Gelen bağlantı başarıyla silindi.",
"inboundClientAddSuccess": "Gelen bağlantı kullanıcı(lar)ı eklendi.",
"inboundClientDeleteSuccess": "Gelen bağlantı kullanıcısı silindi.",
+2
View File
@@ -412,6 +412,8 @@
"inboundCreateSuccess": "Вхідне підключення успішно створено",
"bulkDeleted": "Видалено підключень: {count}",
"bulkDeletedMixed": "Видалено: {ok}, не вдалось: {failed}",
"clonedMany": "Скопійовано підключень: {count}",
"clonedMixed": "Скопійовано: {ok}, не вдалось: {failed}",
"inboundDeleteSuccess": "Вхідне підключення успішно видалено",
"inboundClientAddSuccess": "Клієнт(и) вхідного підключення додано",
"inboundClientDeleteSuccess": "Клієнта вхідного підключення видалено",
+2
View File
@@ -412,6 +412,8 @@
"inboundCreateSuccess": "Đã tạo thành công kết nối inbound",
"bulkDeleted": "Đã xóa {count} inbound",
"bulkDeletedMixed": "Đã xóa {ok}, thất bại {failed}",
"clonedMany": "Đã nhân bản {count} inbound",
"clonedMixed": "Đã nhân bản {ok}, thất bại {failed}",
"inboundDeleteSuccess": "Đã xóa thành công kết nối inbound",
"inboundClientAddSuccess": "Đã thêm client inbound",
"inboundClientDeleteSuccess": "Đã xóa client inbound",
+2
View File
@@ -412,6 +412,8 @@
"inboundCreateSuccess": "入站连接已成功创建",
"bulkDeleted": "已删除 {count} 个入站",
"bulkDeletedMixed": "已删除 {ok} 个,失败 {failed} 个",
"clonedMany": "已克隆 {count} 个入站",
"clonedMixed": "已克隆 {ok} 个,失败 {failed} 个",
"inboundDeleteSuccess": "入站连接已成功删除",
"inboundClientAddSuccess": "已添加入站客户端",
"inboundClientDeleteSuccess": "入站客户端已删除",
+2
View File
@@ -412,6 +412,8 @@
"inboundCreateSuccess": "入站連接已成功建立",
"bulkDeleted": "已刪除 {count} 個入站",
"bulkDeletedMixed": "已刪除 {ok} 個,失敗 {failed} 個",
"clonedMany": "已複製 {count} 個入站",
"clonedMixed": "已複製 {ok} 個,失敗 {failed} 個",
"inboundDeleteSuccess": "入站連接已成功刪除",
"inboundClientAddSuccess": "已新增入站客戶端",
"inboundClientDeleteSuccess": "入站客戶端已刪除",