Skip to content

Commit 2ab74f8

Browse files
committed
screensaver configurable gallery image width
1 parent c3c9dbb commit 2ab74f8

File tree

7 files changed

+44
-5
lines changed

7 files changed

+44
-5
lines changed

assets/js/screensaver.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,8 +234,11 @@
234234

235235
if (mode === 'gallery') {
236236
overlay.addClass('screensaver-overlay--gallery');
237+
const width = config.screensaver.gallery_width || 800;
238+
imageEl.css('width', width + 'px');
237239
} else {
238240
overlay.removeClass('screensaver-overlay--gallery');
241+
imageEl.css('width', '');
239242
}
240243

241244
const source = api.resolveSource();

assets/sass/components/_screensaver.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
width: auto;
7474
height: auto;
7575
max-width: 100%;
76-
max-height: 50vh;
76+
max-height: 100%;
7777
object-fit: contain;
7878
display: none;
7979
}

lib/configsetup.inc.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -599,6 +599,16 @@
599599
'range_step' => 1,
600600
'unit' => 'min',
601601
],
602+
'screensaver_gallery_width' => [
603+
'view' => 'basic',
604+
'type' => 'number',
605+
'name' => 'screensaver[gallery_width]',
606+
'placeholder' => $defaultConfig['screensaver']['gallery_width'],
607+
'value' => $config['screensaver']['gallery_width'],
608+
'range_min' => 1,
609+
'range_step' => 1,
610+
'unit' => 'px',
611+
],
602612
'screensaver_switch_seconds' => [
603613
'view' => 'basic',
604614
'type' => 'number',

resources/lang/de.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -734,6 +734,7 @@
734734
"manual:reset:reset_remove_print_db": "Wenn aktiviert, wird die Druckdatenbank beim Zurücksetzen entfernt.",
735735
"manual:screensaver:screensaver_enabled": "Bildschirmschoner ein- oder ausschalten.",
736736
"manual:screensaver:screensaver_image_source": "Bild wählen, das im Modus Bild bzw. als Fallback für Galerie genutzt wird.",
737+
"manual:screensaver:screensaver_gallery_width": "Pixelbreite für Galerie-Modus-Bilder; Höhe bleibt automatisch.",
737738
"manual:screensaver:screensaver_mode": "Wählen, was der Bildschirmschoner zeigt: Einzelbild, Video, Bilder aus dem Ordner screensavers oder Galerie-Bilder.",
738739
"manual:screensaver:screensaver_preview": "Öffnet in neuem Tab und startet den Bildschirmschoner sofort mit aktuellen Einstellungen.",
739740
"manual:screensaver:screensaver_switch_seconds": "Sekunden zwischen Bild-/Video-Wechseln im Bildschirmschoner.",
@@ -1024,6 +1025,7 @@
10241025
"screensaver:screensaver_image_source": "Bildpfad",
10251026
"screensaver:screensaver_mode": "Medientyp",
10261027
"screensaver:screensaver_preview": "Vorschau",
1028+
"screensaver:screensaver_gallery_width": "Galerie-Bildbreite (px)",
10271029
"screensaver:screensaver_switch_seconds": "Wechselintervall (Sek.)",
10281030
"screensaver:screensaver_text": "Text",
10291031
"screensaver:screensaver_text_backdrop_color": "Texthintergrund",

resources/lang/en.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -735,6 +735,7 @@
735735
"manual:reset:reset_remove_media": "If enabled, all captured images and videos gets removed on reset. Note: Uploaded private files (e.g. backgrounds, frames,...) won't be removed! Delete those files manually if needed.",
736736
"manual:reset:reset_remove_print_db": "If enabled, print database gets removed on reset.",
737737
"manual:screensaver:screensaver_enabled": "Enable or disable the screensaver.",
738+
"manual:screensaver:screensaver_gallery_width": "Pixel width for gallery-mode images; height stays auto.",
738739
"manual:screensaver:screensaver_image_source": "Pick the image used when screensaver mode is image or as fallback for gallery.",
739740
"manual:screensaver:screensaver_mode": "Select what the screensaver shows: single image, single video, images from the screensavers folder, or gallery images.",
740741
"manual:screensaver:screensaver_preview": "Open a new tab and show the screensaver immediately with the current settings.",
@@ -1023,6 +1024,7 @@
10231024
"screensaver": "Screensaver",
10241025
"screensaver_preview": "Open preview",
10251026
"screensaver:screensaver_enabled": "Screensaver on",
1027+
"screensaver:screensaver_gallery_width": "Gallery image width (px)",
10261028
"screensaver:screensaver_image_source": "Image path",
10271029
"screensaver:screensaver_mode": "Media type",
10281030
"screensaver:screensaver_preview": "Preview",

src/Configuration/Section/GalleryConfiguration.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public static function getNode(): NodeDefinition
2121
->min(1)
2222
->beforeNormalization()
2323
->ifString()
24-
->then(static fn (string $value): int => intval($value))
24+
->then(static fn(string $value): int => intval($value))
2525
->end()
2626
->end()
2727
->integerNode('picture_height')

src/Configuration/Section/ScreensaverConfiguration.php

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,30 @@ public static function getNode(): NodeDefinition
2626
->values(['top-center', 'center', 'bottom-center'])
2727
->defaultValue('center')
2828
->end()
29-
->integerNode('switch_seconds')->min(1)->defaultValue(60)->end()
30-
->integerNode('timeout_minutes')->min(0)->defaultValue(3)->end()
31-
->end();
29+
->integerNode('switch_seconds')
30+
->min(1)
31+
->defaultValue(60)
32+
->beforeNormalization()
33+
->ifString()
34+
->then(static fn(string $value): int => intval($value))
35+
->end()
36+
->end()
37+
->integerNode('gallery_width')
38+
->min(1)
39+
->defaultValue(800)
40+
->beforeNormalization()
41+
->ifString()
42+
->then(static fn(string $value): int => intval($value))
43+
->end()
44+
->end()
45+
->integerNode('timeout_minutes')
46+
->min(0)
47+
->defaultValue(3)
48+
->beforeNormalization()
49+
->ifString()
50+
->then(static fn(string $value): int => intval($value))
51+
->end()
52+
->end()
53+
->end();
3254
}
3355
}

0 commit comments

Comments
 (0)