Skip to content

Commit 4626bac

Browse files
alisaismailatiatarix83
authored andcommitted
Merged in task/ux-plus-2023_02_x/UXP-198 (pull request #25)
Task/ux plus 2023 02 x/UXP-198 Approved-by: Giuseppe Digilio
2 parents 697a4ea + 8316d8b commit 4626bac

7 files changed

Lines changed: 58 additions & 47 deletions

File tree

src/app/submission/sections/unpaywall/models/unpaywall-section-status.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ export enum UnpaywallSectionStatus {
44
SUCCESSFUL = 'SUCCESSFUL',
55
NO_FILE = 'NO_FILE',
66
IMPORTED = 'IMPORTED',
7+
ERROR = 'ERROR',
78
}

src/app/submission/sections/unpaywall/submission-section-unpaywall.component.html

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
[content]="'submission.sections.unpaywall.status.imported' | translate"></ds-alert>
1212
</ng-container>
1313
<ng-container *ngSwitchCase="UnpaywallSectionStatus.PENDING">
14-
<ds-alert [type]="AlertType.Info"
14+
<ds-alert [type]="AlertType.Warning"
1515
[content]="'submission.sections.unpaywall.status.pending' | translate"></ds-alert>
1616
</ng-container>
1717
<ng-container *ngSwitchCase="UnpaywallSectionStatus.NO_FILE">
@@ -22,6 +22,10 @@
2222
<ds-alert [type]="AlertType.Error"
2323
[content]="'submission.sections.unpaywall.status.not-found' | translate"></ds-alert>
2424
</ng-container>
25+
<ng-container *ngSwitchCase="UnpaywallSectionStatus.ERROR">
26+
<ds-alert [type]="AlertType.Error"
27+
[content]="'submission.sections.unpaywall.status.error' | translate"></ds-alert>
28+
</ng-container>
2529
</div>
2630
</div>
2731
</div>
@@ -31,11 +35,13 @@
3135
<ds-themed-loading *ngSwitchCase="true" class="ds-themed-loading"></ds-themed-loading>
3236
<ng-container *ngSwitchCase="false">
3337
<button type="button" class="btn btn-secondary mr-2" aria-label="refresh"
38+
*ngIf="(status$ | async) !== UnpaywallSectionStatus.IMPORTED"
3439
(click)="refreshApiCheck()">
3540
<span aria-hidden="true">{{'submission.sections.unpaywall.refresh' | translate}}</span>
3641
</button>
3742
<button type="button" class="btn btn-success" aria-label="import from unpaywall"
38-
(click)="confirmImport()" [disabled]="(status$ | async) !== UnpaywallSectionStatus.SUCCESSFUL">
43+
*ngIf="(status$ | async) === UnpaywallSectionStatus.SUCCESSFUL"
44+
(click)="confirmImport()">
3945
<span aria-hidden="true">{{'submission.sections.unpaywall.import' | translate}}</span>
4046
</button>
4147
</ng-container>

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

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ import {
5353
} from '../../../core/submission/models/workspaceitem-section-upload-file.model';
5454

5555
const DOI_METADATA = 'dc.identifier.doi';
56-
const API_CHECK_INTERVAL = 3000;
57-
const MAX_TRIES = 5;
56+
const API_CHECK_INTERVAL = 5000;
57+
const MAX_TRIES = 2;
5858

5959
function attemptsGuardFactory(maxAttempts: number) {
6060
return (attemptsCount: number) => {
@@ -204,6 +204,8 @@ export class SubmissionSectionUnpaywallComponent extends SectionModelComponent i
204204
this.loading$.next(isLoading);
205205
if (!isLoading) {
206206
this.stopFetch$.next();
207+
} else if (unpaywall?.status === UnpaywallSectionStatus.PENDING) {
208+
this.notificationsService.warning(this.translate.instant('submission.sections.unpaywall.status.pending'));
207209
}
208210
});
209211
}
@@ -217,12 +219,6 @@ export class SubmissionSectionUnpaywallComponent extends SectionModelComponent i
217219

218220
protected handleStatusNotification(status: UnpaywallSectionStatus) {
219221
switch (status) {
220-
case UnpaywallSectionStatus.NOT_FOUND:
221-
this.notificationsService.error(this.translate.instant('submission.sections.unpaywall.status.not-found'));
222-
break;
223-
case UnpaywallSectionStatus.NO_FILE:
224-
this.notificationsService.warning(this.translate.instant('submission.sections.unpaywall.status.no-file'));
225-
break;
226222
case UnpaywallSectionStatus.SUCCESSFUL:
227223
this.notificationsService.success(this.translate.instant('submission.sections.unpaywall.status.successful'));
228224
break;
@@ -293,7 +289,7 @@ export class SubmissionSectionUnpaywallComponent extends SectionModelComponent i
293289
this.notificationsService.error(err?.message);
294290
return of(Object.assign({}, {
295291
...this.unpaywallSection$.getValue(),
296-
status: UnpaywallSectionStatus.NO_FILE
292+
status: UnpaywallSectionStatus.ERROR
297293
}));
298294
}),
299295
).subscribe((unpaywall) => {
@@ -357,7 +353,9 @@ export class SubmissionSectionUnpaywallComponent extends SectionModelComponent i
357353
}
358354

359355
private getDoiMetadataValue(value: SubmissionObjectEntry): string {
360-
return value.sections[value.definition]?.data?.[DOI_METADATA]?.[0]?.value;
356+
return Object.values(value.sections)
357+
.find((section) => section?.data?.[DOI_METADATA]?.[0]?.value !== undefined)
358+
?.data?.[DOI_METADATA]?.[0]?.value;
361359
}
362360

363361
private hideCurrentSection(): void {

src/assets/i18n/de.json5

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12063,25 +12063,26 @@
1206312063
// TODO New key - Add a translation
1206412064
"submission.sections.unpaywall.refresh": "Refresh",
1206512065

12066-
// "submission.sections.unpaywall.import": "Import from unpaywall",
12066+
// "submission.sections.unpaywall.import": "Import from Unpaywall",
1206712067
// TODO New key - Add a translation
12068-
"submission.sections.unpaywall.import": "Import from unpaywall",
12068+
"submission.sections.unpaywall.import": "Import from Unpaywall",
1206912069

12070-
// "submission.sections.unpaywall.status.successful": "You can import from unpaywall",
12070+
// "submission.sections.unpaywall.status.successful": "There are available files to import from Unpaywall.",
1207112071
// TODO New key - Add a translation
12072-
"submission.sections.unpaywall.status.successful": "You can import from unpaywall",
12072+
"submission.sections.unpaywall.status.successful": "There are available files to import from Unpaywall.",
1207312073

12074-
// "submission.sections.unpaywall.status.not-found": "Can't find record using Unpaywall api",
12074+
// "submission.sections.unpaywall.status.not-found": "Cannot find record using Unpaywall API.",
1207512075
// TODO New key - Add a translation
12076-
"submission.sections.unpaywall.status.not-found": "Can't find record using Unpaywall api",
12076+
"submission.sections.unpaywall.status.not-found": "Cannot find record using Unpaywall API.",
1207712077

12078-
// "submission.sections.unpaywall.status.pending": "Unpaywall api request is initialized",
12078+
// "submission.sections.unpaywall.status.pending": "Unable to retrieve information from the Unpaywall service. You can use the refresh button to manually check if an answer has been received.",
1207912079
// TODO New key - Add a translation
12080-
"submission.sections.unpaywall.status.pending": "Unpaywall api request is initialized",
12080+
"submission.sections.unpaywall.status.pending": "Unable to retrieve information from the Unpaywall service. You can use the refresh button to manually check if an answer has been received.",
1208112081

12082-
// "submission.sections.unpaywall.status.no-file": "There are no files to be imported",
12082+
// "submission.sections.unpaywall.status.no-file": "There are no available files to be imported.",
1208312083
// TODO New key - Add a translation
12084-
"submission.sections.unpaywall.status.no-file": "There are no files to be imported",
12084+
"submission.sections.unpaywall.status.no-file": "There are no available files to be imported.",
12085+
1208512086
// "submission.sections.unpaywall.status.imported": "The Unpaywall resource has been imported!",
1208612087
// TODO New key - Add a translation
1208712088
"submission.sections.unpaywall.status.imported": "The Unpaywall resource has been imported!",

src/assets/i18n/en.json5

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6837,15 +6837,18 @@
68376837

68386838
"submission.sections.unpaywall.refresh": "Refresh",
68396839

6840-
"submission.sections.unpaywall.import": "Import from unpaywall",
6840+
"submission.sections.unpaywall.import": "Import from Unpaywall",
68416841

6842-
"submission.sections.unpaywall.status.successful": "You can import from unpaywall",
6842+
"submission.sections.unpaywall.status.error": "An unexpected error has occurred.",
68436843

6844-
"submission.sections.unpaywall.status.not-found": "Can't find record using Unpaywall api",
6844+
"submission.sections.unpaywall.status.successful": "There are available files to import from Unpaywall.",
68456845

6846-
"submission.sections.unpaywall.status.pending": "Unpaywall api request is initialized",
6846+
"submission.sections.unpaywall.status.not-found": "Cannot find record using Unpaywall API.",
6847+
6848+
"submission.sections.unpaywall.status.pending": "Unable to retrieve information from the Unpaywall service. You can use the refresh button to manually check if an answer has been received.",
6849+
6850+
"submission.sections.unpaywall.status.no-file": "There are no available files to be imported.",
68476851

6848-
"submission.sections.unpaywall.status.no-file": "There are no files to be imported",
68496852
"submission.sections.unpaywall.status.imported": "The Unpaywall resource has been imported!",
68506853

68516854
"submission.sections.submit.progressbar.unpaywall": "Unpaywall",

src/assets/i18n/es.json5

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11382,25 +11382,26 @@
1138211382
// TODO New key - Add a translation
1138311383
"submission.sections.unpaywall.refresh": "Refresh",
1138411384

11385-
// "submission.sections.unpaywall.import": "Import from unpaywall",
11385+
// "submission.sections.unpaywall.import": "Import from Unpaywall",
1138611386
// TODO New key - Add a translation
11387-
"submission.sections.unpaywall.import": "Import from unpaywall",
11387+
"submission.sections.unpaywall.import": "Import from Unpaywall",
1138811388

11389-
// "submission.sections.unpaywall.status.successful": "You can import from unpaywall",
11389+
// "submission.sections.unpaywall.status.successful": "There are available files to import from Unpaywall.",
1139011390
// TODO New key - Add a translation
11391-
"submission.sections.unpaywall.status.successful": "You can import from unpaywall",
11391+
"submission.sections.unpaywall.status.successful": "There are available files to import from Unpaywall.",
1139211392

11393-
// "submission.sections.unpaywall.status.not-found": "Can't find record using Unpaywall api",
11393+
// "submission.sections.unpaywall.status.not-found": "Cannot find record using Unpaywall API.",
1139411394
// TODO New key - Add a translation
11395-
"submission.sections.unpaywall.status.not-found": "Can't find record using Unpaywall api",
11395+
"submission.sections.unpaywall.status.not-found": "Cannot find record using Unpaywall API.",
1139611396

11397-
// "submission.sections.unpaywall.status.pending": "Unpaywall api request is initialized",
11397+
// "submission.sections.unpaywall.status.pending": "Unable to retrieve information from the Unpaywall service. You can use the refresh button to manually check if an answer has been received.",
1139811398
// TODO New key - Add a translation
11399-
"submission.sections.unpaywall.status.pending": "Unpaywall api request is initialized",
11399+
"submission.sections.unpaywall.status.pending": "Unable to retrieve information from the Unpaywall service. You can use the refresh button to manually check if an answer has been received.",
1140011400

11401-
// "submission.sections.unpaywall.status.no-file": "There are no files to be imported",
11401+
// "submission.sections.unpaywall.status.no-file": "There are no available files to be imported.",
1140211402
// TODO New key - Add a translation
11403-
"submission.sections.unpaywall.status.no-file": "There are no files to be imported",
11403+
"submission.sections.unpaywall.status.no-file": "There are no available files to be imported.",
11404+
1140411405
// "submission.sections.unpaywall.status.imported": "The Unpaywall resource has been imported!",
1140511406
// TODO New key - Add a translation
1140611407
"submission.sections.unpaywall.status.imported": "The Unpaywall resource has been imported!",

src/assets/i18n/fr.json5

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11736,25 +11736,26 @@
1173611736
// TODO New key - Add a translation
1173711737
"submission.sections.unpaywall.refresh": "Refresh",
1173811738

11739-
// "submission.sections.unpaywall.import": "Import from unpaywall",
11739+
// "submission.sections.unpaywall.import": "Import from Unpaywall",
1174011740
// TODO New key - Add a translation
11741-
"submission.sections.unpaywall.import": "Import from unpaywall",
11741+
"submission.sections.unpaywall.import": "Import from Unpaywall",
1174211742

11743-
// "submission.sections.unpaywall.status.successful": "You can import from unpaywall",
11743+
// "submission.sections.unpaywall.status.successful": "There are available files to import from Unpaywall.",
1174411744
// TODO New key - Add a translation
11745-
"submission.sections.unpaywall.status.successful": "You can import from unpaywall",
11745+
"submission.sections.unpaywall.status.successful": "There are available files to import from Unpaywall.",
1174611746

11747-
// "submission.sections.unpaywall.status.not-found": "Can't find record using Unpaywall api",
11747+
// "submission.sections.unpaywall.status.not-found": "Cannot find record using Unpaywall API.",
1174811748
// TODO New key - Add a translation
11749-
"submission.sections.unpaywall.status.not-found": "Can't find record using Unpaywall api",
11749+
"submission.sections.unpaywall.status.not-found": "Cannot find record using Unpaywall API.",
1175011750

11751-
// "submission.sections.unpaywall.status.pending": "Unpaywall api request is initialized",
11751+
// "submission.sections.unpaywall.status.pending": "Unable to retrieve information from the Unpaywall service. You can use the refresh button to manually check if an answer has been received.",
1175211752
// TODO New key - Add a translation
11753-
"submission.sections.unpaywall.status.pending": "Unpaywall api request is initialized",
11753+
"submission.sections.unpaywall.status.pending": "Unable to retrieve information from the Unpaywall service. You can use the refresh button to manually check if an answer has been received.",
1175411754

11755-
// "submission.sections.unpaywall.status.no-file": "There are no files to be imported",
11755+
// "submission.sections.unpaywall.status.no-file": "There are no available files to be imported.",
1175611756
// TODO New key - Add a translation
11757-
"submission.sections.unpaywall.status.no-file": "There are no files to be imported",
11757+
"submission.sections.unpaywall.status.no-file": "There are no available files to be imported.",
11758+
1175811759
// "submission.sections.unpaywall.status.imported": "The Unpaywall resource has been imported!",
1175911760
// TODO New key - Add a translation
1176011761
"submission.sections.unpaywall.status.imported": "The Unpaywall resource has been imported!",

0 commit comments

Comments
 (0)