Add batch delete button to DeadTasksTable

This commit is contained in:
Ken Hibino
2020-12-13 07:51:40 -08:00
parent 62780e201e
commit ef60304015
7 changed files with 175 additions and 19 deletions

View File

@@ -14,6 +14,7 @@ import {
DELETE_QUEUE_SUCCESS,
} from "../actions/queuesActions";
import {
BATCH_DELETE_DEAD_TASKS_SUCCESS,
DELETE_DEAD_TASK_SUCCESS,
DELETE_RETRY_TASK_SUCCESS,
DELETE_SCHEDULED_TASK_SUCCESS,
@@ -198,6 +199,23 @@ function queuesReducer(
return { ...state, data: newData };
}
case BATCH_DELETE_DEAD_TASKS_SUCCESS: {
const newData = state.data.map((queueInfo) => {
if (queueInfo.name !== action.queue) {
return queueInfo;
}
return {
...queueInfo,
currentStats: {
...queueInfo.currentStats,
dead:
queueInfo.currentStats.dead - action.payload.deleted_keys.length,
},
};
});
return { ...state, data: newData };
}
default:
return state;
}

View File

@@ -3,6 +3,7 @@ import {
SnackbarActionTypes,
} from "../actions/snackbarActions";
import {
BATCH_DELETE_DEAD_TASKS_SUCCESS,
DELETE_DEAD_TASK_SUCCESS,
DELETE_RETRY_TASK_SUCCESS,
DELETE_SCHEDULED_TASK_SUCCESS,
@@ -53,6 +54,14 @@ function snackbarReducer(
message: `Dead task ${action.taskKey} deleted`,
};
case BATCH_DELETE_DEAD_TASKS_SUCCESS: {
const n = action.payload.deleted_keys.length;
return {
isOpen: true,
message: `${n} Dead ${n === 1 ? "task" : "tasks"} deleted`,
};
}
default:
return state;
}

View File

@@ -27,6 +27,9 @@ import {
DELETE_DEAD_TASK_BEGIN,
DELETE_DEAD_TASK_SUCCESS,
DELETE_DEAD_TASK_ERROR,
BATCH_DELETE_DEAD_TASKS_BEGIN,
BATCH_DELETE_DEAD_TASKS_SUCCESS,
BATCH_DELETE_DEAD_TASKS_ERROR,
} from "../actions/tasksActions";
import {
ActiveTask,
@@ -87,6 +90,7 @@ interface TasksState {
};
deadTasks: {
loading: boolean;
batchActionPending: boolean;
error: string;
data: DeadTaskExtended[];
};
@@ -115,6 +119,7 @@ const initialState: TasksState = {
},
deadTasks: {
loading: false,
batchActionPending: false,
error: "",
data: [],
},
@@ -269,6 +274,7 @@ function tasksReducer(
return {
...state,
deadTasks: {
...state.deadTasks,
loading: false,
error: "",
data: action.payload.tasks.map((task) => ({
@@ -452,6 +458,38 @@ function tasksReducer(
},
};
case BATCH_DELETE_DEAD_TASKS_BEGIN:
return {
...state,
deadTasks: {
...state.deadTasks,
batchActionPending: true,
},
};
case BATCH_DELETE_DEAD_TASKS_SUCCESS: {
const newData = state.deadTasks.data.filter(
(task) => !action.payload.deleted_keys.includes(task.key)
);
return {
...state,
deadTasks: {
...state.deadTasks,
batchActionPending: false,
data: newData,
},
};
}
case BATCH_DELETE_DEAD_TASKS_ERROR:
return {
...state,
deadTasks: {
...state.deadTasks,
batchActionPending: false,
},
};
default:
return state;
}