feat (clients): add client's address page

fixes: #258
This commit is contained in:
Jivjyot Singh
2019-12-01 23:20:51 +03:00
committed by Abhay Chawla
parent 636ccb74b0
commit d18097107a
13 changed files with 259 additions and 4 deletions
@@ -0,0 +1,40 @@
<div class="tab-container mat-typography">
<h3>Address</h3>
<div fxLayout="row" fxLayoutAlign="flex-end">
<button mat-raised-button color="primary">
<fa-icon icon="plus"></fa-icon>&nbsp;&nbsp;Add
</button>
</div>
<mat-accordion>
<mat-expansion-panel *ngFor="let address of clientAddressData;index as i" class="address">
<mat-expansion-panel-header>
<mat-panel-title>
{{address.addressType}}
</mat-panel-title>
<mat-panel-description>
{{address.relationship}}
</mat-panel-description>
</mat-expansion-panel-header>
<mat-divider [inset]="true"></mat-divider>
<div class="address-actions" fxLayout="row" fxLayoutAlign="flex-end">
<button mat-button color="primary">
<fa-icon icon="edit"></fa-icon>
</button>
</div>
<p>
<span *ngIf="isFieldEnabled('street')">Street : {{address.street}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine1')">Address Line 1 : {{address.addressLine1}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine2')">Address Line 2 : {{address.addressLine2}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine3')">Address Line 3 : {{address.addressLine3}}<br /></span>
<span *ngIf="isFieldEnabled('townVillage')">Town / Village : {{address.townVillage}}<br /></span>
<span *ngIf="isFieldEnabled('city')">City : {{address.city}}<br /></span>
<span *ngIf="isFieldEnabled('stateProvinceId')">State / Province :
{{getSelectedValue('stateProvinceIdOptions',address.stateProvinceId)?.name}}<br /></span>
<span *ngIf="isFieldEnabled('countryId')">Country :
{{getSelectedValue('countryIdOptions',address.countryId)?.name}}<br /></span>
<span *ngIf="isFieldEnabled('postalCode')">Postal Code : {{address.postalCode}}<br /></span>
<span *ngIf="isFieldEnabled('isActive')">Active Status : {{address.isActive}}<br /></span>
</p>
</mat-expansion-panel>
</mat-accordion>
</div>
@@ -0,0 +1,22 @@
.tab-container {
padding:1%;
margin: 1%;
.address {
.address-actions{
margin-top: 1%;
button{
margin-right: 1%;
}
}
h3 {
margin: 1% auto;
}
p {
line-height: 30px;
margin-left: 2%;
}
}
}
@@ -0,0 +1,25 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { AddressTabComponent } from './address-tab.component';
describe('AddressTabComponent', () => {
let component: AddressTabComponent;
let fixture: ComponentFixture<AddressTabComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ AddressTabComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(AddressTabComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
@@ -0,0 +1,38 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
@Component({
selector: 'mifosx-address-tab',
templateUrl: './address-tab.component.html',
styleUrls: ['./address-tab.component.scss']
})
export class AddressTabComponent implements OnInit {
clientAddressData: any;
clientAddressFieldConfig: any;
clientAddressTemplate: any;
constructor(private route: ActivatedRoute) {
this.route.data.subscribe((data: {
clientAddressData: any,
clientAddressFieldConfig: any,
clientAddressTemplateData: any
}) => {
this.clientAddressData = data.clientAddressData;
this.clientAddressFieldConfig = data.clientAddressFieldConfig;
this.clientAddressTemplate = data.clientAddressTemplateData;
});
}
ngOnInit() {
}
isFieldEnabled(fieldName: any) {
return (this.clientAddressFieldConfig.find((fieldObj: any) => fieldObj.field === fieldName)).is_enabled;
}
getSelectedValue(fieldName: any, fieldId: any) {
return (this.clientAddressTemplate[fieldName].find((fieldObj: any) => fieldObj.id === fieldId));
}
}
@@ -48,6 +48,10 @@
[active]="general.isActive">
General
</a>
<a mat-tab-link [routerLink]="['./address']" routerLinkActive #address="routerLinkActive"
[active]="address.isActive" *ngIf="clientTemplateData.isAddressEnabled">
Address
</a>
<a mat-tab-link [routerLink]="['./family-members']" routerLinkActive #familyMembers="routerLinkActive"
[active]="familyMembers.isActive">
Family Members
@@ -14,16 +14,19 @@ export class ClientsViewComponent implements OnInit {
clientViewData: any;
clientDatatables: any;
clientImage: any;
clientTemplate: any;
clientTemplateData: any;
constructor(private route: ActivatedRoute,
private clientsService: ClientsService,
private _sanitizer: DomSanitizer) {
this.route.data.subscribe((data: {
clientViewData: any,
clientTemplateData: any,
clientDatatables: any
}) => {
this.clientViewData = data.clientViewData;
this.clientDatatables = data.clientDatatables;
this.clientTemplateData = data.clientTemplateData;
});
}
@@ -49,7 +49,7 @@
<button class="identity-action-button" mat-raised-button color="primary" (click)="uploadDocument(i,identity.id)">
<fa-icon icon="cloud-upload-alt"></fa-icon>
</button>
<button class="identity-action-button" mat-raised-button color="warn" (click)="deleteIdentifier(identity.clientId,identity.id,index)">
<button class="identity-action-button" mat-raised-button color="warn" (click)="deleteIdentifier(identity.clientId,identity.id,i)">
<fa-icon icon="times"></fa-icon>
</button>
</td>