arclight 0.2.0 → 1.6.2

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 (246) hide show
  1. checksums.yaml +4 -4
  2. data/.all-contributorsrc +450 -0
  3. data/.codeclimate.yml +5 -0
  4. data/.eslintrc +14 -4
  5. data/.github/workflows/ruby.yml +51 -0
  6. data/.gitignore +1 -0
  7. data/.rspec +0 -1
  8. data/.rubocop.yml +504 -8
  9. data/.rubocop_todo.yml +62 -199
  10. data/.solr_wrapper +2 -1
  11. data/CONTRIBUTING.md +5 -5
  12. data/CONTRIBUTORS.md +79 -0
  13. data/Gemfile +15 -10
  14. data/README.md +36 -34
  15. data/Rakefile +0 -1
  16. data/app/assets/images/blacklight/bookmark.svg +1 -0
  17. data/app/assets/images/blacklight/collection.svg +5 -0
  18. data/app/assets/images/blacklight/compact.svg +1 -25
  19. data/app/assets/images/blacklight/container.svg +5 -0
  20. data/app/assets/images/blacklight/ead.svg +1 -0
  21. data/app/assets/images/blacklight/file.svg +5 -0
  22. data/app/assets/images/blacklight/folder.svg +1 -0
  23. data/app/assets/images/blacklight/list.svg +1 -0
  24. data/app/assets/images/blacklight/minus.svg +1 -0
  25. data/app/assets/images/blacklight/online.svg +5 -0
  26. data/app/assets/images/blacklight/pdf.svg +1 -0
  27. data/app/assets/images/blacklight/plus.svg +1 -0
  28. data/app/assets/images/blacklight/repository.svg +1 -0
  29. data/app/assets/javascripts/arclight/arclight.js +4 -10
  30. data/app/assets/javascripts/arclight/oembed_controller.js +58 -0
  31. data/app/assets/javascripts/arclight/truncate_controller.js +27 -0
  32. data/app/assets/stylesheets/arclight/application.scss +4 -4
  33. data/app/assets/stylesheets/arclight/build.scss +4 -0
  34. data/app/assets/stylesheets/arclight/modules/hierarchy_and_online_contents.scss +117 -146
  35. data/app/assets/stylesheets/arclight/modules/highlights.scss +2 -1
  36. data/app/assets/stylesheets/arclight/modules/icons.scss +20 -0
  37. data/app/assets/stylesheets/arclight/modules/layout.scss +183 -40
  38. data/app/assets/stylesheets/arclight/modules/mastheads.scss +24 -75
  39. data/app/assets/stylesheets/arclight/modules/repositories.scss +3 -7
  40. data/app/assets/stylesheets/arclight/modules/repository_card.scss +5 -50
  41. data/app/assets/stylesheets/arclight/modules/search_form.scss +9 -0
  42. data/app/assets/stylesheets/arclight/modules/search_results.scss +197 -26
  43. data/app/assets/stylesheets/arclight/modules/show_collection.scss +21 -69
  44. data/app/assets/stylesheets/arclight/modules/truncator.scss +58 -0
  45. data/app/assets/stylesheets/arclight/responsive.scss +13 -0
  46. data/app/assets/stylesheets/arclight/variables.scss +25 -2
  47. data/app/components/arclight/access_component.html.erb +14 -0
  48. data/app/components/arclight/access_component.rb +25 -0
  49. data/app/components/arclight/bookmark_component.html.erb +25 -0
  50. data/app/components/arclight/bookmark_component.rb +9 -0
  51. data/app/components/arclight/breadcrumb_component.rb +50 -0
  52. data/app/components/arclight/breadcrumbs_hierarchy_component.html.erb +34 -0
  53. data/app/components/arclight/breadcrumbs_hierarchy_component.rb +25 -0
  54. data/app/components/arclight/collection_context_component.html.erb +12 -0
  55. data/app/components/arclight/collection_context_component.rb +27 -0
  56. data/app/components/arclight/collection_info_component.html.erb +28 -0
  57. data/app/components/arclight/collection_info_component.rb +26 -0
  58. data/app/components/arclight/collection_sidebar_component.html.erb +15 -0
  59. data/app/components/arclight/collection_sidebar_component.rb +39 -0
  60. data/app/{views/catalog/_search_results_repository.html.erb → components/arclight/constraints_component.html.erb} +2 -1
  61. data/app/components/arclight/constraints_component.rb +17 -0
  62. data/app/components/arclight/document_collection_context_component.html.erb +29 -0
  63. data/app/components/arclight/document_collection_context_component.rb +28 -0
  64. data/app/components/arclight/document_collection_hierarchy_component.html.erb +50 -0
  65. data/app/components/arclight/document_collection_hierarchy_component.rb +62 -0
  66. data/app/components/arclight/document_component.html.erb +39 -0
  67. data/app/components/arclight/document_component.rb +49 -0
  68. data/app/components/arclight/document_components_hierarchy_component.html.erb +20 -0
  69. data/app/components/arclight/document_components_hierarchy_component.rb +34 -0
  70. data/app/components/arclight/document_download_component.html.erb +24 -0
  71. data/app/components/arclight/document_download_component.rb +71 -0
  72. data/app/components/arclight/embed_component.html.erb +10 -0
  73. data/app/components/arclight/embed_component.rb +43 -0
  74. data/app/components/arclight/expand_hierarchy_button_component.html.erb +5 -0
  75. data/app/components/arclight/expand_hierarchy_button_component.rb +16 -0
  76. data/app/components/arclight/group_component.html.erb +34 -0
  77. data/app/components/arclight/group_component.rb +23 -0
  78. data/app/components/arclight/header_component.html.erb +5 -0
  79. data/app/components/arclight/header_component.rb +10 -0
  80. data/app/components/arclight/index_metadata_field_component.html.erb +16 -0
  81. data/app/components/arclight/index_metadata_field_component.rb +20 -0
  82. data/app/components/arclight/masthead_component.html.erb +17 -0
  83. data/app/components/arclight/masthead_component.rb +10 -0
  84. data/app/components/arclight/metadata_section_component.html.erb +13 -0
  85. data/app/components/arclight/metadata_section_component.rb +22 -0
  86. data/app/components/arclight/oembed_viewer_component.html.erb +5 -0
  87. data/app/components/arclight/oembed_viewer_component.rb +16 -0
  88. data/app/components/arclight/online_content_filter_component.html.erb +15 -0
  89. data/app/components/arclight/online_content_filter_component.rb +17 -0
  90. data/app/components/arclight/online_status_indicator_component.rb +19 -0
  91. data/app/components/arclight/repository_breadcrumb_component.html.erb +10 -0
  92. data/app/components/arclight/repository_breadcrumb_component.rb +17 -0
  93. data/app/components/arclight/repository_location_component.html.erb +20 -0
  94. data/app/components/arclight/repository_location_component.rb +10 -0
  95. data/app/components/arclight/search_bar_component.html.erb +27 -0
  96. data/app/components/arclight/search_bar_component.rb +32 -0
  97. data/app/components/arclight/search_result_breadcrumbs_component.html.erb +6 -0
  98. data/app/components/arclight/search_result_breadcrumbs_component.rb +37 -0
  99. data/app/components/arclight/search_result_component.html.erb +20 -0
  100. data/app/components/arclight/search_result_component.rb +18 -0
  101. data/app/components/arclight/search_result_title_component.html.erb +15 -0
  102. data/app/components/arclight/search_result_title_component.rb +15 -0
  103. data/app/components/arclight/sidebar_component.html.erb +9 -0
  104. data/app/components/arclight/sidebar_component.rb +19 -0
  105. data/app/components/arclight/upper_metadata_layout_component.rb +10 -0
  106. data/app/components/blacklight/icons/bookmark_component.rb +12 -0
  107. data/app/components/blacklight/icons/collection_component.rb +14 -0
  108. data/app/components/blacklight/icons/compact_component.rb +12 -0
  109. data/app/components/blacklight/icons/container_component.rb +14 -0
  110. data/app/components/blacklight/icons/ead_component.rb +12 -0
  111. data/app/components/blacklight/icons/file_component.rb +14 -0
  112. data/app/components/blacklight/icons/folder_component.rb +12 -0
  113. data/app/components/blacklight/icons/online_component.rb +15 -0
  114. data/app/components/blacklight/icons/pdf_component.rb +12 -0
  115. data/app/components/blacklight/icons/repository_component.rb +12 -0
  116. data/app/controllers/arclight/repositories_controller.rb +4 -4
  117. data/app/helpers/arclight/ead_format_helpers.rb +309 -0
  118. data/app/helpers/arclight/field_config_helpers.rb +26 -0
  119. data/app/helpers/arclight_helper.rb +55 -120
  120. data/app/models/arclight/document_downloads.rb +122 -0
  121. data/app/models/arclight/parent.rb +9 -9
  122. data/app/models/arclight/parents.rb +9 -4
  123. data/app/models/arclight/requests/aeon_external_request.rb +42 -0
  124. data/app/models/arclight/requests/aeon_web_ead.rb +52 -0
  125. data/app/models/arclight/requests/google_form.rb +8 -3
  126. data/app/models/concerns/arclight/catalog.rb +33 -11
  127. data/app/models/concerns/arclight/search_behavior.rb +22 -21
  128. data/app/models/concerns/arclight/solr_document.rb +88 -59
  129. data/app/presenters/arclight/show_presenter.rb +34 -7
  130. data/app/views/arclight/_requests.html.erb +7 -0
  131. data/app/views/arclight/repositories/_repository.html.erb +22 -41
  132. data/app/views/arclight/repositories/index.html.erb +5 -0
  133. data/app/views/arclight/repositories/show.html.erb +7 -8
  134. data/app/views/arclight/requests/_aeon_external_request_endpoint.html.erb +8 -0
  135. data/app/views/arclight/requests/_aeon_web_ead.html.erb +6 -0
  136. data/app/views/arclight/requests/_google_form.html.erb +4 -5
  137. data/app/views/catalog/_document_list.html.erb +8 -0
  138. data/app/views/catalog/_group.html.erb +4 -0
  139. data/app/views/catalog/_group_toggle.html.erb +10 -0
  140. data/app/views/catalog/_search_results_header.html.erb +3 -0
  141. data/app/views/catalog/hierarchy.html.erb +19 -0
  142. data/app/views/catalog/index.html.erb +16 -7
  143. data/app/views/shared/_breadcrumbs.html.erb +3 -15
  144. data/app/views/shared/_main_menu_links.html.erb +1 -1
  145. data/arclight.gemspec +18 -17
  146. data/config/breadcrumbs.rb +24 -0
  147. data/config/i18n-tasks.yml +11 -9
  148. data/config/importmap.rb +3 -0
  149. data/config/locales/arclight.en.yml +68 -34
  150. data/config/routes.rb +1 -1
  151. data/docker-compose.yml +16 -0
  152. data/lib/arclight/digital_object.rb +2 -1
  153. data/lib/arclight/engine.rb +22 -31
  154. data/lib/arclight/exceptions.rb +1 -0
  155. data/lib/arclight/hash_absolute_xpath.rb +13 -8
  156. data/lib/arclight/level_label.rb +46 -0
  157. data/lib/arclight/normalized_date.rb +5 -10
  158. data/lib/arclight/normalized_id.rb +7 -2
  159. data/lib/arclight/normalized_title.rb +3 -0
  160. data/lib/arclight/repository.rb +70 -28
  161. data/lib/arclight/routes/hierarchy.rb +19 -0
  162. data/lib/arclight/routes.rb +8 -0
  163. data/lib/arclight/traject/ead2_component_config.rb +335 -0
  164. data/lib/arclight/traject/ead2_config.rb +172 -331
  165. data/lib/arclight/traject/nokogiri_namespaceless_reader.rb +22 -0
  166. data/lib/arclight/version.rb +1 -1
  167. data/lib/arclight/year_range.rb +13 -4
  168. data/lib/arclight.rb +6 -1
  169. data/lib/generators/arclight/install_generator.rb +100 -10
  170. data/lib/generators/arclight/templates/arclight.scss +6 -3
  171. data/lib/generators/arclight/templates/catalog_controller.rb +237 -179
  172. data/lib/generators/arclight/templates/config/downloads.yml +12 -0
  173. data/lib/generators/arclight/templates/config/locales/arclight.en.yml +61 -0
  174. data/lib/generators/arclight/templates/config/repositories.yml +42 -31
  175. data/lib/generators/arclight/update_generator.rb +1 -1
  176. data/lib/tasks/index.rake +25 -30
  177. data/package.json +15 -9
  178. data/solr/conf/schema.xml +97 -328
  179. data/solr/conf/solrconfig.xml +99 -164
  180. data/tasks/arclight.rake +18 -9
  181. data/template.rb +6 -7
  182. metadata +188 -129
  183. data/.travis.yml +0 -28
  184. data/app/assets/javascripts/arclight/collection_context.js +0 -18
  185. data/app/assets/javascripts/arclight/collection_navigation.js +0 -117
  186. data/app/assets/javascripts/arclight/collection_scrollspy.js +0 -6
  187. data/app/assets/javascripts/arclight/component_ancestors.js +0 -56
  188. data/app/assets/javascripts/arclight/oembed_viewer.js +0 -46
  189. data/app/assets/javascripts/arclight/search_results.js +0 -15
  190. data/app/assets/javascripts/arclight/truncator.js.erb +0 -23
  191. data/app/assets/stylesheets/arclight/bootstrap_overrides.scss +0 -3
  192. data/app/assets/stylesheets/arclight/modules/sidebar.scss +0 -21
  193. data/app/controllers/concerns/arclight/field_config_helpers.rb +0 -86
  194. data/app/factories/blacklight_field_configuration_factory.rb +0 -29
  195. data/app/views/arclight/repositories/_in_person_repository.html.erb +0 -19
  196. data/app/views/arclight/viewers/_oembed.html.erb +0 -7
  197. data/app/views/catalog/_arclight_document_index_header.html.erb +0 -13
  198. data/app/views/catalog/_arclight_document_index_header_online_contents_default.html.erb +0 -0
  199. data/app/views/catalog/_arclight_index_compact_default.html.erb +0 -15
  200. data/app/views/catalog/_arclight_online_content_indicator.html.erb +0 -5
  201. data/app/views/catalog/_arclight_rangelimit.html.erb +0 -24
  202. data/app/views/catalog/_arclight_viewer_default.html.erb +0 -1
  203. data/app/views/catalog/_collection_contents.html.erb +0 -12
  204. data/app/views/catalog/_collection_count.html.erb +0 -7
  205. data/app/views/catalog/_collection_downloads.html.erb +0 -15
  206. data/app/views/catalog/_collection_online_contents.html.erb +0 -17
  207. data/app/views/catalog/_collection_overview.html.erb +0 -7
  208. data/app/views/catalog/_component_contents.html.erb +0 -16
  209. data/app/views/catalog/_component_overview.html.erb +0 -40
  210. data/app/views/catalog/_context_card.html.erb +0 -27
  211. data/app/views/catalog/_context_sidebar.html.erb +0 -8
  212. data/app/views/catalog/_custom_metadata.html.erb +0 -16
  213. data/app/views/catalog/_home.html.erb +0 -1
  214. data/app/views/catalog/_index_breadcrumb_default.html.erb +0 -3
  215. data/app/views/catalog/_index_default.html.erb +0 -17
  216. data/app/views/catalog/_index_header.html.erb +0 -7
  217. data/app/views/catalog/_index_header_hierarchy_default.html.erb +0 -42
  218. data/app/views/catalog/_index_header_online_contents_default.html.erb +0 -1
  219. data/app/views/catalog/_index_hierarchy_default.html.erb +0 -28
  220. data/app/views/catalog/_index_online_contents_default.html.erb +0 -6
  221. data/app/views/catalog/_results_histogram.html.erb +0 -15
  222. data/app/views/catalog/_search_results.html.erb +0 -31
  223. data/app/views/catalog/_show_breadcrumbs_default.html.erb +0 -21
  224. data/app/views/catalog/_show_collection.html.erb +0 -48
  225. data/app/views/catalog/_show_component_sidebar.html.erb +0 -12
  226. data/app/views/catalog/_show_default.html.erb +0 -42
  227. data/app/views/catalog/_show_sidebar.html.erb +0 -22
  228. data/app/views/catalog/_show_upper_metadata_collection.html.erb +0 -1
  229. data/app/views/catalog/_show_upper_metadata_default.html.erb +0 -14
  230. data/app/views/layouts/catalog_result.html.erb +0 -7
  231. data/app/views/shared/_context_sidebar.html.erb +0 -8
  232. data/app/views/shared/_header_navbar.html.erb +0 -65
  233. data/lib/arclight/custom_component.rb +0 -99
  234. data/lib/arclight/custom_document.rb +0 -93
  235. data/lib/arclight/indexer.rb +0 -9
  236. data/lib/arclight/shared_indexing_behavior.rb +0 -97
  237. data/lib/arclight/shared_terminology_behavior.rb +0 -65
  238. data/lib/arclight/solr_ead_indexer_ext.rb +0 -155
  239. data/lib/arclight/viewer.rb +0 -45
  240. data/lib/arclight/viewers/oembed.rb +0 -56
  241. data/lib/generators/arclight/templates/arclight.js +0 -2
  242. data/solr/conf/scripts.conf +0 -24
  243. data/vendor/assets/javascripts/responsiveTruncator.js +0 -69
  244. data/vendor/assets/javascripts/stickyfill.js +0 -480
  245. /data/app/assets/images/{blacklight → arclight}/logo.png +0 -0
  246. /data/{app/views/catalog/_arclight_document_index_header_hierarchy_default.html.erb → config/repositories.yml} +0 -0
@@ -1,117 +0,0 @@
1
- (function (global) {
2
- var CollectionNavigation;
3
- /**
4
- * Converts documents that should be used in a hierarchy, to highlighted
5
- * localized siblings.
6
- */
7
- function convertDocsForContext(id, $doc) {
8
- var newDocs;
9
- var $currentDoc;
10
- var $previousDocs;
11
- var $nextDocs;
12
- var headers = $doc.find('article div[data-document-id="' + id + '"]');
13
- if (headers.length === 0) {
14
- $.error('Document is missing id=' + id);
15
- }
16
- $currentDoc = $(headers[0].parentNode); // need article element
17
- $currentDoc.addClass('al-hierarchy-highlight');
18
-
19
- // Unlink the current component - just show the title
20
- $currentDoc.find('a').contents().unwrap();
21
-
22
- // We want to show 0-1 or 0-2 siblings depending on where highlighted component is
23
- $previousDocs = $currentDoc.prevUntil().slice(0, 2);
24
- $nextDocs = $currentDoc.nextUntil().slice(0, 2);
25
-
26
- if ($previousDocs.length > 0 && $nextDocs.length > 0) {
27
- // Case where there are siblings on both sides, show 1 each
28
- newDocs = $('<div>');
29
- newDocs.append($previousDocs.first());
30
- newDocs.append($currentDoc);
31
- newDocs.append($nextDocs.first());
32
- } else if ($previousDocs.length > 0) {
33
- // Case where there are only previous siblings, show 2 of them
34
- newDocs = $('<div>');
35
- newDocs.append($previousDocs.get().reverse()); // previous is not in the order we need
36
- newDocs.append($currentDoc);
37
- } else {
38
- // Case where there are only next siblings, show 2 of them
39
- newDocs = $('<div>');
40
- newDocs.append($currentDoc);
41
- newDocs.append($nextDocs);
42
- }
43
- // Cleanup to remove collapsible children stuff
44
- newDocs.find('.al-toggle-view-more').remove();
45
- newDocs.find('.collapse').remove();
46
- newDocs.find('hr').remove();
47
- return newDocs;
48
- }
49
-
50
- CollectionNavigation = {
51
- init: function (el) {
52
- var $el = $(el);
53
- var data = $el.data();
54
- // Add a placeholder so flashes of text are not as significant
55
- var placeholder = '<div class="al-hierarchy-placeholder">' +
56
- '<h3 class="col-md-9"></h3>' +
57
- '<p class="col-md-6"></p>' +
58
- '<p class="col-md-12"></p>' +
59
- '<p class="col-md-3"></p>' +
60
- '</div>';
61
- placeholder = new Array(3).join(placeholder);
62
- $el.html(placeholder);
63
- $.ajax({
64
- url: data.arclight.path,
65
- data: {
66
- 'f[component_level_isim][]': data.arclight.level,
67
- 'f[has_online_content_ssim][]': data.arclight.access,
68
- 'f[collection_sim][]': data.arclight.name,
69
- 'f[parent_ssi][]': data.arclight.parent,
70
- search_field: data.arclight.search_field,
71
- view: data.arclight.view || 'hierarchy'
72
- }
73
- }).done(function (response) {
74
- var resp = $.parseHTML(response);
75
- var $doc = $(resp);
76
- var showDocs = $doc.find('article.document');
77
- var newDocs = $doc.find('#documents');
78
-
79
- // Add a highlight class for the article matching the highlight id
80
- if (data.arclight.highlightId) {
81
- newDocs = convertDocsForContext(data.arclight.highlightId, $doc);
82
- }
83
-
84
- $el.hide().html(newDocs).fadeIn(500);
85
- if (showDocs.length > 0) {
86
- $el.trigger('navigation.contains.elements');
87
- }
88
- Blacklight.doBookmarkToggleBehavior();
89
- });
90
- }
91
- };
92
-
93
- global.CollectionNavigation = CollectionNavigation;
94
- }(this));
95
-
96
- Blacklight.onLoad(function () {
97
- 'use strict';
98
-
99
- $('.al-contents').each(function (i, element) {
100
- CollectionNavigation.init(element); // eslint-disable-line no-undef
101
- });
102
-
103
- $('.al-contents').on('navigation.contains.elements', function (e) {
104
- var toEnable = $('[data-hierarchy-enable-me]');
105
- toEnable.removeClass('disabled');
106
- toEnable.text('Contents');
107
-
108
- $(e.target).find('.collapse').on('show.bs.collapse', function (ee) {
109
- var $newTarget = $(ee.target);
110
- $newTarget.find('.al-contents').each(function (i, element) {
111
- CollectionNavigation.init(element); // eslint-disable-line no-undef
112
- // Turn off additional ajax requests on show
113
- $newTarget.off('show.bs.collapse');
114
- });
115
- });
116
- });
117
- });
@@ -1,6 +0,0 @@
1
- Blacklight.onLoad(function () {
2
- 'use strict';
3
-
4
- $('.al-sticky-sidebar').Stickyfill();
5
- $('body').scrollspy({ target: '.al-sidebar-navigation-overview' });
6
- });
@@ -1,56 +0,0 @@
1
- (function (global) {
2
- var ComponentAncestors = {
3
- init: function (el) {
4
- var $el = $(el);
5
- var data = $el.data();
6
- var ancestors = $('<div>');
7
- var collectionId = data.arclightAncestors.shift();
8
- var allDone = $.Deferred();
9
-
10
- data.arclightAncestors.forEach(function (id, i) {
11
- var requestId = collectionId + id;
12
- var currentDiv = $('<div class="documents-hierarchy extra-indent al-hierarchy-level-' + (i) + '">');
13
- ancestors.append(currentDiv);
14
-
15
- $.ajax({
16
- url: data.arclightPath,
17
- data: {
18
- q: 'id:' + requestId,
19
- search_field: 'all_fields',
20
- view: 'hierarchy'
21
- }
22
- }).done(function (response) {
23
- var resp = $.parseHTML(response);
24
- var $doc = $(resp);
25
- var thisAncestor = $doc.find('article.document-position-0');
26
-
27
- // Remove collapsible stuff
28
- thisAncestor.find('.al-toggle-view-more').remove();
29
- thisAncestor.find('.collapse').remove();
30
- thisAncestor.find('hr').remove();
31
-
32
- currentDiv.append(thisAncestor);
33
- if (i + 1 === data.arclightAncestors.length) {
34
- allDone.resolve();
35
- }
36
- });
37
- });
38
-
39
- // Wait for all requests to finish
40
- allDone.done(function () {
41
- $el.html(ancestors);
42
- });
43
- }
44
- };
45
-
46
- global.ComponentAncestors = ComponentAncestors;
47
- }(this));
48
-
49
-
50
- Blacklight.onLoad(function () {
51
- 'use strict';
52
-
53
- $('[data-arclight-ancestors]').each(function (i, e) {
54
- ComponentAncestors.init(e); // eslint-disable-line no-undef
55
- });
56
- });
@@ -1,46 +0,0 @@
1
- Blacklight.onLoad(function () {
2
- 'use strict';
3
-
4
- var onlineContentTabSelector = '[data-arclight-online-content-tab="true"]';
5
- var oEmbedViewerSelector = '[data-arclight-oembed="true"]';
6
-
7
- $(onlineContentTabSelector).on('shown.bs.tab', function () {
8
- var $viewerElements = $(oEmbedViewerSelector);
9
- if ($viewerElements.length === 0) {
10
- return;
11
- }
12
-
13
- $viewerElements.each(function (i, element) {
14
- var $el = $(element);
15
- var loadedAttr = $el.attr('loaded');
16
- var data = $el.data();
17
- var resourceUrl = data.arclightOembedUrl;
18
- if (loadedAttr && loadedAttr === 'loaded') {
19
- return;
20
- }
21
-
22
- $.ajax({
23
- url: resourceUrl,
24
- dataType: 'html'
25
- }).done(function (response) {
26
- var links = $('<div>' + response.match(/<link .*>/g).join('') + '</div>'); // Parse out link elements so image assets are not loaded
27
- var oEmbedEndPoint = links.find('link[rel="alternate"][type="application/json+oembed"]').prop('href');
28
-
29
- if (!oEmbedEndPoint || oEmbedEndPoint.length === 0) {
30
- return;
31
- }
32
-
33
- $.ajax({
34
- url: oEmbedEndPoint
35
- }).done(function (oEmbedResponse) {
36
- if (oEmbedResponse.html) {
37
- $el.hide()
38
- .html(oEmbedResponse.html)
39
- .fadeIn(500);
40
- $el.attr('loaded', 'loaded');
41
- }
42
- });
43
- });
44
- });
45
- });
46
- });
@@ -1,15 +0,0 @@
1
- Blacklight.onLoad(function () {
2
- 'use strict';
3
-
4
- var histogramContent = $('#al-date-range-histogram-content');
5
- var showSpan = $('#al-date-range-histogram-show');
6
- var hideSpan = $('#al-date-range-histogram-hide');
7
- histogramContent.on('show.bs.collapse', function () {
8
- showSpan.attr('hidden', 'hidden');
9
- hideSpan.removeAttr('hidden');
10
- });
11
- histogramContent.on('hide.bs.collapse', function () {
12
- hideSpan.attr('hidden', 'hidden');
13
- showSpan.removeAttr('hidden');
14
- });
15
- });
@@ -1,23 +0,0 @@
1
- Blacklight.onLoad(function () {
2
- 'use strict';
3
-
4
- // Any element on page load
5
- $('[data-arclight-truncate="true"]').each(function (i, e) {
6
- $(e).responsiveTruncate({
7
- more: "<%= I18n.t 'arclight.truncation.view_more' %>",
8
- less: "<%= I18n.t 'arclight.truncation.view_less' %>"
9
- });
10
- });
11
-
12
- // When elements get loaded from hierarchy
13
- $('.al-contents').on('navigation.contains.elements', function () {
14
- $('a[data-toggle="pill"]').on('shown.bs.tab', function () {
15
- $('[data-arclight-truncate="true"]').each(function (_, el) {
16
- $(el).responsiveTruncate({
17
- more: "<%= I18n.t 'arclight.truncation.view_more' %>",
18
- less: "<%= I18n.t 'arclight.truncation.view_less' %>"
19
- });
20
- });
21
- });
22
- });
23
- });
@@ -1,3 +0,0 @@
1
- .nav.nav-pills {
2
- margin-bottom: $spacer;
3
- }
@@ -1,21 +0,0 @@
1
- .al-in-person-repository-location {
2
- clear: left;
3
- }
4
-
5
- .al-digital-object {
6
- margin-bottom: $spacer;
7
-
8
- .al-digital-object-label {
9
- margin-bottom: ($spacer / 2);
10
- }
11
- }
12
-
13
- // Hiding this from display since we don't need it.
14
- dt.blacklight-digital_objects_ssm {
15
- display: none;
16
- }
17
-
18
- .al-sticky-sidebar .al-request-button {
19
- border: 0;
20
- padding-left: 0;
21
- }
@@ -1,86 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Arclight
4
- ##
5
- # A module to add configuration helpers for certain fields used by Arclight
6
- module FieldConfigHelpers
7
- extend ActiveSupport::Concern
8
- include ActionView::Helpers::OutputSafetyHelper
9
- include ActionView::Helpers::TagHelper
10
-
11
- included do
12
- if respond_to?(:helper_method)
13
- helper_method :repository_config_present
14
- helper_method :request_config_present
15
- helper_method :context_sidebar_repository
16
- helper_method :before_you_visit_note_present
17
- helper_method :context_sidebar_visit_note
18
- helper_method :context_sidebar_containers_request
19
- helper_method :item_requestable?
20
- helper_method :paragraph_separator
21
- helper_method :link_to_name_facet
22
- end
23
- end
24
-
25
- def repository_config_present(_, document)
26
- document.repository_config.present?
27
- end
28
-
29
- def item_requestable?(_, options)
30
- document = options[:document]
31
- request_config_present('', document) && document.containers.present?
32
- end
33
-
34
- def request_config_present(var, document)
35
- repository_config_present(var, document) &&
36
- document.repository_config.google_request_url.present? &&
37
- document.repository_config.google_request_mappings.present?
38
- end
39
-
40
- def context_sidebar_repository(args)
41
- document = args[:document]
42
- ApplicationController.renderer.render(
43
- 'arclight/repositories/_in_person_repository',
44
- layout: false,
45
- locals: { repository: document.repository_config }
46
- )
47
- end
48
-
49
- def before_you_visit_note_present(_, document)
50
- document.repository_config && document.repository_config.visit_note.present?
51
- end
52
-
53
- def context_sidebar_visit_note(args)
54
- document = args[:document]
55
- document.repository_config.visit_note
56
- end
57
-
58
- def context_sidebar_containers_request(args)
59
- document = args[:document]
60
- presenter = Arclight::ShowPresenter.new(document, view_context)
61
- ApplicationController.renderer.render(
62
- 'arclight/requests/_google_form',
63
- layout: false,
64
- locals: {
65
- google_form: Arclight::Requests::GoogleForm.new(document, presenter, solr_document_url(document))
66
- }
67
- )
68
- end
69
-
70
- def paragraph_separator(args)
71
- safe_join(args[:value].map { |paragraph| content_tag(:p, paragraph) })
72
- end
73
-
74
- def link_to_name_facet(args)
75
- options = args[:config].try(:separator_options) || {}
76
- values = args[:value] || []
77
-
78
- values.map do |value|
79
- view_context.link_to(
80
- value,
81
- view_context.search_action_path(f: { names_ssim: [value] })
82
- )
83
- end.to_sentence(options).html_safe
84
- end
85
- end
86
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ##
4
- # A factory to return blacklight field configurations given a field key
5
- # that represents a field group (e.g. summary_fields, access_fields, etc)
6
- class BlacklightFieldConfigurationFactory
7
- def self.for(config:, field:, field_group:)
8
- new(config: config, field: field, field_group: field_group).field_config
9
- end
10
-
11
- def initialize(config:, field:, field_group:)
12
- @config = config
13
- @field = field
14
- @field_group = field_group
15
- end
16
-
17
- def field_config
18
- return null_field unless config.respond_to?(:"#{field_group}s")
19
- config.send(:"#{field_group}s").fetch(field) { null_field }
20
- end
21
-
22
- private
23
-
24
- attr_reader :config, :field, :field_group
25
-
26
- def null_field
27
- Blacklight::Configuration::NullField.new(field)
28
- end
29
- end
@@ -1,19 +0,0 @@
1
- <div class='al-in-person-repository-name'>
2
- <% if repository.thumbnail_url %>
3
- <%= image_tag repository.thumbnail_url, alt: '', class: 'img-fluid float-left' %>
4
- <% end %>
5
- <div>
6
- <%= link_to(repository.name, arclight_engine.repository_path(repository.slug)) %>
7
- </div>
8
- </div>
9
- <div class='al-in-person-repository-location'>
10
- <address>
11
- <% %i[building address1 address2 city_state_zip_country phone contact_info].each do |f| %>
12
- <% if repository.send(f).present? %>
13
- <div class='al-repository-contact-<%= f %>'>
14
- <%= repository.send(f) %>
15
- </div>
16
- <% end %>
17
- <% end %>
18
- </address>
19
- </div>
@@ -1,7 +0,0 @@
1
- <% viewer.resources.each do |resource| %>
2
- <%= content_tag(:div, viewer.attributes_for(resource)) do %>
3
- <div class='al-digital-object'>
4
- <%= link_to(resource.label, resource.href) %>
5
- </div>
6
- <% end %>
7
- <% end %>
@@ -1,13 +0,0 @@
1
- <% document_actions = capture do %>
2
- <% # bookmark functions for items/docs -%>
3
- <%= render_index_doc_actions document, wrapping_class: "col-sm-3 col-md-5 col-lg-4 text-right" %>
4
- <% end %>
5
-
6
- <div class='al-document-title-bar'>
7
- <div class='row'>
8
- <div class='col-sm-9 col-md-7 col-lg-8'>
9
- <%= document.repository_and_unitid %>
10
- </div>
11
- <%= document_actions %>
12
- </div>
13
- </div>
@@ -1,15 +0,0 @@
1
- <div class="row">
2
- <div class="col-5">
3
- <% counter = document_counter_with_offset(document_counter) %>
4
- <%= link_to_document document, document_show_link_field(document), counter: counter %>
5
- </div>
6
- <div class="col-5">
7
- <%= render_document_partial(document, :index_breadcrumb) %>
8
- <div class='al-repository-footer'>
9
- <%= document.repository %>
10
- </div>
11
- </div>
12
- <div class="col-2">
13
- <%= render_document_partial(document, :arclight_online_content_indicator) %>
14
- </div>
15
- </div>
@@ -1,5 +0,0 @@
1
- <% if document.online_content? %>
2
- <span class='badge badge-success'>
3
- <%= t(:'arclight.views.online_content_indicator') %>
4
- </span>
5
- <% end %>
@@ -1,24 +0,0 @@
1
- <% # Arclight Customized version of https://github.com/projectblacklight/blacklight_range_limit/blob/master/app/views/blacklight_range_limit/_range_limit_panel.html.erb %>
2
-
3
- <% # requires solr_config local passed in
4
- field_config = range_config(solr_field)
5
- %>
6
-
7
- <div class='limit_content range_limit'>
8
- <% unless params['range'] && params['range'][solr_field] && params['range'][solr_field]['missing'] %>
9
- <div class='profile'>
10
- <% if (min = range_results_endpoint(solr_field, :min)) &&
11
- (max = range_results_endpoint(solr_field, :max)) %>
12
- <% if field_config[:segments] != false %>
13
- <div class="distribution subsection <%= 'chart_js' unless field_config[:chart_js] == false %>">
14
- <% if solr_range_queries_to_a(solr_field).length > 0 %>
15
- <%= render(partial: 'blacklight_range_limit/range_segments', locals: {solr_field: solr_field}) %>
16
- <% else %>
17
- <%= link_to('View distribution', search_state.to_h.merge(action: 'range_limit', range_field: solr_field, range_start: min, range_end: max), :class => 'load_distribution') %>
18
- <% end %>
19
- </div>
20
- <% end %>
21
- <% end %>
22
- </div>
23
- <% end %>
24
- </div>
@@ -1 +0,0 @@
1
- <%= @document.digital_object_viewer %>
@@ -1,12 +0,0 @@
1
- <% document ||= @document %>
2
-
3
- <h2 class="sr-only">Collection inventory</h2>
4
- <%= content_tag(
5
- :div, '',
6
- class: 'al-contents',
7
- data: {
8
- arclight: {
9
- hierarchy: true, level: 1, path: search_catalog_path, name: document.collection_name
10
- }
11
- }
12
- ) %>
@@ -1,7 +0,0 @@
1
- <% if collection_active? %>
2
- <div class='al-collection-count'>
3
- <p class='lead'>
4
- <%= pluralize(number_with_delimiter(collection_count), t('arclight.views.index.collection_search.count')) %>
5
- </p>
6
- </div>
7
- <% end %>
@@ -1,15 +0,0 @@
1
- <% if downloads.present? && (downloads[:pdf].present? || downloads[:ead].present?) %>
2
- <div class='dropdown al-collection-actions-menu'>
3
- <button class='btn btn-secondary btn-sm dropdown-toggle' type="button" id="download-dropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
4
- <%= t 'arclight.views.show.download.default' %>
5
- </button>
6
- <div class="dropdown-menu dropdown-menu-right" aria-labelledby="download-dropdown">
7
- <% if downloads[:pdf].present? %>
8
- <a class="dropdown-item" href="<%= downloads[:pdf][:href] %>"><%= t('arclight.views.show.download.pdf', size: downloads[:pdf][:size]) %></a>
9
- <% end %>
10
- <% if downloads[:ead].present? %>
11
- <a class="dropdown-item" href="<%= downloads[:ead][:href] %>"><%= t('arclight.views.show.download.ead', size: downloads[:ead][:size]) %></a>
12
- <% end %>
13
- </div>
14
- </div>
15
- <% end %>
@@ -1,17 +0,0 @@
1
- <% if document.digital_objects.present? %>
2
- <%= render_document_partial(document, 'arclight_viewer') %>
3
- <% elsif document.online_content? %>
4
- <%= content_tag(
5
- :div, '',
6
- class: 'al-contents',
7
- data: {
8
- arclight: {
9
- path: search_catalog_path,
10
- name: document.collection_name,
11
- access: 'online',
12
- view: 'online_contents',
13
- search_field: 'within_collection'
14
- }
15
- }
16
- ) %>
17
- <% end %>
@@ -1,7 +0,0 @@
1
- <h2 class="sr-only">Collection description</h2>
2
- <% unless blacklight_config.show.metadata_partials.nil? %>
3
- <% blacklight_config.show.metadata_partials.each do |metadata| %>
4
- <% next unless fields_have_content?(@document, metadata) %>
5
- <%= render partial: 'custom_metadata', locals: { document: @document, field_accessor: metadata } %>
6
- <% end %>
7
- <% end %>
@@ -1,16 +0,0 @@
1
- <% document ||= @document %>
2
- <% @sub_level ||= document.component_level + 1 %>
3
-
4
-
5
- <h2 class="sr-only">Component inventory</h2>
6
- <div class="component-level-only">
7
- <%= content_tag(
8
- :div, '',
9
- class: 'al-contents',
10
- data: {
11
- arclight: {
12
- hierarchy: true, level: @sub_level, path: search_catalog_path, name: document.collection_name, parent: document.reference
13
- }
14
- }
15
- ) %>
16
- </div>
@@ -1,40 +0,0 @@
1
- <h2 class="sr-only">Component description</h2>
2
- <!-- Section below will be moved into its own partial later -->
3
- <%= content_tag(:div, id: t("arclight.views.show.sections.collection_context_field").parameterize) do %>
4
- <h3 class='al-show-sub-heading'>
5
- <%= t("arclight.views.show.sections.collection_context_field") %>
6
- </h3>
7
- <%= content_tag(
8
- :div, '',
9
- class: 'al-context',
10
- data: {
11
- arclight_collection_context: true,
12
- arclight_collection_context_url: solr_document_path(
13
- normalize_id(@document.eadid)
14
- )
15
- }
16
- ) %>
17
- <%= content_tag(
18
- :div, '',
19
- class: 'al-ancestors',
20
- data: {
21
- arclight_ancestors: @document.parent_ids,
22
- arclight_path: search_catalog_path(hierarchy_context: 'component')
23
- }
24
- ) %>
25
- <%= content_tag(
26
- :div, '',
27
- class: "al-contents al-hierarchy-level-#{@document.component_level} extra-indent documents-hierarchy",
28
- data: {
29
- arclight: {
30
- hierarchy: true,
31
- level: @document.component_level,
32
- path: search_catalog_path(hierarchy_context: 'component'),
33
- name: @document.collection_name,
34
- parent: @document.parent_ids.last,
35
- highlightId: @document.id
36
- }
37
- }
38
- ) %>
39
-
40
- <% end %>
@@ -1,27 +0,0 @@
1
- <% doc_presenter = show_presenter(document).with_field_group(field_accessor) %>
2
- <div class="card">
3
- <div class="card-header" role="tab" id="heading<%= card_index %>">
4
- <h3 class="mb-0">
5
- <a data-toggle="collapse" data-parent="#accordion" href="#collapse<%= card_index %>" aria-expanded="<%= card_index.zero? %>" aria-controls="collapse<%= card_index %>">
6
- <%= t("arclight.views.show.context_sidebar.#{field_accessor}") %>
7
- </a>
8
- </h3>
9
- </div>
10
-
11
- <div id="collapse<%= card_index %>" class="collapse <%= 'show' if card_index.zero? %>" role="tabpanel" aria-labelledby="heading<%= card_index %>">
12
- <div class="card-body">
13
- <dl>
14
- <% generic_document_fields(field_accessor).each do |field_name, field| %>
15
- <% if generic_should_render_field?(field_accessor, document, field) %>
16
- <dt class="blacklight-<%= field_name.parameterize %>">
17
- <%= generic_render_document_field_label(field_accessor, document, field: field_name) %>
18
- </dt>
19
- <dd class="blacklight-<%= field_name.parameterize %>">
20
- <%= doc_presenter.field_value field %>
21
- </dd>
22
- <% end %>
23
- <% end %>
24
- </dl>
25
- </div>
26
- </div>
27
- </div>