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,121 @@
<mat-card-header fxLayout="row" fxLayoutGap="5%" class="header">
<fa-icon class="main-icon" icon="building" size="3x"></fa-icon>
<mat-card-title-group>
<div class="mat-typography">
<mat-card-title>
<h2>
{{ centerData.name }}
<span [className]="centerData.status.code | statusLookup">
<fa-icon matTooltip="{{ centerData.status.value }}" matTooltipPosition="right" icon="circle" size="lg"></fa-icon>
</span>
</h2>
</mat-card-title>
<mat-card-subtitle>
<p>
Account No: {{ centerData.accountNo }} | {{ centerData.externalId ? '| External ID: ' + centerData.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">
Activation Date
</div>
<div fxFlex="50%">
{{ centerData.activationDate | date }}
</div>
<div fxFlex="50%" class="mat-body-strong">
Associated Officer
</div>
<div fxFlex="50%">
{{ centerData.staffName }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="centerSummaryData">
Number of Active Clients
</div>
<div fxFlex="50%" *ngIf="centerSummaryData">
{{ centerSummaryData.activeClients }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="centerSummaryData">
Number of Active Client Loans
</div>
<div fxFlex="50%" *ngIf="centerSummaryData">
{{ centerSummaryData.activeClientLoans }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="centerSummaryData">
Number of Active Client Borrowers
</div>
<div fxFlex="50%" *ngIf="centerSummaryData">
{{ centerSummaryData.activeClientBorrowers }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="centerSummaryData">
Number of Active Overdue Group Loans
</div>
<div fxFlex="50%" *ngIf="centerSummaryData">
{{ centerSummaryData.overdueGroupLoans }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="centerSummaryData">
Number of Active Overdue Client Loans
</div>
<div fxFlex="50%" *ngIf="centerSummaryData">
{{ centerSummaryData.overdueClientLoans }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="centerData.collectionMeetingCalendar && centerData.collectionMeetingCalendar.nextTenRecurringDates[0]">
Next Meeting Date
</div>
<div fxFlex="50%" *ngIf="centerData.collectionMeetingCalendar && centerData.collectionMeetingCalendar.nextTenRecurringDates[0]">
{{ centerSummaryData.collectionMeetingCalendar.nextTenRecurringDates[0] | date }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="centerData.collectionMeetingCalendar && centerData.collectionMeetingCalendar.humanReadable">
Meeting Frequency
</div>
<div fxFlex="50%" *ngIf="centerData.collectionMeetingCalendar && centerData.collectionMeetingCalendar.humanReadable">
{{ centerSummaryData.collectionMeetingCalendar.humanReadable }}
</div>
<div fxFlex="50%" class="mat-body-strong">
Number of Groups
</div>
<div fxFlex="50%">
{{ groupData ? groupData.length : '' }}
</div>
</div>
</mat-tab>
<mat-tab label="Loan Accounts" *ngIf="centerAccountsData && centerAccountsData.loanAccounts">
<mifosx-loan-account-table [loanAccountData]="centerAccountsData.loanAccounts"></mifosx-loan-account-table>
</mat-tab>
<mat-tab label="Savings Accounts" *ngIf="centerAccountsData && centerAccountsData.savingsAccounts">
<mifosx-savings-account-table [savingsAccountData]="centerAccountsData.savingsAccounts"></mifosx-savings-account-table>
</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 { CenterNavigationComponent } from './center-navigation.component';
describe('CenterNavigationComponent', () => {
let component: CenterNavigationComponent;
let fixture: ComponentFixture<CenterNavigationComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ CenterNavigationComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(CenterNavigationComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
@@ -0,0 +1,29 @@
/** 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';
@Component({
selector: 'mifosx-center-navigation',
templateUrl: './center-navigation.component.html',
styleUrls: ['./center-navigation.component.scss']
})
export class CenterNavigationComponent implements OnInit {
@ViewChild(LoanAccountTableComponent) loanAccountTableComponent: LoanAccountTableComponent;
@ViewChild(SavingsAccountTableComponent) savingsAccountTableComponent: SavingsAccountTableComponent;
@Input() centerData: any;
@Input() centerAccountsData: any;
@Input() centerSummaryData: any;
@Input() groupData: any;
constructor() { }
ngOnInit() {
}
}