diff --git a/console/src/components/Services/EventTrigger/Add/Tooltips.js b/console/src/components/Services/EventTrigger/Add/Tooltips.js
index 9a55d4aa0da84..934bc4855c361 100644
--- a/console/src/components/Services/EventTrigger/Add/Tooltips.js
+++ b/console/src/components/Services/EventTrigger/Add/Tooltips.js
@@ -13,6 +13,18 @@ export const operationsDescription = (
);
+export const webhookUrlDescription = (
+
+ POST endpoint which will be triggered with payload on configured events
+
+);
+
+export const advancedOperationDescription = (
+
+ Columns to be sent in the payload of webhook
+
+);
+
export const postgresDescription = (
Select the postgres schema and table
diff --git a/console/src/components/Services/EventTrigger/EventActions.js b/console/src/components/Services/EventTrigger/EventActions.js
index 6e594a96e70c3..8540c235ce71c 100644
--- a/console/src/components/Services/EventTrigger/EventActions.js
+++ b/console/src/components/Services/EventTrigger/EventActions.js
@@ -276,10 +276,14 @@ const redeliverEvent = eventId => (dispatch, getState) => {
const setTrigger = triggerName => ({ type: SET_TRIGGER, triggerName });
const setRedeliverEvent = eventId => dispatch => {
- return dispatch(loadEventInvocations(eventId)).then(() => {
- dispatch(redeliverEvent(eventId)).then(() => {
- dispatch({ type: SET_REDELIVER_EVENT, eventId });
- });
+ /*
+ Redeliver event and mark the redeliverEventId to the redelivered event so that it can be tracked.
+ */
+ return dispatch(redeliverEvent(eventId)).then(() => {
+ return Promise.all([
+ dispatch({ type: SET_REDELIVER_EVENT, eventId }),
+ dispatch(loadEventInvocations(eventId)),
+ ]);
});
};
diff --git a/console/src/components/Services/EventTrigger/StreamingLogs/Logs.js b/console/src/components/Services/EventTrigger/StreamingLogs/Logs.js
index 172951ff94d4e..f646c0ad86d16 100644
--- a/console/src/components/Services/EventTrigger/StreamingLogs/Logs.js
+++ b/console/src/components/Services/EventTrigger/StreamingLogs/Logs.js
@@ -95,8 +95,9 @@ class StreamingLogs extends Component {
}
toggleModal(currentEvent) {
// set current event to redeliver
- this.props.dispatch(setRedeliverEvent(currentEvent));
- this.props.dispatch({ type: MODAL_OPEN, data: true });
+ this.props.dispatch(setRedeliverEvent(currentEvent)).then(() => {
+ this.props.dispatch({ type: MODAL_OPEN, data: true });
+ });
}
render() {
diff --git a/console/src/components/Services/EventTrigger/TableCommon/RedeliverEvent.js b/console/src/components/Services/EventTrigger/TableCommon/RedeliverEvent.js
index 11f33fd80b5d3..5d95e90e0916f 100644
--- a/console/src/components/Services/EventTrigger/TableCommon/RedeliverEvent.js
+++ b/console/src/components/Services/EventTrigger/TableCommon/RedeliverEvent.js
@@ -19,10 +19,45 @@ class RedeliverEvent extends Component {
this.state = { isWatching: true, intervalId: null };
this.refreshData = this.refreshData.bind(this);
}
+ componentDidMount() {
+ if (this.props.log.isModalOpen) {
+ this.attachFetching(this.props.log.redeliverEventId);
+ }
+ }
+ componentWillReceiveProps(nextProps) {
+ if (this.props.log.isModalOpen !== nextProps.log.isModalOpen) {
+ if (nextProps.log.isModalOpen === true) {
+ this.attachFetching(nextProps.log.redeliverEventId);
+ } else {
+ this.removeFetching(this.state.intervalId);
+ }
+ } else if (
+ this.state.intervalId !== null &&
+ this.props.log.eventInvocations.length ===
+ nextProps.log.eventInvocations.length
+ ) {
+ this.removeFetching(this.state.intervalId);
+ }
+ }
+ componentWillUnmount() {
+ if (this.props.log.isModalOpen) {
+ this.removeFetching(this.state.intervalId);
+ }
+ }
onModalClose = () => {
this.props.dispatch({ type: MODAL_OPEN, data: false });
};
-
+ attachFetching(eventId) {
+ const intervalId = setInterval(
+ () => this.props.dispatch(loadEventInvocations(eventId)),
+ 5000
+ );
+ this.setState({ ...this.state, intervalId: intervalId });
+ }
+ removeFetching(intervalId) {
+ clearInterval(intervalId);
+ this.setState({ ...this.state, intervalId: null });
+ }
refreshData() {
this.props.dispatch(loadEventInvocations(this.props.log.event_id));
}
@@ -34,6 +69,10 @@ class RedeliverEvent extends Component {
const styles = require('./Table.scss');
const { log } = this.props;
+ const isLoading = this.state.intervalId ? (
+
+ ) : null;
+
const renderTableBody = () => {
if (log.eventInvocations.length === 0) {
return No rows found.
;
@@ -182,10 +221,10 @@ class RedeliverEvent extends Component {
value={
log.eventInvocations[0]
? JSON.stringify(
- log.eventInvocations[0].request,
- null,
- 4
- )
+ log.eventInvocations[0].request,
+ null,
+ 4
+ )
: ''
}
minLines={8}
@@ -197,7 +236,7 @@ class RedeliverEvent extends Component {
/>
-
Latest Invocation Response
+
Latest Invocation Response {isLoading}
{log.redeliverEventFailure === null ? (