mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Alerting: Fix group by and timing override fields in simplfied routing section (#81321)
Fixes the group by custom labels and timings override logic in the simplified routing section of the edit rule page.
Previously:
- Custom labels would fail on first attempt at adding them to the group by.
- Timings fields required all timings to be overridden instead of any of them.
This commit is contained in:
@@ -38,6 +38,7 @@ export const RoutingSettings = ({ alertManager }: RoutingSettingsProps) => {
|
|||||||
control,
|
control,
|
||||||
watch,
|
watch,
|
||||||
register,
|
register,
|
||||||
|
setValue,
|
||||||
formState: { errors },
|
formState: { errors },
|
||||||
} = useFormContext<RuleFormValues>();
|
} = useFormContext<RuleFormValues>();
|
||||||
const [groupByOptions, setGroupByOptions] = useState(stringsToSelectableValues([]));
|
const [groupByOptions, setGroupByOptions] = useState(stringsToSelectableValues([]));
|
||||||
|
|||||||
@@ -149,11 +149,18 @@ export function getNotificationSettingsForDTO(
|
|||||||
receiver: contactPoints?.grafana?.selectedContactPoint,
|
receiver: contactPoints?.grafana?.selectedContactPoint,
|
||||||
mute_timings: contactPoints?.grafana?.muteTimeIntervals,
|
mute_timings: contactPoints?.grafana?.muteTimeIntervals,
|
||||||
group_by: contactPoints?.grafana?.overrideGrouping ? contactPoints?.grafana?.groupBy : undefined,
|
group_by: contactPoints?.grafana?.overrideGrouping ? contactPoints?.grafana?.groupBy : undefined,
|
||||||
group_wait: contactPoints?.grafana?.overrideTimings ? contactPoints?.grafana?.groupWaitValue : undefined,
|
group_wait:
|
||||||
group_interval: contactPoints?.grafana?.overrideTimings ? contactPoints?.grafana?.groupIntervalValue : undefined,
|
contactPoints?.grafana?.overrideTimings && contactPoints?.grafana?.groupWaitValue
|
||||||
repeat_interval: contactPoints?.grafana?.overrideTimings
|
? contactPoints?.grafana?.groupWaitValue
|
||||||
? contactPoints?.grafana?.repeatIntervalValue
|
: undefined,
|
||||||
: undefined,
|
group_interval:
|
||||||
|
contactPoints?.grafana?.overrideTimings && contactPoints?.grafana?.groupIntervalValue
|
||||||
|
? contactPoints?.grafana?.groupIntervalValue
|
||||||
|
: undefined,
|
||||||
|
repeat_interval:
|
||||||
|
contactPoints?.grafana?.overrideTimings && contactPoints?.grafana?.repeatIntervalValue
|
||||||
|
? contactPoints?.grafana?.repeatIntervalValue
|
||||||
|
: undefined,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
return undefined;
|
return undefined;
|
||||||
@@ -191,8 +198,13 @@ export function getContactPointsFromDTO(ga: GrafanaRuleDefinition): AlertManager
|
|||||||
? {
|
? {
|
||||||
selectedContactPoint: ga.notification_settings.receiver,
|
selectedContactPoint: ga.notification_settings.receiver,
|
||||||
muteTimeIntervals: ga.notification_settings.mute_timings ?? [],
|
muteTimeIntervals: ga.notification_settings.mute_timings ?? [],
|
||||||
overrideGrouping: Boolean(ga.notification_settings?.group_by),
|
overrideGrouping:
|
||||||
overrideTimings: Boolean(ga.notification_settings.group_wait),
|
Array.isArray(ga.notification_settings.group_by) && ga.notification_settings.group_by.length > 0,
|
||||||
|
overrideTimings: [
|
||||||
|
ga.notification_settings.group_wait,
|
||||||
|
ga.notification_settings.group_interval,
|
||||||
|
ga.notification_settings.repeat_interval,
|
||||||
|
].some(Boolean),
|
||||||
groupBy: ga.notification_settings.group_by || [],
|
groupBy: ga.notification_settings.group_by || [],
|
||||||
groupWaitValue: ga.notification_settings.group_wait || '',
|
groupWaitValue: ga.notification_settings.group_wait || '',
|
||||||
groupIntervalValue: ga.notification_settings.group_interval || '',
|
groupIntervalValue: ga.notification_settings.group_interval || '',
|
||||||
|
|||||||
Reference in New Issue
Block a user