Skip to content

Commit 41e3128

Browse files
authored
[Alerting] Reload the Alerts List when alerts are deleted (#73715)
Reloads the entire Alerts list when alerts are deleted through the UI.
1 parent 47b9aba commit 41e3128

File tree

2 files changed

+26
-17
lines changed
  • x-pack
    • plugins/triggers_actions_ui/public/application/sections/alerts_list/components
    • test/functional_with_es_ssl/apps/triggers_actions_ui

2 files changed

+26
-17
lines changed

x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_list/components/alerts_list.tsx

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,10 @@ export const AlertsList: React.FunctionComponent = () => {
152152
data: alertsResponse.data,
153153
totalItemCount: alertsResponse.total,
154154
});
155+
156+
if (!alertsResponse.data?.length && page.index > 0) {
157+
setPage({ ...page, index: 0 });
158+
}
155159
} catch (e) {
156160
toastNotifications.addDanger({
157161
title: i18n.translate(
@@ -399,18 +403,9 @@ export const AlertsList: React.FunctionComponent = () => {
399403
return (
400404
<section data-test-subj="alertsList">
401405
<DeleteModalConfirmation
402-
onDeleted={(deleted: string[]) => {
403-
if (selectedIds.length === 0 || selectedIds.length === deleted.length) {
404-
const updatedAlerts = alertsState.data.filter(
405-
(alert) => alert.id && !alertsToDelete.includes(alert.id)
406-
);
407-
setAlertsState({
408-
isLoading: false,
409-
data: updatedAlerts,
410-
totalItemCount: alertsState.totalItemCount - deleted.length,
411-
});
412-
setSelectedIds([]);
413-
}
406+
onDeleted={async (deleted: string[]) => {
407+
loadAlertsData();
408+
setSelectedIds([]);
414409
setAlertsToDelete([]);
415410
}}
416411
onErrors={async () => {

x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alerts.ts

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66

77
import uuid from 'uuid';
8+
import { times } from 'lodash';
89
import expect from '@kbn/expect';
910
import { FtrProviderContext } from '../../ftr_provider_context';
1011

@@ -361,11 +362,22 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
361362
});
362363

363364
it('should delete all selection', async () => {
364-
const createdAlert = await createAlert();
365+
const namePrefix = generateUniqueKey();
366+
let count = 0;
367+
const createdAlertsFirstPage = await Promise.all(
368+
times(10, () => createAlert({ name: `${namePrefix}-0${count++}` }))
369+
);
370+
371+
const createdAlertsSecondPage = await Promise.all(
372+
times(2, () => createAlert({ name: `${namePrefix}-1${count++}` }))
373+
);
374+
365375
await pageObjects.common.navigateToApp('triggersActions');
366-
await pageObjects.triggersActionsUI.searchAlerts(createdAlert.name);
376+
await pageObjects.triggersActionsUI.searchAlerts(namePrefix);
367377

368-
await testSubjects.click(`checkboxSelectRow-${createdAlert.id}`);
378+
for (const createdAlert of createdAlertsFirstPage) {
379+
await testSubjects.click(`checkboxSelectRow-${createdAlert.id}`);
380+
}
369381

370382
await testSubjects.click('bulkAction');
371383

@@ -377,9 +389,11 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
377389
await pageObjects.common.closeToast();
378390

379391
await pageObjects.common.navigateToApp('triggersActions');
380-
await pageObjects.triggersActionsUI.searchAlerts(createdAlert.name);
392+
await pageObjects.triggersActionsUI.searchAlerts(namePrefix);
381393
const searchResultsAfterDelete = await pageObjects.triggersActionsUI.getAlertsList();
382-
expect(searchResultsAfterDelete.length).to.eql(0);
394+
expect(searchResultsAfterDelete).to.have.length(2);
395+
expect(searchResultsAfterDelete[0].name).to.eql(createdAlertsSecondPage[0].name);
396+
expect(searchResultsAfterDelete[1].name).to.eql(createdAlertsSecondPage[1].name);
383397
});
384398
});
385399
};

0 commit comments

Comments
 (0)