- 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>
90 lines
3.6 KiB
HTML
90 lines
3.6 KiB
HTML
<!--
|
|
Copyright since 2025 Mifos Initiative
|
|
|
|
This Source Code Form is subject to the terms of the Mozilla Public
|
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
-->
|
|
|
|
<mat-card class="container">
|
|
<!-- Header Bar -->
|
|
<div class="table-header">
|
|
<div class="table-title-group">
|
|
<h2 class="table-title">
|
|
<i class="fas fa-chevron-right"></i>
|
|
{{ 'labels.heading.AdHocQuery' | translate }}
|
|
</h2>
|
|
</div>
|
|
|
|
<div class="table-actions">
|
|
<mat-form-field class="table-search" appearance="outline">
|
|
<i matPrefix class="fas fa-search"></i>
|
|
<input matInput placeholder="{{ 'labels.inputs.Filter' | translate }}" (keyup)="applyFilter($event.target.value)" />
|
|
</mat-form-field>
|
|
|
|
<div class="table-buttons">
|
|
<button mat-flat-button color="primary" [routerLink]="['create']" class="btn-create" *mifosxHasPermission="'CREATE_ADHOC'">
|
|
<fa-icon icon="plus"></fa-icon>
|
|
{{ 'labels.buttons.Create AdHoc Query' | translate }}
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Table -->
|
|
<div class="table-container">
|
|
<table mat-table [dataSource]="dataSource" matSort class="modern-table">
|
|
<ng-container matColumnDef="name">
|
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.name' | translate }}</th>
|
|
<td mat-cell *matCellDef="let adhocquery">{{ adhocquery.name }}</td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="query">
|
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.SQL Query' | translate }}</th>
|
|
<td mat-cell *matCellDef="let adhocquery">{{ adhocquery.query }}</td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="tableName">
|
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Table Affected' | translate }}</th>
|
|
<td mat-cell *matCellDef="let adhocquery">{{ adhocquery.tableName }}</td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="email">
|
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Email' | translate }}</th>
|
|
<td mat-cell *matCellDef="let adhocquery">{{ adhocquery.email }}</td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="reportRunFrequency">
|
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>
|
|
{{ 'labels.inputs.Report Run Frequency' | translate }}
|
|
</th>
|
|
<td mat-cell *matCellDef="let adhocquery">{{ adhocquery.reportRunFrequency }}</td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="isActive">
|
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Status' | translate }}</th>
|
|
<td mat-cell *matCellDef="let adhocquery">
|
|
<div [className]="adhocquery.isActive === true ? 'true' : 'false'">
|
|
<fa-icon
|
|
matTooltip="{{ adhocquery.isActive === true ? 'Active' : 'Inactive' }}"
|
|
matTooltipPosition="right"
|
|
icon="circle"
|
|
size="lg"
|
|
></fa-icon>
|
|
</div>
|
|
</td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="createdBy">
|
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Created By' | translate }}</th>
|
|
<td mat-cell *matCellDef="let adhocquery">{{ adhocquery.createdBy }}</td>
|
|
</ng-container>
|
|
|
|
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
|
<tr mat-row *matRowDef="let row; columns: displayedColumns" [routerLink]="[row.id]" class="table-row"></tr>
|
|
</table>
|
|
|
|
<mat-paginator [pageSizeOptions]="[10, 25, 50, 100]" showFirstLastButtons></mat-paginator>
|
|
</div>
|
|
</mat-card>
|