diff --git a/app/Http/Controllers/Api/Admin/HR/AttendanceController.php b/app/Http/Controllers/Api/Admin/HR/AttendanceController.php index 83f85d02..b7d68c42 100644 --- a/app/Http/Controllers/Api/Admin/HR/AttendanceController.php +++ b/app/Http/Controllers/Api/Admin/HR/AttendanceController.php @@ -27,7 +27,11 @@ public function index(Request $request): JsonResponse|Response ); if ($request->header('HX-Request')) { - return response(view('hr.attendances.partials.table', compact('attendances'))); + $viewName = $request->input('view') === 'manage' + ? 'hr.attendances.partials.table-manage' + : 'hr.attendances.partials.table'; + + return response(view($viewName, compact('attendances'))); } return response()->json([ diff --git a/app/Http/Controllers/HR/AttendanceController.php b/app/Http/Controllers/HR/AttendanceController.php index dfb7fd37..d1e6ff76 100644 --- a/app/Http/Controllers/HR/AttendanceController.php +++ b/app/Http/Controllers/HR/AttendanceController.php @@ -6,6 +6,8 @@ use App\Models\HR\Attendance; use App\Services\HR\AttendanceService; use Illuminate\Contracts\View\View; +use Illuminate\Http\Request; +use Illuminate\Http\Response; class AttendanceController extends Controller { @@ -14,17 +16,35 @@ public function __construct( ) {} /** - * 근태현황 목록 페이지 + * 근태현황 목록 페이지 (조회 전용) */ public function index(): View { $stats = $this->attendanceService->getMonthlyStats(); $departments = $this->attendanceService->getDepartments(); - $employees = $this->attendanceService->getActiveEmployees(); $statusMap = Attendance::STATUS_MAP; return view('hr.attendances.index', [ 'stats' => $stats, + 'departments' => $departments, + 'statusMap' => $statusMap, + ]); + } + + /** + * 근태관리 페이지 (등록/수정/삭제/승인) + */ + public function manage(Request $request): View|Response + { + if ($request->header('HX-Request')) { + return response('', 200)->header('HX-Redirect', route('hr.attendances.manage')); + } + + $departments = $this->attendanceService->getDepartments(); + $employees = $this->attendanceService->getActiveEmployees(); + $statusMap = Attendance::STATUS_MAP; + + return view('hr.attendances.manage', [ 'departments' => $departments, 'employees' => $employees, 'statusMap' => $statusMap, diff --git a/resources/views/hr/attendances/index.blade.php b/resources/views/hr/attendances/index.blade.php index 7cb0b6d5..a76b4114 100644 --- a/resources/views/hr/attendances/index.blade.php +++ b/resources/views/hr/attendances/index.blade.php @@ -22,13 +22,6 @@