Skip to content

Commit f4e9594

Browse files
Themed MediaViewerImageComponent
1 parent faec78a commit f4e9594

8 files changed

Lines changed: 71 additions & 10 deletions

File tree

src/app/item-page/item-page.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import { MediaViewerComponent } from './media-viewer/media-viewer.component';
3030
import { ThemedMediaViewerComponent } from './media-viewer/themed-media-viewer.component';
3131
import { MediaViewerVideoComponent } from './media-viewer/media-viewer-video/media-viewer-video.component';
3232
import { MediaViewerImageComponent } from './media-viewer/media-viewer-image/media-viewer-image.component';
33+
import { ThemedMediaViewerImageComponent } from './media-viewer/media-viewer-image/themed-media-viewer-image.component';
3334
import { NgxGalleryModule } from '@kolkov/ngx-gallery';
3435
import { MiradorViewerComponent } from './mirador-viewer/mirador-viewer.component';
3536
import { VersionPageComponent } from './version-page/version-page/version-page.component';
@@ -66,6 +67,7 @@ const DECLARATIONS = [
6667
ThemedMediaViewerComponent,
6768
MediaViewerVideoComponent,
6869
MediaViewerImageComponent,
70+
ThemedMediaViewerImageComponent,
6971
MiradorViewerComponent,
7072
VersionPageComponent,
7173
];

src/app/item-page/media-viewer/media-viewer-image/media-viewer-image.component.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export class MediaViewerImageComponent implements OnInit {
1818
@Input() preview?: boolean;
1919
@Input() image?: string;
2020

21-
loggedin: boolean;
21+
thumbnailPlaceholder = './assets/images/replacement_image.svg';
2222

2323
galleryOptions: NgxGalleryOptions[];
2424
galleryImages: NgxGalleryImage[];
@@ -28,7 +28,10 @@ export class MediaViewerImageComponent implements OnInit {
2828
*/
2929
isAuthenticated$: Observable<boolean>;
3030

31-
constructor(private authService: AuthService) {}
31+
constructor(
32+
protected authService: AuthService,
33+
) {
34+
}
3235

3336
/**
3437
* Thi method sets up the gallery settings and data
@@ -69,20 +72,20 @@ export class MediaViewerImageComponent implements OnInit {
6972
* @param medias input NgxGalleryImage array
7073
*/
7174
convertToGalleryImage(medias: MediaViewerItem[]): NgxGalleryImage[] {
72-
const mappadImages = [];
75+
const mappedImages = [];
7376
for (const image of medias) {
7477
if (image.format === 'image') {
75-
mappadImages.push({
78+
mappedImages.push({
7679
small: image.thumbnail
7780
? image.thumbnail
78-
: './assets/images/replacement_image.svg',
81+
: this.thumbnailPlaceholder,
7982
medium: image.thumbnail
8083
? image.thumbnail
81-
: './assets/images/replacement_image.svg',
84+
: this.thumbnailPlaceholder,
8285
big: image.bitstream._links.content.href,
8386
});
8487
}
8588
}
86-
return mappadImages;
89+
return mappedImages;
8790
}
8891
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { Component, Input } from '@angular/core';
2+
import { ThemedComponent } from '../../../shared/theme-support/themed.component';
3+
import { MediaViewerImageComponent } from './media-viewer-image.component';
4+
import { MediaViewerItem } from '../../../core/shared/media-viewer-item.model';
5+
6+
/**
7+
* Themed wrapper for {@link MediaViewerImageComponent}.
8+
*/
9+
@Component({
10+
selector: 'ds-themed-media-viewer-image',
11+
styleUrls: [],
12+
templateUrl: '../../../shared/theme-support/themed.component.html',
13+
})
14+
export class ThemedMediaViewerImageComponent extends ThemedComponent<MediaViewerImageComponent> {
15+
16+
@Input() images: MediaViewerItem[];
17+
@Input() preview?: boolean;
18+
@Input() image?: string;
19+
20+
protected inAndOutputNames: (keyof MediaViewerImageComponent & keyof this)[] = [
21+
'images',
22+
'preview',
23+
'image',
24+
];
25+
26+
protected getComponentName(): string {
27+
return 'MediaViewerImageComponent';
28+
}
29+
30+
protected importThemedComponent(themeName: string): Promise<any> {
31+
return import(`../../../../themes/${themeName}/app/item-page/media-viewer/media-viewer-image/media-viewer-image.component`);
32+
}
33+
34+
protected importUnthemedComponent(): Promise<any> {
35+
return import('./media-viewer-image.component');
36+
}
37+
38+
}

src/app/item-page/media-viewer/media-viewer.component.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
</ng-container>
1717
</ng-container>
1818
<ng-container *ngIf="mediaList[0]?.format === 'image'">
19-
<ds-media-viewer-image [images]="mediaList"></ds-media-viewer-image>
19+
<ds-themed-media-viewer-image [images]="mediaList"></ds-themed-media-viewer-image>
2020
</ng-container>
2121
</ng-container>
2222
<ng-container
@@ -27,10 +27,10 @@
2727
mediaList.length === 0
2828
"
2929
>
30-
<ds-media-viewer-image
30+
<ds-themed-media-viewer-image
3131
[image]="mediaList[0]?.thumbnail || thumbnailPlaceholder"
3232
[preview]="false"
33-
></ds-media-viewer-image>
33+
></ds-themed-media-viewer-image>
3434
</ng-container>
3535
</div>
3636
</ng-container>

src/themes/custom/app/item-page/media-viewer/media-viewer-image/media-viewer-image.component.html

Whitespace-only changes.

src/themes/custom/app/item-page/media-viewer/media-viewer-image/media-viewer-image.component.scss

Whitespace-only changes.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { Component } from '@angular/core';
2+
import {
3+
MediaViewerImageComponent as BaseComponent
4+
} from '../../../../../../app/item-page/media-viewer/media-viewer-image/media-viewer-image.component';
5+
6+
@Component({
7+
selector: 'ds-media-viewer-image',
8+
// templateUrl: './media-viewer-image.component.html',
9+
templateUrl: '../../../../../../app/item-page/media-viewer/media-viewer-image/media-viewer-image.component.html',
10+
// styleUrls: ['./media-viewer-image.component.scss'],
11+
styleUrls: ['../../../../../../app/item-page/media-viewer/media-viewer-image/media-viewer-image.component.scss'],
12+
})
13+
export class MediaViewerImageComponent extends BaseComponent {
14+
}

src/themes/custom/theme.module.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@ import { ResourcePoliciesModule } from '../../app/shared/resource-policies/resou
8585
import { ComcolModule } from '../../app/shared/comcol/comcol.module';
8686
import { FeedbackComponent } from './app/info/feedback/feedback.component';
8787
import { MediaViewerComponent } from './app/item-page/media-viewer/media-viewer.component';
88+
import {
89+
MediaViewerImageComponent
90+
} from './app/item-page/media-viewer/media-viewer-image/media-viewer-image.component';
8891
import { NgxGalleryModule } from '@kolkov/ngx-gallery';
8992

9093
const DECLARATIONS = [
@@ -130,6 +133,7 @@ const DECLARATIONS = [
130133
BreadcrumbsComponent,
131134
FeedbackComponent,
132135
MediaViewerComponent,
136+
MediaViewerImageComponent,
133137
];
134138

135139
@NgModule({

0 commit comments

Comments
 (0)