From 858ec87f2f115d5bc73cf9e4d260750c3d9eb2bf Mon Sep 17 00:00:00 2001 From: Kristof De Langhe Date: Thu, 20 Feb 2025 14:14:03 +0100 Subject: [PATCH 1/9] 126853: Themeable SubmissionSectionContainerComponent and SubmissionFormFooterComponent --- ...themed-submission-form-footer.component.ts | 27 +++++++++++++++++ .../form/submission-form.component.html | 8 ++--- .../themed-section-container.component.ts | 29 +++++++++++++++++++ src/app/submission/submission.module.ts | 4 +++ .../submission-form-footer.component.html | 0 .../submission-form-footer.component.scss | 0 .../submission-form-footer.component.ts | 15 ++++++++++ .../section-container.component.html | 0 .../section-container.component.scss | 0 .../container/section-container.component.ts | 15 ++++++++++ src/themes/custom/lazy-theme.module.ts | 4 +++ 11 files changed, 98 insertions(+), 4 deletions(-) create mode 100644 src/app/submission/form/footer/themed-submission-form-footer.component.ts create mode 100644 src/app/submission/sections/container/themed-section-container.component.ts create mode 100644 src/themes/custom/app/submission/form/footer/submission-form-footer.component.html create mode 100644 src/themes/custom/app/submission/form/footer/submission-form-footer.component.scss create mode 100644 src/themes/custom/app/submission/form/footer/submission-form-footer.component.ts create mode 100644 src/themes/custom/app/submission/sections/container/section-container.component.html create mode 100644 src/themes/custom/app/submission/sections/container/section-container.component.scss create mode 100644 src/themes/custom/app/submission/sections/container/section-container.component.ts diff --git a/src/app/submission/form/footer/themed-submission-form-footer.component.ts b/src/app/submission/form/footer/themed-submission-form-footer.component.ts new file mode 100644 index 0000000000..041a090f32 --- /dev/null +++ b/src/app/submission/form/footer/themed-submission-form-footer.component.ts @@ -0,0 +1,27 @@ +import { ThemedComponent } from '../../../shared/theme-support/themed.component'; +import { SubmissionFormFooterComponent } from './submission-form-footer.component'; +import { Component, Input } from '@angular/core'; + +@Component({ + selector: 'ds-themed-submission-form-footer', + styleUrls: [], + templateUrl: '../../../shared/theme-support/themed.component.html', +}) +export class ThemedSubmissionFormFooterComponent extends ThemedComponent { + @Input() submissionId: string; + + protected inAndOutputNames: (keyof SubmissionFormFooterComponent & keyof this)[] = ['submissionId']; + + protected getComponentName(): string { + return 'SubmissionFormFooterComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../../../themes/${themeName}/app/submission/form/footer/submission-form-footer.component`); + } + + protected importUnthemedComponent(): Promise { + return import(`./submission-form-footer.component`); + } + +} diff --git a/src/app/submission/form/submission-form.component.html b/src/app/submission/form/submission-form.component.html index 4a916cfe23..9ca8090564 100644 --- a/src/app/submission/form/submission-form.component.html +++ b/src/app/submission/form/submission-form.component.html @@ -28,12 +28,12 @@
- +
diff --git a/src/app/submission/sections/container/themed-section-container.component.ts b/src/app/submission/sections/container/themed-section-container.component.ts new file mode 100644 index 0000000000..11ec6b63d7 --- /dev/null +++ b/src/app/submission/sections/container/themed-section-container.component.ts @@ -0,0 +1,29 @@ +import { ThemedComponent } from '../../../shared/theme-support/themed.component'; +import { SubmissionSectionContainerComponent } from './section-container.component'; +import { Component, Input } from '@angular/core'; +import { SectionDataObject } from '../models/section-data.model'; + +@Component({ + selector: 'ds-themed-submission-section-container', + styleUrls: [], + templateUrl: '../../../shared/theme-support/themed.component.html', +}) +export class ThemedSubmissionSectionContainerComponent extends ThemedComponent { + @Input() collectionId: string; + @Input() sectionData: SectionDataObject; + @Input() submissionId: string; + + protected inAndOutputNames: (keyof SubmissionSectionContainerComponent & keyof this)[] = ['collectionId', 'sectionData', 'submissionId']; + + protected getComponentName(): string { + return 'SubmissionSectionContainerComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../../../themes/${themeName}/app/submission/sections/container/section-container.component`); + } + + protected importUnthemedComponent(): Promise { + return import(`./section-container.component`); + } +} diff --git a/src/app/submission/submission.module.ts b/src/app/submission/submission.module.ts index cf0ab2b369..8807a76fe4 100644 --- a/src/app/submission/submission.module.ts +++ b/src/app/submission/submission.module.ts @@ -67,6 +67,8 @@ import { } from './sections/sherpa-policies/metadata-information/metadata-information.component'; import { SectionFormOperationsService } from './sections/form/section-form-operations.service'; import {SubmissionSectionIdentifiersComponent} from './sections/identifiers/section-identifiers.component'; +import { ThemedSubmissionSectionContainerComponent } from './sections/container/themed-section-container.component'; +import { ThemedSubmissionFormFooterComponent } from './form/footer/themed-submission-form-footer.component'; const ENTRY_COMPONENTS = [ // put only entry components that use custom decorator @@ -106,6 +108,8 @@ const DECLARATIONS = [ PublicationInformationComponent, MetadataInformationComponent, ThemedSubmissionSectionUploadFileComponent, + ThemedSubmissionSectionContainerComponent, + ThemedSubmissionFormFooterComponent, ]; @NgModule({ diff --git a/src/themes/custom/app/submission/form/footer/submission-form-footer.component.html b/src/themes/custom/app/submission/form/footer/submission-form-footer.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/submission/form/footer/submission-form-footer.component.scss b/src/themes/custom/app/submission/form/footer/submission-form-footer.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/submission/form/footer/submission-form-footer.component.ts b/src/themes/custom/app/submission/form/footer/submission-form-footer.component.ts new file mode 100644 index 0000000000..3a93410edf --- /dev/null +++ b/src/themes/custom/app/submission/form/footer/submission-form-footer.component.ts @@ -0,0 +1,15 @@ +import { + SubmissionFormFooterComponent as BaseComponent +} from '../../../../../../app/submission/form/footer/submission-form-footer.component'; +import { Component } from '@angular/core'; + +@Component({ + selector: 'ds-submission-form-footer', + // styleUrls: ['./submission-form-footer.component.scss'], + styleUrls: ['../../../../../../app/submission/form/footer/submission-form-footer.component.scss'], + // templateUrl: './submission-form-footer.component.html' + templateUrl: '../../../../../../app/submission/form/footer/submission-form-footer.component.html' +}) +export class SubmissionFormFooterComponent extends BaseComponent { + +} diff --git a/src/themes/custom/app/submission/sections/container/section-container.component.html b/src/themes/custom/app/submission/sections/container/section-container.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/submission/sections/container/section-container.component.scss b/src/themes/custom/app/submission/sections/container/section-container.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/submission/sections/container/section-container.component.ts b/src/themes/custom/app/submission/sections/container/section-container.component.ts new file mode 100644 index 0000000000..fcb6855f78 --- /dev/null +++ b/src/themes/custom/app/submission/sections/container/section-container.component.ts @@ -0,0 +1,15 @@ +import { + SubmissionSectionContainerComponent as BaseComponent +} from '../../../../../../app/submission/sections/container/section-container.component'; +import { Component } from '@angular/core'; + +@Component({ + selector: 'ds-submission-upload-section-file', + // styleUrls: ['./section-container.component.scss'], + styleUrls: ['../../../../../../app/submission/sections/container/section-container.component.scss'], + // templateUrl: './section-container.component.html' + templateUrl: '../../../../../../app/submission/sections/container/section-container.component.html' +}) +export class SubmissionSectionContainerComponent extends BaseComponent { + +} diff --git a/src/themes/custom/lazy-theme.module.ts b/src/themes/custom/lazy-theme.module.ts index edb3f5478c..a52ba8f04a 100644 --- a/src/themes/custom/lazy-theme.module.ts +++ b/src/themes/custom/lazy-theme.module.ts @@ -156,6 +156,8 @@ import { ItemStatusComponent } from './app/item-page/edit-item-page/item-status/ import { EditBitstreamPageComponent } from './app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component'; import { FormModule } from '../../app/shared/form/form.module'; import { RequestCopyModule } from 'src/app/request-copy/request-copy.module'; +import { SubmissionSectionContainerComponent } from './app/submission/sections/container/section-container.component'; +import { SubmissionFormFooterComponent } from './app/submission/form/footer/submission-form-footer.component'; const DECLARATIONS = [ FileSectionComponent, @@ -239,6 +241,8 @@ const DECLARATIONS = [ SubmissionSectionUploadFileComponent, ItemStatusComponent, EditBitstreamPageComponent, + SubmissionSectionContainerComponent, + SubmissionFormFooterComponent, ]; @NgModule({ From 261af2a2f53417e59063dc8a38007c14015e5333 Mon Sep 17 00:00:00 2001 From: Kristof De Langhe Date: Mon, 3 Mar 2025 10:30:16 +0100 Subject: [PATCH 2/9] 126853: ThemedSubmissionFormComponent --- .../edit/submission-edit.component.html | 4 +- .../form/themed-submission-form.component.ts | 44 +++++++++++++++++++ src/app/submission/submission.module.ts | 2 + .../form/submission-form.component.html | 0 .../form/submission-form.component.scss | 0 .../form/submission-form.component.ts | 15 +++++++ src/themes/custom/lazy-theme.module.ts | 2 + 7 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 src/app/submission/form/themed-submission-form.component.ts create mode 100644 src/themes/custom/app/submission/form/submission-form.component.html create mode 100644 src/themes/custom/app/submission/form/submission-form.component.scss create mode 100644 src/themes/custom/app/submission/form/submission-form.component.ts diff --git a/src/app/submission/edit/submission-edit.component.html b/src/app/submission/edit/submission-edit.component.html index 9c0e9eae72..71702d8c7d 100644 --- a/src/app/submission/edit/submission-edit.component.html +++ b/src/app/submission/edit/submission-edit.component.html @@ -1,10 +1,10 @@
- + [submissionId]="submissionId">
diff --git a/src/app/submission/form/themed-submission-form.component.ts b/src/app/submission/form/themed-submission-form.component.ts new file mode 100644 index 0000000000..96b5ecebd5 --- /dev/null +++ b/src/app/submission/form/themed-submission-form.component.ts @@ -0,0 +1,44 @@ +import { ThemedComponent } from '../../shared/theme-support/themed.component'; +import { SubmissionFormComponent } from './submission-form.component'; +import { Component, Input } from '@angular/core'; +import { Item } from '../../core/shared/item.model'; +import { WorkspaceitemSectionsObject } from '../../core/submission/models/workspaceitem-sections.model'; +import { SubmissionError } from '../objects/submission-error.model'; +import { SubmissionDefinitionsModel } from '../../core/config/models/config-submission-definitions.model'; + +@Component({ + selector: 'ds-themed-submission-form', + styleUrls: [], + templateUrl: '../../shared/theme-support/themed.component.html', +}) +export class ThemedSubmissionFormComponent extends ThemedComponent { + @Input() collectionId: string; + + @Input() item: Item; + + @Input() collectionModifiable: boolean | null = null; + + @Input() sections: WorkspaceitemSectionsObject; + + @Input() submissionErrors: SubmissionError; + + @Input() selfUrl: string; + + @Input() submissionDefinition: SubmissionDefinitionsModel; + + @Input() submissionId: string; + + protected inAndOutputNames: (keyof SubmissionFormComponent & keyof this)[] = ['collectionId', 'item', 'collectionModifiable', 'sections', 'submissionErrors', 'selfUrl', 'submissionDefinition', 'submissionId']; + + protected getComponentName(): string { + return 'SubmissionFormComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../../themes/${themeName}/app/submission/form/submission-form.component`); + } + + protected importUnthemedComponent(): Promise { + return import(`./submission-form.component`); + } +} diff --git a/src/app/submission/submission.module.ts b/src/app/submission/submission.module.ts index 8807a76fe4..c710b3b297 100644 --- a/src/app/submission/submission.module.ts +++ b/src/app/submission/submission.module.ts @@ -69,6 +69,7 @@ import { SectionFormOperationsService } from './sections/form/section-form-opera import {SubmissionSectionIdentifiersComponent} from './sections/identifiers/section-identifiers.component'; import { ThemedSubmissionSectionContainerComponent } from './sections/container/themed-section-container.component'; import { ThemedSubmissionFormFooterComponent } from './form/footer/themed-submission-form-footer.component'; +import { ThemedSubmissionFormComponent } from './form/themed-submission-form.component'; const ENTRY_COMPONENTS = [ // put only entry components that use custom decorator @@ -110,6 +111,7 @@ const DECLARATIONS = [ ThemedSubmissionSectionUploadFileComponent, ThemedSubmissionSectionContainerComponent, ThemedSubmissionFormFooterComponent, + ThemedSubmissionFormComponent, ]; @NgModule({ diff --git a/src/themes/custom/app/submission/form/submission-form.component.html b/src/themes/custom/app/submission/form/submission-form.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/submission/form/submission-form.component.scss b/src/themes/custom/app/submission/form/submission-form.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/submission/form/submission-form.component.ts b/src/themes/custom/app/submission/form/submission-form.component.ts new file mode 100644 index 0000000000..15b52a2657 --- /dev/null +++ b/src/themes/custom/app/submission/form/submission-form.component.ts @@ -0,0 +1,15 @@ +import { + SubmissionFormComponent as BaseComponent +} from '../../../../../app/submission/form/submission-form.component'; +import { Component } from '@angular/core'; + +@Component({ + selector: 'ds-submission-form', + // styleUrls: ['./submission-form.component.scss'], + styleUrls: ['../../../../../app/submission/form/submission-form.component.scss'], + // templateUrl: './submission-form.component.html' + templateUrl: '../../../../../app/submission/form/submission-form.component.html' +}) +export class SubmissionFormComponent extends BaseComponent { + +} diff --git a/src/themes/custom/lazy-theme.module.ts b/src/themes/custom/lazy-theme.module.ts index a52ba8f04a..de7aea3243 100644 --- a/src/themes/custom/lazy-theme.module.ts +++ b/src/themes/custom/lazy-theme.module.ts @@ -158,6 +158,7 @@ import { FormModule } from '../../app/shared/form/form.module'; import { RequestCopyModule } from 'src/app/request-copy/request-copy.module'; import { SubmissionSectionContainerComponent } from './app/submission/sections/container/section-container.component'; import { SubmissionFormFooterComponent } from './app/submission/form/footer/submission-form-footer.component'; +import { SubmissionFormComponent } from './app/submission/form/submission-form.component'; const DECLARATIONS = [ FileSectionComponent, @@ -243,6 +244,7 @@ const DECLARATIONS = [ EditBitstreamPageComponent, SubmissionSectionContainerComponent, SubmissionFormFooterComponent, + SubmissionFormComponent, ]; @NgModule({ From da2c98aa3224b2a2af48530ab142196e7aa8b874 Mon Sep 17 00:00:00 2001 From: Zahraa Chreim Date: Fri, 14 Mar 2025 13:45:43 +0200 Subject: [PATCH 3/9] Fix lint issues --- .../edit/submission-edit.component.html | 4 +- .../edit/submission-edit.component.ts | 4 +- .../submission-form-footer.component.ts | 2 +- ...themed-submission-form-footer.component.ts | 10 +- .../form/submission-form.component.html | 8 +- .../form/submission-form.component.ts | 10 +- .../form/themed-submission-form.component.ts | 16 ++- .../container/section-container.component.ts | 2 +- .../themed-section-container.component.ts | 12 +- src/app/submission/submission.module.ts | 130 ++++++++---------- .../edit/submission-edit.component.ts | 4 +- .../submission-form-footer.component.ts | 10 +- .../form/submission-form.component.ts | 10 +- .../container/section-container.component.ts | 10 +- src/themes/custom/lazy-theme.module.ts | 6 +- 15 files changed, 119 insertions(+), 119 deletions(-) diff --git a/src/app/submission/edit/submission-edit.component.html b/src/app/submission/edit/submission-edit.component.html index 71702d8c7d..9c0e9eae72 100644 --- a/src/app/submission/edit/submission-edit.component.html +++ b/src/app/submission/edit/submission-edit.component.html @@ -1,10 +1,10 @@
- + [submissionId]="submissionId">
diff --git a/src/app/submission/edit/submission-edit.component.ts b/src/app/submission/edit/submission-edit.component.ts index 822818ee24..c2a914c85d 100644 --- a/src/app/submission/edit/submission-edit.component.ts +++ b/src/app/submission/edit/submission-edit.component.ts @@ -36,7 +36,7 @@ import { isNotNull, } from '../../shared/empty.util'; import { NotificationsService } from '../../shared/notifications/notifications.service'; -import { SubmissionFormComponent } from '../form/submission-form.component'; +import { ThemedSubmissionFormComponent } from '../form/themed-submission-form.component'; import { SubmissionError } from '../objects/submission-error.model'; import { SubmissionService } from '../submission.service'; import parseSectionErrors from '../utils/parseSectionErrors'; @@ -50,7 +50,7 @@ import parseSectionErrors from '../utils/parseSectionErrors'; templateUrl: './submission-edit.component.html', standalone: true, imports: [ - SubmissionFormComponent, + ThemedSubmissionFormComponent, ], }) export class SubmissionEditComponent implements OnDestroy, OnInit { diff --git a/src/app/submission/form/footer/submission-form-footer.component.ts b/src/app/submission/form/footer/submission-form-footer.component.ts index 8645003783..a61e2599a2 100644 --- a/src/app/submission/form/footer/submission-form-footer.component.ts +++ b/src/app/submission/form/footer/submission-form-footer.component.ts @@ -24,7 +24,7 @@ import { SubmissionService } from '../../submission.service'; * This component represents submission form footer bar. */ @Component({ - selector: 'ds-submission-form-footer', + selector: 'ds-base-submission-form-footer', styleUrls: ['./submission-form-footer.component.scss'], templateUrl: './submission-form-footer.component.html', standalone: true, diff --git a/src/app/submission/form/footer/themed-submission-form-footer.component.ts b/src/app/submission/form/footer/themed-submission-form-footer.component.ts index 041a090f32..82240abcf5 100644 --- a/src/app/submission/form/footer/themed-submission-form-footer.component.ts +++ b/src/app/submission/form/footer/themed-submission-form-footer.component.ts @@ -1,11 +1,17 @@ +import { + Component, + Input, +} from '@angular/core'; + import { ThemedComponent } from '../../../shared/theme-support/themed.component'; import { SubmissionFormFooterComponent } from './submission-form-footer.component'; -import { Component, Input } from '@angular/core'; @Component({ - selector: 'ds-themed-submission-form-footer', + selector: 'ds-submission-form-footer', styleUrls: [], templateUrl: '../../../shared/theme-support/themed.component.html', + standalone: true, + imports: [SubmissionFormFooterComponent], }) export class ThemedSubmissionFormFooterComponent extends ThemedComponent { @Input() submissionId: string; diff --git a/src/app/submission/form/submission-form.component.html b/src/app/submission/form/submission-form.component.html index fc424ed60d..802d0e1c4c 100644 --- a/src/app/submission/form/submission-form.component.html +++ b/src/app/submission/form/submission-form.component.html @@ -31,18 +31,18 @@
@if ((isLoading() | async)) { - + } @for (object of $any(submissionSections | async); track object) { - - + }
@if ((isLoading() | async) !== true) { } diff --git a/src/app/submission/form/submission-form.component.ts b/src/app/submission/form/submission-form.component.ts index 74c262befc..7a1d67f871 100644 --- a/src/app/submission/form/submission-form.component.ts +++ b/src/app/submission/form/submission-form.component.ts @@ -38,14 +38,14 @@ import { UploaderOptions } from '../../shared/upload/uploader/uploader-options.m import { SectionVisibility } from '../objects/section-visibility.model'; import { SubmissionError } from '../objects/submission-error.model'; import { SubmissionObjectEntry } from '../objects/submission-objects.reducer'; -import { SubmissionSectionContainerComponent } from '../sections/container/section-container.component'; +import { ThemedSubmissionSectionContainerComponent } from '../sections/container/themed-section-container.component'; import { SectionDataObject } from '../sections/models/section-data.model'; import { SectionsService } from '../sections/sections.service'; import { SectionsType } from '../sections/sections-type'; import { VisibilityType } from '../sections/visibility-type'; import { SubmissionService } from '../submission.service'; import { SubmissionFormCollectionComponent } from './collection/submission-form-collection.component'; -import { SubmissionFormFooterComponent } from './footer/submission-form-footer.component'; +import { ThemedSubmissionFormFooterComponent } from './footer/themed-submission-form-footer.component'; import { SubmissionFormSectionAddComponent } from './section-add/submission-form-section-add.component'; import { ThemedSubmissionUploadFilesComponent } from './submission-upload-files/themed-submission-upload-files.component'; @@ -53,14 +53,14 @@ import { ThemedSubmissionUploadFilesComponent } from './submission-upload-files/ * This component represents the submission form. */ @Component({ - selector: 'ds-submission-form', + selector: 'ds-base-submission-form', styleUrls: ['./submission-form.component.scss'], templateUrl: './submission-form.component.html', imports: [ CommonModule, ThemedLoadingComponent, - SubmissionSectionContainerComponent, - SubmissionFormFooterComponent, + ThemedSubmissionSectionContainerComponent, + ThemedSubmissionFormFooterComponent, ThemedSubmissionUploadFilesComponent, SubmissionFormCollectionComponent, SubmissionFormSectionAddComponent, diff --git a/src/app/submission/form/themed-submission-form.component.ts b/src/app/submission/form/themed-submission-form.component.ts index 96b5ecebd5..b7414aa8e9 100644 --- a/src/app/submission/form/themed-submission-form.component.ts +++ b/src/app/submission/form/themed-submission-form.component.ts @@ -1,15 +1,21 @@ -import { ThemedComponent } from '../../shared/theme-support/themed.component'; -import { SubmissionFormComponent } from './submission-form.component'; -import { Component, Input } from '@angular/core'; +import { + Component, + Input, +} from '@angular/core'; + +import { SubmissionDefinitionsModel } from '../../core/config/models/config-submission-definitions.model'; import { Item } from '../../core/shared/item.model'; import { WorkspaceitemSectionsObject } from '../../core/submission/models/workspaceitem-sections.model'; +import { ThemedComponent } from '../../shared/theme-support/themed.component'; import { SubmissionError } from '../objects/submission-error.model'; -import { SubmissionDefinitionsModel } from '../../core/config/models/config-submission-definitions.model'; +import { SubmissionFormComponent } from './submission-form.component'; @Component({ - selector: 'ds-themed-submission-form', + selector: 'ds-submission-form', styleUrls: [], templateUrl: '../../shared/theme-support/themed.component.html', + standalone: true, + imports: [SubmissionFormComponent], }) export class ThemedSubmissionFormComponent extends ThemedComponent { @Input() collectionId: string; diff --git a/src/app/submission/sections/container/section-container.component.ts b/src/app/submission/sections/container/section-container.component.ts index 96f8cbcff6..174aed93b5 100644 --- a/src/app/submission/sections/container/section-container.component.ts +++ b/src/app/submission/sections/container/section-container.component.ts @@ -23,7 +23,7 @@ import { rendersSectionType } from '../sections-decorator'; * This component represents a section that contains the submission license form. */ @Component({ - selector: 'ds-submission-section-container', + selector: 'ds-base-submission-section-container', templateUrl: './section-container.component.html', styleUrls: ['./section-container.component.scss'], imports: [ diff --git a/src/app/submission/sections/container/themed-section-container.component.ts b/src/app/submission/sections/container/themed-section-container.component.ts index 11ec6b63d7..951fb2bdcb 100644 --- a/src/app/submission/sections/container/themed-section-container.component.ts +++ b/src/app/submission/sections/container/themed-section-container.component.ts @@ -1,12 +1,18 @@ +import { + Component, + Input, +} from '@angular/core'; + import { ThemedComponent } from '../../../shared/theme-support/themed.component'; -import { SubmissionSectionContainerComponent } from './section-container.component'; -import { Component, Input } from '@angular/core'; import { SectionDataObject } from '../models/section-data.model'; +import { SubmissionSectionContainerComponent } from './section-container.component'; @Component({ - selector: 'ds-themed-submission-section-container', + selector: 'ds-submission-section-container', styleUrls: [], templateUrl: '../../../shared/theme-support/themed.component.html', + standalone: true, + imports: [SubmissionSectionContainerComponent], }) export class ThemedSubmissionSectionContainerComponent extends ThemedComponent { @Input() collectionId: string; diff --git a/src/app/submission/submission.module.ts b/src/app/submission/submission.module.ts index c710b3b297..59305dd60e 100644 --- a/src/app/submission/submission.module.ts +++ b/src/app/submission/submission.module.ts @@ -1,75 +1,64 @@ -import { NgModule } from '@angular/core'; -import { CoreModule } from '../core/core.module'; -import { SharedModule } from '../shared/shared.module'; - -import { SubmissionSectionFormComponent } from './sections/form/section-form.component'; -import { SectionsDirective } from './sections/sections.directive'; -import { SectionsService } from './sections/sections.service'; -import { SubmissionFormCollectionComponent } from './form/collection/submission-form-collection.component'; -import { SubmissionFormFooterComponent } from './form/footer/submission-form-footer.component'; -import { SubmissionFormComponent } from './form/submission-form.component'; -import { SubmissionFormSectionAddComponent } from './form/section-add/submission-form-section-add.component'; -import { SubmissionSectionContainerComponent } from './sections/container/section-container.component'; import { CommonModule } from '@angular/common'; -import { Action, StoreConfig, StoreModule } from '@ngrx/store'; +import { NgModule } from '@angular/core'; +import { + NgbAccordionModule, + NgbCollapseModule, + NgbModalModule, +} from '@ng-bootstrap/ng-bootstrap'; import { EffectsModule } from '@ngrx/effects'; -import { submissionReducers, SubmissionState } from './submission.reducers'; -import { submissionEffects } from './submission.effects'; -import { SubmissionSectionUploadComponent } from './sections/upload/section-upload.component'; -import { SectionUploadService } from './sections/upload/section-upload.service'; -import { SubmissionUploadFilesComponent } from './form/submission-upload-files/submission-upload-files.component'; -import { SubmissionSectionLicenseComponent } from './sections/license/section-license.component'; +import { + Action, + StoreConfig, + StoreModule, +} from '@ngrx/store'; + +import { storeModuleConfig } from '../app.reducer'; +import { SubmissionAccessesConfigDataService } from '../core/config/submission-accesses-config-data.service'; import { SubmissionUploadsConfigDataService } from '../core/config/submission-uploads-config-data.service'; import { SubmissionEditComponent } from './edit/submission-edit.component'; -import { SubmissionSectionUploadFileComponent } from './sections/upload/file/section-upload-file.component'; -import { - SubmissionSectionUploadFileEditComponent -} from './sections/upload/file/edit/section-upload-file-edit.component'; -import { - SubmissionSectionUploadFileViewComponent -} from './sections/upload/file/view/section-upload-file-view.component'; -import { - SubmissionSectionUploadAccessConditionsComponent -} from './sections/upload/accessConditions/submission-section-upload-access-conditions.component'; -import { SubmissionSubmitComponent } from './submit/submission-submit.component'; -import { storeModuleConfig } from '../app.reducer'; -import { SubmissionImportExternalComponent } from './import-external/submission-import-external.component'; -import { - SubmissionImportExternalSearchbarComponent -} from './import-external/import-external-searchbar/submission-import-external-searchbar.component'; -import { - SubmissionImportExternalPreviewComponent -} from './import-external/import-external-preview/submission-import-external-preview.component'; -import { - SubmissionImportExternalCollectionComponent -} from './import-external/import-external-collection/submission-import-external-collection.component'; -import { SubmissionSectionCcLicensesComponent } from './sections/cc-license/submission-section-cc-licenses.component'; -import { JournalEntitiesModule } from '../entity-groups/journal-entities/journal-entities.module'; -import { ResearchEntitiesModule } from '../entity-groups/research-entities/research-entities.module'; import { ThemedSubmissionEditComponent } from './edit/themed-submission-edit.component'; -import { ThemedSubmissionSubmitComponent } from './submit/themed-submission-submit.component'; -import { ThemedSubmissionImportExternalComponent } from './import-external/themed-submission-import-external.component'; -import { ThemedSubmissionSectionUploadFileComponent } from './sections/upload/file/themed-section-upload-file.component'; -import { FormModule } from '../shared/form/form.module'; -import { NgbAccordionModule, NgbCollapseModule, NgbModalModule } from '@ng-bootstrap/ng-bootstrap'; -import { SubmissionSectionAccessesComponent } from './sections/accesses/section-accesses.component'; -import { SubmissionAccessesConfigDataService } from '../core/config/submission-accesses-config-data.service'; -import { SectionAccessesService } from './sections/accesses/section-accesses.service'; -import { SubmissionSectionSherpaPoliciesComponent } from './sections/sherpa-policies/section-sherpa-policies.component'; -import { ContentAccordionComponent } from './sections/sherpa-policies/content-accordion/content-accordion.component'; -import { PublisherPolicyComponent } from './sections/sherpa-policies/publisher-policy/publisher-policy.component'; -import { - PublicationInformationComponent -} from './sections/sherpa-policies/publication-information/publication-information.component'; -import { UploadModule } from '../shared/upload/upload.module'; -import { - MetadataInformationComponent -} from './sections/sherpa-policies/metadata-information/metadata-information.component'; -import { SectionFormOperationsService } from './sections/form/section-form-operations.service'; -import {SubmissionSectionIdentifiersComponent} from './sections/identifiers/section-identifiers.component'; -import { ThemedSubmissionSectionContainerComponent } from './sections/container/themed-section-container.component'; +import { SubmissionFormCollectionComponent } from './form/collection/submission-form-collection.component'; +import { SubmissionFormFooterComponent } from './form/footer/submission-form-footer.component'; import { ThemedSubmissionFormFooterComponent } from './form/footer/themed-submission-form-footer.component'; +import { SubmissionFormSectionAddComponent } from './form/section-add/submission-form-section-add.component'; +import { SubmissionFormComponent } from './form/submission-form.component'; +import { SubmissionUploadFilesComponent } from './form/submission-upload-files/submission-upload-files.component'; import { ThemedSubmissionFormComponent } from './form/themed-submission-form.component'; +import { SubmissionImportExternalCollectionComponent } from './import-external/import-external-collection/submission-import-external-collection.component'; +import { SubmissionImportExternalPreviewComponent } from './import-external/import-external-preview/submission-import-external-preview.component'; +import { SubmissionImportExternalSearchbarComponent } from './import-external/import-external-searchbar/submission-import-external-searchbar.component'; +import { SubmissionImportExternalComponent } from './import-external/submission-import-external.component'; +import { ThemedSubmissionImportExternalComponent } from './import-external/themed-submission-import-external.component'; +import { SubmissionSectionAccessesComponent } from './sections/accesses/section-accesses.component'; +import { SectionAccessesService } from './sections/accesses/section-accesses.service'; +import { SubmissionSectionCcLicensesComponent } from './sections/cc-license/submission-section-cc-licenses.component'; +import { SubmissionSectionContainerComponent } from './sections/container/section-container.component'; +import { ThemedSubmissionSectionContainerComponent } from './sections/container/themed-section-container.component'; +import { SubmissionSectionFormComponent } from './sections/form/section-form.component'; +import { SectionFormOperationsService } from './sections/form/section-form-operations.service'; +import { SubmissionSectionIdentifiersComponent } from './sections/identifiers/section-identifiers.component'; +import { SubmissionSectionLicenseComponent } from './sections/license/section-license.component'; +import { SectionsDirective } from './sections/sections.directive'; +import { SectionsService } from './sections/sections.service'; +import { ContentAccordionComponent } from './sections/sherpa-policies/content-accordion/content-accordion.component'; +import { MetadataInformationComponent } from './sections/sherpa-policies/metadata-information/metadata-information.component'; +import { PublicationInformationComponent } from './sections/sherpa-policies/publication-information/publication-information.component'; +import { PublisherPolicyComponent } from './sections/sherpa-policies/publisher-policy/publisher-policy.component'; +import { SubmissionSectionSherpaPoliciesComponent } from './sections/sherpa-policies/section-sherpa-policies.component'; +import { SubmissionSectionUploadAccessConditionsComponent } from './sections/upload/accessConditions/submission-section-upload-access-conditions.component'; +import { SubmissionSectionUploadFileEditComponent } from './sections/upload/file/edit/section-upload-file-edit.component'; +import { SubmissionSectionUploadFileComponent } from './sections/upload/file/section-upload-file.component'; +import { ThemedSubmissionSectionUploadFileComponent } from './sections/upload/file/themed-section-upload-file.component'; +import { SubmissionSectionUploadFileViewComponent } from './sections/upload/file/view/section-upload-file-view.component'; +import { SubmissionSectionUploadComponent } from './sections/upload/section-upload.component'; +import { SectionUploadService } from './sections/upload/section-upload.service'; +import { submissionEffects } from './submission.effects'; +import { + submissionReducers, + SubmissionState, +} from './submission.reducers'; +import { SubmissionSubmitComponent } from './submit/submission-submit.component'; +import { ThemedSubmissionSubmitComponent } from './submit/themed-submission-submit.component'; const ENTRY_COMPONENTS = [ // put only entry components that use custom decorator @@ -117,22 +106,15 @@ const DECLARATIONS = [ @NgModule({ imports: [ CommonModule, - CoreModule.forRoot(), - SharedModule, StoreModule.forFeature('submission', submissionReducers, storeModuleConfig as StoreConfig), EffectsModule.forFeature(submissionEffects), - JournalEntitiesModule.withEntryComponents(), - ResearchEntitiesModule.withEntryComponents(), - FormModule, NgbModalModule, NgbCollapseModule, NgbAccordionModule, - UploadModule, ], declarations: DECLARATIONS, exports: [ ...DECLARATIONS, - FormModule, ], providers: [ SectionUploadService, @@ -141,7 +123,7 @@ const DECLARATIONS = [ SubmissionAccessesConfigDataService, SectionAccessesService, SectionFormOperationsService, - ] + ], }) /** @@ -155,7 +137,7 @@ export class SubmissionModule { static withEntryComponents() { return { ngModule: SubmissionModule, - providers: ENTRY_COMPONENTS.map((component) => ({ provide: component })) + providers: ENTRY_COMPONENTS.map((component) => ({ provide: component })), }; } } diff --git a/src/themes/custom/app/submission/edit/submission-edit.component.ts b/src/themes/custom/app/submission/edit/submission-edit.component.ts index c41b4321fa..1afe61b44a 100644 --- a/src/themes/custom/app/submission/edit/submission-edit.component.ts +++ b/src/themes/custom/app/submission/edit/submission-edit.component.ts @@ -1,7 +1,7 @@ import { Component } from '@angular/core'; import { SubmissionEditComponent as BaseComponent } from '../../../../../app/submission/edit/submission-edit.component'; -import { SubmissionFormComponent } from '../../../../../app/submission/form/submission-form.component'; +import { ThemedSubmissionFormComponent } from '../../../../../app/submission/form/themed-submission-form.component'; /** * This component allows to edit an existing workspaceitem/workflowitem. @@ -14,7 +14,7 @@ import { SubmissionFormComponent } from '../../../../../app/submission/form/subm templateUrl: '../../../../../app/submission/edit/submission-edit.component.html', standalone: true, imports: [ - SubmissionFormComponent, + ThemedSubmissionFormComponent, ], }) export class SubmissionEditComponent extends BaseComponent { diff --git a/src/themes/custom/app/submission/form/footer/submission-form-footer.component.ts b/src/themes/custom/app/submission/form/footer/submission-form-footer.component.ts index 3a93410edf..c1deceecfa 100644 --- a/src/themes/custom/app/submission/form/footer/submission-form-footer.component.ts +++ b/src/themes/custom/app/submission/form/footer/submission-form-footer.component.ts @@ -1,14 +1,14 @@ -import { - SubmissionFormFooterComponent as BaseComponent -} from '../../../../../../app/submission/form/footer/submission-form-footer.component'; import { Component } from '@angular/core'; +import { SubmissionFormFooterComponent as BaseComponent } from '../../../../../../app/submission/form/footer/submission-form-footer.component'; + @Component({ - selector: 'ds-submission-form-footer', + selector: 'ds-themed-submission-form-footer', // styleUrls: ['./submission-form-footer.component.scss'], styleUrls: ['../../../../../../app/submission/form/footer/submission-form-footer.component.scss'], // templateUrl: './submission-form-footer.component.html' - templateUrl: '../../../../../../app/submission/form/footer/submission-form-footer.component.html' + templateUrl: '../../../../../../app/submission/form/footer/submission-form-footer.component.html', + standalone: true, }) export class SubmissionFormFooterComponent extends BaseComponent { diff --git a/src/themes/custom/app/submission/form/submission-form.component.ts b/src/themes/custom/app/submission/form/submission-form.component.ts index 15b52a2657..1c2cf07d09 100644 --- a/src/themes/custom/app/submission/form/submission-form.component.ts +++ b/src/themes/custom/app/submission/form/submission-form.component.ts @@ -1,14 +1,14 @@ -import { - SubmissionFormComponent as BaseComponent -} from '../../../../../app/submission/form/submission-form.component'; import { Component } from '@angular/core'; +import { SubmissionFormComponent as BaseComponent } from '../../../../../app/submission/form/submission-form.component'; + @Component({ - selector: 'ds-submission-form', + selector: 'ds-themed-submission-form', // styleUrls: ['./submission-form.component.scss'], styleUrls: ['../../../../../app/submission/form/submission-form.component.scss'], // templateUrl: './submission-form.component.html' - templateUrl: '../../../../../app/submission/form/submission-form.component.html' + templateUrl: '../../../../../app/submission/form/submission-form.component.html', + standalone: true, }) export class SubmissionFormComponent extends BaseComponent { diff --git a/src/themes/custom/app/submission/sections/container/section-container.component.ts b/src/themes/custom/app/submission/sections/container/section-container.component.ts index fcb6855f78..f24d679fb9 100644 --- a/src/themes/custom/app/submission/sections/container/section-container.component.ts +++ b/src/themes/custom/app/submission/sections/container/section-container.component.ts @@ -1,14 +1,14 @@ -import { - SubmissionSectionContainerComponent as BaseComponent -} from '../../../../../../app/submission/sections/container/section-container.component'; import { Component } from '@angular/core'; +import { SubmissionSectionContainerComponent as BaseComponent } from '../../../../../../app/submission/sections/container/section-container.component'; + @Component({ - selector: 'ds-submission-upload-section-file', + selector: 'ds-themed-submission-upload-section-file', // styleUrls: ['./section-container.component.scss'], styleUrls: ['../../../../../../app/submission/sections/container/section-container.component.scss'], // templateUrl: './section-container.component.html' - templateUrl: '../../../../../../app/submission/sections/container/section-container.component.html' + templateUrl: '../../../../../../app/submission/sections/container/section-container.component.html', + standalone: true, }) export class SubmissionSectionContainerComponent extends BaseComponent { diff --git a/src/themes/custom/lazy-theme.module.ts b/src/themes/custom/lazy-theme.module.ts index a3f4e21d07..bc8e9ed07c 100644 --- a/src/themes/custom/lazy-theme.module.ts +++ b/src/themes/custom/lazy-theme.module.ts @@ -100,17 +100,17 @@ import { CommunityStatisticsPageComponent } from './app/statistics-page/communit import { ItemStatisticsPageComponent } from './app/statistics-page/item-statistics-page/item-statistics-page.component'; import { SiteStatisticsPageComponent } from './app/statistics-page/site-statistics-page/site-statistics-page.component'; import { SubmissionEditComponent } from './app/submission/edit/submission-edit.component'; +import { SubmissionFormFooterComponent } from './app/submission/form/footer/submission-form-footer.component'; +import { SubmissionFormComponent } from './app/submission/form/submission-form.component'; import { SubmissionUploadFilesComponent } from './app/submission/form/submission-upload-files/submission-upload-files.component'; import { SubmissionImportExternalComponent } from './app/submission/import-external/submission-import-external.component'; +import { SubmissionSectionContainerComponent } from './app/submission/sections/container/section-container.component'; import { SubmissionSectionUploadFileComponent } from './app/submission/sections/upload/file/section-upload-file.component'; import { SubmissionSubmitComponent } from './app/submission/submit/submission-submit.component'; import { ThumbnailComponent } from './app/thumbnail/thumbnail.component'; import { WorkflowItemDeleteComponent } from './app/workflowitems-edit-page/workflow-item-delete/workflow-item-delete.component'; import { WorkflowItemSendBackComponent } from './app/workflowitems-edit-page/workflow-item-send-back/workflow-item-send-back.component'; import { WorkspaceItemsDeletePageComponent } from './app/workspaceitems-edit-page/workspaceitems-delete-page/workspaceitems-delete-page.component'; -import { SubmissionSectionContainerComponent } from './app/submission/sections/container/section-container.component'; -import { SubmissionFormFooterComponent } from './app/submission/form/footer/submission-form-footer.component'; -import { SubmissionFormComponent } from './app/submission/form/submission-form.component'; const DECLARATIONS = [ FileSectionComponent, From fa8ffaefd0d0a2a66a12231ab2ae71efbe9afd7c Mon Sep 17 00:00:00 2001 From: Zahraa Chreim Date: Fri, 28 Mar 2025 15:08:12 +0200 Subject: [PATCH 4/9] 127047: Fix imports --- src/app/submission/submission.module.ts | 143 ------------------ .../submission-form-footer.component.ts | 5 + .../form/submission-form.component.ts | 16 ++ .../container/section-container.component.ts | 18 +++ 4 files changed, 39 insertions(+), 143 deletions(-) delete mode 100644 src/app/submission/submission.module.ts diff --git a/src/app/submission/submission.module.ts b/src/app/submission/submission.module.ts deleted file mode 100644 index 59305dd60e..0000000000 --- a/src/app/submission/submission.module.ts +++ /dev/null @@ -1,143 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { NgModule } from '@angular/core'; -import { - NgbAccordionModule, - NgbCollapseModule, - NgbModalModule, -} from '@ng-bootstrap/ng-bootstrap'; -import { EffectsModule } from '@ngrx/effects'; -import { - Action, - StoreConfig, - StoreModule, -} from '@ngrx/store'; - -import { storeModuleConfig } from '../app.reducer'; -import { SubmissionAccessesConfigDataService } from '../core/config/submission-accesses-config-data.service'; -import { SubmissionUploadsConfigDataService } from '../core/config/submission-uploads-config-data.service'; -import { SubmissionEditComponent } from './edit/submission-edit.component'; -import { ThemedSubmissionEditComponent } from './edit/themed-submission-edit.component'; -import { SubmissionFormCollectionComponent } from './form/collection/submission-form-collection.component'; -import { SubmissionFormFooterComponent } from './form/footer/submission-form-footer.component'; -import { ThemedSubmissionFormFooterComponent } from './form/footer/themed-submission-form-footer.component'; -import { SubmissionFormSectionAddComponent } from './form/section-add/submission-form-section-add.component'; -import { SubmissionFormComponent } from './form/submission-form.component'; -import { SubmissionUploadFilesComponent } from './form/submission-upload-files/submission-upload-files.component'; -import { ThemedSubmissionFormComponent } from './form/themed-submission-form.component'; -import { SubmissionImportExternalCollectionComponent } from './import-external/import-external-collection/submission-import-external-collection.component'; -import { SubmissionImportExternalPreviewComponent } from './import-external/import-external-preview/submission-import-external-preview.component'; -import { SubmissionImportExternalSearchbarComponent } from './import-external/import-external-searchbar/submission-import-external-searchbar.component'; -import { SubmissionImportExternalComponent } from './import-external/submission-import-external.component'; -import { ThemedSubmissionImportExternalComponent } from './import-external/themed-submission-import-external.component'; -import { SubmissionSectionAccessesComponent } from './sections/accesses/section-accesses.component'; -import { SectionAccessesService } from './sections/accesses/section-accesses.service'; -import { SubmissionSectionCcLicensesComponent } from './sections/cc-license/submission-section-cc-licenses.component'; -import { SubmissionSectionContainerComponent } from './sections/container/section-container.component'; -import { ThemedSubmissionSectionContainerComponent } from './sections/container/themed-section-container.component'; -import { SubmissionSectionFormComponent } from './sections/form/section-form.component'; -import { SectionFormOperationsService } from './sections/form/section-form-operations.service'; -import { SubmissionSectionIdentifiersComponent } from './sections/identifiers/section-identifiers.component'; -import { SubmissionSectionLicenseComponent } from './sections/license/section-license.component'; -import { SectionsDirective } from './sections/sections.directive'; -import { SectionsService } from './sections/sections.service'; -import { ContentAccordionComponent } from './sections/sherpa-policies/content-accordion/content-accordion.component'; -import { MetadataInformationComponent } from './sections/sherpa-policies/metadata-information/metadata-information.component'; -import { PublicationInformationComponent } from './sections/sherpa-policies/publication-information/publication-information.component'; -import { PublisherPolicyComponent } from './sections/sherpa-policies/publisher-policy/publisher-policy.component'; -import { SubmissionSectionSherpaPoliciesComponent } from './sections/sherpa-policies/section-sherpa-policies.component'; -import { SubmissionSectionUploadAccessConditionsComponent } from './sections/upload/accessConditions/submission-section-upload-access-conditions.component'; -import { SubmissionSectionUploadFileEditComponent } from './sections/upload/file/edit/section-upload-file-edit.component'; -import { SubmissionSectionUploadFileComponent } from './sections/upload/file/section-upload-file.component'; -import { ThemedSubmissionSectionUploadFileComponent } from './sections/upload/file/themed-section-upload-file.component'; -import { SubmissionSectionUploadFileViewComponent } from './sections/upload/file/view/section-upload-file-view.component'; -import { SubmissionSectionUploadComponent } from './sections/upload/section-upload.component'; -import { SectionUploadService } from './sections/upload/section-upload.service'; -import { submissionEffects } from './submission.effects'; -import { - submissionReducers, - SubmissionState, -} from './submission.reducers'; -import { SubmissionSubmitComponent } from './submit/submission-submit.component'; -import { ThemedSubmissionSubmitComponent } from './submit/themed-submission-submit.component'; - -const ENTRY_COMPONENTS = [ - // put only entry components that use custom decorator - SubmissionSectionUploadComponent, - SubmissionSectionFormComponent, - SubmissionSectionLicenseComponent, - SubmissionSectionCcLicensesComponent, - SubmissionSectionAccessesComponent, - SubmissionSectionSherpaPoliciesComponent, -]; - -const DECLARATIONS = [ - ...ENTRY_COMPONENTS, - SectionsDirective, - SubmissionEditComponent, - ThemedSubmissionEditComponent, - SubmissionFormSectionAddComponent, - SubmissionFormCollectionComponent, - SubmissionFormComponent, - SubmissionFormFooterComponent, - SubmissionSubmitComponent, - ThemedSubmissionSubmitComponent, - SubmissionUploadFilesComponent, - SubmissionSectionContainerComponent, - SubmissionSectionUploadAccessConditionsComponent, - SubmissionSectionUploadFileComponent, - SubmissionSectionUploadFileEditComponent, - SubmissionSectionUploadFileViewComponent, - SubmissionSectionIdentifiersComponent, - SubmissionImportExternalComponent, - ThemedSubmissionImportExternalComponent, - SubmissionImportExternalSearchbarComponent, - SubmissionImportExternalPreviewComponent, - SubmissionImportExternalCollectionComponent, - ContentAccordionComponent, - PublisherPolicyComponent, - PublicationInformationComponent, - MetadataInformationComponent, - ThemedSubmissionSectionUploadFileComponent, - ThemedSubmissionSectionContainerComponent, - ThemedSubmissionFormFooterComponent, - ThemedSubmissionFormComponent, -]; - -@NgModule({ - imports: [ - CommonModule, - StoreModule.forFeature('submission', submissionReducers, storeModuleConfig as StoreConfig), - EffectsModule.forFeature(submissionEffects), - NgbModalModule, - NgbCollapseModule, - NgbAccordionModule, - ], - declarations: DECLARATIONS, - exports: [ - ...DECLARATIONS, - ], - providers: [ - SectionUploadService, - SectionsService, - SubmissionUploadsConfigDataService, - SubmissionAccessesConfigDataService, - SectionAccessesService, - SectionFormOperationsService, - ], -}) - -/** - * This module handles all components that are necessary for the submission process - */ -export class SubmissionModule { - /** - * NOTE: this method allows to resolve issue with components that using a custom decorator - * which are not loaded during SSR otherwise - */ - static withEntryComponents() { - return { - ngModule: SubmissionModule, - providers: ENTRY_COMPONENTS.map((component) => ({ provide: component })), - }; - } -} diff --git a/src/themes/custom/app/submission/form/footer/submission-form-footer.component.ts b/src/themes/custom/app/submission/form/footer/submission-form-footer.component.ts index c1deceecfa..350a6204f3 100644 --- a/src/themes/custom/app/submission/form/footer/submission-form-footer.component.ts +++ b/src/themes/custom/app/submission/form/footer/submission-form-footer.component.ts @@ -1,5 +1,9 @@ +import { CommonModule } from '@angular/common'; import { Component } from '@angular/core'; +import { TranslateModule } from '@ngx-translate/core'; +import { BtnDisabledDirective } from '../../../../../../app/shared/btn-disabled.directive'; +import { BrowserOnlyPipe } from '../../../../../../app/shared/utils/browser-only.pipe'; import { SubmissionFormFooterComponent as BaseComponent } from '../../../../../../app/submission/form/footer/submission-form-footer.component'; @Component({ @@ -9,6 +13,7 @@ import { SubmissionFormFooterComponent as BaseComponent } from '../../../../../. // templateUrl: './submission-form-footer.component.html' templateUrl: '../../../../../../app/submission/form/footer/submission-form-footer.component.html', standalone: true, + imports: [CommonModule, BrowserOnlyPipe, TranslateModule, BtnDisabledDirective], }) export class SubmissionFormFooterComponent extends BaseComponent { diff --git a/src/themes/custom/app/submission/form/submission-form.component.ts b/src/themes/custom/app/submission/form/submission-form.component.ts index 1c2cf07d09..d175b7b9c9 100644 --- a/src/themes/custom/app/submission/form/submission-form.component.ts +++ b/src/themes/custom/app/submission/form/submission-form.component.ts @@ -1,6 +1,13 @@ +import { CommonModule } from '@angular/common'; import { Component } from '@angular/core'; +import { ThemedLoadingComponent } from '../../../../../app/shared/loading/themed-loading.component'; +import { SubmissionFormCollectionComponent } from '../../../../../app/submission/form/collection/submission-form-collection.component'; +import { ThemedSubmissionFormFooterComponent } from '../../../../../app/submission/form/footer/themed-submission-form-footer.component'; +import { SubmissionFormSectionAddComponent } from '../../../../../app/submission/form/section-add/submission-form-section-add.component'; import { SubmissionFormComponent as BaseComponent } from '../../../../../app/submission/form/submission-form.component'; +import { ThemedSubmissionUploadFilesComponent } from '../../../../../app/submission/form/submission-upload-files/themed-submission-upload-files.component'; +import { ThemedSubmissionSectionContainerComponent } from '../../../../../app/submission/sections/container/themed-section-container.component'; @Component({ selector: 'ds-themed-submission-form', @@ -9,6 +16,15 @@ import { SubmissionFormComponent as BaseComponent } from '../../../../../app/sub // templateUrl: './submission-form.component.html' templateUrl: '../../../../../app/submission/form/submission-form.component.html', standalone: true, + imports: [ + CommonModule, + ThemedLoadingComponent, + ThemedSubmissionSectionContainerComponent, + ThemedSubmissionFormFooterComponent, + ThemedSubmissionUploadFilesComponent, + SubmissionFormCollectionComponent, + SubmissionFormSectionAddComponent, + ], }) export class SubmissionFormComponent extends BaseComponent { diff --git a/src/themes/custom/app/submission/sections/container/section-container.component.ts b/src/themes/custom/app/submission/sections/container/section-container.component.ts index f24d679fb9..0dfe51946c 100644 --- a/src/themes/custom/app/submission/sections/container/section-container.component.ts +++ b/src/themes/custom/app/submission/sections/container/section-container.component.ts @@ -1,6 +1,15 @@ +import { + AsyncPipe, + NgClass, + NgComponentOutlet, +} from '@angular/common'; import { Component } from '@angular/core'; +import { NgbAccordionModule } from '@ng-bootstrap/ng-bootstrap'; +import { TranslateModule } from '@ngx-translate/core'; +import { AlertComponent } from '../../../../../../app/shared/alert/alert.component'; import { SubmissionSectionContainerComponent as BaseComponent } from '../../../../../../app/submission/sections/container/section-container.component'; +import { SectionsDirective } from '../../../../../../app/submission/sections/sections.directive'; @Component({ selector: 'ds-themed-submission-upload-section-file', @@ -9,6 +18,15 @@ import { SubmissionSectionContainerComponent as BaseComponent } from '../../../. // templateUrl: './section-container.component.html' templateUrl: '../../../../../../app/submission/sections/container/section-container.component.html', standalone: true, + imports: [ + AlertComponent, + NgbAccordionModule, + NgComponentOutlet, + TranslateModule, + NgClass, + AsyncPipe, + SectionsDirective, + ], }) export class SubmissionSectionContainerComponent extends BaseComponent { From 2fc84783a54afa9fb454ad75606831d4ce1b3746 Mon Sep 17 00:00:00 2001 From: Zahraa Chreim Date: Fri, 28 Mar 2025 15:49:37 +0200 Subject: [PATCH 5/9] 127047: Fix submission-form.component.spec.ts --- .../form/submission-form.component.spec.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/app/submission/form/submission-form.component.spec.ts b/src/app/submission/form/submission-form.component.spec.ts index f097a1e7ea..5f0528003a 100644 --- a/src/app/submission/form/submission-form.component.spec.ts +++ b/src/app/submission/form/submission-form.component.spec.ts @@ -10,13 +10,18 @@ import { TestBed, waitForAsync, } from '@angular/core/testing'; +import { Store } from '@ngrx/store'; import { cold, getTestScheduler, } from 'jasmine-marbles'; -import { of as observableOf } from 'rxjs'; +import { + of as observableOf, + of, +} from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; +import { APP_DATA_SERVICES_MAP } from '../../../config/app-config.interface'; import { AuthService } from '../../core/auth/auth.service'; import { HALEndpointService } from '../../core/shared/hal-endpoint.service'; import { Item } from '../../core/shared/item.model'; @@ -56,6 +61,8 @@ describe('SubmissionFormComponent Component', () => { let scheduler: TestScheduler; const submissionServiceStub: SubmissionServiceStub = new SubmissionServiceStub(); + submissionServiceStub.getSubmissionStatus = jasmine.createSpy('getSubmissionStatus') + .and.returnValue(of(true)); const submissionId = mockSubmissionId; const collectionId = mockSubmissionCollectionId; const submissionObjectNew: any = mockSubmissionObjectNew; @@ -64,6 +71,7 @@ describe('SubmissionFormComponent Component', () => { const selfUrl: any = mockSubmissionSelfUrl; const sectionsList: any = mockSectionsList; const sectionsData: any = mockSectionsData; + const store = jasmine.createSpyObj('store', ['dispatch']); beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ @@ -75,6 +83,8 @@ describe('SubmissionFormComponent Component', () => { { provide: SubmissionService, useValue: submissionServiceStub }, { provide: SectionsService, useValue: { isSectionTypeAvailable: () => observableOf(true) } }, { provide: ThemeService, useValue: getMockThemeService() }, + { provide: Store, useValue: store }, + { provide: APP_DATA_SERVICES_MAP, useValue: {} }, ChangeDetectorRef, SubmissionFormComponent, ], From 502597aadc68ef6f565c48d0a75c62ab12513bbf Mon Sep 17 00:00:00 2001 From: Zahraa Chreim Date: Fri, 4 Apr 2025 13:20:01 +0300 Subject: [PATCH 6/9] 127047: Fix submission-edit.component.spec.ts --- src/app/submission/edit/submission-edit.component.spec.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/app/submission/edit/submission-edit.component.spec.ts b/src/app/submission/edit/submission-edit.component.spec.ts index 59f9883f19..3ef6c7045d 100644 --- a/src/app/submission/edit/submission-edit.component.spec.ts +++ b/src/app/submission/edit/submission-edit.component.spec.ts @@ -57,6 +57,8 @@ describe('SubmissionEditComponent Component', () => { const submissionObject: any = mockSubmissionObject; beforeEach(waitForAsync(() => { + // Fix for missing CSS custom property + document.documentElement.style.setProperty('--bs-xl', '1200'); itemDataService = jasmine.createSpyObj('itemDataService', { findByHref: createSuccessfulRemoteDataObject$(submissionObject.item), }); @@ -105,6 +107,10 @@ describe('SubmissionEditComponent Component', () => { }); afterEach(() => { + if (fixture) { + // Ensure Angular cleans up the component properly + fixture.destroy(); + } comp = null; fixture = null; router = null; From 7864909466c0423718b37fa06ede3d86cdbd9ab2 Mon Sep 17 00:00:00 2001 From: Zahraa Chreim Date: Tue, 15 Apr 2025 12:03:25 +0300 Subject: [PATCH 7/9] 127047: Fix selector of SubmissionSectionContainerComponent in custom theme --- .../sections/container/section-container.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/themes/custom/app/submission/sections/container/section-container.component.ts b/src/themes/custom/app/submission/sections/container/section-container.component.ts index 0dfe51946c..aa548c0a9c 100644 --- a/src/themes/custom/app/submission/sections/container/section-container.component.ts +++ b/src/themes/custom/app/submission/sections/container/section-container.component.ts @@ -12,7 +12,7 @@ import { SubmissionSectionContainerComponent as BaseComponent } from '../../../. import { SectionsDirective } from '../../../../../../app/submission/sections/sections.directive'; @Component({ - selector: 'ds-themed-submission-upload-section-file', + selector: 'ds-themed-base-submission-section-container', // styleUrls: ['./section-container.component.scss'], styleUrls: ['../../../../../../app/submission/sections/container/section-container.component.scss'], // templateUrl: './section-container.component.html' From d269d668e5436caa2f93f3cb758b3a9dab29fc5a Mon Sep 17 00:00:00 2001 From: Zahraa Chreim Date: Tue, 22 Apr 2025 09:57:27 +0300 Subject: [PATCH 8/9] 127047: Remove default value of collectionModifiable and Update overrideComponent to exclude themed components --- .../form/submission-form.component.spec.ts | 20 +++++-------------- .../form/themed-submission-form.component.ts | 2 +- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/src/app/submission/form/submission-form.component.spec.ts b/src/app/submission/form/submission-form.component.spec.ts index 5f0528003a..f1136946ee 100644 --- a/src/app/submission/form/submission-form.component.spec.ts +++ b/src/app/submission/form/submission-form.component.spec.ts @@ -10,18 +10,13 @@ import { TestBed, waitForAsync, } from '@angular/core/testing'; -import { Store } from '@ngrx/store'; import { cold, getTestScheduler, } from 'jasmine-marbles'; -import { - of as observableOf, - of, -} from 'rxjs'; +import { of as observableOf } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; -import { APP_DATA_SERVICES_MAP } from '../../../config/app-config.interface'; import { AuthService } from '../../core/auth/auth.service'; import { HALEndpointService } from '../../core/shared/hal-endpoint.service'; import { Item } from '../../core/shared/item.model'; @@ -42,12 +37,12 @@ import { HALEndpointServiceStub } from '../../shared/testing/hal-endpoint-servic import { SubmissionServiceStub } from '../../shared/testing/submission-service.stub'; import { createTestComponent } from '../../shared/testing/utils.test'; import { ThemeService } from '../../shared/theme-support/theme.service'; -import { SubmissionSectionContainerComponent } from '../sections/container/section-container.component'; +import { ThemedSubmissionSectionContainerComponent } from '../sections/container/themed-section-container.component'; import { SectionsService } from '../sections/sections.service'; import { VisibilityType } from '../sections/visibility-type'; import { SubmissionService } from '../submission.service'; import { SubmissionFormCollectionComponent } from './collection/submission-form-collection.component'; -import { SubmissionFormFooterComponent } from './footer/submission-form-footer.component'; +import { ThemedSubmissionFormFooterComponent } from './footer/themed-submission-form-footer.component'; import { SubmissionFormSectionAddComponent } from './section-add/submission-form-section-add.component'; import { SubmissionFormComponent } from './submission-form.component'; import { ThemedSubmissionUploadFilesComponent } from './submission-upload-files/themed-submission-upload-files.component'; @@ -61,8 +56,6 @@ describe('SubmissionFormComponent Component', () => { let scheduler: TestScheduler; const submissionServiceStub: SubmissionServiceStub = new SubmissionServiceStub(); - submissionServiceStub.getSubmissionStatus = jasmine.createSpy('getSubmissionStatus') - .and.returnValue(of(true)); const submissionId = mockSubmissionId; const collectionId = mockSubmissionCollectionId; const submissionObjectNew: any = mockSubmissionObjectNew; @@ -71,7 +64,6 @@ describe('SubmissionFormComponent Component', () => { const selfUrl: any = mockSubmissionSelfUrl; const sectionsList: any = mockSectionsList; const sectionsData: any = mockSectionsData; - const store = jasmine.createSpyObj('store', ['dispatch']); beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ @@ -83,8 +75,6 @@ describe('SubmissionFormComponent Component', () => { { provide: SubmissionService, useValue: submissionServiceStub }, { provide: SectionsService, useValue: { isSectionTypeAvailable: () => observableOf(true) } }, { provide: ThemeService, useValue: getMockThemeService() }, - { provide: Store, useValue: store }, - { provide: APP_DATA_SERVICES_MAP, useValue: {} }, ChangeDetectorRef, SubmissionFormComponent, ], @@ -94,8 +84,8 @@ describe('SubmissionFormComponent Component', () => { remove: { imports: [ ThemedLoadingComponent, - SubmissionSectionContainerComponent, - SubmissionFormFooterComponent, + ThemedSubmissionSectionContainerComponent, + ThemedSubmissionFormFooterComponent, ThemedSubmissionUploadFilesComponent, SubmissionFormCollectionComponent, SubmissionFormSectionAddComponent, diff --git a/src/app/submission/form/themed-submission-form.component.ts b/src/app/submission/form/themed-submission-form.component.ts index b7414aa8e9..4a6f8d67cd 100644 --- a/src/app/submission/form/themed-submission-form.component.ts +++ b/src/app/submission/form/themed-submission-form.component.ts @@ -22,7 +22,7 @@ export class ThemedSubmissionFormComponent extends ThemedComponent Date: Wed, 30 Apr 2025 10:22:01 +0200 Subject: [PATCH 9/9] 127047: Remove unnecessary CSS variable from spec setup --- src/app/submission/edit/submission-edit.component.spec.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/app/submission/edit/submission-edit.component.spec.ts b/src/app/submission/edit/submission-edit.component.spec.ts index 3ef6c7045d..29d872f542 100644 --- a/src/app/submission/edit/submission-edit.component.spec.ts +++ b/src/app/submission/edit/submission-edit.component.spec.ts @@ -57,8 +57,6 @@ describe('SubmissionEditComponent Component', () => { const submissionObject: any = mockSubmissionObject; beforeEach(waitForAsync(() => { - // Fix for missing CSS custom property - document.documentElement.style.setProperty('--bs-xl', '1200'); itemDataService = jasmine.createSpyObj('itemDataService', { findByHref: createSuccessfulRemoteDataObject$(submissionObject.item), });