Skip to content
This repository was archived by the owner on Oct 24, 2024. It is now read-only.

Commit ec3f4b2

Browse files
author
Kirk Wang
committed
🐛 Check for pdf extension
This commit will add a check for the file set's extension (label) instead of solely relying on the mime type. This will allow us to know if it's a PDF (as best as we can anyway) even if CharacterizeJob did not run. Also, downgraded the version of simple_form because it was causing crashes in development.
1 parent 5273bbb commit ec3f4b2

File tree

4 files changed

+22
-10
lines changed

4 files changed

+22
-10
lines changed

Gemfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,3 +146,5 @@ gem 'iiif_print', git: 'https://github.com/scientist-softserv/iiif_print.git', b
146146
gem 'order_already'
147147
gem 'redis', '~> 4.0'
148148
gem 'redlock', '~> 1.2.1'
149+
# locking to 5.1.0 because it was throwing errors on 5.3.0 in development
150+
gem 'simple_form', '5.1.0'

Gemfile.lock

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1035,7 +1035,7 @@ GEM
10351035
faraday (>= 0.17.5, < 3.a)
10361036
jwt (>= 1.5, < 3.0)
10371037
multi_json (~> 1.10)
1038-
simple_form (5.3.0)
1038+
simple_form (5.1.0)
10391039
actionpack (>= 5.2)
10401040
activemodel (>= 5.2)
10411041
simplecov (0.16.1)
@@ -1225,6 +1225,7 @@ DEPENDENCIES
12251225
secure_headers
12261226
selenium-webdriver
12271227
sentry-raven
1228+
simple_form (= 5.1.0)
12281229
simplecov
12291230
solr_wrapper (~> 2.0)
12301231
spring (~> 1.7)

app/helpers/pdf_js_helper.rb

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
module PdfJsHelper
44
def pdf_js_url(file_set_presenter)
55
# assumes that the download path exists if the file set has been characterized
6-
path = if file_set_presenter.mime_type
7-
hyrax.download_path(file_set_presenter.id)
8-
else
9-
file_set_presenter.solr_document["import_url_ssim"].first
10-
end
6+
url = if file_set_presenter.mime_type
7+
"/pdf.js/web/viewer.html?file=#{hyrax.download_path(file_set_presenter.id)}"
8+
else
9+
file_set_presenter.solr_document["import_url_ssim"].first
10+
end
1111

12-
"/pdf.js/web/viewer.html?file=#{path}##{query_param}"
12+
url + "##{query_param}"
1313
end
1414

1515
def pdf_file_set_presenter(presenter)
@@ -22,14 +22,19 @@ def pdf_file_set_presenter(presenter)
2222
end
2323

2424
def first_file_set_pdf(presenter)
25-
pdf_file_set_presenters = presenter.file_set_presenters.select(&:pdf?)
26-
reader, archival = pdf_file_set_presenters.partition do |fsp|
25+
reader, archival = pdf_file_set_presenters(presenter.file_set_presenters).partition do |fsp|
2726
fsp.solr_document["import_url_ssim"]&.first&.include? "READER"
2827
end
2928

3029
reader.first || archival.first
3130
end
3231

32+
def pdf_file_set_presenters(presenters)
33+
presenters.select(&:pdf?) || presenters.select do |file_set_presenter|
34+
file_set_presenter.solr_document["label_ssi"].downcase.end_with? ".pdf"
35+
end
36+
end
37+
3338
def representative_presenter(presenter)
3439
presenter.file_set_presenters.find { |file_set_presenter| file_set_presenter.id == presenter.representative_id }
3540
end

app/presenters/hyku/work_show_presenter.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,17 @@ def video_embed_viewer
3131

3232
def pdf_viewer?
3333
return unless Flipflop.default_pdf_viewer?
34-
return unless file_set_presenters.any?(&:pdf?)
34+
return unless file_set_presenters.any?(&:pdf?) || pdf_extension?
3535

3636
# If all of the member_presenters are file_set presenters, return true
3737
# this also means that there are no child works
3838
member_presenters.all? { |presenter| presenter.is_a? Hyrax::FileSetPresenter }
3939
end
4040

41+
def pdf_extension?
42+
file_set_presenters.any? { |fsp| fsp.label.downcase.end_with?('.pdf') }
43+
end
44+
4145
def viewer?
4246
iiif_viewer? || video_embed_viewer? || pdf_viewer?
4347
end

0 commit comments

Comments
 (0)