Chris Chen
62592c29ae
Add audit logs.
ci-cd-vm / ci-cd (push) Successful in 4m2s
2026-06-23 12:13:47 -07:00
Chris Chen
870eeec82a
Add role control
2026-06-23 07:19:08 -07:00
Chris Chen
ddced87dc6
Update
ci-cd-nas / build-push (push) Failing after 27s
ci-cd-nas / deploy (push) Has been skipped
2026-06-20 22:26:52 -07:00
Chris Chen
7ab8e9703b
WIP
2026-06-20 21:06:24 -07:00
Chris Chen
8061a60fe5
add quick add entry.
2026-06-20 20:42:06 -07:00
Chris Chen
87425b3276
add attendance
2026-06-20 19:43:15 -07:00
Chris Chen
2af169fa60
Fix null payee.
2026-06-20 18:05:22 -07:00
Chris Chen
3558c67fd7
WIP
2026-06-20 17:51:33 -07:00
Chris Chen
f55807fa7d
wip
2026-06-20 15:13:23 -07:00
Chris Chen
b6c50a38aa
Enhance
2026-05-30 09:57:43 -07:00
Chris Chen
caed5091f0
Enhance offering session
2026-05-30 00:15:10 -07:00
Chris Chen
769597d769
refactor finance.
2026-05-29 23:56:29 -07:00
Chris Chen
aef5454202
feat(i18n): bilingual language dropdown on member form dialog
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-29 22:27:03 -07:00
Chris Chen
9a94e3b09e
feat(i18n): bilingual ministry/category/status dropdowns on expense pages
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-29 22:27:00 -07:00
Chris Chen
fba0b63214
feat(i18n): bilingual language + roles selectors in user dialogs
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-29 22:13:41 -07:00
Chris Chen
e5296e79dc
feat(i18n): bilingual gender/status dropdowns on member form + members page
2026-05-29 22:11:39 -07:00
Chris Chen
61e34d343a
feat(i18n): bilingual category + method dropdowns on givings page
2026-05-29 22:09:19 -07:00
Chris Chen
126e640731
feat(i18n): bilingual Type/Method dropdowns + line echo on offering session
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-29 22:07:57 -07:00
Chris Chen
4e15e9f630
feat(i18n): compute bilingual label on giving/ministry/expense-category lookups
2026-05-29 22:06:09 -07:00
Chris Chen
fe50ea3d30
WIP
2026-05-29 20:54:08 -07:00
Chris Chen
95008788f3
feat(expense): wire routes + sidebar nav for expense pages
...
Also fix kendo-grid [total] binding in expenses-page template by
switching to GridDataResult object form ({ data, total }) on [data].
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-29 18:59:25 -07:00
Chris Chen
f5ff03260b
feat(expense): add monthly reconciliation statement page
...
Implements Task 16 — MonthlyStatementPageComponent with Kendo Grid list
(year filter), create/edit dialog (server-computed totals preview), and
finalize action that locks the statement.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-29 18:56:14 -07:00
Chris Chen
aa77f2051a
feat(expense): add finance expenses overview + review page
2026-05-29 18:53:39 -07:00
Chris Chen
4704d33b4a
fix(expense): authenticated receipt download + correct delete confirm
...
The receipt <a href target=_blank> was an unauthenticated browser navigation
that the API's [Authorize] rejects with 401. Replace with a HttpClient blob
download (downloadReceipt) so the auth interceptor attaches the JWT, opened
via an object URL. Also fix the delete button: confirm() must run inside the
component method (matching givings-page), not as a template expression where
confirm is not a component member.
2026-05-29 18:51:04 -07:00
Chris Chen
18b9707e44
feat(expense): add member self-service My Reimbursements page
...
Standalone Angular component (Kendo Grid + ExpenseFormDialog) that lets
any logged-in user list, create, submit, and delete their own draft
reimbursements, with optional receipt upload.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-29 18:48:42 -07:00
Chris Chen
1bb9da16d4
feat(expense): add reusable expense form dialog with category cascade
...
Standalone ExpenseFormDialogComponent with Ministry → Category Group → SubCategory
cascade, vendor/reimbursement modes, optional member picker (MemberApiService
search-as-you-type), and receipt file input. Emits CreateExpenseRequest + File.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-29 18:46:34 -07:00
Chris Chen
3188064335
feat(expense): add expense categories management page
2026-05-29 18:43:19 -07:00
Chris Chen
04b05617b8
feat(expense): add frontend models + API services
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-29 18:40:22 -07:00
Chris Chen
0639d1fe83
WIP
2026-05-28 22:29:13 -07:00
Chris Chen
48885dba83
fix(giving): reset in-buffer line-edit index on reopen/cancel/submit
2026-05-28 17:44:43 -07:00
Chris Chen
af21e50d9f
feat(giving): add reopen-and-edit flow + recent sessions list to offering page
2026-05-28 17:41:19 -07:00
Chris Chen
a573179714
feat(giving): match giver member name in single-giving search (spec §4.2)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-28 17:24:47 -07:00
Chris Chen
66640d1fd0
fix(giving): keep giver name visible when editing a buffered offering line
2026-05-28 17:18:40 -07:00
Chris Chen
001db35cef
feat(giving): keyboard-first Sunday offering batch entry page + routes
...
- Add MemberQuickAddDialogComponent for fast in-session member creation
- Add OfferingSessionPageComponent: client-side buffer, reconcile totals, date-conflict check, submit to API
- Wire finance/giving-categories, finance/givings, finance/offering-session routes (RoleGuard: finance + super_admin)
- Fix givings-page: replace [total] + data[] with GridDataResult for Kendo v20 server-side paging
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-28 17:14:56 -07:00
Chris Chen
81a0b5a038
feat(giving): single giving entry page
2026-05-28 17:10:07 -07:00
Chris Chen
7260e5c115
feat(giving): giving categories management page
...
Add GivingCategoriesPageComponent — standalone Angular 18 component with Kendo Grid (list/deactivate) and Kendo Dialog (add/edit form) for managing giving types.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-28 17:04:55 -07:00
Chris Chen
4a2b142061
feat(giving): frontend models + API services
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-28 16:57:15 -07:00
Chris Chen
a525c71baa
WIP
2026-05-28 15:25:31 -07:00
Chris Chen
a18d44bd0a
feat: add UsersPageComponent with Kendo Grid + edit/deactivate/reset-password
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-27 14:24:00 -07:00
Chris Chen
6c3292861a
feat: add EditUserDialogComponent
2026-05-27 14:22:13 -07:00
Chris Chen
3a5b5721e4
feat: add MembersPageComponent with Kendo Grid and routing
...
Also adds stub UsersPageComponent for route compilation, and fixes
pre-existing kendo-textbox type="email" build errors in dialog templates.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-27 14:20:52 -07:00
Chris Chen
07e0270599
feat: add CreateUserAccountDialogComponent with temp-password reveal
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-27 14:17:15 -07:00
Chris Chen
32e47e4566
feat: add MemberFormDialogComponent (3-tab form)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-27 14:15:26 -07:00
Chris Chen
d2eac52a47
feat: add Angular member and user models + API services
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-27 14:13:35 -07:00
Chris Chen
60405ef0aa
WIP
2026-05-27 07:49:26 -07:00
Chris Chen
d5648315a0
WIP
2026-05-25 17:32:18 -07:00