Skip to content

Commit 3370bda

Browse files
authored
Merge pull request #4080 from atmire/themed-SubmissionComponents_contribute-main
Themed Submission Components
2 parents 19078a1 + 0aea4a7 commit 3370bda

20 files changed

+227
-16
lines changed

src/app/submission/edit/submission-edit.component.spec.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,10 @@ describe('SubmissionEditComponent Component', () => {
105105
});
106106

107107
afterEach(() => {
108+
if (fixture) {
109+
// Ensure Angular cleans up the component properly
110+
fixture.destroy();
111+
}
108112
comp = null;
109113
fixture = null;
110114
router = null;

src/app/submission/edit/submission-edit.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import {
3636
isNotNull,
3737
} from '../../shared/empty.util';
3838
import { NotificationsService } from '../../shared/notifications/notifications.service';
39-
import { SubmissionFormComponent } from '../form/submission-form.component';
39+
import { ThemedSubmissionFormComponent } from '../form/themed-submission-form.component';
4040
import { SubmissionError } from '../objects/submission-error.model';
4141
import { SubmissionService } from '../submission.service';
4242
import parseSectionErrors from '../utils/parseSectionErrors';
@@ -50,7 +50,7 @@ import parseSectionErrors from '../utils/parseSectionErrors';
5050
templateUrl: './submission-edit.component.html',
5151
standalone: true,
5252
imports: [
53-
SubmissionFormComponent,
53+
ThemedSubmissionFormComponent,
5454
],
5555
})
5656
export class SubmissionEditComponent implements OnDestroy, OnInit {

src/app/submission/form/footer/submission-form-footer.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import { SubmissionService } from '../../submission.service';
2424
* This component represents submission form footer bar.
2525
*/
2626
@Component({
27-
selector: 'ds-submission-form-footer',
27+
selector: 'ds-base-submission-form-footer',
2828
styleUrls: ['./submission-form-footer.component.scss'],
2929
templateUrl: './submission-form-footer.component.html',
3030
standalone: true,
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import {
2+
Component,
3+
Input,
4+
} from '@angular/core';
5+
6+
import { ThemedComponent } from '../../../shared/theme-support/themed.component';
7+
import { SubmissionFormFooterComponent } from './submission-form-footer.component';
8+
9+
@Component({
10+
selector: 'ds-submission-form-footer',
11+
styleUrls: [],
12+
templateUrl: '../../../shared/theme-support/themed.component.html',
13+
standalone: true,
14+
imports: [SubmissionFormFooterComponent],
15+
})
16+
export class ThemedSubmissionFormFooterComponent extends ThemedComponent<SubmissionFormFooterComponent> {
17+
@Input() submissionId: string;
18+
19+
protected inAndOutputNames: (keyof SubmissionFormFooterComponent & keyof this)[] = ['submissionId'];
20+
21+
protected getComponentName(): string {
22+
return 'SubmissionFormFooterComponent';
23+
}
24+
25+
protected importThemedComponent(themeName: string): Promise<any> {
26+
return import(`../../../../themes/${themeName}/app/submission/form/footer/submission-form-footer.component`);
27+
}
28+
29+
protected importUnthemedComponent(): Promise<any> {
30+
return import(`./submission-form-footer.component`);
31+
}
32+
33+
}

src/app/submission/form/submission-form.component.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,12 @@ import { HALEndpointServiceStub } from '../../shared/testing/hal-endpoint-servic
3737
import { SubmissionServiceStub } from '../../shared/testing/submission-service.stub';
3838
import { createTestComponent } from '../../shared/testing/utils.test';
3939
import { ThemeService } from '../../shared/theme-support/theme.service';
40-
import { SubmissionSectionContainerComponent } from '../sections/container/section-container.component';
40+
import { ThemedSubmissionSectionContainerComponent } from '../sections/container/themed-section-container.component';
4141
import { SectionsService } from '../sections/sections.service';
4242
import { VisibilityType } from '../sections/visibility-type';
4343
import { SubmissionService } from '../submission.service';
4444
import { SubmissionFormCollectionComponent } from './collection/submission-form-collection.component';
45-
import { SubmissionFormFooterComponent } from './footer/submission-form-footer.component';
45+
import { ThemedSubmissionFormFooterComponent } from './footer/themed-submission-form-footer.component';
4646
import { SubmissionFormSectionAddComponent } from './section-add/submission-form-section-add.component';
4747
import { SubmissionFormComponent } from './submission-form.component';
4848
import { ThemedSubmissionUploadFilesComponent } from './submission-upload-files/themed-submission-upload-files.component';
@@ -84,8 +84,8 @@ describe('SubmissionFormComponent Component', () => {
8484
remove: {
8585
imports: [
8686
ThemedLoadingComponent,
87-
SubmissionSectionContainerComponent,
88-
SubmissionFormFooterComponent,
87+
ThemedSubmissionSectionContainerComponent,
88+
ThemedSubmissionFormFooterComponent,
8989
ThemedSubmissionUploadFilesComponent,
9090
SubmissionFormCollectionComponent,
9191
SubmissionFormSectionAddComponent,

src/app/submission/form/submission-form.component.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,29 +38,29 @@ import { UploaderOptions } from '../../shared/upload/uploader/uploader-options.m
3838
import { SectionVisibility } from '../objects/section-visibility.model';
3939
import { SubmissionError } from '../objects/submission-error.model';
4040
import { SubmissionObjectEntry } from '../objects/submission-objects.reducer';
41-
import { SubmissionSectionContainerComponent } from '../sections/container/section-container.component';
41+
import { ThemedSubmissionSectionContainerComponent } from '../sections/container/themed-section-container.component';
4242
import { SectionDataObject } from '../sections/models/section-data.model';
4343
import { SectionsService } from '../sections/sections.service';
4444
import { SectionsType } from '../sections/sections-type';
4545
import { VisibilityType } from '../sections/visibility-type';
4646
import { SubmissionService } from '../submission.service';
4747
import { SubmissionFormCollectionComponent } from './collection/submission-form-collection.component';
48-
import { SubmissionFormFooterComponent } from './footer/submission-form-footer.component';
48+
import { ThemedSubmissionFormFooterComponent } from './footer/themed-submission-form-footer.component';
4949
import { SubmissionFormSectionAddComponent } from './section-add/submission-form-section-add.component';
5050
import { ThemedSubmissionUploadFilesComponent } from './submission-upload-files/themed-submission-upload-files.component';
5151

5252
/**
5353
* This component represents the submission form.
5454
*/
5555
@Component({
56-
selector: 'ds-submission-form',
56+
selector: 'ds-base-submission-form',
5757
styleUrls: ['./submission-form.component.scss'],
5858
templateUrl: './submission-form.component.html',
5959
imports: [
6060
CommonModule,
6161
ThemedLoadingComponent,
62-
SubmissionSectionContainerComponent,
63-
SubmissionFormFooterComponent,
62+
ThemedSubmissionSectionContainerComponent,
63+
ThemedSubmissionFormFooterComponent,
6464
ThemedSubmissionUploadFilesComponent,
6565
SubmissionFormCollectionComponent,
6666
SubmissionFormSectionAddComponent,
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import {
2+
Component,
3+
Input,
4+
} from '@angular/core';
5+
6+
import { SubmissionDefinitionsModel } from '../../core/config/models/config-submission-definitions.model';
7+
import { Item } from '../../core/shared/item.model';
8+
import { WorkspaceitemSectionsObject } from '../../core/submission/models/workspaceitem-sections.model';
9+
import { ThemedComponent } from '../../shared/theme-support/themed.component';
10+
import { SubmissionError } from '../objects/submission-error.model';
11+
import { SubmissionFormComponent } from './submission-form.component';
12+
13+
@Component({
14+
selector: 'ds-submission-form',
15+
styleUrls: [],
16+
templateUrl: '../../shared/theme-support/themed.component.html',
17+
standalone: true,
18+
imports: [SubmissionFormComponent],
19+
})
20+
export class ThemedSubmissionFormComponent extends ThemedComponent<SubmissionFormComponent> {
21+
@Input() collectionId: string;
22+
23+
@Input() item: Item;
24+
25+
@Input() collectionModifiable: boolean | null;
26+
27+
@Input() sections: WorkspaceitemSectionsObject;
28+
29+
@Input() submissionErrors: SubmissionError;
30+
31+
@Input() selfUrl: string;
32+
33+
@Input() submissionDefinition: SubmissionDefinitionsModel;
34+
35+
@Input() submissionId: string;
36+
37+
protected inAndOutputNames: (keyof SubmissionFormComponent & keyof this)[] = ['collectionId', 'item', 'collectionModifiable', 'sections', 'submissionErrors', 'selfUrl', 'submissionDefinition', 'submissionId'];
38+
39+
protected getComponentName(): string {
40+
return 'SubmissionFormComponent';
41+
}
42+
43+
protected importThemedComponent(themeName: string): Promise<any> {
44+
return import(`../../../themes/${themeName}/app/submission/form/submission-form.component`);
45+
}
46+
47+
protected importUnthemedComponent(): Promise<any> {
48+
return import(`./submission-form.component`);
49+
}
50+
}

src/app/submission/sections/container/section-container.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import { rendersSectionType } from '../sections-decorator';
2323
* This component represents a section that contains the submission license form.
2424
*/
2525
@Component({
26-
selector: 'ds-submission-section-container',
26+
selector: 'ds-base-submission-section-container',
2727
templateUrl: './section-container.component.html',
2828
styleUrls: ['./section-container.component.scss'],
2929
imports: [
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import {
2+
Component,
3+
Input,
4+
} from '@angular/core';
5+
6+
import { ThemedComponent } from '../../../shared/theme-support/themed.component';
7+
import { SectionDataObject } from '../models/section-data.model';
8+
import { SubmissionSectionContainerComponent } from './section-container.component';
9+
10+
@Component({
11+
selector: 'ds-submission-section-container',
12+
styleUrls: [],
13+
templateUrl: '../../../shared/theme-support/themed.component.html',
14+
standalone: true,
15+
imports: [SubmissionSectionContainerComponent],
16+
})
17+
export class ThemedSubmissionSectionContainerComponent extends ThemedComponent<SubmissionSectionContainerComponent> {
18+
@Input() collectionId: string;
19+
@Input() sectionData: SectionDataObject;
20+
@Input() submissionId: string;
21+
22+
protected inAndOutputNames: (keyof SubmissionSectionContainerComponent & keyof this)[] = ['collectionId', 'sectionData', 'submissionId'];
23+
24+
protected getComponentName(): string {
25+
return 'SubmissionSectionContainerComponent';
26+
}
27+
28+
protected importThemedComponent(themeName: string): Promise<any> {
29+
return import(`../../../../themes/${themeName}/app/submission/sections/container/section-container.component`);
30+
}
31+
32+
protected importUnthemedComponent(): Promise<any> {
33+
return import(`./section-container.component`);
34+
}
35+
}

src/themes/custom/app/submission/edit/submission-edit.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Component } from '@angular/core';
22

33
import { SubmissionEditComponent as BaseComponent } from '../../../../../app/submission/edit/submission-edit.component';
4-
import { SubmissionFormComponent } from '../../../../../app/submission/form/submission-form.component';
4+
import { ThemedSubmissionFormComponent } from '../../../../../app/submission/form/themed-submission-form.component';
55

66
/**
77
* This component allows to edit an existing workspaceitem/workflowitem.
@@ -14,7 +14,7 @@ import { SubmissionFormComponent } from '../../../../../app/submission/form/subm
1414
templateUrl: '../../../../../app/submission/edit/submission-edit.component.html',
1515
standalone: true,
1616
imports: [
17-
SubmissionFormComponent,
17+
ThemedSubmissionFormComponent,
1818
],
1919
})
2020
export class SubmissionEditComponent extends BaseComponent {

0 commit comments

Comments
 (0)