diff --git a/frontend/src/FilterManager.jsx b/frontend/src/FilterManager.jsx index 8bd2887..57882a6 100644 --- a/frontend/src/FilterManager.jsx +++ b/frontend/src/FilterManager.jsx @@ -50,6 +50,11 @@ function FilterManager() { const [deleteFilterModalOpen, setDeleteFilterModalOpen] = useState(false); const [filterToDelete, setFilterToDelete] = useState(null); + // Новое состояние для редактирования сервера + const [editServerModalOpen, setEditServerModalOpen] = useState(false); + const [editingServer, setEditingServer] = useState(null); + const [editServerError, setEditServerError] = useState(''); + useEffect(() => { fetchServers(); }, []); @@ -403,6 +408,37 @@ function FilterManager() { } }; + // Открыть модалку редактирования + const handleEditServer = (server) => { + setEditingServer({ ...server }); + setEditServerError(''); + setEditServerModalOpen(true); + }; + + // Сохранить изменения сервера + const handleSaveEditServer = async () => { + if (!editingServer.name.trim()) { + setEditServerError('Имя сервера обязательно для заполнения.'); + return; + } + try { + const updatedServers = servers.map(s => + s.id === editingServer.id ? { ...s, name: editingServer.name, description: editingServer.description } : s + ); + await axios.post(`${API_URL}/server-configs`, { servers: updatedServers }); + setServers(updatedServers); + // Если редактируемый сервер выбран — обновить его + if (selectedServer?.id === editingServer.id) { + setSelectedServer({ ...selectedServer, name: editingServer.name, description: editingServer.description }); + } + setEditServerModalOpen(false); + setSuccess('Сервер успешно обновлён!'); + setTimeout(() => setSuccess(''), 3000); + } catch (error) { + setEditServerError('Не удалось сохранить изменения.'); + } + }; + // Удаляем старые функции редактирования // Удаляем старые функции, которые больше не нужны @@ -712,7 +748,7 @@ function FilterManager() {

{server.name} {selectedServer?.id === server.id && ( - Выбран + Выбран )}

@@ -758,6 +794,14 @@ function FilterManager() { {selectedServer?.id === server.id ? 'Выбран' : 'Выбрать'} + +
+
+
+ + setEditingServer({ ...editingServer, name: e.target.value })} + maxLength={64} + autoFocus + /> +
+
+ +