geoblacklight 3.8.1 → 4.0.0.pre.alpha

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 (162) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +98 -22
  3. data/.gitignore +0 -1
  4. data/.rubocop.yml +5 -1
  5. data/.solr_wrapper +0 -1
  6. data/README.md +1 -1
  7. data/app/assets/images/blacklight/geoblacklight-icons.json +66 -102
  8. data/app/assets/images/blacklight/michigan-state-university.svg +1 -0
  9. data/app/assets/images/blacklight/pennsylvania-state-university.svg +1 -0
  10. data/app/assets/images/blacklight/purdue-university.svg +1 -0
  11. data/app/assets/images/blacklight/the-ohio-state-university.svg +1 -0
  12. data/app/assets/images/blacklight/university-of-chicago.svg +1 -0
  13. data/app/assets/images/blacklight/university-of-illinois-urbana-champaign.svg +1 -0
  14. data/app/assets/images/blacklight/university-of-iowa.svg +1 -0
  15. data/app/assets/images/blacklight/university-of-maryland.svg +1 -0
  16. data/app/assets/images/blacklight/university-of-michigan.svg +1 -0
  17. data/app/assets/images/blacklight/university-of-minnesota.svg +1 -0
  18. data/app/assets/images/blacklight/university-of-nebraska-lincoln.svg +1 -0
  19. data/app/assets/images/blacklight/university-of-wisconsin-madison.svg +1 -0
  20. data/app/assets/javascripts/geoblacklight/viewers/tms.js +2 -2
  21. data/app/assets/javascripts/geoblacklight/viewers/wms.js +2 -2
  22. data/app/models/concerns/geoblacklight/solr_document/citation.rb +2 -2
  23. data/app/models/concerns/geoblacklight/solr_document.rb +4 -4
  24. data/app/models/concerns/geoblacklight/spatial_search_behavior.rb +3 -3
  25. data/app/views/catalog/_header_icons.html.erb +1 -1
  26. data/app/views/catalog/_home_text.html.erb +2 -2
  27. data/app/views/relation/_relations.html.erb +15 -0
  28. data/app/views/relation/index.html.erb +4 -16
  29. data/app/views/relation/index.json.jbuilder +6 -2
  30. data/bin/coverage.rb +36 -0
  31. data/config/initializers/rails_config.rb +0 -8
  32. data/config/locales/geoblacklight.en.yml +8 -8
  33. data/geoblacklight.gemspec +4 -4
  34. data/lib/generators/geoblacklight/assets_generator.rb +1 -1
  35. data/lib/generators/geoblacklight/templates/catalog_controller.rb +78 -36
  36. data/lib/generators/geoblacklight/templates/settings.gbl_v1.yml +195 -0
  37. data/lib/generators/geoblacklight/templates/settings.yml +81 -25
  38. data/lib/geoblacklight/constants.rb +0 -3
  39. data/lib/geoblacklight/download/geojson_download.rb +1 -1
  40. data/lib/geoblacklight/download/geotiff_download.rb +1 -1
  41. data/lib/geoblacklight/download/hgl_download.rb +1 -1
  42. data/lib/geoblacklight/download/kmz_download.rb +1 -1
  43. data/lib/geoblacklight/download/shapefile_download.rb +1 -1
  44. data/lib/geoblacklight/engine.rb +3 -4
  45. data/lib/geoblacklight/item_viewer.rb +1 -13
  46. data/lib/geoblacklight/metadata/base.rb +1 -2
  47. data/lib/geoblacklight/references.rb +1 -1
  48. data/lib/geoblacklight/relation/ancestors.rb +4 -3
  49. data/lib/geoblacklight/relation/descendants.rb +4 -3
  50. data/lib/geoblacklight/relation/relation_response.rb +21 -6
  51. data/lib/geoblacklight/version.rb +1 -1
  52. data/schema/{geoblacklight-schema.json → geoblacklight-schema-1.0.json} +1 -1
  53. data/schema/geoblacklight-schema-aardvark.json +211 -0
  54. data/solr/conf/schema.xml +38 -30
  55. data/solr/conf/solrconfig.xml +18 -18
  56. data/spec/components/geoblacklight/homepage_feature_facet_component_spec.rb +1 -1
  57. data/spec/config/initializers/rails_config_spec.rb +5 -8
  58. data/spec/controllers/catalog_controller_spec.rb +6 -6
  59. data/spec/features/download_layer_spec.rb +1 -1
  60. data/spec/features/esri_viewer_spec.rb +0 -1
  61. data/spec/features/home_page_spec.rb +4 -4
  62. data/spec/features/missing_metadata_spec.rb +2 -2
  63. data/spec/features/relations_spec.rb +2 -2
  64. data/spec/features/search_results_map_spec.rb +2 -1
  65. data/spec/features/search_results_overlap_ratio_spec.rb +2 -2
  66. data/spec/features/split_view.html.erb_spec.rb +16 -12
  67. data/spec/features/tms_spec.rb +1 -1
  68. data/spec/features/web_services_modal_spec.rb +0 -33
  69. data/spec/fixtures/solr_documents/README.md +48 -36
  70. data/spec/fixtures/solr_documents/actual-papermap1.json +41 -18
  71. data/spec/fixtures/solr_documents/actual-point1.json +47 -27
  72. data/spec/fixtures/solr_documents/actual-polygon1.json +43 -18
  73. data/spec/fixtures/solr_documents/actual-raster1.json +52 -23
  74. data/spec/fixtures/solr_documents/all-relationships.json +48 -0
  75. data/spec/fixtures/solr_documents/baruch_ancestor1.json +62 -37
  76. data/spec/fixtures/solr_documents/baruch_ancestor2.json +62 -37
  77. data/spec/fixtures/solr_documents/baruch_documentation_download.json +60 -34
  78. data/spec/fixtures/solr_documents/bbox-spans-180.json +34 -16
  79. data/spec/fixtures/solr_documents/cornell_html_metadata.json +46 -26
  80. data/spec/fixtures/solr_documents/esri-dynamic-layer-all-layers.json +43 -25
  81. data/spec/fixtures/solr_documents/esri-dynamic-layer-single-layer.json +45 -28
  82. data/spec/fixtures/solr_documents/esri-feature-layer.json +44 -34
  83. data/spec/fixtures/solr_documents/esri-image-map-layer.json +45 -31
  84. data/spec/fixtures/solr_documents/esri-tiled_map_layer.json +42 -17
  85. data/spec/fixtures/solr_documents/esri-wms-layer.json +46 -21
  86. data/spec/fixtures/solr_documents/harvard_raster.json +55 -36
  87. data/spec/fixtures/solr_documents/iiif-eastern-hemisphere.json +35 -22
  88. data/spec/fixtures/solr_documents/index-map-polygon-no-downloadurl.json +48 -27
  89. data/spec/fixtures/solr_documents/index-map-polygon.json +48 -27
  90. data/spec/fixtures/solr_documents/index-map-stanford.json +54 -25
  91. data/spec/fixtures/solr_documents/index_map_point.json +54 -26
  92. data/spec/fixtures/solr_documents/metadata_no_geom.json +27 -0
  93. data/spec/fixtures/solr_documents/metadata_no_provider.json +39 -0
  94. data/spec/fixtures/solr_documents/multiple-downloads.json +33 -20
  95. data/spec/fixtures/solr_documents/no_locn_geometry.json +25 -0
  96. data/spec/fixtures/solr_documents/no_spatial.json +37 -19
  97. data/spec/fixtures/solr_documents/oembed.json +34 -17
  98. data/spec/fixtures/solr_documents/princeton-child1.json +45 -28
  99. data/spec/fixtures/solr_documents/princeton-child2.json +45 -28
  100. data/spec/fixtures/solr_documents/princeton-child3.json +45 -28
  101. data/spec/fixtures/solr_documents/princeton-child4.json +45 -28
  102. data/spec/fixtures/solr_documents/princeton-parent.json +46 -23
  103. data/spec/fixtures/solr_documents/public_direct_download.json +48 -21
  104. data/spec/fixtures/solr_documents/public_iiif_princeton.json +49 -24
  105. data/spec/fixtures/solr_documents/public_polygon_mit.json +31 -15
  106. data/spec/fixtures/solr_documents/restricted-line.json +52 -21
  107. data/spec/fixtures/solr_documents/the-related-record.json +27 -0
  108. data/spec/fixtures/solr_documents/tms.json +33 -17
  109. data/spec/fixtures/solr_documents/umn_metro_result1.json +44 -28
  110. data/spec/fixtures/solr_documents/umn_state_result1.json +44 -26
  111. data/spec/fixtures/solr_documents/umn_state_result2.json +45 -24
  112. data/spec/fixtures/solr_documents/uva_slug_colon.json +43 -20
  113. data/spec/lib/geoblacklight/download/geojson_download_spec.rb +1 -1
  114. data/spec/lib/geoblacklight/download/geotiff_download_spec.rb +1 -1
  115. data/spec/lib/geoblacklight/download/hgl_download_spec.rb +1 -1
  116. data/spec/lib/geoblacklight/download/kmz_download_spec.rb +1 -1
  117. data/spec/lib/geoblacklight/download/shapefile_download_spec.rb +1 -1
  118. data/spec/lib/geoblacklight/download_spec.rb +1 -1
  119. data/spec/lib/geoblacklight/metadata/base_spec.rb +0 -18
  120. data/spec/lib/geoblacklight/references_spec.rb +2 -2
  121. data/spec/lib/geoblacklight/relation/ancestors_spec.rb +3 -3
  122. data/spec/lib/geoblacklight/relation/descendants_spec.rb +3 -3
  123. data/spec/lib/geoblacklight/relation/relation_response_spec.rb +32 -17
  124. data/spec/models/concerns/geoblacklight/solr_document_spec.rb +4 -4
  125. data/spec/spec_helper.rb +0 -5
  126. data/spec/test_app_templates/Gemfile.extra +0 -1
  127. data/spec/views/catalog/_results_pagination.html.erb_spec.rb +1 -1
  128. data/spec/views/catalog/_show_downloads.html.erb_spec.rb +1 -1
  129. metadata +43 -74
  130. data/app/assets/images/blacklight/american-geographical-society-library-uwm-libraries.svg +0 -26
  131. data/app/assets/images/blacklight/arizona.svg +0 -4
  132. data/app/assets/images/blacklight/george-mason.svg +0 -4
  133. data/app/assets/images/blacklight/nebraska.svg +0 -4
  134. data/app/assets/images/blacklight/rutgers.svg +0 -5
  135. data/app/assets/javascripts/geoblacklight/viewers/tilejson.js +0 -33
  136. data/app/assets/javascripts/geoblacklight/viewers/wmts.js +0 -85
  137. data/app/assets/javascripts/geoblacklight/viewers/xyz.js +0 -10
  138. data/app/views/relation/_ancestors.html.erb +0 -8
  139. data/app/views/relation/_descendants.html.erb +0 -15
  140. data/config/initializers/new_gbl_settings_defaults_3_3.yml +0 -10
  141. data/lib/geoblacklight/faraday_middleware/follow_redirects.rb +0 -176
  142. data/schema/format-values.md +0 -50
  143. data/schema/geoblacklight-schema-deprecated.md +0 -39
  144. data/schema/geoblacklight-schema.md +0 -323
  145. data/schema/geometry-type-values.md +0 -11
  146. data/schema/references.md +0 -23
  147. data/schema/schema-commentary.md +0 -198
  148. data/schema/subjects.md +0 -41
  149. data/schema/type-values.md +0 -10
  150. data/spec/features/tilejson_spec.rb +0 -22
  151. data/spec/features/wmts_spec.rb +0 -34
  152. data/spec/features/xyz_spec.rb +0 -10
  153. data/spec/fixtures/manifests/tilejson.json +0 -21
  154. data/spec/fixtures/manifests/wmts-multiple.xml +0 -813
  155. data/spec/fixtures/manifests/wmts-single.xml +0 -126
  156. data/spec/fixtures/solr_documents/metadata_no_dct_provenance_s.json +0 -30
  157. data/spec/fixtures/solr_documents/metadata_no_layer_geom_type_s.json +0 -17
  158. data/spec/fixtures/solr_documents/metadata_no_solr_geom.json +0 -23
  159. data/spec/fixtures/solr_documents/tilejson.json +0 -38
  160. data/spec/fixtures/solr_documents/wmts-multiple.json +0 -32
  161. data/spec/fixtures/solr_documents/wmts-single-layer.json +0 -38
  162. data/spec/fixtures/solr_documents/xyz.json +0 -29
@@ -29,7 +29,7 @@ class CatalogController < ApplicationController
29
29
  #
30
30
  config.default_document_solr_params = {
31
31
  :qt => 'document',
32
- :q => "{!raw f=#{Settings.FIELDS.UNIQUE_KEY} v=$id}"
32
+ :q => "{!raw f=#{Settings.FIELDS.ID} v=$id}"
33
33
  }
34
34
 
35
35
 
@@ -76,7 +76,6 @@ class CatalogController < ApplicationController
76
76
  # config.add_facet_field 'lc_1letter_facet', :label => 'Call Number'
77
77
  # config.add_facet_field 'subject_geo_facet', :label => 'Region'
78
78
  # config.add_facet_field 'solr_bbox', :fq => "solr_bbox:IsWithin(-88,26,-79,36)", :label => 'Spatial'
79
-
80
79
  # config.add_facet_field 'example_pivot_field', :label => 'Pivot Field', :pivot => ['format', 'language_facet']
81
80
 
82
81
  # config.add_facet_field 'example_query_facet_field', :label => 'Publish Date', :query => {
@@ -85,63 +84,62 @@ class CatalogController < ApplicationController
85
84
  # :years_25 => { :label => 'within 25 Years', :fq => "pub_date:[#{Time.now.year - 25 } TO *]" }
86
85
  # }
87
86
 
88
- config.add_facet_field Settings.FIELDS.PROVENANCE, label: 'Institution', limit: 8, partial: "icon_facet"
89
- config.add_facet_field Settings.FIELDS.CREATOR, :label => 'Author', :limit => 8
90
- config.add_facet_field Settings.FIELDS.PUBLISHER, :label => 'Publisher', :limit => 8
91
- config.add_facet_field Settings.FIELDS.SUBJECT, :label => 'Subject', :limit => 8
87
+
88
+ #FACETS
89
+
90
+ #DEFAULT FACETS
91
+ #to add additional facets, use the keys defined in the settings.yml file
92
+ config.add_facet_field Settings.FIELDS.INDEX_YEAR, :label => 'Year', :limit => 10
92
93
  config.add_facet_field Settings.FIELDS.SPATIAL_COVERAGE, :label => 'Place', :limit => 8
93
- config.add_facet_field Settings.FIELDS.PART_OF, :label => 'Collection', :limit => 8
94
+ config.add_facet_field Settings.FIELDS.ACCESS_RIGHTS, label: 'Access', limit: 8, partial: "icon_facet"
95
+ config.add_facet_field Settings.FIELDS.RESOURCE_CLASS, label: 'Resource Class', :limit => 8
96
+ config.add_facet_field Settings.FIELDS.RESOURCE_TYPE, label: 'Resource Type', :limit => 8
97
+ config.add_facet_field Settings.FIELDS.FORMAT, :label => 'Format', :limit => 8
98
+ config.add_facet_field Settings.FIELDS.SUBJECT, :label => 'Subject', :limit => 8
99
+ config.add_facet_field Settings.FIELDS.ISO_TOPIC_CATEGORY, :label => 'Theme', :limit => 8
100
+ config.add_facet_field Settings.FIELDS.CREATOR, :label => 'Creator', :limit => 8
101
+ config.add_facet_field Settings.FIELDS.PUBLISHER, :label => 'Publisher', :limit => 8
102
+ config.add_facet_field Settings.FIELDS.PROVIDER, label: 'Provider', limit: 8, partial: "icon_facet"
103
+ config.add_facet_field Settings.FIELDS.GEOREFERENCED, :label => 'Georeferenced', :limit => 3
104
+ config.add_facet_field Settings.FIELDS.SOURCE, :label => 'Collection', :limit => 8, :show => false
94
105
 
95
- config.add_facet_field Settings.FIELDS.YEAR, :label => 'Year', :limit => 10
96
106
 
97
- config.add_facet_field Settings.FIELDS.RIGHTS, label: 'Access', limit: 8, partial: "icon_facet"
98
- config.add_facet_field Settings.FIELDS.GEOM_TYPE, label: 'Data type', limit: 8, partial: "icon_facet"
99
- config.add_facet_field Settings.FIELDS.FILE_FORMAT, :label => 'Format', :limit => 8
100
- config.add_facet_field Settings.FIELDS.SOURCE, show: false
101
107
 
102
108
  # Have BL send all facet field names to Solr, which has been the default
103
109
  # previously. Simply remove these lines if you'd rather use Solr request
104
110
  # handler defaults, or have no facets.
105
111
  config.add_facet_fields_to_solr_request!
106
112
 
113
+
114
+ #SEARCH RESULTS FIELDS
115
+
107
116
  # solr fields to be displayed in the index (search results) view
108
117
  # The ordering of the field names is the order of the display
109
- # config.add_index_field 'title_display', :label => 'Title:'
110
- # config.add_index_field 'title_vern_display', :label => 'Title:'
111
- # config.add_index_field 'author_display', :label => 'Author:'
112
- # config.add_index_field 'author_vern_display', :label => 'Author:'
113
- # config.add_index_field 'format', :label => 'Format:'
114
- # config.add_index_field 'language_facet', :label => 'Language:'
115
- # config.add_index_field 'published_display', :label => 'Published:'
116
- # config.add_index_field 'published_vern_display', :label => 'Published:'
117
- # config.add_index_field 'lc_callnum_display', :label => 'Call number:'
118
-
119
- # config.add_index_field 'dc_title_t', :label => 'Display Name:'
120
- # config.add_index_field Settings.FIELDS.PROVENANCE, :label => 'Institution:'
118
+ # config.add_index_field Settings.FIELDS.PROVIDER, :label => 'Institution:'
121
119
  # config.add_index_field Settings.FIELDS.RIGHTS, :label => 'Access:'
122
120
  # # config.add_index_field 'Area', :label => 'Area:'
123
121
  # config.add_index_field Settings.FIELDS.SUBJECT, :label => 'Keywords:'
124
- config.add_index_field Settings.FIELDS.YEAR
122
+ config.add_index_field Settings.FIELDS.INDEX_YEAR
125
123
  config.add_index_field Settings.FIELDS.CREATOR
126
124
  config.add_index_field Settings.FIELDS.DESCRIPTION, helper_method: :snippit
127
125
  config.add_index_field Settings.FIELDS.PUBLISHER
128
126
 
129
-
127
+ #ITEM VIEW FIELDS
130
128
 
131
129
  # solr fields to be displayed in the show (single result) view
132
130
  # The ordering of the field names is the order of the display
133
- #
134
131
  # item_prop: [String] property given to span with Schema.org item property
135
132
  # link_to_search: [Boolean] that can be passed to link to a facet search
136
133
  # helper_method: [Symbol] method that can be used to render the value
137
- config.add_show_field Settings.FIELDS.CREATOR, label: 'Author(s)', itemprop: 'author'
134
+
135
+ #DEFAULT FIELDS
136
+ config.add_show_field Settings.FIELDS.CREATOR, label: 'Creator(s)', itemprop: 'creator'
138
137
  config.add_show_field Settings.FIELDS.DESCRIPTION, label: 'Description', itemprop: 'description', helper_method: :render_value_as_truncate_abstract
139
138
  config.add_show_field Settings.FIELDS.PUBLISHER, label: 'Publisher', itemprop: 'publisher'
140
- config.add_show_field Settings.FIELDS.PART_OF, label: 'Collection', itemprop: 'isPartOf'
141
139
  config.add_show_field Settings.FIELDS.SPATIAL_COVERAGE, label: 'Place(s)', itemprop: 'spatial', link_to_facet: true
142
140
  config.add_show_field Settings.FIELDS.SUBJECT, label: 'Subject(s)', itemprop: 'keywords', link_to_facet: true
143
- config.add_show_field Settings.FIELDS.TEMPORAL, label: 'Year', itemprop: 'temporal'
144
- config.add_show_field Settings.FIELDS.PROVENANCE, label: 'Held by', link_to_facet: true
141
+ config.add_show_field Settings.FIELDS.TEMPORAL_COVERAGE, label: 'Year', itemprop: 'temporal'
142
+ config.add_show_field Settings.FIELDS.PROVIDER, label: 'Provider', link_to_facet: true
145
143
  config.add_show_field(
146
144
  Settings.FIELDS.REFERENCES,
147
145
  label: 'More details at',
@@ -150,6 +148,50 @@ class CatalogController < ApplicationController
150
148
  helper_method: :render_references_url
151
149
  )
152
150
 
151
+ # OPTIONAL FIELDS
152
+ #optional fields to add to the item view display
153
+
154
+ # config.add_show_field Settings.FIELDS.ACCESS_RIGHTS, label: 'Access Rights', itemprop: 'access_rights'
155
+ # config.add_show_field Settings.FIELDS.ALTERNATIVE_TITLE, label: 'Alternative Title', itemprop: 'alt_title'
156
+ # config.add_show_field Settings.FIELDS.CENTROID, label: 'Centroid', itemprop: 'centroid'
157
+ # config.add_show_field Settings.FIELDS.CREATOR, label: 'Creator(s)', itemprop: 'creator'
158
+ # config.add_show_field Settings.FIELDS.DATE_ISSUED, label: 'Date Issued', itemprop: 'issued'
159
+ # config.add_show_field Settings.FIELDS.DATE_RANGE, label: 'Date Range', itemprop: 'date_range'
160
+ # config.add_show_field Settings.FIELDS.DESCRIPTION, label: 'Description', itemprop: 'description', helper_method: :render_value_as_truncate_abstract
161
+ # config.add_show_field Settings.FIELDS.FORMAT, label: 'Format', itemprop: 'format'
162
+ # config.add_show_field Settings.FIELDS.FILE_SIZE, label: 'File Size', itemprop: 'file_size'
163
+ # config.add_show_field Settings.FIELDS.GEOREFERENCED, label: 'Georeferenced', itemprop: 'georeferenced'
164
+ # config.add_show_field Settings.FIELDS.ID, label: 'ID', itemprop: 'id'
165
+ # config.add_show_field Settings.FIELDS.IDENTIFIER, label: 'Identifier', itemprop: 'identifier'
166
+ # config.add_show_field Settings.FIELDS.INDEX_YEAR, label: 'Year', itemprop: 'year'
167
+ # config.add_show_field Settings.FIELDS.IS_PART_OF, label: 'Is Part Of', itemprop: 'is_part_of'
168
+ # config.add_show_field Settings.FIELDS.IS_REPLACED_BY, label: 'Is Replaced By', itemprop: 'is_replaced_by'
169
+ # config.add_show_field Settings.FIELDS.ISO_TOPIC_CATEGORY, label: 'Theme', itemprop: 'theme'
170
+ # config.add_show_field Settings.FIELDS.KEYWORD, label: 'Keyword(s)', itemprop: 'keyword'
171
+ # config.add_show_field Settings.FIELDS.LANGUAGE, label: 'Language', itemprop: 'language'
172
+ # config.add_show_field Settings.FIELDS.LICENSE, label: 'License', itemprop: 'license'
173
+ # config.add_show_field Settings.FIELDS.MEMBER_OF, label: 'Member Of', itemprop: 'member_of'
174
+ # config.add_show_field Settings.FIELDS.METADATA_VERSION, label: 'Metadata Version', itemprop: 'metadata_version'
175
+ # config.add_show_field Settings.FIELDS.MODIFIED, label: 'Date Modified', itemprop: 'modified'
176
+ # config.add_show_field Settings.FIELDS.OVERLAP_FIELD, label: 'Overlap BBox', itemprop: 'overlap_field'
177
+ # config.add_show_field Settings.FIELDS.PUBLISHER, label: 'Publisher', itemprop: 'publisher'
178
+ # config.add_show_field Settings.FIELDS.PROVIDER, label: 'Provider', itemprop: 'provider'
179
+ # config.add_show_field Settings.FIELDS.REFERENCES, label: 'References', itemprop: 'references'
180
+ # config.add_show_field Settings.FIELDS.RELATION, label: 'Relation', itemprop: 'relation'
181
+ # config.add_show_field Settings.FIELDS.REPLACES, label: 'Replaces', itemprop: 'replaces'
182
+ # config.add_show_field Settings.FIELDS.RESOURCE_CLASS, label: 'Resource Class', itemprop: 'class'
183
+ # config.add_show_field Settings.FIELDS.RESOURCE_TYPE, label: 'Resource Type', itemprop: 'type'
184
+ # config.add_show_field Settings.FIELDS.RIGHTS, label: 'Rights', itemprop: 'rights'
185
+ # config.add_show_field Settings.FIELDS.RIGHTS_HOLDER, label: 'Rights Holder', itemprop: 'rights_holder'
186
+ # config.add_show_field Settings.FIELDS.SPATIAL_COVERAGE, label: 'Place(s)', itemprop: 'spatial_coverage'
187
+ # config.add_show_field Settings.FIELDS.SPATIAL_EXTENT, label: 'Spatial Extent', itemprop: 'geometry'
188
+ # config.add_show_field Settings.FIELDS.SUBJECT, label: 'Subject', itemprop: 'subject'
189
+ # config.add_show_field Settings.FIELDS.SUPPRESSED, label: 'Suppressed', itemprop: 'suppresed'
190
+ # config.add_show_field Settings.FIELDS.TEMPORAL_COVERAGE, label: 'Temporal Coverage', itemprop: 'temporal'
191
+ # config.add_show_field Settings.FIELDS.TITLE, label: 'Title', itemprop: 'title'
192
+ # config.add_show_field Settings.FIELDS.VERSION, label: 'Version', itemprop: 'version'
193
+ # config.add_show_field Settings.FIELDS.WXS_IDENTIFIER, label: 'Web Service Layer', itemprop: 'wxs_identifier'
194
+
153
195
  # "fielded" search configuration. Used by pulldown among other places.
154
196
  # For supported keys in hash, see rdoc for Blacklight::SearchFields
155
197
  #
@@ -222,11 +264,11 @@ class CatalogController < ApplicationController
222
264
  # label in pulldown is followed by the name of the SOLR field to sort by and
223
265
  # whether the sort is ascending or descending (it must be asc or desc
224
266
  # except in the relevancy case).
225
- config.add_sort_field 'score desc, dc_title_sort asc', :label => 'Relevance'
226
- config.add_sort_field "#{Settings.FIELDS.YEAR} desc, dc_title_sort asc", :label => 'Year (Newest first)'
227
- config.add_sort_field "#{Settings.FIELDS.YEAR} asc, dc_title_sort asc", :label => 'Year (Oldest first)'
228
- config.add_sort_field 'dc_title_sort asc', :label => 'Title (A-Z)'
229
- config.add_sort_field 'dc_title_sort desc', :label => 'Title (Z-A)'
267
+ config.add_sort_field 'score desc, dct_title_sort asc', :label => 'Relevance'
268
+ config.add_sort_field "#{Settings.FIELDS.INDEX_YEAR} desc, dct_title_sort asc", :label => 'Year (Newest first)'
269
+ config.add_sort_field "#{Settings.FIELDS.INDEX_YEAR} asc, dct_title_sort asc", :label => 'Year (Oldest first)'
270
+ config.add_sort_field 'dct_title_sort asc', :label => 'Title (A-Z)'
271
+ config.add_sort_field 'dct_title_sort desc', :label => 'Title (Z-A)'
230
272
 
231
273
  # If there are more than this many search results, no spelling ("did you
232
274
  # mean") suggestion is offered.
@@ -0,0 +1,195 @@
1
+ #Solr field mappings for GeoBlacklight Metadata Schema version 1.0
2
+
3
+ # Configurable Logo Used for CartoDB export
4
+ APPLICATION_LOGO_URL: 'http://geoblacklight.org/images/geoblacklight-logo.png'
5
+
6
+ # Carto OneClick Service https://carto.com/engine/open-in-carto/
7
+ CARTO_ONECLICK_LINK: 'http://oneclick.carto.com/'
8
+
9
+ # ArcGIS Online Base URL
10
+ ARCGIS_BASE_URL: 'https://www.arcgis.com/home/webmap/viewer.html'
11
+
12
+ # Download path can be configured using this setting
13
+ #DOWNLOAD_PATH: "./tmp/cache/downloads"
14
+
15
+ # DEPRECATED Main Solr geometry field used for spatial search and bounding box. Should be type 'rpt'
16
+ GEOMETRY_FIELD: 'solr_geom'
17
+
18
+ # The bq boost value for spatial search matches within a bounding box
19
+ BBOX_WITHIN_BOOST: '10'
20
+
21
+ # The bf boost value for overlap ratio
22
+ OVERLAP_RATIO_BOOST: '2'
23
+
24
+ # Solr field mappings
25
+ FIELDS:
26
+ :ACCESS_RIGHTS: 'dc_rights_s'
27
+ #:ALTERNATIVE_TITLE: 'dct_alternative_sm'
28
+ #:CENTROID: 'dcat_centroid_ss'
29
+ :CREATOR: 'dc_creator_sm'
30
+ :DATE_ISSUED: 'dct_issued_s'
31
+ #:DATE_RANGE: 'gbl_dateRange_drsim'
32
+ :DESCRIPTION: 'dc_description_sm'
33
+ :FORMAT: 'dc_format_s'
34
+ #:FILE_SIZE: 'gbl_fileSize_s'
35
+ #:GEOREFERENCED: 'gbl_georeferenced_b'
36
+ :ID: 'layer_slug_s'
37
+ :IDENTIFIER: 'dc_identifier_s'
38
+ :INDEX_YEAR: 'solr_year_i'
39
+ #:IS_PART_OF: 'dct_isPartOf_sm'
40
+ #:IS_REPLACED_BY: 'dct_isReplacedBy_sm'
41
+ #:ISO_TOPIC_CATEGORY: 'dcat_theme_sm'
42
+ #:KEYWORD: 'dcat_keyword_sm'
43
+ :LANGUAGE: 'dc_language_sm'
44
+ #:LICENSE: 'dct_license_sm'
45
+ #:MEMBER_OF: 'pcdm_memberOf_sm'
46
+ :METADATA_VERSION: 'geoblacklight_version'
47
+ :MODIFIED: 'layer_modified_dt'
48
+ :OVERLAP_FIELD: 'solr_bboxtype'
49
+ :PUBLISHER: 'dc_publisher_s'
50
+ :PROVIDER: 'dct_provenance_s'
51
+ :REFERENCES: 'dct_references_s'
52
+ #:RELATION: 'dct_relation_sm'
53
+ #:REPLACES: 'dct_replaces_sm'
54
+ #:RESOURCE_CLASS: 'gbl_resourceClass_sm'
55
+ :RESOURCE_TYPE: 'layer_geom_type_s'
56
+ #:RIGHTS: 'dct_rights_sm'
57
+ #:RIGHTS_HOLDER: 'dct_rightsHolder_sm'
58
+ :SOURCE: 'dc_source_sm'
59
+ :SPATIAL_COVERAGE: 'dct_spatial_sm'
60
+ :SPATIAL_EXTENT: 'solr_geom'
61
+ :SUBJECT: 'dc_subject_sm'
62
+ :SUPPRESSED: 'suppressed_b'
63
+ :TEMPORAL_COVERAGE: 'dct_temporal_sm'
64
+ :TITLE: 'dc_title_s'
65
+ #:VERSION: 'dct_isVersionOf_sm'
66
+ :WXS_IDENTIFIER: 'layer_id_s'
67
+
68
+ # Institution deployed at
69
+ INSTITUTION: 'Stanford'
70
+
71
+ # Metadata shown in tool panel
72
+ METADATA_SHOWN:
73
+ - 'mods'
74
+ - 'fgdc'
75
+ - 'iso19139'
76
+ - 'html'
77
+
78
+ # (For external Download) timeout and open_timeout parameters for Faraday
79
+ TIMEOUT_DOWNLOAD: 16
80
+
81
+ # (For WMS inspection) timeout and open_timeout parameters for Faraday
82
+ TIMEOUT_WMS: 4
83
+
84
+ # Use the geometry type for the data relations icon
85
+ USE_GEOM_FOR_RELATIONS_ICON: false
86
+
87
+ # Web services shown in tool panel
88
+ WEBSERVICES_SHOWN:
89
+ - 'wms'
90
+ - 'tms'
91
+ - 'wfs'
92
+ - 'iiif'
93
+ - 'feature_layer'
94
+ - 'tiled_map_layer'
95
+ - 'dynamic_map_layer'
96
+ - 'image_map_layer'
97
+
98
+ # Relationships to display
99
+ RELATIONSHIPS_SHOWN:
100
+ # MEMBER_OF:
101
+ # field: pcdm_memberOf_sm
102
+ # query_type: ancestors
103
+ # icon: nil
104
+ # label: geoblacklight.relations.member_of
105
+ # PART_OF:
106
+ # field: dct_isPartOf_sm
107
+ # query_type: ancestors
108
+ # icon: nil
109
+ # label: geoblacklight.relations.part_of
110
+ # RELATION:
111
+ # field: dct_relation_sm
112
+ # query_type: ancestors
113
+ # icon: nil
114
+ # label: geoblacklight.relations.relation
115
+ # REPLACES:
116
+ # field: dct_replaces_sm
117
+ # query_type: ancestors
118
+ # icon: nil
119
+ # label: geoblacklight.relations.replaces
120
+ # REPLACED_BY:
121
+ # field: dct_isReplacedBy_sm
122
+ # query_type: descendants
123
+ # icon: nil
124
+ # label: geoblacklight.relations.replaced_by
125
+ SOURCE_ANCESTORS:
126
+ field: dct_source_sm
127
+ query_type: ancestors
128
+ icon: pagelines-brands
129
+ label: geoblacklight.relations.ancestor
130
+ SOURCE_DESCENDANTS:
131
+ field: dct_source_sm
132
+ query_type: descendants
133
+ icon: leaf
134
+ label: geoblacklight.relations.descendant
135
+ # VERSION_OF:
136
+ # field: dct_isVersionOf_sm
137
+ # query_type: descendants
138
+ # icon: nil
139
+ # label: geoblacklight.relations.version_of
140
+
141
+ # WMS Parameters
142
+ WMS_PARAMS:
143
+ :SERVICE: 'WMS'
144
+ :VERSION: '1.1.1'
145
+ :REQUEST: 'GetFeatureInfo'
146
+ :STYLES: ''
147
+ :SRS: 'EPSG:4326'
148
+ :EXCEPTIONS: 'application/json'
149
+ :INFO_FORMAT: 'text/html'
150
+
151
+ # Settings for leaflet
152
+ OPACITY_CONTROL: &opacity_control
153
+ CONTROLS:
154
+ - 'Opacity'
155
+
156
+ LEAFLET:
157
+ MAP:
158
+ LAYERS:
159
+ DETECT_RETINA: true
160
+ INDEX:
161
+ DEFAULT: &default
162
+ color: "#1eb300"
163
+ weight: "1"
164
+ radius: "4"
165
+ UNAVAILABLE:
166
+ <<: *default
167
+ color: "#b3001e"
168
+ SELECTED:
169
+ <<: *default
170
+ color: "#006bde"
171
+ VIEWERS:
172
+ WMS:
173
+ <<: *opacity_control
174
+ TILEDMAPLAYER:
175
+ <<: *opacity_control
176
+ FEATURELAYER:
177
+ <<: *opacity_control
178
+ DYNAMICMAPLAYER:
179
+ <<: *opacity_control
180
+ IMAGEMAPLAYER:
181
+ <<: *opacity_control
182
+
183
+ # Toggle the help text feature that offers users context
184
+ HELP_TEXT:
185
+ viewer_protocol:
186
+ - 'dynamic_map_layer'
187
+ - 'feature_layer'
188
+ - 'iiif'
189
+ - 'iiif_manifest'
190
+ - 'image_map_layer'
191
+ - 'index_map'
192
+ - 'tiled_map_layer'
193
+ - 'wms'
194
+ - 'tms'
195
+ - 'oembed'
@@ -27,31 +27,47 @@ HOMEPAGE_MAP_GEOM: null
27
27
 
28
28
  # Solr field mappings
29
29
  FIELDS:
30
- :CREATOR: 'dc_creator_sm'
31
- :DESCRIPTION: 'dc_description_s'
32
- :FILE_FORMAT: 'dc_format_s'
33
- :GEOM_TYPE: 'layer_geom_type_s'
34
- :GEOMETRY: 'solr_geom'
35
- :IDENTIFIER: 'dc_identifier_s'
36
- :ISSUED: 'dct_issued_s'
37
- :LANGUAGE: 'dc_language_s'
38
- :LAYER_MODIFIED: 'layer_modified_dt'
30
+ :ACCESS_RIGHTS: 'dct_accessRights_s'
31
+ :ALTERNATIVE_TITLE: 'dct_alternative_sm'
32
+ :CENTROID: 'dcat_centroid_ss'
33
+ :CREATOR: 'dct_creator_sm'
34
+ :DATE_ISSUED: 'dct_issued_s'
35
+ :DATE_RANGE: 'gbl_dateRange_drsim'
36
+ :DESCRIPTION: 'dct_description_sm'
37
+ :FORMAT: 'dct_format_s'
38
+ :FILE_SIZE: 'gbl_fileSize_s'
39
+ :GEOREFERENCED: 'gbl_georeferenced_b'
40
+ :ID: 'id'
41
+ :IDENTIFIER: 'dct_identifier_sm'
42
+ :INDEX_YEAR: 'gbl_indexYear_im'
43
+ :IS_PART_OF: 'dct_isPartOf_sm'
44
+ :IS_REPLACED_BY: 'dct_isReplacedBy_sm'
45
+ :ISO_TOPIC_CATEGORY: 'dcat_theme_sm'
46
+ :KEYWORD: 'dcat_keyword_sm'
47
+ :LANGUAGE: 'dct_language_sm'
48
+ :LICENSE: 'dct_license_sm'
49
+ :MEMBER_OF: 'pcdm_memberOf_sm'
50
+ :METADATA_VERSION: 'gbl_mdVersion_s'
51
+ :MODIFIED: 'gbl_mdModified_dt'
39
52
  :OVERLAP_FIELD: 'solr_bboxtype'
40
- :PART_OF: 'dct_isPartOf_sm'
41
- :PUBLISHER: 'dc_publisher_s'
42
- :PROVENANCE: 'dct_provenance_s'
53
+ :PUBLISHER: 'dct_publisher_sm'
54
+ :PROVIDER: 'schema_provider_s'
43
55
  :REFERENCES: 'dct_references_s'
44
- :RIGHTS: 'dc_rights_s'
56
+ :RELATION: 'dct_relation_sm'
57
+ :REPLACES: 'dct_replaces_sm'
58
+ :RESOURCE_CLASS: 'gbl_resourceClass_sm'
59
+ :RESOURCE_TYPE: 'gbl_resourceType_sm'
60
+ :RIGHTS: 'dct_rights_sm'
61
+ :RIGHTS_HOLDER: 'dct_rightsHolder_sm'
62
+ :SOURCE: 'dct_source_sm'
45
63
  :SPATIAL_COVERAGE: 'dct_spatial_sm'
46
- :SUBJECT: 'dc_subject_sm'
47
- :SOURCE: 'dc_source_sm'
48
- :SUPPRESSED: 'suppressed_b'
49
- :TEMPORAL: 'dct_temporal_sm'
50
- :TITLE: 'dc_title_s'
51
- :TYPE: 'dc_type_s'
52
- :UNIQUE_KEY: 'layer_slug_s'
53
- :WXS_IDENTIFIER: 'layer_id_s'
54
- :YEAR: 'solr_year_i'
64
+ :SPATIAL_EXTENT: 'locn_geometry'
65
+ :SUBJECT: 'dct_subject_sm'
66
+ :SUPPRESSED: 'gbl_suppressed_b'
67
+ :TEMPORAL_COVERAGE: 'dct_temporal_sm'
68
+ :TITLE: 'dct_title_s'
69
+ :VERSION: 'dct_isVersionOf_sm'
70
+ :WXS_IDENTIFIER: 'gbl_wxsIdentifier_s'
55
71
 
56
72
  # Institution deployed at
57
73
  INSTITUTION: 'Stanford'
@@ -77,15 +93,55 @@ WEBSERVICES_SHOWN:
77
93
  - 'wms'
78
94
  - 'tms'
79
95
  - 'wfs'
80
- - 'xyz'
81
- - 'wmts'
82
- - 'tilejson'
83
96
  - 'iiif'
84
97
  - 'feature_layer'
85
98
  - 'tiled_map_layer'
86
99
  - 'dynamic_map_layer'
87
100
  - 'image_map_layer'
88
101
 
102
+ # Relationships to display
103
+ RELATIONSHIPS_SHOWN:
104
+ MEMBER_OF:
105
+ field: pcdm_memberOf_sm
106
+ query_type: ancestors
107
+ icon: nil
108
+ label: geoblacklight.relations.member_of
109
+ PART_OF:
110
+ field: dct_isPartOf_sm
111
+ query_type: ancestors
112
+ icon: nil
113
+ label: geoblacklight.relations.part_of
114
+ RELATION:
115
+ field: dct_relation_sm
116
+ query_type: ancestors
117
+ icon: nil
118
+ label: geoblacklight.relations.relation
119
+ REPLACES:
120
+ field: dct_replaces_sm
121
+ query_type: ancestors
122
+ icon: nil
123
+ label: geoblacklight.relations.replaces
124
+ REPLACED_BY:
125
+ field: dct_isReplacedBy_sm
126
+ query_type: descendants
127
+ icon: nil
128
+ label: geoblacklight.relations.replaced_by
129
+ SOURCE_ANCESTORS:
130
+ field: dct_source_sm
131
+ query_type: ancestors
132
+ icon: pagelines-brands
133
+ label: geoblacklight.relations.ancestor
134
+ SOURCE_DESCENDANTS:
135
+ field: dct_source_sm
136
+ query_type: descendants
137
+ icon: leaf
138
+ label: geoblacklight.relations.descendant
139
+ VERSION_OF:
140
+ field: dct_isVersionOf_sm
141
+ query_type: descendants
142
+ icon: nil
143
+ label: geoblacklight.relations.version_of
144
+
89
145
  # WMS Parameters
90
146
  WMS_PARAMS:
91
147
  :SERVICE: 'WMS'
@@ -16,10 +16,7 @@ module Geoblacklight
16
16
  wcs: 'http://www.opengis.net/def/serviceType/ogc/wcs',
17
17
  wfs: 'http://www.opengis.net/def/serviceType/ogc/wfs',
18
18
  wms: 'http://www.opengis.net/def/serviceType/ogc/wms',
19
- wmts: 'http://www.opengis.net/def/serviceType/ogc/wmts',
20
19
  tms: 'https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification',
21
- tilejson: 'https://github.com/mapbox/tilejson-spec',
22
- xyz: 'https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames',
23
20
  hgl: 'http://schema.org/DownloadAction',
24
21
  feature_layer: 'urn:x-esri:serviceType:ArcGIS#FeatureLayer',
25
22
  tiled_map_layer: 'urn:x-esri:serviceType:ArcGIS#TiledMapLayer',
@@ -10,7 +10,7 @@ module Geoblacklight
10
10
  }.freeze
11
11
 
12
12
  def initialize(document, options = {})
13
- request_params = GEOJSON_DOWNLOAD_PARAMS.merge(typeName: document[:layer_id_s])
13
+ request_params = GEOJSON_DOWNLOAD_PARAMS.merge(typeName: document[Settings.FIELDS.WXS_IDENTIFIER])
14
14
  super(document, {
15
15
  type: 'geojson',
16
16
  extension: 'json',
@@ -7,7 +7,7 @@ module Geoblacklight
7
7
  }.freeze
8
8
 
9
9
  def initialize(document, options = {})
10
- request_params = GEOTIFF_DOWNLOAD_PARAMS.merge(layers: document[:layer_id_s])
10
+ request_params = GEOTIFF_DOWNLOAD_PARAMS.merge(layers: document[Settings.FIELDS.WXS_IDENTIFIER])
11
11
  super(document, {
12
12
  type: 'geotiff',
13
13
  extension: 'tif',
@@ -3,7 +3,7 @@ module Geoblacklight
3
3
  class HglDownload < Geoblacklight::Download
4
4
  def initialize(document, email, options = {})
5
5
  request_params = {
6
- 'LayerName' => document[:layer_id_s].sub(/^cite:/, ''),
6
+ 'LayerName' => document[Settings.FIELDS.WXS_IDENTIFIER].sub(/^cite:/, ''),
7
7
  'UserEmail' => email
8
8
  }
9
9
  super(document, {
@@ -10,7 +10,7 @@ module Geoblacklight
10
10
 
11
11
  def initialize(document, options = {})
12
12
  bbox_wsen = document.geometry.bounding_box
13
- request_params = KMZ_DOWNLOAD_PARAMS.merge(layers: document[:layer_id_s], bbox: bbox_wsen)
13
+ request_params = KMZ_DOWNLOAD_PARAMS.merge(layers: document[Settings.FIELDS.WXS_IDENTIFIER], bbox: bbox_wsen)
14
14
  super(document, {
15
15
  type: 'kmz',
16
16
  extension: 'kmz',
@@ -8,7 +8,7 @@ module Geoblacklight
8
8
  outputformat: 'SHAPE-ZIP' }.freeze
9
9
 
10
10
  def initialize(document, options = {})
11
- request_params = SHAPEFILE_DOWNLOAD_PARAMS.merge(typeName: document[:layer_id_s])
11
+ request_params = SHAPEFILE_DOWNLOAD_PARAMS.merge(typeName: document[Settings.FIELDS.WXS_IDENTIFIER])
12
12
  super(document, {
13
13
  type: 'shapefile',
14
14
  extension: 'zip',
@@ -3,6 +3,7 @@ require 'blacklight'
3
3
  require 'coderay'
4
4
  require 'config'
5
5
  require 'faraday'
6
+ require 'faraday_middleware'
6
7
  require 'geoblacklight/version'
7
8
  require 'nokogiri'
8
9
  require 'mime/types'
@@ -15,10 +16,8 @@ module Geoblacklight
15
16
  # GeoblacklightHelper is needed by all helpers, so we inject it
16
17
  # into action view base here.
17
18
  initializer 'geoblacklight.helpers' do
18
- config.after_initialize do
19
- ActionView::Base.send :include, GeoblacklightHelper
20
- ActionView::Base.send :include, CartoHelper
21
- end
19
+ ActionView::Base.send :include, GeoblacklightHelper
20
+ ActionView::Base.send :include, CartoHelper
22
21
  end
23
22
 
24
23
  config.to_prepare do
@@ -51,20 +51,8 @@ module Geoblacklight
51
51
  @references.tms
52
52
  end
53
53
 
54
- def xyz
55
- @references.xyz
56
- end
57
-
58
- def tilejson
59
- @references.tilejson
60
- end
61
-
62
- def wmts
63
- @references.wmts
64
- end
65
-
66
54
  def viewer_preference
67
- [oembed, index_map, tilejson, xyz, wmts, tms, wms, iiif, tiled_map_layer, dynamic_map_layer,
55
+ [oembed, index_map, tms, wms, iiif, tiled_map_layer, dynamic_map_layer,
68
56
  image_map_layer, feature_layer].compact.map(&:to_hash).first
69
57
  end
70
58
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- require 'geoblacklight/faraday_middleware/follow_redirects'
3
2
  module Geoblacklight
4
3
  module Metadata
5
4
  ##
@@ -48,7 +47,7 @@ module Geoblacklight
48
47
  # connection error
49
48
  def retrieve_metadata
50
49
  connection = Faraday.new(url: @reference.endpoint) do |conn|
51
- conn.use Geoblacklight::FaradayMiddleware::FollowRedirects
50
+ conn.use FaradayMiddleware::FollowRedirects
52
51
  conn.adapter Faraday.default_adapter
53
52
  end
54
53
  begin
@@ -30,7 +30,7 @@ module Geoblacklight
30
30
  # Accessor for a document's file format
31
31
  # @return [String] file format for the document
32
32
  def format
33
- @document[Settings.FIELDS.FILE_FORMAT]
33
+ @document[Settings.FIELDS.FORMAT]
34
34
  end
35
35
 
36
36
  ##
@@ -2,14 +2,15 @@
2
2
  module Geoblacklight
3
3
  module Relation
4
4
  class Ancestors
5
- def initialize(id, repository)
5
+ def initialize(id, field, repository)
6
6
  @search_id = id
7
+ @field = field
7
8
  @repository = repository
8
9
  end
9
10
 
10
11
  def create_search_params
11
- { fq: ["{!join from=#{Settings.FIELDS.SOURCE} to=#{Settings.FIELDS.UNIQUE_KEY}}#{Settings.FIELDS.UNIQUE_KEY}:#{@search_id}"],
12
- fl: [Settings.FIELDS.TITLE, Settings.FIELDS.UNIQUE_KEY, Settings.FIELDS.GEOM_TYPE] }
12
+ { fq: ["{!join from=#{@field} to=#{Settings.FIELDS.ID}}#{Settings.FIELDS.ID}:#{@search_id}"],
13
+ fl: [Settings.FIELDS.TITLE, Settings.FIELDS.ID, Settings.FIELDS.RESOURCE_TYPE] }
13
14
  end
14
15
 
15
16
  def execute_query