diff --git a/src/app/shared/features/aip/components/presentationals/aip-form/shared-aip-form.presentational.ts b/src/app/shared/features/aip/components/presentationals/aip-form/shared-aip-form.presentational.ts index 29aa1b2c62ac7a2634a79ab8e199be090ef8c90e..14bfe1dfd88b8ba89f3049a603d20eb28822f6f4 100644 --- a/src/app/shared/features/aip/components/presentationals/aip-form/shared-aip-form.presentational.ts +++ b/src/app/shared/features/aip/components/presentationals/aip-form/shared-aip-form.presentational.ts @@ -136,6 +136,7 @@ export class SharedAipFormPresentational extends AbstractFormPresentational<Aip> } protected _bindFormTo(aip: Aip): void { + const archiveSize = this._isAipCollection(aip) ? aip.collectionArchiveSize : aip.archiveSize; this.form = this._fb.group({ [this.formDefinition.id]: [aip.resId, []], [this.formDefinition.organizationalUnitId]: [aip.info.organizationalUnitId, []], @@ -150,7 +151,7 @@ export class SharedAipFormPresentational extends AbstractFormPresentational<Aip> [this.formDefinition.complianceLevel]: [aip.info.complianceLevel, []], [this.formDefinition.container]: [aip.archiveContainer, []], [this.formDefinition.archive]: [aip.archiveId, []], - [this.formDefinition.size]: [FileUtil.transformFileSize(aip.archiveSize), []], + [this.formDefinition.size]: [FileUtil.transformFileSize(archiveSize), []], [this.formDefinition.files]: [aip.archiveFileNumber, []], [this.formDefinition.metadataVersion]: [aip.info.metadataVersion, []], [this.formDefinition.lastArchiving]: [DateUtil.convertDateToDateTimeString(new Date(aip.lastArchiving)), []], @@ -183,6 +184,10 @@ export class SharedAipFormPresentational extends AbstractFormPresentational<Aip> this.currentPackageButtonNavigatorType = undefined; } + private _isAipCollection(aip: Aip): boolean { + return aip.collectionSize > 0; + } + extractChecksumCheck(checksum: ChecksumCheck): string { let lastChecksumCheckNever = StringUtil.stringEmpty; let lastChecksumCheckSuccess = StringUtil.stringEmpty; diff --git a/src/app/shared/features/aip/components/routables/aip-list/shared-aip-list.routable.ts b/src/app/shared/features/aip/components/routables/aip-list/shared-aip-list.routable.ts index b540d54f45f7c4fff9f057a1f6c3749b1867992d..cb31e35f9970c486abd94cd496a18e173936b364 100644 --- a/src/app/shared/features/aip/components/routables/aip-list/shared-aip-list.routable.ts +++ b/src/app/shared/features/aip/components/routables/aip-list/shared-aip-list.routable.ts @@ -86,6 +86,7 @@ import { AbstractListRoutable, DataTableActions, DataTableBulkActions, + DataTableColumns, DataTableFieldTypeEnum, isNotNullNorUndefined, isNullOrUndefined, @@ -131,10 +132,12 @@ export class SharedAipListRoutable extends AbstractListRoutable<Aip, SharedAipSt storagion_number: number | undefined = undefined; - archivalUnit(value: SharedAipRoutesEnum): void { - if (value === SharedAipRoutesEnum.aipTabUnit) { + currentTab: SharedAipRoutesEnum | undefined = undefined; + + archivalUnit(): void { + if (this.currentTab === SharedAipRoutesEnum.aipTabUnit) { this.getAipListWithParameter(true); - } else if (value === SharedAipRoutesEnum.aipTabCollections) { + } else if (this.currentTab === SharedAipRoutesEnum.aipTabCollections) { this.getAipListWithParameter(false); } else { this.getAipListWithParameter(undefined); @@ -341,8 +344,9 @@ export class SharedAipListRoutable extends AbstractListRoutable<Aip, SharedAipSt } private _updateListWithCurrentTab(): void { - const tab = this._route.snapshot.paramMap.get(SharedAipRoutesEnum.tabWithoutPrefixParam); - this.archivalUnit(tab as SharedAipRoutesEnum); + this.currentTab = this._route.snapshot.paramMap.get(SharedAipRoutesEnum.tabWithoutPrefixParam) as SharedAipRoutesEnum; + this.archivalUnit(); + this.defineColumns(); } override showDetail(model: Aip): void { @@ -358,17 +362,22 @@ export class SharedAipListRoutable extends AbstractListRoutable<Aip, SharedAipSt } } - defineColumns(): void { - this.columns = [ - { - field: "info.name" as any, - header: LabelTranslateEnum.nameLabel, + private _getSizeColumn(): DataTableColumns<Aip>[] { + if (this.currentTab === SharedAipRoutesEnum.aipTabCollections) { + return [{ + field: "smartCollectionArchiveSize", + header: LabelTranslateEnum.size, type: DataTableFieldTypeEnum.string, order: OrderEnum.none, + filterableField: "archiveSize", + sortableField: "archiveSize", isFilterable: true, isSortable: true, - }, - { + alignment: "right", + width: "100px", + }]; + } else { + return [{ field: "smartSize", header: LabelTranslateEnum.size, type: DataTableFieldTypeEnum.string, @@ -379,7 +388,22 @@ export class SharedAipListRoutable extends AbstractListRoutable<Aip, SharedAipSt isSortable: true, alignment: "right", width: "100px", + }]; + } + + } + + defineColumns(): void { + this.columns = [ + { + field: "info.name" as any, + header: LabelTranslateEnum.nameLabel, + type: DataTableFieldTypeEnum.string, + order: OrderEnum.none, + isFilterable: true, + isSortable: true, }, + ...this._getSizeColumn(), { field: "archiveFileNumber", header: LabelTranslateEnum.files,