Files
cbsnexora/src/app/tasks/checker-inbox-and-tasks-tabs/pending-client-edits/client-edit-compare-dialog/client-edit-compare-dialog.component.scss
T
niteshandClaude Sonnet 5 468eaa96ab feat(clients): maker-checker for client edits (frontend)
- New "Pending Client Edits" screen under Checker Inbox & Tasks: server-driven pagination,
  date range + Today/Yesterday/All presets, status filter (Pending/Approved/Rejected), search —
  mirrors ChequebookRequestsComponent's architecture.
- Compare dialog diffs the maker's proposed values against a point-in-time "before" snapshot
  (client-edit-diff.util.ts) captured when the edit page was opened, so only genuinely changed
  fields show — works correctly for Pending, Approved, and Rejected edits alike, since it no
  longer depends on comparing against the live (possibly already-updated) client record.
- edit-client.component.ts: General tab save now submits for approval instead of applying
  immediately, shows a pending-approval banner, and blocks a second submission while one's
  outstanding.
- error-handler.interceptor.ts: added the new /clients/{id}/edit/pending check to the existing
  "expected 403/404, don't alert" allowlist (same pattern already used for client images/KYC).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-29 10:27:45 +05:30

88 lines
1.6 KiB
SCSS

/**
* Copyright since 2025 Mifos Initiative
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
$border: #e2e8f0;
$text-muted: #64748b;
.cecd-client-link {
color: #1e40af;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
.cecd-content {
min-width: 420px;
max-width: 70vw;
// Explicit scroll behavior rather than relying only on Material's default dialog-content
// sizing — with many changed fields this keeps the dialog itself a fixed height (Close button
// always visible) and scrolls just the table.
max-height: 60vh;
overflow-y: auto;
}
.cecd-table {
width: 100%;
border-collapse: collapse;
font-size: 12.5px;
th,
td {
text-align: left;
padding: 8px 10px;
border-bottom: 1px solid $border;
}
th {
color: $text-muted;
font-weight: 600;
// Stays visible while scrolling through a long list of changed fields.
position: sticky;
top: 0;
background: #fff;
z-index: 1;
}
}
.cecd-label {
font-weight: 600;
color: #0d1b2a;
}
.cecd-current {
color: #b91c1c;
text-decoration: line-through;
text-decoration-color: #fca5a5;
}
.cecd-proposed {
color: #15803d;
font-weight: 600;
}
.cecd-empty {
color: $text-muted;
font-size: 12.5px;
text-align: center;
padding: 16px 10px;
}
.cecd-resolution-note {
margin-top: 14px;
font-size: 12.5px;
color: #166534;
}
.cecd-reject-reason {
margin-top: 14px;
font-size: 12.5px;
color: #b91c1c;
}