feat: [approval] 기안함 페이지 사이즈 선택, 체크박스 선택삭제 기능 추가

- 페이지당 표시 건수 선택 (15/50/100/200/500, 기본 15)
- 첫 번째 열 체크박스 추가 (전체선택/개별선택)
- 선택삭제 버튼 및 bulk-delete API 엔드포인트 추가
This commit is contained in:
김보곤
2026-03-05 17:23:14 +09:00
parent b74c8f8930
commit 27f520d303
3 changed files with 147 additions and 4 deletions

View File

@@ -210,6 +210,50 @@ public function forceDestroy(int $id): JsonResponse
}
}
/**
* 선택삭제 (기안자 본인 문서만)
*/
public function bulkDestroy(Request $request): JsonResponse
{
$ids = $request->input('ids', []);
if (empty($ids) || ! is_array($ids)) {
return response()->json([
'success' => false,
'message' => '삭제할 문서를 선택하세요.',
], 400);
}
$user = auth()->user();
$deleted = 0;
$failed = 0;
foreach ($ids as $id) {
try {
$approval = $this->service->getApproval($id);
if ($approval->isDeletableBy($user)) {
$this->service->deleteApproval($id, $user);
$deleted++;
} else {
$failed++;
}
} catch (\Throwable) {
$failed++;
}
}
$message = "{$deleted}건 삭제 완료";
if ($failed > 0) {
$message .= " ({$failed}건 삭제 불가)";
}
return response()->json([
'success' => true,
'message' => $message,
'deleted' => $deleted,
'failed' => $failed,
]);
}
// =========================================================================
// 워크플로우
// =========================================================================