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 @@
- -
@@ -60,10 +46,6 @@ class="px-4 py-2.5 text-sm font-medium border-b-2 transition-colors border-trans class="px-4 py-2.5 text-sm font-medium border-b-2 transition-colors border-transparent text-gray-500 hover:text-gray-700"> 요약 - {{-- 통계 카드 (HTMX 갱신 대상) --}} @@ -83,7 +65,7 @@ class="px-4 py-2.5 text-sm font-medium border-b-2 transition-colors border-trans {{-- 목록 탭 --}}
- {{-- 필터 + 일괄 삭제 --}} + {{-- 필터 --}}
@@ -127,7 +109,7 @@ class="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 f value="{{ request('date_to', now()->toDateString()) }}" class="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
-
+
-
@@ -178,262 +157,10 @@ class="min-h-[200px]">
- - {{-- 승인 탭 --}} - -{{-- 근태 등록/수정 모달 --}} - - -{{-- 일괄 등록 모달 --}} - - -{{-- 승인 신청 모달 --}} - - -{{-- GPS 설정 모달 --}} +{{-- GPS 정보 모달 --}}