Git Product home page Git Product logo

omeka-s-module-timeline's Introduction

Timeline (module for Omeka S)

New versions of this module and support for Omeka S version 3.0 and above are available on GitLab, which seems to respect users and privacy better than the previous repository.

Build Status

Timeline is a module for Omeka S that integrates the SIMILE Timeline widget and the online Knightlab timeline to create timelines.

Installation

Uncompress files in the module directory and rename module folder Timeline.

Then install it like any other Omeka module and follow the config instructions.

Note: If Omeka is https, if external assets are used, and if the Simile library is used, the library will not load on recent browsers, because the online library contains an url with unsecure http. In that case, you need to set the option "Use Internal library for Simile".

Usage

Once enabled, the module adds two new block for site pages. The first allows to create an automatic timeline, the other one an exhibit with selected items. Simply select one of them and config it (the item pool and eventually the options). Furthermore, any timeline can be created dynamically via /api/timeline.

Fields

Choose which fields you want the module to use on the timeline by default.

  • Item Title: The field you would like displayed for the item’s title in its information bubble. The default is dcterms:title.
  • Item Description: The field you would like displayed for the item’s description in its information bubble. The default is dcterms:description.
  • Item Date: The field you would like to use for item dates on the timeline. The default is dcterms:date.
  • Item Date End: The field you would like to use for item end dates on the timeline. It is useless if dates are ranges (see below) or if you don’t have end date.
  • Render Year: Date entered as a single number, like 1066, can be skipped, plotted as a single event or marked as a full year.
  • Center Date: The date that is displayed by the viewer when loaded. It can be any date with the format YYYY-MM-DD. An empty string means now, a 0000-00-00 the earliest date and 9999-99-99 the latest date.
  • Viewer: The raw json parameters for the viewer, for example to display only one row, or to change the scale.

All these parameters can be customized for each timeline.

Url for the dynamic json

The json is available at "/api/timeline?block-id=xxx". This url supports any dynamic standard item query too if you want to get the json without a block. The old "/timeline" is deprecated and will be removed in a future version.

By default, the timeline is formatted for Simile. To get the Knightlab format, append ?output=knightlab to the query.

Add a Timeline Block or an Timeline Exhibit

Creating a timeline is a two-step process:

  1. From the admin panel, edit a page, then click the "Timeline" button in the list of new blocks to add.

  2. To choose which items appear on your timeline, fill the "Item Pool" form. The options are the same than in the config by default (see above).

Timeline Block

Ready! Open the page.

Timeline Page

Important: The number of items should be limited according to the memory of the server: currently, the json output is created in one shot, so it can't manage more than some dozens or hundreds of items.

Dates for Items

Timeline will attempt to convert the value for a date string into an ISO 8601 date format. Some example date values you can use:

  • January 1, 2012
  • 2012-01-01
  • 1 Jan 2012
  • 2012-12-15

To denote spans of time, separate the start and end date with a /:

  • January 1, 2012/February 1, 2012

A common format is managed too:

  • 1939-1945

It must be 1939/1945 to be compatible with the standard ISO 8601.

Timeline handles dates with years shorter than 4 digits. For these you may need to pad the years with enough zeros to make them have four digits. For example, 476 should be written 0476.

Also, you can enter in years before common era by putting a negative sign before the year. If the date has less than four digits, you’ll also need to add extra zeros.

So here are some more examples of dates.

  • 0200-01-01
  • 0002-01-01
  • -0002-01-01
  • -2013-01-01

When a date is a single number, like 1066, a parameter in the config page allows to choose its rendering:

  • skip the record (default)
  • 1st January
  • 1st July
  • full year (range period)

This parameter applies with a range of dates too, for example 1939/1945.

In all cases, it’s recommended to follow the standard ISO 8601 as much as possible and to be as specific as possible.

Parameters of the viewer

Some parameters of the viewer may be customized for each timeline.

Simile timeline

Currently, only the CenterDate and the bandInfos are managed for the Simile timeline. The default is automatically included when the field is empty.

{
    "bandInfos": [
        {
            "width": "80%",
            "intervalUnit": Timeline.DateTime.MONTH,
            "intervalPixels": 100,
            "zoomIndex": 10,
            "zoomSteps": new Array(
                {"pixelsPerInterval": 280, "unit": Timeline.DateTime.HOUR},
                {"pixelsPerInterval": 140, "unit": Timeline.DateTime.HOUR},
                {"pixelsPerInterval": 70, "unit": Timeline.DateTime.HOUR},
                {"pixelsPerInterval": 35, "unit": Timeline.DateTime.HOUR},
                {"pixelsPerInterval": 400, "unit": Timeline.DateTime.DAY},
                {"pixelsPerInterval": 200, "unit": Timeline.DateTime.DAY},
                {"pixelsPerInterval": 100, "unit": Timeline.DateTime.DAY},
                {"pixelsPerInterval": 50, "unit": Timeline.DateTime.DAY},
                {"pixelsPerInterval": 400, "unit": Timeline.DateTime.MONTH},
                {"pixelsPerInterval": 200, "unit": Timeline.DateTime.MONTH},
                {"pixelsPerInterval": 100, "unit": Timeline.DateTime.MONTH} // DEFAULT zoomIndex
            )
        },
        {
            "overview": true,
            "width": "20%",
            "intervalUnit": Timeline.DateTime.YEAR,
            "intervalPixels": 200
        }
    ]
}

Knightlab timeline

You can find all the available parameters in the Knightlab timeline documentation.

Notes:

  • When a field is not filled, the properties of the resource are used (title, description, creator).
  • Date should be ISO-8601, partial ("YYYY", etc.) or full ("YYYY-MM-DDT00:00:00Z"). Let blank to use the date of the attachment.
  • The main display date override start and end dates in some places.
  • The resource can be an item id, a media id, or any other resource id.
  • If the resource is not set, it’s possible to use an external content, generally an url, but the viewer supports some other content.
  • Events are automatically sorted.

Modifying the block template for Timeline

To modify the block template, copy it in your theme (file view/common/block-layout/timeline.phtml).

Modifying the viewer

The template file used to load the timeline is asset/js/timeline.js.

You can copy it in your themes/my_theme/asset/js folder to customize it. The same for the default css. See the main wiki, an example of use with Neatline for Omeka Classic, and the examples of customization on the wiki.

TODO

  • Integrate attachments for the exhibit and improve the form (hide all by default except resource),
  • Integrate Numeric data type Interval and Duration (?).
  • Create the json for knightlab directly from the controller, not the js in view.

Warning

Use it at your own risk.

It’s always recommended to backup your files and your databases and to check your archives regularly so you can roll back if needed.

Troubleshooting

See online issues on the module issues page on GitLab.

License

This module is published under the CeCILL v2.1 license, compatible with GNU/GPL and approved by FSF and OSI.

This software is governed by the CeCILL license under French law and abiding by the rules of distribution of free software. You can use, modify and/ or redistribute the software under the terms of the CeCILL license as circulated by CEA, CNRS and INRIA at the following URL "http://www.cecill.info".

As a counterpart to the access to the source code and rights to copy, modify and redistribute granted by the license, users are provided only with a limited warranty and the software's author, the holder of the economic rights, and the successive licensors have only limited liability.

In this respect, the user's attention is drawn to the risks associated with loading, using, modifying and/or developing or reproducing the software by the user in light of its specific status of free software, that may mean that it is complicated to manipulate, and that also therefore means that it is reserved for developers and experienced professionals having in-depth computer knowledge. Users are therefore encouraged to load and test the software's suitability as regards their requirements in conditions enabling the security of their systems and/or data to be ensured and, more generally, to use and operate it in the same conditions as regards security.

The fact that you are presently reading this means that you have had knowledge of the CeCILL license and that you accept its terms.

The module uses the widget SIMILE Timeline, published under the license MIT. See files in asset/vendor for more info.

Copyright

Module

  • Copyright The Board and Visitors of the University of Virginia, 2010–2012
  • Copyright Daniel Berthereau, 2016-2023 (see Daniel-KM on GitLab)

Translations

  • Martin Liebeskind (German)
  • Gillian Price (Spanish)
  • Oguljan Reyimbaeva (Russian)
  • Katina Rogers (French)

This Omeka S module is a full rewrite of the fork of NeatlineTime plugin for Omeka Classic. The original NeatlineTime plugin was created by the Scholars’ Lab at the University of Virginia Library and improved by various authors.

omeka-s-module-timeline's People

Contributors

ajstanley avatar daniel-km avatar manondamoon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

omeka-s-module-timeline's Issues

"Failed to load json data" error

Hello,

I've tried to use the update with latest Omeka S release and I get an error when the Simile timeline loads:
"Failed to load json data from /timeline/10/events.json
Internal Server Error"

When browsing to the timeline block URL, I get the following stacktrace:

Omeka S a rencontré une erreur
Doctrine\ORM\Query\QueryException
[Syntax Error] line 0, col 7: Error: Expected IdentificationVariable | ScalarExpression | AggregateExpression | FunctionDeclaration | PartialObjectExpression | "(" Subselect ")" | CaseExpression, got 'Omeka\Entity\SitePageBlock'

Détails :

Doctrine\ORM\Query\QueryException: SELECT Omeka\Entity\SitePageBlock FROM Omeka\Entity\SitePageBlock Omeka\Entity\SitePageBlock WHERE Omeka\Entity\SitePageBlock.id = :id in /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php:43
Stack trace:
#0 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(456): Doctrine\ORM\Query\QueryException::dqlError('SELECT Omeka\\En...')
#1 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(2253): Doctrine\ORM\Query\Parser->syntaxError('IdentificationV...', Array)
#2 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(1182): Doctrine\ORM\Query\Parser->SelectExpression()
#3 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(878): Doctrine\ORM\Query\Parser->SelectClause()
#4 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(847): Doctrine\ORM\Query\Parser->SelectStatement()
#5 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(260): Doctrine\ORM\Query\Parser->QueryLanguage()
#6 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(359): Doctrine\ORM\Query\Parser->getAST()
#7 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query.php(283): Doctrine\ORM\Query\Parser->parse()
#8 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query.php(295): Doctrine\ORM\Query->_parse()
#9 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php(967): Doctrine\ORM\Query->_doExecute()
#10 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php(922): Doctrine\ORM\AbstractQuery->executeIgnoreQueryCache(NULL, NULL)
#11 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php(765): Doctrine\ORM\AbstractQuery->execute(NULL, NULL)
#12 /Users/laurent/Documents/Collection/omeka-s/modules/Timeline/src/Controller/TimelineController.php(61): Doctrine\ORM\AbstractQuery->getOneOrNullResult()
#13 /Users/laurent/Documents/Collection/omeka-s/modules/Timeline/src/Controller/TimelineController.php(25): Timeline\Controller\TimelineController->getBlock(10)
#14 /Users/laurent/Documents/Collection/omeka-s/vendor/zendframework/zend-mvc/src/Controller/AbstractActionController.php(78): Timeline\Controller\TimelineController->eventsAction()
#15 /Users/laurent/Documents/Collection/omeka-s/vendor/zendframework/zend-eventmanager/src/EventManager.php(322): Zend\Mvc\Controller\AbstractActionController->onDispatch(Object(Zend\Mvc\MvcEvent))
#16 /Users/laurent/Documents/Collection/omeka-s/vendor/zendframework/zend-eventmanager/src/EventManager.php(179): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent), Object(Closure))
#17 /Users/laurent/Documents/Collection/omeka-s/vendor/zendframework/zend-mvc/src/Controller/AbstractController.php(104): Zend\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Zend\Mvc\MvcEvent))
#18 /Users/laurent/Documents/Collection/omeka-s/vendor/zendframework/zend-mvc/src/DispatchListener.php(138): Zend\Mvc\Controller\AbstractController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))
#19 /Users/laurent/Documents/Collection/omeka-s/vendor/zendframework/zend-eventmanager/src/EventManager.php(322): Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))
#20 /Users/laurent/Documents/Collection/omeka-s/vendor/zendframework/zend-eventmanager/src/EventManager.php(179): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent), Object(Closure))
#21 /Users/laurent/Documents/Collection/omeka-s/vendor/zendframework/zend-mvc/src/Application.php(332): Zend\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Zend\Mvc\MvcEvent))
#22 /Users/laurent/Documents/Collection/omeka-s/index.php(21): Zend\Mvc\Application->run()
#23 {main}

Next Doctrine\ORM\Query\QueryException: [Syntax Error] line 0, col 7: Error: Expected IdentificationVariable | ScalarExpression | AggregateExpression | FunctionDeclaration | PartialObjectExpression | "(" Subselect ")" | CaseExpression, got 'Omeka\Entity\SitePageBlock' in /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php:54
Stack trace:
#0 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(456): Doctrine\ORM\Query\QueryException::syntaxError('line 0, col 7: ...', Object(Doctrine\ORM\Query\QueryException))
#1 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(2253): Doctrine\ORM\Query\Parser->syntaxError('IdentificationV...', Array)
#2 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(1182): Doctrine\ORM\Query\Parser->SelectExpression()
#3 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(878): Doctrine\ORM\Query\Parser->SelectClause()
#4 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(847): Doctrine\ORM\Query\Parser->SelectStatement()
#5 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(260): Doctrine\ORM\Query\Parser->QueryLanguage()
#6 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(359): Doctrine\ORM\Query\Parser->getAST()
#7 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query.php(283): Doctrine\ORM\Query\Parser->parse()
#8 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/Query.php(295): Doctrine\ORM\Query->_parse()
#9 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php(967): Doctrine\ORM\Query->_doExecute()
#10 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php(922): Doctrine\ORM\AbstractQuery->executeIgnoreQueryCache(NULL, NULL)
#11 /Users/laurent/Documents/Collection/omeka-s/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php(765): Doctrine\ORM\AbstractQuery->execute(NULL, NULL)
#12 /Users/laurent/Documents/Collection/omeka-s/modules/Timeline/src/Controller/TimelineController.php(61): Doctrine\ORM\AbstractQuery->getOneOrNullResult()
#13 /Users/laurent/Documents/Collection/omeka-s/modules/Timeline/src/Controller/TimelineController.php(25): Timeline\Controller\TimelineController->getBlock(10)
#14 /Users/laurent/Documents/Collection/omeka-s/vendor/zendframework/zend-mvc/src/Controller/AbstractActionController.php(78): Timeline\Controller\TimelineController->eventsAction()
#15 /Users/laurent/Documents/Collection/omeka-s/vendor/zendframework/zend-eventmanager/src/EventManager.php(322): Zend\Mvc\Controller\AbstractActionController->onDispatch(Object(Zend\Mvc\MvcEvent))
#16 /Users/laurent/Documents/Collection/omeka-s/vendor/zendframework/zend-eventmanager/src/EventManager.php(179): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent), Object(Closure))
#17 /Users/laurent/Documents/Collection/omeka-s/vendor/zendframework/zend-mvc/src/Controller/AbstractController.php(104): Zend\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Zend\Mvc\MvcEvent))
#18 /Users/laurent/Documents/Collection/omeka-s/vendor/zendframework/zend-mvc/src/DispatchListener.php(138): Zend\Mvc\Controller\AbstractController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))
#19 /Users/laurent/Documents/Collection/omeka-s/vendor/zendframework/zend-eventmanager/src/EventManager.php(322): Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))
#20 /Users/laurent/Documents/Collection/omeka-s/vendor/zendframework/zend-eventmanager/src/EventManager.php(179): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent), Object(Closure))
#21 /Users/laurent/Documents/Collection/omeka-s/vendor/zendframework/zend-mvc/src/Application.php(332): Zend\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Zend\Mvc\MvcEvent))
#22 /Users/laurent/Documents/Collection/omeka-s/index.php(21): Zend\Mvc\Application->run()
#23 {main}

Same error is raised with Knightlab.

I tested with a previously working block configuration, and also with a default block config with the same result.

Knightlab producing Zend error

We're getting a Zend error when using Timeline 3.4.12 with the Knightlab library on an Omeka S 2.1 test site with the last few releases of Timeline module. Was hoping newest release would fix it but I guess the problem is on our end. It works perfectly on our production site which is still running S 1.4 with Timeline 3.4.5 It works fine with the Simile library on 2.1 but when switched to Knightlab this is the result:

`Zend\Router\Exception\InvalidArgumentException
Missing parameter "block-id"

Details:

Zend\Router\Exception\InvalidArgumentException: Missing parameter "block-id" in /space/omekaS_2.1/vendor/zendframework/zend-router/src/Http/Segment.php:309
Stack trace:
#0 /space/omekaS_2.1/vendor/zendframework/zend-router/src/Http/Segment.php(423): Zend\Router\Http\Segment->buildPath(Array, Array, false, false, Array)
#1 /space/omekaS_2.1/vendor/zendframework/zend-router/src/Http/TreeRouteStack.php(391): Zend\Router\Http\Segment->assemble(Array, Array)
#2 /space/omekaS_2.1/vendor/zendframework/zend-view/src/Helper/Url.php(106): Zend\Router\Http\TreeRouteStack->assemble(Array, Array)
#3 [internal function]: Zend\View\Helper\Url->__invoke('timeline-block', Array)
#4 /space/omekaS_2.1/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(397): call_user_func_array(Object(Zend\View\Helper\Url), Array)
#5 /space/omekaS_2.1/themes/jjavits/view/common/block-layout/timeline_knightlab.phtml(11): Zend\View\Renderer\PhpRenderer->__call('url', Array)
#6 /space/omekaS_2.1/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(506): include('/space/omekaS_2...')
#7 /space/omekaS_2.1/vendor/zendframework/zend-view/src/Helper/Partial.php(62): Zend\View\Renderer\PhpRenderer->render(NULL, NULL)
#8 [internal function]: Zend\View\Helper\Partial->__invoke('common/block-la...', Array)
#9 /space/omekaS_2.1/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(397): call_user_func_array(Object(Zend\View\Helper\Partial), Array)
#10 /space/omekaS_2.1/modules/Timeline/src/Site/BlockLayout/Timeline.php(152): Zend\View\Renderer\PhpRenderer->__call('partial', Array)
#11 /space/omekaS_2.1/application/src/View/Helper/BlockLayout.php(124): Timeline\Site\BlockLayout\Timeline->render(Object(Zend\View\Renderer\PhpRenderer), Object(Omeka\Api\Representation\SitePageBlockRepresentation))
#12 /space/omekaS_2.1/application/view/omeka/site/page/content.phtml(9): Omeka\View\Helper\BlockLayout->render(Object(Omeka\Api\Representation\SitePageBlockRepresentation))
#13 /space/omekaS_2.1/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(506): include('/space/omekaS_2...')
#14 /space/omekaS_2.1/vendor/zendframework/zend-view/src/View.php(207): Zend\View\Renderer\PhpRenderer->render(NULL)
#15 /space/omekaS_2.1/vendor/zendframework/zend-view/src/View.php(236): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#16 /space/omekaS_2.1/vendor/zendframework/zend-view/src/View.php(200): Zend\View\View->renderChildren(Object(Zend\View\Model\ViewModel))
#17 /space/omekaS_2.1/vendor/zendframework/zend-view/src/View.php(236): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#18 /space/omekaS_2.1/vendor/zendframework/zend-view/src/View.php(200): Zend\View\View->renderChildren(Object(Zend\View\Model\ViewModel))
#19 /space/omekaS_2.1/vendor/zendframework/zend-mvc/src/View/Http/DefaultRenderingStrategy.php(105): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#20 /space/omekaS_2.1/vendor/zendframework/zend-eventmanager/src/EventManager.php(322): Zend\Mvc\View\Http\DefaultRenderingStrategy->render(Object(Zend\Mvc\MvcEvent))
#21 /space/omekaS_2.1/vendor/zendframework/zend-eventmanager/src/EventManager.php(171): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent))
#22 /space/omekaS_2.1/vendor/zendframework/zend-mvc/src/Application.php(367): Zend\EventManager\EventManager->triggerEvent(Object(Zend\Mvc\MvcEvent))
#23 /space/omekaS_2.1/vendor/zendframework/zend-mvc/src/Application.php(348): Zend\Mvc\Application->completeRequest(Object(Zend\Mvc\MvcEvent))
#24 /space/omekaS_2.1/index.php(21): Zend\Mvc\Application->run()
#25 {main}`

We are currently running PHP 7.2.34 with Zend engine 3.2.0 and MariaDB 10.1.47

Can't get Timeline to show any events or center on date

Another individual in our organization setup Omeka S (v2.1.0) and Timeline (v3.4.10) on Reclaim Hosting for a long-term Local History project. Omeka S works as expected, however Timeline shows no events and won't center on the date she entered. (See screenshots below.) She's asked me to take a look at the plugin in the hopes I can get it to work. I've checked as much documentation as I can find online, but have yet to find a reason why the timeline is always blank and centers on today. I'd greatly appreciate any ideas about what might be wrong.

timeline-settings

timeline

Cannot find format for "Query to limit resources"

Hi, is there any documentation of formatting the "Query to limit resources"? I can't seem to figure out the fields that are usable or a method of formatting the string.
The only to fields I could manage were the default site_id or id

I can use id to query for a single item, but cannot figure out how to query for multiple items by id or by any other field. Attempts included were
id=1,2
id=1,id=2
id=1&2
id=1&id=2

Any commas throw 500 errors and need to have the timeline deleted and made from scratch.

I do not have direct access to the database.
I also tried using one of the default Dublin Core fields that can be added to an item, e.g. pmid and using that to filter. But understanding that probably would need to result in a SQL JOIN to another table as it is not directly stored on the timeline item, but the extra metadata fields would probably be foreign keyed, one-to-many.

Any help is appreciated. Cheers!

image (2)

Error of Timeline Exhibit

Hi
I found a Error when i use block ,then i see this error in page view.

Error
Call to a member function setTimestamp() on string

Details:

Error: Call to a member function setTimestamp() on string in /var/www/html/omeka/modules/Timeline/src/Mvc/Controller/Plugin/TimelineExhibitData.php:611
Stack trace:

I try to comment out line 611 in /modules/Timeline/src/Mvc/Controller/Plugin/TimelineExhibitData.php,and it's working.Thanks

Negative date range

Hello,

I have an issue with the Omeka-S Timeline Module when using negative dateranges on an item.

The daterange I need is -2700/-2601 (positive dateranges work without an issue using this format)

I can use the negative date value in the Timeline Module configuration when setting //page> Timeline > Options > Center date to -YYYY.

I am still using the default viewer information, css etc... so nothing has changed codewise to the Module.

The errormessage is visible on the page where an item is included that has a negative daterange. The error message is: "Failed to load json data from /omeka/timeline/3/events.json Internal Server Error" in an alert box. On the background the spinner is loading until I dismiss the alert box.

I get no additional information regarding this error in the console. I have also installed the log modules for Omeka S, yet nothing shows up in that section.

Technical information

  • OS: Ubuntu 16.04 LTS (running in VM) 64 bit
  • Browser: Firefox 59.0.2 (64bit)
  • Timeline version: 3.4.4.
  • Omeka S Version V1.1.1. (fresh install)
  • Timeline library: Simile (not using the Internal library)

Incompatability with Omeka-S

Hi Daniel,

May you kindly assist with configuring the correct version in order for this module to work.

I am on an Ubuntu 18.04 LTS server running Omeka-S.

omeka version
module version

Knightlab timeline throws TypeError

A sample timeline comprised of images with dc:title, dc:description and dc:date works perfectly with Simile, but when the Knightslab library is called the javascript fails with

TypeError: this._el.container is null
timeline.js:13087:4
perf_trace {"name": "e2e", "parent": "PageEvents.BIGPIPE_ONLOAD"}

Module configuration is all default.

Missing Alt text of Media on Timeline

Can the media's description (Alt text module) get pulled as the alt text, e.g., alt="Davidson College Logo" for the media on the timeline? The Mapping Module added this in a recent commit and has the following text. I've tried to implement it (and smaller snippets of the code) into different files in the Timeline configuration with no luck.

// Set the "media" object.
        $media = $item->primaryMedia();
        if ($media) {
            $event['media'] = [
                'url' => $media->thumbnailUrl('large'),
                'thumbnail' => $media->thumbnailUrl('medium'),
                'link' => $item->url(),
                'alt' => $media->altText(),
            ];
        }

Thanks so much!

194 error

Hello,
I have installed Timeline version 3.4.16.3 on Omeka S Version 3.2.0 it threw an error on the first run. I have tried narrowing the amount of items to less than twenty and no change.

The date centering is also not working, it stay focus on todays date.

Thanks for your help.

Here is the Application Log data:
2022-10-18T21:30:08+00:00 ERR (3): Doctrine\ORM\EntityNotFoundException: Entity of type 'Omeka\Entity\SitePage' for IDs id(30) was not found in /home//public_html/vendor/doctrine/orm/lib/Doctrine/ORM/EntityNotFoundException.php:46
Stack trace:
#0 /home/
/public_html/vendor/doctrine/orm/lib/Doctrine/ORM/Proxy/ProxyFactory.php(156): Doctrine\ORM\EntityNotFoundException::fromClassNameAndIdentifier('Omeka\Entity\Si...', Array)
#1 /home//public_html/application/data/doctrine-proxies/_CG__OmekaEntitySitePage.php(277): Doctrine\ORM\Proxy\ProxyFactory->Doctrine\ORM\Proxy{closure}(Object(DoctrineProxies_CG\Omeka\Entity\SitePage), 'getSite', Array)
#2 /home/
/public_html/application/data/doctrine-proxies/__CG__OmekaEntitySitePage.php(277): Closure->invoke(Object(DoctrineProxies_CG\Omeka\Entity\SitePage), 'getSite', Array)
#3 /home/****/public_html/modules/Timeline/src/Controller/ApiController.php(80): DoctrineProxies_CG
\Omeka\Entity\SitePage->getSite()
#4 /home//public_html/vendor/laminas/laminas-mvc/src/Controller/AbstractRestfulController.php(382): Timeline\Controller\ApiController->getList()
#5 /home/
/public_html/application/src/Controller/ApiController.php(168): Laminas\Mvc\Controller\AbstractRestfulController->onDispatch(Object(Laminas\Mvc\MvcEvent))
#6 /home//public_html/modules/Timeline/src/Controller/ApiController.php(186): Omeka\Controller\ApiController->onDispatch(Object(Laminas\Mvc\MvcEvent))
#7 /home/
/public_html/vendor/laminas/laminas-eventmanager/src/EventManager.php(321): Timeline\Controller\ApiController->onDispatch(Object(Laminas\Mvc\MvcEvent))
#8 /home//public_html/vendor/laminas/laminas-eventmanager/src/EventManager.php(178): Laminas\EventManager\EventManager->triggerListeners(Object(Laminas\Mvc\MvcEvent), Object(Closure))
#9 /home/
/public_html/vendor/laminas/laminas-mvc/src/Controller/AbstractController.php(103): Laminas\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Laminas\Mvc\MvcEvent))
#10 /home//public_html/vendor/laminas/laminas-mvc/src/Controller/AbstractRestfulController.php(312): Laminas\Mvc\Controller\AbstractController->dispatch(Object(Laminas\Http\PhpEnvironment\Request), Object(Laminas\Http\PhpEnvironment\Response))
#11 /home/
/public_html/vendor/laminas/laminas-mvc/src/DispatchListener.php(139): Laminas\Mvc\Controller\AbstractRestfulController->dispatch(Object(Laminas\Http\PhpEnvironment\Request), Object(Laminas\Http\PhpEnvironment\Response))
#12 /home//public_html/vendor/laminas/laminas-eventmanager/src/EventManager.php(321): Laminas\Mvc\DispatchListener->onDispatch(Object(Laminas\Mvc\MvcEvent))
#13 /home/
/public_html/vendor/laminas/laminas-eventmanager/src/EventManager.php(178): Laminas\EventManager\EventManager->triggerListeners(Object(Laminas\Mvc\MvcEvent), Object(Closure))
#14 /home//public_html/vendor/laminas/laminas-mvc/src/Application.php(331): Laminas\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Laminas\Mvc\MvcEvent))
#15 /home/
/public_html/index.php(21): Laminas\Mvc\Application->run()
#16 {main}

And here are some screenshots:
image
image

Can Item sets be displayed on the timeline?

I have about 40 local newspapers organized in distinct item sets that span 200 years. These item sets are available through a dedicated omeka site.
How can I have on this site a timeline that will display only the item sets of the newspaper titles and not the items? Is there any way to do this?

prepareRender always defaults to Simile

Hello,

I'm trying to use Knightlab Timeline but I'm only getting an empty space and the following error in the JS console:
Uncaught ReferenceError: TL is not defined at Object.success (welcome:216) at u (jquery.min.js:2) at Object.fireWith [as resolveWith] (jquery.min.js:2) at k (jquery.min.js:2) at XMLHttpRequest.<anonymous> (jquery.min.js:2)

I looked it out a bit and it seems the module loads the Simile scripts but not the Knightlab sources.
I figured the prepareRender() function in src/Site/BlockLayout/Timeline.php always retrieves null when trying to get the timeline library option, thus defaulting to Simile.

Properly displacing the prepareRender() switch block content within the following render() function seems to work. If this is a right way to fix the issue, I'll be happy to submit a pull request.

On a side note, the Knightlab JS library does not seem to require any account anymore.

Have a nice day.

Laurent

timeline_simile.phtml

In a fresh install of the master branch, I've been receiving a Zend error saying that "common/block-layout/timeline_simile" was unable to be found when I tried to view a timeline placed on a page.

The commit from April 7, 2019, renamed the path for timeline_simile.phtml from "common/block-layout/timeline_simile.phtml" to "asset/vendor/simile/timeline_simile.phtml." By copying this file over into the expected directory, I'm able to view the timeline, since this is the path set in line 129 of src/Site/BlockLayout/Timeline.php.

Incompatibility with Omeka S v. 2+?

Uploaded the plugin to an Omeka S version 2.0.2 environment, but then got the following error. I assume this means the Module isn't compatible with version 2?

image

Latest Version of Omeka-s?

I have tried to upload the two latest versions of timeline and they are not working with Omeka-s 4.0.1. Will there be another update soon? Thanks.

Color coding tags on Timeline

Hello,

Is there any possible way to color code the tags on timeline based on certain fields like Title, Author or Description.
I am trying to assign different colors to tags(highlighted in attached image) appearing on timeline based on a field. However, I couldn't find any solution to do it directly or by changing the javascript code.

timeline_highlighted

If possible, Could you please suggest any solution or methods to change the code to implement color coding?

Thank you for your attention.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.