Chris Chen
c54adf1eda
feat(auth): add changePassword() to frontend AuthService
2026-06-23 20:04:18 -07:00
Chris Chen
5e0348de1d
feat(account): add password strength and match validators
2026-06-23 20:01:16 -07:00
Chris Chen
7356d0e810
Update attendance-counter-page.component.scss
ci-cd-vm / ci-cd (push) Failing after 1m25s
2026-06-23 17:47:16 -07:00
Chris Chen
b1e3e23325
Sunday Worship Count
ci-cd-vm / ci-cd (push) Failing after 1m28s
2026-06-23 17:24:12 -07:00
Chris Chen
f6277aa339
Update angular.json
ci-cd-vm / ci-cd (push) Successful in 1m45s
2026-06-23 15:16:19 -07:00
Chris Chen
2e226e60f5
update mobile view.
ci-cd-vm / ci-cd (push) Failing after 1m13s
2026-06-23 14:18:55 -07:00
Chris Chen
68649223d9
update mobile view.
2026-06-23 14:15:20 -07:00
Chris Chen
9d7c224ad2
Update user-portal.component.scss
2026-06-23 13:53:57 -07:00
Chris Chen
47aec287aa
update mobile view for expense.
2026-06-23 13:49:38 -07:00
Chris Chen
5dfca873dd
update for shrink image size.
ci-cd-vm / ci-cd (push) Successful in 1m23s
2026-06-23 13:30:20 -07:00
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
c7ac431deb
Update Dockerfile
ci-cd-vm / ci-cd (push) Failing after 1m9s
2026-06-22 17:12:13 -07:00
Chris Chen
70ea56280c
update license
ci-cd-vm / ci-cd (push) Failing after 1m4s
2026-06-22 16:53:29 -07:00
Chris Chen
1fb97cfccc
Update angular.json
ci-cd-vm / ci-cd (push) Failing after 58s
2026-06-22 16:27:07 -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
4bee06addb
feat(i18n): add central bilingual option lists for enum dropdowns
2026-05-29 22:04:18 -07:00
Chris Chen
a99755a5db
feat(i18n): add bilingual() display helper
2026-05-29 22:02:50 -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
a2d394029a
fix(giving): render Finance nav section in UserPortal sidebar
...
Task 11 added the finance nav to user-navbar.component, but the active
sidebar is rendered inline by UserPortalComponent (app-user-navbar is
not mounted). Added the role-gated Finance section (Offering Entry /
Givings / Giving Types) to UserPortalComponent, matching its
Administration pattern. Verified at runtime: section renders for
super_admin and links load the giving pages.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-28 18:22:50 -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