diff --git a/src-ui/src/app/components/document-list/document-list.component.ts b/src-ui/src/app/components/document-list/document-list.component.ts index f345c7c3e..03c250182 100644 --- a/src-ui/src/app/components/document-list/document-list.component.ts +++ b/src-ui/src/app/components/document-list/document-list.component.ts @@ -209,6 +209,7 @@ export class DocumentListComponent takeUntil(this.unsubscribeNotifier) ) .subscribe((queryParams) => { + this.updateDisplayCustomFields() if (queryParams.has('view')) { // loading a saved view on /documents this.loadViewConfig(parseInt(queryParams.get('view'))) diff --git a/src-ui/src/app/services/document-list-view.service.spec.ts b/src-ui/src/app/services/document-list-view.service.spec.ts index 2319d91aa..73d0bc429 100644 --- a/src-ui/src/app/services/document-list-view.service.spec.ts +++ b/src-ui/src/app/services/document-list-view.service.spec.ts @@ -591,4 +591,18 @@ describe('DocumentListViewService', () => { ) ) }) + + it('should not filter out custom fields if settings not initialized', () => { + const customFields = ['custom_field_1', 'custom_field_2'] + documentListViewService.displayFields = customFields as any + settingsService.displayFieldsInitialized = false + expect(documentListViewService.displayFields).toEqual(customFields) + jest.spyOn(settingsService, 'allDisplayFields', 'get').mockReturnValue([ + { id: DisplayField.ADDED, name: 'Added' }, + { id: DisplayField.TITLE, name: 'Title' }, + { id: 'custom_field_1', name: 'Custom Field 1' }, + ] as any) + settingsService.displayFieldsInitialized = true + expect(documentListViewService.displayFields).toEqual(['custom_field_1']) + }) }) diff --git a/src-ui/src/app/services/document-list-view.service.ts b/src-ui/src/app/services/document-list-view.service.ts index 715095266..677dcdb57 100644 --- a/src-ui/src/app/services/document-list-view.service.ts +++ b/src-ui/src/app/services/document-list-view.service.ts @@ -420,10 +420,13 @@ export class DocumentListViewService { if (!this.activeListViewState.displayFields) { fields = fields.filter((f) => f !== DisplayField.ADDED) } - return fields.filter( - (field) => - this.settings.allDisplayFields.find((f) => f.id === field) !== undefined - ) + return this.settings.displayFieldsInitialized + ? fields.filter( + (field) => + this.settings.allDisplayFields.find((f) => f.id === field) !== + undefined + ) + : fields } set displayFields(fields: DisplayField[]) { diff --git a/src-ui/src/app/services/settings.service.ts b/src-ui/src/app/services/settings.service.ts index 4a411bafc..7e6710701 100644 --- a/src-ui/src/app/services/settings.service.ts +++ b/src-ui/src/app/services/settings.service.ts @@ -268,6 +268,7 @@ export class SettingsService { public get allDisplayFields(): Array<{ id: DisplayField; name: string }> { return this._allDisplayFields } + public displayFieldsInitialized: boolean = false constructor( rendererFactory: RendererFactory2, @@ -361,7 +362,10 @@ export class SettingsService { } }) ) + this.displayFieldsInitialized = true }) + } else { + this.displayFieldsInitialized = true } }