feat: non-individual entity UI improvements — hide individual-only sections, fix legal form display, send extended fields to API
- Hide Family Members tab/section for non-individual entities in client view, create flow, and preview - Hide Financial & Classification section for non-individual entities in personal data and preview - Fix legal form column in clients list — fetch legalForm from client API for correct display - Add person/business icon before client name in list rows - Remove unsupportedNpd filter — send authorizedSignatory, additionalInfo, dateOfRegistration to API - Add registration number format hint (mat-hint) based on constitution type - Add spacing between verification row and constitution type dropdowns - Reduce table cell padding and prevent action buttons from being clipped - Add missing MPL-2.0 license headers Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
ab01111424
commit
b890d24bb7
@@ -306,30 +306,5 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ═══════ SECTION: Analytics Charts ═══════ -->
|
||||
<div class="section-header analytics">
|
||||
<fa-icon icon="chart-bar" class="section-icon"></fa-icon>
|
||||
<span>Analytics</span>
|
||||
</div>
|
||||
<div class="charts-section">
|
||||
<div class="top-card">
|
||||
<div class="trends-bar">
|
||||
<mifosx-client-trends-bar></mifosx-client-trends-bar>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottom-card">
|
||||
<div class="amount-disbursed">
|
||||
<mifosx-amount-disbursed-pie></mifosx-amount-disbursed-pie>
|
||||
</div>
|
||||
|
||||
<div class="amount-collected">
|
||||
<mifosx-amount-collected-pie></mifosx-amount-collected-pie>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Footer -->
|
||||
<div class="cbs-footer">CBS Monitoring Dashboard • Internal Use Only</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -94,10 +94,6 @@ $purple: #7c3aed;
|
||||
background: #fff3e0;
|
||||
color: #e65100;
|
||||
}
|
||||
&.analytics {
|
||||
background: #e0f2f1;
|
||||
color: #004d40;
|
||||
}
|
||||
}
|
||||
|
||||
/* ─── Card Grid Layouts ─── */
|
||||
@@ -714,39 +710,6 @@ $purple: #7c3aed;
|
||||
}
|
||||
}
|
||||
|
||||
/* ─── Charts ─── */
|
||||
.charts-section {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
|
||||
.top-card {
|
||||
.trends-bar {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.bottom-card {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
gap: 15px;
|
||||
|
||||
.amount-collected,
|
||||
.amount-disbursed {
|
||||
flex: 1 0 calc(50% - 15px);
|
||||
min-width: 300px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.cbs-footer {
|
||||
margin-top: 30px;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
color: #94a3b8;
|
||||
padding: 15px 0;
|
||||
}
|
||||
|
||||
/* ─── Responsive ─── */
|
||||
@media screen and (width <= 1200px) {
|
||||
.four-col {
|
||||
@@ -780,12 +743,4 @@ $purple: #7c3aed;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.charts-section .bottom-card {
|
||||
flex-direction: column;
|
||||
.amount-collected,
|
||||
.amount-disbursed {
|
||||
flex: 1 0 100%;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,9 +17,6 @@ import { MatAutocompleteTrigger, MatAutocomplete, MatOption } from '@angular/mat
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { MatTooltipModule } from '@angular/material/tooltip';
|
||||
import { AsyncPipe, DatePipe } from '@angular/common';
|
||||
import { ClientTrendsBarComponent } from './client-trends-bar/client-trends-bar.component';
|
||||
import { AmountDisbursedPieComponent } from './amount-disbursed-pie/amount-disbursed-pie.component';
|
||||
import { AmountCollectedPieComponent } from './amount-collected-pie/amount-collected-pie.component';
|
||||
import { FaIconComponent } from '@fortawesome/angular-fontawesome';
|
||||
import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
|
||||
/**
|
||||
@@ -35,9 +32,6 @@ import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
|
||||
MatAutocompleteTrigger,
|
||||
MatAutocomplete,
|
||||
MatTooltipModule,
|
||||
ClientTrendsBarComponent,
|
||||
AmountDisbursedPieComponent,
|
||||
AmountCollectedPieComponent,
|
||||
AsyncPipe,
|
||||
DatePipe,
|
||||
FaIconComponent
|
||||
|
||||
@@ -7,6 +7,12 @@
|
||||
-->
|
||||
|
||||
<div class="warn-dialog">
|
||||
<!-- Branding -->
|
||||
<div class="warn-branding">
|
||||
<div class="warn-branding__logomark"><span></span><span></span><span></span><span></span></div>
|
||||
<span class="warn-branding__text">CBS<em>Nexora</em></span>
|
||||
</div>
|
||||
|
||||
<!-- Icon + Header -->
|
||||
<div class="warn-header">
|
||||
<div class="warn-header__icon-wrap">
|
||||
@@ -35,7 +41,12 @@
|
||||
</mat-dialog-content>
|
||||
|
||||
<!-- Actions -->
|
||||
<mat-dialog-actions class="warn-actions" align="end">
|
||||
<mat-dialog-actions class="warn-actions">
|
||||
<div class="warn-actions__logos">
|
||||
<img src="assets/images/npci.jpg" alt="NPCI" class="warn-actions__logo-img" />
|
||||
<img src="assets/images/cfcfrms.jpg" alt="CFCFRMS" class="warn-actions__logo-img" />
|
||||
<img src="assets/images/rbi.jpg" alt="RBI" class="warn-actions__logo-img" />
|
||||
</div>
|
||||
<button mat-flat-button color="primary" class="warn-actions__btn" mat-dialog-close (click)="dialogRef.close()">
|
||||
<i class="fa fa-check warn-actions__btn-icon"></i>
|
||||
{{ 'labels.buttons.' + buttonText | translate }}
|
||||
|
||||
@@ -24,6 +24,44 @@ $white: #fff;
|
||||
max-width: 480px;
|
||||
}
|
||||
|
||||
// Branding
|
||||
.warn-branding {
|
||||
padding: 18px 24px 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
gap: 10px;
|
||||
|
||||
&__logomark {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 3px;
|
||||
|
||||
span {
|
||||
border-radius: 2px;
|
||||
|
||||
&:nth-child(1) { background: #0d3d78; }
|
||||
&:nth-child(2) { background: #0ea5e9; }
|
||||
&:nth-child(3) { background: #10b981; }
|
||||
&:nth-child(4) { background: rgba(#0d3d78, 0.3); }
|
||||
}
|
||||
}
|
||||
|
||||
&__text {
|
||||
font-size: 22px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.06em;
|
||||
color: #0d3d78;
|
||||
|
||||
em {
|
||||
font-style: normal;
|
||||
color: #0ea5e9;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Header
|
||||
.warn-header {
|
||||
display: flex;
|
||||
@@ -102,6 +140,22 @@ $white: #fff;
|
||||
padding: 12px 24px 18px !important;
|
||||
border-top: 1px solid $gray-200;
|
||||
margin: 0 !important;
|
||||
display: flex !important;
|
||||
justify-content: space-between !important;
|
||||
align-items: center !important;
|
||||
|
||||
&__logos {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
&__logo-img {
|
||||
height: 28px;
|
||||
width: auto;
|
||||
object-fit: contain;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
&__btn {
|
||||
border-radius: 8px !important;
|
||||
|
||||
Reference in New Issue
Block a user