geoblacklight 2.4.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +142 -0
  3. data/.gitignore +8 -0
  4. data/.rubocop.yml +24 -23
  5. data/.rubocop_todo.yml +398 -12
  6. data/README.md +3 -3
  7. data/Rakefile +13 -4
  8. data/app/assets/images/favicon.ico +0 -0
  9. data/app/assets/javascripts/geoblacklight/downloaders/downloader.js +1 -1
  10. data/app/assets/javascripts/geoblacklight/geoblacklight.js +18 -1
  11. data/app/assets/javascripts/geoblacklight/modules/bookmarks.js +43 -0
  12. data/app/assets/javascripts/geoblacklight/modules/metadata_download_button.js +6 -1
  13. data/app/assets/javascripts/geoblacklight/modules/results.js +7 -8
  14. data/app/assets/javascripts/geoblacklight/modules/svg_tooltips.js +31 -0
  15. data/app/assets/javascripts/geoblacklight/modules/util.js +5 -0
  16. data/app/assets/javascripts/geoblacklight/viewers/esri.js +3 -3
  17. data/app/assets/javascripts/geoblacklight/viewers/esri/tiled_map_layer.js +1 -1
  18. data/app/assets/javascripts/geoblacklight/viewers/index_map.js +1 -1
  19. data/app/assets/javascripts/geoblacklight/viewers/map.js +12 -2
  20. data/app/assets/javascripts/geoblacklight/viewers/tms.js +10 -0
  21. data/app/assets/javascripts/geoblacklight/viewers/wms.js +3 -3
  22. data/app/assets/stylesheets/geoblacklight/geoblacklight.scss +2 -0
  23. data/app/assets/stylesheets/geoblacklight/modules/_base.scss +33 -0
  24. data/app/assets/stylesheets/geoblacklight/{_blacklight_overrides.scss → modules/_blacklight_overrides.scss} +1 -1
  25. data/app/assets/stylesheets/geoblacklight/{_styles.scss → modules/_styles.scss} +1 -0
  26. data/app/assets/stylesheets/geoblacklight/modules/downloads.scss +37 -54
  27. data/app/assets/stylesheets/geoblacklight/modules/item.scss +1 -0
  28. data/app/assets/stylesheets/geoblacklight/modules/results.scss +17 -29
  29. data/app/assets/stylesheets/geoblacklight/modules/sidebar.scss +12 -42
  30. data/app/assets/stylesheets/geoblacklight/modules/toolbar.scss +17 -59
  31. data/app/controllers/download_controller.rb +12 -12
  32. data/app/controllers/relation_controller.rb +1 -0
  33. data/app/controllers/wms_controller.rb +1 -0
  34. data/app/helpers/arcgis_helper.rb +1 -0
  35. data/app/helpers/blacklight_helper.rb +1 -0
  36. data/app/helpers/carto_helper.rb +1 -0
  37. data/app/helpers/geoblacklight_helper.rb +37 -72
  38. data/app/models/concerns/geoblacklight/solr_document.rb +15 -19
  39. data/app/models/concerns/geoblacklight/solr_document/arcgis.rb +2 -1
  40. data/app/models/concerns/geoblacklight/solr_document/carto.rb +1 -13
  41. data/app/models/concerns/geoblacklight/solr_document/citation.rb +1 -0
  42. data/app/models/concerns/geoblacklight/solr_document/finder.rb +1 -0
  43. data/app/models/concerns/geoblacklight/solr_document/inspection.rb +2 -1
  44. data/app/models/concerns/geoblacklight/spatial_search_behavior.rb +6 -4
  45. data/app/presenters/geoblacklight/document_presenter.rb +2 -1
  46. data/app/views/catalog/_arcgis.html.erb +4 -0
  47. data/app/views/catalog/_carto.html.erb +4 -0
  48. data/app/views/catalog/_document_split.html.erb +1 -1
  49. data/app/views/catalog/_downloads_primary.html.erb +8 -1
  50. data/app/views/catalog/_header_icons.html.erb +3 -3
  51. data/app/views/catalog/_home_text.html.erb +3 -0
  52. data/app/views/catalog/_index_split_default.html.erb +21 -21
  53. data/app/views/catalog/_show_default_viewer_container.html.erb +1 -1
  54. data/app/views/download/hgl.html.erb +13 -11
  55. data/app/views/relation/_ancestors.html.erb +3 -6
  56. data/app/views/relation/_descendants.html.erb +4 -7
  57. data/app/views/relation/index.html.erb +20 -8
  58. data/app/views/relation/index.json.jbuilder +2 -1
  59. data/app/views/shared/_header_navbar.html.erb +0 -2
  60. data/babel.config.json +4 -0
  61. data/bin/coverage.rb +36 -0
  62. data/config/initializers/new_gbl_settings_defaults_3_3.yml +10 -0
  63. data/config/initializers/rails_config.rb +5 -0
  64. data/config/locales/geoblacklight.en.yml +7 -2
  65. data/geoblacklight.gemspec +7 -9
  66. data/jest.config.js +25 -0
  67. data/lib/generators/geoblacklight/assets_generator.rb +46 -0
  68. data/lib/generators/geoblacklight/install_generator.rb +4 -10
  69. data/lib/generators/geoblacklight/templates/assets/_blacklight.scss +1 -0
  70. data/lib/generators/geoblacklight/templates/assets/_customizations.scss +28 -0
  71. data/{app/assets/stylesheets/geoblacklight/application.scss → lib/generators/geoblacklight/templates/assets/_geoblacklight.scss} +0 -1
  72. data/lib/generators/geoblacklight/templates/assets/application.scss +7 -0
  73. data/lib/generators/geoblacklight/templates/{geoblacklight.js → assets/geoblacklight.js} +0 -0
  74. data/lib/generators/geoblacklight/templates/catalog_controller.rb +5 -3
  75. data/lib/generators/geoblacklight/templates/settings.yml +20 -17
  76. data/lib/generators/geoblacklight/webpacker_generator.rb +1 -0
  77. data/lib/geoblacklight.rb +2 -2
  78. data/lib/geoblacklight/bounding_box.rb +2 -1
  79. data/lib/geoblacklight/catalog_helper_override.rb +1 -0
  80. data/lib/geoblacklight/constants.rb +2 -0
  81. data/lib/geoblacklight/download.rb +2 -1
  82. data/lib/geoblacklight/download/geojson_download.rb +1 -0
  83. data/lib/geoblacklight/download/geotiff_download.rb +1 -0
  84. data/lib/geoblacklight/download/hgl_download.rb +1 -0
  85. data/lib/geoblacklight/download/kmz_download.rb +3 -2
  86. data/lib/geoblacklight/download/shapefile_download.rb +1 -0
  87. data/lib/geoblacklight/engine.rb +2 -2
  88. data/lib/geoblacklight/exceptions.rb +1 -0
  89. data/lib/geoblacklight/geoblacklight_helper_behavior.rb +1 -0
  90. data/lib/geoblacklight/geometry.rb +70 -0
  91. data/lib/geoblacklight/item_viewer.rb +6 -1
  92. data/lib/geoblacklight/metadata.rb +1 -0
  93. data/lib/geoblacklight/metadata/base.rb +2 -7
  94. data/lib/geoblacklight/metadata/fgdc.rb +1 -0
  95. data/lib/geoblacklight/metadata/html.rb +2 -2
  96. data/lib/geoblacklight/metadata/iso19139.rb +1 -0
  97. data/lib/geoblacklight/metadata_transformer.rb +1 -0
  98. data/lib/geoblacklight/metadata_transformer/base.rb +1 -0
  99. data/lib/geoblacklight/metadata_transformer/fgdc.rb +1 -0
  100. data/lib/geoblacklight/metadata_transformer/iso19139.rb +1 -0
  101. data/lib/geoblacklight/reference.rb +1 -0
  102. data/lib/geoblacklight/references.rb +7 -3
  103. data/lib/geoblacklight/relation/ancestors.rb +3 -2
  104. data/lib/geoblacklight/relation/descendants.rb +2 -1
  105. data/lib/geoblacklight/relation/relation_response.rb +2 -1
  106. data/lib/geoblacklight/routes.rb +1 -0
  107. data/lib/geoblacklight/routes/downloadable.rb +1 -0
  108. data/lib/geoblacklight/routes/exportable.rb +1 -0
  109. data/lib/geoblacklight/routes/wms.rb +1 -0
  110. data/lib/geoblacklight/version.rb +2 -1
  111. data/lib/geoblacklight/view_helper_override.rb +1 -0
  112. data/lib/geoblacklight/wms_layer.rb +2 -4
  113. data/lib/geoblacklight/wms_layer/feature_info_response.rb +1 -0
  114. data/lib/tasks/geoblacklight.rake +38 -32
  115. data/package.json +17 -1
  116. data/setupJest.js +14 -0
  117. data/solr/conf/schema.xml +1 -3
  118. data/spec/config/initializers/rails_config_spec.rb +14 -0
  119. data/spec/controllers/catalog_controller_spec.rb +7 -6
  120. data/spec/controllers/download_controller_spec.rb +1 -0
  121. data/spec/controllers/relation_controller_spec.rb +1 -0
  122. data/spec/controllers/wms_controller_spec.rb +1 -0
  123. data/spec/factories/user.rb +1 -0
  124. data/spec/features/bookmarks_spec.rb +1 -0
  125. data/spec/features/configurable_basemap_spec.rb +1 -0
  126. data/spec/features/data_dictionary_download_spec.rb +1 -0
  127. data/spec/features/download_layer_spec.rb +2 -1
  128. data/spec/features/empty_search_spec.rb +1 -0
  129. data/spec/features/esri_viewer_spec.rb +1 -5
  130. data/spec/features/exports_spec.rb +4 -12
  131. data/spec/features/help_text_spec.rb +1 -0
  132. data/spec/features/home_page_spec.rb +6 -0
  133. data/spec/features/iiif_viewer_spec.rb +1 -0
  134. data/spec/features/index_map_spec.rb +1 -0
  135. data/spec/features/layer_inspection_spec.rb +1 -0
  136. data/spec/features/layer_opacity_spec.rb +1 -0
  137. data/spec/features/layer_preview_spec.rb +1 -0
  138. data/spec/features/layer_with_no_references_spec.rb +1 -0
  139. data/spec/features/linkified_attribute_table_spec.rb +1 -0
  140. data/spec/features/metadata_panel_spec.rb +1 -0
  141. data/spec/features/missing_metadata_spec.rb +1 -0
  142. data/spec/features/multiple_downloads_spec.rb +15 -0
  143. data/spec/features/oembed_spec.rb +1 -0
  144. data/spec/features/relations_spec.rb +10 -29
  145. data/spec/features/saved_searches_spec.rb +1 -0
  146. data/spec/features/search_bar_spec.rb +1 -0
  147. data/spec/features/search_results_map_spec.rb +1 -6
  148. data/spec/features/search_results_overlap_ratio_spec.rb +6 -5
  149. data/spec/features/search_spec.rb +1 -0
  150. data/spec/features/show_page_metadata_spec.rb +1 -0
  151. data/spec/features/sms_spec.rb +1 -0
  152. data/spec/features/split_view.html.erb_spec.rb +3 -2
  153. data/spec/features/suppressed_records_spec.rb +1 -0
  154. data/spec/features/tms_spec.rb +10 -0
  155. data/spec/features/web_services_modal_spec.rb +1 -0
  156. data/spec/fixtures/solr_documents/multiple-downloads.json +30 -0
  157. data/spec/fixtures/solr_documents/public_iiif_princeton.json +1 -1
  158. data/spec/fixtures/solr_documents/tms.json +29 -0
  159. data/spec/helpers/arcgis_helper_spec.rb +1 -0
  160. data/spec/helpers/carto_helper_spec.rb +1 -0
  161. data/spec/helpers/geoblacklight_helper_spec.rb +73 -14
  162. data/spec/javascripts/geoblacklight_spec.js +0 -6
  163. data/spec/javascripts/metadata_download_button_spec.js +5 -3
  164. data/spec/javascripts/util_spec.js +2 -4
  165. data/spec/lib/geoblacklight/bounding_box_spec.rb +1 -0
  166. data/spec/lib/geoblacklight/document_presenter_spec.rb +3 -2
  167. data/spec/lib/geoblacklight/download/geojson_download_spec.rb +1 -0
  168. data/spec/lib/geoblacklight/download/geotiff_download_spec.rb +1 -0
  169. data/spec/lib/geoblacklight/download/hgl_download_spec.rb +1 -0
  170. data/spec/lib/geoblacklight/download/kmz_download_spec.rb +3 -2
  171. data/spec/lib/geoblacklight/download/shapefile_download_spec.rb +1 -0
  172. data/spec/lib/geoblacklight/download_spec.rb +3 -2
  173. data/spec/lib/geoblacklight/geoblacklight_helper_behavior_spec.rb +1 -0
  174. data/spec/lib/geoblacklight/geometry_spec.rb +48 -0
  175. data/spec/lib/geoblacklight/item_viewer_spec.rb +13 -0
  176. data/spec/lib/geoblacklight/metadata/base_spec.rb +1 -0
  177. data/spec/lib/geoblacklight/metadata/html_spec.rb +1 -0
  178. data/spec/lib/geoblacklight/metadata_spec.rb +1 -0
  179. data/spec/lib/geoblacklight/metadata_transformer/base_spec.rb +3 -2
  180. data/spec/lib/geoblacklight/metadata_transformer/fgdc_spec.rb +3 -2
  181. data/spec/lib/geoblacklight/metadata_transformer/iso19139_spec.rb +3 -2
  182. data/spec/lib/geoblacklight/metadata_transformer_spec.rb +4 -3
  183. data/spec/lib/geoblacklight/reference_spec.rb +1 -0
  184. data/spec/lib/geoblacklight/references_spec.rb +3 -4
  185. data/spec/lib/geoblacklight/relation/ancestors_spec.rb +2 -1
  186. data/spec/lib/geoblacklight/relation/descendants_spec.rb +2 -1
  187. data/spec/lib/geoblacklight/relation/relation_response_spec.rb +1 -0
  188. data/spec/lib/geoblacklight/view_helper_override_spec.rb +1 -0
  189. data/spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb +5 -4
  190. data/spec/lib/geoblacklight/wms_layer_spec.rb +1 -0
  191. data/spec/models/concerns/geoblacklight/solr_document/carto_spec.rb +1 -20
  192. data/spec/models/concerns/geoblacklight/solr_document/citation_spec.rb +1 -0
  193. data/spec/models/concerns/geoblacklight/solr_document/finder_spec.rb +1 -0
  194. data/spec/models/concerns/geoblacklight/solr_document/inspection_spec.rb +1 -0
  195. data/spec/models/concerns/geoblacklight/solr_document_spec.rb +1 -0
  196. data/spec/models/concerns/geoblacklight/spatial_search_behavior_spec.rb +15 -2
  197. data/spec/routing/catalog_routing_spec.rb +1 -0
  198. data/spec/spec_helper.rb +12 -9
  199. data/spec/support/backport_test_helpers.rb +1 -0
  200. data/spec/support/features.rb +1 -0
  201. data/spec/support/features/session_helpers.rb +1 -0
  202. data/spec/support/fixtures.rb +1 -0
  203. data/spec/tasks/geoblacklight_spec.rb +4 -3
  204. data/spec/test_app_templates/Gemfile.extra +1 -0
  205. data/spec/test_app_templates/lib/generators/test_app_generator.rb +2 -8
  206. data/spec/views/catalog/_document_split.html.erb_spec.rb +2 -1
  207. data/spec/views/catalog/_index_split.html.erb_spec.rb +2 -1
  208. data/spec/views/catalog/_results_pagination.html.erb_spec.rb +1 -0
  209. data/spec/views/catalog/_show_downloads.html.erb_spec.rb +1 -0
  210. data/spec/views/catalog/_show_tools.html.erb_spec.rb +3 -5
  211. data/template.rb +4 -2
  212. metadata +74 -78
  213. data/.circleci/config.yml +0 -164
  214. data/app/assets/stylesheets/geoblacklight/_geoblacklight.scss +0 -36
  215. data/app/assets/stylesheets/geoblacklight/modules/relations.scss +0 -15
  216. data/app/views/catalog/_exports.html.erb +0 -3
  217. data/app/views/catalog/_show_tools.html.erb +0 -25
  218. data/lib/generators/geoblacklight/templates/geoblacklight.scss +0 -4
  219. data/spec/javascripts/spec_helper.js +0 -32
  220. data/spec/lib/geoblacklight/controller_override_spec.rb +0 -1
  221. data/spec/teaspoon_env.rb +0 -213
  222. data/vendor/assets/javascripts/readmore.js +0 -0
  223. data/vendor/assets/javascripts/readmore.min.js +0 -0
@@ -7,6 +7,7 @@
7
7
 
8
8
  #viewer-container {
9
9
  [data-map="item"] {
10
+ border: 1px solid $gray-400;
10
11
  height: 27.5rem;
11
12
  }
12
13
 
@@ -1,56 +1,44 @@
1
- [data-map="index"] {
1
+ [data-map="index"], [data-map="bookmarks"] {
2
2
  height: 480px;
3
3
  }
4
4
 
5
5
  .more-info-area {
6
6
  max-height: 100px;
7
7
  overflow:hidden;
8
+ padding-left: 2ch;
8
9
  }
9
10
 
10
- .index_title {
11
- @extend h5;
12
- display: flex;
13
- justify-content: space-between;
14
- font-size:1rem;
15
- width:80%;
11
+ .documents-list {
12
+ @extend .mb-4;
13
+ }
16
14
 
17
- .title-wrapper {
18
- @extend .d-flex;
19
- @extend .justify-content-start;
20
- flex: 1;
21
- min-width: 0;
15
+ .index-split {
16
+ .index_title {
17
+ display: flex;
18
+ font-size: 1rem;
19
+ padding-right: 0;
22
20
  }
23
21
 
24
22
  .document-counter {
25
23
  @extend .pr-1;
26
24
  }
27
25
 
28
- a {
29
- white-space: nowrap;
30
- overflow-x: hidden;
31
- min-width: 0;
32
- text-overflow: ellipsis;
33
- position: relative;
34
- z-index: 2; // get the link above the toggle
35
- }
36
-
37
26
  .caret-toggle {
38
- @extend .fa, .fa-caret-right;
39
- flex-grow: 0;
40
- width: 10px;
27
+ @include caret('right');
28
+ padding-left: 0;
29
+ width: 28px;
41
30
 
42
31
  &[aria-expanded="true"] {
43
- @extend .fa, .fa-caret-down;
32
+ @include caret('down');
44
33
  }
45
34
  }
46
35
 
47
- .document-counter {
48
- flex-grow: 0;
49
- }
50
-
51
36
  .status-icons {
37
+ cursor: pointer;
52
38
  margin-left: 0.5rem;
39
+ margin-top: -3px;
53
40
  white-space: nowrap;
41
+ z-index: 2; // get the icons above the toggle
54
42
  }
55
43
  }
56
44
 
@@ -1,59 +1,29 @@
1
1
  // Mixins and shared properties for sidebar elements
2
-
3
2
  @mixin sidebar-children {
4
- %list-group-item-children {
5
- padding: 10px 15px;
6
- }
7
-
8
- %list-group-item-anchors {
9
- text-align: center;
10
- width: 1.4em;
11
- }
12
-
13
- margin-top: 16px;
14
- margin-bottom: 16px;
3
+ margin-bottom: 20px;
4
+ margin-top: 20px;
15
5
 
16
- .card-header {
17
- h2 {
18
- display: inline-block;
19
- padding-top: 8px;
20
- padding-bottom: 8px;
21
- margin-bottom: 0px;
22
- font-size: 1rem;
23
- }
6
+ .card-header h2 {
7
+ @extend .h6;
8
+ margin-bottom: 0px;
24
9
  }
25
10
 
26
11
  .card-subtitle {
27
- margin: 1rem 0 .2rem;
28
- font-size: .9rem;
12
+ margin: 1rem 0 0;
13
+ font-size: 1rem;
29
14
  font-weight: normal;
30
- color: $gray-600;
31
15
  }
32
16
 
33
17
  .list-group {
34
- padding-top: 24px;
35
- padding-bottom: 24px;
36
- padding-left: 4px;
37
- padding-right: 4px;
18
+ border: 0;
19
+ margin: 8px 0;
38
20
 
39
21
  .list-group-item {
40
- border-color: $white;
41
- padding: 8px 16px;
22
+ border: 0;
23
+ padding: 0 0 0 20px;
42
24
 
43
25
  a {
44
- @extend %list-group-item-children;
45
-
46
- .geoblacklight {
47
- color: $gray-600;
48
- }
49
- }
50
- }
51
-
52
- &-nested {
53
- padding: 0;
54
-
55
- .list-group-item {
56
- padding: 8px 0;
26
+ display: block;
57
27
  }
58
28
  }
59
29
  }
@@ -1,70 +1,28 @@
1
1
  .show-tools {
2
2
  @include sidebar-children;
3
3
 
4
- .list-group {
5
-
6
- .list-group-item.exports {
7
- margin-top:0px;
8
- }
9
-
10
- .list-group-item {
11
-
12
- form {
13
- @extend %list-group-item-children;
14
-
15
- .checkbox {
16
- margin-left: 4px;
17
- margin-right: 4px;
18
-
19
- label {
20
- margin-bottom: inherit;
21
- }
22
- }
4
+ .list-group .list-group-item {
5
+ // Adjustments to give Bookmark same spacing as other Tools links
6
+ .checkbox {
7
+ label {
8
+ margin-bottom: 0;
23
9
  }
24
10
 
25
- a {
26
-
27
- .geoblacklight {
28
-
29
- &-citation {
30
- @extend %list-group-item-anchors;
31
- }
32
-
33
- &-data-dictionary {
34
- @extend %list-group-item-anchors;
35
- }
36
-
37
- &-sms {
38
- @extend %list-group-item-anchors;
39
- }
40
-
41
- &-email {
42
- @extend %list-group-item-anchors;
43
- }
44
-
45
- &-web_services {
46
- @extend %list-group-item-anchors;
47
- }
48
-
49
- &-metadata {
50
- @extend %list-group-item-anchors;
51
- }
52
-
53
- &-carto {
54
- @extend %list-group-item-anchors;
55
- }
56
-
57
- // DEPRECATED: Will be removed in GeoBlacklight v2.0
58
- &-cartodb {
59
- @extend %list-group-item-anchors;
60
- }
61
- }
11
+ .toggle-bookmark {
12
+ margin-right: 4px;
13
+ padding-bottom: 8px;
14
+ padding-top: 8px;
62
15
  }
63
16
  }
64
17
 
65
- .downloads {
66
- margin-left: 4px;
67
- margin-right: 4px;
18
+ // Spacing for Tools links other than Bookmark
19
+ a {
20
+ padding: 8px 1rem 8px 0;
68
21
  }
69
22
  }
23
+
24
+ // Spacing between Tools icons and their labels
25
+ .blacklight-icons {
26
+ padding-right: 2px;
27
+ }
70
28
  }
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class DownloadController < ApplicationController
2
3
  # include Blacklight::SearchHelper
3
4
  include Blacklight::Catalog
@@ -5,8 +6,7 @@ class DownloadController < ApplicationController
5
6
  rescue_from Geoblacklight::Exceptions::ExternalDownloadFailed do |exception|
6
7
  Geoblacklight.logger.error exception.message + ' ' + exception.url
7
8
  flash[:danger] = view_context
8
- .content_tag(:span,
9
- flash_error_message(exception),
9
+ .tag.span(flash_error_message(exception),
10
10
  data: {
11
11
  download: 'error',
12
12
  download_id: params[:id],
@@ -62,16 +62,16 @@ class DownloadController < ApplicationController
62
62
  # exception
63
63
  # @return [String] error message to display in flash
64
64
  def flash_error_message(exception)
65
- if exception.url.present?
66
- message = t('geoblacklight.download.error_with_url',
67
- link: view_context
68
- .link_to(exception.url,
69
- exception.url,
70
- target: 'blank'))
71
- .html_safe
72
- else
73
- message = t('geoblacklight.download.error')
74
- end
65
+ message = if exception.url.present?
66
+ t('geoblacklight.download.error_with_url',
67
+ link: view_context
68
+ .link_to(exception.url,
69
+ exception.url,
70
+ target: 'blank'))
71
+ .html_safe
72
+ else
73
+ t('geoblacklight.download.error')
74
+ end
75
75
  message
76
76
  end
77
77
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class RelationController < ApplicationController
2
3
  include Blacklight::Configurable
3
4
  # include Blacklight::SearchHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class WmsController < ApplicationController
2
3
  def handle
3
4
  response = Geoblacklight::WmsLayer.new(wms_params).feature_info
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ArcgisHelper
2
3
  ##
3
4
  # Generates an ArcGIS.com viewer url with params that can open content
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module BlacklightHelper
2
3
  include Blacklight::BlacklightHelperBehavior
3
4
  include Geoblacklight::GeoblacklightHelperBehavior
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module CartoHelper
2
3
  ##
3
4
  # Creates a Carto OneClick link, using the configuration link
@@ -1,6 +1,5 @@
1
+ # frozen_string_literal: true
1
2
  module GeoblacklightHelper
2
- extend Deprecation
3
-
4
3
  def document_available?
5
4
  @document.public? || (@document.same_institution? && user_signed_in?)
6
5
  end
@@ -13,6 +12,20 @@ module GeoblacklightHelper
13
12
  @document.references.iiif.endpoint.sub! 'info.json', 'full/full/0/default.jpg'
14
13
  end
15
14
 
15
+ def download_link_file(label, id, url)
16
+ link_to(
17
+ label,
18
+ url,
19
+ 'contentUrl' => url,
20
+ class: ['btn', 'btn-default', 'download', 'download-original'],
21
+ data: {
22
+ download: 'trigger',
23
+ download_type: 'direct',
24
+ download_id: id
25
+ }
26
+ )
27
+ end
28
+
16
29
  def download_link_direct(text, document)
17
30
  link_to(
18
31
  text,
@@ -26,6 +39,7 @@ module GeoblacklightHelper
26
39
  }
27
40
  )
28
41
  end
42
+ deprecation_deprecate download_link_direct: 'Use download_link_file instead'
29
43
 
30
44
  def download_link_hgl(text, document)
31
45
  link_to(
@@ -95,43 +109,6 @@ module GeoblacklightHelper
95
109
  end
96
110
  end
97
111
 
98
- ##
99
- # Render an empty span
100
- # @return [HTML tag]
101
- def render_empty_span(classname)
102
- tag.span class: classname
103
- end
104
-
105
- ##
106
- # Capture SVG icon aria labels to describe
107
- def queue_icon_aria_label(feature_name)
108
- @aria_labels ||= Set.new
109
- @aria_labels << feature_name
110
- end
111
- deprecation_deprecate :queue_icon_aria_label
112
-
113
- ##
114
- # Render a div of divs describing aria-labelledby values
115
- # @return [HTML tag]
116
- def render_aria_labels(aria_labels)
117
- return unless aria_labels.present?
118
- content_tag :div, id: 'aria-labels', class: 'sr-only sr-only-focusable' do
119
- aria_labels.each do |label|
120
- concat(render_aria_label(label))
121
- end
122
- end
123
- end
124
- deprecation_deprecate :render_aria_labels
125
-
126
- # Render a div describing a aria-labelledby value
127
- # @return [HTML tag]
128
- def render_aria_label(label)
129
- content_tag :div, id: "aria-label-#{label}" do
130
- I18n.t("geoblacklight.aria-labels.#{label}")
131
- end
132
- end
133
- deprecation_deprecate :render_aria_label
134
-
135
112
  ##
136
113
  # Renders an unique array of search links based off of terms
137
114
  # passed in using the facet parameter
@@ -195,8 +172,8 @@ module GeoblacklightHelper
195
172
  def render_help_text_entry(feature, key)
196
173
  if I18n.exists?("geoblacklight.help_text.#{feature}.#{key}", locale)
197
174
  help_text = I18n.t("geoblacklight.help_text.#{feature}.#{key}")
198
- content_tag :h3, class: 'help-text viewer_protocol h6' do
199
- content_tag :a, 'data': { toggle: 'popover', title: help_text[:title], content: help_text[:content] } do
175
+ tag.h3 class: 'help-text viewer_protocol h6' do
176
+ tag.a data: { toggle: 'popover', title: help_text[:title], content: help_text[:content] } do
200
177
  help_text[:title]
201
178
  end
202
179
  end
@@ -218,7 +195,7 @@ module GeoblacklightHelper
218
195
  # get_field_values method
219
196
  # @param [Hash] args from get_field_values
220
197
  def render_value_as_truncate_abstract(args)
221
- content_tag :div, class: 'truncate-abstract' do
198
+ tag.div class: 'truncate-abstract' do
222
199
  Array(args[:value]).flatten.join(' ')
223
200
  end
224
201
  end
@@ -230,33 +207,6 @@ module GeoblacklightHelper
230
207
  blacklight_config.basemap_provider || 'positron'
231
208
  end
232
209
 
233
- def display_carto
234
- return link_to(
235
- content_tag(:span, '', class: 'geoblacklight geoblacklight-carto') +
236
- t('geoblacklight.tools.open_carto'),
237
- carto_link(@document.carto_reference),
238
- target: '_blank'
239
- ) if @document.carto_reference.present? && !Settings.CARTO_HIDE
240
- end
241
-
242
- def display_arcgis
243
- return link_to(
244
- blacklight_icon('esri-globe') + ' ' +
245
- t('geoblacklight.tools.open_arcgis'),
246
- arcgis_link(@document.arcgis_urls)
247
- ) if @document.arcgis_urls.present? && !Settings.ARCGIS_HIDE
248
- end
249
-
250
- ##
251
- # Creates a Carto OneClick link link, using the configuration link
252
- # @param [String] file_link
253
- # @return [String]
254
- # @deprecated Use {#carto_link} instead.
255
- def cartodb_link(file_link)
256
- carto_link(file_link)
257
- end
258
- deprecation_deprecate carto_link: 'use GeoblacklightHelper#carto_link instead'
259
-
260
210
  ##
261
211
  # Renders the partials for a Geoblacklight::Reference in the web services
262
212
  # modal
@@ -285,7 +235,7 @@ module GeoblacklightHelper
285
235
  def render_facet_item_with_icon(field_name, item)
286
236
  doc = Nokogiri::HTML.fragment(render_facet_item(field_name, item))
287
237
  doc.at_css('.facet-label').children.first
288
- .add_previous_sibling(geoblacklight_icon(item.value, aria_hidden: true))
238
+ .add_previous_sibling(geoblacklight_icon(item.value, aria_hidden: true, classes: 'svg_tooltip'))
289
239
  doc.to_html.html_safe
290
240
  end
291
241
 
@@ -317,16 +267,31 @@ module GeoblacklightHelper
317
267
  # Renders a reference url for a document
318
268
  # @param [Hash] document, field_name
319
269
  def render_references_url(args)
270
+ return unless args[:document]&.references&.url
320
271
  link_to(
321
272
  args[:document].references.url.endpoint,
322
273
  args[:document].references.url.endpoint
323
- ) if args[:document]&.references&.url
274
+ )
324
275
  end
325
276
 
326
277
  ## Returns the icon used based off a Settings strategy
327
278
  def relations_icon(document, icon)
328
279
  icon_name = document[Settings.FIELDS.GEOM_TYPE] if Settings.USE_GEOM_FOR_RELATIONS_ICON
329
280
  icon_name = icon if icon_name.blank?
330
- geoblacklight_icon(icon_name)
281
+ icon_options = {}
282
+ icon_options = { classes: 'svg_tooltip' } if Settings.USE_GEOM_FOR_RELATIONS_ICON
283
+ geoblacklight_icon(icon_name, icon_options)
284
+ end
285
+
286
+ ## Returns the data-map attribute value used as the JS map selector
287
+ def results_js_map_selector(controller_name)
288
+ case controller_name
289
+ when 'bookmarks'
290
+ 'bookmarks'
291
+ when 'catalog'
292
+ 'index'
293
+ else
294
+ 'index'
295
+ end
331
296
  end
332
297
  end