diff --git a/README.md b/README.md index 5c61a7a2..d33b5076 100644 --- a/README.md +++ b/README.md @@ -142,15 +142,17 @@ apt-get install build-essential libkrb5-dev gcc g++ * saving generated thumbnails to TEMP folder for reuse * supporting multi-core CPUs * supporting hardware acceleration ([sharp](https://github.com/lovell/sharp) and [gm](https://github.com/aheckmann/gm) as optional and JS-based [Jimp](https://github.com/oliver-moran/jimp) as fallback) - * Custom lightbox for full screen photo viewing + * Custom lightbox for full screen photo and video viewing * keyboard support for navigation * showing low-res thumbnail while full image loads * Information panel for showing **Exif info** * Automatic playing * gesture support (swipe left, right, up) + * shortcut support * Client side caching (directories and search results) - * Rendering **photos** with GPS coordinates **on google map** - * .gpx file support + * Rendering **photos** with GPS coordinates **on open street maps** + * .gpx file support: rendering paths to map + * supports [OSM](https://www.openstreetmap.org) and [Mapbox](https://www.mapbox.com) by default, but you can add any provider that has a tile url * **Two modes: SQL database and no-database mode** * both modes supports * user management @@ -162,6 +164,7 @@ apt-get install build-essential libkrb5-dev gcc g++ * sharing * setting link expiration time * internalization / translation support + * currently supported languages: eng, hun * Nice design * responsive design (phone, tablet desktop support) * Setup page diff --git a/docs/index.html b/docs/index.html index 5e9b0fda..11a10c18 100644 --- a/docs/index.html +++ b/docs/index.html @@ -156,19 +156,21 @@ -
  • Custom lightbox for full screen photo viewing +
  • Custom lightbox for full screen photo and video viewing
  • Client side caching (directories and search results)
  • -
  • Rendering photos with GPS coordinates on google map +
  • Rendering photos with GPS coordinates on open street map
  • Two modes: SQL database and no-database mode diff --git a/frontend/app/gallery/fullscreen.service.ts b/frontend/app/gallery/fullscreen.service.ts index 5f771922..b6c6f669 100644 --- a/frontend/app/gallery/fullscreen.service.ts +++ b/frontend/app/gallery/fullscreen.service.ts @@ -22,19 +22,19 @@ export class FullScreenService { document['webkitFullscreenElement']); } - public showFullScreen(element: any) { + public showFullScreen(element: Element) { if (this.isFullScreenEnabled()) { return; } if (element.requestFullscreen) { - element.requestFullscreen(); - } else if (element.mozRequestFullScreen) { - element.mozRequestFullScreen(); - } else if (element.webkitRequestFullscreen) { - element.webkitRequestFullscreen(); - } else if (element.msRequestFullscreen) { - element.msRequestFullscreen(); + element.requestFullscreen().catch(console.error); + } else if ((element).mozRequestFullScreen) { + (element).mozRequestFullScreen(); + } else if ((element).webkitRequestFullscreen) { + (element).webkitRequestFullscreen(); + } else if ((element).msRequestFullscreen) { + (element).msRequestFullscreen(); } this.OnFullScreenChange.trigger(true); } diff --git a/frontend/app/gallery/lightbox/lightbox.gallery.component.ts b/frontend/app/gallery/lightbox/lightbox.gallery.component.ts index f67c69da..41eb539b 100644 --- a/frontend/app/gallery/lightbox/lightbox.gallery.component.ts +++ b/frontend/app/gallery/lightbox/lightbox.gallery.component.ts @@ -39,7 +39,7 @@ export class GalleryLightboxComponent implements OnDestroy, OnInit { @ViewChild('photo') mediaElement: GalleryLightboxMediaComponent; @ViewChild('lightbox') lightboxElement: ElementRef; - @ViewChild('root') root: HTMLElement; + @ViewChild('root') root: ElementRef; public navigation = {hasPrev: true, hasNext: true}; public blackCanvasOpacity = 0; @@ -251,7 +251,7 @@ export class GalleryLightboxComponent implements OnDestroy, OnInit { if (this.fullScreenService.isFullScreenEnabled()) { this.fullScreenService.exitFullScreen(); } else { - this.fullScreenService.showFullScreen(this.root); + this.fullScreenService.showFullScreen(this.root.nativeElement); } break; case 'c': diff --git a/frontend/app/gallery/map/lightbox/lightbox.map.gallery.component.html b/frontend/app/gallery/map/lightbox/lightbox.map.gallery.component.html index ceeaac30..fe505d64 100644 --- a/frontend/app/gallery/map/lightbox/lightbox.map.gallery.component.html +++ b/frontend/app/gallery/map/lightbox/lightbox.map.gallery.component.html @@ -59,15 +59,15 @@ + (click)="fullScreenService.exitFullScreen()" title="toggle fullscreen, key: f" i18n-title> + (click)="fullScreenService.showFullScreen(root)" title="toggle fullscreen, key: f" i18n-title> - + diff --git a/frontend/app/gallery/map/lightbox/lightbox.map.gallery.component.ts b/frontend/app/gallery/map/lightbox/lightbox.map.gallery.component.ts index 8212dff3..45cb3e53 100644 --- a/frontend/app/gallery/map/lightbox/lightbox.map.gallery.component.ts +++ b/frontend/app/gallery/map/lightbox/lightbox.map.gallery.component.ts @@ -56,6 +56,25 @@ export class GalleryMapLightboxComponent implements OnChanges, AfterViewInit { } + @HostListener('window:resize', ['$event']) + async onResize() { + this.lightboxDimension = { + top: 0, + left: 0, + width: this.getScreenWidth(), + height: this.getScreenHeight() + }; + this.mapDimension = { + top: 0, + left: 0, + width: this.getScreenWidth(), + height: this.getScreenHeight() + }; + await Utils.wait(0); + this.yagaMap.invalidateSize(); + } + + public async show(position: Dimension) { this.hideImages(); @@ -209,6 +228,14 @@ export class GalleryMapLightboxComponent implements OnChanges, AfterViewInit { } const event: KeyboardEvent = window.event ? window.event : e; switch (event.key) { + case 'f': + case 'F': + if (this.fullScreenService.isFullScreenEnabled()) { + this.fullScreenService.exitFullScreen(); + } else { + this.fullScreenService.showFullScreen(this.elementRef.nativeElement); + } + break; case 'Escape': // escape this.hide(); break; diff --git a/frontend/app/gallery/map/map.gallery.component.html b/frontend/app/gallery/map/map.gallery.component.html index 3deaa43a..0b1937a2 100644 --- a/frontend/app/gallery/map/map.gallery.component.html +++ b/frontend/app/gallery/map/map.gallery.component.html @@ -12,12 +12,6 @@ *ngFor="let photo of mapPhotos" [lat]="photo.lat" [lng]="photo.lng"> - app/gallery/lightbox/lightbox.gallery.component.html 47 + + app/gallery/map/lightbox/lightbox.map.gallery.component.html + 62 + + + app/gallery/map/lightbox/lightbox.map.gallery.component.html + 67 + toggle fullscreen, key: f @@ -134,6 +142,10 @@ app/gallery/lightbox/lightbox.gallery.component.html 54 + + app/gallery/map/lightbox/lightbox.map.gallery.component.html + 70 + close, key: Escape diff --git a/frontend/translate/messages.hu.xlf b/frontend/translate/messages.hu.xlf index f5b81911..2bf1c6b2 100644 --- a/frontend/translate/messages.hu.xlf +++ b/frontend/translate/messages.hu.xlf @@ -126,6 +126,14 @@ app/gallery/lightbox/lightbox.gallery.component.html 47 + + app/gallery/map/lightbox/lightbox.map.gallery.component.html + 62 + + + app/gallery/map/lightbox/lightbox.map.gallery.component.html + 67 + teljes képernyős váltás, gyorsgomb: f @@ -134,6 +142,10 @@ app/gallery/lightbox/lightbox.gallery.component.html 54 + + app/gallery/map/lightbox/lightbox.map.gallery.component.html + 70 + bezárás, gyorsgomb: escape @@ -1840,4 +1852,4 @@ - + \ No newline at end of file