feat: add navigation component (#590)

Fixes: #256
This commit is contained in:
punwai
2020-05-24 22:28:47 +05:30
committed by GitHub
parent 7a5069e590
commit e2707a1d0a
43 changed files with 1713 additions and 9 deletions
@@ -0,0 +1,115 @@
<mat-card-header fxLayout="row" fxLayoutGap="5%">
<fa-icon class="main-icon" icon="user" size="3x"></fa-icon>
<mat-card-title-group>
<div class="mat-typography">
<mat-card-title>
<h2>
{{ clientData.displayName }}
<span [className]="clientData.status.code | statusLookup">
<fa-icon matTooltip="{{ clientData.status.value }}" matTooltipPosition="right" icon="circle" size="lg"></fa-icon>
</span>
</h2>
</mat-card-title>
<mat-card-subtitle>
<p>
Account No: {{ clientData.accountNo }} {{ clientData.externalId ? '| External ID: ' + clientData.externalId : '' }}
</p>
</mat-card-subtitle>
</div>
</mat-card-title-group>
</mat-card-header>
<mat-card-content>
<mat-tab-group>
<mat-tab label="Details">
<div fxLayout="row wrap" class="content">
<div fxFlex="50%" class="mat-body-strong" *ngIf="clientData.firstName">
First Name
</div>
<div fxFlex="50%" *ngIf="clientData.firstName">
{{ clientData.firstName }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="clientData.middleName">
Middle Name
</div>
<div fxFlex="50%" *ngIf="clientData.middleName">
{{ clientData.middleName }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="clientData.lastName">
Last Name
</div>
<div fxFlex="50%" *ngIf="clientData.lastName">
{{ clientData.lastName }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="clientData.dateOfBirth">
Date of Birth
</div>
<div fxFlex="50%" *ngIf="clientData.dateOfBirth">
{{ clientData.dateOfBirth | date }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="clientData.mobileNo">
Mobile Number
</div>
<div fxFlex="50%" *ngIf="clientData.mobileNo">
{{ clientData.mobileNo }}
</div>
<div fxFlex="50%" class="mat-body-strong">
Activation Date
</div>
<div fxFlex="50%">
{{ clientData.activationDate | date }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="clientData.officeName">
Associated Office
</div>
<div fxFlex="50%" *ngIf="clientData.officeName">
{{ clientData.officeName }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="clientData.staffName">
Associated Staff
</div>
<div fxFlex="50%" *ngIf="clientData.staffName">
{{ clientData.staffName }}
</div>
</div>
</mat-tab>
<mat-tab label="Loan Accounts" *ngIf="clientAccountsData && clientAccountsData.loanAccounts">
<mifosx-loan-account-table [loanAccountData]="clientAccountsData.loanAccounts"></mifosx-loan-account-table>
</mat-tab>
<mat-tab label="Savings Accounts" *ngIf="clientAccountsData && clientAccountsData.savingsAccounts">
<mifosx-savings-account-table [savingsAccountData]="clientAccountsData.savingsAccounts"></mifosx-savings-account-table>
</mat-tab>
<mat-tab label="Share Accounts" *ngIf="clientAccountsData && clientAccountsData.shareAccounts">
<mifosx-share-account-table [shareAccountData]="clientAccountsData.shareAccounts"></mifosx-share-account-table>
</mat-tab>
<mat-tab label="Group Members" *ngIf="clientData.groups && clientData.groups.length !== 0">
<mifosx-member-groups [memberGroupData]="clientData.groups"></mifosx-member-groups>
</mat-tab>
</mat-tab-group>
</mat-card-content>
@@ -0,0 +1,14 @@
.main-icon {
margin: 7px 0 0 0;
}
h2 {
font-weight: 500;
}
.content {
div {
margin: 1rem 0;
word-wrap: break-word;
}
}
@@ -0,0 +1,25 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ClientNavigationComponent } from './client-navigation.component';
describe('ClientNavigationComponent', () => {
let component: ClientNavigationComponent;
let fixture: ComponentFixture<ClientNavigationComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ClientNavigationComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ClientNavigationComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
@@ -0,0 +1,30 @@
/** Angular Imports */
import { Component, OnInit, Input, ViewChild } from '@angular/core';
/** Custom Components */
import { LoanAccountTableComponent } from '../loan-account-table/loan-account-table.component';
import { SavingsAccountTableComponent } from '../savings-account-table/savings-account-table.component';
import { ShareAccountTableComponent } from '../share-account-table/share-account-table.component';
import { MemberGroupsComponent } from '../member-groups/member-groups.component';
@Component({
selector: 'mifosx-client-navigation',
templateUrl: './client-navigation.component.html',
styleUrls: ['./client-navigation.component.scss']
})
export class ClientNavigationComponent implements OnInit {
@ViewChild(LoanAccountTableComponent) loanAccountTableComponent: LoanAccountTableComponent;
@ViewChild(SavingsAccountTableComponent) savingsAccountTableComponent: SavingsAccountTableComponent;
@ViewChild(ShareAccountTableComponent) shareAccountTableComponent: ShareAccountTableComponent;
@ViewChild(MemberGroupsComponent) memberGroupsComponent: MemberGroupsComponent;
@Input() clientData: any;
@Input() clientAccountsData: any;
constructor() { }
ngOnInit() {
}
}