Skip to content

Commit 0ec95b2

Browse files
138928: moved PdfViewerConfig + accessibility fixes
1 parent b4582ff commit 0ec95b2

8 files changed

Lines changed: 31 additions & 14 deletions

File tree

src/app/pdf-viewer/pdf-viewer-enable-dso/pdf-viewer-enable-dso.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ <h3 class="mt-3">{{ 'pdf-viewer.enable-viewer.title' |translate }}</h3>
88
<div>
99
<hr>
1010
<div class="mb-3 row">
11-
<div class="col text-end">
11+
<div class="col text-end space-children-mr">
1212
<button (click)="back()" class="btn btn-outline-secondary">
1313
<i class="fas fa-arrow-left"></i> {{ 'pdf-viewer.enable-viewer.return' | translate }}
1414
</button>

src/app/pdf-viewer/pdf-viewer-enable/pdf-viewer-enable.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@ export class PdfViewerEnableComponent implements OnInit {
4343
}
4444

4545
ngOnInit() {
46-
this.isEnabled$ = this.pdfViewerService.isViewerEnabled(this.dso);
46+
this.isEnabled$ = this.pdfViewerService.isViewerEnabled$(this.dso);
4747
this.isEnabled$.pipe(
4848
take(1),
4949
).subscribe((isEnabled) => this.update(isEnabled));
50-
this.isViewerConfigAllowed$ = this.pdfViewerService.viewerAllowedForBitstreamFormat(this.dso);
50+
this.isViewerConfigAllowed$ = this.pdfViewerService.viewerAllowedForBitstreamFormat$(this.dso);
5151
}
5252

5353
update($event: boolean) {

src/app/pdf-viewer/pdf-viewer-service/pdf-viewer-service.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ export class PdfViewerService {
4646
* Is the user allowed to visit the PDF viewer for a given bitstream
4747
* @param bitstream The bitstream to view
4848
*/
49-
viewerAllowed(bitstream: Bitstream): Observable<boolean> {
50-
return combineLatest([this.viewerAllowedForBitstreamFormat(bitstream),
51-
this.isViewerEnabled(bitstream)]).pipe(
49+
viewerAllowed$(bitstream: Bitstream): Observable<boolean> {
50+
return combineLatest([this.viewerAllowedForBitstreamFormat$(bitstream),
51+
this.isViewerEnabled$(bitstream)]).pipe(
5252
map(([viewerAllowed, viewerEnabled]) => viewerAllowed && viewerEnabled),
5353
);
5454
}
@@ -59,7 +59,7 @@ export class PdfViewerService {
5959
* is a pdf when the dso is a bitstream
6060
* @param dso The dspace object to check
6161
*/
62-
viewerAllowedForBitstreamFormat(dso: DSpaceObject): Observable<boolean> {
62+
viewerAllowedForBitstreamFormat$(dso: DSpaceObject): Observable<boolean> {
6363
if (dso instanceof Bitstream) {
6464
return this.bitstreamFormatService.findByBitstream(dso).pipe(
6565
getAllSucceededRemoteDataPayload(),
@@ -74,7 +74,7 @@ export class PdfViewerService {
7474
* Is the viewer enabled for this dspace object
7575
* @param dsoToCheck The dspace object to check
7676
*/
77-
isViewerEnabled(dsoToCheck: DSpaceObject): Observable<boolean> {
77+
isViewerEnabled$(dsoToCheck: DSpaceObject): Observable<boolean> {
7878
return of(dsoToCheck).pipe(
7979
expand((dso: DSpaceObject) => {
8080
if (hasValue(dso) && typeof (dso as any).firstMetadataValue === 'function' && hasNoValue(dso.firstMetadataValue('dspace.pdfviewer.enabled')) && typeof (dso as any).getParentLinkKey === 'function') {
@@ -95,10 +95,10 @@ export class PdfViewerService {
9595
toArray(),
9696
map((dsos: DSpaceObject[]) => {
9797
const dsosWithViewerInfo = dsos.filter((dso) => dso.firstMetadataValue('dspace.pdfviewer.enabled'));
98-
if (isNotEmpty(dsosWithViewerInfo)) {
98+
if (isNotEmpty(dsosWithViewerInfo) && environment.pdfViewer.enabled) {
9999
return dsosWithViewerInfo[0].firstMetadataValue('dspace.pdfviewer.enabled') === 'true';
100100
} else {
101-
return environment.pdfViewer?.enabled ?? true;
101+
return environment.pdfViewer.enabled;
102102
}
103103
}),
104104
);

src/app/shared/file-download-link/file-download-link.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,11 @@
5151
}
5252
<ng-container *ngTemplateOutlet="content"></ng-container>
5353
<span>
54-
<a [routerLink]="pdfViewerPath" [ngClass]="cssClasses"
54+
<a role="link" [routerLink]="pdfViewerPath" [ngClass]="cssClasses"
5555
title="{{'pdf-viewer.link.view' | translate}}">
5656
<i class="fa fa-eye ms-2" ngbTooltip="{{'pdf-viewer.link.view' | translate}}"
5757
container="body"></i></a>
58-
<a [routerLink]="(bitstreamPath$| async)?.routerLink" [queryParams]="(bitstreamPath$| async)?.queryParams"
58+
<a role="link" [routerLink]="(bitstreamPath$| async)?.routerLink" [queryParams]="(bitstreamPath$| async)?.queryParams"
5959
[target]="isBlank ? '_blank': '_self'" [ngClass]="cssClasses"
6060
title="{{'pdf-viewer.link.download' | translate}}">
6161
<i class="fa fa-file-download ms-2" ngbTooltip="{{'pdf-viewer.link.download' | translate}}"

src/app/shared/file-download-link/file-download-link.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ export class FileDownloadLinkComponent implements OnInit {
134134
}
135135

136136
this.pdfViewerPath = getPdfViewerRoute(this.bitstream.id);
137-
this.pdfViewerAllowed$ = this.pdfViewerService.viewerAllowed(this.bitstream);
137+
this.pdfViewerAllowed$ = this.pdfViewerService.viewerAllowed$(this.bitstream);
138138
}
139139

140140
/**

src/config/app-config.interface.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {
22
InjectionToken,
33
makeStateKey,
44
} from '@angular/core';
5+
import { PdfViewerConfig } from '@dspace/config/pdf-viewer-config';
56

67
import { AccessibilitySettingsConfig } from './accessibility-settings.config';
78
import { ActuatorsConfig } from './actuators.config';
@@ -69,7 +70,7 @@ interface AppConfig extends Config {
6970
matomo?: MatomoConfig;
7071
geospatialMapViewer: GeospatialMapConfig;
7172
accessibility: AccessibilitySettingsConfig;
72-
pdfViewer?: { enabled: boolean };
73+
pdfViewer: PdfViewerConfig;
7374
}
7475

7576
/**

src/config/default-app-config.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { PdfViewerConfig } from '@dspace/config/pdf-viewer-config';
2+
13
import { AccessibilitySettingsConfig } from './accessibility-settings.config';
24
import { ActuatorsConfig } from './actuators.config';
35
import { AdminNotifyMetricsRow } from './admin-notify-metrics.config';
@@ -647,4 +649,9 @@ export class DefaultAppConfig implements AppConfig {
647649
accessibility: AccessibilitySettingsConfig = {
648650
cookieExpirationDuration: 7,
649651
};
652+
653+
// PDF viewer configuration, used by the PdfViewerService
654+
pdfViewer: PdfViewerConfig = {
655+
enabled: true,
656+
};
650657
}

src/config/pdf-viewer-config.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { Config } from './config.interface';
2+
3+
export class PdfViewerConfig implements Config {
4+
5+
/**
6+
* Whether the PDF viewer is enabled throughout the whole application
7+
*/
8+
public enabled: boolean;
9+
}

0 commit comments

Comments
 (0)