diff --git a/frontend/src/api/admin/accounts.ts b/frontend/src/api/admin/accounts.ts index 40b80c1861..ea9b59b20c 100644 --- a/frontend/src/api/admin/accounts.ts +++ b/frontend/src/api/admin/accounts.ts @@ -715,6 +715,8 @@ export interface BatchOperationResult { total: number success: number failed: number + success_ids?: number[] + failed_ids?: number[] errors?: Array<{ account_id: number; error: string }> warnings?: Array<{ account_id: number; warning: string }> } @@ -729,6 +731,16 @@ export async function revertProxyFallback(id: number): Promise<{ message: string return data } +/** + * Delete multiple accounts with bounded server-side concurrency. + */ +export async function batchDelete(accountIds: number[]): Promise { + const { data } = await apiClient.post('/admin/accounts/batch-delete', { + account_ids: accountIds + }) + return data +} + /** * Batch clear account errors * @param accountIds - Array of account IDs @@ -968,6 +980,7 @@ export const accountsAPI = { importCodexSession, createOpenAICodexPAT, getAntigravityDefaultModelMapping, + batchDelete, batchClearError, batchRefresh, setPrivacy, diff --git a/frontend/src/components/admin/account/AccountBulkActionsBar.vue b/frontend/src/components/admin/account/AccountBulkActionsBar.vue index f3a062d0d6..64844e0955 100644 --- a/frontend/src/components/admin/account/AccountBulkActionsBar.vue +++ b/frontend/src/components/admin/account/AccountBulkActionsBar.vue @@ -1,26 +1,45 @@