From dc92d9de7b78f7d9383b09ca52cb9d0dac1e87b2 Mon Sep 17 00:00:00 2001 From: Julie Allinson Date: Thu, 21 Mar 2019 18:16:30 +0000 Subject: [PATCH] Replace pul_uv_rails with a direct install of universal viewer. pul_uv_rail is no longer maintained. --- app/assets/stylesheets/hyrax/_viewer.scss | 17 +++- app/helpers/hyrax/iiif_helper.rb | 8 ++ .../iiif_viewers/_universal_viewer.html.erb | 7 +- hyrax.gemspec | 1 - lib/generators/hyrax/install_generator.rb | 6 ++ lib/generators/hyrax/templates/package.json | 11 +++ lib/generators/hyrax/templates/uv.html | 87 +++++++++++++++++++ lib/generators/hyrax/templates/uv_config.json | 3 + lib/hyrax/engine.rb | 1 - spec/helpers/hyrax/iiif_helper_spec.rb | 16 ++++ .../lib/generators/test_app_generator.rb | 5 ++ spec/views/hyrax/base/show.html.erb_spec.rb | 4 +- 12 files changed, 157 insertions(+), 9 deletions(-) create mode 100644 lib/generators/hyrax/templates/package.json create mode 100644 lib/generators/hyrax/templates/uv.html create mode 100644 lib/generators/hyrax/templates/uv_config.json diff --git a/app/assets/stylesheets/hyrax/_viewer.scss b/app/assets/stylesheets/hyrax/_viewer.scss index d67c1281a1..c34dbee527 100644 --- a/app/assets/stylesheets/hyrax/_viewer.scss +++ b/app/assets/stylesheets/hyrax/_viewer.scss @@ -1,8 +1,19 @@ +// Default for smaller screens, uses mobile panel .viewer-wrapper { - height: 500px; + height: 390px; } -.viewer { +.viewer-wrapper iframe { height: 100%; - padding: 10px; + width: 100%; + position: absolute; + top: 0; + left: 0; } + +// Show various footer, header, left and right panels on larger screens only +@media only screen and (min-width: 640px) { + .viewer-wrapper { + height: 640px; + } +} \ No newline at end of file diff --git a/app/helpers/hyrax/iiif_helper.rb b/app/helpers/hyrax/iiif_helper.rb index b78ec369a3..17f1b6e16b 100644 --- a/app/helpers/hyrax/iiif_helper.rb +++ b/app/helpers/hyrax/iiif_helper.rb @@ -8,5 +8,13 @@ def iiif_viewer_display(work_presenter, locals = {}) def iiif_viewer_display_partial(work_presenter) 'hyrax/base/iiif_viewers/' + work_presenter.iiif_viewer.to_s end + + def universal_viewer_base_url + "#{request&.base_url}/uv.html" + end + + def universal_viewer_config_url + "#{request&.base_url}/uv_config.json" + end end end diff --git a/app/views/hyrax/base/iiif_viewers/_universal_viewer.html.erb b/app/views/hyrax/base/iiif_viewers/_universal_viewer.html.erb index 3c422b5594..1489367b9b 100644 --- a/app/views/hyrax/base/iiif_viewers/_universal_viewer.html.erb +++ b/app/views/hyrax/base/iiif_viewers/_universal_viewer.html.erb @@ -1,4 +1,7 @@ -<%= PulUvRails::UniversalViewer.script_tag %>
-
+
diff --git a/hyrax.gemspec b/hyrax.gemspec index deda721cfe..4a979f782c 100644 --- a/hyrax.gemspec +++ b/hyrax.gemspec @@ -68,7 +68,6 @@ SUMMARY spec.add_dependency 'oauth2', '~> 1.2' spec.add_dependency 'posix-spawn' spec.add_dependency 'power_converter', '~> 0.1', '>= 0.1.2' - spec.add_dependency 'pul_uv_rails', '~> 2.0' spec.add_dependency 'qa', '>= 2', '< 4' # questioning_authority spec.add_dependency 'rails_autolink', '~> 1.1' spec.add_dependency 'rdf-rdfxml' # controlled vocabulary importer diff --git a/lib/generators/hyrax/install_generator.rb b/lib/generators/hyrax/install_generator.rb index 430c2e735d..b2bf67b867 100644 --- a/lib/generators/hyrax/install_generator.rb +++ b/lib/generators/hyrax/install_generator.rb @@ -173,6 +173,12 @@ def riiif_image_server generate 'hyrax:riiif' unless options[:'skip-riiif'] end + def universalviewer_files + copy_file 'package.json', 'package.json' + copy_file 'uv.html', 'public/uv.html' + copy_file 'uv_config.json', 'public/uv_config.json' + end + # Blacklight::Controller will by default add an after_action filter to discard all flash messages on xhr requests. # This has caused problems when we perform a post-redirect-get cycle using xhr and turbolinks. # This injector will modify the generated ApplicationController to skip this action. diff --git a/lib/generators/hyrax/templates/package.json b/lib/generators/hyrax/templates/package.json new file mode 100644 index 0000000000..0372a17624 --- /dev/null +++ b/lib/generators/hyrax/templates/package.json @@ -0,0 +1,11 @@ +{ + "name": "hyrax", + "private": true, + "repository": "git@github.com:samvera/hyrax.git", + "scripts": { + "install-uv": "yarn install --modules-folder ./public/uv" + }, + "dependencies": { + "universalviewer": "^3.0.16" + } +} \ No newline at end of file diff --git a/lib/generators/hyrax/templates/uv.html b/lib/generators/hyrax/templates/uv.html new file mode 100644 index 0000000000..26136fc041 --- /dev/null +++ b/lib/generators/hyrax/templates/uv.html @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + +
+ + + + + diff --git a/lib/generators/hyrax/templates/uv_config.json b/lib/generators/hyrax/templates/uv_config.json new file mode 100644 index 0000000000..077404aaa4 --- /dev/null +++ b/lib/generators/hyrax/templates/uv_config.json @@ -0,0 +1,3 @@ +{ + +} \ No newline at end of file diff --git a/lib/hyrax/engine.rb b/lib/hyrax/engine.rb index c6343b29d1..d0e3281ce0 100644 --- a/lib/hyrax/engine.rb +++ b/lib/hyrax/engine.rb @@ -13,7 +13,6 @@ class Engine < ::Rails::Engine require 'qa' require 'clipboard/rails' require 'legato' - require 'pul_uv_rails' # Force these models to be added to Legato's registry in development mode config.eager_load_paths += %W[ diff --git a/spec/helpers/hyrax/iiif_helper_spec.rb b/spec/helpers/hyrax/iiif_helper_spec.rb index 42655bd5c2..87bb1a4a5e 100644 --- a/spec/helpers/hyrax/iiif_helper_spec.rb +++ b/spec/helpers/hyrax/iiif_helper_spec.rb @@ -41,4 +41,20 @@ it { is_expected.to eq 'hyrax/base/iiif_viewers/mirador' } end end + + describe '#universal_viewer_base_url' do + subject { helper.universal_viewer_base_url } + + it 'defaults to universal viewer base path' do + expect(subject).to eq "http://test.host/uv.html" + end + end + + describe '#universal_viewer_config_url' do + subject { helper.universal_viewer_config_url } + + it 'defaults to universal viewer base path' do + expect(subject).to eq "http://test.host/uv_config.json" + end + end end diff --git a/spec/test_app_templates/lib/generators/test_app_generator.rb b/spec/test_app_templates/lib/generators/test_app_generator.rb index 756660e2ea..26adfd9a65 100644 --- a/spec/test_app_templates/lib/generators/test_app_generator.rb +++ b/spec/test_app_templates/lib/generators/test_app_generator.rb @@ -128,4 +128,9 @@ def configure_action_cable_to_use_redis "development:\n adapter: async", "development:\n adapter: redis\n url: redis://localhost:6379" end + + def install_universal_viewer + exec('yarn run install-uv') + end + end diff --git a/spec/views/hyrax/base/show.html.erb_spec.rb b/spec/views/hyrax/base/show.html.erb_spec.rb index 3a5284ff74..5953a76892 100644 --- a/spec/views/hyrax/base/show.html.erb_spec.rb +++ b/spec/views/hyrax/base/show.html.erb_spec.rb @@ -80,7 +80,7 @@ let(:viewer_enabled) { true } it 'renders the UniversalViewer' do - expect(page).to have_selector 'div.viewer' + expect(page).to have_selector 'div.viewer-wrapper' end end @@ -88,7 +88,7 @@ let(:viewer_enabled) { false } it 'omits the UniversalViewer' do - expect(page).not_to have_selector 'div.viewer' + expect(page).not_to have_selector 'div.viewer-wrapper' end end end