Skip to content

Commit 02a569a

Browse files
authored
Fix/1063 bug (#654)
* fix(submissions): updated submissions navigation * fix(tests): fixed unit tests * fix(view-only-link): fixed bug
1 parent eba1ca8 commit 02a569a

File tree

14 files changed

+45
-59
lines changed

14 files changed

+45
-59
lines changed

src/app/features/contributors/components/create-view-link-dialog/create-view-link-dialog.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
<osf-component-checkbox-item
3838
[item]="item"
3939
[tooltipText]="'myProjects.settings.parentsNeedToBeChecked'"
40-
(checkboxChange)="onCheckboxChange(item)"
40+
(itemChange)="onCheckboxChange(item)"
4141
/>
4242
}
4343
</div>

src/app/features/moderation/components/collection-submission-item/collection-submission-item.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
[iconClass]="reviewStatusIcon[submission().reviewsState].icon"
1010
></osf-icon>
1111

12-
<p-button class="link-btn-no-padding" link (click)="handleNavigation()" [label]="submission().title" />
12+
<p-button class="link-btn-no-padding" link (onClick)="handleNavigation()" [label]="submission().title" />
1313
</div>
1414

1515
<p class="flex flex-wrap gap-1 mt-2">

src/app/features/moderation/components/collection-submission-item/collection-submission-item.component.spec.ts

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -127,18 +127,6 @@ describe('CollectionSubmissionItemComponent', () => {
127127
expect(attributes!.length).toBeGreaterThan(0);
128128
});
129129

130-
it('should handle navigation correctly', () => {
131-
fixture.componentRef.setInput('submission', mockSubmission);
132-
fixture.detectChanges();
133-
134-
component.handleNavigation();
135-
136-
expect(mockRouter.navigate).toHaveBeenCalledWith(['../', mockSubmission.nodeId], {
137-
relativeTo: expect.any(Object),
138-
queryParams: { status: 'pending', mode: 'moderation' },
139-
});
140-
});
141-
142130
it('should have SubmissionReviewStatus enum available', () => {
143131
expect(component.SubmissionReviewStatus).toBe(SubmissionReviewStatus);
144132
});

src/app/features/moderation/components/collection-submission-item/collection-submission-item.component.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export class CollectionSubmissionItemComponent {
3232
collectionProvider = select(CollectionsSelectors.getCollectionProvider);
3333

3434
readonly reviewStatusIcon = ReviewStatusIcon;
35+
readonly SubmissionReviewStatus = SubmissionReviewStatus;
3536

3637
currentReviewAction = computed(() => {
3738
const actions = this.submission().actions;
@@ -57,11 +58,13 @@ export class CollectionSubmissionItemComponent {
5758
const currentStatus = this.activatedRoute.snapshot.queryParams['status'];
5859
const queryParams = currentStatus ? { status: currentStatus, mode: 'moderation' } : {};
5960

60-
this.router.navigate(['../', this.submission().nodeId], {
61-
relativeTo: this.activatedRoute,
62-
queryParams,
63-
});
64-
}
61+
const url = this.router.serializeUrl(
62+
this.router.createUrlTree(['../', this.submission().nodeId], {
63+
relativeTo: this.activatedRoute,
64+
queryParams,
65+
})
66+
);
6567

66-
readonly SubmissionReviewStatus = SubmissionReviewStatus;
68+
window.open(url, '_blank');
69+
}
6770
}

src/app/features/moderation/components/preprint-submissions/preprint-submissions.component.spec.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -130,14 +130,6 @@ describe('PreprintSubmissionsComponent', () => {
130130
expect(component.first()).toBe(0);
131131
});
132132

133-
it('should navigate to preprint', () => {
134-
const mockItem = mockSubmissions[0];
135-
component.navigateToPreprint(mockItem);
136-
expect(mockRouter.navigate).toHaveBeenCalledWith(['/preprints/', mockProviderId, mockItem.id], {
137-
queryParams: { mode: 'moderator' },
138-
});
139-
});
140-
141133
it('should get status from query params on init', () => {
142134
expect(component.selectedReviewOption()).toBe(SubmissionReviewStatus.Pending);
143135
});

src/app/features/moderation/components/preprint-submissions/preprint-submissions.component.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,11 @@ export class PreprintSubmissionsComponent implements OnInit {
113113
}
114114

115115
navigateToPreprint(item: PreprintSubmission) {
116-
this.router.navigate(['/preprints/', this.providerId(), item.id], { queryParams: { mode: 'moderator' } });
116+
const url = this.router.serializeUrl(
117+
this.router.createUrlTree(['/preprints/', this.providerId(), item.id], { queryParams: { mode: 'moderator' } })
118+
);
119+
120+
window.open(url, '_blank');
117121
}
118122

119123
private getStatusFromQueryParams() {

src/app/features/moderation/components/registry-submission-item/registry-submission-item.component.html

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,7 @@ <h4>{{ submission().title }}</h4>
1010
link
1111
styleClass="text-left"
1212
[label]="submission().title"
13-
[routerLink]="['/', submission().id, 'overview']"
14-
[queryParams]="{
15-
mode: 'moderator',
16-
revisionId: isPendingModeration && !isPending ? submission().revisionId : null,
17-
}"
13+
(onClick)="selected.emit()"
1814
/>
1915
}
2016

src/app/features/moderation/components/registry-submission-item/registry-submission-item.component.spec.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,6 @@ describe('RegistrySubmissionItemComponent', () => {
6161
expect(component.showAll).toBe(false);
6262
});
6363

64-
it('should compute isPendingModeration correctly', () => {
65-
expect(component.isPendingModeration).toBe(true);
66-
});
67-
68-
it('should compute isPending correctly', () => {
69-
expect(component.isPending).toBe(true);
70-
});
71-
7264
it('should accept custom input values', () => {
7365
const customStatus = SubmissionReviewStatus.Accepted;
7466
const customSubmission = { ...mockSubmission, title: 'Custom Registry Submission' };

src/app/features/moderation/components/registry-submission-item/registry-submission-item.component.ts

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@ import { TranslatePipe } from '@ngx-translate/core';
33
import { Button } from 'primeng/button';
44

55
import { DatePipe } from '@angular/common';
6-
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
7-
import { RouterLink } from '@angular/router';
6+
import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';
87

98
import { IconComponent } from '@osf/shared/components';
10-
import { RegistrationReviewStates, RevisionReviewStates } from '@osf/shared/enums';
119
import { DateAgoPipe } from '@osf/shared/pipes';
1210

1311
import { REGISTRY_ACTION_LABEL, ReviewStatusIcon } from '../../constants';
@@ -16,7 +14,7 @@ import { RegistryModeration } from '../../models';
1614

1715
@Component({
1816
selector: 'osf-registry-submission-item',
19-
imports: [IconComponent, DateAgoPipe, Button, TranslatePipe, RouterLink, DatePipe],
17+
imports: [IconComponent, DateAgoPipe, Button, TranslatePipe, DatePipe],
2018
templateUrl: './registry-submission-item.component.html',
2119
styleUrl: './registry-submission-item.component.scss',
2220
changeDetection: ChangeDetectionStrategy.OnPush,
@@ -25,24 +23,15 @@ export class RegistrySubmissionItemComponent {
2523
status = input.required<SubmissionReviewStatus>();
2624
submission = input.required<RegistryModeration>();
2725

26+
selected = output<void>();
27+
2828
readonly reviewStatusIcon = ReviewStatusIcon;
2929
readonly registryActionLabel = REGISTRY_ACTION_LABEL;
3030
readonly registryActionState = ActionStatus;
3131

3232
limitValue = 1;
3333
showAll = false;
3434

35-
get isPendingModeration(): boolean {
36-
return this.submission().revisionStatus === RevisionReviewStates.RevisionPendingModeration;
37-
}
38-
39-
get isPending(): boolean {
40-
return (
41-
this.submission().reviewsState === RegistrationReviewStates.Pending ||
42-
this.submission().reviewsState === RegistrationReviewStates.PendingWithdraw
43-
);
44-
}
45-
4635
get isRejected(): boolean {
4736
return this.status() === SubmissionReviewStatus.Rejected;
4837
}

src/app/features/moderation/components/registry-submissions/registry-submissions.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
<osf-registry-submission-item
3939
[submission]="item"
4040
[status]="selectedReviewOption()"
41+
(selected)="navigateToRegistration(item)"
4142
></osf-registry-submission-item>
4243
</div>
4344
}

0 commit comments

Comments
 (0)