build: Use prettier for html
Stop ignoring html files in prettier and fix existing issues.
This commit is contained in:
+59
-47
@@ -1,46 +1,57 @@
|
||||
<div class="tab-container mat-typography" *ngIf="checkerData">
|
||||
|
||||
<div fxLayout="row" fxLayoutAlign="start center">
|
||||
<div class="search-box" fxFlex="40%">
|
||||
<mat-form-field fxFlex="90%">
|
||||
<input matInput placeholder="{{'labels.text.Search by user' | translate}}" (keyup)="applyFilter($event.target.value)">
|
||||
<input
|
||||
matInput
|
||||
placeholder="{{ 'labels.text.Search by user' | translate }}"
|
||||
(keyup)="applyFilter($event.target.value)"
|
||||
/>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div fxFlex="60%" fxLayoutGap="0.5rem">
|
||||
<button mat-raised-button color="success" (click)="approveChecker()">
|
||||
<fa-icon icon="check" class="m-r-10"></fa-icon>{{'labels.buttons.Approve' | translate}}
|
||||
<fa-icon icon="check" class="m-r-10"></fa-icon>{{ 'labels.buttons.Approve' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="warn" (click)="deleteChecker()">
|
||||
<fa-icon icon="trash" class="m-r-10"></fa-icon>{{'labels.buttons.Delete' | translate}}
|
||||
<fa-icon icon="trash" class="m-r-10"></fa-icon>{{ 'labels.buttons.Delete' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="reject" (click)="rejectChecker()">
|
||||
<fa-icon icon="times" class="m-r-10"></fa-icon>{{'labels.buttons.Reject' | translate}}
|
||||
<fa-icon icon="times" class="m-r-10"></fa-icon>{{ 'labels.buttons.Reject' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form [formGroup]="makerCheckerSearchForm">
|
||||
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
|
||||
<mat-form-field fxFlex="31%" (click)="makerDateTimeFromPicker.open()">
|
||||
<mat-label>{{'labels.inputs.From Date' | translate}}</mat-label>
|
||||
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="makerDateTimeFromPicker"
|
||||
formControlName="makerDateTimeFrom">
|
||||
<mat-label>{{ 'labels.inputs.From Date' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
[min]="minDate"
|
||||
[max]="maxDate"
|
||||
[matDatepicker]="makerDateTimeFromPicker"
|
||||
formControlName="makerDateTimeFrom"
|
||||
/>
|
||||
<mat-datepicker-toggle matSuffix [for]="makerDateTimeFromPicker"></mat-datepicker-toggle>
|
||||
<mat-datepicker #makerDateTimeFromPicker></mat-datepicker>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="31%" (click)="makerDateTimetoPicker.open()">
|
||||
<mat-label>{{'labels.inputs.To Date' | translate}}</mat-label>
|
||||
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="makerDateTimetoPicker"
|
||||
formControlName="makerDateTimeto">
|
||||
<mat-label>{{ 'labels.inputs.To Date' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
[min]="minDate"
|
||||
[max]="maxDate"
|
||||
[matDatepicker]="makerDateTimetoPicker"
|
||||
formControlName="makerDateTimeto"
|
||||
/>
|
||||
<mat-datepicker-toggle matSuffix [for]="makerDateTimetoPicker"></mat-datepicker-toggle>
|
||||
<mat-datepicker #makerDateTimetoPicker></mat-datepicker>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="31%">
|
||||
<mat-label>{{'labels.inputs.Action' | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Action' | translate }}</mat-label>
|
||||
<mat-select formControlName="actionName">
|
||||
<mat-option *ngFor="let action of makerCheckerTemplate.actionNames" [value]="action">
|
||||
{{ action }}
|
||||
@@ -49,7 +60,7 @@
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="31%">
|
||||
<mat-label>{{'labels.inputs.Entity' | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Entity' | translate }}</mat-label>
|
||||
<mat-select formControlName="entityName">
|
||||
<mat-option *ngFor="let entity of makerCheckerTemplate.entityNames" [value]="entity">
|
||||
{{ entity }}
|
||||
@@ -58,82 +69,83 @@
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="31%">
|
||||
<mat-label>{{'labels.inputs.Resource ID' | translate}}</mat-label>
|
||||
<input matInput formControlName="resourceId">
|
||||
<mat-label>{{ 'labels.inputs.Resource ID' | translate }}</mat-label>
|
||||
<input matInput formControlName="resourceId" />
|
||||
</mat-form-field>
|
||||
|
||||
<button mat-raised-button color="primary" id="search-button" (click)="search()">{{'labels.buttons.Search' | translate}}</button>
|
||||
|
||||
<button mat-raised-button color="primary" id="search-button" (click)="search()">
|
||||
{{ 'labels.buttons.Search' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<table mat-table [dataSource]="dataSource" *ngIf="!(noSearchedData)">
|
||||
|
||||
<table mat-table [dataSource]="dataSource" *ngIf="!noSearchedData">
|
||||
<ng-container matColumnDef="select">
|
||||
<th mat-header-cell *matHeaderCellDef>
|
||||
<mat-checkbox (change)="$event ? masterToggle() : null" [checked]="selection.hasValue() && isAllSelected()"
|
||||
[indeterminate]="selection.hasValue() && !isAllSelected()" [aria-label]="checkboxLabel()">
|
||||
<mat-checkbox
|
||||
(change)="$event ? masterToggle() : null"
|
||||
[checked]="selection.hasValue() && isAllSelected()"
|
||||
[indeterminate]="selection.hasValue() && !isAllSelected()"
|
||||
[aria-label]="checkboxLabel()"
|
||||
>
|
||||
</mat-checkbox>
|
||||
</th>
|
||||
<td mat-cell *matCellDef="let row">
|
||||
<mat-checkbox (click)="$event.stopPropagation()" (change)="$event ? selection.toggle(row) : null"
|
||||
[checked]="selection.isSelected(row)" [aria-label]="checkboxLabel(row)">
|
||||
<mat-checkbox
|
||||
(click)="$event.stopPropagation()"
|
||||
(change)="$event ? selection.toggle(row) : null"
|
||||
[checked]="selection.isSelected(row)"
|
||||
[aria-label]="checkboxLabel(row)"
|
||||
>
|
||||
</mat-checkbox>
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="id">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.ID' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let makerChecker"> {{ makerChecker.id }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.ID' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let makerChecker">{{ makerChecker.id }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="madeOnDate">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Made on Date' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let makerChecker"> {{ makerChecker.madeOnDate | dateFormat }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Made on Date' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let makerChecker">{{ makerChecker.madeOnDate | dateFormat }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="status">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Status' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let makerChecker"> {{ makerChecker.processingResult }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Status' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let makerChecker">{{ makerChecker.processingResult }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="user">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.User' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let makerChecker"> {{ makerChecker.maker }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.User' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let makerChecker">{{ makerChecker.maker }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="action">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Action' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let makerChecker"> {{ makerChecker.actionName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Action' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let makerChecker">{{ makerChecker.actionName }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="entity">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Entity' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let makerChecker"> {{ makerChecker.entityName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Entity' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let makerChecker">{{ makerChecker.entityName }}</td>
|
||||
</ng-container>
|
||||
|
||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;" [routerLink]="[row.id,'view']" class="select-row">
|
||||
</tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns" [routerLink]="[row.id, 'view']" class="select-row"></tr>
|
||||
</table>
|
||||
|
||||
<div class="alert" *ngIf="noSearchedData">
|
||||
|
||||
<div class="message">
|
||||
<i class="fa fa-exclamation-circle alert-check fa-2x"></i>
|
||||
{{'labels.text.No checker inbox data available for this search' | translate}}
|
||||
{{ 'labels.text.No checker inbox data available for this search' | translate }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="alert" *ngIf="!checkerData">
|
||||
|
||||
<div class="message">
|
||||
<i class="fa fa-exclamation-circle alert-check fa-2x"></i>
|
||||
{{'labels.text.No checker inbox data available for this account' | translate}}
|
||||
{{ 'labels.text.No checker inbox data available for this account' | translate }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
+34
-32
@@ -1,76 +1,78 @@
|
||||
<div class="tab-container mat-typography" *ngIf="showData">
|
||||
|
||||
<div fxLayout="row" fxLayoutAlign="start center">
|
||||
<div class="search-box" fxFlex="40%">
|
||||
<mat-form-field fxFlex="90%">
|
||||
<input matInput placeholder="{{'labels.text.Filter by name' | translate}}"
|
||||
(keyup)="applyFilter($event.target.value)">
|
||||
<input
|
||||
matInput
|
||||
placeholder="{{ 'labels.text.Filter by name' | translate }}"
|
||||
(keyup)="applyFilter($event.target.value)"
|
||||
/>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div fxFlex="60%">
|
||||
<button mat-raised-button color="success" *mifosxHasPermission="'ACTIVATE_CLIENT'" (click)="approveClients()">
|
||||
<fa-icon icon="check" class="m-r-10"></fa-icon>{{'labels.buttons.Approve' | translate}}
|
||||
<fa-icon icon="check" class="m-r-10"></fa-icon>{{ 'labels.buttons.Approve' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ng-container *ngFor="let client of groupedClients | keyvalue">
|
||||
|
||||
<h3> {{client.key}} </h3>
|
||||
<h3>{{ client.key }}</h3>
|
||||
|
||||
<ng-container *ngIf="client.value.length > 0">
|
||||
|
||||
<table mat-table [dataSource]="client.value|accountsFilter:'clientApproval'">
|
||||
|
||||
<table mat-table [dataSource]="client.value | accountsFilter: 'clientApproval'">
|
||||
<ng-container matColumnDef="select">
|
||||
<th mat-header-cell *matHeaderCellDef>
|
||||
<mat-checkbox (change)="$event ? masterToggle(client.value) : null"
|
||||
<mat-checkbox
|
||||
(change)="$event ? masterToggle(client.value) : null"
|
||||
[checked]="selection.hasValue() && isAllSelected(client.value)"
|
||||
[indeterminate]="selection.hasValue() && !isAllSelected(client.value)"
|
||||
[aria-label]="checkboxLabel(client.value)">
|
||||
[aria-label]="checkboxLabel(client.value)"
|
||||
>
|
||||
</mat-checkbox>
|
||||
</th>
|
||||
<td mat-cell *matCellDef="let row">
|
||||
<mat-checkbox (click)="$event.stopPropagation()" (change)="$event ? selection.toggle(row) : null"
|
||||
[checked]="selection.isSelected(row)" [aria-label]="checkboxLabel(row)">
|
||||
<mat-checkbox
|
||||
(click)="$event.stopPropagation()"
|
||||
(change)="$event ? selection.toggle(row) : null"
|
||||
[checked]="selection.isSelected(row)"
|
||||
[aria-label]="checkboxLabel(row)"
|
||||
>
|
||||
</mat-checkbox>
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="name">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.name' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let element" class="view-details" [routerLink]="['../../clients', element.id]"> {{
|
||||
element.displayName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.name' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let element" class="view-details" [routerLink]="['../../clients', element.id]">
|
||||
{{ element.displayName }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="accountNumber">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Account Number' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let element" class="view-details" [routerLink]="['../../clients', element.id]"> {{
|
||||
element.accountNo }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Account Number' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let element" class="view-details" [routerLink]="['../../clients', element.id]">
|
||||
{{ element.accountNo }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="staff">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Staff' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let element" class="view-details" [routerLink]="['../../clients', element.id]"> {{
|
||||
element.staffName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Staff' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let element" class="view-details" [routerLink]="['../../clients', element.id]">
|
||||
{{ element.staffName }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;" (click)="selection.toggle(row)">
|
||||
</tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns" (click)="selection.toggle(row)"></tr>
|
||||
</table>
|
||||
|
||||
</ng-container>
|
||||
|
||||
</ng-container>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="alert" *ngIf="!(showData)">
|
||||
|
||||
<div class="alert" *ngIf="!showData">
|
||||
<div class="message">
|
||||
<i class="fa fa-exclamation-circle alert-check"></i>
|
||||
{{'labels.text.No pending loans for approval' | translate}}
|
||||
{{ 'labels.text.No pending loans for approval' | translate }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+42
-29
@@ -1,78 +1,91 @@
|
||||
<div class="tab-container mat-typography" *ngIf="showData">
|
||||
|
||||
<div fxLayout="row" fxLayoutAlign="start center">
|
||||
<div class="search-box" fxFlex="40%">
|
||||
<mat-form-field fxFlex="90%">
|
||||
<input matInput placeholder="{{'labels.text.Filter by name' | translate}}" (keyup)="applyFilter($event.target.value)">
|
||||
<input
|
||||
matInput
|
||||
placeholder="{{ 'labels.text.Filter by name' | translate }}"
|
||||
(keyup)="applyFilter($event.target.value)"
|
||||
/>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div fxFlex="60%">
|
||||
<button mat-raised-button color="success" *mifosxHasPermission="'APPROVE_LOAN'" (click)="approveLoan()">
|
||||
<fa-icon icon="check" class="m-r-10"></fa-icon>{{'labels.buttons.Approve' | translate}}
|
||||
<fa-icon icon="check" class="m-r-10"></fa-icon>{{ 'labels.buttons.Approve' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ng-container *ngFor="let office of officesArray">
|
||||
|
||||
<h3 class="mat-h3">{{ office.name }}</h3>
|
||||
|
||||
<ng-container *ngIf="office.loans.length > 0">
|
||||
|
||||
<table mat-table [dataSource]="office.loans">
|
||||
|
||||
<ng-container matColumnDef="select">
|
||||
<th mat-header-cell *matHeaderCellDef>
|
||||
<mat-checkbox (change)="$event ? masterToggle(office.loans) : null"
|
||||
<mat-checkbox
|
||||
(change)="$event ? masterToggle(office.loans) : null"
|
||||
[checked]="selection.hasValue() && isAllSelected(office.loans)"
|
||||
[indeterminate]="selection.hasValue() && !isAllSelected(office.loans)" [aria-label]="checkboxLabel(office.loans)">
|
||||
[indeterminate]="selection.hasValue() && !isAllSelected(office.loans)"
|
||||
[aria-label]="checkboxLabel(office.loans)"
|
||||
>
|
||||
</mat-checkbox>
|
||||
</th>
|
||||
<td mat-cell *matCellDef="let row">
|
||||
<mat-checkbox (click)="$event.stopPropagation()" (change)="$event ? selection.toggle(row) : null"
|
||||
[checked]="selection.isSelected(row)" [aria-label]="checkboxLabel(row)">
|
||||
<mat-checkbox
|
||||
(click)="$event.stopPropagation()"
|
||||
(change)="$event ? selection.toggle(row) : null"
|
||||
[checked]="selection.isSelected(row)"
|
||||
[aria-label]="checkboxLabel(row)"
|
||||
>
|
||||
</mat-checkbox>
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="clientName">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Client' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let loan" class="view-details" [routerLink]="['../../clients', loan.clientId, 'general']">
|
||||
{{ loan.clientName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Client' | translate }}</th>
|
||||
<td
|
||||
mat-cell
|
||||
*matCellDef="let loan"
|
||||
class="view-details"
|
||||
[routerLink]="['../../clients', loan.clientId, 'general']"
|
||||
>
|
||||
{{ loan.clientName }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="loan">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Loan' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let loan" class="view-details" [routerLink]="['../../clients', loan.clientId, 'loans-accounts', 'loan.id']">
|
||||
{{ loan.loanProductName}}({{loan.accountNo}}) </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Loan' | translate }}</th>
|
||||
<td
|
||||
mat-cell
|
||||
*matCellDef="let loan"
|
||||
class="view-details"
|
||||
[routerLink]="['../../clients', loan.clientId, 'loans-accounts', 'loan.id']"
|
||||
>
|
||||
{{ loan.loanProductName }}({{ loan.accountNo }})
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="amount">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Amount' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let loan"> {{ loan.principal | formatNumber}} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Amount' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let loan">{{ loan.principal | formatNumber }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="loanPurpose">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Loan Purpose' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let loan"> {{ loan.loanPurposeName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Loan Purpose' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let loan">{{ loan.loanPurposeName }}</td>
|
||||
</ng-container>
|
||||
|
||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;" (click)="selection.toggle(row)">
|
||||
</tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns" (click)="selection.toggle(row)"></tr>
|
||||
</table>
|
||||
|
||||
</ng-container>
|
||||
|
||||
</ng-container>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="alert" *ngIf="!(showData)">
|
||||
|
||||
<div class="alert" *ngIf="!showData">
|
||||
<div class="message">
|
||||
<i class="fa fa-exclamation-circle alert-check"></i>
|
||||
{{'labels.text.No pending loans for approval' | translate}}
|
||||
{{ 'labels.text.No pending loans for approval' | translate }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
+49
-22
@@ -1,65 +1,92 @@
|
||||
<div class="tab-container mat-typography" *ngIf="loans && loans.length > 0">
|
||||
|
||||
<div fxLayout="row" fxLayoutAlign="start center">
|
||||
<div class="search-box" fxFlex="40%">
|
||||
<mat-form-field fxFlex="90%">
|
||||
<input matInput placeholder="{{'labels.text.Filter by name' | translate}}" (keyup)="applyFilter($event.target.value)">
|
||||
<input
|
||||
matInput
|
||||
placeholder="{{ 'labels.text.Filter by name' | translate }}"
|
||||
(keyup)="applyFilter($event.target.value)"
|
||||
/>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div fxFlex="60%">
|
||||
<button mat-raised-button color="success" *mifosxHasPermission="'APPROVE_LOAN'" (click)="disburseLoan()">
|
||||
<fa-icon icon="check" class="m-r-10"></fa-icon>{{'labels.menus.Disburse' | translate}}
|
||||
<fa-icon icon="check" class="m-r-10"></fa-icon>{{ 'labels.menus.Disburse' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table mat-table [dataSource]="dataSource">
|
||||
|
||||
<ng-container matColumnDef="select">
|
||||
<th mat-header-cell *matHeaderCellDef>
|
||||
<mat-checkbox (change)="$event ? masterToggle() : null" [checked]="selection.hasValue() && isAllSelected()"
|
||||
[indeterminate]="selection.hasValue() && !isAllSelected()" [aria-label]="checkboxLabel()">
|
||||
<mat-checkbox
|
||||
(change)="$event ? masterToggle() : null"
|
||||
[checked]="selection.hasValue() && isAllSelected()"
|
||||
[indeterminate]="selection.hasValue() && !isAllSelected()"
|
||||
[aria-label]="checkboxLabel()"
|
||||
>
|
||||
</mat-checkbox>
|
||||
</th>
|
||||
<td mat-cell *matCellDef="let row">
|
||||
<mat-checkbox (click)="$event.stopPropagation()" (change)="$event ? selection.toggle(row) : null"
|
||||
[checked]="selection.isSelected(row)" [aria-label]="checkboxLabel(row)">
|
||||
<mat-checkbox
|
||||
(click)="$event.stopPropagation()"
|
||||
(change)="$event ? selection.toggle(row) : null"
|
||||
[checked]="selection.isSelected(row)"
|
||||
[aria-label]="checkboxLabel(row)"
|
||||
>
|
||||
</mat-checkbox>
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="client">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Client Name' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let loan" class="view-details" [routerLink]="['../../clients', loan.clientId, 'general']"> {{loan.clientName}} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Client Name' | translate }}</th>
|
||||
<td
|
||||
mat-cell
|
||||
*matCellDef="let loan"
|
||||
class="view-details"
|
||||
[routerLink]="['../../clients', loan.clientId, 'general']"
|
||||
>
|
||||
{{ loan.clientName }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="loanAccountNumber">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Loan Account' | translate}}# </th>
|
||||
<td mat-cell *matCellDef="let loan" class="view-details" [routerLink]="['../../clients', loan.clientId, 'loans-accounts', loan.id, 'general']"> {{loan.accountNo}} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Loan Account' | translate }}#</th>
|
||||
<td
|
||||
mat-cell
|
||||
*matCellDef="let loan"
|
||||
class="view-details"
|
||||
[routerLink]="['../../clients', loan.clientId, 'loans-accounts', loan.id, 'general']"
|
||||
>
|
||||
{{ loan.accountNo }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="loanProduct">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Loan Product' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let loan" class="view-details" [routerLink]="['../../clients', loan.clientId, 'loans-accounts', loan.id, 'general']"> {{loan.loanProductName}} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Loan Product' | translate }}</th>
|
||||
<td
|
||||
mat-cell
|
||||
*matCellDef="let loan"
|
||||
class="view-details"
|
||||
[routerLink]="['../../clients', loan.clientId, 'loans-accounts', loan.id, 'general']"
|
||||
>
|
||||
{{ loan.loanProductName }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="principal">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Principal' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let loan"> {{loan.principal | formatNumber}} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Principal' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let loan">{{ loan.principal | formatNumber }}</td>
|
||||
</ng-container>
|
||||
|
||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;" (click)="selection.toggle(row)">
|
||||
</tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns" (click)="selection.toggle(row)"></tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="alert" *ngIf="loans.length === 0">
|
||||
|
||||
<div class="message">
|
||||
<i class="fa fa-exclamation-circle alert-check"></i>
|
||||
{{'labels.text.No pending loan available for disbursal' | translate}}
|
||||
{{ 'labels.text.No pending loan available for disbursal' | translate }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
+57
-29
@@ -1,75 +1,103 @@
|
||||
<div class="tab-container mat-typography" *ngIf="loans && loans.length > 0">
|
||||
|
||||
<div fxLayout="row" fxLayoutAlign="start center">
|
||||
<div class="search-box" fxFlex="40%">
|
||||
<mat-form-field fxFlex="90%">
|
||||
<input matInput placeholder="{{'labels.text.Filter by name' | translate}}" (keyup)="applyFilter($event.target.value)">
|
||||
<input
|
||||
matInput
|
||||
placeholder="{{ 'labels.text.Filter by name' | translate }}"
|
||||
(keyup)="applyFilter($event.target.value)"
|
||||
/>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div fxFlex="60%">
|
||||
<button mat-raised-button color="success" *mifosxHasPermission="'APPROVE_LOANRESCHEDULE'"
|
||||
(click)="bulkLoanReschedule('Approve')">
|
||||
<fa-icon icon="check" class="m-r-10"></fa-icon>{{'labels.buttons.Approve' | translate}}
|
||||
<button
|
||||
mat-raised-button
|
||||
color="success"
|
||||
*mifosxHasPermission="'APPROVE_LOANRESCHEDULE'"
|
||||
(click)="bulkLoanReschedule('Approve')"
|
||||
>
|
||||
<fa-icon icon="check" class="m-r-10"></fa-icon>{{ 'labels.buttons.Approve' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="reject" *mifosxHasPermission="'APPROVE_LOANRESCHEDULE'"
|
||||
(click)="bulkLoanReschedule('Reject')">
|
||||
<fa-icon icon="times" class="m-r-10"></fa-icon>{{'labels.buttons.Reject' | translate}}
|
||||
<button
|
||||
mat-raised-button
|
||||
color="reject"
|
||||
*mifosxHasPermission="'APPROVE_LOANRESCHEDULE'"
|
||||
(click)="bulkLoanReschedule('Reject')"
|
||||
>
|
||||
<fa-icon icon="times" class="m-r-10"></fa-icon>{{ 'labels.buttons.Reject' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table mat-table [dataSource]="dataSource">
|
||||
|
||||
<ng-container matColumnDef="select">
|
||||
<th mat-header-cell *matHeaderCellDef>
|
||||
<mat-checkbox (change)="$event ? masterToggle() : null" [checked]="selection.hasValue() && isAllSelected()"
|
||||
[indeterminate]="selection.hasValue() && !isAllSelected()" [aria-label]="checkboxLabel()">
|
||||
<mat-checkbox
|
||||
(change)="$event ? masterToggle() : null"
|
||||
[checked]="selection.hasValue() && isAllSelected()"
|
||||
[indeterminate]="selection.hasValue() && !isAllSelected()"
|
||||
[aria-label]="checkboxLabel()"
|
||||
>
|
||||
</mat-checkbox>
|
||||
</th>
|
||||
<td mat-cell *matCellDef="let row">
|
||||
<mat-checkbox (click)="$event.stopPropagation()" (change)="$event ? selection.toggle(row) : null"
|
||||
[checked]="selection.isSelected(row)" [aria-label]="checkboxLabel(row)">
|
||||
<mat-checkbox
|
||||
(click)="$event.stopPropagation()"
|
||||
(change)="$event ? selection.toggle(row) : null"
|
||||
[checked]="selection.isSelected(row)"
|
||||
[aria-label]="checkboxLabel(row)"
|
||||
>
|
||||
</mat-checkbox>
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="client">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Client' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let loan" class="view-details" [routerLink]="['../../clients', loan.clientId , 'general']"> {{loan.clientName}} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Client' | translate }}</th>
|
||||
<td
|
||||
mat-cell
|
||||
*matCellDef="let loan"
|
||||
class="view-details"
|
||||
[routerLink]="['../../clients', loan.clientId, 'general']"
|
||||
>
|
||||
{{ loan.clientName }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="rescheduleRequestNo">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Reschedule Request' | translate}}# </th>
|
||||
<td mat-cell *matCellDef="let loan"> {{loan.id}} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Reschedule Request' | translate }}#</th>
|
||||
<td mat-cell *matCellDef="let loan">{{ loan.id }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="loanAccountNo">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Loan Account' | translate}}# </th>
|
||||
<td mat-cell *matCellDef="let loan" class="view-details" [routerLink]="['../../clients', loan.clientId , 'loans', loan.loanId, 'general']"> {{loan.loanAccountNumber}} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Loan Account' | translate }}#</th>
|
||||
<td
|
||||
mat-cell
|
||||
*matCellDef="let loan"
|
||||
class="view-details"
|
||||
[routerLink]="['../../clients', loan.clientId, 'loans', loan.loanId, 'general']"
|
||||
>
|
||||
{{ loan.loanAccountNumber }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="rescheduleForm">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Reschedule Form' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let loan"> {{loan.rescheduleFromDate | dateFormat}} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Reschedule Form' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let loan">{{ loan.rescheduleFromDate | dateFormat }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="rescheduleReason">
|
||||
<th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Reschedule Reason' | translate}} </th>
|
||||
<td mat-cell *matCellDef="let loan"> {{loan.rescheduleReasonCodeValue.name}} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Reschedule Reason' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let loan">{{ loan.rescheduleReasonCodeValue.name }}</td>
|
||||
</ng-container>
|
||||
|
||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;" (click)="selection.toggle(row)">
|
||||
</tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns" (click)="selection.toggle(row)"></tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="alert" *ngIf="loans.length === 0">
|
||||
|
||||
<div class="message">
|
||||
<i class="fa fa-exclamation-circle alert-check"></i>
|
||||
{{'labels.text.No pending rescheduled loan available for this account' | translate}}
|
||||
{{ 'labels.text.No pending rescheduled loan available for this account' | translate }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,36 +1,60 @@
|
||||
<div class="container">
|
||||
|
||||
<mat-card class="tasks-card">
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<nav mat-tab-nav-bar class="navigation-tabs">
|
||||
<a mat-tab-link [routerLink]="['./checker-inbox']" routerLinkActive #checkerInbox="routerLinkActive"
|
||||
[active]="checkerInbox.isActive" *mifosxHasPermission="'ALL_FUNCTIONS_READ'">
|
||||
{{'labels.inputs.Checker Inbox' | translate}}
|
||||
<a
|
||||
mat-tab-link
|
||||
[routerLink]="['./checker-inbox']"
|
||||
routerLinkActive
|
||||
#checkerInbox="routerLinkActive"
|
||||
[active]="checkerInbox.isActive"
|
||||
*mifosxHasPermission="'ALL_FUNCTIONS_READ'"
|
||||
>
|
||||
{{ 'labels.inputs.Checker Inbox' | translate }}
|
||||
</a>
|
||||
<a mat-tab-link [routerLink]="['./client-approval']" routerLinkActive #clientApproval="routerLinkActive"
|
||||
[active]="clientApproval.isActive" *mifosxHasPermission="'READ_CLIENT'">
|
||||
{{'labels.inputs.Client Approval' | translate}}
|
||||
<a
|
||||
mat-tab-link
|
||||
[routerLink]="['./client-approval']"
|
||||
routerLinkActive
|
||||
#clientApproval="routerLinkActive"
|
||||
[active]="clientApproval.isActive"
|
||||
*mifosxHasPermission="'READ_CLIENT'"
|
||||
>
|
||||
{{ 'labels.inputs.Client Approval' | translate }}
|
||||
</a>
|
||||
<a mat-tab-link [routerLink]="['./loan-approval']" routerLinkActive #loanApproval="routerLinkActive"
|
||||
[active]="loanApproval.isActive" *mifosxHasPermission="'READ_LOAN'">
|
||||
{{'labels.inputs.Loan Approval' | translate}}
|
||||
<a
|
||||
mat-tab-link
|
||||
[routerLink]="['./loan-approval']"
|
||||
routerLinkActive
|
||||
#loanApproval="routerLinkActive"
|
||||
[active]="loanApproval.isActive"
|
||||
*mifosxHasPermission="'READ_LOAN'"
|
||||
>
|
||||
{{ 'labels.inputs.Loan Approval' | translate }}
|
||||
</a>
|
||||
<a mat-tab-link [routerLink]="['./loan-disbursal']" routerLinkActive #loanDisbursal="routerLinkActive"
|
||||
[active]="loanDisbursal.isActive" *mifosxHasPermission="'READ_LOAN'">
|
||||
{{'labels.inputs.Loan Disbursal' | translate}}
|
||||
<a
|
||||
mat-tab-link
|
||||
[routerLink]="['./loan-disbursal']"
|
||||
routerLinkActive
|
||||
#loanDisbursal="routerLinkActive"
|
||||
[active]="loanDisbursal.isActive"
|
||||
*mifosxHasPermission="'READ_LOAN'"
|
||||
>
|
||||
{{ 'labels.inputs.Loan Disbursal' | translate }}
|
||||
</a>
|
||||
<a mat-tab-link [routerLink]="['./reschedule-loan']" routerLinkActive #rescheduleLoan="routerLinkActive"
|
||||
[active]="rescheduleLoan.isActive" *mifosxHasPermission="'RESCHEDULE_LOAN'">
|
||||
{{'labels.inputs.Reschedule Loan' | translate}}
|
||||
<a
|
||||
mat-tab-link
|
||||
[routerLink]="['./reschedule-loan']"
|
||||
routerLinkActive
|
||||
#rescheduleLoan="routerLinkActive"
|
||||
[active]="rescheduleLoan.isActive"
|
||||
*mifosxHasPermission="'RESCHEDULE_LOAN'"
|
||||
>
|
||||
{{ 'labels.inputs.Reschedule Loan' | translate }}
|
||||
</a>
|
||||
</nav>
|
||||
|
||||
<router-outlet></router-outlet>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,73 +1,69 @@
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="1%" fxLayout.lt-md="column" class="container m-b-20">
|
||||
<button mat-raised-button color="success" (click)="approveChecker()">
|
||||
<fa-icon icon="check" class="m-r-10"></fa-icon>{{'labels.buttons.Approve' | translate}}
|
||||
<fa-icon icon="check" class="m-r-10"></fa-icon>{{ 'labels.buttons.Approve' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="warn" (click)="deleteChecker()">
|
||||
<fa-icon icon="trash" class="m-r-10"></fa-icon>{{'labels.buttons.Delete' | translate}}
|
||||
<fa-icon icon="trash" class="m-r-10"></fa-icon>{{ 'labels.buttons.Delete' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="reject" (click)="rejectChecker()">
|
||||
<fa-icon icon="times" class="m-r-10"></fa-icon>{{'labels.buttons.Reject' | translate}}
|
||||
<fa-icon icon="times" class="m-r-10"></fa-icon>{{ 'labels.buttons.Reject' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="row wrap" fxLayout.lt-md="column">
|
||||
|
||||
<h2 class="mat-h2" fxFlexFill> {{'labels.heading.View Checker Inbox' | translate}} </h2>
|
||||
<h2 class="mat-h2" fxFlexFill>{{ 'labels.heading.View Checker Inbox' | translate }}</h2>
|
||||
|
||||
<mat-divider [inset]="true"></mat-divider>
|
||||
|
||||
<h3 class="mat-h3" fxFlexFill>{{'labels.heading.Details' | translate}}</h3>
|
||||
<h3 class="mat-h3" fxFlexFill>{{ 'labels.heading.Details' | translate }}</h3>
|
||||
|
||||
<mat-divider [inset]="true"></mat-divider>
|
||||
|
||||
<div fxFlexFill>
|
||||
<span fxFlex="40%">{{'labels.inputs.ID' | translate}}:</span>
|
||||
<span fxFlex="40%">{{ 'labels.inputs.ID' | translate }}:</span>
|
||||
<span fxFlex="60%">{{ checkerInboxDetail.id }}</span>
|
||||
</div>
|
||||
|
||||
<div fxFlexFill>
|
||||
<span fxFlex="40%">{{'labels.inputs.Status' | translate}}:</span>
|
||||
<span fxFlex="40%">{{ 'labels.inputs.Status' | translate }}:</span>
|
||||
<span fxFlex="60%">{{ checkerInboxDetail.processingResult }}</span>
|
||||
</div>
|
||||
|
||||
<div fxFlexFill>
|
||||
<span fxFlex="40%">{{'labels.inputs.User' | translate}}:</span>
|
||||
<span fxFlex="40%">{{ 'labels.inputs.User' | translate }}:</span>
|
||||
<span fxFlex="60%">{{ checkerInboxDetail.maker }}</span>
|
||||
</div>
|
||||
|
||||
<div fxFlexFill>
|
||||
<span fxFlex="40%">{{'labels.inputs.Action' | translate}}:</span>
|
||||
<span fxFlex="40%">{{ 'labels.inputs.Action' | translate }}:</span>
|
||||
<span fxFlex="60%">{{ checkerInboxDetail.actionName }}</span>
|
||||
</div>
|
||||
|
||||
<div fxFlexFill>
|
||||
<span fxFlex="40%">{{'labels.inputs.Entity' | translate}}:</span>
|
||||
<span fxFlex="40%">{{ 'labels.inputs.Entity' | translate }}:</span>
|
||||
<span fxFlex="60%">{{ checkerInboxDetail.entityName }}</span>
|
||||
</div>
|
||||
|
||||
<div fxFlexFill *ngIf="checkerInboxDetail.resourceId">
|
||||
<span fxFlex="40%">{{'labels.inputs.Resource ID' | translate}}:</span>
|
||||
<span fxFlex="40%">{{ 'labels.inputs.Resource ID' | translate }}:</span>
|
||||
<span fxFlex="60%">{{ checkerInboxDetail.resourceId }}</span>
|
||||
</div>
|
||||
|
||||
<div fxFlexFill>
|
||||
<span fxFlex="40%">{{'labels.inputs.Date' | translate}}:</span>
|
||||
<span fxFlex="60%">{{ checkerInboxDetail.madeOnDate | dateFormat}}</span>
|
||||
<span fxFlex="40%">{{ 'labels.inputs.Date' | translate }}:</span>
|
||||
<span fxFlex="60%">{{ checkerInboxDetail.madeOnDate | dateFormat }}</span>
|
||||
</div>
|
||||
|
||||
<div fxFlexFill *ngIf="checkerInboxDetail.officeName">
|
||||
<span fxFlex="40%">{{'labels.inputs.Office' | translate}}:</span>
|
||||
<span fxFlex="40%">{{ 'labels.inputs.Office' | translate }}:</span>
|
||||
<span fxFlex="60%">{{ checkerInboxDetail.officeName }}</span>
|
||||
</div>
|
||||
|
||||
<div fxFlexFill *ngIf="checkerInboxDetail.savingsAccountNo">
|
||||
<span fxFlex="40%">{{'labels.inputs.Savings Account Number' | translate}}:</span>
|
||||
<span fxFlex="40%">{{ 'labels.inputs.Savings Account Number' | translate }}:</span>
|
||||
<span fxFlex="60%">{{ checkerInboxDetail.savingsAccountNo }}</span>
|
||||
</div>
|
||||
|
||||
@@ -77,26 +73,18 @@
|
||||
</div>
|
||||
|
||||
<ng-container *ngIf="displayJSONData">
|
||||
|
||||
<h3 class="mat-h3" fxFlexFill>{{'labels.heading.Command' | translate}}</h3>
|
||||
<h3 class="mat-h3" fxFlexFill>{{ 'labels.heading.Command' | translate }}</h3>
|
||||
|
||||
<mat-divider [inset]="true"></mat-divider>
|
||||
|
||||
<ng-container *ngFor="let json of jsondata | keyvalue">
|
||||
|
||||
<div fxFlexFill>
|
||||
<span fxFlex="40%">{{ json.key }}:</span>
|
||||
<span fxFlex="60%">{{ json.value }}</span>
|
||||
</div>
|
||||
|
||||
<div fxFlexFill>
|
||||
<span fxFlex="40%">{{ json.key }}:</span>
|
||||
<span fxFlex="60%">{{ json.value }}</span>
|
||||
</div>
|
||||
</ng-container>
|
||||
</ng-container>
|
||||
|
||||
</ng-container>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user