Commit Graph

113 Commits

Author SHA1 Message Date
7326ffec6e docs: update README with Phase 8 features, expanded roadmap with effort ratings 2026-03-08 00:32:35 -06:00
5f0ae959ed Update client/src/App.jsx 2026-03-08 00:25:11 -06:00
917f5a24af Merge pull request 'feat: add footer with copyright, Gitea repo link, and live dev ticker' (#36) from feature/footer-meta into master
Reviewed-on: #36
2026-03-08 00:23:15 -06:00
9aa27d7598 Merge pull request 'feat: enhanced demo footer — copyright, Gitea link, live dev-time ticker' (#35) from feature/demo-footer-enhanced into master
Reviewed-on: #35
2026-03-08 00:21:31 -06:00
7e1164af13 feat: add footer with copyright, Gitea repo link, and live dev ticker
- © Jason Stedwell copyright with current year
- Gitea icon + link to https://git.alwisp.com/jason/cpas
- Running elapsed time ticker since first commit (2026-03-06T11:33:32)
  ticks every second: Xd HHh MMm SSs format
- App layout changed to flex column so footer pins to page bottom
- Footer styles isolated in `sf` object for clarity
2026-03-08 00:21:30 -06:00
232814db93 feat: enhance demo footer with copyright, Gitea link, and live dev-time ticker 2026-03-08 00:19:59 -06:00
87649b59d0 Merge pull request 'fix: add demo/ folder to Dockerfile so /demo route works in container' (#34) from feature/demo-dockerfile into master
Reviewed-on: #34
2026-03-08 00:12:11 -06:00
575c4c57fd fix: add demo/ folder to Dockerfile COPY so /demo route is served in container 2026-03-08 00:11:18 -06:00
7ef00796bd feat: serve demo/ folder as static route at /demo
Adds express.static middleware for the demo/ directory mounted at /demo,
placed before the SPA catch-all so /demo/index.html resolves to the
standalone stakeholder demo page instead of the React app.
2026-03-07 23:59:00 -06:00
9cbc06f57b Merge pull request 'feat: add stakeholder demo landing page with synthetic data' (#33) from feature/demo-landing into master
Reviewed-on: #33
2026-03-07 23:40:39 -06:00
76f972562b feat: add stakeholder demo landing page with synthetic data 2026-03-07 23:27:25 -06:00
b3882322b4 Merge pull request 'feature/department-dropdown' (#32) from feature/department-dropdown into master
Reviewed-on: #32
2026-03-07 23:16:07 -06:00
d8793000fc feat: replace department text input with preloaded select dropdown 2026-03-07 23:15:15 -06:00
0f31677631 feat: replace department text input with preloaded select dropdown 2026-03-07 23:14:40 -06:00
5d835e6b91 feat: add shared DEPARTMENTS constant 2026-03-07 23:13:26 -06:00
53dcce576a Merge pull request 'fix: score endpoint now returns total_violations and negated_count' (#30) from feature/ack-signature-and-toasts into master
Reviewed-on: #30
2026-03-07 22:02:34 -06:00
979e9724e0 fix: score endpoint now returns total_violations and negated_count
The /api/employees/:id/score endpoint previously only returned data from
the active_cpas_scores view (active_points + violation_count for the 90-day
window). The EmployeeModal score cards reference total_violations and
negated_count which were undefined, causing blank displays.

Now queries the violations table directly for all-time totals alongside
the rolling 90-day active data.
2026-03-07 22:01:35 -06:00
9c4c357cbe Merge pull request 'feature/ack-signature-and-toasts' (#29) from feature/ack-signature-and-toasts into master
Reviewed-on: #29
2026-03-07 21:47:24 -06:00
da602f69af docs: update ReadmeModal admin guide for acknowledgment signature and toast notifications
- Added acknowledgment signature workflow to "Logging a Violation" section (step 7)
- Added toast notification step to violation logging workflow (step 9)
- Updated Violation History section: amend now includes acknowledged-by/date fields
- Added PDF acknowledgment rendering note to Violation History
- Added "Toast Notifications" as standalone feature section
- Updated Amendable Fields to include acknowledged_by and acknowledged_date
- Updated Immutability Rules table with ack fields
- Moved acknowledgment signature and toast system to Shipped in roadmap
- Removed acknowledgment signature from Near-term (already shipped)
2026-03-07 21:46:30 -06:00
66f59dead3 docs: update README for acknowledgment signature field, toast notifications, and PDF logo refactor
- Moved acknowledgment signature field from Proposed to Completed (Phase 7)
- Added toast notification system to Completed (Phase 7)
- Updated Violation Form features with acknowledgment section and toasts
- Updated Employee Profile Modal features with toast notifications
- Added Toast Notification System as standalone feature section
- Updated PDF Generation section: logo loaded from disk, ack rendering
- Updated Amendable Fields table with acknowledged_by and acknowledged_date
- Updated Database Schema section with new violation columns
- Updated Project Structure tree with ToastProvider.jsx and template.js description
- Updated API reference for POST /api/violations to note new fields
2026-03-07 21:44:22 -06:00
ecd3810050 feat: add toast notifications to EmployeeModal for all actions
- Toast success/error on PDF download, negate, restore, hard delete
- Toast success on employee edit and violation amendment via modal callbacks
- Error details from API responses included in error toasts
2026-03-07 21:40:36 -06:00
114dbb1166 refactor: load logo from disk instead of hardcoded base64 + add acknowledgment signature rendering
- Reads mpm-logo.png from filesystem at startup, converts to base64 data URI dynamically
- Removes massive hardcoded LOGO_B64 constant (~5KB of source code eliminated)
- Falls back gracefully if logo file is not found (dev environments)
- Tries both dist/ and public/ paths for dev vs production compatibility
- Adds acknowledgment rendering: if acknowledged_by is set, shows filled name/date
  instead of blank signature lines, with green "Acknowledged" badge on section header
- Blank signature lines still shown when acknowledgment is not provided
2026-03-07 21:39:01 -06:00
b4edcdc945 feat: accept acknowledged_by/acknowledged_date in violation creation and amendment
- POST /api/violations now accepts acknowledged_by and acknowledged_date
- Both fields added to AMENDABLE_FIELDS whitelist for post-submission edits
- Acknowledgment data persisted to DB and passed through to PDF generation
2026-03-07 21:32:15 -06:00
8944cc80e0 feat: add auto-migration for acknowledged_by/acknowledged_date columns 2026-03-07 21:31:05 -06:00
8e06c9d576 feat: add acknowledged_by and acknowledged_date columns to violations schema 2026-03-07 21:30:47 -06:00
725dfa2963 feat: add acknowledgment signature fields + toast notifications to ViolationForm
- New "Employee Acknowledgment" section with acknowledged_by name and date
- Replaces blank signature line on PDF with recorded acknowledgment
- Toast notifications for submit success/error, PDF download, and validation warnings
- Inline status messages retained as fallback
2026-03-07 21:30:29 -06:00
c4dd658aa7 feat: wrap App with ToastProvider for global notifications 2026-03-07 21:29:05 -06:00
57358dfd21 feat: add Toast notification system
- ToastProvider context with useToast hook
- Supports success, error, info, and warning variants
- Auto-dismiss with configurable duration (default 4s)
- Slide-in animation with progress bar
- Stacks up to 5 toasts, oldest dismissed first
- Consistent with dark theme UI
2026-03-07 21:28:45 -06:00
915bca17fd Merge pull request 'roadmap' (#28) from roadmap into master
Reviewed-on: #28
2026-03-07 19:02:11 -06:00
0920bffc50 docs: restore full README with corrected local image name (cpas not cpas-tracker) 2026-03-07 19:00:02 -06:00
bfa46e93b6 docs: fix local quickstart image name to cpas (not cpas-tracker) 2026-03-07 18:58:28 -06:00
1bc2527c53 Merge pull request 'roadmap' (#27) from roadmap into master
Reviewed-on: #27
2026-03-07 18:56:42 -06:00
281825377f feat: ReadmeModal — admin usage guide, feature map, workflow reference, roadmap (no install content) 2026-03-07 18:39:01 -06:00
554b39672f docs: replace Unraid stub with verified working install settings from production server 2026-03-07 18:38:33 -06:00
6390e6077c Merge pull request 'roadmap' (#26) from roadmap into master
Reviewed-on: #26
2026-03-07 18:35:43 -06:00
84f5124850 docs: rewrite ReadmeModal as admin usage guide — feature map, workflow, tier system, roadmap 2026-03-07 18:33:54 -06:00
db34700996 docs: sync README — add in-app docs to features + completed roadmap phase 6 2026-03-07 18:33:50 -06:00
b5a588e752 docs: update README — add notes/expiration features, new endpoints, updated schema and roadmap 2026-03-07 18:31:14 -06:00
431f31b857 Merge pull request 'roadmap' (#25) from roadmap into master
Reviewed-on: #25
2026-03-07 09:53:15 -06:00
d4638783a4 feat: add Docs button to navbar — opens ReadmeModal slide-in panel 2026-03-07 09:52:16 -06:00
9d4d465755 feat: ReadmeModal — full README rendered in a themed slide-in panel 2026-03-07 09:51:57 -06:00
f8810e1ae5 Merge pull request 'roadmap' (#24) from roadmap into master
Reviewed-on: #24
2026-03-07 09:46:39 -06:00
57d0ac9755 feat: wire ExpirationTimeline and EmployeeNotes into EmployeeModal 2026-03-07 09:44:54 -06:00
328fc6f307 feat: EmployeeNotes component — inline free-text notes with quick-add HR flag tags 2026-03-07 09:43:54 -06:00
37efd596dd feat: ExpirationTimeline component — per-violation roll-off countdown with tier drop projection 2026-03-07 09:43:31 -06:00
b02464330b feat: add expiration timeline endpoint and notes field to employee endpoints 2026-03-07 09:42:59 -06:00
be2d1fa68e feat(db): add notes column to employees table 2026-03-07 09:41:50 -06:00
0a8b6e44d8 docs: update README — mark roadmap items complete, add new features, update schema and API reference 2026-03-07 09:40:34 -06:00
9b80afd54d Merge pull request 'roadmap' (#23) from roadmap into master
Reviewed-on: #23
2026-03-07 09:30:45 -06:00
970bc0efea feat: add Audit Log button to Dashboard toolbar 2026-03-07 09:26:33 -06:00