Client subtype cannot be selected while editing datatables

This commit is contained in:
Jose Alberto Hernandez
2022-07-28 17:04:48 +02:00
committed by Arnold Gálovics
parent 7f9cd7f300
commit 74fa92d81b
2 changed files with 31 additions and 8 deletions
@@ -13,7 +13,7 @@
<input matInput required formControlName="datatableName"> <input matInput required formControlName="datatableName">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="40%"> <mat-form-field fxFlex="20%">
<mat-label>Application Table Name</mat-label> <mat-label>Application Table Name</mat-label>
<mat-select required formControlName="apptableName"> <mat-select required formControlName="apptableName">
<mat-option *ngFor="let appTable of appTableData" [value]="appTable.value"> <mat-option *ngFor="let appTable of appTableData" [value]="appTable.value">
@@ -25,6 +25,14 @@
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="20%" *ngIf="showEntitySubType">
<mat-label>Entity SubType</mat-label>
<mat-select formControlName="entitySubType">
<mat-option *ngFor="let entitySubType of entitySubTypeData" [value]="entitySubType.value">
{{ entitySubType.displayValue }}
</mat-option>
</mat-select>
</mat-form-field>
</div> </div>
<br> <br>
@@ -72,10 +80,10 @@
<ng-container matColumnDef="actions"> <ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Actions </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> Actions </th>
<td mat-cell *matCellDef="let column" fxLayoutGap="15%"> <td mat-cell *matCellDef="let column" fxLayoutGap="15%">
<button type="button" color="primary" mat-icon-button (click)="editColumn(column)"> <button type="button" color="primary" mat-icon-button (click)="editColumn(column)" *ngIf="!column.system">
<fa-icon icon="edit" size="lg"></fa-icon> <fa-icon icon="edit" size="lg"></fa-icon>
</button> </button>
<button type="button" color="warn" mat-icon-button (click)="deleteColumn(column)"> <button type="button" color="warn" mat-icon-button (click)="deleteColumn(column)" *ngIf="!column.system">
<fa-icon icon="trash" size="lg"></fa-icon> <fa-icon icon="trash" size="lg"></fa-icon>
</button> </button>
</td> </td>
@@ -86,14 +94,14 @@
</table> </table>
<mat-paginator [pageSizeOptions]="[10, 25, 50, 100]" showFirstLastButtons></mat-paginator> <mat-paginator [pageSizeOptions]="[10, 25]" showFirstLastButtons></mat-paginator>
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../']">Cancel</button>
<button mat-raised-button color="primary" <button mat-raised-button color="primary"
[disabled]="!dataTableForm.valid || dataTableForm.pristine && !isFormEdited" *mifosxHasPermission="'UPDATE_DATATABLE'">Submit</button> [disabled]="!isFormEdited" *mifosxHasPermission="'UPDATE_DATATABLE'">Submit</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -11,7 +11,7 @@ import { MatTableDataSource } from '@angular/material/table';
import { SystemService } from '../../system.service'; import { SystemService } from '../../system.service';
/** Data Imports */ /** Data Imports */
import { appTableData } from '../app-table-data'; import { appTableData, entitySubTypeData } from '../app-table-data';
/** Custom Components */ /** Custom Components */
import { ColumnDialogComponent } from '../column-dialog/column-dialog.component'; import { ColumnDialogComponent } from '../column-dialog/column-dialog.component';
@@ -31,6 +31,8 @@ export class EditDataTableComponent implements OnInit {
dataTableForm: FormGroup; dataTableForm: FormGroup;
/** Data Table Data. */ /** Data Table Data. */
dataTableData: any; dataTableData: any;
entitySubTypeData = entitySubTypeData;
showEntitySubType: boolean;
/** Column Data. */ /** Column Data. */
columnData: any[]; columnData: any[];
/** Application Table Data. */ /** Application Table Data. */
@@ -40,10 +42,14 @@ export class EditDataTableComponent implements OnInit {
/** Data Table Changes Data. */ /** Data Table Changes Data. */
dataTableChangesData: { dataTableChangesData: {
apptableName: string, apptableName: string,
entitySubType: string,
dropColumns?: { name: string }[], dropColumns?: { name: string }[],
changeColumns: { name: string, newName?: string, code?: string, newCode?: string, mandatory: boolean, length?: number }[], changeColumns: { name: string, newName?: string, code?: string, newCode?: string, mandatory: boolean, length?: number }[],
addColumns?: { name?: string, type?: string, code?: string, mandatory?: boolean, length?: number }[] addColumns?: { name?: string, type?: string, code?: string, mandatory?: boolean, length?: number }[]
} = { apptableName: '', changeColumns: [], addColumns: [], dropColumns: [] }; } = {
apptableName: '', changeColumns: [], addColumns: [], dropColumns: [],
entitySubType: ''
};
/** Data passed to dialog. */ /** Data passed to dialog. */
dataForDialog: { dataForDialog: {
columnName: string, columnName: string,
@@ -86,6 +92,9 @@ export class EditDataTableComponent implements OnInit {
private dialog: MatDialog) { private dialog: MatDialog) {
this.route.data.subscribe((data: { dataTable: any, columnCodes: any }) => { this.route.data.subscribe((data: { dataTable: any, columnCodes: any }) => {
this.dataTableData = data.dataTable; this.dataTableData = data.dataTable;
this.dataTableData.columnHeaderData.forEach((item: any) => {
item.system = ['created_at', 'updated_at'].includes(item.columnName);
});
this.columnData = this.dataTableData.columnHeaderData; this.columnData = this.dataTableData.columnHeaderData;
this.dataForDialog.columnCodes = data.columnCodes; this.dataForDialog.columnCodes = data.columnCodes;
}); });
@@ -98,6 +107,9 @@ export class EditDataTableComponent implements OnInit {
this.initData(); this.initData();
this.createDataTableForm(); this.createDataTableForm();
this.setColumns(); this.setColumns();
this.dataTableForm.controls.apptableName.valueChanges.subscribe((value: any) => {
this.showEntitySubType = (value === 'm_client');
});
} }
/** /**
@@ -115,10 +127,12 @@ export class EditDataTableComponent implements OnInit {
initData() { initData() {
this.columnData.shift(); this.columnData.shift();
this.dataTableChangesData.apptableName = this.dataTableData.applicationTableName; this.dataTableChangesData.apptableName = this.dataTableData.applicationTableName;
this.dataTableChangesData.entitySubType = this.dataTableData.entitySubType;
for (let index = 0; index < this.columnData.length; index++) { for (let index = 0; index < this.columnData.length; index++) {
this.columnData[index].columnDisplayType = this.getColumnType(this.columnData[index].columnDisplayType); this.columnData[index].columnDisplayType = this.getColumnType(this.columnData[index].columnDisplayType);
this.columnData[index].type = 'existing'; this.columnData[index].type = 'existing';
} }
this.showEntitySubType = (this.dataTableData.applicationTableName === 'm_client');
} }
/** /**
@@ -127,7 +141,8 @@ export class EditDataTableComponent implements OnInit {
createDataTableForm() { createDataTableForm() {
this.dataTableForm = this.formBuilder.group({ this.dataTableForm = this.formBuilder.group({
'datatableName': [{ value: this.dataTableData.registeredTableName, disabled: true }, Validators.required], 'datatableName': [{ value: this.dataTableData.registeredTableName, disabled: true }, Validators.required],
'apptableName': [this.dataTableData.applicationTableName, Validators.required] 'apptableName': [{ value: this.dataTableData.applicationTableName, disabled: true }, Validators.required],
'entitySubType': [{ value: this.dataTableData.entitySubType, disabled: true }]
}); });
} }