feat: complete UI redesign — client creation tabs, footer, home page, CIF & occupation fields
- Client creation: replaced vertical stepper with 3-tab layout (General, KYC & Nominee, Preview) - All form fields redesigned with appearance="outline" and section grouping - Preview tab with profile card, info tables, KYC details, family members - Footer redesigned: security bar, LincShield certifications, regulatory & legal, quick navigation, support & contact, LincPay branding - Home page redesigned: welcome banner, quick action cards, info row - Client view header redesigned: ID chips row (Account No, CIF Number, External Id), 4-column details grid - Added CIF Number column to clients list table - Added CIF Number display to client view sidebar and personal data tab - Added occupationCategoryId and occupationId dropdowns to client creation form - Added occupation fields to client view sidebar, personal data tab, and preview - Added 51+ missing translation keys to en-US.json - Toolbar: added Last login chip - Registered faUserPlus icon 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
b3a4cce0cf
commit
7b1f2e8ad7
@@ -14,6 +14,8 @@ import { Observable } from 'rxjs';
|
||||
import { map } from 'rxjs/operators';
|
||||
import { activities } from '../activities';
|
||||
import { MatAutocompleteTrigger, MatAutocomplete, MatOption } from '@angular/material/autocomplete';
|
||||
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';
|
||||
@@ -32,6 +34,7 @@ import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
|
||||
...STANDALONE_SHARED_IMPORTS,
|
||||
MatAutocompleteTrigger,
|
||||
MatAutocomplete,
|
||||
MatTooltipModule,
|
||||
ClientTrendsBarComponent,
|
||||
AmountDisbursedPieComponent,
|
||||
AmountCollectedPieComponent,
|
||||
@@ -42,6 +45,7 @@ import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
|
||||
})
|
||||
export class DashboardComponent implements OnInit {
|
||||
private router = inject(Router);
|
||||
private dialog = inject(MatDialog);
|
||||
|
||||
today = new Date();
|
||||
|
||||
@@ -147,4 +151,29 @@ export class DashboardComponent implements OnInit {
|
||||
const filterValue = activityName.toLowerCase();
|
||||
return this.allActivities.filter((activity) => activity.activity.toLowerCase().indexOf(filterValue) === 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens the CRR/SLR details dialog with full liabilities breakdown.
|
||||
*/
|
||||
async openCrrSlrDialog(): Promise<void> {
|
||||
const { CrrSlrDialogComponent } = await import('./crr-slr-dialog/crr-slr-dialog.component');
|
||||
this.dialog.open(CrrSlrDialogComponent, {
|
||||
width: '95vw',
|
||||
maxWidth: '1100px',
|
||||
maxHeight: '90vh',
|
||||
panelClass: 'crr-slr-dialog-panel',
|
||||
autoFocus: false
|
||||
});
|
||||
}
|
||||
|
||||
async openCrarDialog(): Promise<void> {
|
||||
const { CrarDialogComponent } = await import('./crar-dialog/crar-dialog.component');
|
||||
this.dialog.open(CrarDialogComponent, {
|
||||
width: '95vw',
|
||||
maxWidth: '1360px',
|
||||
maxHeight: '90vh',
|
||||
panelClass: 'crr-slr-dialog-panel',
|
||||
autoFocus: false
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user