Fix jwt-token

This commit is contained in:
2025-08-28 13:24:13 +02:00
parent dbb5e059af
commit b23c34dd94

View File

@@ -20,6 +20,20 @@ export const EditAlertModal = ({ rule, onClose, onSuccess }) => {
webhook_url: '' webhook_url: ''
}); });
const [saving, setSaving] = useState(false); const [saving, setSaving] = useState(false);
const [droneTypes, setDroneTypes] = useState([]);
useEffect(() => {
const fetchDroneTypes = async () => {
try {
const response = await api.get('/drone-types');
setDroneTypes(response.data);
} catch (error) {
console.error('Error fetching drone types:', error);
}
};
fetchDroneTypes();
}, []);
useEffect(() => { useEffect(() => {
if (rule) { if (rule) {
@@ -71,7 +85,19 @@ export const EditAlertModal = ({ rule, onClose, onSuccess }) => {
setSaving(true); setSaving(true);
try { try {
await api.put(`/alerts/rules/${rule.id}`, formData); const payload = { ...formData };
// Clean up empty values
if (!payload.description || payload.description.trim() === '') delete payload.description;
if (!payload.device_ids || payload.device_ids.length === 0) delete payload.device_ids;
if (!payload.drone_types || payload.drone_types.length === 0) delete payload.drone_types;
// Only include webhook_url if webhook channel is selected
if (!payload.alert_channels || !payload.alert_channels.includes('webhook')) {
delete payload.webhook_url;
}
await api.put(`/alerts/rules/${rule.id}`, payload);
onSuccess(); onSuccess();
onClose(); onClose();
} catch (error) { } catch (error) {
@@ -169,13 +195,7 @@ export const EditAlertModal = ({ rule, onClose, onSuccess }) => {
<div className="text-xs text-gray-500 mb-2"> <div className="text-xs text-gray-500 mb-2">
Leave empty to monitor all drone types Leave empty to monitor all drone types
</div> </div>
{[ {droneTypes.map(droneType => (
{ id: 0, name: 'Consumer/Hobby' },
{ id: 1, name: 'Orlan/Military' },
{ id: 2, name: 'Professional/Commercial' },
{ id: 3, name: 'Racing/High-speed' },
{ id: 4, name: 'Unknown/Custom' }
].map(droneType => (
<label key={droneType.id} className="flex items-center"> <label key={droneType.id} className="flex items-center">
<input <input
type="checkbox" type="checkbox"
@@ -185,7 +205,7 @@ export const EditAlertModal = ({ rule, onClose, onSuccess }) => {
/> />
<span className="ml-2 text-sm text-gray-700"> <span className="ml-2 text-sm text-gray-700">
{droneType.name} {droneType.name}
{droneType.id === 1 && <span className="text-red-600 font-semibold"> ( High Threat)</span>} {droneType.threat_level === 'critical' && <span className="text-red-600 font-semibold"> ( High Threat)</span>}
</span> </span>
</label> </label>
))} ))}