i18n: Adding new languages: Part 2 (#1885)

Co-authored-by: radhathakare <radhathakare322@gmail.com>
This commit is contained in:
José Alberto Hernández
2023-10-25 22:42:07 -06:00
committed by GitHub
co-authored by radhathakare
parent 408f004450
commit 3c625d81c4
177 changed files with 36476 additions and 35908 deletions
@@ -9,30 +9,30 @@
<div fxLayout="column">
<mat-form-field>
<mat-label>Name</mat-label>
<mat-label>{{"labels.inputs.name" | translate }}</mat-label>
<input matInput required formControlName="name">
<mat-error *ngIf="groupForm.controls.name.hasError('required')">
Group Name is <strong>required</strong>
{{"labels.inputs.Group Name" | translate }} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
<mat-error *ngIf="groupForm.controls.name.hasError('pattern')">
Group Name <strong>cannot</strong> begin with a special character or number
{{"labels.inputs.Group Name" | translate }} <strong>{{"labels.inputs.cannot" | translate }}</strong> {{ "labels.commons.begin with a special character or number" | translate }}
</mat-error>
</mat-form-field>
<mat-form-field>
<mat-label>Office</mat-label>
<mat-label>{{"labels.inputs.Office" | translate }}</mat-label>
<mat-select required formControlName="officeId">
<mat-option *ngFor="let office of officeData" [value]="office.id">
{{ office.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="groupForm.controls.officeId.hasError('required')">
Office is <strong>required</strong>
{{"labels.inputs.Office" | translate }} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field>
<mat-label>Staff</mat-label>
<mat-label>{{"labels.inputs.Staff" | translate }}</mat-label>
<mat-select formControlName="staffId">
<mat-option *ngFor="let staff of staffData" [value]="staff.id">
{{ staff.displayName }}
@@ -41,36 +41,36 @@
</mat-form-field>
<mat-form-field (click)="submittedOnDatePicker.open()">
<mat-label>Submitted on</mat-label>
<mat-label>{{"labels.inputs.Submitted On" | translate }}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="submittedOnDatePicker" required formControlName="submittedOnDate">
<mat-datepicker-toggle matSuffix [for]="submittedOnDatePicker"></mat-datepicker-toggle>
<mat-datepicker #submittedOnDatePicker></mat-datepicker>
<mat-error *ngIf="groupForm.controls.submittedOnDate.hasError('required')">
Submission Date is <strong>required</strong>
{{"labels.inputs.Submission Date" | translate }} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-checkbox labelPosition="before" formControlName="active">
Active
{{"labels.inputs.Active" | translate }}
</mat-checkbox>
<mat-form-field *ngIf="groupForm.controls.active.value" (click)="activationDatePicker.open()">
<mat-label>Activation Date</mat-label>
<mat-label>{{"labels.inputs.Activation Date" | translate }}</mat-label>
<input matInput [min]="groupForm.value.submittedOnDate" [max]="maxDate" [matDatepicker]="activationDatePicker" required formControlName="activationDate">
<mat-datepicker-toggle matSuffix [for]="activationDatePicker"></mat-datepicker-toggle>
<mat-datepicker #activationDatePicker></mat-datepicker>
<mat-error *ngIf="groupForm.controls.activationDate.hasError('required')">
Activation Date is <strong>required</strong>
{{"labels.inputs.Activation Date" | translate }} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field>
<mat-label>External id</mat-label>
<mat-label>{{"labels.inputs.External id" | translate }}</mat-label>
<input matInput formControlName="externalId">
</mat-form-field>
<mat-form-field>
<mat-label>Add Clients</mat-label>
<mat-label>{{"labels.inputs.Add Clients" | translate }}</mat-label>
<input matInput [formControl]="clientChoice" [matAutocomplete]="clientsAutocomplete">
</mat-form-field>
@@ -86,27 +86,27 @@
<div class="mat-table" *ngIf="clientChoice.value">
<div class="mat-header-row">
<div class="mat-header-cell">Client Details</div>
<div class="mat-header-cell">{{"labels.inputs.Client Details" | translate }}</div>
<button mat-icon-button (click)="addClient()">
<fa-icon icon="plus"></fa-icon>
</button>
</div>
<div class="mat-row">
<div class="mat-cell">Name</div>
<div class="mat-cell">{{"labels.inputs.name" | translate }}</div>
<div class="mat-cell">{{clientChoice.value.displayName}}</div>
</div>
<div class="mat-row">
<div class="mat-cell">Id</div>
<div class="mat-cell">{{"labels.inputs.Id" | translate }}</div>
<div class="mat-cell">{{clientChoice.value.id}}</div>
</div>
<div class="mat-row">
<div class="mat-cell">Office</div>
<div class="mat-cell">{{"labels.inputs.Office" | translate }}</div>
<div class="mat-cell">{{clientChoice.value.officeName}}</div>
</div>
</div>
<mat-nav-list *ngIf="clientMembers.length">
<h3 matSubheader>Selected Clients</h3>
<h3 matSubheader>{{"labels.heading.Selected Clients" | translate }}</h3>
<div mat-list-item *ngFor="let client of clientMembers index as i">
<span matLine>{{client.displayName}}</span>
<button mat-icon-button color="warn" (click)="removeClient(i)">
@@ -120,8 +120,8 @@
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!groupForm.valid" (click)="submit()">Submit</button>
<button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate }}</button>
<button mat-raised-button color="primary" [disabled]="!groupForm.valid" (click)="submit()">{{"labels.buttons.Submit" | translate }}</button>
</mat-card-actions>
</form>
@@ -9,18 +9,18 @@
<div fxLayout="column">
<mat-form-field>
<mat-label>Name</mat-label>
<mat-label>{{"labels.inputs.name" | translate }}</mat-label>
<input matInput required formControlName="name">
<mat-error *ngIf="editGroupForm.controls.name.hasError('required')">
Group Name is <strong>required</strong>
{{"labels.inputs.Group Name" | translate }} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
<mat-error *ngIf="editGroupForm.controls.name.hasError('pattern')">
Group Name <strong>cannot</strong> begin with a special character or number
{{"labels.inputs.Group Name" | translate }} <strong>{{"labels.inputs.cannot" | translate }}</strong> {{ "labels.commons.begin with a special character or number" | translate }}
</mat-error>
</mat-form-field>
<mat-form-field>
<mat-label>Staff</mat-label>
<mat-label>{{"labels.inputs.Staff" | translate }}</mat-label>
<mat-select formControlName="staffId">
<mat-option *ngFor="let staff of staffData" [value]="staff.id">
{{ staff.displayName }}
@@ -29,27 +29,27 @@
</mat-form-field>
<mat-form-field (click)="submittedOnDatePicker.open()">
<mat-label>Submitted on</mat-label>
<mat-label>{{"labels.inputs.Submitted On" | translate }}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="submittedOnDatePicker" required formControlName="submittedOnDate">
<mat-datepicker-toggle matSuffix [for]="submittedOnDatePicker"></mat-datepicker-toggle>
<mat-datepicker #submittedOnDatePicker></mat-datepicker>
<mat-error *ngIf="editGroupForm.controls.submittedOnDate.hasError('required')">
Submission Date is <strong>required</strong>
{{"labels.inputs.Submission Date" | translate }} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="this.editGroupForm.contains('activationDate')" (click)="activationDatePicker.open()">
<mat-label>Activation Date</mat-label>
<mat-label>{{"labels.inputs.Activation Date" | translate }}</mat-label>
<input matInput [min]="editGroupForm.value.submittedOnDate" [max]="maxDate" [matDatepicker]="activationDatePicker" required formControlName="activationDate">
<mat-datepicker-toggle matSuffix [for]="activationDatePicker"></mat-datepicker-toggle>
<mat-datepicker #activationDatePicker></mat-datepicker>
<mat-error *ngIf="editGroupForm.controls.activationDate.hasError('required')">
Activation Date is <strong>required</strong>
{{"labels.inputs.Activation Date" | translate }} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field>
<mat-label>External id</mat-label>
<mat-label>{{"labels.inputs.External id" | translate }}</mat-label>
<input matInput formControlName="externalId">
</mat-form-field>
@@ -58,8 +58,8 @@
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!editGroupForm.valid" (click)="submit()">Submit</button>
<button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate }}</button>
<button mat-raised-button color="primary" [disabled]="!editGroupForm.valid" (click)="submit()">{{"labels.buttons.Submit" | translate }}</button>
</mat-card-actions>
</form>
@@ -9,26 +9,26 @@
<div fxLayout="column">
<mat-form-field>
<mat-label>Client</mat-label>
<mat-label>{{"labels.inputs.Client" | translate }}</mat-label>
<mat-select formControlName="clientId">
<mat-option *ngFor="let client of clientMemberData" [value]="client.id">
{{ client.displayName }}
</mat-option>
</mat-select>
<mat-error *ngIf="groupsAddRoleForm.controls.clientId.hasError('required')">
Client Member is <strong>required</strong>
{{"labels.inputs.Client Member" | translate }} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field>
<mat-label>Role</mat-label>
<mat-label>{{"labels.inputs.Role" | translate }}</mat-label>
<mat-select formControlName="role">
<mat-option *ngFor="let role of roleData" [value]="role.id">
{{ role.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="groupsAddRoleForm.controls.role.hasError('required')">
Role is <strong>required</strong>
{{"labels.inputs.Role" | translate }} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
@@ -37,9 +37,9 @@
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../']">Cancel</button>
<button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate }}</button>
<button mat-raised-button color="primary" [disabled]="!groupsAddRoleForm.valid"
*mifosxHasPermission="'ASSIGNROLE_GROUP'">Confirm</button>
*mifosxHasPermission="'ASSIGNROLE_GROUP'">{{"labels.buttons.Confirm" | translate }}</button>
</mat-card-actions>
</form>
@@ -2,12 +2,12 @@
<div fxLayout="row" fxLayoutAlign="start">
<div class="m-b-10">
<h3>Client Members</h3>
<h3>{{"labels.heading.Client Members" | translate }}</h3>
</div>
<div class="action-button m-b-10" fxLayoutGap="25px" *ngIf="groupStatus !== 'Closed'">
<button mat-raised-button class="f-right" color="primary"
*mifosxHasPermission="'ASSIGNROLE_GROUP'" [routerLink]="['add-role']">
<i class="fa fa-plus"></i>&nbsp; Add</button>
<i class="fa fa-plus"></i>&nbsp; {{"labels.buttons.Add" | translate }}</button>
</div>
</div>
@@ -16,27 +16,27 @@
<table #rolesTable mat-table [dataSource]="groupRolesData" class="mat-elevation-z1 m-b-25">
<ng-container matColumnDef="Name">
<th mat-header-cell *matHeaderCellDef> Name </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.name" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.clientName}} </td>
</ng-container>
<ng-container matColumnDef="Role">
<th mat-header-cell *matHeaderCellDef> Role </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Role" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.role.name}} </td>
</ng-container>
<ng-container matColumnDef="Client Id">
<th mat-header-cell *matHeaderCellDef> Client Id </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Client Id" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.clientId}} </td>
</ng-container>
<ng-container matColumnDef="Actions">
<th mat-header-cell *matHeaderCellDef> Actions </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Actions" | translate }} </th>
<td mat-cell *matCellDef="let element">
<span *ngIf="groupStatus !== 'Closed'">
<button class="account-action-button" mat-raised-button color="warn"
*mifosxHasPermission="'UNASSIGNROLE_GROUP'" (click)="unassignRole(element.clientId, element.id)">
<i class="fa fa-ban" matTooltip="Unassign"></i>
<i class="fa fa-ban" matTooltip="{{ 'tooltips.Unassign' | translate }}"></i>
</button>
</span>
</td>
@@ -1,8 +1,8 @@
<h1 mat-dialog-title>Unassign Role</h1>
<h1 mat-dialog-title>{{ "labels.heading.Unassign Role" | translate }}</h1>
<div mat-dialog-content>
<p>Are you sure you want to unassign role for client member with id: {{ data.id }} ?</p>
<p>{{"labels.text.Unassign role for client member" |translate}}: {{ data.id }} ?</p>
</div>
<mat-dialog-actions align="end">
<button mat-raised-button mat-dialog-close>Cancel</button>
<button mat-raised-button color="warn" [mat-dialog-close]="{ confirm: true }">Confirm</button>
<button mat-raised-button mat-dialog-close>{{"labels.buttons.Cancel" | translate }}</button>
<button mat-raised-button color="warn" [mat-dialog-close]="{ confirm: true }">{{"labels.buttons.Confirm" | translate }}</button>
</mat-dialog-actions>
@@ -1,8 +1,8 @@
<h1 mat-dialog-title>Unassign Staff</h1>
<h1 mat-dialog-title>{{ "labels.heading.Unassign Role" | translate }}</h1>
<div mat-dialog-content>
<p>Are you sure you want to unassign staff for this group ?</p>
<p>{{"labels.text.Unassign staff for this group" |translate}} ?</p>
</div>
<mat-dialog-actions align="end">
<button mat-raised-button mat-dialog-close>Cancel</button>
<button mat-raised-button color="warn" [mat-dialog-close]="{ confirm: true }">Confirm</button>
<button mat-raised-button mat-dialog-close>{{"labels.buttons.Cancel" | translate }}</button>
<button mat-raised-button color="warn" [mat-dialog-close]="{ confirm: true }">{{"labels.buttons.Confirm" | translate }}</button>
</mat-dialog-actions>
@@ -1,33 +1,33 @@
<div class="tab-container mat-typography">
<h3>Group Details</h3>
<h3>{{"labels.heading.Group Details" | translate }}</h3>
<div fxLayout="row" fxLayoutGap="32px" class="group-details-container m-b-30">
<p>
Active Client Loans: {{groupSummary?.activeClientLoans}}<br/>
Active Client Borrowers: {{groupSummary?.activeClientBorrowers}}<br/>
Active Overdue Client Loans: {{groupSummary?.overdueClientLoans}}<br/>
{{"labels.inputs.Active Client Loans" | translate }}: {{groupSummary?.activeClientLoans}}<br/>
{{"labels.inputs.Active Client Borrowers" | translate }}: {{groupSummary?.activeClientBorrowers}}<br/>
{{"labels.inputs.Active Overdue Client Loans" | translate }}: {{groupSummary?.overdueClientLoans}}<br/>
</p>
<p>
Active Group Loans: {{groupSummary?.activeGroupLoans}}<br/>
Active Group Borrowers: {{groupSummary?.activeGroupBorrowers}}<br/>
Active Overdue Group Loans: {{groupSummary?.overdueGroupLoans}}<br/>
{{"labels.inputs.Active Group Loans" | translate }}: {{groupSummary?.activeGroupLoans}}<br/>
{{"labels.inputs.Active Group Borrowers" | translate }}: {{groupSummary?.activeGroupBorrowers}}<br/>
{{"labels.inputs.Active Overdue Group Loans" | translate }}: {{groupSummary?.overdueGroupLoans}}<br/>
</p>
<p>
Active Clients: {{groupSummary?.activeClients}}<br/>
{{"labels.inputs.Active Clients" | translate }}: {{groupSummary?.activeClients}}<br/>
</p>
</div>
<!-- Client Members Table -->
<div *ngIf="groupClientMembers">
<h3>Client Members</h3>
<h3>{{"labels.heading.Client Members" | translate }}</h3>
<table mat-table [dataSource]="groupClientMembers"
class="mat-elevation-z1 m-b-30">
<ng-container matColumnDef="Name">
<th mat-header-cell *matHeaderCellDef> Name </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.name" | translate }} </th>
<td mat-cell *matCellDef="let element">
<i class="fa fa-stop" [ngClass]="element.status.code|statusLookup" [matTooltip]="element.status.value"></i>
{{element.displayName}}
@@ -35,21 +35,21 @@
</ng-container>
<ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> Account No. </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate }}. </th>
<td mat-cell *matCellDef="let element"> {{element.accountNo}} </td>
</ng-container>
<ng-container matColumnDef="Office">
<th mat-header-cell *matHeaderCellDef> Office </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Office" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.officeName}} </td>
</ng-container>
<ng-container matColumnDef="JLG Loan Application">
<th mat-header-cell *matHeaderCellDef> JLG Loan Application </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.JLG Loan Application" | translate }} </th>
<td mat-cell *matCellDef="let element">
<div class="m-l-30" *ngIf="element.status.code !== 'clientStatusType.closed'">
<button class="account-action-button" mat-raised-button color="primary">
<i class="fa fa-plus" matTooltip="New Loan Application"></i>
<i class="fa fa-plus" matTooltip="{{ 'tooltips.New Loan Application' | translate }}"></i>
</button>
</div>
</td>
@@ -66,7 +66,7 @@
<div fxLayout="row" fxLayoutAlign="start" class="table-header">
<div class="m-b-10">
<h3>Loan Accounts</h3>
<h3>{{"labels.heading.Loan Accounts" | translate }}</h3>
</div>
<div *ngIf="(loanAccounts|accountsFilter:'loan':'closed').length" class="action-button m-b-10">
<button mat-raised-button class="f-right" color="primary"
@@ -79,7 +79,7 @@
class="mat-elevation-z1 m-b-30">
<ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> Account No. </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate }}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop"
[ngClass]="element.inArrears?'status-active-overdue':(element.status.code|statusLookup)"
[matTooltip]="element.inArrears?'Active Overdue':element.status.value"></i>
@@ -88,27 +88,27 @@
</ng-container>
<ng-container matColumnDef="Loan Account">
<th mat-header-cell *matHeaderCellDef> Loan Account </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Loan Account" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container>
<ng-container matColumnDef="Original Loan">
<th mat-header-cell *matHeaderCellDef> Original Loan </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Original Loan" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.originalLoan}} </td>
</ng-container>
<ng-container matColumnDef="Loan Balance">
<th mat-header-cell *matHeaderCellDef> Loan Balance </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Loan Balance" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.loanBalance}} </td>
</ng-container>
<ng-container matColumnDef="Amount Paid">
<th mat-header-cell *matHeaderCellDef> Amount Paid </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Amount Paid" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.amountPaid}} </td>
</ng-container>
<ng-container matColumnDef="Type">
<th mat-header-cell *matHeaderCellDef> Type </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Type" | translate }} </th>
<td mat-cell *matCellDef="let element">
<i class="fa fa-large" [ngClass]="(element.loanType.value==='Individual')?'fa-user':'fa-group'"
[matTooltip]="(element.loanType.value==='Individual')?'Individual':'Group'"></i>
@@ -116,21 +116,21 @@
</ng-container>
<ng-container matColumnDef="Actions">
<th mat-header-cell *matHeaderCellDef> Actions </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Actions" | translate }} </th>
<td mat-cell *matCellDef="let element">
<button *ngIf="element.status.active" class="account-action-button" mat-raised-button color="primary">
<i class="fa fa-dollar" matTooltip="Make Repayment"></i>
<i class="fa fa-dollar" matTooltip="{{ 'tooltips.Make Repayment' | translate }}"></i>
</button>
<button *ngIf="element.status.pendingApproval" class="account-action-button" mat-raised-button color="primary">
<i class="fa fa-check" matTooltip="Approve"></i>
<i class="fa fa-check" matTooltip="{{ 'tooltips.Approve' | translate }}"></i>
</button>
<button *ngIf="!element.status.pendingApproval && !element.status.active && !element.status.overpaid"
class="account-action-button" mat-raised-button color="primary">
<i class="fa fa-flag" matTooltip="Disburse"></i>
<i class="fa fa-flag" matTooltip="{{ 'tooltips.Disburse' | translate }}"></i>
</button>
<button *ngIf="!element.status.pendingApproval && !element.status.active && element.status.overpaid"
class="account-action-button" mat-raised-button color="primary">
<i class="fa fa-exchange" matTooltip="Transfer Funds"></i>
<i class="fa fa-exchange" matTooltip="{{ 'tooltips.Transfer Funds' | translate }}"></i>
</button>
</td>
</ng-container>
@@ -145,7 +145,7 @@
class="mat-elevation-z1 m-b-30">
<ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> Account No. </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate }}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop"
[ngClass]="element.inArrears?'status-active-overdue':(element.status.code|statusLookup)"
[matTooltip]="element.inArrears?'Active Overdue':element.status.value"></i>
@@ -154,27 +154,27 @@
</ng-container>
<ng-container matColumnDef="Loan Account">
<th mat-header-cell *matHeaderCellDef> Loan Account </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Loan Account" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container>
<ng-container matColumnDef="Original Loan">
<th mat-header-cell *matHeaderCellDef> Original Loan </th>
<td mat-cell *matCellDef="let element"> {{element.lastActiveTransactionDate | dateFormat}} </td>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Original Loan" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.lastActiveTransactionDate | dateFormat}} </td>
</ng-container>
<ng-container matColumnDef="Loan Balance">
<th mat-header-cell *matHeaderCellDef>Loan Balance </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Loan Balance" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.loanBalance}} </td>
</ng-container>
<ng-container matColumnDef="Amount Paid">
<th mat-header-cell *matHeaderCellDef> Amount Paid </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Amount Paid" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.accountBalance}} </td>
</ng-container>
<ng-container matColumnDef="Type">
<th mat-header-cell *matHeaderCellDef> Type </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Type" | translate }} </th>
<td mat-cell *matCellDef="let element">
<i class="fa fa-large" [ngClass]="(element.loanType.value=== 'Individual')?'fa-user':'fa-group'"
[matTooltip]="(element.loanType.value==='Individual')?'Individual':'Group'"></i>
@@ -182,8 +182,8 @@
</ng-container>
<ng-container matColumnDef="Closed Date">
<th mat-header-cell *matHeaderCellDef> Closed Date </th>
<td mat-cell *matCellDef="let element">{{element.timeline.closedOnDate | dateFormat}}</td>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Closed Date" | translate }} </th>
<td mat-cell *matCellDef="let element">{{element.timeline.closedOnDate | dateFormat}}</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="closedLoansColumns"></tr>
@@ -197,7 +197,7 @@
<div fxLayout="row" fxLayoutAlign="start" class="table-header">
<div class="m-b-10">
<h3>GSIM Account Overview</h3>
<h3>{{"labels.heading.GSIM Account Overview" | translate }}</h3>
</div>
</div>
@@ -206,28 +206,28 @@
class="mat-elevation-z1 m-b-30">
<ng-container matColumnDef="GSIM Id">
<th mat-header-cell *matHeaderCellDef> GSIM Id </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.GSIM Id" | translate }} </th>
<td mat-cell *matCellDef="let element">
{{element.gsimId}} </td>
</ng-container>
<ng-container matColumnDef="Account Number">
<th mat-header-cell *matHeaderCellDef> Account Number </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account Number" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.accountNumber}} </td>
</ng-container>
<ng-container matColumnDef="Product">
<th mat-header-cell *matHeaderCellDef> Product </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Product" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.childGSIMAccounts[0].productName}}</td>
</ng-container>
<ng-container matColumnDef="Balance">
<th mat-header-cell *matHeaderCellDef> Balance </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Balance" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.parentBalance}} </td>
</ng-container>
<ng-container matColumnDef="Status">
<th mat-header-cell *matHeaderCellDef> Status </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Status" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.savingsStatus}} </td>
</ng-container>
@@ -242,7 +242,7 @@
<div fxLayout="row" fxLayoutAlign="start" class="table-header">
<div class="m-b-10">
<h3>GLIM Loans Account Overview</h3>
<h3>{{"labels.heading.GLIM Loans Account Overview" | translate }}</h3>
</div>
</div>
@@ -251,28 +251,28 @@
class="mat-elevation-z1 m-b-30">
<ng-container matColumnDef="GLIM Id">
<th mat-header-cell *matHeaderCellDef> GLIM Id </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.GLIM Id" | translate }} </th>
<td mat-cell *matCellDef="let element">
{{element.glimId}} </td>
</ng-container>
<ng-container matColumnDef="Account Number">
<th mat-header-cell *matHeaderCellDef> Account Number </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account Number" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.accountNumber}} </td>
</ng-container>
<ng-container matColumnDef="Product">
<th mat-header-cell *matHeaderCellDef> Product </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Product" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.childGLIMAccounts[0].productName}} </td>
</ng-container>
<ng-container matColumnDef="Original Loan">
<th mat-header-cell *matHeaderCellDef> Original Loan </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Original Loan" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.parentPrincipalAmount}} </td>
</ng-container>
<ng-container matColumnDef="Status">
<th mat-header-cell *matHeaderCellDef> Status </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Status" | translate }} </th>
<td mat-cell *matCellDef="let element">{{element.loanStatus}} </td>
</ng-container>
@@ -287,7 +287,7 @@
<div fxLayout="row" fxLayoutAlign="start" class="table-header">
<div class="m-b-10">
<h3>Saving Accounts</h3>
<h3>{{"labels.heading.Saving Accounts" | translate }}</h3>
</div>
<div class="action-button m-b-10">
<button *ngIf="(savingAccounts|accountsFilter:'saving':'closed').length" mat-raised-button class="f-right" color="primary"
@@ -300,50 +300,50 @@
class="mat-elevation-z1 m-b-30">
<ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> Account No. </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate }}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup" [matTooltip]="element.status.value"></i>
{{element.accountNo}} </td>
</ng-container>
<ng-container matColumnDef="Saving Account">
<th mat-header-cell *matHeaderCellDef> Saving Account </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Saving Account" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container>
<ng-container matColumnDef="Last Active">
<th mat-header-cell *matHeaderCellDef> Last Active </th>
<td mat-cell *matCellDef="let element"> {{element.lastActiveTransactionDate | dateFormat}} </td>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Last Active" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.lastActiveTransactionDate | dateFormat}} </td>
</ng-container>
<ng-container matColumnDef="Balance">
<th mat-header-cell *matHeaderCellDef> Balance </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Balance" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.accountBalance}} </td>
</ng-container>
<ng-container matColumnDef="Actions">
<th mat-header-cell *matHeaderCellDef> Actions </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Actions" | translate }} </th>
<td mat-cell *matCellDef="let element">
<button *ngIf="element.status.active" class="account-action-button" mat-raised-button color="primary"
(click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Deposit']">
<i class="fa fa-arrow-up" matTooltip="Deposit"></i>
<i class="fa fa-arrow-up" matTooltip="{{ 'tooltips.Deposit' | translate }}"></i>
</button>
<button *ngIf="element.status.active" class="account-action-button" mat-raised-button color="primary"
(click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Withdrawal']">
<i class="fa fa-arrow-down" matTooltip="Withdraw"></i>
<i class="fa fa-arrow-down" matTooltip="{{ 'tooltips.Withdraw' | translate }}"></i>
</button>
<button *ngIf="element.status.submittedAndPendingApproval" class="account-action-button" mat-raised-button color="primary"
(click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Approve']">
<i class="fa fa-check" matTooltip="Approve"></i>
<i class="fa fa-check" matTooltip="{{ 'tooltips.Approve' | translate }}"></i>
</button>
<button *ngIf="!element.status.submittedAndPendingApproval && !element.status.active"
class="account-action-button" mat-raised-button color="primary"
(click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Undo Approval']">
<i class="fa fa-undo" matTooltip="Undo Approval"></i>
<i class="fa fa-undo" matTooltip="{{ 'tooltips.Undo Approval' | translate }}"></i>
</button>
<button *ngIf="!element.status.submittedAndPendingApproval && !element.status.active"
class="account-action-button" mat-raised-button color="primary"
(click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Activate']">
<i class="fa fa-check-circle" matTooltip="Activate"></i>
<i class="fa fa-check-circle" matTooltip="{{ 'tooltips.Activate' | translate }}"></i>
</button>
</td>
</ng-container>
@@ -358,19 +358,19 @@
class="mat-elevation-z1 m-b-30">
<ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> Account No. </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate }}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup" [matTooltip]="element.status.value"></i>
{{element.accountNo}} </td>
</ng-container>
<ng-container matColumnDef="Saving Account">
<th mat-header-cell *matHeaderCellDef> Saving Account </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Saving Account" | translate }} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container>
<ng-container matColumnDef="Closed Date">
<th mat-header-cell *matHeaderCellDef> Closed Date </th>
<td mat-cell *matCellDef="let element">{{element.timeline.closedOnDate | dateFormat}}</td>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Closed Date" | translate }} </th>
<td mat-cell *matCellDef="let element">{{element.timeline.closedOnDate | dateFormat}}</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="closedSavingsColumns"></tr>
@@ -7,20 +7,20 @@
<mat-card-content>
<mat-form-field fxFlex (click)="activationDatePicker.open()">
<mat-label>Activated On Date</mat-label>
<mat-label>{{"labels.inputs.Activated On Date" | translate }}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="activationDatePicker" required formControlName="activationDate">
<mat-datepicker-toggle matSuffix [for]="activationDatePicker"></mat-datepicker-toggle>
<mat-datepicker #activationDatePicker></mat-datepicker>
<mat-error *ngIf="activateGroupForm.controls.activationDate.hasError('required')">
Activated On Date is <strong>required</strong>
{{"labels.inputs.Activated On Date" | translate }} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!activateGroupForm.valid">Confirm</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate }}</button>
<button mat-raised-button color="primary" [disabled]="!activateGroupForm.valid">{{"labels.buttons.Confirm" | translate }}</button>
</mat-card-actions>
</form>
@@ -9,52 +9,52 @@
<div fxLayout="column">
<mat-form-field (click)="startDatePicker.open()">
<mat-label>Meeting Start Date</mat-label>
<mat-label>{{"labels.inputs.Meeting Start Date" | translate }}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="startDatePicker" required formControlName="startDate">
<mat-datepicker-toggle matSuffix [for]="startDatePicker"></mat-datepicker-toggle>
<mat-datepicker #startDatePicker></mat-datepicker>
<mat-error *ngIf="groupMeetingForm.controls.startDate.hasError('required')">
Start Date is <strong>required</strong>
{{"labels.inputs.Start Date" | translate }} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-checkbox class="m-t-10 m-b-10" labelPosition="before" formControlName="repeating">
Repeats?
{{"labels.inputs.Repeats" | translate }}?
</mat-checkbox>
<mat-form-field *ngIf="groupMeetingForm.contains('frequency')">
<mat-label>Repetition Frequency</mat-label>
<mat-label>{{"labels.inputs.Repetition Frequency" | translate }}</mat-label>
<mat-select formControlName="frequency">
<mat-option *ngFor="let option of frequencyOptions" [value]="option.id">
{{ option.value }}
</mat-option>
</mat-select>
<mat-error *ngIf="groupMeetingForm.controls.frequency.hasError('repeatsOnDay')">
Repetition Frequency is <strong>required</strong>
{{"labels.inputs.Repetition Frequency" | translate }} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="groupMeetingForm.contains('interval')">
<mat-label>Repetition Interval</mat-label>
<mat-label>{{"labels.inputs.Repetition Interval" | translate }}</mat-label>
<mat-select formControlName="interval">
<mat-option *ngFor="let interval of repetitionIntervals" [value]="interval">
{{ interval }}
</mat-option>
</mat-select>
<mat-error *ngIf="groupMeetingForm.controls.interval.hasError('repeatsOnDay')">
Repeition Interval is <strong>required</strong>
{{"labels.inputs.Repeition Interval" | translate }} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="groupMeetingForm.contains('repeatsOnDay')">
<mat-label>Repeats on Day</mat-label>
<mat-label>{{"labels.inputs.Repeats on Day" | translate }}</mat-label>
<mat-select formControlName="repeatsOnDay" required>
<mat-option *ngFor="let day of repeatsOnDays" [value]="day.id">
{{ day.value }}
</mat-option>
</mat-select>
<mat-error *ngIf="groupMeetingForm.controls.repeatsOnDay.hasError('repeatsOnDay')">
At least <strong>one</strong> day must be selected
{{"labels.inputs.At least" | translate }} <strong>{{"labels.inputs.one" | translate }}</strong> {{"labels.inputs.day must be selected" | translate }}
</mat-error>
</mat-form-field>
@@ -63,9 +63,9 @@
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate }}</button>
<button mat-raised-button color="primary" [disabled]="!groupMeetingForm.valid" (click)="submit()"
*mifosxHasPermission="'CREATE_MEETING'">Submit</button>
*mifosxHasPermission="'CREATE_MEETING'">{{"labels.buttons.Submit" | translate }}</button>
</mat-card-actions>
</form>
@@ -9,24 +9,24 @@
<div fxLayout="column">
<mat-form-field (click)="closureDatePicker.open()">
<mat-label>Closed On Date</mat-label>
<mat-label>{{"labels.inputs.Closed On Date" | translate }}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="closureDatePicker" required formControlName="closureDate">
<mat-datepicker-toggle matSuffix [for]="closureDatePicker"></mat-datepicker-toggle>
<mat-datepicker #closureDatePicker></mat-datepicker>
<mat-error *ngIf="closeGroupForm.controls.closureDate.hasError('required')">
Closed On Date is <strong>required</strong>
{{"labels.inputs.Closed On Date" | translate }} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Closure Reason</mat-label>
<mat-label>{{"labels.inputs.Closure Reason" | translate }}</mat-label>
<mat-select formControlName="closureReasonId">
<mat-option *ngFor="let reason of closureData" [value]="reason.id">
{{ reason.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="closeGroupForm.controls.closureReasonId.hasError('required')">
Closure Reason is <strong>required</strong>
{{"labels.inputs.Closure Reason" | translate }} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
@@ -35,8 +35,8 @@
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button mat-raised-button color="warn" [disabled]="!closeGroupForm.valid">Confirm</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate }}</button>
<button mat-raised-button color="warn" [disabled]="!closeGroupForm.valid">{{"labels.buttons.Confirm" | translate }}</button>
</mat-card-actions>
</form>
@@ -9,24 +9,24 @@
<div fxLayout="column">
<mat-form-field>
<mat-label>Existing Meeting Date</mat-label>
<mat-label>{{"labels.inputs.Existing Meeting Date" |translate}}</mat-label>
<mat-select formControlName="presentMeetingDate">
<mat-option *ngFor="let date of nextMeetingDates" [value]="date">
{{ date | dateFormat }}
</mat-option>
</mat-select>
<mat-error *ngIf="groupEditMeetingScheduleForm.controls.presentMeetingDate.hasError('repeatsOnDay')">
Existing Meeting Date is <strong>required</strong>
{{"labels.inputs.Existing Meeting Date" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field (click)="newMeetingDatePicker.open()">
<mat-label>Revised Meeting Date</mat-label>
<mat-label>{{"labels.inputs.Revised Meeting Date" |translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="newMeetingDatePicker" required formControlName="newMeetingDate">
<mat-datepicker-toggle matSuffix [for]="newMeetingDatePicker"></mat-datepicker-toggle>
<mat-datepicker #newMeetingDatePicker></mat-datepicker>
<mat-error *ngIf="groupEditMeetingScheduleForm.controls.newMeetingDate.hasError('required')">
Revised Meeting Date is <strong>required</strong>
{{"labels.inputs.Revised Meeting Date" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
@@ -35,9 +35,9 @@
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate }}</button>
<button mat-raised-button color="primary" [disabled]="!groupEditMeetingScheduleForm.valid" (click)="submit()"
*mifosxHasPermission="'CREATE_MEETING'">Submit</button>
*mifosxHasPermission="'CREATE_MEETING'">{{"labels.buttons.Submit" | translate }}</button>
</mat-card-actions>
</form>
@@ -1,7 +1,7 @@
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end">
<button mat-raised-button color="primary" (click)="editSchedule()">
<fa-icon icon="edit" class="m-r-10"></fa-icon>
Edit Schedule
{{"labels.buttons.Edit Schedule" |translate}}
</button>
</div>
@@ -16,52 +16,51 @@
<div fxLayout="column">
<mat-form-field>
<mat-label>Repetition Frequency</mat-label>
<mat-label>{{"labels.inputs.Repetition Frequency" |translate}}</mat-label>
<mat-select formControlName="frequency">
<mat-option *ngFor="let option of frequencyOptions" [value]="option.id">
{{ option.value }}
</mat-option>
</mat-select>
<mat-error *ngIf="groupEditMeetingForm.controls.frequency.hasError('repeatsOnDay')">
Repetition Frequency is <strong>required</strong>
{{"labels.inputs.Repetition Frequency" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field>
<mat-label>Repetition Interval</mat-label>
<mat-label>{{"labels.inputs.Repetition Interval" |translate}}</mat-label>
<mat-select formControlName="interval">
<mat-option *ngFor="let interval of repetitionIntervals" [value]="interval">
{{ interval }}
</mat-option>
</mat-select>
<mat-error *ngIf="groupEditMeetingForm.controls.interval.hasError('repeatsOnDay')">
Repeition Interval is <strong>required</strong>
{{"labels.inputs.Repeition Interval" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="groupEditMeetingForm.contains('repeatsOnDay')">
<mat-label>Repeats on Day</mat-label>
<mat-label>{{"labels.inputs.Repeats on Day" |translate}}</mat-label>
<mat-select formControlName="repeatsOnDay" required>
<mat-option *ngFor="let day of repeatsOnDays" [value]="day.id">
{{ day.value }}
</mat-option>
</mat-select>
<mat-error *ngIf="groupEditMeetingForm.controls.repeatsOnDay.hasError('repeatsOnDay')">
At least <strong>one</strong> day must be selected
{{"labels.inputs.At least" | translate }} <strong>{{"labels.inputs.one" | translate }}</strong> {{"labels.inputs.day must be selected" | translate }}
</mat-error>
</mat-form-field>
<mat-form-field class="m-b-5" (click)="startDatePicker.open()">
<mat-label>Above Changes are Effective from</mat-label>
<mat-label>{{"labels.inputs.Above Changes are Effective from" |translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="startDatePicker" required formControlName="startDate">
<mat-datepicker-toggle matSuffix [for]="startDatePicker"></mat-datepicker-toggle>
<mat-datepicker #startDatePicker></mat-datepicker>
<mat-error *ngIf="groupEditMeetingForm.controls.startDate.hasError('required')">
Changes Affection Date is <strong>required</strong>
{{"labels.inputs.Changes Affection Date" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
<mat-hint>
Note: 'Repeats' and 'Repeats every' cannot not be modified if there are active accounts <br>
(JLG Loans, Recurring Deposits etc) dependent on this meeting.
{{"labels.text.Repeats' and 'Repeats every" |translate}}
</mat-hint>
</mat-form-field>
@@ -70,9 +69,9 @@
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate }}</button>
<button mat-raised-button color="primary" [disabled]="!groupEditMeetingForm.valid" (click)="submit()"
*mifosxHasPermission="'CREATE_MEETING'">Submit</button>
*mifosxHasPermission="'CREATE_MEETING'">{{"labels.buttons.Submit" | translate }}</button>
</mat-card-actions>
</form>
@@ -9,14 +9,14 @@
<div fxLayout="column">
<mat-form-field fxFlex="48%">
<mat-label>Staff</mat-label>
<mat-label>{{"labels.inputs.Staff" |translate}}</mat-label>
<mat-select formControlName="staffId">
<mat-option *ngFor="let staff of staffData" [value]="staff.id">
{{ staff.displayName }}
</mat-option>
</mat-select>
<mat-error *ngIf="groupAssignStaffForm.controls.staffId.hasError('required')">
Staff is <strong>required</strong>
{{"labels.inputs.Staff" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
@@ -25,8 +25,8 @@
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!groupAssignStaffForm.valid">Confirm</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button color="primary" [disabled]="!groupAssignStaffForm.valid">{{"labels.buttons.Confirm" |translate}}</button>
</mat-card-actions>
</form>
@@ -3,30 +3,30 @@
<mat-card fxLayout="column" fxLayoutGap="3%">
<mat-form-field fxFlex>
<mat-label>Meeting Date</mat-label>
<mat-label>{{"labels.inputs.Meeting Date" |translate}}</mat-label>
<mat-select [formControl]="meetingDate">
<mat-option *ngFor="let date of meetingDates" [value]="date">
{{ date | dateFormat }}
</mat-option>
</mat-select>
<mat-hint>Next Meeting on: {{ this.groupData.collectionMeetingCalendar.nextTenRecurringDates[0] | dateFormat }}</mat-hint>
<mat-hint>{{"labels.inputs.Next Meeting on" |translate}}: {{this.groupData.collectionMeetingCalendar.nextTenRecurringDates[0] | dateFormat}}</mat-hint>
</mat-form-field>
<table class="mat-elevation-z1" mat-table [dataSource]="dataSource">
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> Name </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.name" |translate}} </th>
<td mat-cell *matCellDef="let member"> {{ member.clientId | find:membersData:'id':'displayName' }} </td>
</ng-container>
<ng-container matColumnDef="attendance">
<th mat-header-cell *matHeaderCellDef> Attendance </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Attendance" |translate}} </th>
<td mat-cell *matCellDef="let member" [ngSwitch]="member.attendanceType">
<span *ngSwitchCase="1">Present</span>
<span *ngSwitchCase="2">Absent</span>
<span *ngSwitchCase="3">Approved</span>
<span *ngSwitchCase="4">Leave</span>
<span *ngSwitchCase="5">Late</span>
<span *ngSwitchCase="1">{{"labels.inputs.Present" |translate}}</span>
<span *ngSwitchCase="2">{{"labels.inputs.Absent" |translate}}</span>
<span *ngSwitchCase="3">{{"labels.inputs.Approved" |translate}}</span>
<span *ngSwitchCase="4">{{"labels.inputs.Leave" |translate}}</span>
<span *ngSwitchCase="5">{{"labels.inputs.Late" |translate}}</span>
<button mat-icon-button color="primary"
(click)="editAttendance(member)">
<fa-icon icon="pen"></fa-icon>
@@ -40,9 +40,9 @@
</table>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button color="primary" (click)="submit()"
*mifosxHasPermission="'SAVEORUPDATEATTENDANCE_MEETING'">Confirm</button>
*mifosxHasPermission="'SAVEORUPDATEATTENDANCE_MEETING'">{{"labels.buttons.Confirm" |translate}}</button>
</mat-card-actions>
</mat-card>
@@ -9,26 +9,26 @@
<div fxLayout="column">
<mat-form-field>
<mat-label>Select Client Members for Transfer</mat-label>
<mat-label>{{"labels.inputs.Select Client Members for Transfer" |translate}}</mat-label>
<mat-select required formControlName="clients" multiple>
<mat-option *ngFor="let member of clientMembers" [value]="{ id: member.id }">
{{ member.displayName }}
</mat-option>
</mat-select>
<mat-error *ngIf="transferClientsForm.controls.clients.hasError('required')">
Office is <strong>required</strong>
{{"labels.inputs.Office" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-checkbox class="m-t-10 m-b-10" labelPosition="before" formControlName="inheritDestinationGroupLoanOfficer">
Inherit Group Loan Officer?
{{"labels.inputs.Inherit Group Loan Officer" |translate}}?
</mat-checkbox>
<mat-form-field>
<mat-label>Destination Group</mat-label>
<mat-label>{{"labels.inputs.Destination Group" |translate}}</mat-label>
<input matInput formControlName="destinationGroupId" [matAutocomplete]="groupsAutocomplete">
<mat-error *ngIf="transferClientsForm.controls.destinationGroupId.hasError('required')">
Destination Group is <strong>required</strong>
{{"labels.inputs.Destination Group" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" |translate}}</strong>
</mat-error>
</mat-form-field>
@@ -42,26 +42,26 @@
<div class="mat-table" *ngIf="transferClientsForm.get('destinationGroupId').value">
<div class="mat-header-row">
<div class="mat-header-cell">Destination Group Details</div>
<div class="mat-header-cell">{{"labels.inputs.Destination Group Details" |translate}}</div>
</div>
<div class="mat-row">
<div class="mat-cell">Name</div>
<div class="mat-cell">{{"labels.inputs.name" |translate}}</div>
<div class="mat-cell">{{transferClientsForm.get('destinationGroupId').value.name}}</div>
</div>
<div class="mat-row">
<div class="mat-cell">Id</div>
<div class="mat-cell">{{"labels.inputs.Id" |translate}}</div>
<div class="mat-cell">{{transferClientsForm.get('destinationGroupId').value.id}}</div>
</div>
<div class="mat-row">
<div class="mat-cell">Activation Date</div>
<div class="mat-cell">{{(transferClientsForm.get('destinationGroupId').value.activationDate | dateFormat) || 'Not Activated'}}</div>
<div class="mat-cell">{{"labels.inputs.Activation Date" |translate}}</div>
<div class="mat-cell">{{(transferClientsForm.get('destinationGroupId').value.activationDate | dateFormat) || 'Not Activated'}}</div>
</div>
<div class="mat-row">
<div class="mat-cell">Staff</div>
<div class="mat-cell">{{"labels.inputs.Staff" |translate}}</div>
<div class="mat-cell">{{transferClientsForm.get('destinationGroupId').value.staffName || 'Unassigned'}}</div>
</div>
<div class="mat-row">
<div class="mat-cell">External Id</div>
<div class="mat-cell">{{"labels.inputs.External Id" |translate}}</div>
<div class="mat-cell">{{transferClientsForm.get('destinationGroupId').value.externalId || 'Unassigned'}}</div>
</div>
</div>
@@ -69,9 +69,9 @@
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button color="primary" [disabled]="!transferClientsForm.valid" (click)="submit()"
*mifosxHasPermission="'TRANSFERCLIENTS_GROUP'">Submit</button>
*mifosxHasPermission="'TRANSFERCLIENTS_GROUP'">{{"labels.buttons.Submit" |translate}}</button>
</mat-card-actions>
</form>
@@ -1,66 +1,59 @@
<mat-card class="container">
<div class="container" fxLayout="row" fxLayoutGap="3%">
<mat-card-content fxLayout="row" >
<mat-card fxFlex class="client-card" fxLayout="column" fxLayoutGap="2%">
<mat-card fxFlex class="client-card" fxLayout="column" fxLayoutGap="2%">
<mat-form-field fxFlex="30%">
<mat-label>{{"labels.inputs.Add Clients" |translate}}</mat-label>
<input matInput [formControl]="clientChoice" [matAutocomplete]="clientsAutocomplete">
</mat-form-field>
<mat-form-field fxFlex="30%">
<mat-label>Add Clients</mat-label>
<input matInput [formControl]="clientChoice" [matAutocomplete]="clientsAutocomplete">
</mat-form-field>
<mat-autocomplete autoActiveFirstOption #clientsAutocomplete="matAutocomplete" [displayWith]="displayClient">
<mat-option *ngFor="let client of clientsData" [value]="client">
{{ client.displayName }}
</mat-option>
</mat-autocomplete>
<mat-autocomplete autoActiveFirstOption #clientsAutocomplete="matAutocomplete" [displayWith]="displayClient">
<mat-option *ngFor="let client of clientsData" [value]="client">
{{ client.displayName }}
</mat-option>
</mat-autocomplete>
<div class="mat-table">
<div class="mat-header-row">
<div class="mat-header-cell">Client Details</div>
<button mat-icon-button (click)="addClient()">
<fa-icon icon="plus"></fa-icon>
</button>
</div>
<div class="mat-row">
<div class="mat-cell">Name</div>
<div class="mat-cell">{{clientChoice.value.displayName}}</div>
</div>
<div class="mat-row">
<div class="mat-cell">Id</div>
<div class="mat-cell">{{clientChoice.value.id}}</div>
</div>
<div class="mat-row">
<div class="mat-cell">Office</div>
<div class="mat-cell">{{clientChoice.value.officeName}}</div>
</div>
<div class="mat-table">
<div class="mat-header-row">
<div class="mat-header-cell">{{"labels.inputs.Client Details" |translate}}</div>
<button mat-icon-button (click)="addClient()">
<fa-icon icon="plus"></fa-icon>
</button>
</div>
<div class="mat-row">
<div class="mat-cell">{{"labels.inputs.name" |translate}}</div>
<div class="mat-cell">{{clientChoice.value.displayName}}</div>
</div>
<div class="mat-row">
<div class="mat-cell">{{"labels.inputs.Id" |translate}}</div>
<div class="mat-cell">{{clientChoice.value.id}}</div>
</div>
<div class="mat-row">
<div class="mat-cell">{{"labels.inputs.Office" |translate}}</div>
<div class="mat-cell">{{clientChoice.value.officeName}}</div>
</div>
</mat-card>
<mat-card fxFlex="50%">
<h3 matSubheader>Client Members</h3>
<mat-nav-list *ngIf="clientMembers?.length">
<div mat-list-item *ngFor="let client of clientMembers index as i">
<span matLine class="p-t-10">{{client.displayName}}</span>
<div fxFlex></div>
<button mat-icon-button color="warn" (click)="removeClient(i, client)" matTooltip="Remove Client from Group"
matTooltipPosition="left">
<fa-icon icon="trash"></fa-icon>
</button>
</div>
</mat-nav-list>
</mat-card>
</mat-card-content>
<mat-card-actions>
<div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="2%" fxLayout.lt-md="column">
<button type="button" mat-raised-button color="primary" [routerLink]="['../..']">{{ 'Back' | translate}}</button>
</div>
</mat-card-actions>
</mat-card>
</mat-card>
<mat-card fxFlex="50%">
<h3 matSubheader>{{"labels.heading.Client Members" |translate}}</h3>
<mat-nav-list *ngIf="clientMembers?.length">
<div mat-list-item *ngFor="let client of clientMembers index as i">
<span matLine class="p-t-10">{{client.displayName}}</span>
<div fxFlex></div>
<button mat-icon-button color="warn" (click)="removeClient(i, client)" matTooltip="{{ 'tooltips.Remove Client from Group' | translate }}" matTooltipPosition="left">
<fa-icon icon="trash"></fa-icon>
</button>
</div>
</mat-nav-list>
</mat-card>
<div fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Back" |translate}}</button>
</div>
</div>
@@ -15,7 +15,7 @@
<h3 fxFlex="95%">
<i class="fa fa-stop" [ngClass]="groupViewData.status.code|statusLookup"
[matTooltip]="groupViewData.status.value"></i>
Group Name : {{groupViewData.name}}
{{"labels.heading.Group Name" |translate}} : {{groupViewData.name}}
</h3>
<div fxFlex="5%">
@@ -29,28 +29,28 @@
<mat-card-subtitle>
<div fxFlex="45%">
<b>Group :</b> {{groupViewData.name}} | <b>Center Name:</b> {{groupViewData.centerName}} | <b>Staff:</b>
<b>{{"labels.inputs.Group" |translate}} :</b> {{groupViewData.name}} | <b>{{"labels.inputs.Center Name" |translate}}:</b> {{groupViewData.centerName}} | <b>{{"labels.inputs.Staff" |translate}}:</b>
{{groupViewData.staffName || 'Unassigned'}}<br />
<b>Office Name :</b> {{groupViewData.officeName}}<br />
<b>Activation Date :</b> {{(groupViewData.activationDate)?(groupViewData.activationDate | dateFormat) :'Not Activated'}}<br />
<b>{{"labels.inputs.Office Name" |translate}} :</b> {{groupViewData.officeName}}<br />
<b>{{"labels.inputs.Activation Date" |translate}} :</b> {{(groupViewData.activationDate)?(groupViewData.activationDate | dateFormat) :'Not Activated'}}<br />
<span *ngIf="!groupViewData.active">
<b>Closure Date :</b> {{groupViewData.timeline.closedOnDate | dateFormat}}
<b>{{"labels.inputs.Closure Date" |translate}} :</b> {{groupViewData.timeline.closedOnDate | dateFormat}}
</span>
</div>
<div fxFlex="45%" class="group-meeting" fxLayoutAlign="start start">
<div *ngIf="groupViewData.collectionMeetingCalendar; else unassigned">
<p>
Next Meeting on: {{groupViewData.collectionMeetingCalendar?.nextTenRecurringDates[0] | dateFormat}}
{{"labels.inputs.Next Meeting on" |translate}}: {{groupViewData.collectionMeetingCalendar?.nextTenRecurringDates[0] | dateFormat}}
<i class="fa fa-edit" *ngIf="editMeeting" (click)="doAction('Edit Meeting')"></i><br />
Meeting Frequency: {{groupViewData.collectionMeetingCalendar?.frequency.value | lowercase}}
{{"labels.inputs.Meeting Frequency" |translate}}: {{groupViewData.collectionMeetingCalendar?.frequency.value | lowercase}}
</p>
</div>
<ng-template #unassigned>
<div>
<p>
Next Meeting on: Unassigned
{{"labels.inputs.Next Meeting on" |translate}}: {{"labels.inputs.Unassigned" |translate}}
<i class="fa fa-calendar"></i><br />
Meeting Frequency: N/A
{{"labels.inputs.Meeting Frequency" |translate}}: {{"labels.inputs.N/A" |translate}}
</p>
</div>
</ng-template>
@@ -65,72 +65,73 @@
<mat-icon matListIcon>
<fa-icon icon="checkSign" size="sm"></fa-icon>
</mat-icon>
<span>Activate</span>
<span>{{"labels.buttons.Activate" |translate}}</span>
</button>
</span>
<button mat-menu-item *mifosxHasPermission="'UPDATE_GROUP'" (click)="doAction('Edit')">
<mat-icon matListIcon>
<fa-icon icon="edit" size="sm"></fa-icon>
</mat-icon>
<span>Edit</span>
<span>{{"labels.buttons.Edit" |translate}}</span>
</button>
<button mat-menu-item *mifosxHasPermission="'CREATE_CLIENT'" (click)="doAction('Manage Members')">
<mat-icon matListIcon>
<fa-icon icon="plus" size="sm"></fa-icon>
</mat-icon>
<span>Add Clients</span>
<span>{{"labels.buttons.Add Clients" |translate}}</span>
</button>
<button mat-menu-item *mifosxHasPermission="'ASSOCIATECLIENTS_GROUP'"
(click)="doAction('Transfer Clients')">
<mat-icon matListIcon>
<fa-icon icon="users" size="sm"></fa-icon>
</mat-icon>
<span>Transfer Clients</span>
<span>{{"labels.buttons.Transfer Clients" |translate}}</span>
</button>
<button mat-menu-item *mifosxHasPermission="'TRANSFERCLIENTS_GROUP'" (click)="doAction('Manage Members')">
<mat-icon matListIcon>
<fa-icon icon="user" size="sm"></fa-icon>
</mat-icon>
<span>Manage Members</span>
<span>{{"labels.buttons.Manage Members" |translate}}</span>
</button>
<button mat-menu-item *ngIf="groupViewData.active" [matMenuTriggerFor]="AccountApplications">
<mat-icon matListIcon>
<fa-icon icon="money-bill-alt" size="sm"></fa-icon>
</mat-icon>
<span>Applications</span>
<span>{{"labels.buttons.Applications" |translate}}</span>
</button>
<mat-menu #AccountApplications="matMenu">
<span *ngIf="groupViewData.clientMembers">
<button mat-menu-item *mifosxHasPermission="'CREATE_LOAN'">Bulk JLG Loan Application</button></span>
<button mat-menu-item *mifosxHasPermission="'CREATE_LOAN'">{{"labels.buttons.Bulk JLG Loan Application" |translate}}</button></span>
<button mat-menu-item *mifosxHasPermission="'CREATE_SAVINGSACCOUNT'"
[routerLink]="['savings-accounts', 'create']">Group Saving Application</button>
<button mat-menu-item *mifosxHasPermission="'CREATE_LOAN'" [routerLink]="['loans-accounts', 'create']">Group
Loan Application</button>
<button mat-menu-item [routerLink]="['loans-accounts', 'glim-account', 'create']">GLIM Loan
Application</button>
<button mat-menu-item [routerLink]="['savings-accounts', 'gsim-account' , 'create']"> GSIM Application
[routerLink]="['savings-accounts', 'create']">{{"labels.buttons.Group Saving Application" |translate}}</button>
<button mat-menu-item *mifosxHasPermission="'CREATE_LOAN'" [routerLink]="['loans-accounts', 'create']">
{{"labels.buttons.Group Loan Application" |translate}}</button>
<button mat-menu-item [routerLink]="['loans-accounts', 'glim-account', 'create']">
{{"labels.buttons.GLIM Loan Application" |translate}}</button>
<button mat-menu-item [routerLink]="['savings-accounts', 'gsim-account' , 'create']">
{{"labels.buttons.GSIM Application" |translate}}
</button>
</mat-menu>
<button mat-menu-item [matMenuTriggerFor]="More">More</button>
<button mat-menu-item [matMenuTriggerFor]="More">{{"labels.buttons.More" |translate}}</button>
<mat-menu #More="matMenu">
<span *ngIf="groupViewData.collectionMeetingCalendar">
<button mat-menu-item *mifosxHasPermission="'SAVEORUPDATEATTENDANCE_MEETING'"
(click)="doAction('Attendance')">Attendance</button></span>
(click)="doAction('Attendance')">{{"labels.buttons.Attendance" |translate}}</button></span>
<span *ngIf="!groupViewData.staffId">
<button mat-menu-item *mifosxHasPermission="'ASSIGNSTAFF_GROUP'" (click)="doAction('Assign Staff')">Assign
Staff</button></span>
<button mat-menu-item *mifosxHasPermission="'ASSIGNSTAFF_GROUP'" (click)="doAction('Assign Staff')">
{{"labels.buttons.Assign Staff" |translate}}</button></span>
<span *ngIf="groupViewData.staffId">
<button mat-menu-item *mifosxHasPermission="'UNASSIGNSTAFF_GROUP'"
(click)="doAction('Unassign Staff')">Unassign Staff</button></span>
(click)="doAction('Unassign Staff')">{{"labels.buttons.Unassign Staff" |translate}}</button></span>
<span
*ngIf="!(groupViewData.centerId || groupViewData.collectionMeetingCalendar) && groupViewData.status.value==='Active'">
<button mat-menu-item *mifosxHasPermission="'CREATE_MEETING'" (click)="doAction('Attach Meeting')">Attach
Meeting</button></span>
<button mat-menu-item *mifosxHasPermission="'CLOSE_GROUP'" (click)="doAction('Close')">Close</button>
<button mat-menu-item *mifosxHasPermission="'DELETE_GROUP'" (click)="doAction('Delete')">Delete</button>
<button mat-menu-item *mifosxHasPermission="'CREATE_MEETING'" (click)="doAction('Attach Meeting')">
{{"labels.buttons.Attach Meeting" |translate}}</button></span>
<button mat-menu-item *mifosxHasPermission="'CLOSE_GROUP'" (click)="doAction('Close')">{{"labels.buttons.Close" |translate}}</button>
<button mat-menu-item *mifosxHasPermission="'DELETE_GROUP'" (click)="doAction('Delete')">{{"labels.buttons.Delete" |translate}}</button>
</mat-menu>
</mat-menu>
</mat-card-title-group>
@@ -142,15 +143,15 @@
<nav mat-tab-nav-bar class="navigation-tabs">
<a mat-tab-link [routerLink]="['./general']" routerLinkActive #general="routerLinkActive"
[active]="general.isActive">
General
{{"labels.inputs.General" |translate}}
</a>
<a mat-tab-link [routerLink]="['./notes']" *mifosxHasPermission="'READ_GROUPNOTE'" routerLinkActive
#notes="routerLinkActive" [active]="notes.isActive">
Notes
{{"labels.inputs.Notes" |translate}}
</a>
<a mat-tab-link [routerLink]="['./committee']" routerLinkActive #committee="routerLinkActive"
[active]="committee.isActive">
Committee
{{"labels.inputs.Committee" |translate}}
</a>
<span *ngFor="let groupDatatable of groupDatatables">
<a mat-tab-link *mifosxHasPermission="'READ_' + groupDatatable.registeredTableName"
+8 -8
View File
@@ -5,14 +5,14 @@
<mat-form-field>
<input matInput placeholder="Search by Name" [formControl]="name">
</mat-form-field>
<mat-checkbox #showClosedGroups labelPosition="after" (change)="changeShowClosedGroups()">Show Closed Groups</mat-checkbox>
<mat-checkbox #showClosedGroups labelPosition="after" (change)="changeShowClosedGroups()">{{"labels.inputs.Show Closed Groups" |translate}}</mat-checkbox>
</div>
<div class="action-button" fxLayoutGap="25px">
<button mat-raised-button color="primary" [routerLink]="['../', 'organization', 'bulk-import', 'Groups']">
<fa-icon icon="download" class="m-r-10"></fa-icon>Import Group
<fa-icon icon="download" class="m-r-10"></fa-icon>{{"labels.buttons.Import Group" |translate}}
</button>
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_GROUP'">
<fa-icon icon="plus" class="m-r-10"></fa-icon>Create Group
<fa-icon icon="plus" class="m-r-10"></fa-icon>{{"labels.buttons.Create Group" |translate}}
</button>
</div>
</div>
@@ -20,22 +20,22 @@
<table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Name </th>
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.name" |translate}} </th>
<td mat-cell *matCellDef="let group"> {{ group.name }} </td>
</ng-container>
<ng-container matColumnDef="accountNo">
<th mat-header-cell *matHeaderCellDef> Account # </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account" |translate}} # </th>
<td mat-cell *matCellDef="let group"> {{ group.accountNo }} </td>
</ng-container>
<ng-container matColumnDef="externalId">
<th mat-header-cell *matHeaderCellDef> ExternalID </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.External Id" |translate}} </th>
<td mat-cell *matCellDef="let group"> {{ group.externalId }} </td>
</ng-container>
<ng-container matColumnDef="status">
<th mat-header-cell *matHeaderCellDef> Status </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Status" |translate}} </th>
<td mat-cell *matCellDef="let row">
<div [ngClass]="row.status.code|statusLookup">
<fa-icon icon="stop"></fa-icon>
@@ -44,7 +44,7 @@
</ng-container>
<ng-container matColumnDef="officeName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Office Name </th>
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Office Name" |translate}} </th>
<td mat-cell *matCellDef="let group"> {{ group.officeName }} </td>
</ng-container>