diff --git a/frontend/src/components/server/ServerModal.jsx b/frontend/src/components/server/ServerModal.jsx index d4c3aa4..f77ad30 100644 --- a/frontend/src/components/server/ServerModal.jsx +++ b/frontend/src/components/server/ServerModal.jsx @@ -11,20 +11,8 @@ import { } from '../../utils/serverUtils.js'; /** - * Списки стран и провайдеров + * Список провайдеров */ -const COUNTRY_OPTIONS = [ - { value: '', label: 'Выберите страну', disabled: true }, - { value: 'RU', label: 'Россия (RU)' }, - { value: 'SWE', label: 'Швеция (SWE)' }, - { value: 'FI', label: 'Финляндия (FI)' }, - { value: 'US', label: 'США (US)' }, - { value: 'DE', label: 'Германия (DE)' }, - { value: 'NL', label: 'Нидерланды (NL)' }, - { value: 'SE', label: 'Швеция (SE)' }, - { value: 'SG', label: 'Сингапур (SG)' }, -]; - const PROVIDER_OPTIONS = [ { value: '', label: 'Выберите провайдера', disabled: true }, { value: 'Yandex', label: 'Yandex Cloud' }, @@ -154,53 +142,6 @@ function ServerModal({ show, mode = 'add', server, onSave, onClose, error: exter setLocalServer(prev => ({ ...prev, [field]: value })); }; - /** - * Обработчики для gateways - */ - const handleGatewayChange = (idx, field, value) => { - setLocalServer(prev => { - const currentGateways = Array.isArray(prev.gateways) ? prev.gateways : []; - const updatedGateways = currentGateways.map((gw, i) => - i === idx ? { ...gw, [field]: value } : gw - ); - return { ...prev, gateways: updatedGateways }; - }); - }; - - const handlePrimaryChange = (idx, checked) => { - setLocalServer(prev => { - const currentGateways = Array.isArray(prev.gateways) ? prev.gateways : []; - const updatedGateways = currentGateways.map((gw, i) => ({ - ...gw, - primary: i === idx ? checked : false - })); - if (!updatedGateways.some(g => g.primary) && updatedGateways.length > 0) { - updatedGateways[idx].primary = true; - } - return { ...prev, gateways: updatedGateways }; - }); - }; - - const handleAddGateway = () => { - setLocalServer(prev => { - const currentGateways = Array.isArray(prev.gateways) ? prev.gateways : []; - const newGw = makeGateway({ primary: currentGateways.length === 0 }); - return { ...prev, gateways: [...currentGateways, newGw] }; - }); - }; - - const handleRemoveGateway = (idx) => { - setLocalServer(prev => { - const currentGateways = Array.isArray(prev.gateways) ? prev.gateways : []; - if (currentGateways.length <= 1) return prev; - const updatedGateways = currentGateways.filter((_, i) => i !== idx); - if (!updatedGateways.some(g => g.primary) && updatedGateways.length > 0) { - updatedGateways[0].primary = true; - } - return { ...prev, gateways: updatedGateways }; - }); - }; - /** * Валидация и сохранение */ @@ -236,14 +177,13 @@ function ServerModal({ show, mode = 'add', server, onSave, onClose, error: exter return; } - // Валидация gateways для jumphost/exit + // Шлюзы для jumphost/exit задаются в другом месте (network-config); при сохранении передаём существующие или один по умолчанию const needsGws = NEEDS_GATEWAYS(localServer.type); let finalGateways = []; if (needsGws) { finalGateways = normalizeGateways(localServer.gateways, localServer.gateway || localServer.dns || localServer.ip); if (finalGateways.length === 0) { - setInternalError('Добавьте хотя бы один шлюз'); - return; + finalGateways = [makeGateway({ primary: true, name: localServer.dns?.split('.')[0] || 'main' })]; } } @@ -256,9 +196,6 @@ function ServerModal({ show, mode = 'add', server, onSave, onClose, error: exter onSave && onSave(serverToSave); }; - const currentGateways = Array.isArray(localServer.gateways) ? localServer.gateways : []; - const showGateways = NEEDS_GATEWAYS(localServer.type); - return (