From c3773f2b8844ef19945a95fef997e81bd2d6ff2e Mon Sep 17 00:00:00 2001 From: Alexander Borg Date: Mon, 18 Aug 2025 06:21:59 +0200 Subject: [PATCH] Fix jwt-token --- client/src/components/AlertModals.jsx | 407 ++++++++++++++++++++++++++ client/src/pages/Alerts.jsx | 22 ++ 2 files changed, 429 insertions(+) create mode 100644 client/src/components/AlertModals.jsx diff --git a/client/src/components/AlertModals.jsx b/client/src/components/AlertModals.jsx new file mode 100644 index 0000000..1998cdb --- /dev/null +++ b/client/src/components/AlertModals.jsx @@ -0,0 +1,407 @@ +import React, { useState, useEffect } from 'react'; +import api from '../services/api'; +import { format } from 'date-fns'; +import { XMarkIcon } from '@heroicons/react/24/outline'; + +// Edit Alert Rule Modal +export const EditAlertModal = ({ rule, onClose, onSuccess }) => { + const [formData, setFormData] = useState({ + name: '', + description: '', + priority: 'medium', + min_detections: 1, + time_window: 300, + cooldown_period: 600, + alert_channels: ['sms'], + min_threat_level: '', + sms_phone_number: '', + webhook_url: '' + }); + const [saving, setSaving] = useState(false); + + useEffect(() => { + if (rule) { + setFormData({ + name: rule.name || '', + description: rule.description || '', + priority: rule.priority || 'medium', + min_detections: rule.min_detections || 1, + time_window: rule.time_window || 300, + cooldown_period: rule.cooldown_period || 600, + alert_channels: rule.alert_channels || ['sms'], + min_threat_level: rule.min_threat_level || '', + sms_phone_number: rule.sms_phone_number || '', + webhook_url: rule.webhook_url || '' + }); + } + }, [rule]); + + const handleChange = (e) => { + const { name, value } = e.target; + setFormData(prev => ({ + ...prev, + [name]: value + })); + }; + + const handleChannelChange = (channel, checked) => { + setFormData(prev => ({ + ...prev, + alert_channels: checked + ? [...prev.alert_channels, channel] + : prev.alert_channels.filter(c => c !== channel) + })); + }; + + const handleSubmit = async (e) => { + e.preventDefault(); + setSaving(true); + + try { + await api.put(`/alerts/rules/${rule.id}`, formData); + onSuccess(); + onClose(); + } catch (error) { + console.error('Error updating alert rule:', error); + alert('Failed to update alert rule'); + } finally { + setSaving(false); + } + }; + + return ( +
+
+
+

Edit Alert Rule

+ +
+ +
+
+ + +
+ +
+ +