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/2] 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/2] 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({