diff --git a/Gemfile b/Gemfile index 299e65bb8..c7a35e799 100644 --- a/Gemfile +++ b/Gemfile @@ -81,8 +81,8 @@ gem 'bulkrax', '~> 5.0' gem 'blacklight', '~> 6.7' gem 'blacklight_oai_provider', '~> 6.1', '>= 6.1.1' -gem 'hyrax', '~> 3.5.0' - +gem 'hyrax', git: 'https://github.com/samvera/hyrax.git', branch: 'privkey_for_ga4_3.x' #'~> 3.6.0' +gem 'addressable', '2.8.1' gem 'bolognese', '>= 1.9.10' gem 'hyrax-doi', git: 'https://github.com/samvera-labs/hyrax-doi.git', branch: 'hyrax_upgrade' gem 'hyrax-iiif_av', git: 'https://github.com/samvera-labs/hyrax-iiif_av.git', branch: 'main' diff --git a/Gemfile.lock b/Gemfile.lock index 1eea75ce1..5142b2284 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -31,19 +31,83 @@ GIT iiif_manifest (> 0.5) rails (~> 5.1) +GIT + remote: https://github.com/samvera/hyrax.git + revision: 8bc9944164fdf8446b22bd4be66e5478292ceaa8 + branch: privkey_for_ga4_3.x + specs: + hyrax (3.6.0) + active-fedora (~> 13.1, >= 13.1.2) + almond-rails (~> 0.1) + awesome_nested_set (~> 3.1) + blacklight (~> 6.14) + blacklight-gallery (~> 0.7) + breadcrumbs_on_rails (~> 3.0) + browse-everything (>= 0.16, < 2.0) + carrierwave (~> 1.0) + clipboard-rails (~> 1.5) + draper (~> 4.0) + dry-equalizer (~> 0.2) + dry-events (~> 0.2.0) + dry-monads (< 1.5) + dry-struct (~> 1.0) + dry-transaction (~> 0.11) + dry-validation (~> 1.3) + flipflop (~> 2.3) + flot-rails (~> 0.0.6) + font-awesome-rails (~> 4.2) + hydra-derivatives (~> 3.3) + hydra-editor (~> 5.0, >= 5.0.4) + hydra-file_characterization (~> 1.1.2) + hydra-head (~> 11.0, >= 11.0.1) + hydra-works (>= 0.16) + iiif_manifest (>= 0.3, < 2.0) + jquery-datatables-rails (~> 3.4) + jquery-ui-rails (~> 6.0) + json-ld (< 3.2) + json-schema + kaminari_route_prefix (~> 0.1.1) + legato (~> 0.3) + linkeddata + mailboxer (~> 0.12) + nest (~> 3.1) + noid-rails (~> 3.0.0) + oauth + oauth2 (~> 1.2) + posix-spawn + power_converter (~> 0.1, >= 0.1.2) + psych (~> 3.3) + qa (~> 5.5, >= 5.5.1) + rails (~> 5.0) + rails_autolink (~> 1.1) + rdf-rdfxml + rdf-vocab (~> 3.0) + redis (~> 4.0) + redis-namespace (~> 1.5) + redlock (>= 0.1.2, < 2.0) + reform (~> 2.3) + reform-rails (~> 0.2.0) + retriable (>= 2.9, < 4.0) + samvera-nesting_indexer (~> 2.0) + sass-rails (~> 5.0) + select2-rails (~> 3.5) + signet + tinymce-rails (~> 5.10) + valkyrie (~> 2, >= 2.1.1) + GIT remote: https://github.com/scientist-softserv/iiif_print.git - revision: 8aaa943573bdf561c5382ba75f0da5762ff9b73f + revision: eb320b1c454f0219d9e17fd12fd2b525770123b2 branch: main specs: iiif_print (1.0.0) blacklight_iiif_search (~> 1.0) + derivative-rodeo (~> 0.4) dry-monads (~> 1.4.0) - hyrax (>= 2.5, < 4.0) + hyrax (>= 2.5, < 4) nokogiri (>= 1.13.2) rails (~> 5.0) rdf-vocab (~> 3.0) - reform-rails (= 0.2.3) GEM remote: https://rubygems.org/ @@ -81,7 +145,7 @@ GEM ldp (>= 0.7.0, < 2) rsolr (>= 1.1.2, < 3) ruby-progressbar (~> 1.0) - active-triples (1.1.1) + active-triples (1.2.0) activemodel (>= 3.0.0) activesupport (>= 3.0.0) rdf (>= 2.0.2, < 4.0) @@ -105,7 +169,7 @@ GEM activemodel (= 5.2.8.1) activesupport (= 5.2.8.1) arel (>= 9.0) - activerecord-import (1.4.0) + activerecord-import (1.4.1) activerecord (>= 4.2) activerecord-nulldb-adapter (0.8.0) activerecord (>= 5.2.0, < 7.1) @@ -122,7 +186,7 @@ GEM public_suffix (>= 2.0.2, < 6.0) almond-rails (0.3.0) rails (>= 4.2) - amazing_print (1.4.0) + amazing_print (1.5.0) apartment (2.2.1) activerecord (>= 3.1.2, < 6.0) parallel (>= 0.7.1) @@ -130,28 +194,28 @@ GEM rack (>= 1.3.6) arel (9.0.0) ast (2.4.2) - autoprefixer-rails (10.4.7.0) + autoprefixer-rails (10.4.13.0) execjs (~> 2) awesome_nested_set (3.5.0) activerecord (>= 4.0.0, < 7.1) aws-eventstream (1.2.0) - aws-partitions (1.626.0) - aws-sdk-core (3.140.0) + aws-partitions (1.783.0) + aws-sdk-core (3.176.1) aws-eventstream (~> 1, >= 1.0.2) - aws-partitions (~> 1, >= 1.525.0) - aws-sigv4 (~> 1.1) + aws-partitions (~> 1, >= 1.651.0) + aws-sigv4 (~> 1.5) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.58.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kms (1.68.0) + aws-sdk-core (~> 3, >= 3.176.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.114.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-s3 (1.127.0) + aws-sdk-core (~> 3, >= 3.176.0) aws-sdk-kms (~> 1) - aws-sigv4 (~> 1.4) + aws-sigv4 (~> 1.6) aws-sdk-sqs (1.51.1) aws-sdk-core (~> 3, >= 3.127.0) aws-sigv4 (~> 1.1) - aws-sigv4 (1.5.1) + aws-sigv4 (1.6.0) aws-eventstream (~> 1, >= 1.0.2) babel-source (5.8.35) babel-transpiler (0.7.0) @@ -194,13 +258,13 @@ GEM bootstrap-sass (~> 3.0) openseadragon (>= 0.2.0) rails + blacklight_advanced_search (6.4.1) + blacklight (~> 6.0, >= 6.0.1) + parslet blacklight_iiif_search (1.0.0) blacklight (~> 6.0) iiif-presentation rails (>= 4.2, < 6) - blacklight_advanced_search (6.4.1) - blacklight (~> 6.0, >= 6.0.1) - parslet blacklight_oai_provider (6.1.1) blacklight (~> 6.0) oai (~> 1.0) @@ -280,11 +344,11 @@ GEM capybara-screenshot (1.0.26) capybara (>= 1.0, < 4) launchy - carrierwave (1.3.2) + carrierwave (1.3.3) activemodel (>= 4.0.0) activesupport (>= 4.0.0) mime-types (>= 1.16) - ssrf_filter (~> 1.0) + ssrf_filter (~> 1.0, < 1.1.0) carrierwave-aws (1.4.0) aws-sdk-s3 (~> 1.0) carrierwave (>= 0.7, < 2.1) @@ -309,11 +373,11 @@ GEM execjs coffee-script-source (1.12.2) colorize (0.8.1) - concurrent-ruby (1.1.10) + concurrent-ruby (1.2.2) config (2.2.3) deep_merge (~> 1.2, >= 1.2.1) dry-validation (~> 1.0, >= 1.0.0) - connection_pool (2.2.5) + connection_pool (2.4.1) coveralls (0.8.23) json (>= 1.8, < 3) simplecov (~> 0.16.1) @@ -334,6 +398,7 @@ GEM activerecord (>= 5.a) database_cleaner-core (~> 2.0.0) database_cleaner-core (2.0.1) + date (3.3.3) declarative (0.0.20) declarative-builder (0.1.0) declarative-option (< 0.2.0) @@ -341,6 +406,15 @@ GEM deep_merge (1.2.2) deprecation (1.1.0) activesupport + derivative-rodeo (0.4.2) + activesupport (>= 5) + aws-sdk-s3 + aws-sdk-sqs + httparty + marcel + mime-types + mini_magick + nokogiri devise (4.8.1) bcrypt (~> 3.0) orm_adapter (~> 0.1) @@ -373,13 +447,14 @@ GEM dropbox_api (0.1.21) faraday (< 3.0) oauth2 (~> 1.1) - dry-configurable (0.15.0) - concurrent-ruby (~> 1.0) + dry-configurable (0.16.1) dry-core (~> 0.6) - dry-container (0.10.1) + zeitwerk (~> 2.6) + dry-container (0.11.0) concurrent-ruby (~> 1.0) - dry-core (0.8.1) + dry-core (0.9.1) concurrent-ruby (~> 1.0) + zeitwerk (~> 2.6) dry-equalizer (0.3.0) dry-events (0.2.0) concurrent-ruby (~> 1.0) @@ -387,42 +462,47 @@ GEM dry-equalizer (~> 0.2) dry-inflector (0.3.0) dry-initializer (3.1.1) - dry-logic (1.2.0) + dry-logic (1.3.0) concurrent-ruby (~> 1.0) - dry-core (~> 0.5, >= 0.5) + dry-core (~> 0.9, >= 0.9) + zeitwerk (~> 2.6) dry-matcher (0.9.0) dry-core (~> 0.4, >= 0.4.8) dry-monads (1.4.0) concurrent-ruby (~> 1.0) dry-core (~> 0.7) - dry-schema (1.10.2) + dry-schema (1.11.3) concurrent-ruby (~> 1.0) - dry-configurable (~> 0.13, >= 0.13.0) - dry-core (~> 0.5, >= 0.5) + dry-configurable (~> 0.16, >= 0.16) + dry-core (~> 0.9, >= 0.9) dry-initializer (~> 3.0) - dry-logic (~> 1.0) - dry-types (~> 1.5) - dry-struct (1.4.0) - dry-core (~> 0.5, >= 0.5) - dry-types (~> 1.5) + dry-logic (~> 1.3) + dry-types (~> 1.6) + zeitwerk (~> 2.6) + dry-struct (1.5.2) + dry-core (~> 0.9, >= 0.9) + dry-types (~> 1.6) ice_nine (~> 0.11) + zeitwerk (~> 2.6) dry-transaction (0.13.3) dry-container (>= 0.2.8) dry-events (>= 0.1.0) dry-matcher (>= 0.7.0) dry-monads (>= 0.4.0) - dry-types (1.5.1) + dry-types (1.6.1) concurrent-ruby (~> 1.0) dry-container (~> 0.3) - dry-core (~> 0.5, >= 0.5) + dry-core (~> 0.9, >= 0.9) dry-inflector (~> 0.1, >= 0.1.2) - dry-logic (~> 1.0, >= 1.0.2) - dry-validation (1.8.1) + dry-logic (~> 1.3, >= 1.3) + zeitwerk (~> 2.6) + dry-validation (1.9.0) concurrent-ruby (~> 1.0) dry-container (~> 0.7, >= 0.7.1) - dry-core (~> 0.5, >= 0.5) + dry-core (~> 0.9, >= 0.9) dry-initializer (~> 3.0) - dry-schema (~> 1.8, >= 1.8.0) + dry-schema (~> 1.11, >= 1.11.0) + zeitwerk (~> 2.6) easy_translate (0.5.1) thread thread_safe @@ -437,11 +517,11 @@ GEM activesupport (>= 3.0, < 8.0) equivalent-xml (0.6.0) nokogiri (>= 1.4.3) - erubi (1.11.0) + erubi (1.12.0) erubis (2.7.0) et-orbi (1.2.7) tzinfo - ethon (0.15.0) + ethon (0.16.0) ffi (>= 1.15.0) excon (0.71.1) execjs (2.8.1) @@ -450,7 +530,7 @@ GEM factory_bot_rails (6.2.0) factory_bot (~> 6.2.0) railties (>= 5.0.0) - faraday (0.17.5) + faraday (0.17.6) multipart-post (>= 1.2, < 3) faraday-encoding (0.0.5) faraday @@ -464,7 +544,7 @@ GEM path_expander (~> 1.0) ruby_parser (~> 3.0) sexp_processor (~> 4.0) - flipflop (2.7.0) + flipflop (2.7.1) activesupport (>= 4.0) terminal-table (>= 1.8) flot-rails (0.0.7) @@ -477,13 +557,13 @@ GEM raabro (~> 1.4) gender_detector (0.1.2) unicode_utils (>= 1.3.0) - geocoder (1.8.0) + geocoder (1.8.1) gitlab (4.19.0) httparty (~> 0.20) terminal-table (>= 1.5.1) - globalid (1.0.0) + globalid (1.1.0) activesupport (>= 5.0) - google-apis-core (0.10.0) + google-apis-core (0.11.0) addressable (~> 2.5, >= 2.5.1) googleauth (>= 0.16.2, < 2.a) httpclient (>= 2.8.1, < 3.a) @@ -492,9 +572,9 @@ GEM retriable (>= 2.0, < 4.a) rexml webrick - google-apis-drive_v3 (0.33.0) - google-apis-core (>= 0.9.1, < 2.a) - googleauth (1.3.0) + google-apis-drive_v3 (0.42.0) + google-apis-core (>= 0.11.0, < 2.a) + googleauth (1.6.0) faraday (>= 0.17.3, < 3.a) jwt (>= 1.4, < 3.0) memoist (~> 0.16) @@ -550,73 +630,16 @@ GEM hydra-access-controls (= 11.0.7) hydra-core (= 11.0.7) rails (>= 5.2, < 6.1) - hydra-pcdm (1.1.0) - active-fedora (>= 10, < 14) + hydra-pcdm (1.3.0) + active-fedora (>= 10, < 15) mime-types (>= 1) - hydra-works (2.0.0) - activesupport (>= 5.2, < 7.0) + rdf-vocab + hydra-works (2.1.0) + activesupport (>= 5.2, < 7.1) hydra-derivatives (~> 3.6) hydra-file_characterization (~> 1.0) hydra-pcdm (>= 0.9) - hyrax (3.5.0) - active-fedora (~> 13.1, >= 13.1.2) - almond-rails (~> 0.1) - awesome_nested_set (~> 3.1) - blacklight (~> 6.14) - blacklight-gallery (~> 0.7) - breadcrumbs_on_rails (~> 3.0) - browse-everything (>= 0.16, < 2.0) - carrierwave (~> 1.0) - clipboard-rails (~> 1.5) - draper (~> 4.0) - dry-equalizer (~> 0.2) - dry-events (~> 0.2.0) - dry-monads (< 1.5) - dry-struct (~> 1.0) - dry-transaction (~> 0.11) - dry-validation (~> 1.3) - flipflop (~> 2.3) - flot-rails (~> 0.0.6) - font-awesome-rails (~> 4.2) - hydra-derivatives (~> 3.3) - hydra-editor (~> 5.0, >= 5.0.4) - hydra-file_characterization (~> 1.1.2) - hydra-head (~> 11.0, >= 11.0.1) - hydra-works (>= 0.16) - iiif_manifest (>= 0.3, < 2.0) - jquery-datatables-rails (~> 3.4) - jquery-ui-rails (~> 6.0) - json-ld (< 3.2) - json-schema - kaminari_route_prefix (~> 0.1.1) - legato (~> 0.3) - linkeddata - mailboxer (~> 0.12) - nest (~> 3.1) - noid-rails (~> 3.0.0) - oauth - oauth2 (~> 1.2) - posix-spawn - power_converter (~> 0.1, >= 0.1.2) - psych (~> 3.3) - qa (~> 5.5, >= 5.5.1) - rails (~> 5.0) - rails_autolink (~> 1.1) - rdf-rdfxml - rdf-vocab (~> 3.0) - redis (~> 4.0) - redis-namespace (~> 1.5) - redlock (>= 0.1.2) - reform (~> 2.3) - reform-rails (~> 0.2.0) - retriable (>= 2.9, < 4.0) - samvera-nesting_indexer (~> 2.0) - sass-rails (~> 5.0) - select2-rails (~> 3.5) - signet - tinymce-rails (~> 5.10) - valkyrie (~> 2, >= 2.1.1) - i18n (1.12.0) + i18n (1.14.1) concurrent-ruby (~> 1.0) i18n-debug (1.2.0) i18n (< 2) @@ -636,7 +659,7 @@ GEM activesupport (>= 3.2.18) faraday (>= 0.9) json - iiif_manifest (1.3.0) + iiif_manifest (1.3.1) activesupport (>= 4) is_it_working (1.1.0) iso-639 (0.3.5) @@ -644,20 +667,20 @@ GEM jbuilder (2.11.5) actionview (>= 5.0.0) activesupport (>= 5.0.0) - jmespath (1.6.1) + jmespath (1.6.2) jquery-datatables-rails (3.4.0) actionpack (>= 3.1) jquery-rails railties (>= 3.1) sass-rails - jquery-rails (4.5.0) + jquery-rails (4.6.0) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) jquery-ui-rails (6.0.1) railties (>= 3.2.16) - json (2.6.2) - json-canonicalization (0.3.0) + json (2.6.3) + json-canonicalization (0.3.2) json-ld (3.1.10) htmlentities (~> 4.3) json-canonicalization (~> 0.2) @@ -668,12 +691,12 @@ GEM json-ld-preloaded (3.1.6) json-ld (~> 3.1) rdf (~> 3.1) - json-schema (3.0.0) + json-schema (4.0.0) addressable (>= 2.8) jsonlint (0.3.0) oj (~> 3) optimist (~> 3) - jwt (2.7.0) + jwt (2.7.1) kaminari (1.2.2) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.2) @@ -754,11 +777,14 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.18.0) + loofah (2.21.3) crass (~> 1.0.2) - nokogiri (>= 1.5.9) - mail (2.7.1) + nokogiri (>= 1.12.0) + mail (2.8.1) mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp mailboxer (0.15.1) carrierwave (>= 0.5.8) rails (>= 5.0.0) @@ -779,10 +805,10 @@ GEM method_source (1.0.0) mime-types (3.4.1) mime-types-data (~> 3.2015) - mime-types-data (3.2022.0105) - mini_magick (4.11.0) + mime-types-data (3.2023.0218.1) + mini_magick (4.12.0) mini_mime (1.1.2) - minitest (5.16.3) + minitest (5.18.1) mods (2.4.1) edtf iso-639 @@ -790,23 +816,32 @@ GEM nom-xml (~> 1.0) multi_json (1.15.0) multi_xml (0.6.0) - multipart-post (2.2.3) + multipart-post (2.3.0) namae (1.1.1) negative_captcha (0.5) actionpack activesupport nest (3.2.0) redic - net-http-persistent (4.0.1) + net-http-persistent (4.0.2) connection_pool (~> 2.2) - nio4r (2.5.8) + net-imap (0.3.6) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.1) + timeout + net-smtp (0.3.3) + net-protocol + nio4r (2.5.9) noid (0.9.0) noid-rails (3.0.3) actionpack (>= 5.0.0, < 7) noid (~> 0.9) - nokogiri (1.13.8-aarch64-linux) + nokogiri (1.13.10-aarch64-linux) racc (~> 1.4) - nokogiri (1.13.8-x86_64-linux) + nokogiri (1.13.10-x86_64-linux) racc (~> 1.4) nom-xml (1.2.0) i18n @@ -819,14 +854,14 @@ GEM oauth-tty (~> 1.0, >= 1.0.1) snaky_hash (~> 2.0) version_gem (~> 1.1) - oauth-tty (1.0.3) - version_gem (~> 1.1) - oauth2 (1.4.10) + oauth-tty (1.0.5) + version_gem (~> 1.1, >= 1.1.1) + oauth2 (1.4.11) faraday (>= 0.17.3, < 3.0) jwt (>= 1.0, < 3.0) multi_json (~> 1.3) multi_xml (~> 0.5) - rack (>= 1.2, < 3) + rack (>= 1.2, < 4) octokit (4.22.0) faraday (>= 0.9) sawyer (~> 0.8.0, >= 0.5.3) @@ -885,22 +920,22 @@ GEM pry-byebug (3.10.1) byebug (~> 11.0) pry (>= 0.13, < 0.15) - psych (3.3.2) + psych (3.3.4) public_suffix (2.0.5) puma (4.3.12) nio4r (~> 2.0) - qa (5.9.0) + qa (5.10.0) activerecord-import deprecation faraday (< 3.0, != 2.0.0) geocoder ldpath nokogiri (~> 1.6) - rails (>= 5.0, < 6.2) + rails (>= 5.0, < 7.1) rdf raabro (1.4.0) - racc (1.6.0) - rack (2.2.4) + racc (1.7.1) + rack (2.2.7) rack-test (0.7.0) rack (>= 1.0, < 3) rails (5.2.8.1) @@ -920,16 +955,19 @@ GEM actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) activesupport (>= 5.0.1.rc1) - rails-dom-testing (2.0.3) - activesupport (>= 4.2.0) + rails-dom-testing (2.1.1) + activesupport (>= 5.0.0) + minitest nokogiri (>= 1.6) - rails-html-sanitizer (1.4.3) - loofah (~> 2.3) + rails-html-sanitizer (1.5.0) + loofah (~> 2.19, >= 2.19.1) rails-i18n (5.1.3) i18n (>= 0.7, < 2) railties (>= 5.0, < 6) - rails_autolink (1.1.6) - rails (> 3.1) + rails_autolink (1.1.8) + actionview (> 3.1) + activesupport (> 3.1) + railties (> 3.1) rails_best_practices (1.23.1) activesupport code_analyzer (~> 0.5.5) @@ -1013,16 +1051,16 @@ GEM redcarpet (3.6.0) redic (1.5.3) hiredis - redis (4.6.0) - redis-namespace (1.10.0) + redis (4.8.1) + redis-namespace (1.11.0) redis (>= 4) - redlock (1.3.0) + redlock (1.3.2) redis (>= 3.0.0, < 6.0) reform (2.5.0) disposable (>= 0.4.2, < 0.5.0) representable (>= 2.4.0, < 3.1.0) uber (< 0.2.0) - reform-rails (0.2.3) + reform-rails (0.2.5) activemodel (>= 5.0) reform (>= 2.3.1, < 3.0.0) regexp_parser (2.5.0) @@ -1091,7 +1129,7 @@ GEM json multipart-post oauth2 - ruby-progressbar (1.11.0) + ruby-progressbar (1.13.0) ruby2_keywords (0.0.5) ruby_dep (1.5.0) ruby_parser (3.19.1) @@ -1161,7 +1199,7 @@ GEM faraday (>= 0.17.5, < 3.a) jwt (>= 1.5, < 3.0) multi_json (~> 1.10) - simple_form (5.1.0) + simple_form (5.2.0) actionpack (>= 5.2) activemodel (>= 5.2) simplecov (0.16.1) @@ -1169,11 +1207,11 @@ GEM json (>= 1.8, < 3) simplecov-html (~> 0.10.0) simplecov-html (0.10.2) - slop (4.9.2) + slop (4.10.1) smart_properties (1.17.0) - snaky_hash (2.0.0) + snaky_hash (2.0.1) hashie - version_gem (~> 1.1) + version_gem (~> 1.1, >= 1.1.1) solr_wrapper (2.2.0) faraday retriable @@ -1206,11 +1244,11 @@ GEM actionpack (>= 5.2) activesupport (>= 5.2) sprockets (>= 3.0.0) - ssrf_filter (1.1.1) + ssrf_filter (1.0.8) sxp (1.1.0) rdf (~> 3.1) sync (0.5.0) - temple (0.8.2) + temple (0.10.2) term-ansicolor (1.7.1) tins (~> 1.0) terminal-table (3.0.2) @@ -1219,13 +1257,14 @@ GEM execjs (>= 0.3.0, < 3) tether-rails (1.4.0) rails (>= 3.1) - thor (1.2.1) + thor (1.2.2) thread (0.2.2) thread_safe (0.3.6) - tilt (2.0.11) + tilt (2.2.0) + timeout (0.4.0) tins (1.31.1) sync - tinymce-rails (5.10.5) + tinymce-rails (5.10.7.1) railties (>= 3.1.1) travis-release (0.0.4) bundler @@ -1239,11 +1278,11 @@ GEM railties (>= 3.1) typhoeus (1.4.0) ethon (>= 0.9.0) - tzinfo (1.2.10) + tzinfo (1.2.11) thread_safe (~> 0.1) uber (0.1.0) unicode-display_width (1.8.0) - unicode-types (1.7.0) + unicode-types (1.8.0) unicode_utils (1.4.0) validatable (1.6.7) valkyrie (2.2.0) @@ -1261,7 +1300,7 @@ GEM rdf-vocab reform (~> 2.2) reform-rails - version_gem (1.1.0) + version_gem (1.1.3) warden (1.2.9) rack (>= 2.0.9) web-console (3.7.0) @@ -1283,6 +1322,7 @@ GEM websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) + zeitwerk (2.6.8) PLATFORMS aarch64-linux-musl @@ -1293,6 +1333,7 @@ DEPENDENCIES active_elastic_job activejob-scheduler! activerecord-nulldb-adapter + addressable (= 2.8.1) apartment aws-sdk-sqs blacklight (~> 6.7) @@ -1322,7 +1363,7 @@ DEPENDENCIES fcrepo_wrapper (~> 0.4) flipflop (~> 2.3) flutie - hyrax (~> 3.5.0) + hyrax! hyrax-doi! hyrax-iiif_av! i18n-debug diff --git a/app/models/concerns/account_settings.rb b/app/models/concerns/account_settings.rb index f64e0f8a7..511b38c01 100644 --- a/app/models/concerns/account_settings.rb +++ b/app/models/concerns/account_settings.rb @@ -17,28 +17,28 @@ module AccountSettings setting :allow_signup, type: 'boolean', default: true setting :allow_downloads, type: 'boolean', default: true setting :auth_provider, type: 'string' + setting :analytics_provider, type: 'string' setting :bulkrax_validations, type: 'boolean', disabled: true setting :cache_api, type: 'boolean', default: false setting :contact_email, type: 'string', default: 'consortial-ir@palci.org' setting :contact_email_to, type: 'string', default: 'consortial-ir@palci.org' setting :doi_reader, type: 'boolean', default: false setting :doi_writer, type: 'boolean', default: false - setting :file_acl, type: 'boolean', default: true, private: true setting :email_format, type: 'array' setting :email_subject_prefix, type: 'string' setting :enable_oai_metadata, type: 'string', disabled: true + setting :file_acl, type: 'boolean', default: true, private: true setting :file_size_limit, type: 'string', default: 5.gigabytes.to_s - setting :google_analytics_id, type: 'string' - setting :google_scholarly_work_types, type: 'array', disabled: true setting :geonames_username, type: 'string', default: '' - setting :gtm_id, type: 'string' setting :google_analytics_id, type: 'string' setting :google_oauth_app_name, type: 'string' setting :google_oauth_app_version, type: 'string' - setting :google_oauth_private_key_value, type: 'string' + setting :google_oauth_client_email, type: 'string' setting :google_oauth_private_key_path, type: 'string' setting :google_oauth_private_key_secret, type: 'string' - setting :google_oauth_client_email, type: 'string' + setting :google_oauth_private_key_value, type: 'string' + setting :google_scholarly_work_types, type: 'array', disabled: true + setting :gtm_id, type: 'string' setting :locale_name, type: 'string', disabled: true setting :monthly_email_list, type: 'array', disabled: true setting :oai_admin_email, type: 'string', default: 'changeme@example.com' @@ -169,6 +169,7 @@ def reload_library_config config.google_analytics_id = google_analytics_id if google_analytics_id.present? config.geonames_username = geonames_username config.uploader[:maxFileSize] = file_size_limit + config.analytics_provider = analytics_provider if analytics_provider.present? end reload_analytics diff --git a/app/models/generic_work.rb b/app/models/generic_work.rb index 760268136..b76dae487 100644 --- a/app/models/generic_work.rb +++ b/app/models/generic_work.rb @@ -42,4 +42,5 @@ class GenericWork < ActiveFedora::Base class_attribute :controlled_properties self.controlled_properties = [:based_near] accepts_nested_attributes_for :based_near, reject_if: id_blank, allow_destroy: true + self.indexer = GenericWorkIndexer end diff --git a/app/services/hyrax/solr_query_service_decorator.rb b/app/services/hyrax/solr_query_service_decorator.rb index e7e5d5adc..32bfc6c33 100644 --- a/app/services/hyrax/solr_query_service_decorator.rb +++ b/app/services/hyrax/solr_query_service_decorator.rb @@ -1,11 +1,11 @@ -# OVERRIDE: Hyrax 3.4.1 changes GET request to POST to allow for larger query size +# OVERRIDE: Hyrax 3.6.0 changes GET request to POST to allow for larger query size # frozen_string_literal: true module Hyrax module SolrQueryServiceDecorator - def get - solr_service.post(build) + def get(*args) + solr_service.post(build, *args) end end end diff --git a/app/services/hyrax/workflow/permission_query.rb b/app/services/hyrax/workflow/permission_query.rb index 8ac3f2ecd..d04b4b135 100644 --- a/app/services/hyrax/workflow/permission_query.rb +++ b/app/services/hyrax/workflow/permission_query.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# OVERRIDE Hyrax v3.4.2 Expand functionality for Groups with Roles Feature +# OVERRIDE Hyrax v3.6.0 Expand functionality for Groups with Roles Feature # @see https://github.com/samvera/hyku/wiki/Groups-with-Roles-Feature # rubocop:disable Metrics/ModuleLength module Hyrax @@ -73,7 +73,8 @@ def scope_permitted_workflow_actions_available_for_current_state(user:, entity:) # @param role [Object] that can be converted into a Sipity::Role # @return [ActiveRecord::Relation] augmented with # - def scope_agents_associated_with_entity_and_role(entity:, role:) # rubocop:disable Metrics/AbcSize + # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/MethodLength + def scope_agents_associated_with_entity_and_role(entity:, role:) entity = Sipity::Entity(entity) role = Sipity::Role(role) @@ -196,7 +197,8 @@ def scope_processing_agents_for(user:) # # @return [ActiveRecord::Relation] # - def scope_entities_for_the_user(user:) # rubocop:disable Metrics/AbcSize + # rubocop:disable Metrics/AbcSize, Metrics/MethodLength + def scope_entities_for_the_user(user:, page: 1, per_page: nil, workflow_state_filter: nil) entities = Sipity::Entity.arel_table workflow_state_actions = Sipity::WorkflowStateAction.arel_table workflow_states = Sipity::WorkflowState.arel_table @@ -229,13 +231,34 @@ def scope_entities_for_the_user(user:) # rubocop:disable Metrics/AbcSize entity_specific_where = where_builder.call(entity_responsibilities).and( entities[:id].eq(entity_responsibilities[:entity_id]) ) + entity_specific_where = filter_by_workflow_state(entity_specific_where, workflow_states, workflow_state_filter) if workflow_state_filter workflow_specific_where = where_builder.call(workflow_responsibilities) + workflow_specific_where = filter_by_workflow_state(workflow_specific_where, workflow_states, workflow_state_filter) if workflow_state_filter - Sipity::Entity.where( + result = Sipity::Entity.where( entities[:id].in(entity_specific_joins.where(entity_specific_where)) .or(entities[:id].in(workflow_specific_joins.where(workflow_specific_where))) ) + # Apply paging if provided + if per_page.nil? + result + else + result.page(page).per(per_page) + end end + + # @api private + # + # Append a filter by workflow state name to the provided where builder. + # If the filter begins with a !, it will filter to states not equal to the filter. + def filter_by_workflow_state(where_builder, workflow_states, filter) + if filter.start_with?('!') + where_builder.and(workflow_states[:name].not_eq(filter[1..-1])) + else + where_builder.and(workflow_states[:name].eq(filter)) + end + end + # rubocop:enable Metrics/AbcSize, Metrics/MethodLength # @api public @@ -251,7 +274,8 @@ def scope_entities_for_the_user(user:) # rubocop:disable Metrics/AbcSize # @param entity an object that can be converted into a Sipity::Entity # @return [ActiveRecord::Relation] # - def scope_users_for_entity_and_roles(entity:, roles:) # rubocop:disable Metrics/AbcSize + # rubocop:disable Metrics/AbcSize, Metrics/MethodLength + def scope_users_for_entity_and_roles(entity:, roles:) entity = Sipity::Entity(entity) role_ids = Array.wrap(roles).map { |role| Sipity::Role(role).id } user_polymorphic_type = ::User.base_class @@ -347,7 +371,7 @@ def scope_processing_workflow_roles_for_user_and_workflow(user:, workflow:) # @param user [User] # @param entity an object that can be converted into a Sipity::Entity # @return [ActiveRecord::Relation] - def scope_processing_workflow_roles_for_user_and_entity_specific(user:, entity:) + def scope_processing_workflow_roles_for_user_and_entity_specific(user:, entity:) # rubocop:disable Metrics/MethodLength entity = Sipity::Entity(entity) agent_scope = scope_processing_agents_for(user: user) @@ -386,7 +410,7 @@ def scope_processing_workflow_roles_for_user_and_entity_specific(user:, entity:) # @param entity an object that can be converted into a Sipity::Entity # @return [ActiveRecord::Relation] # - def scope_permitted_entity_workflow_state_actions(user:, entity:) + def scope_permitted_entity_workflow_state_actions(user:, entity:) # rubocop:disable Metrics/MethodLength entity = Sipity::Entity(entity) workflow_state_actions = Sipity::WorkflowStateAction permissions = Sipity::WorkflowStateActionPermission diff --git a/app/views/hyrax/admin/workflows/index.html.erb b/app/views/hyrax/admin/workflows/index.html.erb index 7a163562b..d13cc4cc5 100644 --- a/app/views/hyrax/admin/workflows/index.html.erb +++ b/app/views/hyrax/admin/workflows/index.html.erb @@ -1,6 +1,7 @@ -<%# OVERRIDE: Hyrax v3.5.0 to show the user/depositor's display_name if available %> +<%# OVERRIDE: Hyrax v3.6.0 to show the user/depositor's display_name if available %> + <% provide :page_header do %> -

<%= t('.header') %>

+

<%= t('.header') %>

<% end %>
@@ -90,6 +91,38 @@
+

<%= t('.works_listing') %>

+ + + + + + + + + + + <% @response.docs.each do |document| %> + + + + + + + <% end %> + +
<%= t(".heading.work") %><%= t(".heading.depositor") %><%= t(".heading.submission_date") %><%= t(".heading.status") %>
+ <%= link_to document, [main_app, document] %> + + <%# OVERRIDE: show the user/depositor's display_name if available %> + <% user = User.find_by(email: document.depositor) %> + <%= user&.display_name.presence %> + + <%= document.date_modified %> + + <%= document.workflow_state %> +
+ <%= render 'hyrax/my/results_pagination' %> diff --git a/config/analytics.yml b/config/analytics.yml index 8cbef1c9b..b530a30da 100644 --- a/config/analytics.yml +++ b/config/analytics.yml @@ -2,8 +2,8 @@ # To integrate your app with Google Analytics, uncomment the lines below and add your API key information. # analytics: - google: - analytics_id: <%= ENV.fetch('GOOGLE_ANALYTICS_ID', '') %> + ga4: + analytics_id: <%= ENV['GOOGLE_ANALYTICS_ID'] %> app_name: <%= ENV.fetch('GOOGLE_OAUTH_APP_NAME', '') %> app_version: <%= ENV.fetch('GOOGLE_OAUTH_APP_VERSION', '') %> privkey_value: <%= ENV.fetch('GOOGLE_OAUTH_PRIVATE_KEY_VALUE', '') %> diff --git a/config/initializers/hyrax.rb b/config/initializers/hyrax.rb index c7e0a7af3..6a2fc4740 100644 --- a/config/initializers/hyrax.rb +++ b/config/initializers/hyrax.rb @@ -29,10 +29,7 @@ # Requires a Google Analytics id and OAuth2 keyfile. See README for more info # This is set by account settings # config.analytics = false - - # Specify a Google Analytics tracking ID to gather usage statistics - # This is set by account settings - # config.google_analytics_id = 'UA-99999999-1' + config.analytics_provider = ENV.fetch('HYRAX_ANALYTICS_PROVIDER', 'ga4') # Specify a date you wish to start collecting Google Analytic statistics for. config.analytic_start_date = DateTime.new(2021,9,13) diff --git a/ops/demo-deploy.tmpl.yaml b/ops/demo-deploy.tmpl.yaml index 859302b00..e2bc38cfc 100644 --- a/ops/demo-deploy.tmpl.yaml +++ b/ops/demo-deploy.tmpl.yaml @@ -106,6 +106,8 @@ extraEnvVars: &envVars value: commons-archive.org - name: HYRAX_ACTIVE_JOB_QUEUE value: sidekiq + - name: HYRAX_ANALYTICS_PROVIDER + value: ga4 - name: HYRAX_FITS_PATH value: /app/fits/fits.sh - name: INITIAL_ADMIN_EMAIL diff --git a/ops/staging-deploy.tmpl.yaml b/ops/staging-deploy.tmpl.yaml index aad152149..c6abf8eb5 100644 --- a/ops/staging-deploy.tmpl.yaml +++ b/ops/staging-deploy.tmpl.yaml @@ -108,6 +108,8 @@ extraEnvVars: &envVars value: palni-palci-staging.notch8.cloud - name: HYRAX_ACTIVE_JOB_QUEUE value: sidekiq + - name: HYRAX_ANALYTICS_PROVIDER + value: ga4 - name: HYRAX_FITS_PATH value: /app/fits/fits.sh - name: INITIAL_ADMIN_EMAIL @@ -215,4 +217,4 @@ externalPostgresql: externalSolrHost: solr.staging-solr.svc.cluster.local externalSolrUser: admin externalSolrCollection: "palni-palci-staging" -externalSolrPassword: $SOLR_ADMIN_PASSWORD \ No newline at end of file +externalSolrPassword: $SOLR_ADMIN_PASSWORD