Commit Graph

136 Commits

Author SHA1 Message Date
da36edbba6 vscode 2026-03-11 22:58:53 -05:00
jason
d6585c01c6 Code review and fixes 2026-03-11 16:33:38 -05:00
eccb105340 Merge pull request 'feat: dashboard badge filters + Elite Standing 0–4 pts' (#43) from feature/dashboard-badge-filters into master
Reviewed-on: #43
2026-03-11 00:13:27 -05:00
b656c970f0 feat: stat card badges act as filters; Elite Standing = 0-4 pts 2026-03-11 00:11:42 -05:00
f8c0fcd441 Merge pull request 'fix: update TierWarning to use dark-mode-compatible colors' (#42) from fix/tier-warning-dark-mode into master
Reviewed-on: #42
2026-03-11 00:01:23 -05:00
91ba19d038 fix: update TierWarning to use dark-mode-compatible colors 2026-03-10 16:00:24 -05:00
b7753d492d Merge pull request 'feature/mobile-responsive' (#41) from feature/mobile-responsive into master
Reviewed-on: #41
2026-03-08 22:22:42 -05:00
e0cb66af46 Add comprehensive mobile-responsive documentation 2026-03-08 22:08:21 -05:00
0769a39491 Update Dashboard with responsive mobile/desktop layouts 2026-03-08 22:05:52 -05:00
15a2b89350 Add mobile-optimized Dashboard component with card layout 2026-03-08 22:05:04 -05:00
74492142a1 Update App.jsx with mobile-responsive navigation and layout 2026-03-08 22:04:05 -05:00
602f371d67 Add mobile-responsive CSS utility file 2026-03-08 22:02:10 -05:00
c86b070db3 Merge pull request 'feature/version-badge' (#40) from feature/version-badge into master
Reviewed-on: #40
2026-03-08 00:56:18 -06:00
f4ed8c49ce feat: fetch version.json on mount, show short SHA + commit link in footer 2026-03-08 00:55:44 -06:00
51bf176f96 feat: load version.json at startup, expose via /api/health 2026-03-08 00:54:58 -06:00
20be30318f feat: add local dev fallback version.json stub 2026-03-08 00:45:53 -06:00
b02026f8a9 feat: inject git SHA + build timestamp into version.json during docker build 2026-03-08 00:45:49 -06:00
87cf48e77e Update README.md 2026-03-08 00:42:48 -06:00
2348336b0f Merge pull request 'fix: remove default browser body margin causing white border' (#39) from fix/remove-body-margin into master
Reviewed-on: #39
2026-03-08 00:38:56 -06:00
995e607003 fix: remove default browser body margin causing white border 2026-03-08 00:38:38 -06:00
d613c92970 Merge pull request 'feat: add footer with copyright, live dev ticker, and Gitea repo link' (#38) from feature/footer-meta into master
Reviewed-on: #38
2026-03-08 00:36:14 -06:00
981fa3bea4 feat: add footer with copyright, live dev ticker, and Gitea repo link 2026-03-08 00:35:35 -06:00
dc45cb7d83 Merge pull request 'docs: update README with Phase 8 features, expanded roadmap with effort ratings' (#37) from feature/readme-update into master
Reviewed-on: #37
2026-03-08 00:33:39 -06:00
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