fix: display CodeLookup values instead of IDs in datatable view (#2896)

Added empty check: parts[1] && parts[1].trim() to ensure the part after _cd_ exists and is not empty (line)
This commit is contained in:
Shubham Kumar
2025-12-13 16:25:49 -06:00
committed by GitHub
parent 4c00e5824d
commit e6bb867424
8 changed files with 95 additions and 13 deletions
@@ -235,6 +235,11 @@ export class DatatableMultiRowComponent implements OnInit, OnDestroy, OnChanges
if (typeof value === 'number') {
value = this.numberFormat.transform(value);
}
} else if (columnDisplayType === 'CODELOOKUP') {
if (columnHeader.columnValues && value !== null && value !== undefined) {
const codeValue = columnHeader.columnValues.find((cv: any) => cv.id === value);
value = codeValue ? codeValue.value : value;
}
}
return true;
}
@@ -25,8 +25,7 @@
@for (columnHeader of dataObject.columnHeaders; track columnHeader; let i = $index) {
<div class="flex-fill" [ngClass]="setAttributeClass(columnHeader.columnName)">
<div class="mat-body-strong left flex-40">
{{ columnHeader.columnDisplayName }}
{{ getInputName(columnHeader.columnName) }}
{{ datatables.toDisplayLabel(columnHeader.columnName) }}
</div>
<div class="right flex-60">
@switch (getColumnType(columnHeader.columnDisplayType, columnHeader.columnType)) {
@@ -50,6 +49,11 @@
{{ dataObject.data[0].row[i] | formatNumber }}
</span>
}
@case ('CODELOOKUP') {
<span>
{{ datatables.getCodeLookupValue(columnHeader, dataObject.data[0].row[i]) }}
</span>
}
@case ('TEXT') {
<span class="long-text">
{{ dataObject.data[0].row[i] }}
@@ -20,8 +20,6 @@
.system-defined {
margin-top: 3px;
color: $status-approved !important;
font-weight: 100;
}
.long-text {
@@ -43,7 +43,7 @@ export class DatatableSingleRowComponent implements OnInit {
private dateUtils = inject(Dates);
private dialog = inject(MatDialog);
private settingsService = inject(SettingsService);
private datatables = inject(Datatables);
public datatables = inject(Datatables);
private systemService = inject(SystemService);
@Input() dataObject: any;
@@ -123,7 +123,8 @@ export class DatatableSingleRowComponent implements OnInit {
const data = {
title: 'Edit ' + this.datatableName + ' for ' + this.entityType,
formfields: formfields,
layout: { addButtonText: 'Save' }
layout: { addButtonText: 'Submit' },
pristine: false
};
const editDialogRef = this.dialog.open(FormDialogComponent, { data, width: '50rem' });
editDialogRef.afterClosed().subscribe((response: any) => {
@@ -182,6 +183,9 @@ export class DatatableSingleRowComponent implements OnInit {
case 'DECIMAL': {
return columnDisplayType;
}
case 'CODELOOKUP': {
return columnDisplayType;
}
case 'TEXT': {
if (columnType === 'JSON') {
return 'JSON';