Upgrade to Angular 16

Merge `angular-update-16` into `dev` branch
This commit is contained in:
Adam Saghy
2025-05-23 18:47:20 +02:00
parent c7c2f60182
commit 19a14e5b5b
882 changed files with 14895 additions and 14340 deletions
@@ -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="'ADD_PREFERENCES'">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Create Preference' | translate }}
@@ -6,8 +6,8 @@
</div>
<div class="container">
<div fxLayout="row">
<mat-form-field fxFlex>
<div class="layout-row">
<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 { SystemService } from '../system.service';
* Account Number Preferences data resolver.
*/
@Injectable()
export class AccountNumberPreferencesResolver implements Resolve<Object> {
export class AccountNumberPreferencesResolver {
/**
* @param {SystemService} systemService System 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 { SystemService } from '../../system.service';
* Account Number Preferences Template data resolver.
*/
@Injectable()
export class AccountNumberPreferencesTemplateResolver implements Resolve<Object> {
export class AccountNumberPreferencesTemplateResolver {
/**
* @param {SystemService} systemService System service.
*/
@@ -2,7 +2,7 @@
<mat-card>
<form [formGroup]="accountNumberPreferenceForm" (ngSubmit)="submit()">
<mat-card-content>
<div fxLayout="column">
<div class="layout-column">
<mat-form-field>
<mat-label>{{ 'labels.inputs.Account Type' | translate }}</mat-label>
<mat-select required formControlName="accountType">
@@ -30,7 +30,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]="accountNumberPreferenceForm" (ngSubmit)="submit()">
<mat-card-content>
<div fxLayout="column">
<div class="layout-column">
<mat-form-field>
<mat-label>{{ 'labels.inputs.Account Type' | translate }}</mat-label>
<mat-select required formControlName="accountType">
@@ -30,7 +30,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 { SystemService } from '../../system.service';
* Account Number Preference data resolver.
*/
@Injectable()
export class AccountNumberPreferenceResolver implements Resolve<Object> {
export class AccountNumberPreferenceResolver {
/**
* @param {SystemService} systemService System 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_ACCOUNTNUMBERFORMAT'">
<fa-icon icon="edit" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Edit' | translate }}
@@ -13,20 +13,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.Account Type' | translate }}
</div>
<div fxFlex="50%">
<div class="flex-50">
{{ accountNumberPreferenceData.accountType.value | translateKey: 'catalogs' }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="accountNumberPreferenceData.prefixType">
<div class="flex-50 mat-body-strong" *ngIf="accountNumberPreferenceData.prefixType">
{{ 'labels.inputs.Prefix Type' | translate }}
</div>
<div fxFlex="50%" *ngIf="accountNumberPreferenceData.prefixType">
<div class="flex-50" *ngIf="accountNumberPreferenceData.prefixType">
{{ accountNumberPreferenceData.prefixType.value }}
</div>
</div>
@@ -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 { SystemService } from '../system.service';
* Audit Trail Search Template data resolver.
*/
@Injectable()
export class AuditTrailSearchTemplateResolver implements Resolve<Object> {
export class AuditTrailSearchTemplateResolver {
/**
* @param {SystemService} systemService System service.
*/
@@ -1,17 +1,17 @@
<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" (click)="downloadCSV()">
<fa-icon icon="file" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Download CSV' | translate }}
</button>
</div>
<div class="container" fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%">
<div class="container layout-row-wrap gap-2px responsive-column">
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Resource ID' | translate }}</mat-label>
<input matInput [formControl]="resourceId" />
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Status' | translate }}</mat-label>
<mat-select [formControl]="processingResult" (selectionChange)="applyFilter($event.value, 'processingResult')">
<mat-option
@@ -23,41 +23,41 @@
</mat-select>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.User' | translate }}</mat-label>
<input matInput [formControl]="user" [matAutocomplete]="userNameAutocomplete" />
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Action' | translate }}</mat-label>
<input matInput [formControl]="actionName" [matAutocomplete]="actionNameAutocomplete" />
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Entity' | translate }}</mat-label>
<input matInput [formControl]="entityName" [matAutocomplete]="entityNameAutocomplete" />
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Checker' | translate }}</mat-label>
<input matInput [formControl]="checker" [matAutocomplete]="checkerAutocomplete" />
</mat-form-field>
<mat-form-field fxFlex="48%" (click)="fromDatePicker.open()">
<mat-form-field class="flex-48" (click)="fromDatePicker.open()">
<mat-label>{{ 'labels.inputs.Maker From Date' | translate }}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="fromDatePicker" [formControl]="fromDate" />
<mat-datepicker-toggle matSuffix [for]="fromDatePicker"></mat-datepicker-toggle>
<mat-datepicker #fromDatePicker></mat-datepicker>
</mat-form-field>
<mat-form-field fxFlex="48%" (click)="toDatePicker.open()">
<mat-form-field class="flex-48" (click)="toDatePicker.open()">
<mat-label>{{ 'labels.inputs.Maker To Date' | translate }}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="toDatePicker" [formControl]="toDate" />
<mat-datepicker-toggle matSuffix [for]="toDatePicker"></mat-datepicker-toggle>
<mat-datepicker #toDatePicker></mat-datepicker>
</mat-form-field>
<mat-form-field fxFlex="48%" (click)="checkedFromDatePicker.open()">
<mat-form-field class="flex-48" (click)="checkedFromDatePicker.open()">
<mat-label>{{ 'labels.inputs.Checker From Date' | translate }}</mat-label>
<input
matInput
@@ -70,7 +70,7 @@
<mat-datepicker #checkedFromDatePicker></mat-datepicker>
</mat-form-field>
<mat-form-field fxFlex="48%" (click)="checkedToDatePicker.open()">
<mat-form-field class="flex-48" (click)="checkedToDatePicker.open()">
<mat-label>{{ 'labels.inputs.Checked To Date' | translate }}</mat-label>
<input
matInput
@@ -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 { SystemService } from '../../system.service';
* Audit Trail data resolver.
*/
@Injectable()
export class AuditTrailResolver implements Resolve<Object> {
export class AuditTrailResolver {
/**
* @param {SystemService} systemService System service.
*/
@@ -1,85 +1,85 @@
<div class="container" fxLayout="row" fxLayoutAlign="space-between" fxLayoutGap.lt-md="4%" fxLayout.lt-md="column">
<div fxFlex="46%">
<div class="container layout-row-wrap align-between responsive-column gap-4percent">
<div class="flex-46">
<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.ID' | translate }}
</div>
<div fxFlex="50%">
<div class="flex-50">
{{ auditTrailData.id }}
</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">
{{ auditTrailData.processingResult }}
</div>
<div fxFlex="50%" class="mat-body-strong">
<div class="flex-50 mat-body-strong">
{{ 'labels.inputs.User' | translate }}
</div>
<div fxFlex="50%">
<div class="flex-50">
{{ auditTrailData.maker }}
</div>
<div fxFlex="50%" class="mat-body-strong">
<div class="flex-50 mat-body-strong">
{{ 'labels.inputs.Action' | translate }}
</div>
<div fxFlex="50%">
<div class="flex-50">
{{ auditTrailData.actionName }}
</div>
<div fxFlex="50%" class="mat-body-strong">
<div class="flex-50 mat-body-strong">
{{ 'labels.inputs.Entity' | translate }}
</div>
<div fxFlex="50%">
<div class="flex-50">
{{ auditTrailData.entityName }}
</div>
<div fxFlex="50%" class="mat-body-strong">
<div class="flex-50 mat-body-strong">
{{ 'labels.inputs.Resource ID' | translate }}
</div>
<div fxFlex="50%">
<div class="flex-50">
{{ auditTrailData.resourceId }}
</div>
<div fxFlex="50%" class="mat-body-strong">
<div class="flex-50 mat-body-strong">
{{ 'labels.inputs.Date' | translate }}
</div>
<div fxFlex="50%">
<div class="flex-50">
{{ auditTrailData.madeOnDate | dateFormat }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="auditTrailData.officeName">
<div class="flex-50 mat-body-strong" *ngIf="auditTrailData.officeName">
{{ 'labels.inputs.Office' | translate }}
</div>
<div fxFlex="50%" *ngIf="auditTrailData.officeName">
<div class="flex-50" *ngIf="auditTrailData.officeName">
{{ auditTrailData.officeName }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="auditTrailData.savingsAccountNo">
<div class="flex-50 mat-body-strong" *ngIf="auditTrailData.savingsAccountNo">
{{ 'labels.inputs.Savings Account No' | translate }}
</div>
<div fxFlex="50%" *ngIf="auditTrailData.savingsAccountNo">
<div class="flex-50" *ngIf="auditTrailData.savingsAccountNo">
{{ auditTrailData.savingsAccountNo }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="auditTrailData.groupLevelName">
<div class="flex-50 mat-body-strong" *ngIf="auditTrailData.groupLevelName">
{{ 'labels.inputs.Group Level' | translate }}
</div>
<div fxFlex="50%" *ngIf="auditTrailData.groupLevelName">
<div class="flex-50" *ngIf="auditTrailData.groupLevelName">
{{ auditTrailData.groupLevelName }}
</div>
</div>
@@ -87,7 +87,7 @@
</mat-card>
</div>
<div fxFlex="46%">
<div class="flex-46">
<table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="command">
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Command' | translate }}</th>
+2 -2
View File
@@ -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 { SystemService } from '../system.service';
* Code data resolver.
*/
@Injectable()
export class CodeResolver implements Resolve<Object> {
export class CodeResolver {
/**
* @param {SystemService} systemService System service.
*/
+6 -6
View File
@@ -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 #buttonCreateCode>
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_CODE'">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
@@ -8,8 +8,8 @@
</div>
<div class="container">
<div #filter fxLayout="row">
<mat-form-field fxFlex>
<div #filter class="layout-row">
<mat-form-field class="flex-fill">
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
<input matInput (keyup)="applyFilter($event.target.value)" />
</mat-form-field>
@@ -55,7 +55,7 @@
<ng-template #templateButtonCreateCode let-popover="popover">
<h2>{{ 'labels.heading.Manage Codes' | translate }}</h2>
<p class="mw300">{{ 'labels.text.To create additional codes.' | 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>
@@ -74,7 +74,7 @@
<ng-template #templateFilter let-popover="popover">
<h4>{{ 'labels.heading.Search bar to filter codes' | 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>
@@ -97,7 +97,7 @@
<ng-template #templateTableCodes let-popover="popover">
<h4>{{ 'labels.heading.List of all codes in the Mifos system' | 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 -2
View File
@@ -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 { SystemService } from '../system.service';
* Codes data resolver.
*/
@Injectable()
export class CodesResolver implements Resolve<Object> {
export class CodesResolver {
/**
* @param {SystemService} systemService System service.
*/
@@ -2,7 +2,7 @@
<mat-card>
<form [formGroup]="codeForm" (ngSubmit)="submit()">
<mat-card-content>
<div #codeFormRef fxLayout="column">
<div #codeFormRef class="layout-column">
<mat-form-field>
<mat-label>{{ 'labels.inputs.Code Name' | translate }}</mat-label>
<input matInput required formControlName="name" />
@@ -14,7 +14,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>
@@ -35,7 +35,7 @@
'labels.inputs.Manage Codes' | 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]="codeForm" (ngSubmit)="submit()">
<mat-card-content>
<div fxLayout="column">
<div class="layout-column">
<mat-form-field>
<mat-label>{{ 'labels.inputs.Code Name' | translate }}</mat-label>
<input matInput required formControlName="name" />
@@ -14,7 +14,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 { SystemService } from '../../system.service';
* Code Values data resolver.
*/
@Injectable()
export class CodeValuesResolver implements Resolve<Object> {
export class CodeValuesResolver {
/**
* @param {SystemService} systemService System service.
*/
@@ -1,4 +1,4 @@
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px" fxLayout.xs="column">
<div class="container m-b-20 layout-row align-end layout-xs-column gap-20px">
<button mat-raised-button color="primary" (click)="addCodeValueRow()" *mifosxHasPermission="'CREATE_CODEVALUE'">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Add Code Value' | translate }}
@@ -26,8 +26,8 @@
<form [formGroup]="codeValuesForm">
<mat-card-content>
<div formArrayName="codeValues" *ngFor="let codeValue of codeValues.controls; let i = index">
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" [formGroupName]="i">
<mat-form-field fxFlex="20%">
<div class="flex-fill layout-row-wrap gap-2percent responsive-column" [formGroupName]="i">
<mat-form-field class="flex-fill flex-20">
<mat-label>{{ 'labels.inputs.name' | translate }}</mat-label>
<input required matInput formControlName="name" />
<mat-error *ngIf="codeValues.at(i).controls.name.hasError('required')">
@@ -36,12 +36,12 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="22%">
<mat-form-field class="flex-fill flex-22">
<mat-label>{{ 'labels.inputs.Description' | translate }}</mat-label>
<input matInput formControlName="description" />
</mat-form-field>
<mat-form-field fxFlex="18%">
<mat-form-field class="flex-fill flex-18">
<mat-label>{{ 'labels.inputs.Position' | translate }}</mat-label>
<input required matInput formControlName="position" type="number" />
<mat-error *ngIf="codeValues.at(i).controls.position.hasError('required')">
@@ -50,13 +50,13 @@
</mat-error>
</mat-form-field>
<div class="active-wrapper" fxFlex="8%">
<div class="active-wrapper flex-8">
<mat-checkbox formControlName="isActive" class="active">{{
'labels.inputs.Active' | translate
}}</mat-checkbox>
</div>
<div fxLayoutGap="2%" fxFlex="22%" class="options-wrapper">
<div class="options-wrapper gap-2percent flex-22">
<span *ngIf="codeValueRowStatus[i] === 'edit'">
<button
mat-stroked-button
@@ -10,18 +10,18 @@
<mat-card>
<form [formGroup]="businessDateForm">
<mat-card-content>
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" class="space">
<div fxFlex="50%">
<span fxFlex="40%" class="date-type">{{ 'labels.inputs.User date format' | translate }}: </span>
<span fxFlex="60%" class="date-value">{{ userDateFormat }}</span>
<div class="flex-fill layout-row-wrap gap-2percent layout-lt-md-column space">
<div class="flex-50">
<span class="date-type flex-40">{{ 'labels.inputs.User date format' | translate }}: </span>
<span class="date-value flex-60">{{ userDateFormat }}</span>
</div>
</div>
<!-- Business Date -->
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<div fxFlex="50%" *ngIf="!isEditInProgress">
<span fxFlex="40%" class="date-type">{{ 'labels.inputs.Business Date' | translate }}: </span>
<span fxFlex="60%" class="date-value">{{ businessDate | dateFormat }}</span>
<div class="flex-fill layout-row-wrap gap-2percent layout-lt-md-column">
<div class="flex-50" *ngIf="!isEditInProgress">
<span class="date-type flex-40">{{ 'labels.inputs.Business Date' | translate }}: </span>
<span class="date-value flex-60">{{ businessDate | dateFormat }}</span>
</div>
<mat-form-field (click)="businessDatePicker.open()" *ngIf="isEditInProgress && dateIndex === 0">
@@ -41,7 +41,7 @@
</mat-error>
</mat-form-field>
<div fxLayoutGap="2%" fxFlex="22%" class="options-wrapper">
<div class="options-wrapper gap-2percent flex-22">
<span *ngIf="isEditInProgress && dateIndex === 0">
<button
mat-raised-button
@@ -71,10 +71,10 @@
</div>
<!-- COB Date -->
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<div fxFlex="50%" *ngIf="!isEditInProgress">
<span fxFlex="40%" class="date-type">{{ 'labels.inputs.COB Date' | translate }}: </span>
<span fxFlex="60%" class="date-value">{{ cobDate | dateFormat }}</span>
<div class="flex-fill layout-row-wrap gap-2percent layout-lt-md-column">
<div class="flex-50" *ngIf="!isEditInProgress">
<span class="date-type">{{ 'labels.inputs.COB Date' | translate }}: </span>
<span class="date-value flex-60">{{ cobDate | dateFormat }}</span>
</div>
<mat-form-field (click)="cobDatePicker.open()" *ngIf="isEditInProgress && dateIndex === 1">
@@ -94,7 +94,7 @@
</mat-error>
</mat-form-field>
<div fxLayoutGap="4%" fxFlex="22%" class="options-wrapper">
<div class="options-wrapper flex-22 gap-4percent">
<span *ngIf="isEditInProgress && dateIndex === 1">
<button
mat-stroked-button
@@ -2,7 +2,7 @@
<mat-card>
<form [formGroup]="configurationForm" (ngSubmit)="submit()">
<mat-card-content>
<div fxLayout="column">
<div class="layout-column">
<mat-form-field>
<mat-label>{{ 'labels.inputs.Configuration Name' | translate }}</mat-label>
<input matInput required formControlName="name" />
@@ -23,7 +23,7 @@
<input matInput formControlName="stringValue" />
</mat-form-field>
<mat-form-field fxFlex="48%" (click)="configurationDatePicker.open()">
<mat-form-field class="flex-48" (click)="configurationDatePicker.open()">
<mat-label>{{ 'labels.inputs.Date Value' | translate }}</mat-label>
<input
matInput
@@ -38,7 +38,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 { ActivatedRouteSnapshot, Resolve } from '@angular/router';
import { ActivatedRouteSnapshot } from '@angular/router';
/** rxjs Imports */
import { Observable } from 'rxjs';
@@ -12,7 +12,7 @@ import { SystemService } from '../../system.service';
* Configurations data resolver.
*/
@Injectable()
export class GlobalConfigurationResolver implements Resolve<Object> {
export class GlobalConfigurationResolver {
/**
* @param {SystemService} systemService System service.
*/
@@ -1,6 +1,6 @@
<div class="container">
<div #filter fxLayout="row">
<mat-form-field fxFlex>
<div #filter class="layout-row">
<mat-form-field class="flex-fill">
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
<input matInput (keyup)="applyFilter($event.target.value)" />
</mat-form-field>
@@ -71,7 +71,7 @@
<ng-template #templateFilter let-data let-popover="popover">
<h4>{{ 'labels.heading.Search bar to filter configurations' | 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>
@@ -95,7 +95,7 @@
'labels.inputs.Global Configurations' | translate
}}</a>
</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 { SystemService } from '../../system.service';
* Configurations data resolver.
*/
@Injectable()
export class GlobalConfigurationsResolver implements Resolve<Object> {
export class GlobalConfigurationsResolver {
/**
* @param {SystemService} systemService System 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">
<div #buttonEdit class="in-block">
<button
mat-raised-button
@@ -15,8 +15,8 @@
<div class="container">
<mat-card>
<ng-container>
<div fxLayout="row">
<div #mcTable fxFlex="30" fxLayout="column">
<div class="layout-row">
<div #mcTable class="layout-column flex-30">
<mat-list>
<mat-list-item
[ngClass]="selectedItem === grouping ? 'active' : 'inactive'"
@@ -32,7 +32,7 @@
<mat-divider [vertical]="true"></mat-divider>
<div fxFlex="70" fxLayout="column" class="list-permission">
<div class="list-permission layout-column flex-70">
<form [formGroup]="formGroup" (submit)="submit()">
<div *ngFor="let permission of permissions.permissions" class="display-permissions">
<div formArrayName="roster">
@@ -48,7 +48,7 @@
</div>
</ng-container>
<div fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px" *ngIf="!isDisabled">
<div class="layout-row layout-align-center gap-5px layout-xs-column" *ngIf="!isDisabled">
<mat-card-actions>
<button type="button" mat-raised-button (click)="cancel(); restoreCheckboxes()">
{{ 'labels.buttons.Cancel' | translate }}
@@ -64,7 +64,7 @@
<ng-template #templateButtonEdit let-popover="popover">
<h2>{{ 'labels.heading.Edit' | translate }}</h2>
<p class="mw300">{{ 'labels.text.To add or remove a task from the Maker-Checker list' | 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>
@@ -90,7 +90,7 @@
>{{ 'labels.inputs.Configure Maker-Checker Tasks' | translate }}</a
>
</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 { SystemService } from '../system.service';
* Maker Checker Tasks resolver.
*/
@Injectable()
export class MakerCheckerTasksResolver implements Resolve<Object> {
export class MakerCheckerTasksResolver {
/**
* @param {SystemService} systemService System service.
*/
@@ -35,7 +35,7 @@
{{ secondMappingEntity | translateKey: 'text' }}
</mat-card-title>
<mat-card-content>
<div fxLayout="row" fxLayoutAlign="space-evenly center">
<div class="layout-row align-space-evenly-center">
<mat-form-field>
<mat-label>{{ firstMappingEntity | translateKey: 'inputs' }}</mat-label>
<mat-select required formControlName="mappingFirstParamId">
@@ -68,7 +68,7 @@
</mat-error>
</mat-form-field>
<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 mat-raised-button color="primary" [disabled]="!filterPreferenceForm.valid">
{{ 'labels.buttons.Submit' | 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 { SystemService } from '../system.service';
* Entity to entity mapping data resolver.
*/
@Injectable()
export class EntityToEntityMappingResolver implements Resolve<Object> {
export class EntityToEntityMappingResolver {
/**
* @param {SystemService} systemService System 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']">
<fa-icon icon="edit" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Edit' | translate }}
@@ -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 { SystemService } from '../../system.service';
* Amazon S3 Configuration data resolver.
*/
@Injectable()
export class AmazonS3ConfigurationResolver implements Resolve<Object> {
export class AmazonS3ConfigurationResolver {
/**
* @param {SystemService} systemService System service.
*/
@@ -2,7 +2,7 @@
<mat-card>
<form [formGroup]="amazonS3ConfigurationForm" (ngSubmit)="submit()">
<mat-card-content>
<div fxLayout="column">
<div class="layout-column">
<mat-form-field>
<mat-label>{{ 'labels.inputs.S3 Bucket Name' | translate }}</mat-label>
<input matInput required formControlName="s3_bucket_name" />
@@ -54,7 +54,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]="emailConfigurationForm" (ngSubmit)="submit()">
<mat-card-content>
<div fxLayout="column">
<div class="layout-column">
<mat-form-field>
<mat-label>{{ 'labels.inputs.Username' | translate }}</mat-label>
<input matInput required formControlName="username" />
@@ -50,7 +50,7 @@
</mat-error>
</mat-form-field>
<mat-checkbox fxFlex="48%" labelPosition="before" formControlName="useTLS" class="margin-v">
<mat-checkbox labelPosition="before" formControlName="useTLS" class="margin-v flex-48">
{{ 'labels.inputs.Use TLS' | translate }}?
</mat-checkbox>
@@ -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" [routerLink]="['edit']">
<fa-icon icon="edit" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Edit' | translate }}
@@ -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 { SystemService } from '../../system.service';
* Email Configuration data resolver.
*/
@Injectable()
export class EmailConfigurationResolver implements Resolve<Object> {
export class EmailConfigurationResolver {
/**
* @param {SystemService} systemService System service.
*/
@@ -1,7 +1,7 @@
<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 [routerLink]="['amazon-s3']">
<mat-icon matListIcon [routerLink]="['amazon-s3']">
@@ -49,7 +49,7 @@
</mat-nav-list>
</div>
<div fxFlex="50%">
<div class="flex-50">
<mat-nav-list>
<mat-list-item [routerLink]="['email']">
<mat-icon matListIcon [routerLink]="['email']">
@@ -2,7 +2,7 @@
<mat-card>
<form [formGroup]="notificationConfigurationForm" (ngSubmit)="submit()">
<mat-card-content>
<div fxLayout="column">
<div class="layout-column">
<mat-form-field>
<mat-label>{{ 'labels.inputs.Server Key' | translate }}</mat-label>
<input matInput required formControlName="server_key" />
@@ -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]="['edit']">
<fa-icon icon="edit" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Edit' | translate }}
@@ -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 { SystemService } from '../../system.service';
* Notification Configuration data resolver.
*/
@Injectable()
export class NotificationConfigurationResolver implements Resolve<Object> {
export class NotificationConfigurationResolver {
/**
* @param {SystemService} systemService System service.
*/
@@ -2,7 +2,7 @@
<mat-card>
<form [formGroup]="smsConfigurationForm" (ngSubmit)="submit()">
<mat-card-content>
<div fxLayout="column">
<div class="layout-column">
<mat-form-field>
<mat-label>{{ 'labels.inputs.Host Name' | translate }}</mat-label>
<input matInput required formControlName="host_name" />
@@ -41,7 +41,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]="['edit']">
<fa-icon icon="edit" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Edit' | translate }}
@@ -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 { SystemService } from '../../system.service';
* SMS Configuration data resolver.
*/
@Injectable()
export class SMSConfigurationResolver implements Resolve<Object> {
export class SMSConfigurationResolver {
/**
* @param {SystemService} systemService System service.
*/
@@ -5,7 +5,7 @@
<mat-dialog-content>
<form [formGroup]="columnForm">
<div fxLayout="column">
<div class="layout-column">
<mat-form-field>
<mat-label>{{ 'labels.inputs.Column Name' | translate }}</mat-label>
<input matInput required formControlName="name" />
@@ -2,8 +2,8 @@
<mat-card>
<form #dataTableFormRef [formGroup]="dataTableForm" (ngSubmit)="submit()">
<mat-card-content>
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="40%">
<div class="layout-row-wrap gap-2px responsive-column">
<mat-form-field class="flex-40">
<mat-label>{{ 'labels.inputs.Data Table Name' | translate }}</mat-label>
<input matInput required formControlName="datatableName" />
<mat-error *ngIf="dataTableForm.controls.datatableName.hasError('required')">
@@ -12,7 +12,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="20%">
<mat-form-field class="flex-fill flex-20">
<mat-label>{{ 'labels.inputs.Entity Type' | translate }}</mat-label>
<mat-select required formControlName="apptableName">
<mat-option *ngFor="let appTable of appTableData" [value]="appTable.value">
@@ -25,7 +25,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="20%" *ngIf="showEntitySubType">
<mat-form-field class="flex-fill flex-20" *ngIf="showEntitySubType">
<mat-label>{{ 'labels.inputs.Entity SubType' | translate }}</mat-label>
<mat-select formControlName="entitySubType">
<mat-option *ngFor="let entitySubType of entitySubTypeData" [value]="entitySubType.value">
@@ -34,7 +34,7 @@
</mat-select>
</mat-form-field>
<mat-form-field fxFlex="20%" *ngIf="showSavingsSubType">
<mat-form-field class="flex-fill flex-20" *ngIf="showSavingsSubType">
<mat-label>{{ 'labels.inputs.Savings SubType' | translate }}</mat-label>
<mat-select formControlName="entitySubType">
<mat-option *ngFor="let savingsSubType of savingsSubTypeData" [value]="savingsSubType.value">
@@ -43,7 +43,7 @@
</mat-select>
</mat-form-field>
<div fxFlex="14%" class="multi-row-wrapper">
<div class="multi-row-wrapper flex-14">
<mat-checkbox labelPosition="before" formControlName="multiRow" class="multi-row">{{
'labels.inputs.Multi Row' | translate
}}</mat-checkbox>
@@ -51,10 +51,10 @@
</div>
<br />
<div fxLayout="row wrap" fxLayoutGap="60%" fxLayout.lt-md="column">
<p fxFlex="20%" class="mat-title">{{ 'labels.inputs.Columns' | translate }}</p>
<div class="layout-row-wrap gap-60percent layout-lt-md-column">
<p class="mat-title flex-20">{{ 'labels.inputs.Columns' | translate }}</p>
<button mat-raised-button fxFlex="20%" type="button" color="primary" (click)="addColumn()">
<button mat-raised-button class="flex-20" type="button" color="primary" (click)="addColumn()">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Add' | translate }} {{ 'labels.inputs.Columns' | translate }}
</button>
@@ -165,7 +165,7 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Actions' | translate }}</th>
<td mat-cell *matCellDef="let column" fxLayoutGap="15%">
<td mat-cell *matCellDef="let column" class="gap-15percent">
<button type="button" color="primary" mat-icon-button (click)="editColumn(column)">
<fa-icon icon="edit" size="lg"></fa-icon>
</button>
@@ -182,7 +182,7 @@
<mat-paginator [pageSizeOptions]="[10, 25, 50, 100]" showFirstLastButtons></mat-paginator>
</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>
@@ -202,7 +202,7 @@
'labels.inputs.Manage Datatables' | 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 { SystemService } from '../system.service';
* Data Table data resolver.
*/
@Injectable()
export class DataTableResolver implements Resolve<Object> {
export class DataTableResolver {
/**
* @param {SystemService} systemService System service.
*/
@@ -2,13 +2,13 @@
<mat-card>
<form [formGroup]="dataTableForm" (ngSubmit)="submit()">
<mat-card-content>
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="40%">
<div class="layout-row-wrap gap-2px responsive-column">
<mat-form-field class="flex-40">
<mat-label>{{ 'labels.inputs.Data Table Name' | translate }}</mat-label>
<input matInput required formControlName="datatableName" />
</mat-form-field>
<mat-form-field fxFlex="20%">
<mat-form-field class="flex-fill flex-20">
<mat-label>{{ 'labels.inputs.Application Table Name' | translate }}</mat-label>
<mat-select required formControlName="apptableName">
<mat-option *ngFor="let appTable of appTableData" [value]="appTable.value">
@@ -21,7 +21,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="20%" *ngIf="showEntitySubType">
<mat-form-field class="flex-fill flex-20" *ngIf="showEntitySubType">
<mat-label>{{ 'labels.inputs.Entity SubType' | translate }}</mat-label>
<mat-select formControlName="entitySubType">
<mat-option *ngFor="let entitySubType of entitySubTypeData" [value]="entitySubType.value">
@@ -33,10 +33,10 @@
<br />
<div fxLayout="row wrap" fxLayoutGap="60%" fxLayout.lt-md="column">
<p fxFlex="20%" class="mat-title">{{ 'labels.inputs.Columns' | translate }}</p>
<div class="layout-row-wrap gap-60percent layout-lt-md-column">
<p class="mat-title flex-20">{{ 'labels.inputs.Columns' | translate }}</p>
<button mat-raised-button fxFlex="20%" type="button" color="primary" (click)="addColumn()">
<button mat-raised-button class="flex-20" type="button" color="primary" (click)="addColumn()">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Add' | translate }} {{ 'labels.inputs.Columns' | translate }}
</button>
@@ -149,7 +149,7 @@
<th mat-header-cell *matHeaderCellDef mat-sort-header class="center">
{{ 'labels.inputs.Actions' | translate }}
</th>
<td mat-cell *matCellDef="let column" fxLayoutGap="15%" class="center">
<td mat-cell *matCellDef="let column" class="center gap-15percent">
<button type="button" color="primary" mat-icon-button (click)="editColumn(column)" *ngIf="!column.system">
<fa-icon icon="edit" size="lg"></fa-icon>
</button>
@@ -166,7 +166,7 @@
<mat-paginator [pageSizeOptions]="[10, 25]" showFirstLastButtons></mat-paginator>
</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 #createDatatableRef class="in-block">
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_DATATABLE'">
<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>
@@ -47,7 +47,7 @@
<ng-template #templateCreateDatatableRef let-popover="popover">
<h2>{{ 'labels.buttons.Create Data Table' | translate }}</h2>
<p class="mw300">{{ 'labels.text.Launch a page that create new data table' | 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>
@@ -66,7 +66,7 @@
<ng-template #templateFilter let-popover="popover">
<h4>{{ 'labels.heading.Search bar to filter datatables' | 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>
@@ -89,7 +89,7 @@
<ng-template #templateDatatablesList let-popover="popover">
<h4>{{ 'labels.heading.List of all currently available data tables' | 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 { SystemService } from '../system.service';
* Manage data tables data resolver.
*/
@Injectable()
export class ManageDataTablesResolver implements Resolve<Object> {
export class ManageDataTablesResolver {
/**
* @param {SystemService} systemService System 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_DATATABLE'">
<fa-icon icon="edit" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Edit' | translate }}
@@ -10,10 +10,10 @@
</button>
</div>
<div class="container m-b-15" fxLayoutAlign="start">
<div class="container m-b-15 layout-align-start">
<mat-card>
<mat-card-content>
<div fxLayout="row wrap" fxLayout.lt-md="column" fxLayoutGap="12px">
<div class="layout-row-wrap responsive-column gap-12px">
<div class="mat-body-strong">
{{ 'labels.inputs.Associated With' | translate }}
</div>
@@ -1,11 +1,11 @@
<div class="container">
<div #filter fxLayout="row">
<mat-form-field fxFlex>
<div #filter class="layout-row">
<mat-form-field class="flex-fill">
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
<input matInput (keyup)="applyFilter($event.target.value)" />
</mat-form-field>
<div class="action-button" fxLayoutGap="25px">
<div class="action-button gap-25px">
<button
mat-raised-button
color="primary"
@@ -1,12 +1,12 @@
import { Injectable } from '@angular/core';
import { Router, Resolve, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router';
import { Router, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router';
import { Observable, of } from 'rxjs';
import { SystemService } from '../system.service';
@Injectable({
providedIn: 'root'
})
export class ManageExternalEventsResolver implements Resolve<boolean> {
export class ManageExternalEventsResolver {
/**
* @param {SystemService} systemService System service.
*/
@@ -2,7 +2,7 @@
<mat-dialog-content>
<form [formGroup]="eventForm">
<div fxLayout="column">
<div class="layout-column">
<mat-form-field>
<mat-label>{{ 'labels.inputs.Select Grouping' | translate }}</mat-label>
<mat-select required formControlName="grouping">
@@ -2,8 +2,8 @@
<mat-card>
<form [formGroup]="hookForm" (ngSubmit)="submit()">
<mat-card-content>
<div fxLayout="row wrap" fxLayout.lt-md="column" fxLayoutGap="4%">
<mat-form-field fxFlex="40%">
<div class="layout-row-wrap responsive-column gap-4percent">
<mat-form-field class="flex-40">
<mat-label>{{ 'labels.inputs.Hook Template' | translate }}</mat-label>
<mat-select required formControlName="name">
<mat-option *ngFor="let hookTemplate of hooksTemplateData.templates" [value]="hookTemplate.name">
@@ -16,7 +16,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="40%">
<mat-form-field class="flex-40">
<mat-label>{{ 'labels.inputs.Display Name' | translate }}</mat-label>
<input matInput required formControlName="displayName" />
<mat-error *ngIf="hookForm.controls.displayName.hasError('required')">
@@ -26,14 +26,14 @@
</mat-form-field>
<div class="is-active-wrapper">
<mat-checkbox class="is-active" fxFlex="10%" labelPosition="before" formControlName="isActive">
<mat-checkbox class="is-active flex-10" labelPosition="before" formControlName="isActive">
{{ 'labels.inputs.Is Active' | translate }}?
</mat-checkbox>
</div>
</div>
<div fxLayout="row wrap" fxLayout.lt-md="column" fxLayoutGap="4%">
<mat-form-field fxFlex="40%" *ngIf="hookForm.controls.name.value === 'Web'">
<div class="layout-row-wrap responsive-column gap-4percent">
<mat-form-field class="flex-40" *ngIf="hookForm.controls.name.value === 'Web'">
<mat-label>{{ 'labels.inputs.Content Type' | translate }}</mat-label>
<mat-select required formControlName="contentType">
<mat-option [value]="'json'">
@@ -49,7 +49,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="40%" *ngIf="hookForm.controls.name.value === 'SMS Bridge'">
<mat-form-field class="flex-fill flex-40" *ngIf="hookForm.controls.name.value === 'SMS Bridge'">
<mat-label>{{ 'labels.inputs.Phone Number' | translate }}</mat-label>
<input matInput type="tel" #input maxlength="10" required formControlName="phoneNumber" />
<mat-hint align="end">{{ input.value?.length || 0 }}/10</mat-hint>
@@ -59,7 +59,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="40%">
<mat-form-field class="flex-40">
<mat-label>{{ 'labels.inputs.Payload URL' | translate }}</mat-label>
<input matInput required formControlName="payloadUrl" />
<mat-error *ngIf="hookForm.controls.payloadUrl.hasError('required')">
@@ -70,12 +70,10 @@
</div>
<div
fxLayout="row wrap"
fxLayout.lt-md="column"
fxLayoutGap="4%"
class="layout-row-wrap responsive-column gap-4percent"
*ngIf="hookForm.controls.name.value === 'SMS Bridge'"
>
<mat-form-field fxFlex="30%">
<mat-form-field class="flex-30">
<mat-label>{{ 'labels.inputs.SMS Provider' | translate }}</mat-label>
<input matInput required formControlName="smsProvider" />
<mat-error *ngIf="hookForm.controls.smsProvider.hasError('required')">
@@ -84,7 +82,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="30%">
<mat-form-field class="flex-30">
<mat-label>{{ 'labels.inputs.SMS Provider Account ID' | translate }}</mat-label>
<input matInput required formControlName="smsProviderAccountId" />
<mat-error *ngIf="hookForm.controls.smsProviderAccountId.hasError('required')">
@@ -93,7 +91,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="30%">
<mat-form-field class="flex-30">
<mat-label>{{ 'labels.inputs.SMS Provider Token' | translate }}</mat-label>
<input matInput required formControlName="smsProviderToken" />
<mat-error *ngIf="hookForm.controls.smsProviderToken.hasError('required')">
@@ -109,19 +107,10 @@
<br />
<div fxLayout="row wrap" fxLayout.lt-md="column">
<p fxFlex="20%" class="mat-title">
{{ 'labels.inputs.Events' | translate }}<span style="color: red">*</span>
</p>
<div class="layout-row-wrap responsive-column">
<p class="mat-title flex-20">{{ 'labels.inputs.Events' | translate }}<span style="color: red">*</span></p>
<button
mat-raised-button
class="AddEventButton"
fxFlex="20%"
type="button"
color="primary"
(click)="addEvent()"
>
<button mat-raised-button class="AddEventButton flex-20" type="button" color="primary" (click)="addEvent()">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Add' | translate }} {{ 'labels.inputs.Events' | translate }}
</button>
@@ -142,8 +131,8 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Actions' | translate }}</th>
<td mat-cell *matCellDef="let i = index" fxLayoutGap="15%">
<button type="button" fxFlex="8%" color="warn" mat-icon-button (click)="deleteEvent(i)">
<td mat-cell *matCellDef="let i = index" class="gap-15percent">
<button type="button" class="flex-8" color="warn" mat-icon-button (click)="deleteEvent(i)">
<fa-icon icon="trash" size="lg"></fa-icon>
</button>
</td>
@@ -154,7 +143,7 @@
</table>
</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,8 +2,8 @@
<mat-card>
<form [formGroup]="hookForm" (ngSubmit)="submit()">
<mat-card-content>
<div fxLayout="row wrap" fxLayout.lt-md="column" fxLayoutGap="4%">
<mat-form-field fxFlex="40%">
<div class="layout-row-wrap responsive-column gap-4percent">
<mat-form-field class="flex-40">
<mat-label>{{ 'labels.inputs.Hook Template' | translate }}</mat-label>
<mat-select required formControlName="name">
<mat-option *ngFor="let hookTemplate of hooksTemplateData.templates" [value]="hookTemplate.name">
@@ -16,7 +16,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="40%">
<mat-form-field class="flex-40">
<mat-label>{{ 'labels.inputs.Display Name' | translate }}</mat-label>
<input matInput required formControlName="displayName" />
<mat-error *ngIf="hookForm.controls.displayName.hasError('required')">
@@ -26,14 +26,14 @@
</mat-form-field>
<div class="is-active-wrapper">
<mat-checkbox class="is-active" fxFlex="10%" labelPosition="before" formControlName="isActive">
<mat-checkbox class="is-active flex-10" labelPosition="before" formControlName="isActive">
{{ 'labels.inputs.Is Active' | translate }}?
</mat-checkbox>
</div>
</div>
<div fxLayout="row wrap" fxLayout.lt-md="column" fxLayoutGap="4%">
<mat-form-field fxFlex="40%" *ngIf="hookForm.controls.name.value === 'Web'">
<div class="layout-row-wrap responsive-column gap-4percent">
<mat-form-field class="flex-fill flex-40" *ngIf="hookForm.controls.name.value === 'Web'">
<mat-label>{{ 'labels.inputs.Content Type' | translate }}</mat-label>
<mat-select required formControlName="contentType">
<mat-option [value]="'json'">
@@ -49,7 +49,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="40%" *ngIf="hookForm.controls.name.value === 'SMS Bridge'">
<mat-form-field class="flex-fill flex-40" *ngIf="hookForm.controls.name.value === 'SMS Bridge'">
<mat-label>{{ 'labels.inputs.Phone Number' | translate }}</mat-label>
<input matInput type="tel" #input maxlength="10" required formControlName="phoneNumber" />
<mat-hint align="end">{{ input.value?.length || 0 }}/10</mat-hint>
@@ -59,7 +59,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="40%">
<mat-form-field class="flex-40">
<mat-label>{{ 'labels.inputs.Payload URL' | translate }}</mat-label>
<input matInput required formControlName="payloadUrl" />
<mat-error *ngIf="hookForm.controls.payloadUrl.hasError('required')">
@@ -70,12 +70,10 @@
</div>
<div
fxLayout="row wrap"
fxLayout.lt-md="column"
fxLayoutGap="4%"
class="layout-row-wrap responsive-column gap-4percent"
*ngIf="hookForm.controls.name.value === 'SMS Bridge'"
>
<mat-form-field fxFlex="30%">
<mat-form-field class="flex-30">
<mat-label>{{ 'labels.inputs.SMS Provider' | translate }}</mat-label>
<input matInput required formControlName="smsProvider" />
<mat-error *ngIf="hookForm.controls.smsProvider.hasError('required')">
@@ -84,7 +82,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="30%">
<mat-form-field class="flex-30">
<mat-label>{{ 'labels.inputs.SMS Provider Account ID' | translate }}</mat-label>
<input matInput required formControlName="smsProviderAccountId" />
<mat-error *ngIf="hookForm.controls.smsProviderAccountId.hasError('required')">
@@ -93,7 +91,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="30%">
<mat-form-field class="flex-30">
<mat-label>{{ 'labels.inputs.SMS Provider Token' | translate }}</mat-label>
<input matInput required formControlName="smsProviderToken" />
<mat-error *ngIf="hookForm.controls.smsProviderToken.hasError('required')">
@@ -109,19 +107,10 @@
<br />
<div fxLayout="row wrap" fxLayout.lt-md="column">
<p fxFlex="20%" class="mat-title">
{{ 'labels.inputs.Events' | translate }} <span style="color: red">*</span>
</p>
<div class="layout-row-wrap responsive-column">
<p class="mat-title flex-20">{{ 'labels.inputs.Events' | translate }} <span style="color: red">*</span></p>
<button
mat-raised-button
class="AddEventButton"
fxFlex="20%"
type="button"
color="primary"
(click)="addEvent()"
>
<button mat-raised-button class="AddEventButton flex-20" type="button" color="primary" (click)="addEvent()">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Add' | translate }} {{ 'labels.inputs.Events' | translate }}
</button>
@@ -158,7 +147,7 @@
</table>
</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,5 @@
/** Angular Imports */
import { Injectable } from '@angular/core';
import { Resolve } from '@angular/router';
/** rxjs Imports */
import { Observable } from 'rxjs';
@@ -12,7 +11,7 @@ import { SystemService } from '../system.service';
* Hooks template data resolver.
*/
@Injectable()
export class HooksTemplateResolver implements Resolve<Object> {
export class HooksTemplateResolver {
/**
* @param {SystemService} systemService System 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_HOOK'">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Create Hook' | 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 { SystemService } from '../system.service';
* Manage hooks data resolver.
*/
@Injectable()
export class ManageHooksResolver implements Resolve<Object> {
export class ManageHooksResolver {
/**
* @param {SystemService} systemService System service.
*/
@@ -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 { SystemService } from '../../system.service';
* Hook data resolver.
*/
@Injectable()
export class HookResolver implements Resolve<Object> {
export class HookResolver {
/**
* @param {SystemService} systemService System 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_HOOK'">
<fa-icon icon="edit" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Edit' | translate }}
@@ -13,34 +13,34 @@
<div class="container">
<mat-card>
<mat-card-content>
<div fxLayout="row wrap" class="content">
<div fxFlex="50%" class="mat-body-strong">{{ 'labels.inputs.Hook Name' | translate }}:</div>
<div class="layout-row-wrap">
<div class="flex-50 mat-body-strong">{{ 'labels.inputs.Hook Name' | translate }}:</div>
<div fxFlex="50%">
<div class="flex-50">
{{ hookData.displayName }}
</div>
<div fxFlex="50%" class="mat-body-strong">{{ 'labels.inputs.Status' | translate }}:</div>
<div class="flex-50 mat-body-strong">{{ 'labels.inputs.Status' | translate }}:</div>
<div fxFlex="50%">
<div class="flex-50">
{{ hookData.isActive ? ('labels.inputs.Active' | translate) : ('labels.catalogs.Inactive' | translate) }}
</div>
<div fxFlex="50%" class="mat-body-strong">{{ 'labels.inputs.Activation Date' | translate }}:</div>
<div class="flex-50 mat-body-strong">{{ 'labels.inputs.Activation Date' | translate }}:</div>
<div fxFlex="50%">
<div class="flex-50">
{{ hookData.createdAt | dateFormat }}
</div>
<div fxFlex="50%" class="mat-body-strong">{{ 'labels.inputs.Updated on' | translate }}:</div>
<div class="flex-50 mat-body-strong">{{ 'labels.inputs.Updated on' | translate }}:</div>
<div fxFlex="50%">
<div class="flex-50">
{{ hookData.updatedAt | dateFormat }}
</div>
<div fxFlex="50%" class="mat-body-strong">{{ 'labels.inputs.Events' | translate }}:</div>
<div class="flex-50 mat-body-strong">{{ 'labels.inputs.Events' | translate }}:</div>
<div fxFlex="50%">
<div class="flex-50">
<mat-label *ngFor="let event of hookData.events">
{{ event.actionName + ' - ' + event.entityName }}
@@ -48,53 +48,53 @@
</mat-label>
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="hookData.name === 'Web'">
<div class="flex-50 mat-body-strong" *ngIf="hookData.name === 'Web'">
{{ 'labels.inputs.Content Type' | translate }}:
</div>
<div fxFlex="50%" *ngIf="hookData.name === 'Web'">
<div class="flex-50" *ngIf="hookData.name === 'Web'">
{{ hookData.config[0].fieldValue }}
</div>
<div fxFlex="50%" class="mat-body-strong">{{ 'labels.inputs.Payload URL' | translate }}:</div>
<div class="flex-50 mat-body-strong">{{ 'labels.inputs.Payload URL' | translate }}:</div>
<div fxFlex="50%" *ngIf="hookData.name === 'Web'">
<div class="flex-50" *ngIf="hookData.name === 'Web'">
{{ hookData.config[1].fieldValue }}
</div>
<div fxFlex="50%" *ngIf="hookData.name === 'SMS Bridge'">
<div class="flex-50" *ngIf="hookData.name === 'SMS Bridge'">
{{ hookData.config[0].fieldValue }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="hookData.name === 'SMS Bridge'">
<div class="flex-50 mat-body-strong" *ngIf="hookData.name === 'SMS Bridge'">
{{ 'labels.inputs.Phone Number' | translate }}:
</div>
<div fxFlex="50%" *ngIf="hookData.name === 'SMS Bridge'">
<div class="flex-50" *ngIf="hookData.name === 'SMS Bridge'">
{{ hookData.config[1].fieldValue }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="hookData.name === 'SMS Bridge'">
<div class="flex-50 mat-body-strong" *ngIf="hookData.name === 'SMS Bridge'">
{{ 'labels.inputs.SMS Provider' | translate }}:
</div>
<div fxFlex="50%" *ngIf="hookData.name === 'SMS Bridge'">
<div class="flex-50" *ngIf="hookData.name === 'SMS Bridge'">
{{ hookData.config[2].fieldValue }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="hookData.name === 'SMS Bridge'">
<div class="flex-50 mat-body-strong" *ngIf="hookData.name === 'SMS Bridge'">
{{ 'labels.inputs.SMS Provider Account ID' | translate }}:
</div>
<div fxFlex="50%" *ngIf="hookData.name === 'SMS Bridge'">
<div class="flex-50" *ngIf="hookData.name === 'SMS Bridge'">
{{ hookData.config[3].fieldValue }}
</div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="hookData.name === 'SMS Bridge'">
<div class="flex-50 mat-body-strong" *ngIf="hookData.name === 'SMS Bridge'">
{{ 'labels.inputs.SMS Provider Token' | translate }}:
</div>
<div fxFlex="50%" *ngIf="hookData.name === 'SMS Bridge'">
<div class="flex-50" *ngIf="hookData.name === 'SMS Bridge'">
{{ hookData.config[4].fieldValue }}
</div>
</div>
@@ -1,4 +1,4 @@
<div class="container m-b-20 space-top" fxLayout="row" fxLayoutGap="20px">
<div class="container m-b-20 space-top layout-row layout-row gap-20px">
<div #cobCatchUpStatus>
<h2 class="no-m">
{{ 'labels.heading.COB Catch-Up is' | translate }}:<span class="m-l-20 m-r-20">{{
@@ -1,11 +1,11 @@
<div class="tab-container mat-typography" *ngIf="loans && loans.length > 0">
<div fxLayout="row" fxLayoutAlign="start center">
<div class="search-box" fxFlex="40%">
<mat-form-field fxFlex="90%">
<div class="layout-row align-start-center">
<div class="search-box flex-40">
<mat-form-field class="flex-90">
<input matInput placeholder="Filter by loan Id or error" (keyup)="applyFilter($event.target.value)" />
</mat-form-field>
</div>
<div fxFlex="60%" *ngIf="allowRunInlineJob">
<div class="flex-60" *ngIf="allowRunInlineJob">
<button mat-raised-button color="success" *mifosxHasPermission="'EXECUTE_INLINE_JOB'" (click)="runInlineCOB()">
<fa-icon icon="play" class="m-r-10"></fa-icon>{{ 'Start inline COB' | translate }}
</button>
@@ -1,12 +1,12 @@
import { Injectable } from '@angular/core';
import { Router, Resolve, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router';
import { Router, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router';
import { TasksService } from 'app/tasks/tasks.service';
import { Observable, of } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class LoanLockedResolver implements Resolve<boolean> {
export class LoanLockedResolver {
/**
* @param {TasksService} tasksService Tasks service.
*/
@@ -2,7 +2,7 @@
<mat-card>
<form [formGroup]="jobForm" (ngSubmit)="submit()">
<mat-card-content>
<div fxLayout="column">
<div class="layout-column">
<mat-form-field>
<mat-label>{{ 'labels.inputs.Job Name' | translate }}</mat-label>
<input matInput required formControlName="displayName" />
@@ -26,7 +26,7 @@
</mat-checkbox>
</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>
@@ -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 { SystemService } from '../../system.service';
* Edit Scheduler Job data resolver.
*/
@Injectable()
export class ManageSchedulerJobResolver implements Resolve<Object> {
export class ManageSchedulerJobResolver {
/**
* @param {SystemService} systemService System service.
*/
@@ -1,4 +1,4 @@
<div class="container m-b-20 space-top" fxLayout="row" fxLayoutGap="20px">
<div class="container m-b-20 space-top layout-row gap-20px">
<div #schedulerStatus>
<h2 class="no-m">
{{ 'labels.heading.Scheduler Status' | translate }}:<span class="m-l-20 m-r-20">{{
@@ -17,14 +17,14 @@
</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>
</div>
<div class="space-top" fxLayout="row" fxLayoutGap="20px">
<div class="space-top layout-row gap-20percent">
<button mat-raised-button color="primary" (click)="openRunSelectedJobsDialog()" [disabled]="!isAnyJobSelected()">
<fa-icon icon="play" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Run Selected Jobs' | translate }}
@@ -152,7 +152,7 @@
</div>
</div>
<div class="container space-top" fxLayout="row" fxLayoutGap="20px">
<div class="container space-top layout-row gap-20percent">
<button mat-raised-button color="primary" (click)="openRunSelectedJobsDialog()" [disabled]="!isAnyJobSelected()">
<fa-icon icon="play" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Run Selected Jobs' | translate }}
@@ -165,7 +165,7 @@
<ng-template #templateSchedulerStatus let-data let-popover="popover">
<h4>{{ 'labels.heading.Scheduler status' | 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>
@@ -184,7 +184,7 @@
<ng-template #templateFilter let-data let-popover="popover">
<h4>{{ 'labels.heading.Search bar to filter jobs' | 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>
@@ -212,7 +212,7 @@
'labels.heading.Schedular Jobs' | translate
}}</a>
</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,6 @@
<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 By Version' | translate }}</mat-label>
<input matInput (keyup)="applyFilter($event.target.value)" />
</mat-form-field>
@@ -72,7 +72,7 @@
<mat-paginator [pageSizeOptions]="[10, 25, 50, 100]" showFirstLastButtons></mat-paginator>
<div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="2%" fxLayout.lt-md="column">
<div class="layout-row layout-align-center gap-2percent layout-lt-md-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, forkJoin } from 'rxjs';
@@ -12,7 +12,7 @@ import { SystemService } from '../../../system.service';
* View History Scheduler Jobs data resolver.
*/
@Injectable()
export class ViewHistorySchedulerJobsResolver implements Resolve<Object> {
export class ViewHistorySchedulerJobsResolver {
/**
* @param {SystemService} systemService System service.
*/
@@ -1,4 +1,4 @@
<div class="container m-b-20" fxLayout="row" fxLayout.lt-md="column" fxLayoutAlign="end" fxLayoutGap="2%">
<div class="container m-b-20 layout-row layout-lt-md-column align-end gap-2percent">
<button mat-raised-button color="primary" [routerLink]="['edit']">
<fa-icon icon="edit" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Edit' | translate }}
@@ -11,34 +11,34 @@
<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.Job Name' | translate }}
</div>
<div fxFlex="50%">
<div class="flex-50">
{{ jobData.displayName }}
</div>
<div fxFlex="50%" class="mat-body-strong">
<div class="flex-50 mat-body-strong">
{{ 'labels.inputs.Cron Expression' | translate }}
</div>
<div fxFlex="50%">
<div class="flex-50">
{{ jobData.cronExpression }}
</div>
<div fxFlex="50%" class="mat-body-strong">{{ 'labels.inputs.Is Active Job' | translate }}?</div>
<div class="flex-50 mat-body-strong">{{ 'labels.inputs.Is Active Job' | translate }}?</div>
<div fxFlex="50%">
<div class="flex-50">
{{ jobData.active | yesNo }}
</div>
<div fxFlex="50%" class="mat-body-strong">
<div class="flex-50 mat-body-strong">
{{ 'labels.inputs.Follow' | translate }}
</div>
<div fxFlex="50%">
<div class="flex-50">
<a href="http://www.cronmaker.com/">
{{ 'labels.text.Click Here To Generate Cron Expression' | translate }}
</a>
@@ -47,7 +47,7 @@
</mat-card-content>
<mat-card-actions>
<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" 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 { SystemService } from '../../../system.service';
* Selected Scheduler Jobs data resolver.
*/
@Injectable()
export class ViewSchedulerJobResolver implements Resolve<Object> {
export class ViewSchedulerJobResolver {
/**
* @param {SystemService} systemService System service.
*/
@@ -1,5 +1,5 @@
<div class="container space-top" fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="31%">
<div class="container space-top layout-row-wrap gap-2percent layout-lt-md-column">
<mat-form-field class="flex-31">
<mat-label>{{ 'labels.inputs.Job Name' | translate }}</mat-label>
<mat-select [formControl]="jobName" (selectionChange)="getWorkflowJobSteps($event.value)">
<mat-option *ngFor="let job of jobNameOptions" [value]="job">
@@ -8,7 +8,7 @@
</mat-select>
</mat-form-field>
<div class="action-button" fxLayoutGap="25px" *ngIf="jobStepName">
<div class="action-button gap-25percent" *ngIf="jobStepName">
<button mat-raised-button color="primary" (click)="addJobStep()">
<fa-icon icon="plus" class="m-r-10"></fa-icon>{{ 'labels.buttons.Link Job Step' | translate }}
</button>
@@ -56,11 +56,7 @@
<div
*ngIf="stepOrderHasChanged"
fxLayout="row"
class="container margin-t space-top"
fxLayout.xs="column"
fxLayoutAlign="center"
fxLayoutGap="2%"
class="container margin-t space-top layout-row gap-2percent layout-align-center layout-column-xs"
>
<button mat-raised-button [routerLink]="['../']">
{{ 'labels.buttons.Cancel' | translate }}
@@ -1,12 +1,12 @@
import { Injectable } from '@angular/core';
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
import { ActivatedRouteSnapshot } from '@angular/router';
import { SystemService } from 'app/system/system.service';
import { Observable } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class WorkflowJobResolver implements Resolve<boolean> {
export class WorkflowJobResolver {
/**
* @param {SystemService} systemService System service.
*/
@@ -2,8 +2,8 @@
<mat-card>
<form [formGroup]="reportForm" (ngSubmit)="submit()">
<mat-card-content>
<div fxLayout="row wrap" fxLayout.lt-md="column" fxLayoutGap="4%">
<mat-form-field fxFlex="30%">
<div class="layout-row-wrap responsive-column gap-4percent">
<mat-form-field class="flex-30">
<mat-label>{{ 'labels.inputs.Report Name' | translate }}</mat-label>
<input matInput required formControlName="reportName" />
<mat-error *ngIf="reportForm.controls.reportName.hasError('required')">
@@ -12,7 +12,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="30%">
<mat-form-field class="flex-30">
<mat-label>{{ 'labels.inputs.Report Type' | translate }}</mat-label>
<mat-select required formControlName="reportType">
<mat-option
@@ -28,7 +28,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="30%">
<mat-form-field class="flex-30">
<mat-label>{{ 'labels.inputs.Report Sub Type' | translate }}</mat-label>
<mat-select formControlName="reportSubType">
<mat-option
@@ -41,8 +41,8 @@
</mat-form-field>
</div>
<div fxLayout="row wrap" fxLayout.lt-md="column" fxLayoutGap="4%">
<mat-form-field fxFlex="40%">
<div class="layout-row-wrap responsive-column gap-4percent">
<mat-form-field class="flex-40">
<mat-label>{{ 'labels.inputs.Report Category' | translate }}</mat-label>
<mat-select formControlName="reportCategory">
<mat-option *ngFor="let reportCategoryType of reportCategoryTypeOptions" [value]="reportCategoryType">
@@ -51,20 +51,20 @@
</mat-select>
</mat-form-field>
<div fxFlex="10%" class="user-report-wrapper">
<div class="user-report-wrapper flex-10">
<mat-checkbox class="user-report" labelPosition="after" formControlName="useReport">
{{ 'labels.inputs.User Report (UI)' | translate }}
</mat-checkbox>
</div>
</div>
<div fxLayout="column">
<mat-form-field fxFlex="98%">
<div class="layout-column">
<mat-form-field class="flex-98">
<mat-label>{{ 'labels.inputs.Description' | translate }}</mat-label>
<textarea matInput formControlName="description" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field>
<mat-form-field fxFlex="98%">
<mat-form-field class="flex-98">
<mat-label>{{ 'labels.inputs.SQL' | translate }}</mat-label>
<textarea
matInput
@@ -82,48 +82,58 @@
<br />
<div fxLayout="row wrap" fxLayoutGap="60%" fxLayout.lt-md="column">
<p fxFlex="20%" class="mat-title">{{ 'labels.inputs.Report Parameters' | translate }}</p>
<div class="layout-row-wrap gap-60percent layout-lt-md-column">
<p class="mat-title flex-20">{{ 'labels.inputs.Report Parameters' | translate }}</p>
<button mat-raised-button fxFlex="20%" type="button" color="primary" (click)="addReportParameter()">
<button mat-raised-button class="flex-20" type="button" color="primary" (click)="addReportParameter()">
<fa-icon icon="plus" class="m-r-10"></fa-icon>{{ 'labels.buttons.Add Report Parameter' | translate }}
</button>
</div>
<table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="parameterName">
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.buttons.Parameters' | translate }}</th>
<td mat-cell *matCellDef="let reportParameter">{{ reportParameter.parameterName }}</td>
<th mat-header-cell *matHeaderCellDef mat-sort-header>
{{ 'labels.buttons.Parameters' | translate }}
</th>
<td mat-cell *matCellDef="let reportParameter">
{{ reportParameter.parameterName }}
</td>
</ng-container>
<ng-container matColumnDef="parameterNamePassed">
<th mat-header-cell *matHeaderCellDef mat-sort-header>
{{ 'labels.inputs.Parameter Name Passed to Pentaho' | translate }}
</th>
<td mat-cell *matCellDef="let reportParameter">{{ reportParameter.reportParameterName }}</td>
<td mat-cell *matCellDef="let reportParameter">
{{ reportParameter.reportParameterName }}
</td>
</ng-container>
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Actions' | translate }}</th>
<td mat-cell *matCellDef="let reportParameter" fxLayoutGap="15%">
<button
type="button"
fxFlex="8%"
color="primary"
mat-icon-button
(click)="editReportParameter(reportParameter)"
>
<fa-icon icon="edit" size="lg"></fa-icon>
</button>
<button
type="button"
fxFlex="8%"
color="warn"
mat-icon-button
(click)="deleteReportParameter(reportParameter)"
>
<fa-icon icon="trash" size="lg"></fa-icon>
</button>
<th mat-header-cell *matHeaderCellDef>
{{ 'labels.inputs.Actions' | translate }}
</th>
<td mat-cell *matCellDef="let reportParameter">
<div class="layout-row gap-15percent">
<button
type="button"
class="flex-8"
color="primary"
mat-icon-button
(click)="editReportParameter(reportParameter)"
>
<fa-icon icon="edit" size="lg"></fa-icon>
</button>
<button
type="button"
class="flex-8"
color="warn"
mat-icon-button
(click)="deleteReportParameter(reportParameter)"
>
<fa-icon icon="trash" size="lg"></fa-icon>
</button>
</div>
</td>
</ng-container>
@@ -134,7 +144,7 @@
<mat-paginator [pageSizeOptions]="[10, 25, 50, 100]" showFirstLastButtons></mat-paginator>
</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,8 +2,8 @@
<mat-card>
<form [formGroup]="reportForm" (ngSubmit)="submit()">
<mat-card-content>
<div fxLayout="row wrap" fxLayout.lt-md="column" fxLayoutGap="4%">
<mat-form-field fxFlex="30%">
<div class="layout-row-wrap responsive-column gap-4percent">
<mat-form-field class="flex-30">
<mat-label>{{ 'labels.inputs.Report Name' | translate }}</mat-label>
<input matInput required formControlName="reportName" />
<mat-error *ngIf="reportForm.controls.reportName.hasError('required')">
@@ -12,7 +12,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="30%">
<mat-form-field class="flex-30">
<mat-label>{{ 'labels.inputs.Report Type' | translate }}</mat-label>
<mat-select required formControlName="reportType">
<mat-option *ngFor="let allowedReportType of reportData.allowedReportTypes" [value]="allowedReportType">
@@ -25,7 +25,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="30%">
<mat-form-field class="flex-30">
<mat-label>{{ 'labels.inputs.Report Sub Type' | translate }}</mat-label>
<mat-select formControlName="reportSubType">
<mat-option
@@ -38,8 +38,8 @@
</mat-form-field>
</div>
<div fxLayout="row wrap" fxLayout.lt-md="column" fxLayoutGap="4%">
<mat-form-field fxFlex="40%">
<div class="layout-row-wrap responsive-column gap-4percent">
<mat-form-field class="flex-40">
<mat-label>{{ 'labels.inputs.Report Category' | translate }}</mat-label>
<mat-select formControlName="reportCategory">
<mat-option *ngFor="let reportCategoryType of reportCategoryTypeOptions" [value]="reportCategoryType">
@@ -48,20 +48,20 @@
</mat-select>
</mat-form-field>
<div fxFlex="10%" class="user-report-wrapper">
<div class="user-report-wrapper flex-10">
<mat-checkbox class="user-report" labelPosition="after" formControlName="useReport">
{{ 'labels.inputs.User Report (UI)' | translate }}
</mat-checkbox>
</div>
</div>
<div fxLayout="column">
<mat-form-field fxFlex="98%">
<div class="layout-column">
<mat-form-field class="flex-98">
<mat-label>{{ 'labels.inputs.Description' | translate }}</mat-label>
<textarea matInput formControlName="description" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field>
<mat-form-field fxFlex="98%">
<mat-form-field class="flex-98">
<mat-label> {{ 'labels.inputs.SQL' | translate }}</mat-label>
<textarea
matInput
@@ -79,12 +79,12 @@
<br />
<div fxLayout="row wrap" fxLayoutGap="60%" fxLayout.lt-md="column">
<p fxFlex="20%" class="mat-title">{{ 'labels.inputs.Report Parameters' | translate }}</p>
<div class="layout-row-wrap gap-60percent layout-lt-md-column">
<p class="mat-title flex-20">{{ 'labels.inputs.Report Parameters' | translate }}</p>
<button
mat-raised-button
fxFlex="20%"
class="flex-20"
type="button"
*ngIf="!reportData.coreReport"
color="primary"
@@ -110,11 +110,11 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Actions' | translate }}</th>
<td mat-cell *matCellDef="let reportParameter" fxLayoutGap="15%">
<td mat-cell *matCellDef="let reportParameter" class="gap-15percent">
<button
*ngIf="!reportData.coreReport"
type="button"
fxFlex="8%"
class="flex-8"
color="primary"
mat-icon-button
(click)="editReportParameter(reportParameter)"
@@ -124,7 +124,7 @@
<button
*ngIf="!reportData.coreReport"
type="button"
fxFlex="8%"
class="flex-8"
color="warn"
mat-icon-button
(click)="deleteReportParameter(reportParameter)"
@@ -141,7 +141,7 @@
<mat-paginator [pageSizeOptions]="[10, 25, 50, 100]" showFirstLastButtons></mat-paginator>
</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 #buttonCreateReport class="in-block">
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_REPORT'">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
@@ -8,8 +8,8 @@
</div>
<div class="container">
<div #filter fxLayout="row">
<mat-form-field fxFlex>
<div #filter class="layout-row">
<mat-form-field class="flex-fill">
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
<input matInput (keyup)="applyFilter($event.target.value)" />
</mat-form-field>
@@ -92,7 +92,7 @@
<ng-template #templateButtonCreateReport let-popover="popover">
<h2>{{ 'labels.buttons.Create Report' | translate }}</h2>
<p class="mw300">{{ 'labels.text.Create new report' | 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>
@@ -111,7 +111,7 @@
<ng-template #templateFilter let-popover="popover">
<h4>{{ 'labels.heading.Filter reports by name' | 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>
@@ -139,7 +139,7 @@
'labels.heading.Manage Reports' | translate
}}</a>
</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>
@@ -5,7 +5,7 @@
<mat-dialog-content>
<form [formGroup]="reportParameterForm">
<div fxLayout="column">
<div class="layout-column">
<mat-form-field>
<mat-label>{{ 'labels.inputs.Select allowed parameter' | translate }}</mat-label>
<mat-select required formControlName="parameterName">
@@ -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 { SystemService } from '../system.service';
* Report Template data resolver.
*/
@Injectable()
export class ReportTemplateResolver implements Resolve<Object> {
export class ReportTemplateResolver {
/**
* @param {SystemService} systemService System 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 { SystemService } from '../system.service';
* Report data resolver.
*/
@Injectable()
export class ReportResolver implements Resolve<Object> {
export class ReportResolver {
/**
* @param {SystemService} systemService System 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 { SystemService } from '../system.service';
* Reports data resolver.
*/
@Injectable()
export class ReportsResolver implements Resolve<Object> {
export class ReportsResolver {
/**
* @param {SystemService} systemService System 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_REPORT'">
<fa-icon icon="edit" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Edit' | translate }}
@@ -17,36 +17,36 @@
<mat-card-title>{{ reportData.reportName }}</mat-card-title>
<mat-card-content>
<div fxLayout="row wrap" class="content">
<div fxFlex="50%" class="mat-body-strong">{{ 'labels.inputs.Report Type' | translate }}:</div>
<div class="layout-row-wrap">
<div class="flex-50 mat-body-strong">{{ 'labels.inputs.Report Type' | translate }}:</div>
<div fxFlex="50%">
<div class="flex-50">
{{ reportData.reportType | translateKey: 'text' }}
</div>
<div *ngIf="reportData.reportSubType" fxFlex="50%" class="mat-body-strong">
<div *ngIf="reportData.reportSubType" class="mat-body-strong flex-50">
{{ 'labels.inputs.Report Sub Type' | translate }}:
</div>
<div *ngIf="reportData.reportSubType" fxFlex="50%">
<div *ngIf="reportData.reportSubType" class="flex-50">
{{ reportData.reportSubType | translateKey: 'text' }}
</div>
<div fxFlex="50%" class="mat-body-strong">{{ 'labels.inputs.Report Category' | translate }}:</div>
<div class="flex-50 mat-body-strong">{{ 'labels.inputs.Report Category' | translate }}:</div>
<div fxFlex="50%">
<div class="flex-50">
{{ reportData.reportCategory | translateKey: 'catalogs' }}
</div>
<div fxFlex="50%" class="mat-body-strong">{{ 'labels.inputs.Core Report' | translate }}:</div>
<div class="flex-50 mat-body-strong">{{ 'labels.inputs.Core Report' | translate }}:</div>
<div fxFlex="50%">
<div class="flex-50">
{{ reportData.coreReport | yesNo }}
</div>
<div fxFlex="50%" class="mat-body-strong">{{ 'labels.inputs.User Report' | translate }}:</div>
<div class="flex-50 mat-body-strong">{{ 'labels.inputs.User Report' | translate }}:</div>
<div fxFlex="50%">
<div class="flex-50">
{{ reportData.useReport | yesNo }}
</div>
</div>
@@ -1,10 +1,10 @@
<div class="container">
<form [formGroup]="surveyForm" (ngSubmit)="submit()">
<div fxLayout="column" fxLayoutGap="4%">
<div class="layout-column gap-4percent">
<mat-card>
<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.Key' | translate }}</mat-label>
<input matInput maxlength="32" required formControlName="key" />
<mat-error *ngIf="surveyForm.controls.key.hasError('required')">
@@ -13,7 +13,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Name' | translate }}</mat-label>
<input matInput maxlength="255" required formControlName="name" />
<mat-error *ngIf="surveyForm.controls.name.hasError('required')">
@@ -22,7 +22,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Country Code' | translate }}</mat-label>
<input matInput maxlength="2" required formControlName="countryCode" />
<mat-error *ngIf="surveyForm.controls.countryCode.hasError('required')">
@@ -35,17 +35,13 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="98%">
<mat-form-field class="flex-98">
<mat-label>{{ 'labels.inputs.Description' | translate }}</mat-label>
<textarea matInput formControlName="description" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field>
<div
fxFlexFill
fxLayout="row"
fxLayout.xs="column"
fxLayoutAlign="center"
fxLayoutGap="5px"
class="flex-fill layout-row layout-align-center gap-5px layout-xs-column"
*ngIf="!questionDatas.length"
>
<button type="button" mat-raised-button [routerLink]="['../']">
@@ -71,7 +67,7 @@
</mat-card-content>
</mat-card>
<div cdkDropList (cdkDropListDropped)="dropQuestion($event)" fxLayout="column" fxLayoutGap="4%">
<div cdkDropList (cdkDropListDropped)="dropQuestion($event)" class="layout-column gap-4percent">
<mat-card
cdkDrag
cdkDragLockAxis="y"
@@ -79,14 +75,8 @@
*ngFor="let question of questionDatas.controls; let questionIndex = index; last as isLast"
>
<mat-card-content>
<div
fxFlexFill
fxLayoutGap="2%"
fxLayout.lt-md="column"
fxLayout="row wrap"
[formGroupName]="questionIndex"
>
<div fxFlex="98%" fxLayout="row wrap" fxLayoutGap="2%" fxLayoutAlign="space-between center">
<div class="flex-fill gap-2percent responsive-column layout-row-wrap" [formGroupName]="questionIndex">
<div class="flex-98 layout-row-wrap gap-2percent align-between align-items-center">
<h2 class="mat-h2">{{ 'labels.heading.Question' | translate }} {{ questionIndex + 1 }}</h2>
<button
mat-raised-button
@@ -99,7 +89,7 @@
</button>
</div>
<mat-form-field fxFlex="48%">
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Key' | translate }}</mat-label>
<input matInput maxlength="32" required formControlName="key" />
<mat-error *ngIf="question.controls.key.hasError('required')">
@@ -108,7 +98,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48">
<mat-form-field class="flex-fill" ="48">
<mat-label>{{ 'labels.inputs.Text' | translate }}</mat-label>
<input matInput maxlength="255" required formControlName="text" />
<mat-error *ngIf="question.controls.text.hasError('required')">
@@ -117,14 +107,14 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="98%">
<mat-form-field class="flex-98">
<mat-label>{{ 'labels.inputs.Description' | translate }}</mat-label>
<textarea matInput formControlName="description" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field>
<mat-divider [inset]="true"></mat-divider>
<div fxFlex="98%" fxLayout="row" fxLayoutAlign="space-between center">
<div class="flex-98 layout-row align-between align-items-center">
<h4 class="mat-h4">{{ 'labels.heading.Options' | translate }}</h4>
<button type="button" mat-raised-button color="primary" (click)="addResponse(questionIndex)">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
@@ -135,21 +125,17 @@
<div
cdkDropList
(cdkDropListDropped)="dropResponse($event, questionIndex)"
fxFlexFill
fxLayout="row wrap"
fxLayoutGap="2%"
class="flex-fill layout-row-wrap gap-2percent"
>
<div
cdkDrag
cdkDragLockAxis="y"
fxFlexFill
fxLayout="row wrap"
fxLayoutGap="2%"
class="flex-fill layout-row-wrap gap-2percent"
formArrayName="responseDatas"
*ngFor="let response of getResponseDatas(questionIndex).controls; let responseIndex = index"
>
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" [formGroupName]="responseIndex">
<mat-form-field fxFlex="43%">
<div class="flex-fill layout-row-wrap gap-2percent" [formGroupName]="responseIndex">
<mat-form-field class="flex-43">
<mat-label>{{ 'labels.inputs.Text' | translate }}</mat-label>
<input matInput required formControlName="text" />
<mat-error *ngIf="response.controls.text.hasError('required')">
@@ -158,7 +144,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="43%">
<mat-form-field class="flex-43">
<mat-label>{{ 'labels.inputs.Value' | translate }}</mat-label>
<input matInput required formControlName="value" />
<mat-error *ngIf="response.controls.value.hasError('required')">
@@ -171,7 +157,7 @@
</mat-error>
</mat-form-field>
<div fxFlex="8%">
<div class="flex-8">
<div class="delete-wrapper">
<button
type="button"
@@ -193,13 +179,7 @@
</mat-card-content>
<div>
<mat-card-actions
*ngIf="isLast"
fxLayout="row"
fxLayout.xs="column"
fxLayoutAlign="center"
fxLayoutGap="5px"
>
<mat-card-actions *ngIf="isLast" class="layout-row layout-xs-column layout-align-center gap-5px">
<button type="button" mat-raised-button (click)="cancelSurvey()">
{{ 'labels.buttons.Cancel' | translate }}
</button>
@@ -1,10 +1,10 @@
<div class="container">
<form [formGroup]="surveyForm" (ngSubmit)="submit()">
<div fxLayout="column" fxLayoutGap="4%">
<div class="layout-column gap-4percent">
<mat-card>
<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.Key' | translate }}</mat-label>
<input matInput maxlength="32" required formControlName="key" />
<mat-error *ngIf="surveyForm.controls.key.hasError('required')">
@@ -13,7 +13,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Name' | translate }}</mat-label>
<input matInput maxlength="255" required formControlName="name" />
<mat-error *ngIf="surveyForm.controls.name.hasError('required')">
@@ -22,7 +22,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Country Code' | translate }} </mat-label>
<input matInput maxlength="2" required formControlName="countryCode" />
<mat-error *ngIf="surveyForm.controls.countryCode.hasError('required')">
@@ -35,7 +35,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="98%">
<mat-form-field class="flex-98">
<mat-label>{{ 'labels.inputs.Description' | translate }}</mat-label>
<textarea matInput formControlName="description" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field>
@@ -43,7 +43,7 @@
</mat-card-content>
</mat-card>
<div cdkDropList (cdkDropListDropped)="dropQuestion($event)" fxLayout="column" fxLayoutGap="4%">
<div cdkDropList (cdkDropListDropped)="dropQuestion($event)" class="layout-column gap-4percent">
<mat-card
cdkDrag
cdkDragLockAxis="y"
@@ -51,14 +51,8 @@
*ngFor="let question of questionDatas.controls; let questionIndex = index; last as isLast"
>
<mat-card-content>
<div
fxFlexFill
fxLayoutGap="2%"
fxLayout.lt-md="column"
fxLayout="row wrap"
[formGroupName]="questionIndex"
>
<div fxFlex="98%" fxLayout="row wrap" fxLayoutGap="2%" fxLayoutAlign="space-between center">
<div class="flex-fill gap-2percent responsive-column layout-row-wrap" [formGroupName]="questionIndex">
<div class="flex-98 layout-row-wrap gap-2percent align-between align-items-center">
<h2 class="mat-h2">{{ 'labels.heading.Question' | translate }} {{ questionIndex + 1 }}</h2>
<button
mat-raised-button
@@ -71,7 +65,7 @@
</button>
</div>
<mat-form-field fxFlex="48%">
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Key' | translate }}</mat-label>
<input matInput maxlength="32" required formControlName="key" />
<mat-error *ngIf="question.get('key').hasError('required')">
@@ -80,7 +74,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48">
<mat-form-field class="flex-fill" ="48">
<mat-label>{{ 'labels.inputs.Text' | translate }}</mat-label>
<input matInput maxlength="255" required formControlName="text" />
<mat-error *ngIf="question.get('text').hasError('required')">
@@ -89,14 +83,14 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="98%">
<mat-form-field class="flex-98">
<mat-label>{{ 'labels.inputs.Description' | translate }}</mat-label>
<textarea matInput formControlName="description" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field>
<mat-divider [inset]="true"></mat-divider>
<div fxFlex="98%" fxLayout="row" fxLayoutAlign="space-between center">
<div class="flex-98 layout-row align-between align-items-center">
<h4 class="mat-h4">{{ 'labels.heading.Options' | translate }}</h4>
<button type="button" mat-raised-button color="primary" (click)="addResponse(questionIndex)">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
@@ -107,21 +101,17 @@
<div
cdkDropList
(cdkDropListDropped)="dropResponse($event, questionIndex)"
fxFlexFill
fxLayout="row wrap"
fxLayoutGap="2%"
class="flex-fill layout-row-wrap gap-2percent"
>
<div
cdkDrag
cdkDragLockAxis="y"
fxFlexFill
fxLayout="row wrap"
fxLayoutGap="2%"
class="flex-fill layout-row-wrap gap-2percent"
formArrayName="responseDatas"
*ngFor="let response of getResponseDatas(questionIndex).controls; let responseIndex = index"
>
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" [formGroupName]="responseIndex">
<mat-form-field fxFlex="43%">
<div class="flex-fill layout-row-wrap gap-2percent" [formGroupName]="responseIndex">
<mat-form-field class="flex-43">
<mat-label>{{ 'labels.inputs.Text' | translate }}</mat-label>
<input matInput required formControlName="text" />
<mat-error *ngIf="response.get('text').hasError('required')">
@@ -130,7 +120,7 @@
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="43%">
<mat-form-field class="flex-43">
<mat-label>{{ 'labels.inputs.Value' | translate }}</mat-label>
<input matInput required formControlName="value" />
<mat-error *ngIf="response.get('value').hasError('required')">
@@ -143,7 +133,7 @@
</mat-error>
</mat-form-field>
<div fxFlex="8%">
<div class="flex-8">
<div class="delete-wrapper">
<button
type="button"
@@ -165,13 +155,7 @@
</mat-card-content>
<div>
<mat-card-actions
*ngIf="isLast"
fxLayout="row"
fxLayout.xs="column"
fxLayoutAlign="center"
fxLayoutGap="5px"
>
<mat-card-actions *ngIf="isLast" class="layout-row layout-xs-column layout-align-center gap-5px">
<button type="button" mat-raised-button (click)="cancelSurvey()">
{{ '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']">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Create Surveys' | translate }}
@@ -6,8 +6,8 @@
</div>
<div class="container">
<div fxLayout="row">
<mat-form-field fxFlex>
<div class="layout-row">
<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 { SystemService } from '../system.service';
* Surveys data resolver.
*/
@Injectable()
export class ManageSurveysResolver implements Resolve<Object> {
export class ManageSurveysResolver {
/**
* @param {SystemService} systemService System 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 { SystemService } from '../system.service';
* System data resolver.
*/
@Injectable()
export class SurveyResolver implements Resolve<Object> {
export class SurveyResolver {
/**
* @param {SystemService} systemService System 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" *mifosxHasPermission="'UPDATE_REPORT'" (click)="onEdit()">
<fa-icon icon="edit" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Edit' | translate }}
@@ -7,41 +7,41 @@
<div class="container m-b-20">
<mat-card>
<mat-card-header fxLayout="column">
<mat-card-header class="layout-column">
<mat-card-title>{{ 'labels.buttons.Survey' | translate }}</mat-card-title>
<mat-divider [inset]="true"></mat-divider>
</mat-card-header>
<mat-card-content>
<div fxLayout="row wrap" class="content">
<div fxFlex="40%" fxFlex.lt-md="50%" class="header">
<div class="layout-row-wrap">
<div class="flex-40 flex-lt-md-50 header">
<b>{{ 'labels.inputs.Key' | translate }}:</b>
</div>
<div fxFlex="60%" fxFlex.lt-md="50%">
<div class="flex-60 flex-lt-md-50">
{{ surveyData.key }}
</div>
<div fxFlex="40%" fxFlex.lt-md="50%" class="header">
<div class="flex-40 flex-lt-md-50 header">
<b>{{ 'labels.inputs.Name' | translate }}:</b>
</div>
<div fxFlex="60%" fxFlex.lt-md="50%">
<div class="flex-60 flex-lt-md-50">
{{ surveyData.name }}
</div>
<div fxFlex="40%" fxFlex.lt-md="50%" class="header">
<div class="flex-40 flex-lt-md-50 header">
<b>{{ 'labels.inputs.Country Code' | translate }}:</b>
</div>
<div fxFlex="60%" fxFlex.lt-md="50%">
<div class="flex-60 flex-lt-md-50">
{{ surveyData.countryCode }}
</div>
<div fxFlex="40%" fxFlex.lt-md="50%" class="header">
<div class="flex-40 flex-lt-md-50 header">
<b>{{ 'labels.inputs.Description' | translate }}:</b>
</div>
<div fxFlex="60%" fxFlex.lt-md="50%">
<div class="flex-60 flex-lt-md-50">
{{ surveyData.description }}
</div>
</div>
@@ -51,7 +51,7 @@
<div class="container m-b-20">
<mat-card class="questions">
<mat-card-header fxLayout="column">
<mat-card-header class="layout-column">
<mat-card-title>{{ 'labels.inputs.Questions' | translate }}</mat-card-title>
<mat-divider [inset]="true"></mat-divider>
</mat-card-header>
@@ -60,32 +60,32 @@
<mat-card>
<mat-card-content>
<div>{{ 'labels.heading.Question' | translate }}: {{ i + 1 }}</div>
<div fxLayout="row" id="key-text">
<div fxFlex="25%" fxFlex.lt-md="50%" class="header">
<div class="layout-row" id="key-text">
<div class="flex-25 header">
<b>{{ 'labels.inputs.Key' | translate }}:</b>
</div>
<div fxFlex="40%" fxFlex.lt-md="50%">
<div class="flex-40 flex-50-lt-md">
{{ questionData.key }}
</div>
<div fxFlex="40%" fxFlex.lt-md="50%" class="header">
<div class="flex-40 flex-lt-md-50 header">
<b>{{ 'labels.inputs.Text' | translate }}:</b>
</div>
<div fxFlex="40%" fxFlex.lt-md="50%">
<div class="flex-40 flex-50-lt-md">
{{ questionData.text }}
</div>
</div>
<div fxLayout="row" id="description">
<div fxFlex="20%" fxFlex.lt-md="50%" class="header">
<div class="layout-row" id="description">
<div class="flex-20 flex-50-lt-md header">
<b>{{ 'labels.inputs.Description' | translate }}:</b>
</div>
<div fxFlex="40%" fxFlex.lt-md="50%">
<div class="flex-40 flex-50-lt-md">
{{ questionData.description }}
</div>
</div>
<div fxLayout="column" id="questionaire">
<div class="layout-column" id="questionaire">
<div>
<b>{{ 'labels.inputs.Option' | translate }}: </b>
</div>
@@ -2,7 +2,7 @@
<mat-card>
<form [formGroup]="roleForm" (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" />
@@ -23,7 +23,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]="roleForm" (ngSubmit)="submit()">
<mat-card-content>
<div fxLayout="column">
<div class="layout-column">
<mat-form-field>
<mat-label>{{ 'labels.inputs.Role Name' | translate }}</mat-label>
<input matInput disabled 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,4 +1,4 @@
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px" [routerLink]="['add']">
<div class="container m-b-20 layout-row layout-align-end gap-20px" [routerLink]="['add']">
<div #buttonAddRole class="in-block">
<button mat-raised-button color="primary">
<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>
@@ -69,7 +69,7 @@
<ng-template #templateButtonAddRole let-popover="popover">
<h2>{{ 'labels.buttons.Add Role' | translate }}</h2>
<p class="mw300">{{ 'labels.text.To create a new role' | 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>
@@ -88,7 +88,7 @@
<ng-template #templateFilter let-popover="popover">
<h4>{{ 'labels.heading.Search bar to filter roles' | 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>
@@ -118,7 +118,7 @@
>{{ 'labels.inputs.Manage Roles and Permission' | translate }}</a
>
</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 { SystemService } from '../system.service';
* Roles and Permissions data resolver.
*/
@Injectable()
export class RolesAndPermissionsResolver implements Resolve<Object> {
export class RolesAndPermissionsResolver {
/**
* @param {SystemService} systemService System 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"
@@ -45,20 +45,20 @@
<div class="container m-b-20">
<mat-card class="mat-elevation-z8">
<mat-card-content>
<div fxLayout="row wrap" class="content">
<div fxFlex="40%" fxFlex.lt-md="50%" class="header">
<div class="layout-row-wrap">
<div class="flex-40 flex-lt-md-50 header">
<b>{{ 'labels.inputs.Name' | translate }}:</b>
</div>
<div fxFlex="60%" fxFlex.lt-md="50%">
<div class="flex-60 flex-lt-md-50">
{{ rolePermissionService.name }}
</div>
<div fxFlex="40%" fxFlex.lt-md="50%" class="header">
<div class="flex-40 flex-lt-md-50 header">
<b>{{ 'labels.inputs.Role Description' | translate }}:</b>
</div>
<div fxFlex="60%" fxFlex.lt-md="50%">
<div class="flex-60 flex-lt-md-50">
{{ rolePermissionService.description }}
</div>
</div>
@@ -69,22 +69,14 @@
<div class="mat-elevation-z8 container">
<mat-card>
<ng-container>
<div fxLayout="row" class="permission-selected">
<div fxFlex="75">
<div class="permission-selected layout-row">
<div class="flex-75">
<h3>
{{ 'labels.buttons.Permissions' | translate }}: <strong>{{ formatName(previousGrouping) }}</strong>
</h3>
</div>
<div
fxFlex="25"
fxLayout="row"
fxLayout.xs="column"
fxLayoutAlign="end"
fxLayoutGap="5px"
*ngIf="!isDisabled"
class="select-deselect"
>
<div class="flex-25 layout-row layout-xs-column layout-align-end gap-5px select-deselect" *ngIf="!isDisabled">
<button mat-raised-button color="primary" (click)="selectAll()">
{{ 'labels.buttons.Select All' | translate }}
</button>
@@ -94,8 +86,8 @@
</div>
</div>
<div fxLayout="row">
<div fxFlex="30" fxLayout="column">
<div class="layout-row">
<div class="layout-column flex-30">
<mat-list>
<mat-list-item
[ngClass]="selectedItem === grouping ? 'active' : 'inactive'"
@@ -111,7 +103,7 @@
<mat-divider [vertical]="true"></mat-divider>
<div fxFlex="70" fxLayout="column" class="list-permission">
<div class="flex-70 layout-column list-permission">
<form [formGroup]="formGroup" (submit)="submit()">
<div *ngFor="let permission of permissions.permissions" class="display-permissions">
<div formArrayName="roster">
@@ -127,7 +119,7 @@
</div>
</ng-container>
<div fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px" *ngIf="!isDisabled">
<div class="layout-row layout-align-center gap-5px layout-xs-column" *ngIf="!isDisabled">
<mat-card-actions>
<button type="button" mat-raised-button (click)="cancel(); restoreCheckboxes()">
{{ 'labels.buttons.Cancel' | translate }}
@@ -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 { SystemService } from '../../system.service';
* Roles and Permission data resolver.
*/
@Injectable()
export class ViewRoleResolver implements Resolve<Object> {
export class ViewRoleResolver {
/**
* @param {SystemService} systemService System service.
*/
+430 -305
View File
@@ -1,360 +1,485 @@
<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 #datatables>
<mat-list-item [routerLink]="['data-tables']">
<mat-icon matListIcon [routerLink]="['data-tables']">
<fa-icon icon="table" size="sm"></fa-icon>
</mat-icon>
<h4 matLine [routerLink]="['data-tables']">{{ 'labels.heading.Manage Data tables' | translate }}</h4>
<fa-icon
(click)="arrowBooleansToggle(0); $event.stopPropagation()"
*ngIf="!arrowBooleans[0]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(0); $event.stopPropagation()"
*ngIf="arrowBooleans[0]"
icon="arrow-up"
size="md"
></fa-icon>
<p matLine *ngIf="arrowBooleans[0]" [routerLink]="['data-tables']">
{{ 'labels.text.Add new extra fields to any entity' | translate }}
</p>
<div class="menu-list-item-content">
<div class="menu-left-section" [routerLink]="['data-tables']">
<mat-icon matListIcon>
<fa-icon icon="table" size="sm"></fa-icon>
</mat-icon>
<div matLine>
{{ 'labels.heading.Manage Data tables' | translate }}
<p matLine *ngIf="arrowBooleans[0]" [routerLink]="['data-tables']" class="menu-explanation">
{{ 'labels.text.Add new extra fields to any entity' | translate }}
</p>
</div>
</div>
<div class="menu-right-section">
<fa-icon
(click)="arrowBooleansToggle(0); $event.stopPropagation()"
*ngIf="!arrowBooleans[0]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(0); $event.stopPropagation()"
*ngIf="arrowBooleans[0]"
icon="arrow-up"
size="md"
></fa-icon>
</div>
</div>
</mat-list-item>
</div>
<div #codes>
<mat-list-item matListIcon [routerLink]="['codes']">
<mat-icon matListIcon [routerLink]="['codes']">
<fa-icon icon="list-ul" size="sm"></fa-icon>
</mat-icon>
<h4 matLine [routerLink]="['codes']">{{ 'labels.heading.Manage Codes' | translate }}</h4>
<fa-icon
(click)="arrowBooleansToggle(1); $event.stopPropagation()"
*ngIf="!arrowBooleans[1]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(1); $event.stopPropagation()"
*ngIf="arrowBooleans[1]"
icon="arrow-up"
size="md"
></fa-icon>
<p matLine *ngIf="arrowBooleans[1]" [routerLink]="['codes']">
{{ 'labels.text.Codes are used to define drop down values' | translate }}
</p>
<div class="menu-list-item-content">
<div class="menu-left-section" [routerLink]="['codes']">
<mat-icon matListIcon>
<fa-icon icon="list-ul" size="sm"></fa-icon>
</mat-icon>
<div>
{{ 'labels.heading.Manage Codes' | translate }}
<p matLine *ngIf="arrowBooleans[1]" [routerLink]="['codes']" class="menu-explanation">
{{ 'labels.text.Codes are used to define drop down values' | translate }}
</p>
</div>
</div>
<div class="menu-right-section">
<fa-icon
(click)="arrowBooleansToggle(1); $event.stopPropagation()"
*ngIf="!arrowBooleans[1]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(1); $event.stopPropagation()"
*ngIf="arrowBooleans[1]"
icon="arrow-up"
size="md"
></fa-icon>
</div>
</div>
</mat-list-item>
</div>
<div #rolesandpermission>
<mat-list-item [routerLink]="['roles-and-permissions']">
<mat-icon matListIcon [routerLink]="['roles-and-permissions']">
<fa-icon icon="key" size="sm"></fa-icon>
</mat-icon>
<h4 matLine [routerLink]="['roles-and-permissions']">
{{ 'labels.heading.Manage Roles and Permissions' | translate }}
</h4>
<fa-icon
(click)="arrowBooleansToggle(2); $event.stopPropagation()"
*ngIf="!arrowBooleans[2]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(2); $event.stopPropagation()"
*ngIf="arrowBooleans[2]"
icon="arrow-up"
size="md"
></fa-icon>
<p matLine *ngIf="arrowBooleans[2]" [routerLink]="['roles-and-permissions']">
{{ 'labels.text.Define or modify roles and associated permissions' | translate }}
</p>
<div class="menu-list-item-content">
<div class="menu-left-section" [routerLink]="['roles-and-permissions']">
<mat-icon matListIcon>
<fa-icon icon="key" size="sm"></fa-icon>
</mat-icon>
<div matLine>
{{ 'labels.heading.Manage Roles and Permissions' | translate }}
<p
matLine
*ngIf="arrowBooleans[2]"
[routerLink]="['roles-and-permissions']"
class="menu-explanation"
>
{{ 'labels.text.Define or modify roles and associated permissions' | translate }}
</p>
</div>
</div>
<div class="menu-right-section">
<fa-icon
(click)="arrowBooleansToggle(2); $event.stopPropagation()"
*ngIf="!arrowBooleans[2]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(2); $event.stopPropagation()"
*ngIf="arrowBooleans[2]"
icon="arrow-up"
size="md"
></fa-icon>
</div>
</div>
</mat-list-item>
</div>
<div #makerCheckerTable>
<mat-list-item [routerLink]="['configure-mc-tasks']">
<mat-icon matListIcon [routerLink]="['configure-mc-tasks']">
<fa-icon icon="sitemap" size="sm"></fa-icon>
</mat-icon>
<h4 matLine [routerLink]="['configure-mc-tasks']">
{{ 'labels.heading.Configure Maker Checker Tasks' | translate }}
</h4>
<fa-icon
(click)="arrowBooleansToggle(3); $event.stopPropagation()"
*ngIf="!arrowBooleans[3]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(3); $event.stopPropagation()"
*ngIf="arrowBooleans[3]"
icon="arrow-up"
size="md"
></fa-icon>
<p matLine *ngIf="arrowBooleans[3]" [routerLink]="['configure-mc-tasks']">
{{ 'labels.text.Define or modify Maker Checker tasks' | translate }}
</p>
<div class="menu-list-item-content">
<div class="menu-left-section" [routerLink]="['configure-mc-tasks']">
<mat-icon matListIcon>
<fa-icon icon="sitemap" size="sm"></fa-icon>
</mat-icon>
<div matLine [routerLink]="['configure-mc-tasks']">
{{ 'labels.heading.Configure Maker Checker Tasks' | translate }}
<p matLine *ngIf="arrowBooleans[3]" [routerLink]="['configure-mc-tasks']" class="menu-explanation">
{{ 'labels.text.Define or modify Maker Checker tasks' | translate }}
</p>
</div>
</div>
<div class="menu-right-section">
<fa-icon
(click)="arrowBooleansToggle(3); $event.stopPropagation()"
*ngIf="!arrowBooleans[3]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(3); $event.stopPropagation()"
*ngIf="arrowBooleans[3]"
icon="arrow-up"
size="md"
></fa-icon>
</div>
</div>
</mat-list-item>
</div>
<mat-list-item [routerLink]="['hooks']">
<mat-icon matListIcon [routerLink]="['hooks']">
<fa-icon icon="anchor" size="sm"></fa-icon>
</mat-icon>
<h4 matLine [routerLink]="['hooks']">{{ 'labels.heading.Manage Hooks' | translate }}</h4>
<fa-icon
(click)="arrowBooleansToggle(4); $event.stopPropagation()"
*ngIf="!arrowBooleans[4]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(4); $event.stopPropagation()"
*ngIf="arrowBooleans[4]"
icon="arrow-up"
size="md"
></fa-icon>
<p matLine *ngIf="arrowBooleans[4]" [routerLink]="['hooks']">
{{ 'labels.text.Define Hooks' | translate }}
</p>
<div class="menu-list-item-content">
<div class="menu-left-section" [routerLink]="['hooks']">
<mat-icon matListIcon>
<fa-icon icon="anchor" size="sm"></fa-icon>
</mat-icon>
<div matLine>
{{ 'labels.heading.Manage Hooks' | translate }}
<p matLine *ngIf="arrowBooleans[4]" [routerLink]="['hooks']" class="menu-explanation">
{{ 'labels.text.Define Hooks' | translate }}
</p>
</div>
</div>
<div class="menu-right-section">
<fa-icon
(click)="arrowBooleansToggle(4); $event.stopPropagation()"
*ngIf="!arrowBooleans[4]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(4); $event.stopPropagation()"
*ngIf="arrowBooleans[4]"
icon="arrow-up"
size="md"
></fa-icon>
</div>
</div>
</mat-list-item>
<mat-list-item [routerLink]="['entity-to-entity-mapping']">
<mat-icon matListIcon [routerLink]="['entity-to-entity-mapping']">
<fa-icon icon="road" size="sm"></fa-icon>
</mat-icon>
<h4 matLine [routerLink]="['entity-to-entity-mapping']">
{{ 'labels.heading.Entity to Entity Mapping' | translate }}
</h4>
<fa-icon
(click)="arrowBooleansToggle(5); $event.stopPropagation()"
*ngIf="!arrowBooleans[5]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(5); $event.stopPropagation()"
*ngIf="arrowBooleans[5]"
icon="arrow-up"
size="md"
></fa-icon>
<p matLine *ngIf="arrowBooleans[5]" [routerLink]="['entity-to-entity-mapping']">
{{ 'labels.text.Define or modify entity to entity mappings' | translate }}
</p>
<div class="menu-list-item-content">
<div class="menu-left-section" [routerLink]="['entity-to-entity-mapping']">
<mat-icon matListIcon>
<fa-icon icon="road" size="sm"></fa-icon>
</mat-icon>
<div matLine>
{{ 'labels.heading.Entity to Entity Mapping' | translate }}
<p
matLine
*ngIf="arrowBooleans[5]"
[routerLink]="['entity-to-entity-mapping']"
class="menu-explanation"
>
{{ 'labels.text.Define or modify entity to entity mappings' | translate }}
</p>
</div>
</div>
<div class="menu-right-section">
<fa-icon
(click)="arrowBooleansToggle(5); $event.stopPropagation()"
*ngIf="!arrowBooleans[5]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(5); $event.stopPropagation()"
*ngIf="arrowBooleans[5]"
icon="arrow-up"
size="md"
></fa-icon>
</div>
</div>
</mat-list-item>
<mat-list-item [ngClass]="{ 'disabled-item': isDisabled }">
<mat-icon matListIcon>
<fa-icon icon="file-alt" size="sm"></fa-icon>
</mat-icon>
<h4 matLine>{{ 'labels.heading.Manage Surveys' | translate }}</h4>
<fa-icon
(click)="arrowBooleansToggle(6); $event.stopPropagation()"
*ngIf="!arrowBooleans[6]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(6); $event.stopPropagation()"
*ngIf="arrowBooleans[6]"
icon="arrow-up"
size="md"
></fa-icon>
<p matLine *ngIf="arrowBooleans[6]" [routerLink]="['surveys']">
{{ 'labels.text.Manage Surveys' | translate }}
</p>
<div class="menu-list-item-content">
<div class="menu-left-section">
<mat-icon matListIcon>
<fa-icon icon="file-alt" size="sm"></fa-icon>
</mat-icon>
<div matLine>
{{ 'labels.heading.Manage Surveys' | translate }}
<p matLine *ngIf="arrowBooleans[6]" class="menu-explanation">
{{ 'labels.text.Manage Surveys' | translate }}
</p>
</div>
</div>
<div class="menu-right-section">
<fa-icon
(click)="arrowBooleansToggle(6); $event.stopPropagation()"
*ngIf="!arrowBooleans[6]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(6); $event.stopPropagation()"
*ngIf="arrowBooleans[6]"
icon="arrow-up"
size="md"
></fa-icon>
</div>
</div>
</mat-list-item>
<mat-list-item [routerLink]="['external-events']" *mifosxHasPermission="'READ_EXTERNAL_EVENT_CONFIGURATION'">
<mat-icon matListIcon [routerLink]="['external-events']">
<fa-icon icon="anchor" size="sm"></fa-icon>
</mat-icon>
<h4 matLine [routerLink]="['external-events']">
{{ 'labels.heading.Manage External Events' | translate }}
</h4>
<fa-icon
(click)="arrowBooleansToggle(7); $event.stopPropagation()"
*ngIf="!arrowBooleans[7]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(7); $event.stopPropagation()"
*ngIf="arrowBooleans[7]"
icon="arrow-up"
size="md"
></fa-icon>
<p matLine *ngIf="arrowBooleans[7]" [routerLink]="['external-events']">
{{ 'labels.text.External Events configuration, to enable or disable' | translate }}
</p>
<div class="menu-list-item-content">
<div class="menu-left-section" [routerLink]="['external-events']">
<mat-icon matListIcon>
<fa-icon icon="anchor" size="sm"></fa-icon>
</mat-icon>
<div matLine>
{{ 'labels.heading.Manage External Events' | translate }}
<p matLine *ngIf="arrowBooleans[7]" [routerLink]="['external-events']" class="menu-explanation">
{{ 'labels.text.External Events configuration, to enable or disable' | translate }}
</p>
</div>
</div>
<div class="menu-right-section">
<fa-icon
(click)="arrowBooleansToggle(7); $event.stopPropagation()"
*ngIf="!arrowBooleans[7]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(7); $event.stopPropagation()"
*ngIf="arrowBooleans[7]"
icon="arrow-up"
size="md"
></fa-icon>
</div>
</div>
</mat-list-item>
</mat-nav-list>
</div>
<div fxFlex="50%">
<div class="flex-50">
<mat-nav-list>
<mat-list-item [routerLink]="['audit-trails']">
<mat-icon matListIcon [routerLink]="['audit-trails']">
<fa-icon icon="money-check" size="sm"></fa-icon>
</mat-icon>
<h4 matLine [routerLink]="['audit-trails']">{{ 'labels.heading.Audit Trails' | translate }}</h4>
<fa-icon
(click)="arrowBooleansToggle(8); $event.stopPropagation()"
*ngIf="!arrowBooleans[8]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(8); $event.stopPropagation()"
*ngIf="arrowBooleans[8]"
icon="arrow-up"
size="md"
></fa-icon>
<p matLine *ngIf="arrowBooleans[8]" [routerLink]="['audit-trails']">
{{ 'labels.text.Audit logs of all the activities' | translate }}
</p>
<div class="menu-list-item-content">
<div class="menu-left-section" [routerLink]="['audit-trails']">
<mat-icon matListIcon>
<fa-icon icon="money-check" size="sm"></fa-icon>
</mat-icon>
<div matLine>
{{ 'labels.heading.Audit Trails' | translate }}
<p matLine *ngIf="arrowBooleans[8]" [routerLink]="['audit-trails']" class="menu-explanation">
{{ 'labels.text.Audit logs of all the activities' | translate }}
</p>
</div>
</div>
<div class="menu-right-section">
<fa-icon
(click)="arrowBooleansToggle(8); $event.stopPropagation()"
*ngIf="!arrowBooleans[8]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(8); $event.stopPropagation()"
*ngIf="arrowBooleans[8]"
icon="arrow-up"
size="md"
></fa-icon>
</div>
</div>
</mat-list-item>
<div #manageReports>
<mat-list-item [routerLink]="['reports']">
<mat-icon matListIcon [routerLink]="['reports']">
<fa-icon icon="file-word" size="sm"></fa-icon>
</mat-icon>
<h4 matLine [routerLink]="['reports']">{{ 'labels.heading.Manage Reports' | translate }}</h4>
<fa-icon
(click)="arrowBooleansToggle(9); $event.stopPropagation()"
*ngIf="!arrowBooleans[9]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(9); $event.stopPropagation()"
*ngIf="arrowBooleans[9]"
icon="arrow-up"
size="md"
></fa-icon>
<p matLine *ngIf="arrowBooleans[9]" [routerLink]="['reports']">
{{ 'labels.text.Add new report and classify reports' | translate }}
</p>
<div class="menu-list-item-content">
<div class="menu-left-section" [routerLink]="['reports']">
<mat-icon matListIcon>
<fa-icon icon="file-word" size="sm"></fa-icon>
</mat-icon>
<div matLine>
{{ 'labels.heading.Manage Reports' | translate }}
<p matLine *ngIf="arrowBooleans[9]" [routerLink]="['reports']" class="menu-explanation">
{{ 'labels.text.Add new report and classify reports' | translate }}
</p>
</div>
</div>
<div class="menu-right-section">
<fa-icon
(click)="arrowBooleansToggle(9); $event.stopPropagation()"
*ngIf="!arrowBooleans[9]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(9); $event.stopPropagation()"
*ngIf="arrowBooleans[9]"
icon="arrow-up"
size="md"
></fa-icon>
</div>
</div>
</mat-list-item>
</div>
<mat-list-item [routerLink]="['manage-jobs']">
<mat-icon matListIcon [routerLink]="['manage-jobs']">
<fa-icon icon="clock" size="sm"></fa-icon>
</mat-icon>
<h4 matLine [routerLink]="['manage-jobs']">{{ 'labels.heading.Manage Jobs' | translate }}</h4>
<fa-icon
(click)="arrowBooleansToggle(10); $event.stopPropagation()"
*ngIf="!arrowBooleans[10]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(10); $event.stopPropagation()"
*ngIf="arrowBooleans[10]"
icon="arrow-up"
size="md"
></fa-icon>
<p matLine *ngIf="arrowBooleans[10]" [routerLink]="['manage-jobs']">
{{ 'labels.text.Manage Schedule and Workflow jobs, modify jobs' | translate }}
</p>
<div class="menu-list-item-content">
<div class="menu-left-section" [routerLink]="['manage-jobs']">
<mat-icon matListIcon>
<fa-icon icon="clock" size="sm"></fa-icon>
</mat-icon>
<div matLine>
{{ 'labels.heading.Manage Jobs' | translate }}
<p matLine *ngIf="arrowBooleans[10]" [routerLink]="['manage-jobs']" class="menu-explanation">
{{ 'labels.text.Manage Schedule and Workflow jobs, modify jobs' | translate }}
</p>
</div>
</div>
<div class="menu-right-section">
<fa-icon
(click)="arrowBooleansToggle(10); $event.stopPropagation()"
*ngIf="!arrowBooleans[10]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(10); $event.stopPropagation()"
*ngIf="arrowBooleans[10]"
icon="arrow-up"
size="md"
></fa-icon>
</div>
</div>
</mat-list-item>
<mat-list-item [routerLink]="['configurations']">
<mat-icon matListIcon [routerLink]="['configurations']">
<fa-icon icon="cogs" size="sm"></fa-icon>
</mat-icon>
<h4 matLine [routerLink]="['configurations']">{{ 'labels.heading.Configurations' | translate }}</h4>
<fa-icon
(click)="arrowBooleansToggle(11); $event.stopPropagation()"
*ngIf="!arrowBooleans[11]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(11); $event.stopPropagation()"
*ngIf="arrowBooleans[11]"
icon="arrow-up"
size="md"
></fa-icon>
<p matLine *ngIf="arrowBooleans[11]" [routerLink]="['configurations']">
{{ 'labels.text.Global configurations, Cache and Business Date' | translate }}
</p>
<div class="menu-list-item-content">
<div class="menu-left-section" [routerLink]="['configurations']">
<mat-icon>
<fa-icon icon="cogs" size="sm"></fa-icon>
</mat-icon>
<div matLine>
{{ 'labels.heading.Configurations' | translate }}
<p matLine *ngIf="arrowBooleans[11]" [routerLink]="['configurations']" class="menu-explanation">
{{ 'labels.text.Global configurations, Cache and Business Date' | translate }}
</p>
</div>
</div>
<div class="menu-right-section">
<fa-icon
(click)="arrowBooleansToggle(11); $event.stopPropagation()"
*ngIf="!arrowBooleans[11]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(11); $event.stopPropagation()"
*ngIf="arrowBooleans[11]"
icon="arrow-up"
size="md"
></fa-icon>
</div>
</div>
</mat-list-item>
<mat-list-item [routerLink]="['account-number-preferences']">
<mat-icon matListIcon [routerLink]="['account-number-preferences']">
<fa-icon icon="key" size="sm"></fa-icon>
</mat-icon>
<h4 matLine [routerLink]="['account-number-preferences']">
{{ 'labels.heading.Account Number Preferences' | translate }}
</h4>
<fa-icon
(click)="arrowBooleansToggle(12); $event.stopPropagation()"
*ngIf="!arrowBooleans[12]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(12); $event.stopPropagation()"
*ngIf="arrowBooleans[12]"
icon="arrow-up"
size="md"
></fa-icon>
<p matLine *ngIf="arrowBooleans[12]" [routerLink]="['account-number-preferences']">
{{ 'labels.text.Preferences for generating account numbers for client' | translate }}
</p>
<div class="menu-list-item-content">
<div class="menu-left-section" [routerLink]="['account-number-preferences']">
<mat-icon matListIcon>
<fa-icon icon="key" size="sm"></fa-icon>
</mat-icon>
<div matLine>
{{ 'labels.heading.Account Number Preferences' | translate }}
<p
matLine
*ngIf="arrowBooleans[12]"
[routerLink]="['account-number-preferences']"
class="menu-explanation"
>
{{ 'labels.text.Preferences for generating account numbers for client' | translate }}
</p>
</div>
</div>
<div class="menu-right-section">
<fa-icon
(click)="arrowBooleansToggle(12); $event.stopPropagation()"
*ngIf="!arrowBooleans[12]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(12); $event.stopPropagation()"
*ngIf="arrowBooleans[12]"
icon="arrow-up"
size="md"
></fa-icon>
</div>
</div>
</mat-list-item>
<mat-list-item [routerLink]="['external-services']">
<mat-icon matListIcon [routerLink]="['external-services']">
<fa-icon icon="cog" size="sm"></fa-icon>
</mat-icon>
<h4 matLine [routerLink]="['external-services']">{{ 'labels.heading.External Services' | translate }}</h4>
<fa-icon
(click)="arrowBooleansToggle(13); $event.stopPropagation()"
*ngIf="!arrowBooleans[13]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(13); $event.stopPropagation()"
*ngIf="arrowBooleans[13]"
icon="arrow-up"
size="md"
></fa-icon>
<p matLine *ngIf="arrowBooleans[13]" [routerLink]="['external-services']">
{{ 'labels.text.External Services Configuration' | translate }}
</p>
<div class="menu-list-item-content">
<div class="menu-left-section" [routerLink]="['external-services']">
<mat-icon matListIcon>
<fa-icon icon="cog" size="sm"></fa-icon>
</mat-icon>
<div matLine>
{{ 'labels.heading.External Services' | translate }}
<p matLine *ngIf="arrowBooleans[13]" [routerLink]="['external-services']" class="menu-explanation">
{{ 'labels.text.External Services Configuration' | translate }}
</p>
</div>
</div>
<div class="menu-right-section">
<fa-icon
(click)="arrowBooleansToggle(13); $event.stopPropagation()"
*ngIf="!arrowBooleans[13]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(13); $event.stopPropagation()"
*ngIf="arrowBooleans[13]"
icon="arrow-up"
size="md"
></fa-icon>
</div>
</div>
</mat-list-item>
<mat-list-item [ngClass]="{ 'disabled-item': isDisabled }">
<mat-icon matListIcon>
<fa-icon icon="key" size="sm"></fa-icon>
</mat-icon>
<h4 matLine>{{ 'labels.heading.Two-Factor Authentication' | translate }}</h4>
<fa-icon
(click)="arrowBooleansToggle(14); $event.stopPropagation()"
*ngIf="!arrowBooleans[14]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(14); $event.stopPropagation()"
*ngIf="arrowBooleans[14]"
icon="arrow-up"
size="md"
></fa-icon>
<p matLine *ngIf="arrowBooleans[14]">
{{ 'labels.text.Two-factor authentication configuration' | translate }}
</p>
<div class="menu-list-item-content">
<div class="menu-left-section">
<mat-icon matListIcon>
<fa-icon icon="key" size="sm"></fa-icon>
</mat-icon>
<div matLine>
{{ 'labels.heading.Two-Factor Authentication' | translate }}
<p matLine *ngIf="arrowBooleans[14]" class="menu-explanation">
{{ 'labels.text.Two-factor authentication configuration' | translate }}
</p>
</div>
</div>
<div class="menu-right-section">
<fa-icon
(click)="arrowBooleansToggle(14); $event.stopPropagation()"
*ngIf="!arrowBooleans[14]"
icon="arrow-down"
size="md"
></fa-icon>
<fa-icon
(click)="arrowBooleansToggle(14); $event.stopPropagation()"
*ngIf="arrowBooleans[14]"
icon="arrow-up"
size="md"
></fa-icon>
</div>
</div>
</mat-list-item>
</mat-nav-list>
</div>
@@ -365,7 +490,7 @@
<ng-template #templateDatatables let-popover="popover">
<h2>{{ 'labels.heading.Manage Data Tables' | translate }}</h2>
<p class="mw300">{{ 'labels.text.Mifos X data-tables allow the user to add custom fields' | 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>
@@ -381,7 +506,7 @@
<ng-template #templateCodes let-popover="popover">
<h2>{{ 'labels.heading.Manage Codes' | translate }}</h2>
<p class="mw300">{{ 'labels.text.Selection you can create new drop-downs and 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>
@@ -397,7 +522,7 @@
<ng-template #templateRolesandPermission let-popover="popover">
<h2>{{ 'labels.heading.Manage Roles and Permissions' | translate }}</h2>
<p class="mw300">{{ 'labels.text.Roles and Permissions allow the administrator to control access' | 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>
@@ -413,7 +538,7 @@
<ng-template #templateMakerCheckerTable let-popover="popover">
<h2>{{ 'labels.heading.Configure Maker-Checker Tasks' | translate }}</h2>
<p class="mw300">{{ 'labels.text.“Maker-Checker” principle requires every tasks' | 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>
@@ -429,7 +554,7 @@
<ng-template #templateConfigurations let-popover="popover">
<h2>{{ 'labels.heading.Configuration' | translate }}</h2>
<p class="mw300">{{ 'labels.text.Configurations page allows you to further customize' | 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>
@@ -445,7 +570,7 @@
<ng-template #templateSchedulerJobs let-popover="popover">
<h2>{{ 'labels.heading.Manage Scheduler Jobs' | translate }}</h2>
<p class="mw300">{{ 'labels.text.Scheduler Jobs can set batch jobs' | 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>
@@ -461,7 +586,7 @@
<ng-template #templateManageReports let-popover="popover">
<h2>{{ 'labels.heading.Manage Reports' | translate }}</h2>
<p class="mw300">{{ 'labels.text.Add customized reports and edit core reports' | 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>