Upgrade to Angular 16
Merge `angular-update-16` into `dev` branch
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +11,7 @@ import { OrganizationService } from 'app/organization/organization.service';
|
||||
* Adhoc Query template data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class AdhocQueryTemplateResolver implements Resolve<Object> {
|
||||
export class AdhocQueryTemplateResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
|
||||
<div class="container m-b-20 layout-row align-end gap-20px">
|
||||
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_ADHOC'">
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Create AdHoc Query' | translate }}
|
||||
@@ -6,8 +6,8 @@
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div fxLayout="row" fxLayoutGap="20px">
|
||||
<mat-form-field fxFlex>
|
||||
<div class="layout-row gap-20px">
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +11,7 @@ import { OrganizationService } from '../../organization.service';
|
||||
* Adhoc Queries data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class AdhocQueriesResolver implements Resolve<Object> {
|
||||
export class AdhocQueriesResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +12,7 @@ import { OrganizationService } from 'app/organization/organization.service';
|
||||
* Adhoc Query and template data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class AdhocQueryAndTemplateResolver implements Resolve<Object> {
|
||||
export class AdhocQueryAndTemplateResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +12,7 @@ import { OrganizationService } from 'app/organization/organization.service';
|
||||
* Adhoc Query data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class AdhocQueryResolver implements Resolve<Object> {
|
||||
export class AdhocQueryResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="adhocQueryForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="column">
|
||||
<div class="layout-column">
|
||||
<mat-form-field>
|
||||
<mat-label>{{ 'labels.inputs.name' | translate }}</mat-label>
|
||||
<input matInput required formControlName="name" />
|
||||
@@ -76,7 +76,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="editAdhocQueryForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="column">
|
||||
<div class="layout-column">
|
||||
<mat-form-field>
|
||||
<mat-label>{{ 'labels.inputs.name' | translate }}</mat-label>
|
||||
<input matInput required formControlName="name" />
|
||||
@@ -76,7 +76,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
|
||||
<div class="layout-row align-end gap-2px responsive-column container m-b-20">
|
||||
<button mat-raised-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_ADHOC'">
|
||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Edit' | translate }}
|
||||
@@ -12,52 +12,52 @@
|
||||
<div class="container">
|
||||
<mat-card>
|
||||
<mat-card-content>
|
||||
<div fxLayout="row wrap" class="content">
|
||||
<div fxFlex="50%" class="mat-body-strong">
|
||||
<div class="layout-row-wrap">
|
||||
<div class="flex-50 mat-body-strong">
|
||||
{{ 'labels.inputs.name' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ adhocQueryData.name }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong">
|
||||
<div class="flex-50 mat-body-strong">
|
||||
{{ 'labels.inputs.Query' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ adhocQueryData.query }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong">
|
||||
<div class="flex-50 mat-body-strong">
|
||||
{{ 'labels.inputs.Table Affected' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ adhocQueryData.tableName }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong" *ngIf="adhocQueryData.reportRunFrequency">
|
||||
<div class="flex-50 mat-body-strong" *ngIf="adhocQueryData.reportRunFrequency">
|
||||
{{ 'labels.inputs.Report Run Frequency' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" *ngIf="adhocQueryData.reportRunFrequency">
|
||||
<div class="flex-50" *ngIf="adhocQueryData.reportRunFrequency">
|
||||
{{ reportRunFrequency }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong">
|
||||
<div class="flex-50 mat-body-strong">
|
||||
{{ 'labels.inputs.Status' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ adhocQueryData.isActive === true ? 'Active' : 'Inactive' }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong">
|
||||
<div class="flex-50 mat-body-strong">
|
||||
{{ 'labels.inputs.Created By' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ adhocQueryData.createdBy }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<!-- TODO: Refactor Permissions -->
|
||||
<div class="container">
|
||||
<mat-card>
|
||||
<div fxLayout="row" fxLayout.lt-md="column" fxLayoutGap="20px">
|
||||
<div fxFlex="50%">
|
||||
<div class="layout-row responsive-column gap-20px">
|
||||
<div class="flex-50">
|
||||
<mat-nav-list>
|
||||
<mat-list-item *mifosxHasPermission="'READ_OFFICE'">
|
||||
<mat-icon matListIcon [routerLink]="['Offices']">
|
||||
@@ -109,7 +109,7 @@
|
||||
</mat-nav-list>
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
<mat-nav-list>
|
||||
<mat-list-item *mifosxHasPermission="'READ_OFFICE'">
|
||||
<mat-icon matListIcon [routerLink]="['Employees']">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -15,7 +15,7 @@ import { BulkImports } from './view-bulk-import/bulk-imports';
|
||||
* Bulk Imports data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class BulkImportResolver implements Resolve<Object> {
|
||||
export class BulkImportResolver {
|
||||
bulkImportsArray = BulkImports;
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div class="container">
|
||||
<div fxLayoutGap="2%" class="m-b-20">
|
||||
<mat-card fxLayout="column" fxLayoutGap="2%" fxFlex="50%">
|
||||
<div class="gap-2percent m-b-20">
|
||||
<mat-card class="layout-column gap-2percent flex-50">
|
||||
<h3>
|
||||
<strong>{{ bulkImport.name }} {{ 'labels.heading.Template' | translate }}</strong>
|
||||
</h3>
|
||||
@@ -8,7 +8,7 @@
|
||||
<form [formGroup]="bulkImportForm">
|
||||
<mat-card-content>
|
||||
<div *ngIf="bulkImport.formFields >= 1">
|
||||
<mat-form-field fxFlex>
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
|
||||
<mat-select formControlName="officeId">
|
||||
<mat-option *ngFor="let office of officeData" [value]="office.id">
|
||||
@@ -19,7 +19,7 @@
|
||||
</div>
|
||||
|
||||
<div *ngIf="bulkImport.formFields >= 2">
|
||||
<mat-form-field fxFlex>
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Staff' | translate }}</mat-label>
|
||||
<mat-select formControlName="staffId">
|
||||
<mat-option *ngFor="let staff of staffData" [value]="staff.id">
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
|
||||
<div *ngIf="bulkImport.formFields === 3">
|
||||
<mat-form-field fxFlex>
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Legal Form' | translate }}</mat-label>
|
||||
<mat-select required formControlName="legalForm">
|
||||
<mat-option value="Entity">{{ 'labels.inputs.Entity' | translate }}</mat-option>
|
||||
@@ -41,7 +41,7 @@
|
||||
</mat-card-content>
|
||||
</form>
|
||||
|
||||
<div fxFlex="13%">
|
||||
<div class="flex-13">
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
@@ -53,7 +53,7 @@
|
||||
</div>
|
||||
</mat-card>
|
||||
|
||||
<mat-card fxLayout="column" fxLayoutGap="2%" fxFlex="50%">
|
||||
<mat-card class="layout-column gap-2percent flex-50">
|
||||
<h3>
|
||||
<strong>{{ bulkImport.name }}</strong>
|
||||
</h3>
|
||||
@@ -66,13 +66,13 @@
|
||||
'labels.text.Please retain the value Entity/Person in the filename.' | translate
|
||||
}}</mat-hint>
|
||||
|
||||
<div fxFlex="13%">
|
||||
<div class="flex-13">
|
||||
<button mat-raised-button color="primary" [disabled]="!template" (click)="uploadTemplate()">
|
||||
<i class="fa fa-upload"></i> {{ 'labels.buttons.Upload' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div *ngIf="bulkImport.formFields >= 2" fxFlex class="cover"></div>
|
||||
<div *ngIf="bulkImport.formFields >= 2" class="flex cover"></div>
|
||||
</mat-card>
|
||||
</div>
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<div class="m-b-10" fxLayoutAlign="end">
|
||||
<div class="m-b-10 layout-align-end">
|
||||
<button mat-raised-button color="primary" (click)="refreshDocuments()">
|
||||
<i class="fa fa-repeat"></i> {{ 'labels.buttons.Refresh' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="bulkLoanForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<mat-form-field fxFlex="48%">
|
||||
<div class="layout-row-wrap gap-2px responsive-column">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
|
||||
<mat-select required (selectionChange)="getOffice($event.value)">
|
||||
<mat-option *ngFor="let office of offices" [value]="office.id">
|
||||
@@ -13,8 +13,8 @@
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<mat-form-field fxFlex="48%" (click)="assignmentDatePicker.open()">
|
||||
<div class="layout-row-wrap gap-2px responsive-column">
|
||||
<mat-form-field class="flex-48" (click)="assignmentDatePicker.open()">
|
||||
<mat-label>{{ 'labels.inputs.Assignment Date' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
@@ -33,8 +33,8 @@
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<mat-form-field fxFlex="48%" *ngIf="fromLoanOfficers !== undefined">
|
||||
<div class="layout-row-wrap gap-2px responsive-column">
|
||||
<mat-form-field class="flex-48" *ngIf="fromLoanOfficers !== undefined">
|
||||
<mat-label>{{ 'labels.inputs.From loan officer' | translate }}</mat-label>
|
||||
<mat-select required formControlName="fromLoanOfficerId" (selectionChange)="getFromOfficers($event.value)">
|
||||
<mat-option *ngFor="let fromOfficers of fromLoanOfficers" [value]="fromOfficers.id">
|
||||
@@ -48,8 +48,8 @@
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<mat-form-field fxFlex="48%">
|
||||
<div class="layout-row-wrap gap-2px responsive-column">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.To loan officer' | translate }}</mat-label>
|
||||
<mat-select required formControlName="toLoanOfficerId">
|
||||
<mat-option *ngFor="let toOfficers of toLoanOfficers" [value]="toOfficers.id">
|
||||
@@ -63,8 +63,8 @@
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<table *ngIf="officerTemplate !== undefined" fxFlex="48%">
|
||||
<div class="layout-row-wrap gap-2px responsive-column">
|
||||
<table *ngIf="officerTemplate !== undefined" class="flex-48">
|
||||
<thead>
|
||||
<th>{{ 'labels.inputs.Clients' | translate }}</th>
|
||||
</thead>
|
||||
@@ -90,7 +90,7 @@
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table *ngIf="officerTemplate !== undefined" fxFlex="48%">
|
||||
<table *ngIf="officerTemplate !== undefined" class="flex-48">
|
||||
<thead>
|
||||
<th>{{ 'labels.inputs.Groups' | translate }}</th>
|
||||
</thead>
|
||||
@@ -116,7 +116,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
|
||||
<div class="container m-b-20 layout-row align-end gap-20px">
|
||||
<div #buttonAddEdit class="in-block">
|
||||
<button mat-raised-button color="primary" [routerLink]="'manage'" *mifosxHasPermission="'UPDATE_CURRENCY'">
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
@@ -8,8 +8,8 @@
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div #filter fxLayout="row" fxLayoutGap="20px">
|
||||
<mat-form-field fxFlex>
|
||||
<div #filter class="layout-row gap-20px">
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
@@ -38,7 +38,7 @@
|
||||
<ng-template #templateButtonAddEdit let-popover="popover">
|
||||
<h2>{{ 'labels.heading.Add/Edit Currency' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.List of all currencies currently in use' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
<ng-template #templateFilter let-popover="popover">
|
||||
<h4>{{ 'labels.heading.Search bar to filter currencies.' | translate }}</h4>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
@@ -80,7 +80,7 @@
|
||||
|
||||
<ng-template #templateTableCurrencies let-popover="popover">
|
||||
<h4>{{ 'labels.heading.List of currencies available.' | translate }}</h4>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +11,7 @@ import { OrganizationService } from '../organization.service';
|
||||
* Currencies data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class CurrenciesResolver implements Resolve<Object> {
|
||||
export class CurrenciesResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
+18
-17
@@ -4,13 +4,10 @@
|
||||
<form
|
||||
#formRef="ngForm"
|
||||
[formGroup]="currencyForm"
|
||||
fxLayout="row"
|
||||
fxLayoutAlign="start baseline"
|
||||
fxLayoutGap="20px"
|
||||
fxFlex="48%"
|
||||
class="layout-row align-start-baseline gap-20px flex-48"
|
||||
(ngSubmit)="addCurrency()"
|
||||
>
|
||||
<mat-form-field fxFlex="calc(90%-20px)">
|
||||
<mat-form-field class="flex-fill flex-90-minus-20px">
|
||||
<mat-label>{{ 'labels.inputs.Currency' | translate }}</mat-label>
|
||||
<mat-select required formControlName="currency">
|
||||
<mat-option>
|
||||
@@ -32,7 +29,7 @@
|
||||
|
||||
<button
|
||||
mat-raised-button
|
||||
fxFlex
|
||||
class="flex-fill"
|
||||
color="primary"
|
||||
[disabled]="!currencyForm.valid"
|
||||
*mifosxHasPermission="'UPDATE_CURRENCY'"
|
||||
@@ -43,18 +40,22 @@
|
||||
</div>
|
||||
|
||||
<mat-grid-list cols="2" rowHeight="50px">
|
||||
<mat-grid-tile *ngFor="let currency of selectedCurrencies; index as i">
|
||||
<input matInput [value]="currency.name" />
|
||||
<mat-grid-tile class="grid-tile-content" *ngFor="let currency of selectedCurrencies; index as i">
|
||||
<div class="grid-container">
|
||||
<div>
|
||||
<button
|
||||
mat-button
|
||||
color="warn"
|
||||
(click)="deleteCurrency(currency.code, i)"
|
||||
*mifosxHasPermission="'UPDATE_CURRENCY'"
|
||||
>
|
||||
<fa-icon icon="trash"></fa-icon>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div fxLayout="row" fxLayoutAlign="flex-start">
|
||||
<button
|
||||
mat-button
|
||||
color="warn"
|
||||
(click)="deleteCurrency(currency.code, i)"
|
||||
*mifosxHasPermission="'UPDATE_CURRENCY'"
|
||||
<span class="label m-l-10 p-t-5"
|
||||
><b>{{ currency.name }}</b></span
|
||||
>
|
||||
<fa-icon icon="trash"></fa-icon>
|
||||
</button>
|
||||
</div>
|
||||
</mat-grid-tile>
|
||||
</mat-grid-list>
|
||||
@@ -69,7 +70,7 @@
|
||||
'labels.inputs.Currency Configuration' | translate
|
||||
}}</a>
|
||||
</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
.container {
|
||||
width: 74rem;
|
||||
}
|
||||
|
||||
.currency-grid {
|
||||
max-width: 40%;
|
||||
justify-content: left !important;
|
||||
}
|
||||
|
||||
mat-grid-tile {
|
||||
justify-content: left !important;
|
||||
}
|
||||
|
||||
.grid-container {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: left;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="employeeForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div #createEmployeeFormRef fxLayout="column">
|
||||
<div #createEmployeeFormRef class="layout-column">
|
||||
<mat-form-field>
|
||||
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
|
||||
<mat-select required formControlName="officeId">
|
||||
@@ -71,7 +71,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
@@ -97,7 +97,7 @@
|
||||
'labels.inputs.Manage Employees' | translate
|
||||
}}</a>
|
||||
</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +12,7 @@ import { OrganizationService } from '../organization.service';
|
||||
* Employees data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class EditEmployeeResolver implements Resolve<Object> {
|
||||
export class EditEmployeeResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="editEmployeeForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="column">
|
||||
<div class="layout-column">
|
||||
<mat-form-field>
|
||||
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
|
||||
<mat-select required formControlName="officeId">
|
||||
@@ -75,7 +75,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +12,7 @@ import { OrganizationService } from 'app/organization/organization.service';
|
||||
* Employee data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class EmployeeResolver implements Resolve<Object> {
|
||||
export class EmployeeResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
|
||||
<div class="container m-b-20 layout-row align-end gap-20px">
|
||||
<div #buttonImportEmployees>
|
||||
<button
|
||||
mat-raised-button
|
||||
@@ -19,8 +19,8 @@
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div #filter fxLayout="row" fxLayoutGap="20px">
|
||||
<mat-form-field fxFlex>
|
||||
<div #filter class="layout-row gap-20px">
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
@@ -85,7 +85,7 @@
|
||||
<ng-template #templateButtonImportEmployees let-data let-popover="popover">
|
||||
<h2>{{ 'labels.heading.Import Employees' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Import employee details from your local device' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
@@ -105,7 +105,7 @@
|
||||
<ng-template #templateButtonCreateEmployee let-popover="popover">
|
||||
<h2>{{ 'labels.heading.Create Employee' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Create new employees in your organization' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
@@ -128,7 +128,7 @@
|
||||
|
||||
<ng-template #templateFilter let-popover="popover">
|
||||
<h4>{{ 'labels.heading.Search bar to filter employees.' | translate }}</h4>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
@@ -151,7 +151,7 @@
|
||||
|
||||
<ng-template #templateTableEmployees let-popover="popover">
|
||||
<h4>{{ 'labels.heading.List of employees in the organization.' | translate }}</h4>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +11,7 @@ import { OrganizationService } from '../organization.service';
|
||||
* Employees data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class EmployeesResolver implements Resolve<Object> {
|
||||
export class EmployeesResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
|
||||
<div class="container m-b-20 layout-row align-end gap-20px">
|
||||
<button mat-raised-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_STAFF'">
|
||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Edit' | translate }}
|
||||
@@ -8,60 +8,60 @@
|
||||
<div class="container">
|
||||
<mat-card>
|
||||
<mat-card-content>
|
||||
<div fxLayout="row wrap" class="content">
|
||||
<div fxFlex="50%" class="mat-body-strong">
|
||||
<div class="layout-row-wrap">
|
||||
<div class="flex-50 mat-body-strong">
|
||||
{{ 'labels.inputs.First Name' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ employeeData.firstname }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong">
|
||||
<div class="flex-50 mat-body-strong">
|
||||
{{ 'labels.inputs.Last Name' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ employeeData.lastname }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong">
|
||||
<div class="flex-50 mat-body-strong">
|
||||
{{ 'labels.inputs.Office' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ employeeData.officeName }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong">
|
||||
<div class="flex-50 mat-body-strong">
|
||||
{{ 'labels.inputs.Is Loan Officer' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ employeeData.isLoanOfficer === true | yesNo }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong" *ngIf="employeeData.mobileNo">
|
||||
<div class="flex-50 mat-body-strong" *ngIf="employeeData.mobileNo">
|
||||
{{ 'labels.inputs.Mobile Number for SMS' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" *ngIf="employeeData.mobileNo">
|
||||
<div class="flex-50" *ngIf="employeeData.mobileNo">
|
||||
{{ employeeData.mobileNo }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong">
|
||||
<div class="flex-50 mat-body-strong">
|
||||
{{ 'labels.inputs.Status' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ employeeData.isActive === true ? 'Active' : 'Inactive' }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong">
|
||||
<div class="flex-50 mat-body-strong">
|
||||
{{ 'labels.inputs.Joining Date' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ employeeData.joiningDate | dateFormat }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="createEntityForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="column">
|
||||
<div class="layout-column">
|
||||
<mat-form-field>
|
||||
<mat-label>{{ 'labels.inputs.Entity' | translate }}</mat-label>
|
||||
<mat-select required formControlName="entity">
|
||||
@@ -73,7 +73,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
+1
-2
@@ -1,6 +1,5 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +11,7 @@ import { OrganizationService } from '../organization.service';
|
||||
* Entity Data Table Checks data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class EntityDataTableChecksTemplateResolver implements Resolve<Object> {
|
||||
export class EntityDataTableChecksTemplateResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
|
||||
<div class="container m-b-20 layout-row align-end gap-20px">
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
@@ -11,8 +11,8 @@
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div fxLayout="row" fxLayoutGap="20px">
|
||||
<mat-form-field fxFlex>
|
||||
<div class="layout-row gap-20px">
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +11,7 @@ import { OrganizationService } from '../organization.service';
|
||||
* Entity Data Table Checks data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class EntityDataTableChecksResolver implements Resolve<Object> {
|
||||
export class EntityDataTableChecksResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +11,7 @@ import { OrganizationService } from '../organization.service';
|
||||
* Advance Search Template resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class AdvanceSearchTemplateResolver implements Resolve<Object> {
|
||||
export class AdvanceSearchTemplateResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<mat-card class="container" *ngIf="!isCollapsed">
|
||||
<form [formGroup]="fundMappingForm" (ngSubmit)="submit()">
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" fxLayoutAlign.gt-sm="start center">
|
||||
<mat-form-field fxFlex="48%">
|
||||
<div class="layout-row-wrap gap-2percent responsive-column align-start-center">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Loan Status' | translate }}</mat-label>
|
||||
<mat-select formControlName="loanStatus" multiple>
|
||||
<mat-option value="all">{{ 'labels.inputs.All' | translate }}</mat-option>
|
||||
@@ -12,9 +12,9 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<span fxFlex="48%" fxHide.lt-md></span>
|
||||
<span class="flex-48 hide-lt-md"></span>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Product' | translate }}</mat-label>
|
||||
<mat-select formControlName="loanProducts" multiple>
|
||||
<mat-option *ngFor="let product of advanceSearchTemplate.loanProducts" [value]="product.id">
|
||||
@@ -23,7 +23,7 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
|
||||
<mat-select formControlName="offices" multiple>
|
||||
<mat-option *ngFor="let office of advanceSearchTemplate.offices" [value]="office.id">
|
||||
@@ -32,7 +32,7 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="31%">
|
||||
<mat-form-field class="flex-31">
|
||||
<mat-label>{{ 'labels.inputs.Date Type' | translate }}</mat-label>
|
||||
<mat-select required formControlName="loanDateOption">
|
||||
<mat-option value="approvalDate">{{ 'labels.inputs.Approval Date' | translate }}</mat-option>
|
||||
@@ -41,7 +41,7 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="31%" (click)="fromDatePicker.open()">
|
||||
<mat-form-field class="flex-fill flex-31" (click)="fromDatePicker.open()">
|
||||
<mat-label>{{ 'labels.inputs.From Date' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
@@ -59,7 +59,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="31%" (click)="toDatePicker.open()">
|
||||
<mat-form-field class="flex-fill flex-31" (click)="toDatePicker.open()">
|
||||
<mat-label>{{ 'labels.inputs.To Date' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
@@ -78,22 +78,18 @@
|
||||
</mat-form-field>
|
||||
|
||||
<mat-checkbox
|
||||
fxFlex="73%"
|
||||
labelPosition="before"
|
||||
formControlName="includeOutStandingAmountPercentage"
|
||||
class="margin-b"
|
||||
class="margin-b flex-73"
|
||||
>
|
||||
{{ 'labels.inputs.Loan Outstanding Percentage' | translate }}
|
||||
</mat-checkbox>
|
||||
|
||||
<div
|
||||
*ngIf="fundMappingForm.value.includeOutStandingAmountPercentage"
|
||||
fxFlexFill
|
||||
fxLayout="row wrap"
|
||||
fxLayoutGap="2%"
|
||||
fxLayout.lt-md="column"
|
||||
class="flex-fill layout-row-wrap gap-2percent layout-xs-column"
|
||||
>
|
||||
<mat-form-field *ngIf="fundMappingForm.contains('outStandingAmountPercentageCondition')" fxFlex="31%">
|
||||
<mat-form-field *ngIf="fundMappingForm.contains('outStandingAmountPercentageCondition')" class="flex-31">
|
||||
<mat-label>{{ 'labels.inputs.Comparison Condition' | translate }}</mat-label>
|
||||
<mat-select required formControlName="outStandingAmountPercentageCondition">
|
||||
<mat-option value="between">{{ 'labels.inputs.between' | translate }}</mat-option>
|
||||
@@ -109,7 +105,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field *ngIf="fundMappingForm.contains('minOutStandingAmountPercentage')" fxFlex="31%">
|
||||
<mat-form-field *ngIf="fundMappingForm.contains('minOutStandingAmountPercentage')" class="flex-31">
|
||||
<mat-label>{{ 'labels.inputs.Minimum Value' | translate }}</mat-label>
|
||||
<input type="number" matInput required formControlName="minOutStandingAmountPercentage" />
|
||||
<mat-error *ngIf="fundMappingForm.controls.minOutStandingAmountPercentage.hasError('required')">
|
||||
@@ -118,7 +114,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field *ngIf="fundMappingForm.contains('outStandingAmountPercentage')" fxFlex="31%">
|
||||
<mat-form-field *ngIf="fundMappingForm.contains('outStandingAmountPercentage')" class="flex-31">
|
||||
<mat-label>{{ 'labels.inputs.Comparison Value' | translate }}</mat-label>
|
||||
<input type="number" matInput required formControlName="outStandingAmountPercentage" />
|
||||
<mat-error *ngIf="fundMappingForm.controls.outStandingAmountPercentage.hasError('required')">
|
||||
@@ -127,7 +123,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field *ngIf="fundMappingForm.contains('maxOutStandingAmountPercentage')" fxFlex="31%">
|
||||
<mat-form-field *ngIf="fundMappingForm.contains('maxOutStandingAmountPercentage')" class="flex-31">
|
||||
<mat-label>{{ 'labels.inputs.Maximum Value' | translate }}</mat-label>
|
||||
<input type="number" matInput required formControlName="maxOutStandingAmountPercentage" />
|
||||
<mat-error *ngIf="fundMappingForm.controls.maxOutStandingAmountPercentage.hasError('required')">
|
||||
@@ -137,18 +133,15 @@
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<mat-checkbox fxFlex="73%" labelPosition="before" formControlName="includeOutstandingAmount" class="margin-b">
|
||||
<mat-checkbox class="flex-73 margin-b" labelPosition="before" formControlName="includeOutstandingAmount">
|
||||
{{ 'labels.inputs.Loan Outstanding Amount' | translate }}
|
||||
</mat-checkbox>
|
||||
|
||||
<div
|
||||
*ngIf="fundMappingForm.value.includeOutstandingAmount"
|
||||
fxFlexFill
|
||||
fxLayout="row wrap"
|
||||
fxLayoutGap="2%"
|
||||
fxLayout.lt-md="column"
|
||||
class="flex-fill layout-row-wrap gap-2percent responsive-column"
|
||||
>
|
||||
<mat-form-field *ngIf="fundMappingForm.contains('outstandingAmountCondition')" fxFlex="31%">
|
||||
<mat-form-field *ngIf="fundMappingForm.contains('outstandingAmountCondition')" class="flex-31">
|
||||
<mat-label>{{ 'labels.inputs.Comparison Condition' | translate }}</mat-label>
|
||||
<mat-select required formControlName="outstandingAmountCondition">
|
||||
<mat-option value="between">{{ 'labels.inputs.between' | translate }}</mat-option>
|
||||
@@ -164,7 +157,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field *ngIf="fundMappingForm.contains('minOutstandingAmount')" fxFlex="31%">
|
||||
<mat-form-field *ngIf="fundMappingForm.contains('minOutstandingAmount')" class="flex-31">
|
||||
<mat-label>{{ 'labels.inputs.Minimum Value' | translate }}</mat-label>
|
||||
<input type="number" matInput required formControlName="minOutstandingAmount" />
|
||||
<mat-error *ngIf="fundMappingForm.controls.minOutstandingAmount.hasError('required')">
|
||||
@@ -173,7 +166,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field *ngIf="fundMappingForm.contains('outstandingAmount')" fxFlex="31%">
|
||||
<mat-form-field *ngIf="fundMappingForm.contains('outstandingAmount')" class="flex-31">
|
||||
<mat-label>{{ 'labels.inputs.Comparison Value' | translate }}</mat-label>
|
||||
<input type="number" matInput required formControlName="outstandingAmount" />
|
||||
<mat-error *ngIf="fundMappingForm.controls.outstandingAmount.hasError('required')">
|
||||
@@ -182,7 +175,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field *ngIf="fundMappingForm.contains('maxOutstandingAmount')" fxFlex="31%">
|
||||
<mat-form-field *ngIf="fundMappingForm.contains('maxOutstandingAmount')" class="flex-31">
|
||||
<mat-label>{{ 'labels.inputs.Maximum Value' | translate }}</mat-label>
|
||||
<input type="number" matInput required formControlName="maxOutstandingAmount" />
|
||||
<mat-error *ngIf="fundMappingForm.controls.maxOutstandingAmount.hasError('required')">
|
||||
@@ -193,7 +186,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">{{ 'labels.buttons.Cancel' | translate }}</button>
|
||||
<button mat-raised-button color="primary" [disabled]="!fundMappingForm.valid">
|
||||
<fa-icon icon="search"></fa-icon> {{ 'labels.buttons.Summary' | translate }}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="holidayForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="column">
|
||||
<div class="layout-column">
|
||||
<mat-form-field>
|
||||
<mat-label>{{ 'labels.inputs.name' | translate }}</mat-label>
|
||||
<input matInput required autofocus formControlName="name" />
|
||||
@@ -111,7 +111,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="holidayForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="column">
|
||||
<div class="layout-column">
|
||||
<mat-form-field>
|
||||
<mat-label>{{ 'labels.inputs.name' | translate }}</mat-label>
|
||||
<input matInput required autofocus formControlName="name" />
|
||||
@@ -86,7 +86,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +12,7 @@ import { OrganizationService } from 'app/organization/organization.service';
|
||||
* Holiday data template resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class HolidayTemplateResolver implements Resolve<Object> {
|
||||
export class HolidayTemplateResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +12,7 @@ import { OrganizationService } from 'app/organization/organization.service';
|
||||
* Holiday data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class HolidayResolver implements Resolve<Object> {
|
||||
export class HolidayResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
|
||||
<div class="container m-b-20 layout-row align-end gap-20px">
|
||||
<div #buttonCreateHoliday class="in-block">
|
||||
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_HOLIDAY'">
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
@@ -8,8 +8,8 @@
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div #filterRef fxLayout="row" fxLayoutGap="20px">
|
||||
<mat-form-field fxFlex>
|
||||
<div #filterRef class="layout-row gap-20px">
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
@@ -67,7 +67,7 @@
|
||||
<ng-template #templateButtonCreateHoliday let-popover="popover">
|
||||
<h2>{{ 'labels.heading.Create Holiday' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Create holidays for different offices' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
@@ -86,7 +86,7 @@
|
||||
|
||||
<ng-template #templateFilterRef let-popover="popover">
|
||||
<h4>{{ 'labels.heading.Filter holidays' | translate }}</h4>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
|
||||
<div class="layout-row align-end gap-2px responsive-column container m-b-20">
|
||||
<span *mifosxHasPermission="'ACTIVATE_HOLIDAY'">
|
||||
<button mat-raised-button color="accent" (click)="activateHoliday()" *ngIf="holidayData.status.value !== 'Active'">
|
||||
<fa-icon icon="lock-open" class="m-r-10"></fa-icon>
|
||||
@@ -18,44 +18,44 @@
|
||||
<div class="container">
|
||||
<mat-card>
|
||||
<mat-card-content>
|
||||
<div fxLayout="row wrap" class="content">
|
||||
<div fxFlex="50%" class="header">
|
||||
<div class="layout-row-wrap">
|
||||
<div class="flex-50 header">
|
||||
{{ 'labels.inputs.Name' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ holidayData.name }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
<div class="flex-50 header">
|
||||
{{ 'labels.inputs.From Date' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ holidayData.fromDate | dateFormat }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
<div class="flex-50 header">
|
||||
{{ 'labels.inputs.To Date' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ holidayData.toDate | dateFormat }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
<div class="flex-50 header">
|
||||
{{ 'labels.inputs.Repayments Scheduled To' | translate }}
|
||||
</div>
|
||||
|
||||
<div
|
||||
fxFlex="50%"
|
||||
class="flex-50"
|
||||
*ngIf="holidayData.repaymentsRescheduledTo !== undefined && holidayData.repaymentsRescheduledTo !== null"
|
||||
>
|
||||
{{ holidayData.repaymentsRescheduledTo | dateFormat }}
|
||||
</div>
|
||||
|
||||
<div
|
||||
fxFlex="50%"
|
||||
class="flex-50"
|
||||
*ngIf="holidayData.repaymentsRescheduledTo === undefined || holidayData.repaymentsRescheduledTo === null"
|
||||
>
|
||||
{{ 'labels.inputs.Next Repayment Date' | translate }}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<mat-card class="container">
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<mat-form-field fxFlex="18%">
|
||||
<div class="layout-row-wrap gap-2px responsive-column">
|
||||
<mat-form-field class="flex-fill flex-18">
|
||||
<mat-label>{{ 'labels.text.Search by Text' | translate }}</mat-label>
|
||||
<input matInput [formControl]="searchText" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="18%" (click)="effectiveFromDatePicker.open()">
|
||||
<mat-form-field class="flex-fill flex-18" (click)="effectiveFromDatePicker.open()">
|
||||
<mat-label>{{ 'labels.text.Effective Date From' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
@@ -18,7 +18,7 @@
|
||||
<mat-datepicker #effectiveFromDatePicker></mat-datepicker>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="18%" (click)="effectiveToDatePicker.open()">
|
||||
<mat-form-field class="flex-fill flex-18" (click)="effectiveToDatePicker.open()">
|
||||
<mat-label>{{ 'labels.text.Effective Date To' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
@@ -31,7 +31,7 @@
|
||||
<mat-datepicker #effectiveToDatePicker></mat-datepicker>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="18%" (click)="settlementFromDatePicker.open()">
|
||||
<mat-form-field class="flex-fill flex-18" (click)="settlementFromDatePicker.open()">
|
||||
<mat-label>{{ 'labels.text.Settlement Date From' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
@@ -44,7 +44,7 @@
|
||||
<mat-datepicker #settlementFromDatePicker></mat-datepicker>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="18%" (click)="settlementToDatePicker.open()">
|
||||
<mat-form-field class="flex-fill flex-18" (click)="settlementToDatePicker.open()">
|
||||
<mat-label>{{ 'labels.text.Settlement Date To' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
@@ -57,7 +57,7 @@
|
||||
<mat-datepicker #settlementToDatePicker></mat-datepicker>
|
||||
</mat-form-field>
|
||||
|
||||
<div fxFlex="98%" class="center m-t-15">
|
||||
<div class="center m-t-15 flex-98">
|
||||
<button mat-raised-button color="primary" (click)="searchEAO()">
|
||||
<fa-icon icon="search" class="m-r-10"></fa-icon> {{ 'labels.buttons.Search' | translate }}
|
||||
</button>
|
||||
@@ -99,19 +99,19 @@
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td fxFlex="25%" class="m-l-5">
|
||||
<td class="m-l-5 flex-25">
|
||||
<b>{{ 'labels.inputs.Status' | translate }} :</b>
|
||||
</td>
|
||||
<td fxFlex="25%" class="m-l-5 left">
|
||||
<td class="flex-25 m-l-5 left">
|
||||
<div [ngClass]="itemStatus(record.status)">
|
||||
<fa-icon icon="stop"></fa-icon>
|
||||
<span class="m-l-5 status">{{ record.status }}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td fxFlex="25%" class="m-l-5">
|
||||
<td class="m-l-5 flex-25">
|
||||
<b>{{ 'labels.inputs.Owner External Id' | translate }} :</b>
|
||||
</td>
|
||||
<td fxFlex="25%" class="m-l-5 left">
|
||||
<td class="flex-25 m-l-5 left">
|
||||
<mifosx-external-identifier
|
||||
externalId="{{ record.owner.externalId }}"
|
||||
completed="true"
|
||||
@@ -119,69 +119,69 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td fxFlex="25%" class="m-l-5">
|
||||
<td class="m-l-5 flex-25">
|
||||
<b>{{ 'labels.inputs.Settlement Date' | translate }} :</b>
|
||||
</td>
|
||||
<td fxFlex="25%" class="m-l-5">
|
||||
<td class="m-l-5 flex-25">
|
||||
{{ record.settlementDate | dateFormat }}
|
||||
</td>
|
||||
<td fxFlex="25%" class="m-l-5">
|
||||
<td class="m-l-5 flex-25">
|
||||
<b>{{ 'labels.inputs.Effective Date' | translate }} :</b>
|
||||
</td>
|
||||
<td fxFlex="25%" class="m-l-5">
|
||||
<td class="m-l-5 flex-25">
|
||||
{{ record.effectiveFrom | dateFormat }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr *ngIf="record.details">
|
||||
<td fxFlex="25%" class="m-l-5">
|
||||
<td class="m-l-5 flex-25">
|
||||
<b>{{ 'labels.inputs.Details' | translate }} :</b>
|
||||
</td>
|
||||
<td fxFlex="75%" class="left">
|
||||
<td class="flex-75 left">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td fxFlex="50%" class="m-l-5">
|
||||
<td class="flex-50 m-l-5">
|
||||
<b>{{ 'labels.inputs.Principal Outstanding' | translate }} :</b>
|
||||
</td>
|
||||
<td fxFlex="50%" class="r-amount">
|
||||
<td class="flex-50 r-amount">
|
||||
{{ record.details.totalPrincipalOutstanding | formatNumber }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td fxFlex="50%" class="m-l-5">
|
||||
<td class="flex-50 m-l-5">
|
||||
<b>{{ 'labels.inputs.Interest Outstanding' | translate }} :</b>
|
||||
</td>
|
||||
<td fxFlex="50%" class="r-amount">
|
||||
<td class="flex-50 r-amount">
|
||||
{{ record.details.totalInterestOutstanding | formatNumber }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td fxFlex="50%" class="m-l-5">
|
||||
<td class="flex-50 m-l-5">
|
||||
<b>{{ 'labels.inputs.Fees Outstanding' | translate }} :</b>
|
||||
</td>
|
||||
<td fxFlex="50%" class="r-amount">
|
||||
<td class="flex-50 r-amount">
|
||||
{{ record.details.totalFeeChargesOutstanding | formatNumber }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td fxFlex="50%" class="m-l-5">
|
||||
<td class="flex-50 m-l-5">
|
||||
<b>{{ 'labels.inputs.Penalties Outstanding' | translate }} :</b>
|
||||
</td>
|
||||
<td fxFlex="50%" class="r-amount">
|
||||
<td class="flex-50 r-amount">
|
||||
{{ record.details.totalPenaltyChargesOutstanding | formatNumber }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td fxFlex="50%" class="m-l-5">
|
||||
<td class="flex-50 m-l-5">
|
||||
<b>{{ 'labels.inputs.Outstanding' | translate }} :</b>
|
||||
</td>
|
||||
<td fxFlex="50%" class="r-amount">{{ record.details.totalOutstanding | formatNumber }}</td>
|
||||
<td class="flex-50 r-amount">{{ record.details.totalOutstanding | formatNumber }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td fxFlex="50%" class="m-l-5">
|
||||
<td class="flex-50 m-l-5">
|
||||
<b>{{ 'labels.inputs.Overpaid' | translate }} :</b>
|
||||
</td>
|
||||
<td fxFlex="50%" class="r-amount">{{ record.details.totalOverpaid | formatNumber }}</td>
|
||||
<td class="flex-50 r-amount">{{ record.details.totalOverpaid | formatNumber }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -193,7 +193,7 @@
|
||||
|
||||
<mat-divider [inset]="true"></mat-divider>
|
||||
|
||||
<div class="record-actions" fxLayout="row" fxLayoutAlign="flex-end" *ngIf="canBeCancelled(record)">
|
||||
<div class="record-actions layout-row align-flex-end" *ngIf="canBeCancelled(record)">
|
||||
<button
|
||||
mat-button
|
||||
color="warn"
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +12,7 @@ import { OrganizationService } from '../../organization.service';
|
||||
* Provisioning criteria and template resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class LoanProvisioningCriteriaAndTemplateResolver implements Resolve<Object> {
|
||||
export class LoanProvisioningCriteriaAndTemplateResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Products service.
|
||||
*/
|
||||
|
||||
+1
-2
@@ -1,6 +1,5 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +11,7 @@ import { OrganizationService } from '../../organization.service';
|
||||
* Provisioning criteria template resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class LoanProvisioningCriteriaTemplateResolver implements Resolve<Object> {
|
||||
export class LoanProvisioningCriteriaTemplateResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Products service.
|
||||
*/
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +12,7 @@ import { OrganizationService } from '../../organization.service';
|
||||
* Loan Provisioning Criteria data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class LoanProvisioningCriteriaResolver implements Resolve<Object> {
|
||||
export class LoanProvisioningCriteriaResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
+1
-2
@@ -1,6 +1,5 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +11,7 @@ import { OrganizationService } from '../../organization.service';
|
||||
* Charges data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class LoanProvisioningCriteriasResolver implements Resolve<Object> {
|
||||
export class LoanProvisioningCriteriasResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Products service.
|
||||
*/
|
||||
|
||||
+4
-4
@@ -2,8 +2,8 @@
|
||||
<mat-card>
|
||||
<div>
|
||||
<form [formGroup]="provisioningCriteriaForm">
|
||||
<div fxLayout="row" fxLayoutGap="2%">
|
||||
<mat-form-field fxFlex>
|
||||
<div class="layout-row gap-2percent">
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Provisioning Criteria' | translate }}</mat-label>
|
||||
<input required matInput formControlName="criteriaName" />
|
||||
<mat-error *ngIf="provisioningCriteriaForm.controls.criteriaName.hasError('required')">
|
||||
@@ -12,7 +12,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex>
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Selected Products' | translate }}</mat-label>
|
||||
<mat-select formControlName="loanProducts" multiple>
|
||||
<mat-option *ngFor="let product of loanProvisioningCriteriaTemplate.loanProducts" [value]="product">
|
||||
@@ -81,7 +81,7 @@
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="m-t-20" fxLayout="row" fxLayoutAlign="center" fxLayoutGap="20px">
|
||||
<div class="m-t-20 layout-row layout-align-center gap-20px">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">{{ 'labels.buttons.Cancel' | translate }}</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
|
||||
+4
-4
@@ -2,8 +2,8 @@
|
||||
<mat-card>
|
||||
<div>
|
||||
<form [formGroup]="provisioningCriteriaForm">
|
||||
<div fxLayout="row" fxLayoutGap="2%">
|
||||
<mat-form-field fxFlex>
|
||||
<div class="layout-row gap-2percent">
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Provisioning Criteria' | translate }}</mat-label>
|
||||
<input required matInput formControlName="criteriaName" />
|
||||
<mat-error *ngIf="provisioningCriteriaForm.controls.criteriaName.hasError('required')">
|
||||
@@ -12,7 +12,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex>
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Selected Products' | translate }}</mat-label>
|
||||
<mat-select formControlName="loanProducts" [compareWith]="compareOptions" multiple>
|
||||
<mat-option *ngFor="let product of loanProducts" [value]="product">
|
||||
@@ -84,7 +84,7 @@
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="m-t-20" fxLayout="row" fxLayoutAlign="center" fxLayoutGap="20px">
|
||||
<div class="m-t-20 layout-row layout-align-center gap-20px">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">{{ 'labels.buttons.Cancel' | translate }}</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
|
||||
<div class="container m-b-20 layout-row align-end gap-20px">
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
@@ -11,8 +11,8 @@
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div fxLayout="row" fxLayoutGap="20px">
|
||||
<mat-form-field fxFlex>
|
||||
<div class="layout-row gap-20px">
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
|
||||
+6
-6
@@ -1,4 +1,4 @@
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
|
||||
<div class="layout-row align-end gap-2px responsive-column container m-b-20">
|
||||
<button mat-raised-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_CRITERIA'">
|
||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Edit' | translate }}
|
||||
@@ -12,13 +12,13 @@
|
||||
<div class="container">
|
||||
<mat-card>
|
||||
<mat-card-content>
|
||||
<div fxLayout="row wrap" class="content">
|
||||
<h2 class="mat-h2" fxFlexFill>{{ provisioningData.criteriaName }}</h2>
|
||||
<div class="layout-row-wrap">
|
||||
<h2 class="mat-h2 flex-fill">{{ provisioningData.criteriaName }}</h2>
|
||||
<mat-divider [inset]="true"></mat-divider>
|
||||
|
||||
<div fxFlexFill class="loanProduct">
|
||||
<span fxFlex="40%">{{ 'labels.inputs.Loan Product' | translate }}:</span>
|
||||
<span fxFlex="60%">{{ loanProducts }}</span>
|
||||
<div class="loanProduct flex-fill">
|
||||
<span class="flex-40">{{ 'labels.inputs.Loan Product' | translate }}:</span>
|
||||
<span class="flex-60">{{ loanProducts }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="fundForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="column">
|
||||
<div class="layout-column">
|
||||
<mat-form-field>
|
||||
<mat-label>{{ 'labels.inputs.name' | translate }}</mat-label>
|
||||
<input matInput required autofocus formControlName="name" />
|
||||
@@ -19,7 +19,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="fundForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="column">
|
||||
<div class="layout-column">
|
||||
<mat-form-field>
|
||||
<mat-label>{{ 'labels.inputs.name' | translate }}</mat-label>
|
||||
<input matInput required autofocus formControlName="name" />
|
||||
@@ -19,7 +19,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { ActivatedRouteSnapshot, Resolve } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { Observable } from 'rxjs';
|
||||
import { OrganizationService } from '../organization.service';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class ManageFundResolver implements Resolve<boolean> {
|
||||
export class ManageFundResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
|
||||
<div class="container m-b-20 layout-row align-end gap-20px">
|
||||
<div #fundFormRef class="in-block">
|
||||
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_FUND'">
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
@@ -8,8 +8,8 @@
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div #filter fxLayout="row" fxLayoutGap="20px">
|
||||
<mat-form-field fxFlex>
|
||||
<div #filter class="layout-row gap-20px">
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
@@ -45,7 +45,7 @@
|
||||
'labels.inputs.Manage Funds' | translate
|
||||
}}</a>
|
||||
</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
Close
|
||||
</button>
|
||||
|
||||
@@ -18,8 +18,8 @@ import { ConfigurationWizardService } from '../../configuration-wizard/configura
|
||||
|
||||
/** Custom Dialog Component */
|
||||
import { ContinueSetupDialogComponent } from '../../configuration-wizard/continue-setup-dialog/continue-setup-dialog.component';
|
||||
import { MatTableDataSource } from '@angular/material/table';
|
||||
import { MatPaginator } from '@angular/material/paginator';
|
||||
import { MatTableDataSource } from '@angular/material/table';
|
||||
import { MatSort } from '@angular/material/sort';
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +11,7 @@ import { OrganizationService } from '../organization.service';
|
||||
* Manage Funds data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class ManageFundsResolver implements Resolve<Object> {
|
||||
export class ManageFundsResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
|
||||
<div class="layout-row align-end gap-2px responsive-column container m-b-20">
|
||||
<button mat-raised-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_FUND'">
|
||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Edit' | translate }}
|
||||
@@ -8,20 +8,20 @@
|
||||
<div class="container">
|
||||
<mat-card>
|
||||
<mat-card-content>
|
||||
<div fxLayout="row wrap" class="content">
|
||||
<div fxFlex="50%" class="mat-body-strong">
|
||||
<div class="layout-row-wrap">
|
||||
<div class="flex-50 mat-body-strong">
|
||||
{{ 'labels.inputs.name' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ fundData.name }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong">
|
||||
<div class="flex-50 mat-body-strong">
|
||||
{{ 'labels.inputs.External Id' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
<mifosx-external-identifier
|
||||
externalId="{{ fundData.externalId }}"
|
||||
completed="true"
|
||||
@@ -29,7 +29,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row layout-align-center gap-2percent column-on-mobile">
|
||||
<button type="button" mat-raised-button color="primary" [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +12,7 @@ import { OrganizationService } from '../../organization.service';
|
||||
* Office and template data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class EditOfficeResolver implements Resolve<Object> {
|
||||
export class EditOfficeResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { SystemService } from 'app/system/system.service';
|
||||
|
||||
/** rxjs Imports */
|
||||
@@ -10,7 +10,7 @@ import { Observable } from 'rxjs';
|
||||
* Office Datatable data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class OfficeDatatableResolver implements Resolve<Object> {
|
||||
export class OfficeDatatableResolver {
|
||||
/**
|
||||
* @param {SystemService} systemService Products service.
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { SystemService } from 'app/system/system.service';
|
||||
|
||||
/** rxjs Imports */
|
||||
@@ -10,7 +10,7 @@ import { Observable } from 'rxjs';
|
||||
* Office Datatables data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class OfficeDatatablesResolver implements Resolve<Object> {
|
||||
export class OfficeDatatablesResolver {
|
||||
/**
|
||||
* @param {SystemService} systemService Products service.
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +12,7 @@ import { OrganizationService } from '../../organization.service';
|
||||
* Office data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class OfficeResolver implements Resolve<Object> {
|
||||
export class OfficeResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +11,7 @@ import { OrganizationService } from '../../organization.service';
|
||||
* Manage Offices data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class OfficesResolver implements Resolve<Object> {
|
||||
export class OfficesResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="officeForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div #createOfficeFormRef fxLayout="column">
|
||||
<div #createOfficeFormRef class="layout-column">
|
||||
<mat-form-field>
|
||||
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
|
||||
<input required matInput formControlName="name" />
|
||||
@@ -50,7 +50,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
@@ -70,7 +70,7 @@
|
||||
'labels.inputs.Manage Offices' | translate
|
||||
}}</a>
|
||||
</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="officeForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="column">
|
||||
<div class="layout-column">
|
||||
<mat-form-field>
|
||||
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
|
||||
<input matInput required formControlName="name" />
|
||||
@@ -50,7 +50,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../general']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
|
||||
<div class="container m-b-20 layout-row align-end gap-20px">
|
||||
<mat-button-toggle-group #buttonTreeView [formControl]="viewGroup">
|
||||
<mat-button-toggle value="listView">
|
||||
<fa-icon icon="list"></fa-icon>
|
||||
@@ -29,8 +29,8 @@
|
||||
</div>
|
||||
|
||||
<div class="container" [hidden]="viewGroup.value !== 'listView'">
|
||||
<div #filter fxLayout="row" fxLayoutGap="20px">
|
||||
<mat-form-field fxFlex>
|
||||
<div #filter class="layout-row gap-20px">
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'Filter' | translate }}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
@@ -74,14 +74,14 @@
|
||||
|
||||
<!-- Tree View -->
|
||||
<div class="container" [hidden]="viewGroup.value !== 'treeView'">
|
||||
<div class="m-b-20" fxLayout="row" fxLayoutAlign="start" fxLayoutGap="20px">
|
||||
<div class="m-b-20 layout-row align-start gap-20px">
|
||||
<button mat-raised-button (click)="toggleExpandCollapse()">
|
||||
{{ (isTreeExpanded ? 'labels.buttons.Collapse All' : 'labels.buttons.Expand All') | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div fxLayout="row" fxLayoutGap="4%" fxLayout.lt-md="column">
|
||||
<div fxFlex>
|
||||
<div class="layout-row gap-4percent responsive-column">
|
||||
<div class="flex-fill">
|
||||
<mat-card>
|
||||
<mat-card-content>
|
||||
<mat-tree [dataSource]="nestedTreeDataSource" [treeControl]="nestedTreeControl" class="office-tree">
|
||||
@@ -117,15 +117,15 @@
|
||||
</mat-card>
|
||||
</div>
|
||||
|
||||
<div fxFlex="48%" *ngIf="office">
|
||||
<div class="flex-48" *ngIf="office">
|
||||
<mat-card>
|
||||
<mat-card-content>
|
||||
<div fxLayout="row">
|
||||
<div class="layout-row">
|
||||
<mat-card-title>
|
||||
{{ office.name }}
|
||||
</mat-card-title>
|
||||
|
||||
<div fxFlex fxLayoutAlign="end">
|
||||
<div class="flex align-end">
|
||||
<button mat-icon-button (click)="closeOffice()">
|
||||
<fa-icon icon="times"></fa-icon>
|
||||
</button>
|
||||
@@ -134,28 +134,28 @@
|
||||
|
||||
<mat-tab-group>
|
||||
<mat-tab label="General">
|
||||
<div fxLayout="row wrap" class="content">
|
||||
<div fxFlex="50%" class="mat-body-strong" *ngIf="office.parentId">
|
||||
<div class="layout-row-wrap">
|
||||
<div class="flex-50 mat-body-strong" *ngIf="office.parentId">
|
||||
{{ 'Parent Office' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" *ngIf="office.parentId">
|
||||
<div class="flex-50" *ngIf="office.parentId">
|
||||
{{ office.parentName }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong">
|
||||
<div class="flex-50 mat-body-strong">
|
||||
{{ ' Opened On' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ office.openingDate | date }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong" *ngIf="office.externalId">
|
||||
<div class="flex-50 mat-body-strong" *ngIf="office.externalId">
|
||||
{{ 'External Id' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" *ngIf="office.externalId">
|
||||
<div class="flex-50" *ngIf="office.externalId">
|
||||
<mifosx-external-identifier externalId="{{ office.externalId }}"></mifosx-external-identifier>
|
||||
</div>
|
||||
</div>
|
||||
@@ -172,7 +172,7 @@
|
||||
<ng-template #templateButtonTreeView let-popover="popover">
|
||||
<h2>{{ 'labels.heading.Tree View' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Launch an alternative view for office hierarchy' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
@@ -192,7 +192,7 @@
|
||||
<ng-template #templateButtonCreateOffice let-popover="popover">
|
||||
<h2>{{ 'labels.heading.Create Office' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Create new offices' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
@@ -216,7 +216,7 @@
|
||||
<ng-template #templateButtonImportOffices let-popover="popover">
|
||||
<h2>{{ 'labels.heading.Import Offices' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Launch the Bulk import/Offices' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
@@ -239,7 +239,7 @@
|
||||
|
||||
<ng-template #templateFilter let-popover="popover">
|
||||
<h4>{{ 'labels.heading.Search bar to filter offices.' | translate }}</h4>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
@@ -262,7 +262,7 @@
|
||||
|
||||
<ng-template #templateTableOffices let-popover="popover">
|
||||
<h4>{{ 'labels.heading.List of offices in the organization.' | translate }}</h4>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<div class="tab-container mat-typography">
|
||||
<div fxLayoutAlign="flex-end" class="action-button m-b-20">
|
||||
<div class="layout-align-end action-button m-b-20">
|
||||
<span *mifosxHasPermission="'UPDATE_OFFICE'">
|
||||
<button mat-raised-button color="primary" [routerLink]="['../edit']">
|
||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>{{ 'labels.buttons.Edit' | translate }}
|
||||
@@ -7,35 +7,27 @@
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div fxLayout="row wrap" fxLayout.lt-md="column">
|
||||
<div fxFlex="45%" class="mat-body-strong left">
|
||||
{{ 'labels.inputs.Parent Office' | translate }}
|
||||
</div>
|
||||
<div fxFlex="50%" class="right">
|
||||
<div class="layout-row-wrap responsive-column">
|
||||
<div class="flex-45 mat-body-strong left">{{ 'labels.inputs.Parent Office' | translate }}</div>
|
||||
<div class="flex-50 right">
|
||||
{{ officeData.parentName ? officeData.parentName : 'N/A' }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="45%" class="mat-body-strong left">
|
||||
{{ 'labels.inputs.Opened On' | translate }}
|
||||
</div>
|
||||
<div fxFlex="50%" class="right">
|
||||
<div class="flex-45 mat-body-strong left">{{ 'labels.inputs.Opened On' | translate }}</div>
|
||||
<div class="flex-50 right">
|
||||
{{ officeData.openingDate ? (officeData.openingDate | dateFormat) : 'Unassigned' }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="45%" class="mat-body-strong left">
|
||||
{{ 'labels.inputs.Name Decorated' | translate }}
|
||||
</div>
|
||||
<div fxFlex="50%" class="right">
|
||||
<div class="flex-45 mat-body-strong left">{{ 'labels.inputs.Name Decorated' | translate }}</div>
|
||||
<div class="flex-50 right">
|
||||
{{ officeData.nameDecorated ? officeData.nameDecorated : 'Unassigned' }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="45%" class="mat-body-strong left">
|
||||
{{ 'labels.inputs.External Id' | translate }}
|
||||
</div>
|
||||
<div fxFlex="50%" class="right" *ngIf="officeData.externalId">
|
||||
<div class="flex-45 mat-body-strong left">{{ 'labels.inputs.External Id' | translate }}</div>
|
||||
<div class="flex-50 right" *ngIf="officeData.externalId">
|
||||
<mifosx-external-identifier externalId="{{ officeData.externalId }}"></mifosx-external-identifier>
|
||||
</div>
|
||||
<div fxFlex="50%" class="right" *ngIf="!officeData.externalId">
|
||||
<div class="flex-50 right" *ngIf="!officeData.externalId">
|
||||
{{ 'labels.inputs.Unassigned' | translate }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="container">
|
||||
<mat-card class="office-card">
|
||||
<mat-card-content>
|
||||
<nav mat-tab-nav-bar class="navigation-tabs">
|
||||
<nav mat-tab-nav-bar class="navigation-tabs" [tabPanel]="tabPanel">
|
||||
<a
|
||||
mat-tab-link
|
||||
[routerLink]="['./general']"
|
||||
@@ -25,7 +25,9 @@
|
||||
</span>
|
||||
</nav>
|
||||
|
||||
<router-outlet></router-outlet>
|
||||
<mat-tab-nav-panel #tabPanel>
|
||||
<router-outlet></router-outlet>
|
||||
</mat-tab-nav-panel>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
</div>
|
||||
|
||||
@@ -1,309 +1,605 @@
|
||||
<div class="container">
|
||||
<mat-card>
|
||||
<div fxLayout="row" fxLayout.lt-md="column" fxLayoutGap="20px">
|
||||
<div fxFlex="50%">
|
||||
<div class="layout-row responsive-column gap-20px">
|
||||
<div class="flex-50">
|
||||
<mat-nav-list>
|
||||
<div #office>
|
||||
<mat-list-item *mifosxHasPermission="'READ_OFFICE'">
|
||||
<mat-icon matListIcon [routerLink]="['offices']">
|
||||
<fa-icon icon="building" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['offices']">{{ 'labels.heading.Manage Offices' | translate }}</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(0)" *ngIf="!arrowBooleans[0]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(0)" *ngIf="arrowBooleans[0]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[0]" [routerLink]="['offices']">
|
||||
{{ 'labels.text.Add new office or modify or deactivate office' | translate }}
|
||||
</p>
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['offices']">
|
||||
<mat-icon matListIcon>
|
||||
<fa-icon icon="building" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.Manage Offices' | translate }}
|
||||
<p matLine *ngIf="arrowBooleans[0]" [routerLink]="['offices']" class="menu-explanation">
|
||||
{{ 'labels.text.Add new office or modify or deactivate office' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(0)"
|
||||
*ngIf="!arrowBooleans[0]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(0)"
|
||||
*ngIf="arrowBooleans[0]"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #holidays>
|
||||
<mat-list-item *mifosxHasPermission="'READ_HOLIDAY'">
|
||||
<mat-icon matListIcon [routerLink]="['holidays']">
|
||||
<fa-icon icon="calendar-alt" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['holidays']">{{ 'labels.heading.Manage Holidays' | translate }}</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(1)" *ngIf="!arrowBooleans[1]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(1)" *ngIf="arrowBooleans[1]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[1]" [routerLink]="['holidays']">
|
||||
{{ 'labels.text.Define holidays for office' | translate }}
|
||||
</p>
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['holidays']">
|
||||
<mat-icon matListIcon>
|
||||
<fa-icon icon="calendar-alt" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.Manage Holidays' | translate }}
|
||||
<p matLine *ngIf="arrowBooleans[1]" [routerLink]="['holidays']" class="menu-explanation">
|
||||
{{ 'labels.text.Define holidays for office' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(1)"
|
||||
*ngIf="!arrowBooleans[1]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(1)"
|
||||
*ngIf="arrowBooleans[1]"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #employee>
|
||||
<mat-list-item *mifosxHasPermission="'READ_STAFF'">
|
||||
<mat-icon matListIcon [routerLink]="['employees']">
|
||||
<fa-icon icon="user" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['employees']">{{ 'labels.heading.Manage Employees' | translate }}</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(2)" *ngIf="!arrowBooleans[2]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(2)" *ngIf="arrowBooleans[2]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[2]" [routerLink]="['employees']">
|
||||
{{ 'labels.text.Employee represents loan officers' | translate }}
|
||||
</p>
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['employees']">
|
||||
<mat-icon matListIcon>
|
||||
<fa-icon icon="user" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.Manage Employees' | translate }}
|
||||
<p matLine *ngIf="arrowBooleans[2]" [routerLink]="['employees']" class="menu-explanation">
|
||||
{{ 'labels.text.Employee represents loan officers' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(2)"
|
||||
*ngIf="!arrowBooleans[2]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(2)"
|
||||
*ngIf="arrowBooleans[2]"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #standinginstructions>
|
||||
<mat-list-item *mifosxHasPermission="'READ_STANDINGINSTRUCTION'">
|
||||
<mat-icon matListIcon [routerLink]="['standing-instructions-history']">
|
||||
<fa-icon icon="book" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['standing-instructions-history']">
|
||||
{{ 'labels.heading.Standing Instructions History' | translate }}
|
||||
</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(3)" *ngIf="!arrowBooleans[3]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(3)" *ngIf="arrowBooleans[3]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[3]" [routerLink]="['standing-instructions-history']">
|
||||
{{ 'labels.text.View logged history' | translate }}
|
||||
</p>
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['standing-instructions']">
|
||||
<mat-icon matListIcon>
|
||||
<fa-icon icon="book" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.Standing Instructions History' | translate }}
|
||||
<p
|
||||
matLine
|
||||
*ngIf="arrowBooleans[3]"
|
||||
[routerLink]="['standing-instructions-history']"
|
||||
class="menu-explanation"
|
||||
>
|
||||
{{ 'labels.text.View logged history' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(3)"
|
||||
*ngIf="!arrowBooleans[3]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(3)"
|
||||
*ngIf="arrowBooleans[3]"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #investor>
|
||||
<mat-list-item *mifosxHasPermission="'READ_OFFICE'">
|
||||
<mat-icon matListIcon [routerLink]="['investors']">
|
||||
<fa-icon icon="user-tie" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['investors']">{{ 'labels.text.Investors' | translate }}</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(4)" *ngIf="!arrowBooleans[4]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(4)" *ngIf="arrowBooleans[4]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[4]" [routerLink]="['investors']">
|
||||
{{ 'labels.text.View the loan account details associated with the investors' | translate }}
|
||||
</p>
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['investors']">
|
||||
<mat-icon>
|
||||
<fa-icon icon="user-tie" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.text.Investors' | translate }}
|
||||
<p matLine *ngIf="arrowBooleans[4]" [routerLink]="['investors']" class="menu-explanation">
|
||||
{{ 'labels.text.View the loan account details associated with the investors' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(4)"
|
||||
*ngIf="!arrowBooleans[4]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(4)"
|
||||
*ngIf="arrowBooleans[4]"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #fundmapping>
|
||||
<mat-list-item *mifosxHasPermission="'READ_OFFICE'">
|
||||
<mat-icon matListIcon [routerLink]="['fund-mapping']">
|
||||
<fa-icon icon="money-bill-alt" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['fund-mapping']">{{ 'labels.heading.Fund Mapping' | translate }}</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(5)" *ngIf="!arrowBooleans[5]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(5)" *ngIf="arrowBooleans[5]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[5]" [routerLink]="['fund-mapping']">
|
||||
{{ 'labels.text.Bulk entry screen for mapping' | translate }}
|
||||
</p>
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['fund-mapping']">
|
||||
<mat-icon matListIcon>
|
||||
<fa-icon icon="money-bill-alt" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.Fund Mapping' | translate }}
|
||||
<p matLine *ngIf="arrowBooleans[5]" [routerLink]="['fund-mapping']" class="menu-explanation">
|
||||
{{ 'labels.text.Bulk entry screen for mapping' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(5)"
|
||||
*ngIf="!arrowBooleans[5]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(5)"
|
||||
*ngIf="arrowBooleans[5]"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #passwordpreferences>
|
||||
<mat-list-item *mifosxHasPermission="'READ_PASSWORD_VALIDATION_POLICY'">
|
||||
<mat-icon matListIcon [routerLink]="['password-preferences']">
|
||||
<fa-icon icon="lock" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['password-preferences']">
|
||||
{{ 'labels.heading.Password Preferences' | translate }}
|
||||
</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(6)" *ngIf="!arrowBooleans[6]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(6)" *ngIf="arrowBooleans[6]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[6]" [routerLink]="['password-preferences']">
|
||||
{{ 'labels.text.The usage of stronger passwords' | translate }}
|
||||
</p>
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['password-preferences']">
|
||||
<mat-icon>
|
||||
<fa-icon icon="lock" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.Password Preferences' | translate }}
|
||||
<p
|
||||
matLine
|
||||
*ngIf="arrowBooleans[6]"
|
||||
[routerLink]="['password-preferences']"
|
||||
class="menu-explanation"
|
||||
>
|
||||
{{ 'labels.text.The usage of stronger passwords' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(6)"
|
||||
*ngIf="!arrowBooleans[6]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(6)"
|
||||
*ngIf="arrowBooleans[6]"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #provisioning>
|
||||
<mat-list-item *mifosxHasPermission="'VIEW_PROVISIONS'">
|
||||
<mat-icon matListIcon [routerLink]="['provisioning-criteria']">
|
||||
<fa-icon icon="edit" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['provisioning-criteria']">
|
||||
{{ 'labels.heading.Loan Provisioning Criteria' | translate }}
|
||||
</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(7)" *ngIf="!arrowBooleans[7]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(7)" *ngIf="arrowBooleans[7]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[7]" [routerLink]="['provisioning-criteria']">
|
||||
{{ 'labels.text.Loan Provisioning Criteria Organization' | translate }}
|
||||
</p>
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['provisioning-criteria']">
|
||||
<mat-icon matListIcon>
|
||||
<fa-icon icon="edit" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.Loan Provisioning Criteria' | translate }}
|
||||
<p
|
||||
matLine
|
||||
*ngIf="arrowBooleans[7]"
|
||||
[routerLink]="['provisioning-criteria']"
|
||||
class="menu-explanation"
|
||||
>
|
||||
{{ 'labels.text.Loan Provisioning Criteria Organization' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(7)"
|
||||
*ngIf="!arrowBooleans[7]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(7)"
|
||||
*ngIf="arrowBooleans[7]"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #entitydatatable>
|
||||
<mat-list-item *mifosxHasPermission="'READ_ENTITY_DATATABLE_CHECK'">
|
||||
<mat-icon matListIcon [routerLink]="['entity-data-table-checks']">
|
||||
<fa-icon icon="check" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['entity-data-table-checks']">
|
||||
{{ 'labels.heading.Entity Data Table Checks' | translate }}
|
||||
</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(8)" *ngIf="!arrowBooleans[8]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(8)" *ngIf="arrowBooleans[8]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[8]" [routerLink]="['entity-data-table-checks']">
|
||||
{{ 'labels.text.Entity Data Table Checks Organization' | translate }}
|
||||
</p>
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['entity-data-table-checks']">
|
||||
<mat-icon matListIcon>
|
||||
<fa-icon icon="check" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.Entity Data Table Checks' | translate }}
|
||||
<p
|
||||
matLine
|
||||
*ngIf="arrowBooleans[8]"
|
||||
[routerLink]="['entity-data-table-checks']"
|
||||
class="menu-explanation"
|
||||
>
|
||||
{{ 'labels.text.Entity Data Table Checks Organization' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(8)"
|
||||
*ngIf="!arrowBooleans[8]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(8)"
|
||||
*ngIf="arrowBooleans[8]"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
</mat-nav-list>
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
<mat-nav-list>
|
||||
<div #addEditCurrency>
|
||||
<mat-list-item *mifosxHasPermission="'READ_CURRENCY'">
|
||||
<mat-icon matListIcon [routerLink]="['currencies']">
|
||||
<fa-icon icon="cogs" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['currencies']">{{ 'labels.heading.Currency Configuration' | translate }}</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(9)" *ngIf="!arrowBooleans[9]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(9)" *ngIf="arrowBooleans[9]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[9]" [routerLink]="['currencies']">
|
||||
{{ 'labels.text.Currencies available across organization' | translate }}
|
||||
</p>
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['currencies']">
|
||||
<mat-icon matListIcon>
|
||||
<fa-icon icon="cogs" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.Currency Configuration' | translate }}
|
||||
<p matLine *ngIf="arrowBooleans[9]" [routerLink]="['currencies']" class="menu-explanation">
|
||||
{{ 'labels.text.Currencies available across organization' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(9)"
|
||||
*ngIf="!arrowBooleans[9]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(9)"
|
||||
*ngIf="arrowBooleans[9]"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #manageFunds>
|
||||
<mat-list-item *mifosxHasPermission="'READ_FUND'">
|
||||
<mat-icon matListIcon [routerLink]="['manage-funds']">
|
||||
<fa-icon icon="money-bill-alt" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['manage-funds']">{{ 'labels.heading.Manage Funds' | translate }}</h4>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(10)"
|
||||
*ngIf="!arrowBooleans[10]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(10)" *ngIf="arrowBooleans[10]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[10]" [routerLink]="['manage-funds']">
|
||||
{{ 'labels.text.Funds are associated with loans' | translate }}
|
||||
</p>
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['manage-funds']">
|
||||
<mat-icon matListIcon>
|
||||
<fa-icon icon="money-bill-alt" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.Manage Funds' | translate }}
|
||||
<p matLine *ngIf="arrowBooleans[10]" [routerLink]="['manage-funds']" class="menu-explanation">
|
||||
{{ 'labels.text.Funds are associated with loans' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(10)"
|
||||
*ngIf="!arrowBooleans[10]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(10)"
|
||||
*ngIf="arrowBooleans[10]"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #bulkloan>
|
||||
<mat-list-item *mifosxHasPermission="'BULKREASSIGN_LOAN'">
|
||||
<mat-icon matListIcon [routerLink]="['bulkloan']">
|
||||
<fa-icon icon="money-bill-alt" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['bulkloan']">{{ 'labels.heading.Bulk Loan Reassignment' | translate }}</h4>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(11)"
|
||||
*ngIf="!arrowBooleans[11]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(11)" *ngIf="arrowBooleans[11]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[11]" [routerLink]="['bulkloan']">
|
||||
{{ 'labels.text.Easy way to reassign all the loan' | translate }}
|
||||
</p>
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['bulkloan']">
|
||||
<mat-icon>
|
||||
<fa-icon icon="money-bill-alt" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.Bulk Loan Reassignment' | translate }}
|
||||
<p matLine *ngIf="arrowBooleans[11]" [routerLink]="['bulkloan']" class="menu-explanation">
|
||||
{{ 'labels.text.Easy way to reassign all the loan' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(11)"
|
||||
*ngIf="!arrowBooleans[11]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(11)"
|
||||
*ngIf="arrowBooleans[11]"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #tellers>
|
||||
<mat-list-item *mifosxHasPermission="'READ_TELLER'">
|
||||
<mat-icon matListIcon [routerLink]="['tellers']">
|
||||
<fa-icon icon="money-bill-alt" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['tellers']">{{ 'labels.heading.Teller / Cashier Management' | translate }}</h4>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(12)"
|
||||
*ngIf="!arrowBooleans[12]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(12)" *ngIf="arrowBooleans[12]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[12]" [routerLink]="['tellers']">
|
||||
{{ 'labels.text.Manage Tellers / Cashiers' | translate }}
|
||||
</p>
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['tellers']">
|
||||
<mat-icon>
|
||||
<fa-icon icon="money-bill-alt" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.Teller / Cashier Management' | translate }}
|
||||
<p matLine *ngIf="arrowBooleans[12]" [routerLink]="['tellers']" class="menu-explanation">
|
||||
{{ 'labels.text.Manage Tellers / Cashiers' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(12)"
|
||||
*ngIf="!arrowBooleans[12]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(12)"
|
||||
*ngIf="arrowBooleans[12]"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #workingDays>
|
||||
<mat-list-item *mifosxHasPermission="'READ_WORKINGDAYS'">
|
||||
<mat-icon matListIcon [routerLink]="['working-days']">
|
||||
<fa-icon icon="calendar-alt" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['working-days']">{{ 'labels.heading.Working Days' | translate }}</h4>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(13)"
|
||||
*ngIf="!arrowBooleans[13]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(13)" *ngIf="arrowBooleans[13]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[13]" [routerLink]="['working-days']">
|
||||
{{ 'labels.text.Working days and configure behaviour of payments' | translate }}
|
||||
</p>
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['working-days']">
|
||||
<mat-icon>
|
||||
<fa-icon icon="calendar-alt" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.Working Days' | translate }}
|
||||
<p matLine *ngIf="arrowBooleans[13]" [routerLink]="['working-days']" class="menu-explanation">
|
||||
{{ 'labels.text.Working days and configure behaviour of payments' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(13)"
|
||||
*ngIf="!arrowBooleans[13]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(13)"
|
||||
*ngIf="arrowBooleans[13]"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #paymenttypes>
|
||||
<mat-list-item *mifosxHasPermission="'READ_PAYMENTTYPE'">
|
||||
<mat-icon matListIcon [routerLink]="['payment-types']">
|
||||
<fa-icon icon="dollar-sign" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['payment-types']">{{ 'labels.heading.Payment Type' | translate }}</h4>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(14)"
|
||||
*ngIf="!arrowBooleans[14]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(14)" *ngIf="arrowBooleans[14]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[14]" [routerLink]="['payment-types']">
|
||||
{{ 'labels.text.Manage payment types' | translate }}
|
||||
</p>
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['payment-types']">
|
||||
<mat-icon matListIcon>
|
||||
<fa-icon icon="dollar-sign" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.Payment Type' | translate }}
|
||||
<p matLine *ngIf="arrowBooleans[14]" [routerLink]="['payment-types']" class="menu-explanation">
|
||||
{{ 'labels.text.Manage payment types' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(14)"
|
||||
*ngIf="!arrowBooleans[14]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(14)"
|
||||
*ngIf="arrowBooleans[14]"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #smscampaigns>
|
||||
<mat-list-item *mifosxHasPermission="'VIEW_SMSCAMPAIGNS'">
|
||||
<mat-icon matListIcon [routerLink]="['sms-campaigns']">
|
||||
<fa-icon icon="envelope" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['sms-campaigns']">{{ 'labels.heading.SMS Campaigns' | translate }}</h4>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(15)"
|
||||
*ngIf="!arrowBooleans[15]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(15)" *ngIf="arrowBooleans[15]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[15]" [routerLink]="['sms-campaigns']">
|
||||
{{ 'labels.text.Define SMS Campaigns for Organization' | translate }}
|
||||
</p>
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['sms-campaigns']">
|
||||
<mat-icon matListIcon>
|
||||
<fa-icon icon="envelope" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.SMS Campaigns' | translate }}
|
||||
<p matLine *ngIf="arrowBooleans[15]" [routerLink]="['sms-campaigns']" class="menu-explanation">
|
||||
{{ 'labels.text.Define SMS Campaigns for Organization' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(15)"
|
||||
*ngIf="!arrowBooleans[15]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(15)"
|
||||
*ngIf="arrowBooleans[15]"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #adhocquery>
|
||||
<mat-list-item *mifosxHasPermission="'VIEW_ADHOC'">
|
||||
<mat-icon matListIcon [routerLink]="['adhoc-query']">
|
||||
<fa-icon icon="chevron-right" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['adhoc-query']">{{ 'labels.heading.AdHocQuery' | translate }}</h4>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(16)"
|
||||
*ngIf="!arrowBooleans[16]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(16)" *ngIf="arrowBooleans[16]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[16]" [routerLink]="['adhoc-query']">
|
||||
{{ 'labels.text.Define AdHocQuery for Organization' | translate }}
|
||||
</p>
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['adhoc-query']">
|
||||
<mat-icon matListIcon>
|
||||
<fa-icon icon="chevron-right" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.AdHocQuery' | translate }}
|
||||
<p matLine *ngIf="arrowBooleans[16]" [routerLink]="['adhoc-query']" class="menu-explanation">
|
||||
{{ 'labels.text.Define AdHocQuery for Organization' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(16)"
|
||||
*ngIf="!arrowBooleans[16]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(16)"
|
||||
*ngIf="arrowBooleans[16]"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #bulkimport>
|
||||
<mat-list-item *mifosxHasPermission="'VIEW_BULKIMPORT'">
|
||||
<mat-icon matListIcon [routerLink]="['bulk-import']">
|
||||
<fa-icon icon="upload" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['bulk-import']">{{ 'labels.heading.Bulk Import' | translate }}</h4>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(17)"
|
||||
*ngIf="!arrowBooleans[17]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(17)" *ngIf="arrowBooleans[17]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[17]" [routerLink]="['bulk-import']">
|
||||
{{ 'labels.text.Bulk data import using excel spreadsheet templates' | translate }}
|
||||
</p>
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['bulk-import']">
|
||||
<mat-icon matListIcon>
|
||||
<fa-icon icon="upload" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.Bulk Import' | translate }}
|
||||
<p matLine *ngIf="arrowBooleans[17]" [routerLink]="['bulk-import']" class="menu-explanation">
|
||||
{{ 'labels.text.Bulk data import using excel spreadsheet templates' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(17)"
|
||||
*ngIf="!arrowBooleans[17]"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(17)"
|
||||
*ngIf="arrowBooleans[17]"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
</mat-nav-list>
|
||||
@@ -315,7 +611,7 @@
|
||||
<ng-template #templateOffice let-popover="popover">
|
||||
<h2>{{ 'labels.heading.Manage Offices' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Manage Offices page allows you to create, edit' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
@@ -331,7 +627,7 @@
|
||||
<ng-template #templateAddEditCurrency let-popover="popover">
|
||||
<h2>{{ 'labels.heading.Currency Configuration' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Define what currencies interactions within the Mifos X system' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
@@ -347,7 +643,7 @@
|
||||
<ng-template #templateHolidays let-popover="popover">
|
||||
<h2>{{ 'labels.heading.Manage Holidays' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Ability to manage holidays for individual offices' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
@@ -363,7 +659,7 @@
|
||||
<ng-template #templateEmployee let-popover="popover">
|
||||
<h2>{{ 'labels.heading.Manage Employees' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.View, edit and delete employees of your organization' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
@@ -379,7 +675,7 @@
|
||||
<ng-template #templateWorkingDays let-popover="popover">
|
||||
<h2>{{ 'labels.heading.Working Days' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Working days page allows you to define which days' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
@@ -395,7 +691,7 @@
|
||||
<ng-template #templateManageFunds let-popover="popover">
|
||||
<h2>{{ 'labels.heading.Manage Funds' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.This allows you to manage funds associated with loans.' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="layout-row align-end gap-2px responsive-column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +11,7 @@ import { OrganizationService } from '../organization.service';
|
||||
* Password Preferences Template data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class PasswordPreferencesTemplateResolver implements Resolve<Object> {
|
||||
export class PasswordPreferencesTemplateResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="passwordPreferencesForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<mat-radio-group fxLayout="column" formControlName="validationPolicyId" fxLayoutGap="10px">
|
||||
<mat-radio-group class="layout-column gap-10px radio-group-spacing" formControlName="validationPolicyId">
|
||||
<mat-radio-button *ngFor="let passwordPreference of passwordPreferencesData" [value]="passwordPreference.id">
|
||||
<span class="description-wrap">{{ passwordPreference.description }}</span>
|
||||
</mat-radio-button>
|
||||
</mat-radio-group>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,3 +1,15 @@
|
||||
.description-wrap {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.radio-group-spacing {
|
||||
display: flex;
|
||||
gap: 2rem;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
@media (width <= 768px) {
|
||||
.radio-group-spacing {
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="paymentTypeForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="column">
|
||||
<div class="layout-column">
|
||||
<mat-form-field>
|
||||
<mat-label>{{ 'labels.inputs.Payment Type' | translate }}</mat-label>
|
||||
<input required matInput formControlName="name" />
|
||||
@@ -32,7 +32,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="paymentTypeForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="column">
|
||||
<div class="layout-column">
|
||||
<mat-form-field>
|
||||
<mat-label>{{ 'labels.inputs.Payment Type' | translate }}</mat-label>
|
||||
<input required matInput formControlName="name" />
|
||||
@@ -32,7 +32,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
|
||||
<div class="container m-b-20 layout-row align-end gap-20px">
|
||||
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_PAYMENTTYPE'">
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Create Payment Type' | translate }}
|
||||
@@ -6,8 +6,8 @@
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div fxLayout="row" fxLayoutGap="20px">
|
||||
<mat-form-field fxFlex>
|
||||
<div class="layout-row gap-20px">
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
@@ -81,12 +81,13 @@
|
||||
|
||||
<ng-container matColumnDef="actions">
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Actions' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let paymentType">
|
||||
<td mat-cell *matCellDef="let paymentType" class="layout-row">
|
||||
<button
|
||||
mat-button
|
||||
[routerLink]="[paymentType.id, 'edit']"
|
||||
color="primary"
|
||||
*ngIf="!paymentType.isSystemDefined"
|
||||
class="no-wrap"
|
||||
>
|
||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>{{ 'labels.buttons.Edit' | translate }}
|
||||
</button>
|
||||
@@ -95,6 +96,7 @@
|
||||
(click)="deletePaymentType(paymentType.id)"
|
||||
color="warn"
|
||||
*ngIf="!paymentType.isSystemDefined"
|
||||
class="no-wrap"
|
||||
>
|
||||
<fa-icon icon="trash" class="m-r-10"></fa-icon>{{ 'labels.buttons.Delete' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -13,3 +13,9 @@ table {
|
||||
.text-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.nowrap {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { ActivatedRouteSnapshot, Resolve } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +12,7 @@ import { OrganizationService } from '../organization.service';
|
||||
* Payment Types data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class PaymentTypesResolver implements Resolve<Object> {
|
||||
export class PaymentTypesResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
+1
-2
@@ -1,6 +1,5 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +11,7 @@ import { OrganizationService } from '../../organization.service';
|
||||
* SMS Campaign Template resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class SmsCampaignTemplateResolver implements Resolve<Object> {
|
||||
export class SmsCampaignTemplateResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +12,7 @@ import { OrganizationService } from 'app/organization/organization.service';
|
||||
* SMS Campaign data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class SmsCampaignResolver implements Resolve<Object> {
|
||||
export class SmsCampaignResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +11,7 @@ import { OrganizationService } from '../../organization.service';
|
||||
* SMS Campaigns data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class SmsCampaignsResolver implements Resolve<Object> {
|
||||
export class SmsCampaignsResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
+5
-5
@@ -1,12 +1,12 @@
|
||||
<div fxLayout="column">
|
||||
<mat-form-field fxFlex="98%">
|
||||
<div class="layout-column">
|
||||
<mat-form-field class="flex-98">
|
||||
<mat-label>{{ 'labels.inputs.Campaign Message' | translate }}</mat-label>
|
||||
<textarea matInput [formControl]="message"></textarea>
|
||||
</mat-form-field>
|
||||
|
||||
<h3 fxFlex="98%" class="mat-h3">{{ 'labels.heading.Template Parameters' | translate }}</h3>
|
||||
<h3 class="mat-h3 flex-98">{{ 'labels.heading.Template Parameters' | translate }}</h3>
|
||||
|
||||
<div fxLayout="row wrap" fxLayout.xs="column" fxLayoutAlign="center">
|
||||
<div class="layout-row-wrap layout-xs-column layout-align-center">
|
||||
<button
|
||||
mat-stroked-button
|
||||
color="primary"
|
||||
@@ -18,7 +18,7 @@
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
||||
<div class="layout-row align-center gap-2percent margin-t responsive-column">
|
||||
<button mat-raised-button matStepperPrevious>
|
||||
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Previous' | translate }}
|
||||
|
||||
+2
-2
@@ -17,13 +17,13 @@
|
||||
{{ campaign.editFlag ? campaign.reportName : campaign.paramValue?.reportName }}
|
||||
</mat-list-item>
|
||||
|
||||
<div fxLayout="column" fxLayoutGap="10px" class="template-message">
|
||||
<div class="layout-column gap-10px template-message">
|
||||
<h3>{{ 'labels.heading.Campaign Message' | translate }} :</h3>
|
||||
<textarea matInput disabled>{{ campaign.editFlag ? editedCampaignMessage : campaign.message }}</textarea>
|
||||
</div>
|
||||
</mat-list>
|
||||
|
||||
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
||||
<div class="layout-row align-center gap-2percent margin-t responsive-column">
|
||||
<button mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
+8
-8
@@ -1,13 +1,13 @@
|
||||
<div fxLayout="column">
|
||||
<mat-divider fxFlex="98%"></mat-divider>
|
||||
<div class="layout-column">
|
||||
<mat-divider class="flex-98"></mat-divider>
|
||||
|
||||
<h3 fxFlex="98%" class="mat-h3">{{ 'labels.heading.Business Rule Parameters' | translate }}</h3>
|
||||
<h3 class="mat-h3 flex-98">{{ 'labels.heading.Business Rule Parameters' | translate }}</h3>
|
||||
|
||||
<form [formGroup]="ReportForm">
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%">
|
||||
<div class="layout-row-wrap gap-2percent">
|
||||
<ng-container *ngFor="let param of paramData" [ngSwitch]="param.displayType">
|
||||
<ng-container *ngIf="ReportForm.controls[param.name]">
|
||||
<mat-form-field fxFlex="48%" *ngSwitchCase="'text'">
|
||||
<mat-form-field class="flex-48" *ngSwitchCase="'text'">
|
||||
<mat-label>{{ param.label }}</mat-label>
|
||||
<input matInput required [formControlName]="param.name" />
|
||||
<mat-error *ngIf="ReportForm.controls[param.name].hasError('required')">
|
||||
@@ -16,7 +16,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" *ngSwitchCase="'date'" (click)="runReportDatePicker.open()">
|
||||
<mat-form-field class="flex-48" *ngSwitchCase="'date'" (click)="runReportDatePicker.open()">
|
||||
<mat-label>{{ param.label }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
@@ -34,7 +34,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" *ngSwitchCase="'select'">
|
||||
<mat-form-field class="flex-48" *ngSwitchCase="'select'">
|
||||
<mat-label>{{ param.label }}</mat-label>
|
||||
<mat-select required [formControlName]="param.name" [compareWith]="compareOptions">
|
||||
<mat-option *ngFor="let option of param.selectOptions" [value]="option">
|
||||
@@ -52,7 +52,7 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
|
||||
<div class="layout-row responsive-column align-center gap-2px margin-t">
|
||||
<button mat-raised-button matStepperPrevious disabled>
|
||||
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Previous' | translate }}
|
||||
|
||||
+7
-7
@@ -1,6 +1,6 @@
|
||||
<form [formGroup]="smsCampaignDetailsForm">
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" fxLayoutAlign.gt-sm="start center">
|
||||
<mat-form-field fxFlex="48%">
|
||||
<div class="layout-row-wrap gap-2percent responsive-column align-start-center">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Campaign Name' | translate }}</mat-label>
|
||||
<input matInput formControlName="campaignName" required />
|
||||
<mat-error>
|
||||
@@ -9,7 +9,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" *ngIf="!smsCampaignDetailsForm.controls.isNotification.value">
|
||||
<mat-form-field class="flex-48" *ngIf="!smsCampaignDetailsForm.controls.isNotification.value">
|
||||
<mat-label>{{ 'labels.inputs.SMS Provider' | translate }}</mat-label>
|
||||
<mat-select formControlName="providerId">
|
||||
<mat-option *ngFor="let provider of smsProviders" [value]="provider.id">
|
||||
@@ -18,7 +18,7 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Trigger Type' | translate }}</mat-label>
|
||||
<mat-select formControlName="triggerType" required>
|
||||
<mat-option *ngFor="let triggerType of triggerTypes" [value]="triggerType.id">
|
||||
@@ -31,12 +31,12 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-checkbox labelPosition="before" formControlName="isNotification" fxFlex="48%">
|
||||
<mat-checkbox labelPosition="before" formControlName="isNotification" class="flex-48">
|
||||
{{ 'labels.inputs.Is Notification' | translate }}?
|
||||
</mat-checkbox>
|
||||
|
||||
<mat-form-field
|
||||
fxFlex="48%"
|
||||
class="flex-48"
|
||||
*ngIf="smsCampaignDetailsForm.controls.recurrenceStartDate"
|
||||
(click)="recurrenceStartDatePicker.open()"
|
||||
>
|
||||
@@ -57,7 +57,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Business Rule' | translate }}</mat-label>
|
||||
<mat-select formControlName="runReportId" required>
|
||||
<mat-option *ngFor="let rule of businessRules" [value]="rule.reportId">
|
||||
|
||||
+8
-8
@@ -1,13 +1,13 @@
|
||||
<div fxLayout="column">
|
||||
<mat-divider fxFlex="98%"></mat-divider>
|
||||
<div class="layout-column">
|
||||
<mat-divider class="flex-98"></mat-divider>
|
||||
|
||||
<h3 fxFlex="98%" class="mat-h3">{{ 'labels.heading.Business Rule Parameters' | translate }}</h3>
|
||||
<h3 class="mat-h3 flex-98">{{ 'labels.heading.Business Rule Parameters' | translate }}</h3>
|
||||
|
||||
<form [formGroup]="ReportForm">
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%">
|
||||
<div class="layout-row-wrap gap-2percent">
|
||||
<ng-container *ngFor="let param of paramData" [ngSwitch]="param.displayType">
|
||||
<ng-container *ngIf="ReportForm.contains(param.name)">
|
||||
<mat-form-field fxFlex="48%" *ngSwitchCase="'text'">
|
||||
<mat-form-field class="flex-48" *ngSwitchCase="'text'">
|
||||
<mat-label>{{ param.label }}</mat-label>
|
||||
<input matInput required [formControlName]="param.name" />
|
||||
<mat-error *ngIf="ReportForm.controls[param.name].hasError('required')">
|
||||
@@ -16,7 +16,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" *ngSwitchCase="'date'" (click)="runReportDatePicker.open()">
|
||||
<mat-form-field class="flex-48" *ngSwitchCase="'date'" (click)="runReportDatePicker.open()">
|
||||
<mat-label>{{ param.label }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
@@ -34,7 +34,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" *ngSwitchCase="'select'">
|
||||
<mat-form-field class="flex-48" *ngSwitchCase="'select'">
|
||||
<mat-label>{{ param.label }}</mat-label>
|
||||
<mat-select required [formControlName]="param.name">
|
||||
<mat-option *ngFor="let option of param.selectOptions" [value]="option">
|
||||
@@ -52,7 +52,7 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="margin-t" fxLayoutAlign="center">
|
||||
<div class="layout-align-center margin-t">
|
||||
<button
|
||||
mat-raised-button
|
||||
matStepperNext
|
||||
|
||||
+11
-15
@@ -1,6 +1,6 @@
|
||||
<form [formGroup]="smsCampaignDetailsForm">
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" fxLayoutAlign.gt-sm="start center">
|
||||
<mat-form-field fxFlex="48%">
|
||||
<div class="layout-row-wrap gap-2percent responsive-column align-start-center">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Campaign Name' | translate }}</mat-label>
|
||||
<input matInput formControlName="campaignName" required />
|
||||
<mat-error>
|
||||
@@ -9,7 +9,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" *ngIf="!smsCampaignDetailsForm.controls.isNotification.value">
|
||||
<mat-form-field class="flex-48" *ngIf="!smsCampaignDetailsForm.controls.isNotification.value">
|
||||
<mat-label>{{ 'labels.inputs.SMS Provider' | translate }}</mat-label>
|
||||
<mat-select formControlName="providerId">
|
||||
<mat-option *ngFor="let provider of smsProviders" [value]="provider.id">
|
||||
@@ -18,7 +18,7 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Trigger Type' | translate }}</mat-label>
|
||||
<mat-select formControlName="triggerType" required>
|
||||
<mat-option *ngFor="let triggerType of triggerTypes" [value]="triggerType.id">
|
||||
@@ -31,12 +31,12 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-checkbox labelPosition="before" formControlName="isNotification" fxFlex="48%">
|
||||
<mat-checkbox labelPosition="before" formControlName="isNotification" class="flex-48">
|
||||
{{ 'labels.inputs.Is Notification' | translate }}?
|
||||
</mat-checkbox>
|
||||
|
||||
<mat-form-field
|
||||
fxFlex="48%"
|
||||
class="flex-48"
|
||||
*ngIf="smsCampaignDetailsForm.contains('recurrenceStartDate')"
|
||||
(click)="recurrenceStartDatePicker.open()"
|
||||
>
|
||||
@@ -57,7 +57,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" *ngIf="smsCampaignDetailsForm.contains('frequency')">
|
||||
<mat-form-field class="flex-48" *ngIf="smsCampaignDetailsForm.contains('frequency')">
|
||||
<mat-label>{{ 'labels.inputs.Repeats' | translate }}</mat-label>
|
||||
<mat-select formControlName="frequency" required>
|
||||
<mat-option [value]="1">{{ 'labels.inputs.Daily' | translate }}</mat-option>
|
||||
@@ -71,7 +71,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" *ngIf="smsCampaignDetailsForm.contains('interval')">
|
||||
<mat-form-field class="flex-48" *ngIf="smsCampaignDetailsForm.contains('interval')">
|
||||
<mat-label>{{ 'labels.inputs.Repetition Interval' | translate }}</mat-label>
|
||||
<mat-select formControlName="interval" required>
|
||||
<mat-option *ngFor="let interval of repetitionIntervals" [value]="interval">
|
||||
@@ -84,7 +84,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" *ngIf="smsCampaignDetailsForm.contains('repeatsOnDay')">
|
||||
<mat-form-field class="flex-48" *ngIf="smsCampaignDetailsForm.contains('repeatsOnDay')">
|
||||
<mat-label>{{ 'labels.inputs.Repeats on Day' | translate }}</mat-label>
|
||||
<mat-select formControlName="repeatsOnDay" required>
|
||||
<mat-option value="1">{{ 'labels.inputs.Monday' | translate }}</mat-option>
|
||||
@@ -101,7 +101,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Business Rule' | translate }}</mat-label>
|
||||
<mat-select formControlName="runReportId" required>
|
||||
<mat-option *ngFor="let rule of businessRules" [value]="rule.reportId">
|
||||
@@ -116,11 +116,7 @@
|
||||
</div>
|
||||
|
||||
<div
|
||||
fxLayout="row"
|
||||
class="margin-t"
|
||||
fxLayout.xs="column"
|
||||
fxLayoutAlign="center"
|
||||
fxLayoutGap="2%"
|
||||
class="layout-row layout-xs-column layout-align-center margin-t gap-2percent"
|
||||
*ngIf="!smsCampaignDetailsForm.controls.runReportId.value"
|
||||
>
|
||||
<button mat-raised-button matStepperPrevious disabled>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
|
||||
<div class="container m-b-20 layout-row align-end gap-20px">
|
||||
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_SMSCAMPAIGN'">
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Create SMS Campaign' | translate }}
|
||||
@@ -6,8 +6,8 @@
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div fxLayout="row" fxLayoutGap="20px">
|
||||
<mat-form-field fxFlex>
|
||||
<div class="layout-row gap-20px">
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<div class="container">
|
||||
<div fxLayout="row" fxLayoutGap="1%" fxLayoutAlign="flex-end" class="action-buttons m-b-20">
|
||||
<div class="layout-row align-flex-end action-buttons m-b-20 gap-1percent">
|
||||
<span *ngIf="smsCampaignData.campaignStatus.value !== 'active'">
|
||||
<button mat-raised-button color="primary" *mifosxHasPermission="'UPDATE_SMSCAMPAIGN'" [routerLink]="['edit']">
|
||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>{{ 'labels.buttons.Edit' | translate }}
|
||||
@@ -74,7 +74,7 @@
|
||||
{{ 'labels.inputs.Recurrence' | translate }} : {{ smsCampaignData.recurrence }}
|
||||
</mat-list-item>
|
||||
|
||||
<div fxLayout="column" fxLayoutGap="10px" class="template-message">
|
||||
<div class="layout-column gap-10px template-message">
|
||||
<h3>{{ 'labels.heading.Template Message' | translate }} :</h3>
|
||||
<textarea matInput disabled>{{ smsCampaignData.campaignMessage }}</textarea>
|
||||
</div>
|
||||
@@ -85,7 +85,7 @@
|
||||
<mat-tab *ngFor="let tab of smsTabs" [label]="tab.label">
|
||||
<div class="tab-content mat-typography">
|
||||
<form [formGroup]="smsForm" (ngSubmit)="search()">
|
||||
<div fxLayout="row" fxLayoutGap="3%" fxLayoutAlign="center">
|
||||
<div class="layout-row layout-align-center gap-3percent">
|
||||
<mat-form-field (click)="fromDatePicker.open()">
|
||||
<mat-label>{{ 'labels.inputs.From Date' | translate }}</mat-label>
|
||||
<input
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@
|
||||
<mat-card *ngIf="!isCollapsed">
|
||||
<form [formGroup]="instructionForm" (ngSubmit)="search()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="column">
|
||||
<div class="layout-column">
|
||||
<mat-form-field>
|
||||
<mat-label>{{ 'labels.inputs.Client Name' | translate }}</mat-label>
|
||||
<input matInput formControlName="clientName" />
|
||||
@@ -64,7 +64,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
+1
-2
@@ -1,6 +1,5 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +11,7 @@ import { OrganizationService } from '../organization.service';
|
||||
* Standing Instructions Template resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class StandingInstructionsTemplateResolver implements Resolve<Object> {
|
||||
export class StandingInstructionsTemplateResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="allocateCashForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<mat-form-field fxFlex="48%">
|
||||
<div class="layout-row-wrap gap-2px responsive-column">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
|
||||
<input matInput required formControlName="office" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Teller Name' | translate }}</mat-label>
|
||||
<input matInput required formControlName="tellerName" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Cashier' | translate }}</mat-label>
|
||||
<input matInput required formControlName="cashier" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Assignment Period' | translate }}</mat-label>
|
||||
<input matInput formControlName="assignmentPeriod" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" (click)="cashDatePicker.open()">
|
||||
<mat-form-field class="flex-48" (click)="cashDatePicker.open()">
|
||||
<mat-label>{{ 'labels.inputs.Date' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
@@ -41,7 +41,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Currency' | translate }}</mat-label>
|
||||
<mat-select required formControlName="currencyCode">
|
||||
<mat-option *ngFor="let currency of cashierData.currencyOptions" [value]="currency.code">
|
||||
@@ -54,7 +54,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Amount' | translate }}</mat-label>
|
||||
<input matInput required formControlName="txnAmount" />
|
||||
<mat-error *ngIf="allocateCashForm.controls.txnAmount.hasError('required')">
|
||||
@@ -63,7 +63,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Notes/Comments' | translate }}</mat-label>
|
||||
<input matInput required formControlName="txnNote" />
|
||||
<mat-error *ngIf="allocateCashForm.controls.txnNote.hasError('required')">
|
||||
@@ -74,7 +74,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
|
||||
<div class="container m-b-20 layout-row align-end gap-20px">
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
@@ -11,8 +11,8 @@
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div fxLayout="row" fxLayoutGap="20px">
|
||||
<mat-form-field fxFlex>
|
||||
<div class="layout-row gap-20px">
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
|
||||
@@ -2,18 +2,18 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="createCashierForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<mat-form-field fxFlex="48%">
|
||||
<div class="layout-row-wrap gap-2px responsive-column">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
|
||||
<input matInput required autofocus [value]="cashierTemplate.officeName" disabled />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Teller Name' | translate }}</mat-label>
|
||||
<input matInput required autofocus [value]="cashierTemplate.tellerName" disabled />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Cashier' | translate }}</mat-label>
|
||||
<mat-select formControlName="staffId">
|
||||
<mat-option *ngFor="let staff of cashierTemplate.staffOptions" [value]="staff.id">
|
||||
@@ -26,12 +26,12 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Description/Notes' | translate }}</mat-label>
|
||||
<input matInput autofocus formControlName="description" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" (click)="fromDatePicker.open()">
|
||||
<mat-form-field class="flex-48" (click)="fromDatePicker.open()">
|
||||
<mat-label>{{ 'labels.inputs.From' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
@@ -49,7 +49,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" (click)="toDatePicker.open()">
|
||||
<mat-form-field class="flex-48" (click)="toDatePicker.open()">
|
||||
<mat-label>{{ 'labels.inputs.To' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
@@ -67,7 +67,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<div fxFlex="48%" class="space">
|
||||
<div class="space flex-48">
|
||||
<mat-checkbox labelPosition="before" formControlName="isFullDay">
|
||||
{{ 'labels.inputs.Full Day' | translate }}?
|
||||
</mat-checkbox>
|
||||
@@ -75,7 +75,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -2,18 +2,18 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="editCashierForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<mat-form-field fxFlex="48%">
|
||||
<div class="layout-row-wrap gap-2px responsive-column">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
|
||||
<input matInput required autofocus [value]="cashierData.template.officeName" disabled />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Teller Name' | translate }}</mat-label>
|
||||
<input matInput required autofocus [value]="cashierData.data.tellerName" disabled />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" *ngIf="isStaffId">
|
||||
<mat-form-field class="flex-48" *ngIf="isStaffId">
|
||||
<mat-label>{{ 'labels.inputs.Cashier' | translate }}</mat-label>
|
||||
<mat-select formControlName="staffId">
|
||||
<mat-option *ngFor="let staff of cashierData.template.staffOptions" [value]="staff.id">
|
||||
@@ -22,7 +22,7 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" *ngIf="!isStaffId">
|
||||
<mat-form-field class="flex-48" *ngIf="!isStaffId">
|
||||
<mat-label>{{ 'labels.inputs.Cashier' | translate }}</mat-label>
|
||||
<mat-select formControlName="staffId" *ngIf="!isStaffId">
|
||||
<mat-option [value]="cashierData.data.staffId">
|
||||
@@ -31,12 +31,12 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Description/Notes' | translate }}</mat-label>
|
||||
<input matInput autofocus formControlName="description" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" (click)="fromDatePicker.open()">
|
||||
<mat-form-field class="flex-48" (click)="fromDatePicker.open()">
|
||||
<mat-label>{{ 'labels.inputs.From' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
@@ -54,7 +54,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" (click)="toDatePicker.open()">
|
||||
<mat-form-field class="flex-48" (click)="toDatePicker.open()">
|
||||
<mat-label>{{ 'labels.inputs.To' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
@@ -72,7 +72,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<div fxFlex="48%" class="space">
|
||||
<div class="space flex-48">
|
||||
<mat-checkbox labelPosition="before" formControlName="isFullDay">
|
||||
{{ 'labels.inputs.Full Day' | translate }}?
|
||||
</mat-checkbox>
|
||||
@@ -80,7 +80,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="settleCashForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<mat-form-field fxFlex="48%">
|
||||
<div class="layout-row-wrap gap-2px responsive-column">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
|
||||
<input matInput required formControlName="office" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Teller Name' | translate }}</mat-label>
|
||||
<input matInput required formControlName="tellerName" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Cashier' | translate }}</mat-label>
|
||||
<input matInput required formControlName="cashier" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Assignment Period' | translate }}</mat-label>
|
||||
<input matInput formControlName="assignmentPeriod" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" (click)="cashDatePicker.open()">
|
||||
<mat-form-field class="flex-48" (click)="cashDatePicker.open()">
|
||||
<mat-label>{{ 'labels.inputs.Date' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
@@ -41,7 +41,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Currency' | translate }}</mat-label>
|
||||
<mat-select required formControlName="currencyCode">
|
||||
<mat-option *ngFor="let currency of cashierData.currencyOptions" [value]="currency.code">
|
||||
@@ -54,7 +54,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Amount' | translate }}</mat-label>
|
||||
<input matInput required formControlName="txnAmount" />
|
||||
<mat-error *ngIf="settleCashForm.controls.txnAmount.hasError('required')">
|
||||
@@ -63,7 +63,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-form-field class="flex-48">
|
||||
<mat-label>{{ 'labels.inputs.Notes/Comments' | translate }}</mat-label>
|
||||
<input matInput required formControlName="txnNote" />
|
||||
<mat-error *ngIf="settleCashForm.controls.txnNote.hasError('required')">
|
||||
@@ -74,7 +74,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div fxLayout="row" fxLayoutGap="1%" fxLayoutAlign="end" class="container m-b-20">
|
||||
<div class="layout-row gap-1percent layout-align-end container m-b-20">
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
@@ -22,47 +22,45 @@
|
||||
<div class="container m-b-20" *ngIf="cashierData">
|
||||
<mat-card class="mat-elevation-z8">
|
||||
<mat-card-content>
|
||||
<div fxLayout="row wrap" class="content">
|
||||
<div fxFlex="25%" fxFlex.lt-md="50%" class="header">
|
||||
<div class="layout-row-wrap">
|
||||
<div class="flex-25 header">
|
||||
{{ 'labels.inputs.Branch' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="25%" fxFlex.lt-md="50%">
|
||||
<div class="flex-25">
|
||||
{{ cashierData.officeName }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="25%" fxFlex.lt-md="50%" class="header">
|
||||
<div class="flex-25 header">
|
||||
{{ 'labels.inputs.Teller' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="25%" fxFlex.lt-md="50%">
|
||||
<div class="flex-25">
|
||||
{{ cashierData.tellerName }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="25%" fxFlex.lt-md="50%" class="header">
|
||||
<div class="flex-25 header">
|
||||
{{ 'labels.inputs.Cashier' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="25%" fxFlex.lt-md="50%">
|
||||
<div class="flex-25">
|
||||
{{ cashierData.cashierName }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="25%" fxFlex.lt-md="50%" class="header">
|
||||
<div class="flex-25 header">
|
||||
{{ 'labels.inputs.Net Cash' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="25%" fxFlex.lt-md="50%">
|
||||
{{ cashierData.netCash | formatNumber }} [{{ currencySelector.value }}]
|
||||
</div>
|
||||
<div class="flex-25">{{ cashierData.netCash | formatNumber }} [{{ currencySelector.value }}]</div>
|
||||
</div>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<mat-card fxLayout="column" fxLayoutGap="2%" class="mat-elevation-z8">
|
||||
<div fxLayout="row" fxLayoutGap="2%">
|
||||
<mat-form-field fxFlex>
|
||||
<mat-card class="layout-column gap-2percent mat-elevation-z8">
|
||||
<div class="layout-row gap-2percent">
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
|
||||
<div class="layout-row align-end gap-2px responsive-column container m-b-20">
|
||||
<button mat-raised-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_CASHIER'">
|
||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Edit' | translate }}
|
||||
@@ -12,58 +12,58 @@
|
||||
<div class="container">
|
||||
<mat-card>
|
||||
<mat-card-content>
|
||||
<div fxLayout="row wrap" class="content">
|
||||
<div fxFlex="50%" class="header">
|
||||
<div class="layout-row-wrap">
|
||||
<div class="flex-50 header">
|
||||
{{ 'labels.inputs.Name' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ cashierData.staffName }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
<div class="flex-50 header">
|
||||
{{ 'labels.inputs.Teller' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ cashierData.tellerName }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header" *ngIf="cashierData.description !== ''">
|
||||
<div class="flex-50 header" *ngIf="cashierData.description !== ''">
|
||||
{{ 'labels.inputs.Description' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" *ngIf="cashierData.description !== ''">
|
||||
<div class="flex-50" *ngIf="cashierData.description !== ''">
|
||||
{{ cashierData.description }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
<div class="flex-50 header">
|
||||
{{ 'labels.inputs.Start Date' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ cashierData.startDate | dateFormat }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
<div class="flex-50 header">
|
||||
{{ 'labels.inputs.End Date' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ cashierData.endDate | dateFormat }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
<div class="flex-50 header">
|
||||
{{ 'labels.inputs.Full Day/Time' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ cashierData.isFullDay }}
|
||||
</div>
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" color="primary" mat-raised-button [routerLink]="['..']">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +12,7 @@ import { OrganizationService } from 'app/organization/organization.service';
|
||||
* Cashier data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class CashierResolver implements Resolve<Object> {
|
||||
export class CashierResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +12,7 @@ import { OrganizationService } from 'app/organization/organization.service';
|
||||
* Cashiers data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class CashiersResolver implements Resolve<Object> {
|
||||
export class CashiersResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +12,7 @@ import { OrganizationService } from 'app/organization/organization.service';
|
||||
* Cashier Template resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class EditCashierResolver implements Resolve<Object> {
|
||||
export class EditCashierResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +12,7 @@ import { OrganizationService } from 'app/organization/organization.service';
|
||||
* Cashier transaction data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class CashierTransactionTemplateResolver implements Resolve<Object> {
|
||||
export class CashierTransactionTemplateResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { ActivatedRouteSnapshot } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +12,7 @@ import { OrganizationService } from 'app/organization/organization.service';
|
||||
* Teller data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class TellerResolver implements Resolve<Object> {
|
||||
export class TellerResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -12,7 +11,7 @@ import { OrganizationService } from '../../organization.service';
|
||||
* Tellers data resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class TellersResolver implements Resolve<Object> {
|
||||
export class TellersResolver {
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Organization service.
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="tellerForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="column">
|
||||
<div class="layout-column">
|
||||
<mat-form-field>
|
||||
<mat-label>{{ 'labels.inputs.Teller Name' | translate }}</mat-label>
|
||||
<input matInput required formControlName="name" />
|
||||
@@ -80,7 +80,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<mat-card>
|
||||
<form [formGroup]="tellerForm" (ngSubmit)="submit()">
|
||||
<mat-card-content>
|
||||
<div fxLayout="column">
|
||||
<div class="layout-column">
|
||||
<mat-form-field>
|
||||
<mat-label>{{ 'labels.inputs.Teller Name' | translate }}</mat-label>
|
||||
<input matInput required formControlName="name" />
|
||||
@@ -76,7 +76,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
|
||||
<div class="container m-b-20 layout-row align-end gap-20px">
|
||||
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_TELLER'">
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Create Teller' | translate }}
|
||||
@@ -6,8 +6,8 @@
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div fxLayout="row" fxLayoutGap="20px">
|
||||
<mat-form-field fxFlex>
|
||||
<div class="layout-row gap-20px">
|
||||
<mat-form-field class="flex-fill">
|
||||
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
|
||||
<div class="layout-row align-end gap-2px responsive-column container m-b-20">
|
||||
<button mat-raised-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_TELLER'">
|
||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Edit' | translate }}
|
||||
@@ -12,52 +12,52 @@
|
||||
<div class="container">
|
||||
<mat-card>
|
||||
<mat-card-content>
|
||||
<div fxLayout="row wrap" class="content">
|
||||
<div fxFlex="50%" class="mat-body-strong">
|
||||
<div class="layout-row-wrap">
|
||||
<div class="flex-50 mat-body-strong">
|
||||
{{ 'labels.inputs.Teller Name' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ tellerData.name }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong">
|
||||
<div class="flex-50 mat-body-strong">
|
||||
{{ 'labels.inputs.Office' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ tellerData.officeName }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong" *ngIf="tellerData.description">
|
||||
<div class="flex-50 mat-body-strong" *ngIf="tellerData.description">
|
||||
{{ 'labels.inputs.Description' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" *ngIf="tellerData.description">
|
||||
<div class="flex-50" *ngIf="tellerData.description">
|
||||
{{ tellerData.description }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong">
|
||||
<div class="flex-50 mat-body-strong">
|
||||
{{ 'labels.inputs.Start Date' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ tellerData.startDate | dateFormat }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong" *ngIf="tellerData.endDate">
|
||||
<div class="flex-50 mat-body-strong" *ngIf="tellerData.endDate">
|
||||
{{ 'labels.inputs.End Date' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" *ngIf="tellerData.endDate">
|
||||
<div class="flex-50" *ngIf="tellerData.endDate">
|
||||
{{ tellerData.endDate | dateFormat }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="mat-body-strong">
|
||||
<div class="flex-50 mat-body-strong">
|
||||
{{ 'labels.inputs.Status' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
<div class="flex-50">
|
||||
{{ tellerData.status | titlecase }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user