Commit Graph

137 Commits

Author SHA1 Message Date
ccfe622b52 fix: resolve empty string issue with Radix UI Select for branch selection 2026-07-15 11:12:05 +08:00
cb4f4dfb1c feat: Add branch selection for admins when creating shifts 2026-07-15 11:07:59 +08:00
8f078c1f33 Implement HR Branch isolation and Shift isolation 2026-07-14 11:41:04 +08:00
4691f27fbe Fix UI active state highlighting for My Attendance and Attendance Records 2026-07-06 13:51:21 +08:00
755650c3b3 Fix HR branch isolation for leave balances and attendance records, and separate My Attendance 2026-07-06 12:50:37 +08:00
91adb44439 Restore Clock In/Out buttons in UI 2026-07-06 12:29:55 +08:00
0c43ac406b Add enable_clock_in_out toggle for branches 2026-07-06 11:51:11 +08:00
3872cabda2 feat: hide attendance card on employee dashboard unless branch is Jalipa, Mirandilla &. Co. 2026-07-06 11:37:44 +08:00
9951096e0d feat: group employee personal modules into Self Service folder 2026-07-06 11:28:37 +08:00
687ea154c0 feat: show company menus to employees if permissions are granted, deduplicate dashboard 2026-07-06 11:21:26 +08:00
3ece654965 fix: remove location_exempt from validation and prevent form reset on error 2026-07-06 10:30:34 +08:00
31652ce057 feat: implement out of radius clock in warning modal, remove location exempt UI 2026-07-06 10:23:19 +08:00
ffaaded062 feat: rename location exempt label and add tooltip for clarity 2026-07-06 10:08:58 +08:00
8ed2f9559a feat: improve employee form validation auto-scroll and specific errors 2026-07-06 10:03:54 +08:00
f9bad53efd fix: import Switch component in employee create page 2026-07-06 09:42:18 +08:00
f63c7ea54f feat: embed map in attendance record details modal 2026-07-02 13:46:29 +08:00
31d0ffb9ce fix: completely decouple locate me button from leaflet DOM tree 2026-07-02 13:41:11 +08:00
53f7dde231 fix: intercept leaflet map clicks using L.DomEvent 2026-07-02 13:37:22 +08:00
f562243210 fix: make locate me button clickable by fixing pointer events 2026-07-02 13:33:25 +08:00
119148cbcb feat: add locate me button to branch location picker 2026-07-02 13:28:25 +08:00
d40c5662d3 feat: add branch isolation for managers and zkteco biometric tracking 2026-07-02 13:06:09 +08:00
5b7a41927b Add Leave Balances and Biometric Attendance menu items for employees and handle view-only permissions 2026-07-01 10:02:32 +08:00
5a95cdf4ef feat: simplify leave applications UI and endpoint access for employee role 2026-06-30 16:10:48 +08:00
96c7e7cd63 feat: hide clock in/out buttons on employee dashboard 2026-06-30 15:58:08 +08:00
a1e6b46817 feat: add Role dropdown to employee create and edit forms
- EmployeeController::create(): pass company roles + defaultRole (employee) to Inertia
- EmployeeController::store(): assign role from role_id request field (fallback to 'employee')
- EmployeeController::edit(): pass company roles + currentRoleId to Inertia
- EmployeeController::update(): syncRoles() with selected role_id
- create.tsx: Role <Select> dropdown pre-selected to default employee role
- edit.tsx: Role <Select> dropdown pre-selected to employee's current role
2026-06-30 15:37:58 +08:00
75ee8cacb8 fix: employee self-service - open controller access and clock-in/out
- LeaveApplicationController: add employee branch to bypass can() check
- AttendanceRecordController: add employee calendar view (own records only)
  + open clockIn/clockOut to employee type (no permission required)
- PayslipController: add employee branch to show own payslips only
- routes/web.php: remove permission:clock-in-out middleware from clock routes
- employee-dashboard.tsx: always show clock in/out buttons for employees
- Rebuild frontend assets
2026-06-30 13:51:02 +08:00
de172942ff feat: add employee self-service sidebar menu and open access routes
- Add getEmployeeNavItems() to app-sidebar.tsx for users with type='employee'
  showing Dashboard, My Leaves, Overtime Requests, My Attendance, My Payslips
- Route employee users to their own nav instead of admin getCompanyNavItems()
- Move GET index routes for leave-applications, attendance-records, overtime,
  and payslips outside permission:manage-* middleware so employees can access
  their own records without admin permissions (controllers already scope by user)
2026-06-30 13:43:11 +08:00
494b43fabf feat: add payroll export, totals row, audit command, and payroll scenario tests 2026-06-15 10:57:01 +08:00
bf21a719c7 feat(biometrics): add shift-aware punch routing, 60s double-punch protection, and sync status column with pre-selection matching 2026-06-04 14:08:34 +08:00
4b2e37e4a6 style(layout): add flex-shrink safety with min-w-0 on main container elements and z-index 20 on sidebar to prevent horizontal page overflow 2026-06-01 16:56:46 +08:00
da1044bbd4 style(calendar): fix horizontal scroll overlapping by changing table to border-separate and enabling sticky position on employee column 2026-06-01 16:52:08 +08:00
e0185dbd2f revert: undo z-index and sticky left offset positioning on calendars 2026-06-01 16:48:05 +08:00
a35fd919a4 fix(calendar): implement dynamic sidebar offset for sticky positioning on shift and attendance calendars 2026-06-01 16:45:17 +08:00
07b2b37530 fix(sidebar): resolve Tailwind compile issue and z-index overlap on calendar table 2026-06-01 16:35:32 +08:00
f2e451605b fix(layout): prevent sidebar from shrinking in flexbox layouts 2026-06-01 16:25:29 +08:00
13ea4cad87 fix(layout): add w-full min-w-0 overflow-hidden wrapper in AppContent to fix sticky calendar name column overlap 2026-06-01 16:21:37 +08:00
cfe86edbf7 fix: adjust attendance auto-calculation threshold to have 1.5-hour tolerance to prevent early departures from triggering half-day status 2026-05-28 12:42:13 +08:00
a1695010f1 fix: allow bulk sync overwrite to process already-synced biometric records and respect active filters 2026-05-28 12:12:23 +08:00
9eddfe7b2e style: increase font size and cell height of Monthly Shift Calendar 2026-05-26 08:55:16 +08:00
30fbaf4a0f feat: overhaul bulk biometric sync UI and remove individual row sync action 2026-05-26 08:18:11 +08:00
02632bb92a feat: add local agent logging and bulk sync overwrite option 2026-05-25 11:52:10 +08:00
9e93996f50 feat: implement manual pairing and custom sync for biometric attendance 2026-05-25 11:30:18 +08:00
03865bf03e feat: add branch filtering and column to attendance records 2026-05-19 16:47:07 +08:00
172937f22d feat: implement ZKTeco local sync agent architecture 2026-05-19 13:51:03 +08:00
b353aad649 feat: add ZKTeco connection testing wizard in branch form 2026-05-19 13:18:04 +08:00
20a79a130d feat: implement multi-branch biometric IP configuration and auto-sync 2026-05-19 11:24:41 +08:00
cc02005d7f fix: show generate payslips action on index for processing status 2026-05-18 13:41:20 +08:00
78d6c4d494 feat: implement 3-step payroll status workflow (draft -> processing -> completed) 2026-05-18 13:01:21 +08:00
bda1dcd7d5 fix: resolve FormEvent preventDefault error on custom modal save 2026-05-18 12:54:23 +08:00
6e10efc408 feat: implement 2-column payslip-style payroll adjustment overrides 2026-05-18 12:30:14 +08:00