Module: GeoblacklightHelper
- Defined in:
- app/helpers/geoblacklight_helper.rb
Instance Method Summary collapse
- #document_available? ⇒ Boolean
- #document_downloadable? ⇒ Boolean
- #download_link_file(label, id, url) ⇒ Object
- #download_link_generated(download_type, document) ⇒ Object
- #download_link_hgl(text, document) ⇒ Object
-
#download_link_iiif ⇒ String
Generates the link markup for the IIIF JPEG download.
-
#download_text(format) ⇒ Object
Wraps download text with proper_case_format.
-
#export_format_label(format) ⇒ Object
Format labels are customized for exports - look up the appropriate key.
-
#first_metadata?(document, metadata) ⇒ Boolean
Determines whether or not the metadata is the first within the array of References.
-
#formatted_name_reference(reference) ⇒ String
Looks up formatted names for references.
-
#geoblacklight_basemap ⇒ String
Selects the basemap used for map displays.
-
#geoblacklight_icon(name, **args) ⇒ SVG or HTML tag
Returns an SVG icon or empty HTML span element.
- #iiif_jpg_url ⇒ Object
-
#leaflet_options ⇒ Object
Returns a hash of the leaflet plugin settings to pass to the viewer.
-
#proper_case_format(format) ⇒ Object
Looks up properly formatted names for formats.
-
#relations_icon(document, icon) ⇒ Object
Returns the icon used based off a Settings strategy.
-
#render_help_text_entry(feature, key) ⇒ HTML tag
Render help text popover for a given feature and translation key.
-
#render_references_url(args) ⇒ Object
Renders a reference url for a document.
-
#render_transformed_metadata(metadata) ⇒ String
Renders the transformed metadata (Renders a partial when the metadata isn’t available).
-
#render_value_as_truncate_abstract(args) ⇒ Object
Render value for a document’s field as a truncate abstract div.
-
#render_web_services(reference) ⇒ Object
Renders the partials for a Geoblacklight::Reference in the web services modal.
-
#results_js_map_selector(controller_name) ⇒ Object
Returns the data-map attribute value used as the JS map selector.
-
#show_attribute_table? ⇒ Boolean
Deteremines if item view should include attribute table.
-
#show_help_text?(feature, key) ⇒ Boolean
Deteremines if a feature should include help text popover.
-
#snippit(args) ⇒ String
Blacklight catalog controller helper method to truncate field value to 150 chars.
Instance Method Details
#document_available? ⇒ Boolean
3 4 5 |
# File 'app/helpers/geoblacklight_helper.rb', line 3 def document_available? @document.public? || (@document.same_institution? && user_signed_in?) end |
#document_downloadable? ⇒ Boolean
7 8 9 |
# File 'app/helpers/geoblacklight_helper.rb', line 7 def document_downloadable? document_available? && @document.downloadable? end |
#download_link_file(label, id, url) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'app/helpers/geoblacklight_helper.rb', line 15 def download_link_file(label, id, url) link_to( label, url, 'contentUrl' => url, data: { download: 'trigger', download_type: 'direct', download_id: id } ) end |
#download_link_generated(download_type, document) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'app/helpers/geoblacklight_helper.rb', line 54 def download_link_generated(download_type, document) link_to( t('geoblacklight.download.export_link', download_format: export_format_label(download_type)), '', data: { download_path: download_path(document.id, type: download_type), download: 'trigger', download_type: download_type, download_id: document.id } ) end |
#download_link_hgl(text, document) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'app/helpers/geoblacklight_helper.rb', line 28 def download_link_hgl(text, document) link_to( text, download_hgl_path(id: document), data: { blacklight_modal: 'trigger', download: 'trigger', download_type: 'harvard-hgl', download_id: document.id } ) end |
#download_link_iiif ⇒ String
Generates the link markup for the IIIF JPEG download
43 44 45 46 47 48 49 50 51 52 |
# File 'app/helpers/geoblacklight_helper.rb', line 43 def download_link_iiif link_to( download_text('JPG'), iiif_jpg_url, 'contentUrl' => iiif_jpg_url, data: { download: 'trigger' } ) end |
#download_text(format) ⇒ Object
Wraps download text with proper_case_format
110 111 112 113 114 |
# File 'app/helpers/geoblacklight_helper.rb', line 110 def download_text(format) download_format = proper_case_format(format) value = t('geoblacklight.download.download_link', download_format: download_format) value.html_safe end |
#export_format_label(format) ⇒ Object
Format labels are customized for exports - look up the appropriate key.
95 96 97 |
# File 'app/helpers/geoblacklight_helper.rb', line 95 def export_format_label(format) t("geoblacklight.download.export_#{format.to_s.parameterize(separator: '_')}_link") end |
#first_metadata?(document, metadata) ⇒ Boolean
Determines whether or not the metadata is the first within the array of References
204 205 206 |
# File 'app/helpers/geoblacklight_helper.rb', line 204 def (document, ) document.references..first.type == .type end |
#formatted_name_reference(reference) ⇒ String
Looks up formatted names for references
103 104 105 |
# File 'app/helpers/geoblacklight_helper.rb', line 103 def formatted_name_reference(reference) t "geoblacklight.references.#{reference}" end |
#geoblacklight_basemap ⇒ String
Selects the basemap used for map displays
160 161 162 |
# File 'app/helpers/geoblacklight_helper.rb', line 160 def geoblacklight_basemap blacklight_config.basemap_provider || 'positron' end |
#geoblacklight_icon(name, **args) ⇒ SVG or HTML tag
Returns an SVG icon or empty HTML span element
78 79 80 81 82 83 84 85 |
# File 'app/helpers/geoblacklight_helper.rb', line 78 def geoblacklight_icon(name, **args) icon_name = name ? name.to_s.parameterize : 'none' begin blacklight_icon(icon_name, **args) rescue Blacklight::Exceptions::IconNotFound tag.span class: 'icon-missing geoblacklight-none' end end |
#iiif_jpg_url ⇒ Object
11 12 13 |
# File 'app/helpers/geoblacklight_helper.rb', line 11 def iiif_jpg_url @document.references.iiif.endpoint.sub! 'info.json', 'full/full/0/default.jpg' end |
#leaflet_options ⇒ Object
Returns a hash of the leaflet plugin settings to pass to the viewer. @return
180 181 182 |
# File 'app/helpers/geoblacklight_helper.rb', line 180 def Settings.LEAFLET end |
#proper_case_format(format) ⇒ Object
Looks up properly formatted names for formats
90 91 92 |
# File 'app/helpers/geoblacklight_helper.rb', line 90 def proper_case_format(format) t("geoblacklight.formats.#{format.to_s.parameterize(separator: '_')}") end |
#relations_icon(document, icon) ⇒ Object
Returns the icon used based off a Settings strategy
220 221 222 223 224 225 226 |
# File 'app/helpers/geoblacklight_helper.rb', line 220 def relations_icon(document, icon) icon_name = document[Settings.FIELDS.GEOM_TYPE] if Settings.USE_GEOM_FOR_RELATIONS_ICON icon_name = icon if icon_name.blank? = {} = { classes: 'svg_tooltip' } if Settings.USE_GEOM_FOR_RELATIONS_ICON geoblacklight_icon(icon_name, **) end |
#render_help_text_entry(feature, key) ⇒ HTML tag
Render help text popover for a given feature and translation key
126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'app/helpers/geoblacklight_helper.rb', line 126 def render_help_text_entry(feature, key) if I18n.exists?("geoblacklight.help_text.#{feature}.#{key}", locale) help_text = I18n.t("geoblacklight.help_text.#{feature}.#{key}") tag.h3 class: 'help-text viewer_protocol h6' do tag.a data: { toggle: 'popover', title: help_text[:title], content: help_text[:content] } do help_text[:title] end end else tag.span class: 'help-text translation-missing' end end |
#render_references_url(args) ⇒ Object
Renders a reference url for a document
211 212 213 214 215 216 217 |
# File 'app/helpers/geoblacklight_helper.rb', line 211 def render_references_url(args) return unless args[:document]&.references&.url link_to( args[:document].references.url.endpoint, args[:document].references.url.endpoint ) end |
#render_transformed_metadata(metadata) ⇒ String
Renders the transformed metadata (Renders a partial when the metadata isn’t available)
189 190 191 192 193 194 195 196 197 |
# File 'app/helpers/geoblacklight_helper.rb', line 189 def () render partial: 'catalog/metadata/content', locals: { content: .transform.html_safe } rescue Geoblacklight::MetadataTransformer::TransformError => transform_err Geoblacklight.logger.warn transform_err. render partial: 'catalog/metadata/markup', locals: { content: .to_xml } rescue => err Geoblacklight.logger.warn err. render partial: 'catalog/metadata/missing' end |
#render_value_as_truncate_abstract(args) ⇒ Object
Render value for a document’s field as a truncate abstract div. Arguments come from Blacklight::DocumentPresenter’s get_field_values method
151 152 153 154 155 |
# File 'app/helpers/geoblacklight_helper.rb', line 151 def render_value_as_truncate_abstract(args) tag.div class: 'truncate-abstract' do Array(args[:value]).flatten.join(' ') end end |
#render_web_services(reference) ⇒ Object
Renders the partials for a Geoblacklight::Reference in the web services modal
168 169 170 171 172 173 174 175 |
# File 'app/helpers/geoblacklight_helper.rb', line 168 def render_web_services(reference) render( partial: "web_services_#{reference.type}", locals: { reference: reference } ) rescue ActionView::MissingTemplate render partial: 'web_services_default', locals: { reference: reference } end |
#results_js_map_selector(controller_name) ⇒ Object
Returns the data-map attribute value used as the JS map selector
229 230 231 232 233 234 235 236 |
# File 'app/helpers/geoblacklight_helper.rb', line 229 def results_js_map_selector(controller_name) case controller_name when 'bookmarks' 'bookmarks' else 'index' end end |
#show_attribute_table? ⇒ Boolean
Deteremines if item view should include attribute table
142 143 144 |
# File 'app/helpers/geoblacklight_helper.rb', line 142 def show_attribute_table? document_available? && @document.inspectable? end |
#show_help_text?(feature, key) ⇒ Boolean
Deteremines if a feature should include help text popover
119 120 121 |
# File 'app/helpers/geoblacklight_helper.rb', line 119 def show_help_text?(feature, key) Settings&.HELP_TEXT&.send(feature)&.include?(key) end |
#snippit(args) ⇒ String
Blacklight catalog controller helper method to truncate field value to 150 chars
71 72 73 |
# File 'app/helpers/geoblacklight_helper.rb', line 71 def snippit(args) truncate(Array(args[:value]).flatten.join(' '), length: 150) end |