Skip to content

Commit e7de613

Browse files
authored
Feat - Update Preprint (#170)
* fix(metadata-step): Added maxDate to the datepicker to be today's date * feat(review-step): Added accordion for license to show full text * feat(update-preprint-stepper): Implemented stepper for updating preprint * refactor(preprint-stepper-store): Renamed submit-preprint -> preprint-stepper store * fix(preprints): Using strings from en.json
1 parent fd35565 commit e7de613

33 files changed

+560
-229
lines changed

src/app/features/preprints/components/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@ export { PreprintsResourcesFiltersComponent } from '@osf/features/preprints/comp
1616
export { PreprintsSubjectFilterComponent } from '@osf/features/preprints/components/filters/preprints-subject-filter/preprints-subject-filter.component';
1717
export { FileStepComponent } from '@osf/features/preprints/components/stepper/file-step/file-step.component';
1818
export { MetadataStepComponent } from '@osf/features/preprints/components/stepper/metadata-step/metadata-step.component';
19+
export { ReviewStepComponent } from '@osf/features/preprints/components/stepper/review-step/review-step.component';
1920
export { TitleAndAbstractStepComponent } from '@osf/features/preprints/components/stepper/title-and-abstract-step/title-and-abstract-step.component';

src/app/features/preprints/components/stepper/author-assertion-step/author-assertions-step.component.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import { ArrayInputComponent } from '@osf/features/preprints/components/stepper/
2828
import { formInputLimits, preregLinksOptions } from '@osf/features/preprints/constants';
2929
import { ApplicabilityStatus, PreregLinkInfo } from '@osf/features/preprints/enums';
3030
import { Preprint } from '@osf/features/preprints/models';
31-
import { SubmitPreprintSelectors, UpdatePreprint } from '@osf/features/preprints/store/submit-preprint';
31+
import { PreprintStepperSelectors, UpdatePreprint } from '@osf/features/preprints/store/preprint-stepper';
3232
import { FormSelectComponent } from '@shared/components';
3333
import { INPUT_VALIDATION_MESSAGES } from '@shared/constants';
3434
import { CustomConfirmationService, ToastService } from '@shared/services';
@@ -68,8 +68,8 @@ export class AuthorAssertionsStepComponent {
6868
readonly preregLinkOptions = preregLinksOptions;
6969
readonly linkValidators = [CustomValidators.linkValidator(), CustomValidators.requiredTrimmed()];
7070

71-
createdPreprint = select(SubmitPreprintSelectors.getCreatedPreprint);
72-
isUpdatingPreprint = select(SubmitPreprintSelectors.isPreprintSubmitting);
71+
createdPreprint = select(PreprintStepperSelectors.getCreatedPreprint);
72+
isUpdatingPreprint = select(PreprintStepperSelectors.isPreprintSubmitting);
7373

7474
readonly authorAssertionsForm = new FormGroup({
7575
hasCoi: new FormControl<boolean>(this.createdPreprint()!.hasCoi || false, {

src/app/features/preprints/components/stepper/file-step/file-step.component.ts

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,15 @@ import { PreprintFileSource } from '@osf/features/preprints/enums';
3131
import { PreprintProviderDetails } from '@osf/features/preprints/models';
3232
import {
3333
CopyFileFromProject,
34-
GetAvailableProjects,
35-
GetPreprintFilesLinks,
36-
GetProjectFiles,
37-
GetProjectFilesByLink,
34+
FetchAvailableProjects,
35+
FetchPreprintFilesLinks,
36+
FetchProjectFiles,
37+
FetchProjectFilesByLink,
38+
PreprintStepperSelectors,
3839
ReuploadFile,
3940
SetSelectedPreprintFileSource,
40-
SubmitPreprintSelectors,
4141
UploadFile,
42-
} from '@osf/features/preprints/store/submit-preprint';
42+
} from '@osf/features/preprints/store/preprint-stepper';
4343
import { FilesTreeActions } from '@osf/features/project/files/models';
4444
import { FilesTreeComponent, IconComponent } from '@shared/components';
4545
import { OsfFile } from '@shared/models';
@@ -70,29 +70,29 @@ export class FileStepComponent implements OnInit {
7070
private customConfirmationService = inject(CustomConfirmationService);
7171
private actions = createDispatchMap({
7272
setSelectedFileSource: SetSelectedPreprintFileSource,
73-
getPreprintFilesLinks: GetPreprintFilesLinks,
73+
getPreprintFilesLinks: FetchPreprintFilesLinks,
7474
uploadFile: UploadFile,
7575
reuploadFile: ReuploadFile,
76-
getAvailableProjects: GetAvailableProjects,
77-
getFilesForSelectedProject: GetProjectFiles,
78-
getProjectFilesByLink: GetProjectFilesByLink,
76+
getAvailableProjects: FetchAvailableProjects,
77+
getFilesForSelectedProject: FetchProjectFiles,
78+
getProjectFilesByLink: FetchProjectFilesByLink,
7979
copyFileFromProject: CopyFileFromProject,
8080
});
8181
private destroyRef = inject(DestroyRef);
8282

8383
readonly PreprintFileSource = PreprintFileSource;
8484

8585
provider = input.required<PreprintProviderDetails | undefined>();
86-
createdPreprint = select(SubmitPreprintSelectors.getCreatedPreprint);
87-
providerId = select(SubmitPreprintSelectors.getSelectedProviderId);
88-
selectedFileSource = select(SubmitPreprintSelectors.getSelectedFileSource);
89-
fileUploadLink = select(SubmitPreprintSelectors.getUploadLink);
90-
preprintFiles = select(SubmitPreprintSelectors.getPreprintFiles);
91-
arePreprintFilesLoading = select(SubmitPreprintSelectors.arePreprintFilesLoading);
92-
availableProjects = select(SubmitPreprintSelectors.getAvailableProjects);
93-
areAvailableProjectsLoading = select(SubmitPreprintSelectors.areAvailableProjectsLoading);
94-
projectFiles = select(SubmitPreprintSelectors.getProjectFiles);
95-
areProjectFilesLoading = select(SubmitPreprintSelectors.areProjectFilesLoading);
86+
createdPreprint = select(PreprintStepperSelectors.getCreatedPreprint);
87+
providerId = select(PreprintStepperSelectors.getSelectedProviderId);
88+
selectedFileSource = select(PreprintStepperSelectors.getSelectedFileSource);
89+
fileUploadLink = select(PreprintStepperSelectors.getUploadLink);
90+
preprintFiles = select(PreprintStepperSelectors.getPreprintFiles);
91+
arePreprintFilesLoading = select(PreprintStepperSelectors.arePreprintFilesLoading);
92+
availableProjects = select(PreprintStepperSelectors.getAvailableProjects);
93+
areAvailableProjectsLoading = select(PreprintStepperSelectors.areAvailableProjectsLoading);
94+
projectFiles = select(PreprintStepperSelectors.getProjectFiles);
95+
areProjectFilesLoading = select(PreprintStepperSelectors.areProjectFilesLoading);
9696
selectedProjectId = signal<StringOrNull>(null);
9797
currentFolder = signal<OsfFile | null>(null);
9898

src/app/features/preprints/components/stepper/metadata-step/metadata-step.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ <h2>{{ 'preprints.preprintStepper.metadata.publicationDateTitle' | translate }}<
6767
[showIcon]="true"
6868
[showOnFocus]="true"
6969
dateFormat="yy-mm-dd"
70+
[maxDate]="today"
7071
>
7172
<ng-template #inputicon>
7273
<osf-icon class="fa fa-calendar" />

src/app/features/preprints/components/stepper/metadata-step/metadata-step.component.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ import { MetadataForm, Preprint } from '@osf/features/preprints/models';
1818
import {
1919
CreatePreprint,
2020
FetchLicenses,
21+
PreprintStepperSelectors,
2122
SaveLicense,
22-
SubmitPreprintSelectors,
2323
UpdatePreprint,
24-
} from '@osf/features/preprints/store/submit-preprint';
24+
} from '@osf/features/preprints/store/preprint-stepper';
2525
import { IconComponent, LicenseComponent, TagsInputComponent, TextInputComponent } from '@shared/components';
2626
import { INPUT_VALIDATION_MESSAGES } from '@shared/constants';
2727
import { License, LicenseOptions } from '@shared/models';
@@ -65,10 +65,11 @@ export class MetadataStepComponent implements OnInit {
6565
protected metadataForm!: FormGroup<MetadataForm>;
6666
protected inputLimits = formInputLimits;
6767
protected readonly INPUT_VALIDATION_MESSAGES = INPUT_VALIDATION_MESSAGES;
68+
protected today = new Date();
6869

69-
licenses = select(SubmitPreprintSelectors.getLicenses);
70-
createdPreprint = select(SubmitPreprintSelectors.getCreatedPreprint);
71-
isUpdatingPreprint = select(SubmitPreprintSelectors.isPreprintSubmitting);
70+
licenses = select(PreprintStepperSelectors.getLicenses);
71+
createdPreprint = select(PreprintStepperSelectors.getCreatedPreprint);
72+
isUpdatingPreprint = select(PreprintStepperSelectors.isPreprintSubmitting);
7273

7374
nextClicked = output<void>();
7475
backClicked = output<void>();

src/app/features/preprints/components/stepper/metadata-step/preprints-subjects/preprints-subjects.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { Message } from 'primeng/message';
88
import { ChangeDetectionStrategy, Component, effect, input, OnInit } from '@angular/core';
99
import { FormControl } from '@angular/forms';
1010

11-
import { SubmitPreprintSelectors } from '@osf/features/preprints/store/submit-preprint';
11+
import { PreprintStepperSelectors } from '@osf/features/preprints/store/preprint-stepper';
1212
import { SubjectsComponent } from '@osf/shared/components';
1313
import { ResourceType } from '@osf/shared/enums';
1414
import { SubjectModel } from '@osf/shared/models';
@@ -31,7 +31,7 @@ import { INPUT_VALIDATION_MESSAGES } from '@shared/constants';
3131
export class PreprintsSubjectsComponent implements OnInit {
3232
preprintId = input<string>();
3333

34-
private readonly selectedProviderId = select(SubmitPreprintSelectors.getSelectedProviderId);
34+
private readonly selectedProviderId = select(PreprintStepperSelectors.getSelectedProviderId);
3535
protected selectedSubjects = select(SubjectsSelectors.getSelectedSubjects);
3636
protected isSubjectsUpdating = select(SubjectsSelectors.areSelectedSubjectsLoading);
3737
control = input.required<FormControl>();

src/app/features/preprints/components/stepper/review-step/review-step.component.html

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,19 @@ <h3>{{ 'preprints.preprintStepper.review.sections.metadata.affiliatedInstitution
7474
</section>
7575
}
7676

77-
<section class="flex flex-column gap-2">
77+
<section class="license flex flex-column gap-2">
7878
<h3>{{ 'preprints.preprintStepper.review.sections.metadata.license' | translate }}</h3>
7979

80-
<div>{{ license()?.name }}</div>
80+
<p-accordion>
81+
<p-accordion-panel value="0">
82+
<p-accordion-header class="p-0 justify-content-start gap-2">
83+
<div>{{ license()?.name }}</div>
84+
</p-accordion-header>
85+
<p-accordion-content>
86+
<div>{{ license()!.text | interpolate: licenseOptionsRecord() }}</div>
87+
</p-accordion-content>
88+
</p-accordion-panel>
89+
</p-accordion>
8190
</section>
8291

8392
<section class="flex flex-column gap-2">

src/app/features/preprints/components/stepper/review-step/review-step.component.ts

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { createDispatchMap, select } from '@ngxs/store';
22

33
import { TranslatePipe } from '@ngx-translate/core';
44

5+
import { Accordion, AccordionContent, AccordionHeader, AccordionPanel } from 'primeng/accordion';
56
import { Button } from 'primeng/button';
67
import { Card } from 'primeng/card';
78
import { Tag } from 'primeng/tag';
@@ -15,18 +16,32 @@ import { PreprintProviderDetails } from '@osf/features/preprints/models';
1516
import {
1617
FetchLicenses,
1718
FetchPreprintProject,
19+
PreprintStepperSelectors,
1820
SubmitPreprint,
19-
SubmitPreprintSelectors,
20-
} from '@osf/features/preprints/store/submit-preprint';
21+
} from '@osf/features/preprints/store/preprint-stepper';
2122
import { TruncatedTextComponent } from '@shared/components';
2223
import { ResourceType } from '@shared/enums';
2324
import { Institution } from '@shared/models';
25+
import { InterpolatePipe } from '@shared/pipes';
2426
import { ToastService } from '@shared/services';
2527
import { ContributorsSelectors, FetchSelectedSubjects, GetAllContributors, SubjectsSelectors } from '@shared/stores';
2628

2729
@Component({
2830
selector: 'osf-review-step',
29-
imports: [Card, TruncatedTextComponent, Tag, DatePipe, Button, TitleCasePipe, TranslatePipe],
31+
imports: [
32+
Card,
33+
TruncatedTextComponent,
34+
Tag,
35+
DatePipe,
36+
Button,
37+
TitleCasePipe,
38+
TranslatePipe,
39+
Accordion,
40+
AccordionContent,
41+
AccordionHeader,
42+
AccordionPanel,
43+
InterpolatePipe,
44+
],
3045
templateUrl: './review-step.component.html',
3146
styleUrl: './review-step.component.scss',
3247
changeDetection: ChangeDetectionStrategy.OnPush,
@@ -42,16 +57,19 @@ export class ReviewStepComponent implements OnInit {
4257
submitPreprint: SubmitPreprint,
4358
});
4459
provider = input.required<PreprintProviderDetails | undefined>();
45-
createdPreprint = select(SubmitPreprintSelectors.getCreatedPreprint);
60+
createdPreprint = select(PreprintStepperSelectors.getCreatedPreprint);
4661

4762
contributors = select(ContributorsSelectors.getContributors);
4863
bibliographicContributors = computed(() => {
4964
return this.contributors().filter((contributor) => contributor.isBibliographic);
5065
});
5166
subjects = select(SubjectsSelectors.getSelectedSubjects);
5267
affiliatedInstitutions = signal<Institution[]>([]);
53-
license = select(SubmitPreprintSelectors.getPreprintLicense);
54-
preprintProject = select(SubmitPreprintSelectors.getPreprintProject);
68+
license = select(PreprintStepperSelectors.getPreprintLicense);
69+
preprintProject = select(PreprintStepperSelectors.getPreprintProject);
70+
licenseOptionsRecord = computed(() => {
71+
return (this.createdPreprint()?.licenseOptions ?? {}) as Record<string, string>;
72+
});
5573

5674
readonly ApplicabilityStatus = ApplicabilityStatus;
5775
readonly PreregLinkInfo = PreregLinkInfo;

src/app/features/preprints/components/stepper/supplements-step/supplements-step.component.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ import {
3131
ConnectProject,
3232
CreateNewProject,
3333
DisconnectProject,
34+
FetchAvailableProjects,
3435
FetchPreprintProject,
35-
GetAvailableProjects,
36-
SubmitPreprintSelectors,
37-
} from '@osf/features/preprints/store/submit-preprint';
36+
PreprintStepperSelectors,
37+
} from '@osf/features/preprints/store/preprint-stepper';
3838
import { AddProjectFormComponent } from '@shared/components';
3939
import { ProjectFormControls } from '@shared/enums';
4040
import { ProjectForm } from '@shared/models';
@@ -62,7 +62,7 @@ export class SupplementsStepComponent implements OnInit {
6262
private customConfirmationService = inject(CustomConfirmationService);
6363
private readonly toastService = inject(ToastService);
6464
private actions = createDispatchMap({
65-
getAvailableProjects: GetAvailableProjects,
65+
getAvailableProjects: FetchAvailableProjects,
6666
connectProject: ConnectProject,
6767
disconnectProject: DisconnectProject,
6868
fetchPreprintProject: FetchPreprintProject,
@@ -72,12 +72,12 @@ export class SupplementsStepComponent implements OnInit {
7272

7373
readonly SupplementOptions = SupplementOptions;
7474

75-
createdPreprint = select(SubmitPreprintSelectors.getCreatedPreprint);
76-
isPreprintSubmitting = select(SubmitPreprintSelectors.isPreprintSubmitting);
77-
availableProjects = select(SubmitPreprintSelectors.getAvailableProjects);
78-
areAvailableProjectsLoading = select(SubmitPreprintSelectors.areAvailableProjectsLoading);
79-
preprintProject = select(SubmitPreprintSelectors.getPreprintProject);
80-
isPreprintProjectLoading = select(SubmitPreprintSelectors.isPreprintProjectLoading);
75+
createdPreprint = select(PreprintStepperSelectors.getCreatedPreprint);
76+
isPreprintSubmitting = select(PreprintStepperSelectors.isPreprintSubmitting);
77+
availableProjects = select(PreprintStepperSelectors.getAvailableProjects);
78+
areAvailableProjectsLoading = select(PreprintStepperSelectors.areAvailableProjectsLoading);
79+
preprintProject = select(PreprintStepperSelectors.getPreprintProject);
80+
isPreprintProjectLoading = select(PreprintStepperSelectors.isPreprintProjectLoading);
8181

8282
selectedSupplementOption = signal<SupplementOptions>(SupplementOptions.None);
8383
selectedProjectId = signal<StringOrNull>(null);

src/app/features/preprints/components/stepper/title-and-abstract-step/title-and-abstract-step.component.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ import { RouterLink } from '@angular/router';
1414

1515
import { formInputLimits } from '@osf/features/preprints/constants';
1616
import { TitleAndAbstractForm } from '@osf/features/preprints/models';
17-
import { CreatePreprint, SubmitPreprintSelectors, UpdatePreprint } from '@osf/features/preprints/store/submit-preprint';
17+
import {
18+
CreatePreprint,
19+
PreprintStepperSelectors,
20+
UpdatePreprint,
21+
} from '@osf/features/preprints/store/preprint-stepper';
1822
import { TextInputComponent } from '@shared/components';
1923
import { INPUT_VALIDATION_MESSAGES } from '@shared/constants';
2024
import { ToastService } from '@shared/services';
@@ -64,10 +68,10 @@ export class TitleAndAbstractStepComponent {
6468
}),
6569
});
6670

67-
createdPreprint = select(SubmitPreprintSelectors.getCreatedPreprint);
68-
providerId = select(SubmitPreprintSelectors.getSelectedProviderId);
71+
createdPreprint = select(PreprintStepperSelectors.getCreatedPreprint);
72+
providerId = select(PreprintStepperSelectors.getSelectedProviderId);
6973

70-
isUpdatingPreprint = select(SubmitPreprintSelectors.isPreprintSubmitting);
74+
isUpdatingPreprint = select(PreprintStepperSelectors.isPreprintSubmitting);
7175
nextClicked = output<void>();
7276

7377
constructor() {

0 commit comments

Comments
 (0)