diff --git a/grafana-plugin/src/containers/OutgoingWebhookForm/OutgoingWebhookForm.tsx b/grafana-plugin/src/containers/OutgoingWebhookForm/OutgoingWebhookForm.tsx index 8dc52c59..d323aa0f 100644 --- a/grafana-plugin/src/containers/OutgoingWebhookForm/OutgoingWebhookForm.tsx +++ b/grafana-plugin/src/containers/OutgoingWebhookForm/OutgoingWebhookForm.tsx @@ -78,6 +78,10 @@ function prepareForSave(rawData: Partial, selectedPreset: delete data[field]; }); + if (data.forward_all) { + data.data = null; + } + return data; } diff --git a/grafana-plugin/src/containers/OutgoingWebhookForm/OutgoingWebhookFormFields.tsx b/grafana-plugin/src/containers/OutgoingWebhookForm/OutgoingWebhookFormFields.tsx index c493acb6..02042de8 100644 --- a/grafana-plugin/src/containers/OutgoingWebhookForm/OutgoingWebhookFormFields.tsx +++ b/grafana-plugin/src/containers/OutgoingWebhookForm/OutgoingWebhookFormFields.tsx @@ -1,12 +1,13 @@ import React from 'react'; import { SelectableValue } from '@grafana/data'; -import { Button, Field, Input, Select, Switch, useStyles2 } from '@grafana/ui'; +import { Button, Field, Input, RadioButtonList, Select, Switch, useStyles2 } from '@grafana/ui'; import Emoji from 'react-emoji-render'; import { Controller, useFormContext } from 'react-hook-form'; import { MonacoEditor } from 'components/MonacoEditor/MonacoEditor'; import { MONACO_EDITABLE_CONFIG } from 'components/MonacoEditor/MonacoEditor.config'; +import { RenderConditionally } from 'components/RenderConditionally/RenderConditionally'; import { GSelect } from 'containers/GSelect/GSelect'; import { Labels } from 'containers/Labels/Labels'; import { AlertReceiveChannelHelper } from 'models/alert_receive_channel/alert_receive_channel.helpers'; @@ -29,6 +30,21 @@ interface OutgoingWebhookFormFieldsProps { onTemplateEditClick: (params: TemplateParams) => void; } +const FORWARD = 'forward'; +const CUSTOMIZE = 'customise'; +const FORWARD_RADIO_OPTIONS = [ + { + label: 'Forward whole payload data', + value: FORWARD, + boolean: true, + }, + { + label: 'Customise forwarded data', + value: CUSTOMIZE, + boolean: false, + }, +]; + export const OutgoingWebhookFormFields = ({ preset, hasLabelsFeature, @@ -42,7 +58,6 @@ export const OutgoingWebhookFormFields = ({ } = useFormContext(); const forwardAll = watch(WebhookFormFieldName.ForwardAll); - const styles = useStyles2(getStyles); const controls = ( @@ -175,6 +190,7 @@ export const OutgoingWebhookFormFields = ({ /> )} ( @@ -299,55 +315,67 @@ export const OutgoingWebhookFormFields = ({ )} /> - ( - - - - )} - /> - ( - -
-
- -
-
-
- )} - /> + )} + /> + + + ( + ( + +
+
+ +
+
+
+ )} + /> + )} + /> +
);