fix table view

This commit is contained in:
Efstratios Giannopoulos 2024-05-01 13:45:27 +03:00
parent 5c4292d735
commit fc9a4134e7
2 changed files with 47 additions and 11 deletions

View File

@ -1,17 +1,27 @@
import { DatePipe } from "@angular/common"; import { DatePipe } from "@angular/common";
import { Pipe, PipeTransform } from "@angular/core"; import { Pipe, PipeTransform } from "@angular/core";
import { DescriptionTemplateFieldType } from "../common/enum/description-template-field-type"; import { DescriptionTemplateFieldType } from "../common/enum/description-template-field-type";
import { Reference } from "../model/reference/reference"; import { DescriptionTemplateField, DescriptionTemplateLabelAndMultiplicityData, DescriptionTemplateRadioBoxData, DescriptionTemplateReferenceTypeData, DescriptionTemplateSelectData } from "../model/description-template/description-template";
import { DescriptionTemplateField, DescriptionTemplateRadioBoxData, DescriptionTemplateReferenceTypeData, DescriptionTemplateSelectData } from "../model/description-template/description-template";
import { DescriptionFieldPersist } from "../model/description/description"; import { DescriptionFieldPersist } from "../model/description/description";
import { Observable, of } from "rxjs"; import { Observable, map, of } from "rxjs";
import { TagService } from "../services/tag/tag.service";
import { Guid } from "@common/types/guid";
import { DmpService } from "../services/dmp/dmp.service";
import { DescriptionService } from "../services/description/description.service";
import { StorageFileService } from "../services/storage-file/storage-file.service";
import { nameof } from "ts-simple-nameof";
import { StorageFile } from "../model/storage-file/storage-file";
@Pipe({ @Pipe({
name: 'fieldValue' name: 'fieldValue'
}) })
export class FieldValuePipe implements PipeTransform { export class FieldValuePipe implements PipeTransform {
constructor(private date: DatePipe) { constructor(private date: DatePipe,
private tagService: TagService,
private dmpService: DmpService,
private storageFileService: StorageFileService,
private descriptionService: DescriptionService) {
} }
transform(controlValue: DescriptionFieldPersist, field: DescriptionTemplateField): Observable<string> { transform(controlValue: DescriptionFieldPersist, field: DescriptionTemplateField): Observable<string> {
@ -57,11 +67,37 @@ export class FieldValuePipe implements PipeTransform {
} }
break; break;
} }
// case DescriptionTemplateFieldType.TAGS: case DescriptionTemplateFieldType.TAGS: {
// return this.parseJson(value); if (controlValue.textListValue && controlValue.textListValue.length > 0) {
// case DescriptionTemplateFieldType.INTERNAL_ENTRIES_DMPS: return this.tagService.query(this.tagService.buildAutocompleteLookup(null, null, controlValue.textListValue.map(x => Guid.parse(x)))).pipe(map(x => x.items?.map(y=> y.label).join(',')));
// case DescriptionTemplateFieldType.INTERNAL_ENTRIES_DESCRIPTIONS: }
// return this.parseJson(value, 'label'); break;
}
case DescriptionTemplateFieldType.INTERNAL_ENTRIES_DMPS: {
const data = <DescriptionTemplateLabelAndMultiplicityData>field.data;
if (!data?.multipleSelect && controlValue.textValue && controlValue.textValue.length > 0) {
return this.dmpService.query(this.dmpService.buildAutocompleteLookup(null, null, [Guid.parse(controlValue.textValue)])).pipe(map(x => x.items?.map(y=> y.label).join(',')));
} else if (data?.multipleSelect && controlValue.references && controlValue.textListValue && controlValue.textListValue.length > 0) {
return this.dmpService.query(this.dmpService.buildAutocompleteLookup(null, null, controlValue.textListValue.map(x => Guid.parse(x)))).pipe(map(x => x.items?.map(y=> y.label).join(',')));
}
break;
}
case DescriptionTemplateFieldType.INTERNAL_ENTRIES_DESCRIPTIONS:
const data = <DescriptionTemplateLabelAndMultiplicityData>field.data;
if (!data?.multipleSelect && controlValue.textValue && controlValue.textValue.length > 0) {
return this.descriptionService.query(this.descriptionService.buildAutocompleteLookup(null, null, [Guid.parse(controlValue.textValue)])).pipe(map(x => x.items?.map(y=> y.label).join(',')));
} else if (data?.multipleSelect && controlValue.references && controlValue.textListValue && controlValue.textListValue.length > 0) {
return this.descriptionService.query(this.descriptionService.buildAutocompleteLookup(null, null, controlValue.textListValue.map(x => Guid.parse(x)))).pipe(map(x => x.items?.map(y=> y.label).join(',')));
}
break;
case DescriptionTemplateFieldType.UPLOAD: {
if (controlValue.textValue && controlValue.textValue.length > 0) {
return this.storageFileService.getSingle(Guid.parse(controlValue.textValue), [
nameof<StorageFile>(x => x.name)
]).pipe(map(x => x.name));
}
break;
}
case DescriptionTemplateFieldType.DATASET_IDENTIFIER: case DescriptionTemplateFieldType.DATASET_IDENTIFIER:
case DescriptionTemplateFieldType.VALIDATION: case DescriptionTemplateFieldType.VALIDATION:
if (controlValue.externalIdentifier?.identifier) { if (controlValue.externalIdentifier?.identifier) {
@ -72,7 +108,7 @@ export class FieldValuePipe implements PipeTransform {
return of(null); return of(null);
} }
} }
return null; return of(null);
} }
public parseJson(value: any, field: string = 'name') { public parseJson(value: any, field: string = 'name') {