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:
Aditya
2026-04-04 15:10:51 +05:30
co-authored by Claude Opus 4.6
parent ab01111424
commit b890d24bb7
522 changed files with 51991 additions and 21885 deletions
+240 -629
View File
@@ -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>