scholarslab / NeatlineTime

http://neatline.org/
Apache License 2.0
16 stars 11 forks source link

blank Timeline #94

Closed jim1001 closed 4 years ago

jim1001 commented 5 years ago

Installed OK & created new Timeline OK - except completely blank page (no time bar or dates).

I have successfully created a Timeline with items on the same site which I copied to another system & used identical settings for plugin. The two systems have slightly different setups though Omeka version, plugin version & current theme are same.

I enabled dev debugging but saw only warnings such as

Warning: Declaration of NeatlineTimeTimelineTable::filterByPublic($select, $isPublic) should be compatible with Omeka_Db_Table::filterByPublic(Omeka_Db_Select $select, $isPublic) in /var/www/XXX/plugins/NeatlineTime/models/NeatlineTimeTimelineTable.php on line 0

Below is system info from site with problems. Grateful for any help - thanks.

User Browser Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36 Role super System Omeka 2.6.1 PHP 7.0.33-0ubuntu0.16.04.6 (apache2handler) OS Linux 4.4.0-161-generic x86_64 MySQL Server 5.7.27 MySQL Client mysqlnd 5.0.12-dev - 20150407 - $Id: b5c5906d452ec590732a93b051f3827e02749b83 $ Apache Apache/2.4.18 (Ubuntu) PHP Extensions Regular apache2handler, calendar, Core, ctype, date, dom, exif, fileinfo, filter, ftp, gettext, hash, iconv, json, libxml, mysqli, mysqlnd, openssl, pcre, PDO, pdo_mysql, Phar, posix, readline, Reflection, session, shmop, SimpleXML, sockets, SPL, standard, sysvmsg, sysvsem, sysvshm, tokenizer, wddx, xml, xmlreader, xmlwriter, xsl, Zend OPcache, zlib Zend Zend OPcache Plugins AddItemLink 0.1 CsvImport 2.0.4 DocsViewer 2.2 (inactive) ExhibitBuilder 3.4.1 HideElements 1.3 ImageDisplay 1.1 (inactive) ItemOrder 2.0.2 ItemRelations 2.0.2 (inactive) Neatline 2.6.1 NeatlineSimile 2.0.4 NeatlineText 1.1.0 NeatlineTime 2.1.1 NeatlineWaypoints 2.0.2 SimpleContactForm 0.6 (inactive) SimplePages 3.1.1 Sort (inactive) Zoomit 2.0 (inactive) Themes BigStuff-mod3-ML 1.0 (current)

jim1001 commented 5 years ago

To add to diagnostics on last post, I have tested on various browsers, i.e. Chrome, IE, Firefox. Timelines were said to be successfully created but no visible Timeline axis was produced - only a completely blank box. Please let me know if there are any diagnostics I can supply or anything else to try in order to fix. Thank you.

jeremyboggs commented 5 years ago

@jim1001 Can you share a URL where you're trying to publish this timeline? Also, can you share what errors you're seeing under the Console in your browser's Developer tools? I can help you find those tools if you need it. Offhand, it sounds like a JavaScript issue. Thanks!

jeremyboggs commented 5 years ago

@jim1001 Also, if possible, see if you get this same problem on your site with just the NeatlineTime plugin installed and activated. (Deactivate all the other plugins.) If it still doesn't work, we can at least be certain its an issue internal to NeatlineTime. If it does work, try activating your plugins, one at a time, and see if activating one causes the timeline to stop working.

jim1001 commented 5 years ago

Jeremy,

Thanks for looking at this.

For starters here are error messages in brower's developer console (edited out website name for now):

Mixed Content: The page at 'https://XXX/admin/neatline-time/timelines/show/2' was loaded over HTTPS, but requested an insecure script 'http://api.simile-widgets.org/timeline/2.3.1/timeline-api.js?bundle=true'. This request has been blocked; the content must be served over HTTPS. 2:42 Uncaught ReferenceError: SimileAjax is not defined at 2:42 (anonymous) @ 2:42 neatline-time-scripts.js:15 Uncaught ReferenceError: Timeline is not defined at Object._monkeyPatchFillInfoBubble (neatline-time-scripts.js:15) at Object.loadTimeline (neatline-time-scripts.js:64) at HTMLDocument. (2:189) at i (jquery.min.js:2) at Object.fireWith [as resolveWith] (jquery.min.js:2) at Function.ready (jquery.min.js:2) at HTMLDocument.K (jquery.min.js:2) _monkeyPatchFillInfoBubble @ neatline-time-scripts.js:15 loadTimeline @ neatline-time-scripts.js:64 (anonymous) @ 2:189 i @ jquery.min.js:2 fireWith @ jquery.min.js:2 ready @ jquery.min.js:2 K @ jquery.min.js:2

Let me know if you need the other diagnostics - thanks!

jeremyboggs commented 5 years ago

@jim1001 If you can, edit the settings for NeatlineTime in the admin panel. You can do this by navigating to the admin panel, then the Plugins page, then clicking "Configure" for the NeatlineTime listing. There should be an option for you to select local libraries. This should hav the plugin fetch local copies of the Simile API libraries instead of the one from SIMILE's server.

I'll see if we might update the plugin to fetch the external library using HTTPS instead of HTTP, but usign the local libraries should help you avoid this mixed content error.

jim1001 commented 5 years ago

Thanks, sounds promising, however I don't see an option to select local libraries. The only Config options I see are Item Date, Item Title & Item Description. Is there any other way to select them?

charlotte459 commented 5 years ago

We have the same issue with our neatline timeline ... just shows a blank. Similarly, we also can't see any config options beyond date, title, item description. Is there any way to "unlock" aditional features in the admin panel?

jeremyboggs commented 5 years ago

@jim1001 @charlotte459 Ah sorry! I thought this was something we could configure through the admin panel, but currently you cannot. To serve local javascripts, you can update configuration for your Omeka instance by editing the file in application/config/config.ini, and changing the line that for theme.UseInternalAssets to true. See the config.ini on the Omeka repo for reference. If you can, try that, and see if it helps.

In the meantime, I'll put together a patch for a 2.1.2 release that remove the explicit call to http for the external SIMILE timeline library. That should address your issue without the need to change this configuration setting.

jeremyboggs commented 5 years ago

@jim1001 @charlotte459 Looking into this more, it seems the SIMILE timeline library itself has a number of places where other assets are fetched using a hard-coded http request. So, I'm not sure that changing this help. But, please do try it and let me know if it does!

We may be at a point now where we'll need to deprecate this plugin entirely, because it does rely on the SIMILE timeline library itself.

charlotte459 commented 5 years ago

Hi @jeremyboggs thanks for the quick reply! We made the suggested changes, but unfortunately still have an empty timeline config timeline

jeremyboggs commented 5 years ago

@charlotte459 Can you share the output from the Console in developer tools? There may be other issues with other plugins and such, too. This is not an ideal solution, anyways, and I'm afraid we may just need to deprecate this plugin and remove it from the Omeka directory, given the age and limitation of it and the SIMILE timeline library.

jeremyboggs commented 5 years ago

@charlotte459 For example, this solution does work for me, but I also had to deactivate the BulkMetadataEditor plugin becuase its script was throwing some error. That plugin doesn't even need to load anything on Neatline views, so I'm not sure why it even is. (It's likely loading its JavaScripts on every view in Omeka, which isn't necessary or ideal.)

charlotte459 commented 5 years ago

@jeremyboggs hm ... not the answer I was hoping for, too bad :-/ what would be your alternative suggestion to build a timeline? (it's the reason we went with Omeka in the first place) image

jeremyboggs commented 5 years ago

@charlotte459 Well, from your console output, it's not clear to me that you updated and saved the config file for your site. it still looks like the site is trying to get the timeline-api.js file directly from simile-widgets.org instead of locally. Can you confirm you saved the file, and are editing the file for this particular site, and not another, inadvertently? Also, try clearing your browser cache and such?

charlotte459 commented 5 years ago

@jeremyboggs thanks for the suggestion. I cleared my browser history (including cache etc) for all of today, but still get the same console output The config file had saved the changes (filemanager marked the correct time for the change), and we have only one Omeka site image

jeremyboggs commented 5 years ago

@charlotte459 If you're comfortable doing this, I've updated the master branch of this repo to include a patch that removes http from the external call to the timeline-api.js file. You can download that zip file at https://github.com/scholarslab/NeatlineTime/archive/master.zip. Move the contents of that folder into you install's NeatlineTime plugin directory, and see if that helps. If so, I'll release this patch.

charlotte459 commented 5 years ago

@jeremyboggs thanks. I (think I) did it image we get a different error message now, but still not timeline (thanks so much for your support. We really appreciate it!) image

jeremyboggs commented 5 years ago

@charlotte459 The contents of that Zip director need to replace the contents of the NeatlineTime directory. It looks like you may have just uploaded the Zip directory itself (and not its contents).

charlotte459 commented 5 years ago

@jeremyboggs sorry, if it looks like that. I extracted the zip and copied the whole folder in the main NeatlineTime directory (see the "modified today" info)

jeremyboggs commented 5 years ago

OK COOL!

So, it looks like there might be a plugin calling a file named exhibit-image-annotation.js. That's not NeatlineTime, so it may be a different plugin. If that sounds familiar, try deactivating that plugin and see if the timeline appears.

charlotte459 commented 5 years ago

@jeremyboggs OMG - that was it! I could've sworn we had installed that plugin only after the timeline didn't show ... deinstalled and can now see the timeline in the admin panel. Unfortunately, it still doesn't show on the public site. Do you have any suggestions / solutions for that? regardless: thank you for your help so far!

jeremyboggs commented 5 years ago

@charlotte459 It's unfortunate to have to uninstall another plugin, so we might be able to figure out what's going on there. As for this working in the admin and not on the public site, I'll need more info. If you can visit a public timeline page and see what the Console is saying there, that will help us debug things. If possible, you can also share a URL to a public timeline that's having this issue, and I can look at the console myself.

You might also undo the change in the application/config/config.ini file, and see the theme.useInternalAssets back to false, and see if the timeline still works. Ideally, you don't need to change that configuration unless you really want to, and the patch I merged into NeatlineTime should address the Mixed Content error y'all have encountered.

charlotte459 commented 5 years ago

@jeremyboggs sure: https://www.archivalgossip.com/collection/neatline-time/timelines/show/1 (we're still building this site ...)

As for config: if we set it back to "false" the timeline is blank again even in the admin view image

jeremyboggs commented 5 years ago

@charlotte459 OK, as I suspected, we'll probably just need to fetch the local files instead of trying to get the external library over HTTPS. I've update the master branch to do just that, so if y'all wanna try out those changes, lemme know if that works.

But, all this makes me think even more we'll need to deprecate this plugin. The SIMILE libraries are over a decade old, and unless further investigation garners some more insight, it looks like there's some conflict here between the simile-ajax-bundle.js file and Omeka's globals.js file. (This may also be a new issue trying to use the plugin on Omeka 2.7.) Why this works in the admin panel and not in your public theme, I simply don't know. if I can figure out anything further I'll continue to post here.

jim1001 commented 5 years ago

Jeremy,

I also thank you for all the help so far. It would be a great shame to abandon the plugin now as it appears so close to fully working (in fact it seems to work perfectly on one of my systems) . There must have been a lot of hard work to get it up & running. Plus there aren't any alternatives as far as I'm aware that the community could use instead - it's a very useful unique component of an Omeka site.

Best wishes, Jim

jeremyboggs commented 4 years ago

Hi folks,

The time has come for us to deprecate this plugin. It's in desperate need of a new timeline library. Daniel-KM has a fork of this project with updates that include the KnightLab's timeline. It also seems to work for both Omeka Classic and Omeka S. I'd recommend checking that out - https://github.com/Daniel-KM/Omeka-plugin-NeatlineTime.

If we make more progress toward a newer and shiner stand-alone timeline plugin, we'll likely release that under a new name.

jeremyboggs commented 4 years ago

Hi folks,

After getting some kind, expert advice from @zerocrates, we were able to address this issue. I just tagged version 2.1.2 for this plugin. It should address the blank timelines, as well as some earlier reported issues with MySQL.

So, we'll still try to support the use of this plugin as long as we can, and will work toward developing some alternatives using different timeline libraries.

charlotte459 commented 4 years ago

Hi Jeremy, thank you SO MUCH! It works! We finally have our timeline. Thank you, @zerocrates, for solving the issue and thank you, @jeremyboggs for your continued support of this plugin!