Release: develop -> main#1065
Merged
Merged
Conversation
* feat: add bank transaction details screen in compliance Adds a dedicated details page for unassigned bank transactions in the compliance search results. Replaces the inline return icon with a chevron that opens the new details view, which lists all fields returned by the search API and exposes a Return button linking to the existing refund flow. The search row data is cached in sessionStorage on navigation to survive the URL-param stripping in app-handling.context that wipes router state. * style: use blue color for Return button instead of default red * refactor: align bank-tx details with existing compliance screen style - Switch to card-based layout matching compliance-support-issue - Replace alarmist ErrorHint with neutral no-data message on the missing-state fallback - Explain the sessionStorage cache with a comment - Drop leading slash in navigate() call to match nearby compliance routes - Use static title Bank Transaction Details to differentiate from the refund screen * refactor: extract bank-tx cache helper and remove redundant header - Move sessionStorage get/set into src/util/bank-tx-cache.ts so list and details screens share one cache-key definition - Drop the in-card h2 Bank Transaction in the details screen since the layout title already reads Bank Transaction Details * refactor: render bank-tx fields with shared DetailRow helper Use the DetailRow component from compliance-helpers so the details screen matches how bank-tx fields are rendered elsewhere in the compliance UI (see transactions-tab.tsx). Also aligns labels (Name instead of User name) and switches IBAN to mono formatting to match that pattern. * refactor: prefix bank-tx cache keys with dfx. to match session-store convention
* feat: add recall creation for bank transactions in compliance Adds a Recall erfassen button to the bank transaction details screen that opens a form to create a recall (POST /recall). Form captures reason, fee and comment; sequence is fixed to 1 and bankTxId is taken from the URL. * fix: cancel/back buttons return to details, pre-fill fee and comment - Cancel and success Back now use navigate(-1) so they return to the bank-tx details screen instead of falling through to /account - Pre-fill fee with 500 and comment with n.a. as sensible defaults * style: translate submit label and success title for consistency Match the return-screen pattern where button labels and success messages use translate(). * style: translate form title and field labels Match the refund-creditor-fields pattern where field labels and the layout title go through translate() so future translations can override the English defaults. * style: translate details-page action button labels
* feat: add recall button to user-data transactions tab Adds a Recall action button to the expanded transaction detail, shown for rows with a linked bank tx. Opens a modal that captures reason, fee and comment and submits POST /recall. userId is derived server-side from the bank tx (see api PR feat/recall-auto-derive-user). * refactor: use reset() without args to rely on useForm defaultValues Matches the ChargebackModal pattern and avoids repeating the default values in three places.
* feat: rename compliance bank tx section and hide return button for non-unassigned types * i18n: update de/fr/it translation keys for matching bank transactions section * refactor: move BankTxUnassignedTypes constant to compliance-helpers * i18n: shorten section title to Bank Transactions for consistency with sibling sections
* feat: show existing recall state on bank-tx views When a bank tx already has a recall, hide the Recall erfassen action and show the recall info instead: - Bank Transaction Details page: inline Recall card below the details - Transactions tab (user data): Recall #ID button opens a details modal Shared RecallDetails component renders the fields (id, created, sequence, reason, fee, comment) via the DetailRow helper. The api now includes recall on BankTxInfo and BankTxSearchResult so no extra roundtrip is needed. * style: add h2 header to bank transaction card for multi-card consistency
* feat: add mros creation page in compliance Standalone page at compliance/mros/create. Form captures the full CreateMrosDto: userDataId, status (default Draft), submissionDate (optional), authorityReference (optional), caseManager. * feat: simplify mros create form - Rename Authority Reference label to MROS ID - Remove Case Manager input; auto-populate from the logged-in user's firstName + lastName (via useUser().getProfile) - Default Submission Date to today * style: move useEffect after useForm to match return-screen ordering
Clicking a row on the MROS list navigates to compliance/mros/:id, which fetches GET /mros/:id and renders all fields via DetailRow. - getMrosById hook method - ComplianceMrosDetailScreen with loading/error/not-found states - mrosStatusBadge moved to compliance-helpers and reused in both list and detail
Only visible when session.role === UserRole.ADMIN, placed after the other role-gated entries (Compliance, Support Dashboard, RealUnit).
…ixes (#1058) * feat: support dashboard state refactor, configurable clerks, layout fixes - load clerks dynamically from GET /support/issue/clerks (no more hardcoded names) - validate assigned clerk against loaded list, fall back to first entry - refactor tab state into Record<Tab, TabData> to kill 12 useStates + 5 ternary chains - replace 3× count requests with single getIssueCounts() call - migrate all state filters to comma-separated states param - split loadMessages(boolean) into loadMessages() + pollForNewMessages() - add support-helpers with typeLabel()/reasonLabel() reused in 3 screens - drop dead client-side open-state filter and unreachable messageAuthor fallback - replace 100vh calc with flex-1 min-h-0 + layout noPadding so table fills bottom - add top scroll shadow on message list, fix import order * feat: dashboard reload banner for new support messages
Shows all kyc_step and bank_data entries in ManualReview or InternalReview grouped by type, with counts per status. Click on a row opens a drilldown listing affected users.
Converts the MROS detail page into an always-edit form so compliance officers can fill in all goAML-required data without leaving DFX. Sections: - Overview (read-only: ID, created, updated, userData ID, status badge) - Report: status, submission date, MROS ID, case manager, reason (Sachverhalt), action (Grund/Unternommen), indicators (checkbox list prefilled with DFX's 6 standard goAML codes) - Person Overrides: gender, middle name, birth place, profession, source of wealth, canton, ID document issue/expiry/country - Transactions: checkbox list of the userData's transactions Save calls PUT /mros/:id and reloads the entry. Requires api PR 1.2 (personOverrides) + 1.3 (transactions relation) to be deployed for the full feature to work; untouched fields stay undefined until then.
davidleomay
approved these changes
Apr 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automatic Release PR
This PR was automatically created after changes were pushed to develop.
Commits: 1 new commit(s)
Checklist