feat: non-individual entity UI improvements — hide individual-only sections, fix legal form display, send extended fields to API
- Hide Family Members tab/section for non-individual entities in client view, create flow, and preview - Hide Financial & Classification section for non-individual entities in personal data and preview - Fix legal form column in clients list — fetch legalForm from client API for correct display - Add person/business icon before client name in list rows - Remove unsupportedNpd filter — send authorizedSignatory, additionalInfo, dateOfRegistration to API - Add registration number format hint (mat-hint) based on constitution type - Add spacing between verification row and constitution type dropdowns - Reduce table cell padding and prevent action buttons from being clipped - Add missing MPL-2.0 license headers Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
ab01111424
commit
b890d24bb7
@@ -6,587 +6,234 @@
|
||||
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
-->
|
||||
|
||||
<div class="container">
|
||||
<mat-card>
|
||||
<div class="layout-row responsive-column gap-20px">
|
||||
<div class="flex-50">
|
||||
<mat-nav-list>
|
||||
<div #datatables>
|
||||
<mat-list-item [routerLink]="['data-tables']">
|
||||
<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 }}
|
||||
@if (arrowBooleans[0]) {
|
||||
<p matLine [routerLink]="['data-tables']" class="menu-explanation">
|
||||
{{ 'labels.text.Add new extra fields to any entity' | translate }}
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
@if (!arrowBooleans[0]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(0); $event.stopPropagation()"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
@if (arrowBooleans[0]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(0); $event.stopPropagation()"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #codes>
|
||||
<mat-list-item matListIcon [routerLink]="['codes']">
|
||||
<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 }}
|
||||
@if (arrowBooleans[1]) {
|
||||
<p matLine [routerLink]="['codes']" class="menu-explanation">
|
||||
{{ 'labels.text.Codes are used to define drop down values' | translate }}
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
@if (!arrowBooleans[1]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(1); $event.stopPropagation()"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
@if (arrowBooleans[1]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(1); $event.stopPropagation()"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #rolesandpermission>
|
||||
<mat-list-item [routerLink]="['roles-and-permissions']">
|
||||
<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 }}
|
||||
@if (arrowBooleans[2]) {
|
||||
<p matLine [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">
|
||||
@if (!arrowBooleans[2]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(2); $event.stopPropagation()"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
@if (arrowBooleans[2]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(2); $event.stopPropagation()"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #makerCheckerTable>
|
||||
<mat-list-item [routerLink]="['configure-mc-tasks']">
|
||||
<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 }}
|
||||
@if (arrowBooleans[3]) {
|
||||
<p matLine [routerLink]="['configure-mc-tasks']" class="menu-explanation">
|
||||
{{ 'labels.text.Define or modify Maker Checker tasks' | translate }}
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
@if (!arrowBooleans[3]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(3); $event.stopPropagation()"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
@if (arrowBooleans[3]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(3); $event.stopPropagation()"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<mat-list-item [routerLink]="['hooks']">
|
||||
<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 }}
|
||||
@if (arrowBooleans[4]) {
|
||||
<p matLine [routerLink]="['hooks']" class="menu-explanation">
|
||||
{{ 'labels.text.Define Hooks' | translate }}
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
@if (!arrowBooleans[4]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(4); $event.stopPropagation()"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
@if (arrowBooleans[4]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(4); $event.stopPropagation()"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
|
||||
<mat-list-item [routerLink]="['entity-to-entity-mapping']">
|
||||
<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 }}
|
||||
@if (arrowBooleans[5]) {
|
||||
<p matLine [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">
|
||||
@if (!arrowBooleans[5]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(5); $event.stopPropagation()"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
@if (arrowBooleans[5]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(5); $event.stopPropagation()"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
|
||||
<mat-list-item [ngClass]="{ 'disabled-item': isDisabled }">
|
||||
<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 }}
|
||||
@if (arrowBooleans[6]) {
|
||||
<p matLine class="menu-explanation">
|
||||
{{ 'labels.text.Manage Surveys' | translate }}
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
@if (!arrowBooleans[6]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(6); $event.stopPropagation()"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
@if (arrowBooleans[6]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(6); $event.stopPropagation()"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
|
||||
<mat-list-item [routerLink]="['external-events']" *mifosxHasPermission="'READ_EXTERNAL_EVENT_CONFIGURATION'">
|
||||
<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 }}
|
||||
@if (arrowBooleans[7]) {
|
||||
<p matLine [routerLink]="['external-events']" class="menu-explanation">
|
||||
{{ 'labels.text.External Events configuration, to enable or disable' | translate }}
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
@if (!arrowBooleans[7]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(7); $event.stopPropagation()"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
@if (arrowBooleans[7]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(7); $event.stopPropagation()"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
|
||||
<mat-list-item [routerLink]="['system-information']">
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['system-information']">
|
||||
<mat-icon matListIcon>
|
||||
<fa-icon icon="info-circle" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.System Information' | translate }}
|
||||
@if (arrowBooleans[15]) {
|
||||
<p matLine [routerLink]="['system-information']" class="menu-explanation">
|
||||
{{ 'labels.text.View system version, server and licensing information' | translate }}
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
@if (!arrowBooleans[15]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(15); $event.stopPropagation()"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
@if (arrowBooleans[15]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(15); $event.stopPropagation()"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</mat-nav-list>
|
||||
</div>
|
||||
|
||||
<div class="flex-50">
|
||||
<mat-nav-list>
|
||||
<mat-list-item [routerLink]="['audit-trails']">
|
||||
<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 }}
|
||||
@if (arrowBooleans[8]) {
|
||||
<p matLine [routerLink]="['audit-trails']" class="menu-explanation">
|
||||
{{ 'labels.text.Audit logs of all the activities' | translate }}
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
@if (!arrowBooleans[8]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(8); $event.stopPropagation()"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
@if (arrowBooleans[8]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(8); $event.stopPropagation()"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
|
||||
<div #manageReports>
|
||||
<mat-list-item [routerLink]="['reports']">
|
||||
<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 }}
|
||||
@if (arrowBooleans[9]) {
|
||||
<p matLine [routerLink]="['reports']" class="menu-explanation">
|
||||
{{ 'labels.text.Add new report and classify reports' | translate }}
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
@if (!arrowBooleans[9]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(9); $event.stopPropagation()"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
@if (arrowBooleans[9]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(9); $event.stopPropagation()"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<mat-list-item [routerLink]="['manage-jobs']">
|
||||
<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 }}
|
||||
@if (arrowBooleans[10]) {
|
||||
<p matLine [routerLink]="['manage-jobs']" class="menu-explanation">
|
||||
{{ 'labels.text.Manage Schedule and Workflow jobs, modify jobs' | translate }}
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
@if (!arrowBooleans[10]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(10); $event.stopPropagation()"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
@if (arrowBooleans[10]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(10); $event.stopPropagation()"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
|
||||
<mat-list-item [routerLink]="['configurations']">
|
||||
<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 }}
|
||||
@if (arrowBooleans[11]) {
|
||||
<p matLine [routerLink]="['configurations']" class="menu-explanation">
|
||||
{{ 'labels.text.Global configurations, Cache and Business Date' | translate }}
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
@if (!arrowBooleans[11]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(11); $event.stopPropagation()"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
@if (arrowBooleans[11]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(11); $event.stopPropagation()"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
|
||||
<mat-list-item [routerLink]="['account-number-preferences']">
|
||||
<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 }}
|
||||
@if (arrowBooleans[12]) {
|
||||
<p matLine [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">
|
||||
@if (!arrowBooleans[12]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(12); $event.stopPropagation()"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
@if (arrowBooleans[12]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(12); $event.stopPropagation()"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
|
||||
<mat-list-item [routerLink]="['external-services']">
|
||||
<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 }}
|
||||
@if (arrowBooleans[13]) {
|
||||
<p matLine [routerLink]="['external-services']" class="menu-explanation">
|
||||
{{ 'labels.text.External Services Configuration' | translate }}
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
@if (!arrowBooleans[13]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(13); $event.stopPropagation()"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
@if (arrowBooleans[13]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(13); $event.stopPropagation()"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
|
||||
<mat-list-item [routerLink]="['about-us']">
|
||||
<div class="menu-list-item-content">
|
||||
<div class="menu-left-section" [routerLink]="['about-us']">
|
||||
<mat-icon matListIcon>
|
||||
<fa-icon icon="users" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<div matLine>
|
||||
{{ 'labels.heading.About Us' | translate }}
|
||||
@if (arrowBooleans[16]) {
|
||||
<p matLine [routerLink]="['about-us']" class="menu-explanation">
|
||||
{{ 'labels.text.Learn about the Mifos Initiative and our mission' | translate }}
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-right-section">
|
||||
@if (!arrowBooleans[16]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(16); $event.stopPropagation()"
|
||||
icon="arrow-down"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
@if (arrowBooleans[16]) {
|
||||
<fa-icon
|
||||
(click)="arrowBooleansToggle(16); $event.stopPropagation()"
|
||||
icon="arrow-up"
|
||||
size="md"
|
||||
></fa-icon>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</mat-list-item>
|
||||
</mat-nav-list>
|
||||
</div>
|
||||
<div class="sys-container">
|
||||
<!-- Page header -->
|
||||
<div class="sys-header">
|
||||
<div class="sys-header__icon">
|
||||
<i class="fas fa-cogs"></i>
|
||||
</div>
|
||||
</mat-card>
|
||||
<div>
|
||||
<h1 class="sys-header__title">{{ 'labels.heading.System' | translate }}</h1>
|
||||
<p class="sys-header__sub">Manage data tables, codes, roles, configurations and system settings</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Card Grid -->
|
||||
<div class="sys-grid">
|
||||
<!-- Manage Data Tables -->
|
||||
<div #datatables>
|
||||
<a class="sys-card" [routerLink]="['data-tables']">
|
||||
<div class="sys-card__icon sys-card__icon--blue">
|
||||
<i class="fas fa-table"></i>
|
||||
</div>
|
||||
<div class="sys-card__body">
|
||||
<h3 class="sys-card__title">{{ 'labels.heading.Manage Data tables' | translate }}</h3>
|
||||
<p class="sys-card__desc">{{ 'labels.text.Add new extra fields to any entity' | translate }}</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right sys-card__arrow"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Audit Trails -->
|
||||
<a class="sys-card" [routerLink]="['audit-trails']">
|
||||
<div class="sys-card__icon sys-card__icon--slate">
|
||||
<i class="fas fa-money-check"></i>
|
||||
</div>
|
||||
<div class="sys-card__body">
|
||||
<h3 class="sys-card__title">{{ 'labels.heading.Audit Trails' | translate }}</h3>
|
||||
<p class="sys-card__desc">{{ 'labels.text.Audit logs of all the activities' | translate }}</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right sys-card__arrow"></i>
|
||||
</a>
|
||||
|
||||
<!-- Manage Codes -->
|
||||
<div #codes>
|
||||
<a class="sys-card" [routerLink]="['codes']">
|
||||
<div class="sys-card__icon sys-card__icon--purple">
|
||||
<i class="fas fa-list-ul"></i>
|
||||
</div>
|
||||
<div class="sys-card__body">
|
||||
<h3 class="sys-card__title">{{ 'labels.heading.Manage Codes' | translate }}</h3>
|
||||
<p class="sys-card__desc">{{ 'labels.text.Codes are used to define drop down values' | translate }}</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right sys-card__arrow"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Manage Reports -->
|
||||
<div #manageReports>
|
||||
<a class="sys-card" [routerLink]="['reports']">
|
||||
<div class="sys-card__icon sys-card__icon--indigo">
|
||||
<i class="fas fa-file-alt"></i>
|
||||
</div>
|
||||
<div class="sys-card__body">
|
||||
<h3 class="sys-card__title">{{ 'labels.heading.Manage Reports' | translate }}</h3>
|
||||
<p class="sys-card__desc">{{ 'labels.text.Add new report and classify reports' | translate }}</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right sys-card__arrow"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Manage Roles and Permissions -->
|
||||
<div #rolesandpermission>
|
||||
<a class="sys-card" [routerLink]="['roles-and-permissions']">
|
||||
<div class="sys-card__icon sys-card__icon--amber">
|
||||
<i class="fas fa-key"></i>
|
||||
</div>
|
||||
<div class="sys-card__body">
|
||||
<h3 class="sys-card__title">{{ 'labels.heading.Manage Roles and Permissions' | translate }}</h3>
|
||||
<p class="sys-card__desc">{{ 'labels.text.Define or modify roles and associated permissions' | translate }}</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right sys-card__arrow"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Manage Jobs -->
|
||||
<a class="sys-card" [routerLink]="['manage-jobs']">
|
||||
<div class="sys-card__icon sys-card__icon--teal">
|
||||
<i class="fas fa-clock"></i>
|
||||
</div>
|
||||
<div class="sys-card__body">
|
||||
<h3 class="sys-card__title">{{ 'labels.heading.Manage Jobs' | translate }}</h3>
|
||||
<p class="sys-card__desc">{{ 'labels.text.Manage Schedule and Workflow jobs, modify jobs' | translate }}</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right sys-card__arrow"></i>
|
||||
</a>
|
||||
|
||||
<!-- Configure Maker Checker Tasks -->
|
||||
<div #makerCheckerTable>
|
||||
<a class="sys-card" [routerLink]="['configure-mc-tasks']">
|
||||
<div class="sys-card__icon sys-card__icon--green">
|
||||
<i class="fas fa-sitemap"></i>
|
||||
</div>
|
||||
<div class="sys-card__body">
|
||||
<h3 class="sys-card__title">{{ 'labels.heading.Configure Maker Checker Tasks' | translate }}</h3>
|
||||
<p class="sys-card__desc">{{ 'labels.text.Define or modify Maker Checker tasks' | translate }}</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right sys-card__arrow"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Configurations -->
|
||||
<div #configurations>
|
||||
<a class="sys-card" [routerLink]="['configurations']">
|
||||
<div class="sys-card__icon sys-card__icon--orange">
|
||||
<i class="fas fa-cogs"></i>
|
||||
</div>
|
||||
<div class="sys-card__body">
|
||||
<h3 class="sys-card__title">{{ 'labels.heading.Configurations' | translate }}</h3>
|
||||
<p class="sys-card__desc">{{ 'labels.text.Global configurations, Cache and Business Date' | translate }}</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right sys-card__arrow"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Manage Hooks -->
|
||||
<a class="sys-card" [routerLink]="['hooks']">
|
||||
<div class="sys-card__icon sys-card__icon--cyan">
|
||||
<i class="fas fa-anchor"></i>
|
||||
</div>
|
||||
<div class="sys-card__body">
|
||||
<h3 class="sys-card__title">{{ 'labels.heading.Manage Hooks' | translate }}</h3>
|
||||
<p class="sys-card__desc">{{ 'labels.text.Define Hooks' | translate }}</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right sys-card__arrow"></i>
|
||||
</a>
|
||||
|
||||
<!-- Account Number Preferences -->
|
||||
<a class="sys-card" [routerLink]="['account-number-preferences']">
|
||||
<div class="sys-card__icon sys-card__icon--emerald">
|
||||
<i class="fas fa-key"></i>
|
||||
</div>
|
||||
<div class="sys-card__body">
|
||||
<h3 class="sys-card__title">{{ 'labels.heading.Account Number Preferences' | translate }}</h3>
|
||||
<p class="sys-card__desc">{{ 'labels.text.Preferences for generating account numbers for client' | translate }}</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right sys-card__arrow"></i>
|
||||
</a>
|
||||
|
||||
<!-- Entity to Entity Mapping -->
|
||||
<a class="sys-card" [routerLink]="['entity-to-entity-mapping']">
|
||||
<div class="sys-card__icon sys-card__icon--rose">
|
||||
<i class="fas fa-road"></i>
|
||||
</div>
|
||||
<div class="sys-card__body">
|
||||
<h3 class="sys-card__title">{{ 'labels.heading.Entity to Entity Mapping' | translate }}</h3>
|
||||
<p class="sys-card__desc">{{ 'labels.text.Define or modify entity to entity mappings' | translate }}</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right sys-card__arrow"></i>
|
||||
</a>
|
||||
|
||||
<!-- External Services -->
|
||||
<a class="sys-card" [routerLink]="['external-services']">
|
||||
<div class="sys-card__icon sys-card__icon--indigo">
|
||||
<i class="fas fa-cog"></i>
|
||||
</div>
|
||||
<div class="sys-card__body">
|
||||
<h3 class="sys-card__title">{{ 'labels.heading.External Services' | translate }}</h3>
|
||||
<p class="sys-card__desc">{{ 'labels.text.External Services Configuration' | translate }}</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right sys-card__arrow"></i>
|
||||
</a>
|
||||
|
||||
<!-- Manage Surveys (disabled) -->
|
||||
<div class="sys-card sys-card--disabled">
|
||||
<div class="sys-card__icon sys-card__icon--slate">
|
||||
<i class="fas fa-file-alt"></i>
|
||||
</div>
|
||||
<div class="sys-card__body">
|
||||
<h3 class="sys-card__title">{{ 'labels.heading.Manage Surveys' | translate }}</h3>
|
||||
<p class="sys-card__desc">{{ 'labels.text.Manage Surveys' | translate }}</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right sys-card__arrow"></i>
|
||||
</div>
|
||||
|
||||
<!-- About Us -->
|
||||
<a class="sys-card" [routerLink]="['about-us']">
|
||||
<div class="sys-card__icon sys-card__icon--blue">
|
||||
<i class="fas fa-users"></i>
|
||||
</div>
|
||||
<div class="sys-card__body">
|
||||
<h3 class="sys-card__title">{{ 'labels.heading.About Us' | translate }}</h3>
|
||||
<p class="sys-card__desc">{{ 'labels.text.Learn about the Mifos Initiative and our mission' | translate }}</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right sys-card__arrow"></i>
|
||||
</a>
|
||||
|
||||
<!-- Manage External Events -->
|
||||
<a class="sys-card" [routerLink]="['external-events']" *mifosxHasPermission="'READ_EXTERNAL_EVENT_CONFIGURATION'">
|
||||
<div class="sys-card__icon sys-card__icon--purple">
|
||||
<i class="fas fa-anchor"></i>
|
||||
</div>
|
||||
<div class="sys-card__body">
|
||||
<h3 class="sys-card__title">{{ 'labels.heading.Manage External Events' | translate }}</h3>
|
||||
<p class="sys-card__desc">{{ 'labels.text.External Events configuration, to enable or disable' | translate }}</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right sys-card__arrow"></i>
|
||||
</a>
|
||||
|
||||
<!-- System Information -->
|
||||
<a class="sys-card" [routerLink]="['system-information']">
|
||||
<div class="sys-card__icon sys-card__icon--teal">
|
||||
<i class="fas fa-info-circle"></i>
|
||||
</div>
|
||||
<div class="sys-card__body">
|
||||
<h3 class="sys-card__title">{{ 'labels.heading.System Information' | translate }}</h3>
|
||||
<p class="sys-card__desc">{{ 'labels.text.View system version, server and licensing information' | translate }}</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right sys-card__arrow"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Popover Templates (kept for configuration wizard compatibility) -->
|
||||
<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 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>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepDatatables()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepDatatables()">
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">{{ 'labels.buttons.Close' | translate }}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepDatatables()">{{ 'labels.buttons.Back' | translate }}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepDatatables()">{{ 'labels.buttons.Next' | translate }}</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
@@ -594,15 +241,9 @@
|
||||
<h2>{{ 'labels.heading.Manage Codes' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Selection you can create new drop-downs and edit' | translate }}</p>
|
||||
<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>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepCodes()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepCodes()">
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">{{ 'labels.buttons.Close' | translate }}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepCodes()">{{ 'labels.buttons.Back' | translate }}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepCodes()">{{ 'labels.buttons.Next' | translate }}</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
@@ -610,31 +251,19 @@
|
||||
<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 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>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepRolesandPermission()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepRolesandPermission()">
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">{{ 'labels.buttons.Close' | translate }}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepRolesandPermission()">{{ 'labels.buttons.Back' | translate }}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepRolesandPermission()">{{ 'labels.buttons.Next' | translate }}</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<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>
|
||||
<p class="mw300">{{ 'labels.text."Maker-Checker" principle requires every tasks' | translate }}</p>
|
||||
<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>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepMakerCheckerTable()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepMakerCheckerTable()">
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">{{ 'labels.buttons.Close' | translate }}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepMakerCheckerTable()">{{ 'labels.buttons.Back' | translate }}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepMakerCheckerTable()">{{ 'labels.buttons.Next' | translate }}</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
@@ -642,15 +271,9 @@
|
||||
<h2>{{ 'labels.heading.Configuration' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Configurations page allows you to further customize' | translate }}</p>
|
||||
<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>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepConfigurations()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepConfigurations()">
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">{{ 'labels.buttons.Close' | translate }}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepConfigurations()">{{ 'labels.buttons.Back' | translate }}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepConfigurations()">{{ 'labels.buttons.Next' | translate }}</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
@@ -658,15 +281,9 @@
|
||||
<h2>{{ 'labels.heading.Manage Scheduler Jobs' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Scheduler Jobs can set batch jobs' | translate }}</p>
|
||||
<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>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepSchedulerJobs()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepSchedulerJobs()">
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">{{ 'labels.buttons.Close' | translate }}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepSchedulerJobs()">{{ 'labels.buttons.Back' | translate }}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepSchedulerJobs()">{{ 'labels.buttons.Next' | translate }}</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
@@ -674,14 +291,8 @@
|
||||
<h2>{{ 'labels.heading.Manage Reports' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Add customized reports and edit core reports' | translate }}</p>
|
||||
<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>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepManageReports()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepManageReports()">
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">{{ 'labels.buttons.Close' | translate }}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepManageReports()">{{ 'labels.buttons.Back' | translate }}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepManageReports()">{{ 'labels.buttons.Next' | translate }}</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
Reference in New Issue
Block a user