Daniel-KM / Omeka-S-module-Mirador

Omeka S module that integrates Mirador, an advanced viewer, in order to display one or multiple images, local or remote, via the IIIF standard.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cannot manage settings when no target ID is set.

hxsllc opened this issue · comments

Today I did a lot of testing to see if I could eliminate this issue.

I see it referenced recently here:
omeka-s-modules/Scripto#64

I did have Metadata Browse on, so turned it off.

Also referenced here:
omeka-s-modules/CSVImport#113

And you can Google it for more.

Running Omeka-S v2.0.2, I have turned off all modules except for Mirador, Generic, and Blocks Disposition.

When I load item/:item_id/mirador, I get this error:
(e.g. http://metascripta.org/item/1/mirador)

Omeka\Service\Exception\RuntimeException
Cannot manage settings when no target ID is set.

Details:

Omeka\Service\Exception\RuntimeException: Cannot manage settings when no target ID is set. in /var/www/html/application/src/Settings/AbstractTargetSettings.php:97
Stack trace:
#0 /var/www/html/application/src/Settings/AbstractSettings.php(149): Omeka\Settings\AbstractTargetSettings->setCache()
#1 /var/www/html/application/src/Settings/AbstractSettings.php(95): Omeka\Settings\AbstractSettings->cache()
#2 /var/www/html/application/src/Settings/AbstractTargetSettings.php(71): Omeka\Settings\AbstractSettings->get('mirador_plugins', Array)
#3 /var/www/html/application/src/View/Helper/Setting.php(39): Omeka\Settings\AbstractTargetSettings->get('mirador_plugins', Array, NULL)
#4 [internal function]: Omeka\View\Helper\Setting->__invoke('mirador_plugins', Array)
#5 /var/www/html/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(397): call_user_func_array(Object(Omeka\View\Helper\Setting), Array)
#6 /var/www/html/modules/Mirador/src/View/Helper/Mirador.php(173): Zend\View\Renderer\PhpRenderer->__call('siteSetting', Array)
#7 /var/www/html/modules/Mirador/src/View/Helper/Mirador.php(84): Mirador\View\Helper\Mirador->render('http://metascri...', Array, 'items', true)
#8 [internal function]: Mirador\View\Helper\Mirador->__invoke(Object(Omeka\Api\Representation\ItemRepresentation))
#9 /var/www/html/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(397): call_user_func_array(Object(Mirador\View\Helper\Mirador), Array)
#10 /var/www/html/modules/Mirador/view/mirador/player/play.phtml(17): Zend\View\Renderer\PhpRenderer->__call('mirador', Array)
#11 /var/www/html/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(506): include('/var/www/html/m...')
#12 /var/www/html/vendor/zendframework/zend-view/src/View.php(207): Zend\View\Renderer\PhpRenderer->render(NULL)
#13 /var/www/html/vendor/zendframework/zend-view/src/View.php(236): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#14 /var/www/html/vendor/zendframework/zend-view/src/View.php(200): Zend\View\View->renderChildren(Object(Zend\View\Model\ViewModel))
#15 /var/www/html/vendor/zendframework/zend-mvc/src/View/Http/DefaultRenderingStrategy.php(105): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#16 /var/www/html/vendor/zendframework/zend-eventmanager/src/EventManager.php(322): Zend\Mvc\View\Http\DefaultRenderingStrategy->render(Object(Zend\Mvc\MvcEvent))
#17 /var/www/html/vendor/zendframework/zend-eventmanager/src/EventManager.php(171): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent))
#18 /var/www/html/vendor/zendframework/zend-mvc/src/Application.php(367): Zend\EventManager\EventManager->triggerEvent(Object(Zend\Mvc\MvcEvent))
#19 /var/www/html/vendor/zendframework/zend-mvc/src/Application.php(348): Zend\Mvc\Application->completeRequest(Object(Zend\Mvc\MvcEvent))
#20 /var/www/html/index.php(21): Zend\Mvc\Application->run()
#21 {main}

If I turned on the Block for item browse page, I get a different error:
(e.g. http://metascripta.org/s/vfl/item/1)

Omeka S encountered an error

Zend\ServiceManager\Exception\ServiceNotFoundException
A plugin by the name "site" was not found in the plugin manager Zend\View\HelperPluginManager

Details:

Zend\ServiceManager\Exception\ServiceNotFoundException: A plugin by the name "site" was not found in the plugin manager Zend\View\HelperPluginManager in /var/www/html/vendor/zendframework/zend-servicemanager/src/AbstractPluginManager.php:142
Stack trace:
#0 /var/www/html/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(376): Zend\ServiceManager\AbstractPluginManager->get('site', NULL)
#1 /var/www/html/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(394): Zend\View\Renderer\PhpRenderer->plugin('site')
#2 /var/www/html/modules/Mirador/src/View/Helper/Mirador.php(195): Zend\View\Renderer\PhpRenderer->__call('site', Array)
#3 /var/www/html/modules/Mirador/src/View/Helper/Mirador.php(84): Mirador\View\Helper\Mirador->render('http://metascri...', Array, 'items', true)
#4 [internal function]: Mirador\View\Helper\Mirador->__invoke(Object(Omeka\Api\Representation\ItemRepresentation))
#5 /var/www/html/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(397): call_user_func_array(Object(Mirador\View\Helper\Mirador), Array)
#6 /var/www/html/modules/Mirador/Module.php(150): Zend\View\Renderer\PhpRenderer->__call('mirador', Array)
#7 /var/www/html/vendor/zendframework/zend-eventmanager/src/EventManager.php(322): Mirador\Module->handleViewShowAfterItem(Object(Zend\EventManager\Event))
#8 /var/www/html/vendor/zendframework/zend-eventmanager/src/EventManager.php(171): Zend\EventManager\EventManager->triggerListeners(Object(Zend\EventManager\Event))
#9 /var/www/html/application/src/View/Helper/Trigger.php(61): Zend\EventManager\EventManager->triggerEvent(Object(Zend\EventManager\Event))
#10 [internal function]: Omeka\View\Helper\Trigger->__invoke('view.show.after')
#11 /var/www/html/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(397): call_user_func_array(Object(Omeka\View\Helper\Trigger), Array)
#12 /var/www/html/themes/nonviolence/view/omeka/site/item/show.phtml(149): Zend\View\Renderer\PhpRenderer->__call('trigger', Array)
#13 /var/www/html/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(506): include('/var/www/html/t...')
#14 /var/www/html/vendor/zendframework/zend-view/src/View.php(207): Zend\View\Renderer\PhpRenderer->render(NULL)
#15 /var/www/html/vendor/zendframework/zend-view/src/View.php(236): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#16 /var/www/html/vendor/zendframework/zend-view/src/View.php(200): Zend\View\View->renderChildren(Object(Zend\View\Model\ViewModel))
#17 /var/www/html/vendor/zendframework/zend-mvc/src/View/Http/DefaultRenderingStrategy.php(105): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#18 /var/www/html/vendor/zendframework/zend-eventmanager/src/EventManager.php(322): Zend\Mvc\View\Http\DefaultRenderingStrategy->render(Object(Zend\Mvc\MvcEvent))
#19 /var/www/html/vendor/zendframework/zend-eventmanager/src/EventManager.php(171): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent))
#20 /var/www/html/vendor/zendframework/zend-mvc/src/Application.php(367): Zend\EventManager\EventManager->triggerEvent(Object(Zend\Mvc\MvcEvent))
#21 /var/www/html/vendor/zendframework/zend-mvc/src/Application.php(348): Zend\Mvc\Application->completeRequest(Object(Zend\Mvc\MvcEvent))
#22 /var/www/html/index.php(21): Zend\Mvc\Application->run()
#23 {main}

In the 2nd error, it is clear that it is picking up the manifest property from dcterms:hasFormat, which I've set in the global settings (see err#3).

Again I've turned off all other modules such as CleanURL, CSVImport, etc.

When I load an item that has no manifest property set (dcterms:hasFormat is empty), there is no error.

I do not have any configurations set in site settings, I believe the defaults would work out of the box at least to display something. But I did try copying in the example config on the main Github page for the Mirador repo and that didn't change the error - so I removed it and left blank.

Yes, the module works out of the box. It is fixed in 3.1.4.

Daniel I see you also released 3.1.5 so I just installed that today - and got the same issue!

I was starting to suspect my installation had some issue, so I created a brand new clean installation under http://dev.metascripta.org/item/1/mirador. Interestingly, the embedded viewer in the item page works and displays correctly, but the direct view does not.

This clean install is Omeka-S v2.0.2 with nothing else installed except Mirador 3.1.5 module.

Here is the error message

 Omeka\Service\Exception\RuntimeException
Cannot manage settings when no target ID is set.

Details:

Omeka\Service\Exception\RuntimeException: Cannot manage settings when no target ID is set. in /var/www/dev/application/src/Settings/AbstractTargetSettings.php:97
Stack trace:
#0 /var/www/dev/application/src/Settings/AbstractSettings.php(149): Omeka\Settings\AbstractTargetSettings->setCache()
#1 /var/www/dev/application/src/Settings/AbstractSettings.php(95): Omeka\Settings\AbstractSettings->cache()
#2 /var/www/dev/application/src/Settings/AbstractTargetSettings.php(71): Omeka\Settings\AbstractSettings->get('mirador_plugins', Array)
#3 /var/www/dev/application/src/View/Helper/Setting.php(39): Omeka\Settings\AbstractTargetSettings->get('mirador_plugins', Array, NULL)
#4 [internal function]: Omeka\View\Helper\Setting->__invoke('mirador_plugins', Array)
#5 /var/www/dev/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(397): call_user_func_array(Object(Omeka\View\Helper\Setting), Array)
#6 /var/www/dev/modules/Mirador/src/View/Helper/Mirador.php(173): Zend\View\Renderer\PhpRenderer->__call('siteSetting', Array)
#7 /var/www/dev/modules/Mirador/src/View/Helper/Mirador.php(84): Mirador\View\Helper\Mirador->render('http://metascri...', Array, 'items', true)
#8 [internal function]: Mirador\View\Helper\Mirador->__invoke(Object(Omeka\Api\Representation\ItemRepresentation))
#9 /var/www/dev/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(397): call_user_func_array(Object(Mirador\View\Helper\Mirador), Array)
#10 /var/www/dev/modules/Mirador/view/mirador/player/play.phtml(17): Zend\View\Renderer\PhpRenderer->__call('mirador', Array)
#11 /var/www/dev/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(506): include('/var/www/dev/mo...')
#12 /var/www/dev/vendor/zendframework/zend-view/src/View.php(207): Zend\View\Renderer\PhpRenderer->render(NULL)
#13 /var/www/dev/vendor/zendframework/zend-view/src/View.php(236): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#14 /var/www/dev/vendor/zendframework/zend-view/src/View.php(200): Zend\View\View->renderChildren(Object(Zend\View\Model\ViewModel))
#15 /var/www/dev/vendor/zendframework/zend-mvc/src/View/Http/DefaultRenderingStrategy.php(105): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#16 /var/www/dev/vendor/zendframework/zend-eventmanager/src/EventManager.php(322): Zend\Mvc\View\Http\DefaultRenderingStrategy->render(Object(Zend\Mvc\MvcEvent))
#17 /var/www/dev/vendor/zendframework/zend-eventmanager/src/EventManager.php(171): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent))
#18 /var/www/dev/vendor/zendframework/zend-mvc/src/Application.php(367): Zend\EventManager\EventManager->triggerEvent(Object(Zend\Mvc\MvcEvent))
#19 /var/www/dev/vendor/zendframework/zend-mvc/src/Application.php(348): Zend\Mvc\Application->completeRequest(Object(Zend\Mvc\MvcEvent))
#20 /var/www/dev/index.php(21): Zend\Mvc\Application->run()
#21 {main}

I'll publish the fix Monday.

It should be fixed.