letter-mgmt (new module):
- Notice page: overdue loan list with filters, KPI strip, bulk actions,
call disposition logging (Promise-to-Pay, Not Reachable, etc.), Speed
Post dispatch dialog with consignment + post-office tracking,
PDF preview + download, call-contact dialog with primary / alt /
family / nominee numbers and per-contact disposition history.
- Certificates: Loan Interest, Share, Balance, Form 60 (no-PAN flow),
Form 15G/H (auto age-based), Hypothecation, NOC - each with shared
preview dialog (six tone variants) and jsPDF generator using a
common letterhead / summary-grid / signature-seal helper.
digital:
- IMPS module: report (P2A/P2P/Aadhaar tabs) + entry form with
MMID/mobile lookup, NPCI switch resolve-to-A/C+IFSC BANL flow,
sender autocomplete, hide sender field for P2P/Aadhaar, charges +
18% GST + waive checkbox, per-sender today-only history dialog.
- UPI report with app-mix tab and full transaction filtering.
- ATM/POS/ECOM hub with three ticket cards routing to today/status/cycle.
- NEFT/RTGS entry: sender-account autocomplete, charges + GST + waive,
field reorder (sender before amount), NEFT cap / RTGS floor
validation, History button opening per-sender today's transactions.
- NEFT/RTGS report: horizontal-bar trend leaderboard replacing tall bars.
shell + theme:
- Header redesigned with IBM Plex Sans 12/500 typography, 11-column grid
per row, top-accent hover indicator, bordered cells via grid-gap.
- Live KPI ticker below menu (CASH, TXN TODAY, CLEARING IN/OUT, NPA,
CASA, CD RATIO, RBI CIRC, REPO) with marquee scroll, pause-on-hover,
brand-blue gradient, amber bottom strip, pulsing red LIVE chip.
- Sidebar 'KYC Management' -> 'KYC & ReKYC Management'.
- Letter Mgmt / certificate menu items wired with green icon hints for
items that have a working page.
access-control:
- MFA card layout compacted; method header inlines back button + title.
icons:
- Register faTruck/TruckFast, faEllipsisV/H, faCommentDots.
- Add IBM Plex Sans Google Fonts import to index.html.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Settings → MFA Factors: wire the Authenticator tile to the real backend.
POST /v1/mfa/totp/setup mints the QR + secret + otpauth URL; the response
binds directly to <img [src]="totp.qrDataUri"> alongside a manual-entry
fallback ("Can't scan? Enter this in your app:") and an issuer/account
label. Verify hits POST /v1/mfa/totp/verify; on
error.msg.user.mfa.totp.code.invalid the message renders inline. Disable
uses DELETE /mfa/factors/{id}.
- Already-enrolled guard surfaces a dialog and re-hydrates from
/mfa/factors when error.msg.user.mfa.totp.already.enrolled is returned.
- Mobile click-to-add deep-link bound to otpAuthUrl (shown on touch-only
browsers via @media (hover:none)).
- access-control.service.ts: TotpSetupResponse + TotpVerifyResponse +
setupTotp() / verifyTotp() endpoints.
- hydrateFromServer / resetAllFactors now treat TOTP as a persisted factor
(verified, factorId, verifiedOn) instead of local state.
- Login 2FA picker: iconFor() returns 'qrcode' for TOTP, OTP-context copy
switches to "Open your authenticator app", Resend button hidden,
validity badge reads "rotates every 30 s".
- 2FA popup redesigned: CBS Nexora brand lockup at the top (logomark +
wordmark + 'Secure Sign-in' sub-line), refined card depth with stacked
shadow + ambient glow, segmented 6-cell OTP input, brighter primary
button gradient, responsive collapse at <=480px.
- Register faQrcode in icons.module.ts.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- access-control: register DSC enrollment under factorType='DSC' instead of
the legacy 'TOKEN' alias, hydrate / disable paths match on the same code.
Pill labels in the picker and Hardware Token panel updated to 'Type · DSC'.
service.ts MfaFactorType union adds 'DSC'.
- two-factor-authentication: initialise the delivery-method form at field
declaration instead of inside ngOnInit so Angular's first change-detection
pass doesn't fire 'Cannot find control' before the form is built.
- Rename duplicate component selectors that were tripping NG0912 at runtime:
mifosx-notes-tab -> mifosx-{centers,clients,current-account,groups,loans,
savings}-notes-tab; mifosx-unassign-staff-dialog -> mifosx-{clients,groups}-
unassign-staff-dialog. Selectors aren't referenced in templates (route /
dialog open), so the rename has no usage-site impact.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>