feat: [admin] 일괄 작업 및 작업 버튼 뱃지 UI 적용
- 사용자/부서/역할 페이지에 체크박스 선택 + 일괄 삭제/복원/영구삭제 - 사용자 테이블: 이메일을 이름 아래로 이동, 이메일 컬럼 제거 - 사용자/부서/테넌트 작업 버튼 뱃지 스타일로 변경 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -178,6 +178,54 @@ public function restore(Request $request, int $id): JsonResponse
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 일괄 삭제 (Soft Delete)
|
||||
*/
|
||||
public function bulkDelete(Request $request): JsonResponse
|
||||
{
|
||||
$validated = $request->validate(['ids' => 'required|array', 'ids.*' => 'integer']);
|
||||
$deleted = 0;
|
||||
foreach ($validated['ids'] as $id) {
|
||||
if ($this->departmentService->deleteDepartment($id)) {
|
||||
$deleted++;
|
||||
}
|
||||
}
|
||||
|
||||
return response()->json(['success' => true, 'message' => "{$deleted}개 부서가 삭제되었습니다.", 'deleted' => $deleted]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 일괄 복원
|
||||
*/
|
||||
public function bulkRestore(Request $request): JsonResponse
|
||||
{
|
||||
$validated = $request->validate(['ids' => 'required|array', 'ids.*' => 'integer']);
|
||||
$restored = 0;
|
||||
foreach ($validated['ids'] as $id) {
|
||||
if ($this->departmentService->restoreDepartment($id)) {
|
||||
$restored++;
|
||||
}
|
||||
}
|
||||
|
||||
return response()->json(['success' => true, 'message' => "{$restored}개 부서가 복원되었습니다.", 'restored' => $restored]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 일괄 영구삭제 (슈퍼관리자 전용)
|
||||
*/
|
||||
public function bulkForceDelete(Request $request): JsonResponse
|
||||
{
|
||||
$validated = $request->validate(['ids' => 'required|array', 'ids.*' => 'integer']);
|
||||
$deleted = 0;
|
||||
foreach ($validated['ids'] as $id) {
|
||||
if ($this->departmentService->forceDeleteDepartment($id)) {
|
||||
$deleted++;
|
||||
}
|
||||
}
|
||||
|
||||
return response()->json(['success' => true, 'message' => "{$deleted}개 부서가 영구 삭제되었습니다.", 'deleted' => $deleted]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 부서 영구 삭제
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user