diff --git a/src/app/features/preprints/components/submit-steps/metadata/metadata.component.html b/src/app/features/preprints/components/submit-steps/metadata/metadata.component.html index 9c8bc9aac..682a46bb2 100644 --- a/src/app/features/preprints/components/submit-steps/metadata/metadata.component.html +++ b/src/app/features/preprints/components/submit-steps/metadata/metadata.component.html @@ -33,6 +33,16 @@

Publication DOI

+ +
+

Tags (optional)

+ +
+ +
+
+
+

Publication Date (optional)

@@ -69,7 +79,8 @@

Publication Citation (optional)

label="Next" [pTooltip]="metadataForm.invalid ? 'Fill in \'Required\' fields to continue' : ''" tooltipPosition="top" - [disabled]="metadataForm.invalid" + [disabled]="metadataForm.invalid || !createdPreprint()?.licenseId" + [loading]="isUpdatingPreprint()" (click)="nextButtonClicked()" /> diff --git a/src/app/features/preprints/components/submit-steps/metadata/metadata.component.ts b/src/app/features/preprints/components/submit-steps/metadata/metadata.component.ts index 53f574891..c82bb1e9a 100644 --- a/src/app/features/preprints/components/submit-steps/metadata/metadata.component.ts +++ b/src/app/features/preprints/components/submit-steps/metadata/metadata.component.ts @@ -21,7 +21,7 @@ import { SubmitPreprintSelectors, UpdatePreprint, } from '@osf/features/preprints/store/submit-preprint'; -import { IconComponent, LicenseComponent, TextInputComponent } from '@shared/components'; +import { IconComponent, LicenseComponent, TagsInputComponent, TextInputComponent } from '@shared/components'; import { INPUT_VALIDATION_MESSAGES } from '@shared/constants'; import { License, LicenseOptions } from '@shared/models'; import { CustomValidators, findChangedFields } from '@shared/utils'; @@ -43,6 +43,7 @@ import { ContributorsComponent } from './contributors/contributors.component'; TextInputComponent, Tooltip, LicenseComponent, + TagsInputComponent, ], templateUrl: './metadata.component.html', styleUrl: './metadata.component.scss', @@ -62,6 +63,8 @@ export class MetadataComponent implements OnInit { licences = select(SubmitPreprintSelectors.getLicenses); createdPreprint = select(SubmitPreprintSelectors.getCreatedPreprint); + isUpdatingPreprint = select(SubmitPreprintSelectors.isPreprintSubmitting); + nextClicked = output(); ngOnInit() { @@ -84,6 +87,10 @@ export class MetadataComponent implements OnInit { nonNullable: false, validators: [Validators.maxLength(this.inputLimits.citation.maxLength)], }), + tags: new FormControl(this.createdPreprint()?.tags || [], { + nonNullable: true, + validators: [], + }), }); } @@ -116,4 +123,10 @@ export class MetadataComponent implements OnInit { selectLicense(license: License) { this.actions.saveLicense(license.id); } + + updateTags(updatedTags: string[]) { + this.metadataForm.patchValue({ + tags: updatedTags, + }); + } } diff --git a/src/app/features/preprints/models/submit-preprint-form.models.ts b/src/app/features/preprints/models/submit-preprint-form.models.ts index 4c2a128db..d85d06705 100644 --- a/src/app/features/preprints/models/submit-preprint-form.models.ts +++ b/src/app/features/preprints/models/submit-preprint-form.models.ts @@ -11,4 +11,5 @@ export interface MetadataForm { doi: FormControl; originalPublicationDate: FormControl; customPublicationCitation: FormControl; + tags: FormControl; } diff --git a/src/app/features/preprints/services/preprints.service.ts b/src/app/features/preprints/services/preprints.service.ts index a5e146bd0..adc0e74b4 100644 --- a/src/app/features/preprints/services/preprints.service.ts +++ b/src/app/features/preprints/services/preprints.service.ts @@ -36,6 +36,7 @@ export class PreprintsService { originalPublicationDate: 'original_publication_date', doi: 'doi', customPublicationCitation: 'custom_publication_citation', + tags: 'tags', }; getPreprintProviderById(id: string): Observable { diff --git a/src/app/features/preprints/store/submit-preprint/submit-preprint.state.ts b/src/app/features/preprints/store/submit-preprint/submit-preprint.state.ts index 7addc2a61..10f98cf1c 100644 --- a/src/app/features/preprints/store/submit-preprint/submit-preprint.state.ts +++ b/src/app/features/preprints/store/submit-preprint/submit-preprint.state.ts @@ -42,7 +42,7 @@ import { defaults: { selectedProviderId: null, createdPreprint: { - data: { id: '6s4jg_v1' } as Preprint, // Temporary default value for testing + data: null, isLoading: false, error: null, isSubmitting: false,