Skip to content

Commit

Permalink
Add site config for IIIF viewer
Browse files Browse the repository at this point in the history
  • Loading branch information
jimsafley committed Jun 1, 2024
1 parent b08e424 commit daf1601
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 3 deletions.
3 changes: 3 additions & 0 deletions application/src/Controller/IiifViewerController.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ public function indexAction()
if (isset($miradorConfigUser['window.sideBarOpen'])) {
$miradorConfig['window']['sideBarOpen'] = $miradorConfigUser['window.sideBarOpen'];
}
if (isset($miradorConfigUser['selectedTheme'])) {
$miradorConfig['selectedTheme'] = $miradorConfigUser['selectedTheme'];
}

$view = new ViewModel;
$view->setTerminal(true);
Expand Down
29 changes: 29 additions & 0 deletions application/src/Form/SiteSettingsForm.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ public function init()
'browse' => 'Browse', // @translate
'show' => 'Show', // @translate
'search' => 'Search', // @translate
'iiif_viewer' => 'IIIF viewer', // @translate
]);

// o:assign_new_items element is a pseudo-setting that's ultimately set
Expand Down Expand Up @@ -424,6 +425,34 @@ public function init()
],
]);

// IIIF viewer section
$this->add([
'type' => 'checkbox',
'name' => 'iiif_viewer_sidebar',
'options' => [
'element_group' => 'iiif_viewer',
'label' => 'Show sidebar', // @translate
],
'attributes' => [
'value' => $settings->get('iiif_viewer_sidebar', false),
],
]);
$this->add([
'type' => 'select',
'name' => 'iiif_viewer_theme',
'options' => [
'element_group' => 'iiif_viewer',
'label' => 'Theme', // @translate
'value_options' => [
'light' => 'Light', // @translate
'dark' => 'Dark', // @translate
],
],
'attributes' => [
'value' => $settings->get('iiif_viewer_theme'),
],
]);

$addEvent = new Event('form.add_elements', $this);
$this->getEventManager()->triggerEvent($addEvent);

Expand Down
20 changes: 17 additions & 3 deletions application/src/Media/Renderer/IiifPresentation.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,25 @@ class IiifPresentation implements RendererInterface
{
public function render(PhpRenderer $view, MediaRepresentation $media, array $options = [])
{
$miradorConfig = [
'window.sideBarOpen' => false,
'selectedTheme' => 'light',
];
if ($view->status()->isSiteRequest()) {
// Respect site settings for the IIIF viewer.
$miradorConfig['window.sideBarOpen'] = (bool) $view->siteSetting('iiif_viewer_sidebar', false);
switch ($view->siteSetting('iiif_viewer_theme', 'light')) {
case 'dark':
$miradorConfig['selectedTheme'] = 'dark';
break;
case 'light':
default:
$miradorConfig['selectedTheme'] = 'light';
}
}
$query = [
'url' => $media->source(),
'mirador_config' => json_encode([
'window.sideBarOpen' => false,
]),
'mirador_config' => json_encode($miradorConfig),
];
return $view->iiifViewer($query, $options);
}
Expand Down

0 comments on commit daf1601

Please sign in to comment.