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
8f9a30be12
chore: build frontend assets for locate me button
2026-07-02 13:31:49 +08:00
119148cbcb
feat: add locate me button to branch location picker
2026-07-02 13:28:25 +08:00
fe7f19b8a7
chore: set COMPOSER_HOME for shared hosting deployment
2026-07-02 13:24:28 +08:00
49c711d2d9
chore: remove npm build from deployment script
2026-07-02 13:23:46 +08:00
59697d9a54
chore: add composer install to git-pull script
2026-07-02 13:22:25 +08:00
4f6a53b73d
chore: lock composer platform php version to 8.2
2026-07-02 13:20:34 +08:00
d40c5662d3
feat: add branch isolation for managers and zkteco biometric tracking
2026-07-02 13:06:09 +08:00
1974ea1982
Fix route middleware for leave balances and biometric attendance to allow view-only access
2026-07-01 10:32:09 +08:00
ec042d377e
chore: update compiled production assets
2026-07-01 10:09:43 +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
a5074282aa
Fix role permission saving: use admin's modules instead of target role's restricted list
2026-07-01 09:48:52 +08:00
228f4649c0
Add missing modules to employee role config (leave_balances, biometric_attendance, etc.)
2026-07-01 09:45:57 +08:00
15244b0488
Fix permission caching and validation issues
2026-07-01 09:22:17 +08:00
50ad5f45eb
fix: resolve permission/role cache not reflecting issues
...
- UserController: use Spatie syncRoles([$role]) instead of direct Eloquent relations relation sync() which bypassed Spatie model events and cache observers
- RoleController: explicitly call forgetCachedPermissions() on store and update to force cache refresh
- Clear application cache
2026-06-30 16:44:13 +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
c11ee26183
build: recompile frontend assets with employee sidebar menu changes
2026-06-30 13:44:43 +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
47e6b93688
fix: embed raw SQL directly into check-leaves script and split queries
2026-06-30 13:19:06 +08:00
1b8586b331
fix: actually perform data insert in check-leaves due to PDO multi-query restrictions
2026-06-30 13:17:31 +08:00
91ba3e7aba
chore: add db debug script for leaves
2026-06-30 13:14:59 +08:00
afff2606da
feat: seed leave data to production database
2026-06-30 13:11:53 +08:00
18fef514b3
fix: robust git cleanup in git-pull script
2026-06-30 13:06:14 +08:00
20abd5d0bb
fix: map overtime hours and amount in payroll entries and backfill historical data
2026-06-26 14:59:37 +08:00
0feba46378
Fix leave balance calculation and ensure payslip number uniqueness
2026-06-26 14:05:23 +08:00
21fd05f064
build: compile assets for payroll export and totals
2026-06-15 11:08:18 +08:00
494b43fabf
feat: add payroll export, totals row, audit command, and payroll scenario tests
2026-06-15 10:57:01 +08:00
bfe796e65c
Add standalone Laravel optimize script
2026-06-15 09:35:49 +08:00
965388330b
fix: remove RDOT and hide resigned employees from calendar
2026-06-08 14:49:48 +08:00
ea7c5670f3
refactor: make branch alignment migration dynamic for all employees
2026-06-05 12:13:32 +08:00
a3166b97d2
fix: prioritize employee profile branch over raw terminal branch in biometric logs and sync logic, add swap migration
2026-06-05 12:09:44 +08:00
700cae9a27
build: compile assets containing biometric and attendance improvements
2026-06-04 14:12:32 +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
b4a63553e0
build: compile assets for calendar scroll fix
2026-06-01 16:58:48 +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
adc95699b3
fix: daily wage undertime double-deduction, conditional meal break, and weekend approved LWOP deductions
2026-06-01 16:02:45 +08:00
bcb81ed68a
fix(attendance): resolve absent status on active clock-in, add auto-logout after 12h, support single punches in BiometricAttendanceController
2026-05-30 11:34:22 +08:00
d1a3a1245d
feat: add rollback_and_resync.php script
2026-05-30 11:25:24 +08:00
21b58a7952
fix: correct autoload vendor path to load local vendor directory
2026-05-30 11:24:06 +08:00