arclight 0.1.4 → 0.3.3

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 (166) hide show
  1. checksums.yaml +5 -5
  2. data/.all-contributorsrc +450 -0
  3. data/.babelrc +3 -0
  4. data/.codeclimate.yml +5 -0
  5. data/.eslintrc +3 -0
  6. data/.gitignore +1 -0
  7. data/.rubocop.yml +20 -42
  8. data/.rubocop_todo.yml +139 -0
  9. data/.travis.yml +24 -20
  10. data/CONTRIBUTORS.md +79 -0
  11. data/README.md +34 -23
  12. data/Rakefile +0 -1
  13. data/app/assets/images/blacklight/bookmark.svg +1 -0
  14. data/app/assets/images/blacklight/collection.svg +5 -0
  15. data/app/assets/images/blacklight/compact.svg +1 -25
  16. data/app/assets/images/blacklight/container.svg +5 -0
  17. data/app/assets/images/blacklight/ead.svg +1 -0
  18. data/app/assets/images/blacklight/file.svg +5 -0
  19. data/app/assets/images/blacklight/folder.svg +1 -0
  20. data/app/assets/images/blacklight/list.svg +1 -0
  21. data/app/assets/images/blacklight/minus.svg +1 -0
  22. data/app/assets/images/blacklight/online.svg +5 -0
  23. data/app/assets/images/blacklight/pdf.svg +1 -0
  24. data/app/assets/images/blacklight/plus.svg +1 -0
  25. data/app/assets/images/blacklight/repository.svg +1 -0
  26. data/app/assets/javascripts/arclight/arclight.js +1 -2
  27. data/app/assets/javascripts/arclight/collection_navigation.js +36 -50
  28. data/app/assets/javascripts/arclight/collection_scrollspy.js +1 -1
  29. data/app/assets/javascripts/arclight/context_navigation.js +386 -0
  30. data/app/assets/javascripts/arclight/oembed_viewer.js +11 -4
  31. data/app/assets/javascripts/arclight/truncator.js.erb +8 -2
  32. data/app/assets/stylesheets/arclight/application.scss +4 -1
  33. data/app/assets/stylesheets/arclight/bootstrap_overrides.scss +23 -0
  34. data/app/assets/stylesheets/arclight/modules/context_navigation.scss +75 -0
  35. data/app/assets/stylesheets/arclight/modules/hierarchy_and_online_contents.scss +34 -38
  36. data/app/assets/stylesheets/arclight/modules/highlights.scss +2 -1
  37. data/app/assets/stylesheets/arclight/modules/icons.scss +4 -0
  38. data/app/assets/stylesheets/arclight/modules/layout.scss +149 -11
  39. data/app/assets/stylesheets/arclight/modules/mastheads.scss +60 -5
  40. data/app/assets/stylesheets/arclight/modules/repositories.scss +1 -5
  41. data/app/assets/stylesheets/arclight/modules/repository_card.scss +6 -7
  42. data/app/assets/stylesheets/arclight/modules/search_results.scss +145 -24
  43. data/app/assets/stylesheets/arclight/modules/show_collection.scss +38 -59
  44. data/app/assets/stylesheets/arclight/responsive.scss +13 -0
  45. data/app/assets/stylesheets/arclight/variables.scss +21 -1
  46. data/app/controllers/concerns/arclight/ead_format_helpers.rb +225 -0
  47. data/app/controllers/concerns/arclight/field_config_helpers.rb +23 -7
  48. data/app/factories/blacklight_field_configuration_factory.rb +1 -0
  49. data/app/helpers/arclight_helper.rb +198 -36
  50. data/app/models/arclight/document_downloads.rb +125 -0
  51. data/app/models/arclight/parent.rb +4 -2
  52. data/app/models/arclight/parents.rb +6 -4
  53. data/app/models/arclight/requests/aeon_external_request.rb +42 -0
  54. data/app/models/arclight/requests/aeon_web_ead.rb +47 -0
  55. data/app/models/arclight/requests/google_form.rb +2 -2
  56. data/app/models/concerns/arclight/catalog.rb +14 -2
  57. data/app/models/concerns/arclight/search_behavior.rb +27 -12
  58. data/app/models/concerns/arclight/solr_document.rb +29 -7
  59. data/app/views/arclight/_requests.html.erb +7 -0
  60. data/app/views/arclight/repositories/_in_person_repository.html.erb +2 -2
  61. data/app/views/arclight/repositories/_repository.html.erb +2 -2
  62. data/app/views/arclight/repositories/_repository_contact.html.erb +9 -0
  63. data/app/views/arclight/repositories/index.html.erb +3 -0
  64. data/app/views/arclight/repositories/show.html.erb +5 -4
  65. data/app/views/arclight/requests/_aeon_external_request_endpoint.html.erb +9 -0
  66. data/app/views/arclight/requests/_aeon_web_ead.html.erb +7 -0
  67. data/app/views/arclight/requests/_google_form.html.erb +2 -1
  68. data/app/views/arclight/viewers/_oembed.html.erb +2 -1
  69. data/app/views/catalog/_access_contents.html.erb +15 -0
  70. data/app/views/catalog/_arclight_abstract_or_scope.html.erb +5 -0
  71. data/app/views/catalog/_arclight_bookmark_control.html.erb +38 -0
  72. data/app/views/catalog/_arclight_document_header_icon.html.erb +1 -0
  73. data/app/views/catalog/_arclight_index_compact_default.html.erb +18 -11
  74. data/app/views/catalog/_arclight_index_default.html.erb +45 -0
  75. data/app/views/catalog/_arclight_index_group_document_compact_default.html.erb +19 -0
  76. data/app/views/catalog/_arclight_index_group_document_default.html.erb +18 -0
  77. data/app/views/catalog/_arclight_online_content_indicator.html.erb +1 -3
  78. data/app/views/catalog/_collection_contents.html.erb +2 -10
  79. data/app/views/catalog/_collection_context.html.erb +15 -0
  80. data/app/views/catalog/_collection_context_nav.html.erb +12 -0
  81. data/app/views/catalog/_collection_online_contents.html.erb +3 -3
  82. data/app/views/catalog/_component_context.html.erb +5 -0
  83. data/app/views/catalog/_containers.html.erb +3 -0
  84. data/app/views/catalog/_context_card.html.erb +1 -1
  85. data/app/views/catalog/_context_sidebar.html.erb +2 -2
  86. data/app/views/catalog/_custom_metadata.html.erb +1 -1
  87. data/app/views/catalog/_document_downloads.html.erb +14 -0
  88. data/app/views/catalog/_group.html.erb +21 -0
  89. data/app/views/catalog/_group_header_compact_default.html.erb +15 -0
  90. data/app/views/catalog/_group_header_default.html.erb +20 -0
  91. data/app/views/catalog/_group_toggle.html.erb +10 -0
  92. data/app/views/catalog/_home.html.erb +1 -1
  93. data/app/views/catalog/_index_breadcrumb_default.html.erb +5 -2
  94. data/app/views/catalog/_index_collection_context_default.html.erb +53 -0
  95. data/app/views/catalog/_index_default.html.erb +1 -1
  96. data/app/views/catalog/_index_header.html.erb +3 -3
  97. data/app/views/catalog/_index_online_contents_default.html.erb +1 -1
  98. data/app/views/catalog/_online_content_label.html.erb +5 -0
  99. data/app/views/catalog/_search_form.html.erb +34 -0
  100. data/app/views/catalog/_search_results.html.erb +1 -4
  101. data/app/views/catalog/_show_actions_box_default.html.erb +27 -0
  102. data/app/views/catalog/_show_breadcrumbs_default.html.erb +5 -6
  103. data/app/views/catalog/_show_collection.html.erb +42 -24
  104. data/app/views/catalog/_show_default.html.erb +64 -26
  105. data/app/views/catalog/_show_upper_metadata_collection.html.erb +1 -0
  106. data/app/views/catalog/_show_upper_metadata_default.html.erb +14 -0
  107. data/app/views/catalog/_sort_and_per_page.html.erb +8 -0
  108. data/app/views/catalog/_within_collection_dropdown.html.erb +26 -0
  109. data/app/views/shared/_breadcrumbs.html.erb +4 -4
  110. data/app/views/shared/_context_sidebar.html.erb +2 -2
  111. data/app/views/shared/_header_navbar.html.erb +51 -43
  112. data/app/views/shared/_main_menu_links.html.erb +1 -1
  113. data/app/views/shared/_show_breadcrumbs.html.erb +27 -0
  114. data/arclight.gemspec +15 -12
  115. data/config/i18n-tasks.yml +133 -0
  116. data/config/locales/arclight.en.yml +89 -55
  117. data/config/repositories.yml +0 -0
  118. data/lib/arclight/engine.rb +23 -12
  119. data/lib/arclight/hash_absolute_xpath.rb +61 -0
  120. data/lib/arclight/level_label.rb +46 -0
  121. data/lib/arclight/missing_id_strategy.rb +21 -0
  122. data/lib/arclight/normalized_date.rb +21 -12
  123. data/lib/arclight/normalized_id.rb +1 -0
  124. data/lib/arclight/normalized_title.rb +1 -0
  125. data/lib/arclight/repository.rb +61 -25
  126. data/lib/arclight/traject/ead2_config.rb +495 -0
  127. data/lib/arclight/traject/nokogiri_namespaceless_reader.rb +22 -0
  128. data/lib/arclight/version.rb +1 -1
  129. data/lib/arclight/viewers/oembed.rb +1 -0
  130. data/lib/arclight/year_range.rb +9 -1
  131. data/lib/generators/arclight/install_generator.rb +34 -3
  132. data/lib/generators/arclight/templates/catalog_controller.rb +162 -131
  133. data/lib/generators/arclight/templates/config/downloads.yml +12 -0
  134. data/lib/generators/arclight/templates/config/repositories.yml +20 -2
  135. data/lib/generators/arclight/update_generator.rb +1 -1
  136. data/lib/tasks/index.rake +19 -19
  137. data/package.json +8 -1
  138. data/solr/conf/schema.xml +56 -292
  139. data/solr/conf/solrconfig.xml +40 -125
  140. data/tasks/arclight.rake +6 -1
  141. data/template.rb +1 -1
  142. data/vendor/assets/javascripts/responsiveTruncator.js +2 -2
  143. metadata +159 -60
  144. data/app/assets/javascripts/arclight/collection_context.js +0 -18
  145. data/app/assets/javascripts/arclight/component_ancestors.js +0 -56
  146. data/app/assets/stylesheets/arclight/modules/sidebar.scss +0 -21
  147. data/app/views/catalog/_arclight_document_show_header.html.erb +0 -15
  148. data/app/views/catalog/_arclight_document_show_header_collection.html.erb +0 -12
  149. data/app/views/catalog/_collection_count.html.erb +0 -7
  150. data/app/views/catalog/_collection_downloads.html.erb +0 -15
  151. data/app/views/catalog/_collection_overview.html.erb +0 -7
  152. data/app/views/catalog/_component_overview.html.erb +0 -46
  153. data/app/views/catalog/_index_header_hierarchy_default.html.erb +0 -42
  154. data/app/views/catalog/_index_hierarchy_default.html.erb +0 -28
  155. data/app/views/catalog/_results_histogram.html.erb +0 -10
  156. data/app/views/catalog/_search_within_form.html.erb +0 -16
  157. data/app/views/catalog/_show_component_sidebar.html.erb +0 -12
  158. data/app/views/catalog/_show_header.html.erb +0 -5
  159. data/app/views/catalog/_show_sidebar.html.erb +0 -30
  160. data/lib/arclight/custom_component.rb +0 -99
  161. data/lib/arclight/custom_document.rb +0 -93
  162. data/lib/arclight/indexer.rb +0 -9
  163. data/lib/arclight/shared_indexing_behavior.rb +0 -97
  164. data/lib/arclight/shared_terminology_behavior.rb +0 -65
  165. data/lib/arclight/solr_ead_indexer_ext.rb +0 -159
  166. data/lib/generators/arclight/templates/arclight.js +0 -2
@@ -0,0 +1,8 @@
1
+ <% # overidden from Blacklight to handle our responsive needs %>
2
+ <div id="sortAndPerPage" class="sort-pagination clearfix">
3
+ <div>
4
+ <%= render partial: "paginate_compact", object: @response if show_pagination? %>
5
+ </div>
6
+ <%= render partial: 'group_toggle' unless current_page?(controller: 'bookmarks') %>
7
+ <%= render_results_collection_tools wrapping_class: "search-widgets float-md-right" %>
8
+ </div>
@@ -0,0 +1,26 @@
1
+ <div class="input-group within-collection-dropdown flex-nowrap flex-shrink-1 mb-2 mb-md-0 mr-md-2">
2
+ <span class="input-group-prepend">
3
+ <label class="input-group-text" for="within_collection">
4
+ <%= t('arclight.within_collection_dropdown.label_html') %>
5
+ </label>
6
+ </span>
7
+ <select
8
+ id="within_collection"
9
+ class="custom-select search-field rounded-right"
10
+ <%= 'name="f[collection_sim][]"'.html_safe if within_collection_context? %>
11
+ >
12
+ <option
13
+ <%= "selected" unless within_collection_context? %>
14
+ value=""
15
+ >
16
+ <%= t('arclight.within_collection_dropdown.all_collections') %>
17
+ </option>
18
+ <option
19
+ value="<%= Array(params.dig(:f, :collection_sim)).first || @document && @document.collection_name %>"
20
+ <%= 'selected' if within_collection_context? %>
21
+ <%= 'disabled' unless within_collection_context? %>
22
+ >
23
+ <%= t('arclight.within_collection_dropdown.this_collection') %>
24
+ </option>
25
+ </select>
26
+ </div>
@@ -1,15 +1,15 @@
1
- <div class='al-search-breadcrumb'>
1
+ <nav class='al-search-breadcrumb' role='navigation' aria-label=<%= t('arclight.breadcrumbs.aria_label') %> >
2
2
  <%= link_to t('arclight.routes.home'), root_path %>
3
- <%= t('arclight.breadcrumb_separator') %>
3
+ <span aria-hidden="true"><%= t('arclight.breadcrumb_separator') %></span>
4
4
  <% if collection_active? %>
5
5
  <%= t('arclight.routes.collections') %>
6
6
  <% elsif on_repositories_index? %>
7
7
  <%= t('arclight.routes.repositories') %>
8
8
  <% elsif on_repositories_show? %>
9
9
  <%= link_to t('arclight.routes.repositories'), arclight_engine.repositories_path %>
10
- <%= t('arclight.breadcrumb_separator') %>
10
+ <span aria-hidden="true"><%= t('arclight.breadcrumb_separator') %></span>
11
11
  <%= @repository.name %>
12
12
  <% else %>
13
13
  <%= t('arclight.routes.search_results') %>
14
14
  <% end %>
15
- </div>
15
+ </nav>
@@ -1,6 +1,6 @@
1
- <% unless blacklight_config.show.context_sidebar_items.nil? %>
1
+ <% unless blacklight_config.show.context_access_tab_items.nil? %>
2
2
  <div id="accordion" role="tablist" aria-multiselectable="true">
3
- <% items = blacklight_config.show.context_sidebar_items.select { |i| fields_have_content?(@document, i) } %>
3
+ <% items = blacklight_config.show.context_access_tab_items.select { |i| fields_have_content?(@document, i) } %>
4
4
  <% items.each_with_index do |item, index| %>
5
5
  <%= render partial: 'context_card', locals: { document: @document, field_accessor: item, card_index: index} %>
6
6
  <% end %>
@@ -1,53 +1,61 @@
1
- <nav class="navbar navbar-expand-md navbar-dark bg-dark topbar" role="navigation">
2
- <div class="<%= container_classes %>">
3
- <%= link_to application_name, root_path, class: "navbar-brand" %>
4
- <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#user-util-collapse" aria-controls="user-util-collapse" aria-expanded="false" aria-label="Toggle navigation">
5
- <span class="navbar-toggler-icon"></span>
6
- </button>
7
-
8
-
1
+ <header>
2
+ <nav class="navbar navbar-expand-md navbar-dark bg-dark topbar" aria-label="utilities" role="navigation">
3
+ <div class="<%= container_classes %>">
4
+ <%= link_to application_name, root_path, class: "navbar-brand" %>
5
+ <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#user-util-collapse" aria-controls="user-util-collapse" aria-expanded="false" aria-label="Toggle navigation">
6
+ <span class="navbar-toggler-icon"></span>
7
+ </button>
9
8
 
10
- <div class="collapse navbar-collapse justify-content-md-end" id="user-util-collapse">
11
- <%= render 'shared/user_util_links' %>
9
+ <div class="collapse navbar-collapse justify-content-md-end" id="user-util-collapse">
10
+ <%= render 'shared/user_util_links' %>
11
+ </div>
12
12
  </div>
13
- </div>
14
- </nav>
13
+ </nav>
15
14
 
16
- <% if controller_name == 'catalog' && !has_search_parameters? && action_name == 'index' %>
17
- <div class='al-homepage-masthead jumbotron'>
18
- <div class='d-flex justify-content-center'>
19
- <h1 class='text-center'><%= t('arclight.masthead_heading') %></h1>
20
- </div>
21
- <div class='row justify-content-md-center'>
22
- <div class='col-md-6 col-sm-12'>
23
- <div class='navbar-search'>
24
- <%= render_search_bar %>
15
+ <% if controller_name == 'catalog' && !has_search_parameters? && action_name == 'index' %>
16
+ <div class='al-homepage-masthead jumbotron'>
17
+ <div class="container">
18
+ <div class="row align-items-center">
19
+ <div class="col-md-8 masthead-center" >
20
+ <h1><%= t('arclight.masthead_heading') %></h1>
21
+ </div>
22
+
23
+ <div class="col-md-4 nav-links d-flex justify-content-end" >
24
+ <ul class="navbar-nav" aria-label="browse" role="navigation">
25
+ <%= render 'shared/main_menu_links' %>
26
+ </ul>
27
+ </div>
28
+ </div>
29
+
30
+ <div class='row justify-content-md-center'>
31
+ <div class='col-12'>
32
+ <div class='navbar-search'>
33
+ <%= render_search_bar %>
34
+ </div>
35
+ </div>
25
36
  </div>
26
37
  </div>
27
38
  </div>
28
- <nav class="navbar justify-content-center" role="navigation">
29
- <ul class="nav">
30
- <%= render 'shared/main_menu_links' %>
31
- </ul>
32
- </nav>
33
- </div>
34
- <% else %>
35
- <div class='bg-faded al-masthead'>
36
- <div class="container">
37
- <h1><%= t('arclight.masthead_heading') %></h1>
39
+ <% else %>
40
+ <div class='bg-faded al-masthead'>
41
+ <div class="container">
42
+ <div class="row align-items-center">
43
+ <div class="col-md-8" >
44
+ <span class="h1"><%= t('arclight.masthead_heading') %></span>
45
+ </div>
46
+
47
+ <div class="col-md-4 nav-links d-flex justify-content-end" >
48
+ <ul class="navbar-nav" aria-label="browse" role="navigation">
49
+ <%= render 'shared/main_menu_links' %>
50
+ </ul>
51
+ </div>
52
+ </div>
53
+ </div>
38
54
  </div>
39
- </div>
40
- <div class="navbar-search navbar navbar-expand-sm bg-faded" role="navigation">
41
- <div class="<%= container_classes %>">
42
- <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
43
- <span class="navbar-toggler-icon"></span>
44
- </button>
45
- <div class="collapse navbar-collapse" id="navbarSupportedContent">
46
- <ul class="navbar-nav mr-auto">
47
- <%= render 'shared/main_menu_links' %>
48
- </ul>
55
+ <div class="navbar-search navbar">
56
+ <div class="<%= container_classes %>">
49
57
  <%= render_search_bar %>
50
58
  </div>
51
59
  </div>
52
- </div>
53
- <% end %>
60
+ <% end %>
61
+ </header>
@@ -1,6 +1,6 @@
1
1
  <li class="nav-item <%= repositories_active_class %>">
2
2
  <%= link_to t('arclight.routes.repositories'), arclight_engine.repositories_path, class: 'nav-link' %>
3
3
  </li>
4
- <li class="nav-item <%= collection_active_class %>">
4
+ <li class="nav-item ml-3 <%= collection_active_class %>">
5
5
  <%= link_to t('arclight.routes.collections'), arclight_engine.collections_path, class: 'nav-link' %>
6
6
  </li>
@@ -0,0 +1,27 @@
1
+ <% parents = Arclight::Parents.from_solr_document(document).as_parents %>
2
+ <nav aria-label="breadcrumb">
3
+ <ol class="breadcrumb">
4
+ <li class="breadcrumb-home-link">
5
+ <%= link_to t('arclight.routes.home'), root_path %>
6
+ </li>
7
+ <li class="media breadcrumb-item breadcrumb-item-1">
8
+ <% if document.repository_config.present? %>
9
+ <span class="media-body" aria-hidden="true"><%= blacklight_icon :repository, classes: 'al-repository-content-icon' %></span>
10
+ <span class="col"><%= link_to(document.repository_config.name, arclight_engine.repository_path(document.repository_config.slug)) %></span>
11
+ <% else %>
12
+ <span class="media-body" aria-hidden="true"><%= blacklight_icon :repository, classes: 'al-repository-content-icon' %></span><span class="col"><%= t('arclight.show_breadcrumb_label') %></span>
13
+ <% end %>
14
+ </li>
15
+ <% parents.each_with_index.map do |parent, index| %>
16
+ <%= content_tag :li, class: "breadcrumb-item breadcrumb-item-#{index + 1} media" do %>
17
+ <span class="media-body" aria-hidden="true"><%= blacklight_icon document_or_parent_icon(parent) %></span>
18
+ <span class="col"><%= link_to parent.label, solr_document_path(parent.global_id) %></span>
19
+ <% end %>
20
+ <% end %>
21
+ </ol>
22
+
23
+ <%= content_tag :h1, class: "breadcrumb-item breadcrumb-item-#{parents.length + 2} media" do %>
24
+ <span class="media-body" aria-hidden="true"><%= blacklight_icon document_or_parent_icon(document) %></span>
25
+ <span class="col"><%= document.normalized_title %></span>
26
+ <% end %>
27
+ </nav>
@@ -1,7 +1,6 @@
1
- # coding: utf-8
2
1
  # frozen_string_literal: true
3
2
 
4
- lib = File.expand_path('../lib', __FILE__)
3
+ lib = File.expand_path('lib', __dir__)
5
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
6
5
  require 'arclight/version'
7
6
 
@@ -23,19 +22,23 @@ Gem::Specification.new do |spec|
23
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
23
  spec.require_paths = ['lib']
25
24
 
26
- spec.add_dependency 'blacklight', '7.0.0.rc1'
27
- spec.add_dependency 'blacklight_range_limit', '7.0.0.rc2'
28
- spec.add_dependency 'rails', '~> 5.0'
29
- spec.add_dependency 'solr_ead'
25
+ spec.add_dependency 'blacklight', '~> 7.2'
26
+ spec.add_dependency 'blacklight_range_limit', '~> 7.1'
27
+ spec.add_dependency 'rails', '>= 5.2.3', '< 6.1'
28
+ spec.add_dependency 'sprockets-bumble_d'
29
+ spec.add_dependency 'traject', '~> 3.0'
30
+ spec.add_dependency 'traject_plus', '~> 1.2'
30
31
 
31
- spec.add_development_dependency 'bundler', '~> 1.14'
32
+ spec.add_development_dependency 'bundler', '> 1.14'
32
33
  spec.add_development_dependency 'capybara'
33
- spec.add_development_dependency 'coveralls'
34
34
  spec.add_development_dependency 'engine_cart'
35
- spec.add_development_dependency 'poltergeist'
35
+ spec.add_development_dependency 'i18n-tasks'
36
36
  spec.add_development_dependency 'rake', '~> 12.0'
37
- spec.add_development_dependency 'rubocop', '~> 0.48.1'
38
- spec.add_development_dependency 'rubocop-rspec', '~> 1.15.0'
39
- spec.add_development_dependency 'rspec-rails', '~> 3.0'
37
+ spec.add_development_dependency 'rspec-rails'
38
+ spec.add_development_dependency 'rubocop', '~> 0.74.0'
39
+ spec.add_development_dependency 'rubocop-rspec', '~> 1.35'
40
+ spec.add_development_dependency 'selenium-webdriver'
41
+ spec.add_development_dependency 'simplecov'
40
42
  spec.add_development_dependency 'solr_wrapper'
43
+ spec.add_development_dependency 'webdrivers'
41
44
  end
@@ -0,0 +1,133 @@
1
+ # i18n-tasks finds and manages missing and unused translations: https://github.com/glebm/i18n-tasks
2
+
3
+ # The "main" locale.
4
+ base_locale: en
5
+ ## All available locales are inferred from the data by default. Alternatively, specify them explicitly:
6
+ # locales: [es, fr]
7
+ ## Reporting locale, default: en. Available: en, ru.
8
+ # internal_locale: en
9
+
10
+ # Read and write translations.
11
+ data:
12
+ ## Translations are read from the file system. Supported format: YAML, JSON.
13
+ ## Provide a custom adapter:
14
+ # adapter: I18n::Tasks::Data::FileSystem
15
+
16
+ # Locale files or `File.find` patterns where translations are read from:
17
+ read:
18
+ ## Default:
19
+ # - config/locales/%{locale}.yml
20
+ ## More files:
21
+ - config/locales/**/*.%{locale}.yml
22
+
23
+ # Locale files to write new keys to, based on a list of key pattern => file rules. Matched from top to bottom:
24
+ # `i18n-tasks normalize -p` will force move the keys according to these rules
25
+ write:
26
+ ## For example, write devise and simple form keys to their respective files:
27
+ # - ['{devise, simple_form}.*', 'config/locales/\1.%{locale}.yml']
28
+ ## Catch-all default:
29
+ # - config/locales/%{locale}.yml
30
+
31
+ # External locale data (e.g. gems).
32
+ # This data is not considered unused and is never written to.
33
+ external:
34
+ ## Example (replace %#= with %=):
35
+ # - "<%#= %x[bundle show vagrant].chomp %>/templates/locales/%{locale}.yml"
36
+
37
+ ## Specify the router (see Readme for details). Valid values: conservative_router, pattern_router, or a custom class.
38
+ # router: conservative_router
39
+
40
+ yaml:
41
+ write:
42
+ # do not wrap lines at 80 characters
43
+ line_width: -1
44
+
45
+ ## Pretty-print JSON:
46
+ # json:
47
+ # write:
48
+ # indent: ' '
49
+ # space: ' '
50
+ # object_nl: "\n"
51
+ # array_nl: "\n"
52
+
53
+ # Find translate calls
54
+ search:
55
+ ## Paths or `File.find` patterns to search in:
56
+ # paths:
57
+ # - app/
58
+
59
+ ## Root directories for relative keys resolution.
60
+ # relative_roots:
61
+ # - app/controllers
62
+ # - app/helpers
63
+ # - app/mailers
64
+ # - app/presenters
65
+ # - app/views
66
+
67
+ ## Files or `File.fnmatch` patterns to exclude from search. Some files are always excluded regardless of this setting:
68
+ ## %w(*.jpg *.png *.gif *.svg *.ico *.eot *.otf *.ttf *.woff *.woff2 *.pdf *.css *.sass *.scss *.less *.yml *.json)
69
+ exclude:
70
+ - app/assets/images
71
+ - app/assets/fonts
72
+ - app/assets/videos
73
+
74
+ ## Alternatively, the only files or `File.fnmatch patterns` to search in `paths`:
75
+ ## If specified, this settings takes priority over `exclude`, but `exclude` still applies.
76
+ # only: ["*.rb", "*.html.slim"]
77
+
78
+ ## If `strict` is `false`, guess usages such as t("categories.#{category}.title"). The default is `true`.
79
+ # strict: true
80
+
81
+ ## Multiple scanners can be used. Their results are merged.
82
+ ## The options specified above are passed down to each scanner. Per-scanner options can be specified as well.
83
+ ## See this example of a custom scanner: https://github.com/glebm/i18n-tasks/wiki/A-custom-scanner-example
84
+
85
+ ## Translation Services
86
+ # translation:
87
+ # # Google Translate
88
+ # # Get an API key and set billing info at https://code.google.com/apis/console to use Google Translate
89
+ # google_translate_api_key: "AbC-dEf5"
90
+ # # DeepL Pro Translate
91
+ # # Get an API key and subscription at https://www.deepl.com/pro to use DeepL Pro
92
+ # deepl_api_key: "48E92789-57A3-466A-9959-1A1A1A1A1A1A"
93
+
94
+ ## Do not consider these keys missing:
95
+ ignore_missing:
96
+ - '{blacklight}.*'
97
+
98
+ ## Consider these keys used:
99
+ ignore_unused:
100
+ - '{blacklight}.*'
101
+ # - 'activerecord.attributes.*'
102
+ # - '{devise,kaminari,will_paginate}.*'
103
+ # - 'simple_form.{yes,no}'
104
+ # - 'simple_form.{placeholders,hints,labels}.*'
105
+ # - 'simple_form.{error_notification,required}.:'
106
+
107
+ ## Exclude these keys from the `i18n-tasks eq-base' report:
108
+ # ignore_eq_base:
109
+ # all:
110
+ # - common.ok
111
+ # fr,es:
112
+ # - common.brand
113
+
114
+ ## Exclude these keys from the `i18n-tasks check-consistent-interpolations` report:
115
+ # ignore_inconsistent_interpolations:
116
+ # - 'activerecord.attributes.*'
117
+
118
+ ## Ignore these keys completely:
119
+ # ignore:
120
+ # - kaminari.*
121
+
122
+ ## Sometimes, it isn't possible for i18n-tasks to match the key correctly,
123
+ ## e.g. in case of a relative key defined in a helper method.
124
+ ## In these cases you can use the built-in PatternMapper to map patterns to keys, e.g.:
125
+ #
126
+ # <%# I18n::Tasks.add_scanner 'I18n::Tasks::Scanners::PatternMapper',
127
+ # only: %w(*.html.haml *.html.slim),
128
+ # patterns: [['= title\b', '.page_title']] %>
129
+ #
130
+ # The PatternMapper can also match key literals via a special %{key} interpolation, e.g.:
131
+ #
132
+ # <%# I18n::Tasks.add_scanner 'I18n::Tasks::Scanners::PatternMapper',
133
+ # patterns: [['\bSpree\.t[( ]\s*%{key}', 'spree.%{key}']] %>
@@ -1,65 +1,99 @@
1
+ ---
1
2
  en:
2
3
  arclight:
3
- masthead_heading: 'Archival Collections at Institution'
4
- date_range_histogram:
5
- show_hide: 'Show/hide date distribution'
4
+ breadcrumb_separator: " » "
5
+ breadcrumbs:
6
+ aria_label: breadcrumb
6
7
  hierarchy:
7
- view_all: 'View'
8
- scope_and_contents: 'Scope and Contents'
8
+ scope_and_contents: Scope and Contents
9
+ scope_note: 'Scope note: '
10
+ view_all: View
11
+ masthead_heading: Archival Collections at Institution
12
+ repositories: Repositories
9
13
  request:
10
- container: 'Request'
14
+ container: Request
11
15
  routes:
12
- home: 'Home'
13
- collections: 'Collections'
14
- repositories: 'Repositories'
15
- search_results: 'Search results'
16
+ collections: Collections
17
+ home: Home
18
+ repositories: Repositories
19
+ search_results: Search results
20
+ search:
21
+ collections_header: Collections
22
+ repository_header: 'Collections : [%{repository}]'
23
+ show_breadcrumb_label: Repository
24
+ truncation:
25
+ view_less: view less ▼
26
+ view_more: view more ▶
16
27
  views:
28
+ home:
29
+ title: Archival Collections at Institution - Arclight
17
30
  index:
18
- number_of_children:
19
- zero: 'No children'
20
- one: '1 child'
21
- other: '%{count} children'
22
- collection_search:
23
- count: 'collection'
24
- online_content_indicator: 'online content'
31
+ all_group_results: view all %{count}
32
+ all_results: All results
33
+ group_by_collection: Grouped by collection
34
+ group_results: Group results
35
+ group_results_count:
36
+ one: 1 result
37
+ other: "%{count} results"
38
+ zero: 0 results
39
+ number_of_components:
40
+ one: component
41
+ other: components
42
+ top_group_results:
43
+ one: Top %{count} result
44
+ other: Top %{count} results
45
+ repositories:
46
+ number_of_collections:
47
+ one: 1 collection
48
+ other: "%{count} collections"
49
+ zero: No collections
50
+ show: "%{name} - Arclight"
51
+ title: Repositories - Arclight
52
+ view_all_collections: View all of our collections
53
+ view_more: View more
25
54
  show:
55
+ access: Access
56
+ collapse: Collapse
26
57
  collection_id: 'Collection ID: %{id}'
27
- overview: 'Overview'
28
- online_content: 'Online content'
29
- no_online_content: 'No online content'
30
- no_contents: 'No content inventory'
31
- search_within: 'Search within this collection'
32
- navigation_sidebar:
33
- title: 'Navigation overview'
34
- context_sidebar:
35
- in_person_field: 'In person'
36
- terms_field: 'Terms & Conditions'
37
- cite_field: 'How to cite this collection'
38
- component_terms_field: "Terms & Conditions"
39
- sections:
40
- summary_field: 'Summary'
41
- access_field: 'Access and Use'
42
- background_field: 'Background'
43
- scope_and_arrangement_field: 'Scope and Arrangement'
44
- related_field: 'Related'
45
- indexed_terms_field: 'Indexed Terms'
46
- admin_info_field: 'Administrative Information'
47
- component_field: 'About this %{level}'
48
- component_indexed_terms_field: 'Indexed Terms'
49
- collection_context_field: 'Collection Context'
50
- our_collections: 'Our Collections'
58
+ context: Collection context
59
+ context_nav:
60
+ title: Collection context navigation
51
61
  download:
52
- default: 'Download'
53
- pdf: 'Collection PDF (%{size})'
54
- ead: 'Collection EAD (%{size})'
55
- repositories:
56
- number_of_collections:
57
- zero: 'No collections'
58
- one: '1 collection'
59
- other: '%{count} collections'
60
- view_more: 'View more'
61
- view_all_collections: 'View all of our collections'
62
- breadcrumb_separator: ' » '
63
- truncation:
64
- view_more: 'view more ▶'
65
- view_less: 'view less ▼'
62
+ default: Download
63
+ ead: Download EAD
64
+ pdf: Download finding aid
65
+ download_with_size:
66
+ default: Download (%{size})
67
+ ead: Download EAD (%{size})
68
+ pdf: Download finding aid (%{size})
69
+ expand: Expand
70
+ has_content: Contents
71
+ no_contents: No content inventory
72
+ online_content: Online content
73
+ online_content_upper: ONLINE CONTENT
74
+ our_collections: Our Collections
75
+ overview: Overview
76
+ sections:
77
+ access_field: Access and Use
78
+ background_field: Background
79
+ collection_context_field: Collection Context
80
+ component_field: About this %{level}
81
+ component_indexed_terms_field: Indexed Terms
82
+ indexed_terms_field: Indexed Terms
83
+ related_field: Related
84
+ scope_and_arrangement_field: Scope and Arrangement
85
+ summary_field: Summary
86
+ tablist_nav: Context
87
+ within_collection_dropdown:
88
+ all_collections: all collections
89
+ label_html: Search<span class="sr-only"> within</span>
90
+ this_collection: this collection
91
+ blacklight:
92
+ entry_name:
93
+ grouped:
94
+ collection_ssi: collection
95
+ search:
96
+ pagination_info:
97
+ pages:
98
+ one: "<strong>%{start_num}</strong> - <strong>%{end_num}</strong> of <strong>%{total_num} %{entry_name}</strong>"
99
+ other: "<strong>%{start_num}</strong> - <strong>%{end_num}</strong> of <strong>%{total_num} %{entry_name}</strong>"