blacklight-spotlight 3.6.0.beta10 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spotlight/spotlight.esm.js +30 -30
  3. data/app/assets/javascripts/spotlight/spotlight.esm.js.map +1 -1
  4. data/app/assets/javascripts/spotlight/spotlight.js +30 -30
  5. data/app/assets/javascripts/spotlight/spotlight.js.map +1 -1
  6. data/app/assets/stylesheets/spotlight/_blacklight_configuration.scss +0 -8
  7. data/app/assets/stylesheets/spotlight/_blacklight_overrides.scss +2 -1
  8. data/app/assets/stylesheets/spotlight/_bootstrap_overrides.scss +0 -5
  9. data/app/assets/stylesheets/spotlight/_catalog.scss +6 -3
  10. data/app/assets/stylesheets/spotlight/_mixins.scss +2 -1
  11. data/app/assets/stylesheets/spotlight/_pages.scss +2 -1
  12. data/app/assets/stylesheets/spotlight/_report_a_problem.scss +2 -1
  13. data/app/assets/stylesheets/spotlight/_translations.scss +0 -6
  14. data/app/assets/stylesheets/spotlight/_utilities.scss +0 -4
  15. data/app/components/spotlight/document_component.rb +1 -1
  16. data/app/javascript/spotlight/admin/block_mixins/plustextable.js +1 -1
  17. data/app/javascript/spotlight/admin/blocks/browse_block.js +2 -2
  18. data/app/javascript/spotlight/admin/blocks/browse_group_categories_block.js +1 -1
  19. data/app/javascript/spotlight/admin/blocks/oembed_block.js +1 -1
  20. data/app/javascript/spotlight/admin/blocks/resources_block.js +3 -3
  21. data/app/javascript/spotlight/admin/blocks/solr_documents_carousel_block.js +5 -5
  22. data/app/javascript/spotlight/admin/blocks/solr_documents_features_block.js +5 -5
  23. data/app/javascript/spotlight/admin/blocks/uploaded_items_block.js +5 -5
  24. data/app/javascript/spotlight/admin/users.js +2 -2
  25. data/app/javascript/spotlight/user/report_a_problem.js +1 -1
  26. data/app/javascript/spotlight/user/zpr_links.js +3 -3
  27. data/app/models/sir_trevor_rails/blocks/solr_documents_carousel_block.rb +5 -2
  28. data/app/models/spotlight/resources/upload.rb +2 -2
  29. data/app/views/catalog/_add_tags.html.erb +4 -4
  30. data/app/views/catalog/_bulk_actions.html.erb +2 -2
  31. data/app/views/catalog/_change_visibility.html.erb +3 -3
  32. data/app/views/catalog/_remove_tags.html.erb +5 -5
  33. data/app/views/catalog/_save_search.html.erb +5 -5
  34. data/app/views/shared/_curated_features_navbar.html.erb +1 -1
  35. data/app/views/shared/_exhibit_navbar.html.erb +1 -1
  36. data/app/views/shared/_header_navbar.html.erb +1 -1
  37. data/app/views/shared/_user_util_links.html.erb +2 -2
  38. data/app/views/spotlight/admin_users/index.html.erb +6 -6
  39. data/app/views/spotlight/appearances/edit.html.erb +4 -4
  40. data/app/views/spotlight/browse/_search_box.html.erb +2 -2
  41. data/app/views/spotlight/browse/index.html.erb +1 -1
  42. data/app/views/spotlight/browse/show.html.erb +1 -1
  43. data/app/views/spotlight/bulk_updates/_download.html.erb +2 -2
  44. data/app/views/spotlight/bulk_updates/_upload.html.erb +17 -7
  45. data/app/views/spotlight/bulk_updates/edit.html.erb +3 -3
  46. data/app/views/spotlight/catalog/_admin_header.html.erb +1 -1
  47. data/app/views/spotlight/catalog/_curation_mode_toggle_default.html.erb +1 -1
  48. data/app/views/spotlight/catalog/_document_visibility_control.html.erb +1 -1
  49. data/app/views/spotlight/catalog/_edit_default.html.erb +1 -1
  50. data/app/views/spotlight/contacts/_form.html.erb +3 -3
  51. data/app/views/spotlight/custom_fields/_form.html.erb +2 -2
  52. data/app/views/spotlight/custom_fields/form_group/_text.html.erb +3 -3
  53. data/app/views/spotlight/custom_fields/form_group/_vocab.html.erb +3 -3
  54. data/app/views/spotlight/custom_search_fields/_form.html.erb +1 -1
  55. data/app/views/spotlight/dashboards/_analytics.html.erb +2 -2
  56. data/app/views/spotlight/exhibits/_contact.html.erb +1 -1
  57. data/app/views/spotlight/exhibits/_exhibit_card.html.erb +1 -1
  58. data/app/views/spotlight/exhibits/_form.html.erb +4 -4
  59. data/app/views/spotlight/exhibits/_import.html.erb +1 -1
  60. data/app/views/spotlight/exhibits/_languages.html.erb +1 -1
  61. data/app/views/spotlight/exhibits/edit.html.erb +6 -6
  62. data/app/views/spotlight/exhibits/index.html.erb +3 -3
  63. data/app/views/spotlight/featured_images/_form.html.erb +4 -4
  64. data/app/views/spotlight/featured_images/_upload_form.html.erb +3 -3
  65. data/app/views/spotlight/home_pages/_edit_page_link.html.erb +1 -1
  66. data/app/views/spotlight/job_trackers/show.html.erb +3 -3
  67. data/app/views/spotlight/locks/_lock.html.erb +1 -1
  68. data/app/views/spotlight/metadata_configurations/_metadata_field.html.erb +6 -2
  69. data/app/views/spotlight/pages/_edit_page_link.html.erb +1 -1
  70. data/app/views/spotlight/pages/_form.html.erb +8 -8
  71. data/app/views/spotlight/pages/_order_pages.html.erb +1 -1
  72. data/app/views/spotlight/pages/_view_type_group.html.erb +1 -1
  73. data/app/views/spotlight/resources/_external_resources_form.html.erb +1 -0
  74. data/app/views/spotlight/resources/_form.html.erb +1 -1
  75. data/app/views/spotlight/resources/csv_upload/_form.html.erb +1 -1
  76. data/app/views/spotlight/resources/iiif/_form.html.erb +1 -1
  77. data/app/views/spotlight/resources/json_upload/_form.html.erb +1 -1
  78. data/app/views/spotlight/resources/new.html.erb +1 -0
  79. data/app/views/spotlight/resources/upload/_form.html.erb +1 -1
  80. data/app/views/spotlight/roles/index.html.erb +4 -4
  81. data/app/views/spotlight/search_configurations/_default_per_page.html.erb +1 -1
  82. data/app/views/spotlight/search_configurations/_document_index_view_types.html.erb +7 -2
  83. data/app/views/spotlight/search_configurations/_facets.html.erb +1 -1
  84. data/app/views/spotlight/search_configurations/edit.html.erb +3 -3
  85. data/app/views/spotlight/searches/_form.html.erb +6 -6
  86. data/app/views/spotlight/searches/index.html.erb +4 -4
  87. data/app/views/spotlight/shared/_dd3_item.html.erb +2 -2
  88. data/app/views/spotlight/shared/_exhibit_sidebar.html.erb +1 -1
  89. data/app/views/spotlight/shared/_locale_picker.html.erb +1 -1
  90. data/app/views/spotlight/shared/_report_a_problem.html.erb +1 -1
  91. data/app/views/spotlight/sir_trevor/blocks/_browse_group_categories_block.html.erb +2 -2
  92. data/app/views/spotlight/sir_trevor/blocks/_oembed_block.html.erb +1 -1
  93. data/app/views/spotlight/sir_trevor/blocks/_search_results_block.html.erb +1 -1
  94. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_block.html.erb +1 -1
  95. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_carousel_block.html.erb +4 -4
  96. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_embed_block.html.erb +1 -1
  97. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_features_block.html.erb +2 -2
  98. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_grid_block.html.erb +1 -1
  99. data/app/views/spotlight/sir_trevor/blocks/_uploaded_items_block.html.erb +1 -1
  100. data/app/views/spotlight/sites/_exhibit.html.erb +4 -4
  101. data/app/views/spotlight/sites/edit.html.erb +2 -2
  102. data/app/views/spotlight/sites/edit_exhibits.html.erb +4 -4
  103. data/app/views/spotlight/tags/index.html.erb +1 -1
  104. data/app/views/spotlight/translations/_browse_categories.html.erb +8 -8
  105. data/app/views/spotlight/translations/_general.html.erb +18 -18
  106. data/app/views/spotlight/translations/_groups.html.erb +1 -1
  107. data/app/views/spotlight/translations/_import.html.erb +31 -18
  108. data/app/views/spotlight/translations/_metadata.html.erb +6 -6
  109. data/app/views/spotlight/translations/_page.html.erb +1 -1
  110. data/app/views/spotlight/translations/_search_fields.html.erb +9 -9
  111. data/app/views/spotlight/translations/edit.html.erb +6 -6
  112. data/config/locales/spotlight.en.yml +7 -2
  113. data/lib/generators/spotlight/templates/catalog_controller.rb +4 -0
  114. data/lib/spotlight/version.rb +1 -1
  115. data/vendor/assets/javascripts/bootstrap-tagsinput.js +1 -1
  116. data/vendor/assets/javascripts/sir-trevor.js +1 -1
  117. metadata +12 -6
@@ -20,20 +20,20 @@
20
20
  <ul class="nav nav-tabs" role="tablist">
21
21
  <% if current_exhibit.themes.many? %>
22
22
  <li role="presentation" class="nav-item">
23
- <a href="#site-theme" aria-controls="site-theme" role="tab" data-toggle="tab" class="nav-link active"><%= t(:'.site_theme.heading') %></a>
23
+ <a href="#site-theme" aria-controls="site-theme" role="tab" data-toggle="tab" data-bs-toggle="tab" class="nav-link active"><%= t(:'.site_theme.heading') %></a>
24
24
  </li>
25
25
  <% end %>
26
26
 
27
27
  <li role="presentation" class="nav-item">
28
- <a href="#site-masthead" aria-controls="site-masthead" role="tab" data-toggle="tab" class="nav-link <%= 'active' unless current_exhibit.themes.many? %>"><%= t(:'.site_masthead.heading') %></a>
28
+ <a href="#site-masthead" aria-controls="site-masthead" role="tab" data-toggle="tab" data-bs-toggle="tab" class="nav-link <%= 'active' unless current_exhibit.themes.many? %>"><%= t(:'.site_masthead.heading') %></a>
29
29
  </li>
30
30
 
31
31
  <li role="presentation" class="nav-item">
32
- <a href="#site-thumbnail" aria-controls="site-thumbnail" role="tab" data-toggle="tab" class="nav-link"><%= t(:'.site_thumbnail.heading') %></a>
32
+ <a href="#site-thumbnail" aria-controls="site-thumbnail" role="tab" data-toggle="tab" data-bs-toggle="tab" class="nav-link"><%= t(:'.site_thumbnail.heading') %></a>
33
33
  </li>
34
34
 
35
35
  <li role="presentation" class="nav-item">
36
- <a href="#main-menu" aria-controls="main-menu" role="tab" data-toggle="tab" class="nav-link"><%= t(:'.main_navigation.menu') %></a>
36
+ <a href="#main-menu" aria-controls="main-menu" role="tab" data-toggle="tab" data-bs-toggle="tab" class="nav-link"><%= t(:'.main_navigation.menu') %></a>
37
37
  </li>
38
38
  </ul>
39
39
  <div class="tab-content">
@@ -1,14 +1,14 @@
1
1
  <div class="search-box-container">
2
2
  <%= form_tag exhibit_browse_path(current_exhibit, search), method: :get, class: 'browse-search-form search-query-form form-horizontal', role: 'search', 'aria-labelledby' => 'browse-search-form' do %>
3
3
  <%= render Blacklight::HiddenSearchStateComponent.new(params: search_state.params_for_search.except(:q, :search_field, :exhibit_id, :qt, :page)) %>
4
- <div class="form-group row">
4
+ <div class="form-group mb-3 row">
5
5
  <label id="browse-search-form" class="col-sm-4 col-form-label h6" for="browse_q"><%= t(:'.label') %></label>
6
6
  <div class="col-sm-6">
7
7
  <div class="input-group">
8
8
  <%= text_field_tag :q, params[:q], placeholder: t(:'.placeholder'), class: "form-control", id: "browse_q" %>
9
9
  <span class="input-group-btn input-group-append">
10
10
  <button class="btn btn-reset btn-sm" type="reset">
11
- <span class="sr-only"><%= t(:'.reset') %></span>
11
+ <span class="sr-only visually-hidden"><%= t(:'.reset') %></span>
12
12
  <%= blacklight_icon('highlight_off') %>
13
13
  </button>
14
14
  <button type="submit" class="btn btn-primary search-btn" id="browse-search">
@@ -1,6 +1,6 @@
1
1
  <% title = current_exhibit.main_navigations.browse.label_or_default %>
2
2
  <% set_html_page_title(title) %>
3
- <h1 class="sr-only"><%= title %></h1>
3
+ <h1 class="sr-only visually-hidden"><%= title %></h1>
4
4
 
5
5
  <% if @groups.any? # active %>
6
6
  <ul class="browse-group-navigation nav nav-pills justify-content-center">
@@ -1,7 +1,7 @@
1
1
  <% set_html_page_title @search.title %>
2
2
  <% render partial: 'tophat' %>
3
3
 
4
- <%= exhibit_edit_link @search, class: 'edit-button float-right btn btn-primary' if can? :edit, @search %>
4
+ <%= exhibit_edit_link @search, class: 'edit-button float-right float-end btn btn-primary' if can? :edit, @search %>
5
5
  <% if resource_masthead? %>
6
6
  <% content_for :masthead do %>
7
7
  <%= render 'search_title', search: @search %>
@@ -3,13 +3,13 @@
3
3
  <%= bootstrap_form_with(url: download_template_exhibit_bulk_updates_path, local: true, target: '_blank') do |f| %>
4
4
  <div class="row">
5
5
  <div class="col col-sm-3">
6
- <%= f.form_group(:reference_fields, label: { text: t('.reference_fields.heading'), class: 'font-weight-bold' }) do %>
6
+ <%= f.form_group(:reference_fields, label: { text: t('.reference_fields.heading'), class: 'font-weight-bold fw-bold mb-3' }) do %>
7
7
  <%= f.check_box('reference_fields[item_id]', label: t('.item_id'), checked: true, disabled: true) %>
8
8
  <%= f.check_box('reference_fields[item_title]', label: t('.item_title')) %>
9
9
  <% end %>
10
10
  </div>
11
11
  <div class="col col-sm-3">
12
- <%= f.form_group(:updatable_fields, label: { text: t('.updatable_fields.heading'), class: 'font-weight-bold' }) do %>
12
+ <%= f.form_group(:updatable_fields, label: { text: t('.updatable_fields.heading'), class: 'font-weight-bold fw-bold mb-3' }) do %>
13
13
  <%= f.check_box('updatable_fields[visibility]', checked: true, label: t('.visibility')) %>
14
14
  <%= f.check_box('updatable_fields[tags]', label: t('.tags')) %>
15
15
  <% end %>
@@ -1,12 +1,22 @@
1
- <p class="instructions"><%= t('.instructions') %></p>
1
+ <p class="instructions mb-4"><%= t('.instructions') %></p>
2
2
 
3
- <%= bootstrap_form_with(url: exhibit_bulk_updates_path, method: :patch, multipart: true, layout: :inline) do |f| %>
4
- <%= f.label :file, t('.file_label'), class: 'col-form-label col-md-3' %>
5
- <%= file_field_tag :file, class: 'form-control', accept: '.csv,text/csv', 'aria-described-by' => 'bulk-update-form-help' %>
6
- <%= f.submit t('.submit'), class: 'btn btn-primary ml-2' %>
3
+ <%= bootstrap_form_with(url: exhibit_bulk_updates_path, method: :patch, html: { multipart: true }) do |f| %>
4
+ <div class="row">
5
+ <div class="col-12 col-md-3 text-md-right text-md-end">
6
+ <%= f.label :file, t('.file_label'), class: 'col-form-label' %>
7
+ </div>
8
+ <div class="col-12 col-md-9">
9
+ <div class="input-group">
10
+ <%= file_field_tag :file, class: 'form-control', accept: '.csv,text/csv', 'aria-described-by': 'bulk-update-form-help' %>
11
+ <div class="input-group-append">
12
+ <%= f.submit t('.submit'), class: 'btn btn-primary' %>
13
+ </div>
14
+ </div>
15
+ </div>
16
+ </div>
7
17
  <% end %>
8
18
  <div class="row">
9
- <div class="offset-md-3">
10
- <p id="bulk-update-form-help" class="form-text text-muted ml-2"><%= t('.form_help') %></p>
19
+ <div class="col-12 col-md-9 offset-md-3">
20
+ <p id="bulk-update-form-help" class="form-text text-muted ml-3"><%= t('.form_help') %></p>
11
21
  </div>
12
22
  </div>
@@ -11,13 +11,13 @@
11
11
  <div role="tabpanel">
12
12
  <ul class="nav nav-tabs" role="tablist">
13
13
  <li role="presentation" class="nav-item">
14
- <a href="#overview" aria-controls="overview" role="tab" data-toggle="tab" class="nav-link active"><%= t(:'.overview.heading') %></a>
14
+ <a href="#overview" aria-controls="overview" role="tab" data-toggle="tab" data-bs-toggle="tab" class="nav-link active"><%= t(:'.overview.heading') %></a>
15
15
  </li>
16
16
  <li role="presentation" class="nav-item">
17
- <a href="#download" aria-controls="download" role="tab" data-toggle="tab" class="nav-link"><%= t(:'.download.heading') %></a>
17
+ <a href="#download" aria-controls="download" role="tab" data-toggle="tab" data-bs-toggle="tab" class="nav-link"><%= t(:'.download.heading') %></a>
18
18
  </li>
19
19
  <li role="presentation" class="nav-item">
20
- <a href="#upload" aria-controls="upload" role="tab" data-toggle="tab" class="nav-link"><%= t(:'.upload.heading') %></a>
20
+ <a href="#upload" aria-controls="upload" role="tab" data-toggle="tab" data-bs-toggle="tab" class="nav-link"><%= t(:'.upload.heading') %></a>
21
21
  </li>
22
22
  </ul>
23
23
 
@@ -3,7 +3,7 @@
3
3
  <%= render 'reindex_progress_panel' %>
4
4
  </div>
5
5
  <div class="add-items-nav clearfix">
6
- <div class="float-right">
6
+ <div class="float-right float-end">
7
7
  <%= link_to t('.reindex'), reindex_all_exhibit_resources_path(current_exhibit),
8
8
  data: { method: :post, turbo_method: :post },
9
9
  class: 'btn btn-secondary' %>
@@ -1 +1 @@
1
- <%= exhibit_edit_link document, [:edit, current_exhibit, document], class: 'float-right btn btn-primary' if can?(:curate, current_exhibit) and !current_page? [:edit, current_exhibit, document] %>
1
+ <%= exhibit_edit_link document, [:edit, current_exhibit, document], class: 'float-right float-end btn btn-primary' if can?(:curate, current_exhibit) and !current_page? [:edit, current_exhibit, document] %>
@@ -13,7 +13,7 @@
13
13
  <div class="checkbox toggle-visibility">
14
14
  <label class="toggle-visibility" data-checkboxsubmit-target="label">
15
15
  <input type="checkbox" class="toggle-visibility" data-checkboxsubmit-target="checkbox" <%= 'checked="checked"' if document.public?(current_exhibit) %>>
16
- <span data-checkboxsubmit-target="span" class="sr-only">
16
+ <span data-checkboxsubmit-target="span" class="sr-only visually-hidden">
17
17
  <%= document.private?(current_exhibit) ? t('.make_public') : t('.make_private') %>
18
18
  </span>
19
19
  </label>
@@ -18,7 +18,7 @@
18
18
  <% end %>
19
19
  <div class="form-actions">
20
20
  <div class="primary-actions">
21
- <%= cancel_link document, spotlight.polymorphic_path([current_exhibit, document]), class: 'btn-sizing' %>
21
+ <%= cancel_link document, spotlight.polymorphic_path([current_exhibit, document]), class: 'btn btn-link', role: 'button' %>
22
22
  <%= f.submit nil, class: 'btn btn-primary' %>
23
23
  </div>
24
24
  </div>
@@ -14,9 +14,9 @@
14
14
  <div>
15
15
  <%= af.radio_button(:source, :remote, label: t(:'.source.remote.label')) %>
16
16
  <%= iiif_upload_tag(af) %>
17
- <small class="form-text text-muted">
17
+ <div class="form-text text-muted mb-3">
18
18
  <%= t(:'.source.remote.help') %>
19
- </small>
19
+ </div>
20
20
  </div>
21
21
 
22
22
  <%= iiif_cropper_tags af, initial_crop_selection: Spotlight::Engine.config.contact_square_size %>
@@ -24,7 +24,7 @@
24
24
  </div>
25
25
  <% end %>
26
26
 
27
- <div class="form-group primary-actions">
27
+ <div class="form-group mb-3 primary-actions">
28
28
  <%= cancel_link @contact, exhibit_about_pages_path(@contact.exhibit) %>
29
29
  <%= f.submit nil, class: 'btn btn-primary' %>
30
30
  </div>
@@ -10,12 +10,12 @@
10
10
  <% end %>
11
11
 
12
12
  <%= f.form_group :field_type, label: { text: t(:'.is_multiple.label') } do %>
13
- <%= f.check_box :is_multiple, disabled: @custom_field.persisted? %>
13
+ <%= f.check_box :is_multiple, layout: :vertical, disabled: @custom_field.persisted? %>
14
14
  <% end %>
15
15
 
16
16
  <div class="form-actions">
17
17
  <div class="primary-actions">
18
- <%= link_to t(:"cancel"), edit_exhibit_metadata_configuration_path(current_exhibit), class: 'btn-sizing' %>
18
+ <%= link_to t(:"cancel"), edit_exhibit_metadata_configuration_path(current_exhibit), class: 'btn btn-link', role: 'button' %>
19
19
  <%= f.submit nil, class: 'btn btn-primary' %>
20
20
  </div>
21
21
  </div>
@@ -3,9 +3,9 @@
3
3
  <% control_col = f&.control_col %>
4
4
  <% offset_col = label_col.sub('col', 'offset') %>
5
5
 
6
- <div class="form-group <%= "row" if inline %>">
6
+ <div class="form-group mb-3 <%= "row" if inline %>">
7
7
  <% Array(value || '').each_with_index do |v, index| %>
8
- <%= f.label field.slug, field.label, namespace: "f#{index}", class: "col-form-label #{label_col if inline} #{'sr-only' if index > 0}" %>
8
+ <%= f.label field.slug, field.label, namespace: "f#{index}", class: "col-form-label #{label_col if inline} #{'sr-only visually-hidden' if index > 0}" %>
9
9
  <div class="mb-3 <%= control_col if inline %>">
10
10
  <%= f.text_area_without_bootstrap field.slug, namespace: "f#{index}",multiple: field.is_multiple?, value: v, class: "form-control field-#{field.slug}", readonly: field.readonly_field? %>
11
11
  </div>
@@ -13,7 +13,7 @@
13
13
 
14
14
  <% if field.is_multiple? && !field.readonly_field? %>
15
15
  <%= content_tag :template, id: "spotlight-field-template-#{field.slug}" do %>
16
- <%= f.label field.slug, field.label, class: "col-form-label #{label_col if inline} sr-only" %>
16
+ <%= f.label field.slug, field.label, class: "col-form-label #{label_col if inline} sr-only visually-hidden" %>
17
17
  <div class="mb-3 <%= "#{offset_col} #{control_col}" if inline %>">
18
18
  <%= f.text_area_without_bootstrap field.slug, multiple: field.is_multiple?, value: nil, class: "form-control field-#{field.slug}" %>
19
19
  </div>
@@ -3,9 +3,9 @@
3
3
  <% control_col = f&.control_col %>
4
4
  <% offset_col = label_col.sub('col', 'offset') %>
5
5
 
6
- <div class="form-group <%= "row" if inline %>">
6
+ <div class="form-group mb-3 <%= "row" if inline %>">
7
7
  <% Array(value || '').each_with_index do |v, index| %>
8
- <%= f.label field.slug, field.label, namespace: "f#{index}", class: "col-form-label #{label_col if inline} #{'sr-only' if index > 0}" %>
8
+ <%= f.label field.slug, field.label, namespace: "f#{index}", class: "col-form-label #{label_col if inline} #{'sr-only visually-hidden' if index > 0}" %>
9
9
  <div class="mb-3 <%= control_col if inline %>">
10
10
  <%= f.text_field_without_bootstrap field.slug, namespace: "f#{index}", multiple: field.is_multiple?, value: v, class: "form-control field-#{field.slug}", readonly: field.readonly_field? %>
11
11
  </div>
@@ -13,7 +13,7 @@
13
13
 
14
14
  <% if field.is_multiple? && !field.readonly_field? %>
15
15
  <%= content_tag :template, id: "spotlight-field-template-#{field.slug}" do %>
16
- <%= f.label field.slug, field.label, class: "col-form-label #{label_col if inline} sr-only" %>
16
+ <%= f.label field.slug, field.label, class: "col-form-label #{label_col if inline} sr-only visually-hidden" %>
17
17
  <div class="mb-3 <%= "#{offset_col} #{control_col}" if inline %>">
18
18
  <%= f.text_field_without_bootstrap field.slug, multiple: field.is_multiple?, value: nil, class: "form-control field-#{field.slug}" %>
19
19
  </div>
@@ -6,7 +6,7 @@
6
6
 
7
7
  <div class="form-actions">
8
8
  <div class="primary-actions">
9
- <%= link_to t(:"cancel"), edit_exhibit_search_configuration_path(current_exhibit), class: 'btn-sizing' %>
9
+ <%= link_to t(:"cancel"), edit_exhibit_search_configuration_path(current_exhibit), class: 'btn btn-link', role: 'button' %>
10
10
  <%= f.submit nil, class: 'btn btn-primary' %>
11
11
  </div>
12
12
  </div>
@@ -21,13 +21,13 @@
21
21
  <thead>
22
22
  <tr>
23
23
  <th><%= t(:".pagetitle") %></th>
24
- <th class="text-right"><%= t(:".pageviews") %></th>
24
+ <th class="text-right text-end"><%= t(:".pageviews") %></th>
25
25
  </tr>
26
26
  </thead>
27
27
  <% page_analytics.each do |p| %>
28
28
  <tr>
29
29
  <td><%= link_to p.pageTitle, p.pagePath %></td>
30
- <td class="text-right"><%= p.pageviews %></td>
30
+ <td class="text-right text-end"><%= p.pageviews %></td>
31
31
  </tr>
32
32
  <% end %>
33
33
  </table>
@@ -3,7 +3,7 @@
3
3
  <div class="col-md-8<%= ' has-error' if contact.object.errors[:email].present? %>">
4
4
  <%= text_field_tag "#{contact.object_name}[email]", contact.object.email, class: 'exhibit-contact form-control', id: "exhibit_contact_email_#{contact.index}", 'aria-label': t('.email_input_aria_label', index: contact.index + 1) %>
5
5
  <% if contact.object.errors[:email].present? %>
6
- <small class="form-text text-muted"><%=contact.object.errors[:email].join(", ".html_safe) %></small>
6
+ <div class="form-text text-muted mb-3"><%=contact.object.errors[:email].join(", ".html_safe) %></div>
7
7
  <% end %>
8
8
  <p>
9
9
  <span class="contact-email-delete-error text-danger bg-danger" style="display: none;"><%= t('.email_delete_error') %> <span class="error-msg"></span></span>
@@ -9,7 +9,7 @@
9
9
  <% end %>
10
10
  <div class="card-img-overlay pb-0">
11
11
  <% unless exhibit.published? %>
12
- <div class="badge badge-warning unpublished"><%= t('.unpublished') %></div>
12
+ <div class="badge badge-warning bg-warning unpublished"><%= t('.unpublished') %></div>
13
13
  <% end %>
14
14
 
15
15
  <%= content_tag :h2, class: 'card-title h5 text-center', aria: { describedby: "exhibit-description-#{exhibit.to_param}" } do %>
@@ -4,16 +4,16 @@
4
4
  <%= f.text_field :subtitle %>
5
5
  <%= f.text_area :description %>
6
6
  <%= f.text_field :tag_list, value: f.object.tag_list.to_s %>
7
- <%= f.form_group(:contact_emails, label: { text: nil, class: nil, for: 'exhibit_contact_email_0' }, help: nil) do %>
8
- <%= f.fields_for :contact_emails do |contact| %>
7
+ <%= f.form_group(:contact_emails, label: { text: nil, class: nil, for: 'exhibit_contact_email_0' }, class: 'form-group mb-3', help: nil) do %>
8
+ <%= f.fields_for :contact_emails do |contact| %>
9
9
  <%= render partial: 'contact', locals: {exhibit: @exhibit, contact: contact} %>
10
10
  <% end %>
11
11
  <button id='another-email' class="btn btn-sm btn-info"><%= t('.add_contact_email_button') %></button>
12
- <small class="form-text text-muted"><%= t(:'.fields.contact_emails.help_block') %></small>
12
+ <div class="form-text text-muted mb-3"><%= t(:'.fields.contact_emails.help_block') %></div>
13
13
  <% end %>
14
14
  <%= f.form_group :published, label: { text: nil, class: 'pt-0' }, help: nil do %>
15
15
  <%= f.check_box :published, label: "" %>
16
- <small class="form-text text-muted"><%= t(:'.fields.published.help_block') %></small>
16
+ <div class="form-text text-muted mb-3"><%= t(:'.fields.published.help_block') %></div>
17
17
  <% end %>
18
18
 
19
19
  <div class="form-actions">
@@ -2,7 +2,7 @@
2
2
  <%= bootstrap_form_for [:import, current_exhibit], html: { class: 'clearfix', multipart: true } do |f| %>
3
3
  <div class="row col-md-12">
4
4
  <p class="instructions"><%= t :'.instructions' %></p>
5
- <div class="form-group">
5
+ <div class="form-group mb-3">
6
6
  <%= file_field_tag :file, class: 'form-control' %>
7
7
  <%= hidden_field_tag :tab, 'import', id: nil %>
8
8
  </div>
@@ -34,7 +34,7 @@
34
34
  <td><%= t("locales.#{language.locale}") %></td>
35
35
  <td class='text-center'>
36
36
  <div class='checkbox'>
37
- <%= languages.label :public, class: 'sr-only' %>
37
+ <%= languages.label :public, class: 'sr-only visually-hidden' %>
38
38
  <%= languages.check_box_without_bootstrap :public %>
39
39
  </div>
40
40
  </td>
@@ -6,31 +6,31 @@
6
6
  <div role="tabpanel">
7
7
  <ul class="nav nav-tabs" role="tablist">
8
8
  <li role="presentation" class="nav-item">
9
- <a href="#basic" aria-controls="basic" role="tab" data-toggle="tab" class="nav-link <%= 'active' if @tab.blank? %>"><%= t(:'.basic_settings.heading') %></a>
9
+ <a href="#basic" aria-controls="basic" role="tab" data-toggle="tab" data-bs-toggle="tab" class="nav-link <%= 'active' if @tab.blank? %>"><%= t(:'.basic_settings.heading') %></a>
10
10
  </li>
11
11
  <% if can? :manage, current_exhibit.languages.first_or_initialize %>
12
12
  <li role="presentation" class="nav-item">
13
- <a href="#language" aria-controls="language" role="tab" data-toggle="tab" class="nav-link <%= 'active' if @tab == 'language' %>"><%= t(:'spotlight.exhibits.languages.heading') %></a>
13
+ <a href="#language" aria-controls="language" role="tab" data-toggle="tab" data-bs-toggle="tab" class="nav-link <%= 'active' if @tab == 'language' %>"><%= t(:'spotlight.exhibits.languages.heading') %></a>
14
14
  </li>
15
15
  <% end %>
16
16
  <% if can? :edit, current_exhibit.filters.first_or_initialize %>
17
17
  <li role="presentation" class="nav-item">
18
- <a href="#filter" aria-controls="filter" role="tab" data-toggle="tab" class="nav-link <%= 'active' if @tab == 'filter' %>"><%= t(:'spotlight.exhibits.filter.heading') %></a>
18
+ <a href="#filter" aria-controls="filter" role="tab" data-toggle="tab" data-bs-toggle="tab" class="nav-link <%= 'active' if @tab == 'filter' %>"><%= t(:'spotlight.exhibits.filter.heading') %></a>
19
19
  </li>
20
20
  <% end %>
21
21
  <% if can? :import, current_exhibit %>
22
22
  <li role="presentation" class="nav-item">
23
- <a href="#import" aria-controls="import" role="tab" data-toggle="tab" class="nav-link <%= 'active' if @tab == 'import' %>"><%= t(:'spotlight.exhibits.import.heading') %></a>
23
+ <a href="#import" aria-controls="import" role="tab" data-toggle="tab" data-bs-toggle="tab" class="nav-link <%= 'active' if @tab == 'import' %>"><%= t(:'spotlight.exhibits.import.heading') %></a>
24
24
  </li>
25
25
  <% end %>
26
26
  <% if can? :export, current_exhibit %>
27
27
  <li role="presentation" class="nav-item">
28
- <a href="#export" aria-controls="export" role="tab" data-toggle="tab" class="nav-link <%= 'active' if @tab == 'import' %>"><%= t(:'spotlight.exhibits.export.heading') %></a>
28
+ <a href="#export" aria-controls="export" role="tab" data-toggle="tab" data-bs-toggle="tab" class="nav-link <%= 'active' if @tab == 'import' %>"><%= t(:'spotlight.exhibits.export.heading') %></a>
29
29
  </li>
30
30
  <% end %>
31
31
  <% if can? :destroy, current_exhibit %>
32
32
  <li role="presentation" class="nav-item">
33
- <a href="#delete" aria-controls="delete" role="tab" data-toggle="tab" class="nav-link"><%= t(:'spotlight.exhibits.delete.heading') %></a>
33
+ <a href="#delete" aria-controls="delete" role="tab" data-toggle="tab" data-bs-toggle="tab" class="nav-link"><%= t(:'spotlight.exhibits.delete.heading') %></a>
34
34
  </li>
35
35
  <% end %>
36
36
  </ul>
@@ -1,11 +1,11 @@
1
1
  <% if (current_user && current_user.exhibits.any?) || can?(:manage, Spotlight::Exhibit) %>
2
2
  <ul class="nav nav-tabs" role="tablist">
3
- <li role="presentation" class="nav-item"><a href="#published" aria-controls="published" role="tab" data-toggle="tab" class="nav-link active"><%= t('.published') %></a></li>
3
+ <li role="presentation" class="nav-item"><a href="#published" aria-controls="published" role="tab" data-toggle="tab" data-bs-toggle="tab" class="nav-link active"><%= t('.published') %></a></li>
4
4
  <% if can?(:manage, Spotlight::Exhibit) && @exhibits.unpublished.accessible_by(current_ability).any? %>
5
- <li role="presentation" class="nav-item"><a href="#unpublished" aria-controls="unpublished" role="tab" data-toggle="tab" class="nav-link"><%= t('.unpublished') %></a></li>
5
+ <li role="presentation" class="nav-item"><a href="#unpublished" aria-controls="unpublished" role="tab" data-toggle="tab" data-bs-toggle="tab" class="nav-link"><%= t('.unpublished') %></a></li>
6
6
  <% end %>
7
7
  <% if current_user && current_user.exhibits.any? %>
8
- <li role="presentation" class="nav-item"><a href="#user" aria-controls="user" role="tab" data-toggle="tab" class="nav-link"><%= t('.user') %></a></li>
8
+ <li role="presentation" class="nav-item"><a href="#user" aria-controls="user" role="tab" data-toggle="tab" data-bs-toggle="tab" class="nav-link"><%= t('.user') %></a></li>
9
9
  <% end %>
10
10
  </ul>
11
11
  <% end %>
@@ -1,6 +1,6 @@
1
1
  <div data-cropper="<%= f.object.model_name.singular_route_key %>" data-form-prefix="<%= form_prefix(f) %>">
2
2
  <%= field_set_tag do %>
3
- <%= f.check_box(:display) %>
3
+ <%= f.check_box(:display, layout: :vertical) %>
4
4
  <% end if f.object.is_a? Spotlight::Masthead %>
5
5
  <%= field_set_tag(t(:'.source.header')) do %>
6
6
  <div>
@@ -18,15 +18,15 @@
18
18
  <div data-panel-image-pagination="true"></div>
19
19
  </div>
20
20
  </div>
21
- <small class="form-text text-muted"><%= t(:'.source.exhibit.help') %></small>
21
+ <div class="form-text text-muted mb-3"><%= t(:'.source.exhibit.help') %></div>
22
22
  </div>
23
23
  </div>
24
24
  <div>
25
25
  <%= f.radio_button(:source, :remote, label: t(:'.source.remote.label')) %>
26
26
  <%= iiif_upload_tag(f) %>
27
- <small class="form-text text-muted">
27
+ <div class="form-text text-muted mb-3">
28
28
  <%= t(:'.source.remote.help') %>
29
- </small>
29
+ </div>
30
30
  </div>
31
31
  <% end %>
32
32
  <%= field_set_tag(t(:'.source.remote.header')) do %>
@@ -1,14 +1,14 @@
1
1
  <div data-cropper="<%= f.object.model_name.singular_route_key %>" data-form-prefix="<%= form_prefix(f) %>">
2
2
  <%= field_set_tag do %>
3
- <%= f.check_box(:display) %>
3
+ <%= f.check_box(:display, layout: :vertical) %>
4
4
  <% end if f.object.is_a? Spotlight::Masthead %>
5
5
  <%= field_set_tag(t(:'.source.header')) do %>
6
6
  <div>
7
7
  <%= f.hidden_field(:source, value: :remote, label: t(:'.source.remote.label')) %>
8
8
  <%= iiif_upload_tag(f) %>
9
- <small class="form-text text-muted">
9
+ <div class="form-text text-muted mb-3">
10
10
  <%= t(:'.source.remote.help') %>
11
- </small>
11
+ </div>
12
12
  </div>
13
13
  <% end %>
14
14
  <%= field_set_tag(t(:'.source.remote.header')) do %>
@@ -1,2 +1,2 @@
1
- <%= exhibit_edit_link @page, spotlight.edit_exhibit_home_page_path(@page.exhibit), class: 'edit-button float-right btn btn-primary',
1
+ <%= exhibit_edit_link @page, spotlight.edit_exhibit_home_page_path(@page.exhibit), class: 'edit-button float-right float-end btn btn-primary',
2
2
  data: { turbolinks: false, turbo: false } %>
@@ -6,10 +6,10 @@
6
6
  <div data-blacklight-modal="container">
7
7
 
8
8
  <div class="modal-header border-0">
9
- <h2 class="modal-title"><%= job_status_icon(@job_tracker) %> <%= t @job_tracker.job_class, default: @job_tracker.job_class %> <small class="text-monospace font-weight-lighter"><%= @job_tracker.job_id&.truncate(8, omission: '') %></small></h2>
9
+ <h2 class="modal-title"><%= job_status_icon(@job_tracker) %> <%= t @job_tracker.job_class, default: @job_tracker.job_class %> <small class="text-monospace font-monospace font-weight-lighter fw-lighter"><%= @job_tracker.job_id&.truncate(8, omission: '') %></small></h2>
10
10
 
11
- <button type="button" class="blacklight-modal-close close" data-dismiss="modal" aria-label="<%= t('blacklight.modal.close') %>">
12
- <span aria-hidden="true">&times;</span>
11
+ <button type="button" class="blacklight-modal-close close btn-close" data-dismiss="modal" data-bs-dismiss="modal" aria-label="<%= t('blacklight.modal.close') %>">
12
+ <span aria-hidden="true" class="visually-hidden">&times;</span>
13
13
  </button>
14
14
  </div>
15
15
 
@@ -1,4 +1,4 @@
1
1
  <p class="alert alert-warning alert-lock">
2
- <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
2
+ <button type="button" class="close btn-close" data-dismiss="alert" data-bs-dismiss="alert"><span aria-hidden="true" class="visually-hidden">&times;</span><span class="sr-only visually-hidden">Close</span></button>
3
3
  <%= t :'spotlight.pages.edit.locked', user: lock.by, created_at: time_ago_in_words(lock.created_at) + " ago"%>
4
4
  </p>
@@ -8,9 +8,13 @@
8
8
  <%= field.hidden_field :label, value: config.display_label, class: 'form-control form-control-sm', data: {:"edit-field-target" => 'true'} %>
9
9
  </div>
10
10
  </td>
11
- <td class="checkbox-cell text-center"><%= field.check_box :show, inline: true, checked: config.show, disabled: !config.immutable.show.nil?, hide_label: true %></td>
11
+ <td class="checkbox-cell text-center">
12
+ <%= field.check_box_without_bootstrap :show, checked: config.show, disabled: !config.immutable.show.nil?, hide_label: true %>
13
+ </td>
12
14
  <% available_view_fields.keys.each do |type| %>
13
- <td class="checkbox-cell text-center"><%= field.check_box type, inline: true, checked: config.send(type), disabled: !config.immutable.send(type).nil?, hide_label: true %></td>
15
+ <td class="checkbox-cell text-center">
16
+ <%= field.check_box_without_bootstrap type, checked: config.send(type), disabled: !config.immutable.send(type).nil?, hide_label: true %>
17
+ </td>
14
18
  <% end %>
15
19
  <% end %>
16
20
  </tr>
@@ -1,2 +1,2 @@
1
- <%= exhibit_edit_link @page, class: 'edit-button float-right btn btn-primary',
1
+ <%= exhibit_edit_link @page, class: 'edit-button float-right float-end btn btn-primary',
2
2
  data: { turbolinks: false, turbo: false } %>
@@ -19,27 +19,27 @@
19
19
  <div role="tabpanel">
20
20
  <ul class="nav nav-tabs" role="tablist">
21
21
  <li role="presentation" class="nav-item">
22
- <a href="#page-content" class="nav-link active" aria-controls="page-content" role="tab" data-toggle="tab"><%= t(:'.page_content') %></a>
22
+ <a href="#page-content" class="nav-link active" aria-controls="page-content" role="tab" data-toggle="tab" data-bs-toggle="tab"><%= t(:'.page_content') %></a>
23
23
  </li>
24
24
 
25
25
  <li role="presentation" class="nav-item">
26
- <a href="#page-options" class="nav-link" aria-controls="page-options" role="tab" data-toggle="tab"><%= t(:'.page_options') %></a>
26
+ <a href="#page-options" class="nav-link" aria-controls="page-options" role="tab" data-toggle="tab" data-bs-toggle="tab"><%= t(:'.page_options') %></a>
27
27
  </li>
28
28
  <% if @page.respond_to? :thumbnail %>
29
29
  <li role="presentation" class="nav-item">
30
- <a href="#page-thumbnail" class="nav-link" aria-controls="page-thumbnail" role="tab" data-toggle="tab"><%= t(:'.page_thumbnail') %></a>
30
+ <a href="#page-thumbnail" class="nav-link" aria-controls="page-thumbnail" role="tab" data-toggle="tab" data-bs-toggle="tab"><%= t(:'.page_thumbnail') %></a>
31
31
  </li>
32
32
  <% end %>
33
33
  </ul>
34
34
 
35
35
  <div class="tab-content">
36
36
  <div role="tabpanel" class="tab-pane active" id="page-content">
37
- <div class="form-group">
38
- <%= f.label :title, class: 'sr-only' %>
37
+ <div class="form-group mb-3">
38
+ <%= f.label :title, class: 'sr-only visually-hidden' %>
39
39
  <%= f.text_field_without_bootstrap :title, class: 'form-control form-control-lg', placeholder: t(:'.title_placeholder') %>
40
40
  </div>
41
- <div class="form-group">
42
- <%= f.label :content, class: 'sr-only' %>
41
+ <div class="form-group mb-3">
42
+ <%= f.label :content, class: 'sr-only visually-hidden' %>
43
43
  <%= f.text_area_without_bootstrap :content, value: { data: f.object.content.as_json }.to_json, class: content_editor_class(f.object), data: { 'block-types': SirTrevorRails::Block.custom_block_types } %>
44
44
  </div>
45
45
  </div>
@@ -61,7 +61,7 @@
61
61
 
62
62
  <div class="form-actions">
63
63
  <div class="primary-actions">
64
- <%= link_to(t('cancel'), :back, data: (@page.lock && @page.lock.current_session? ? { lock: url_for([spotlight, @page.exhibit, @page.lock]) } : {}), class: 'btn-sizing') %>
64
+ <%= link_to(t('cancel'), :back, data: (@page.lock && @page.lock.current_session? ? { lock: url_for([spotlight, @page.exhibit, @page.lock]) } : {}), class: 'btn btn-link', role: 'button') %>
65
65
  <%= f.submit class: 'btn btn-primary' %>
66
66
  </div>
67
67
  </div>
@@ -13,7 +13,7 @@
13
13
  <% end %>
14
14
  </ol>
15
15
  </div>
16
- <div class="form-actions float-right">
16
+ <div class="form-actions float-right float-end">
17
17
  <div class="primary-actions">
18
18
  <%= button_tag action_label(page_collection_name, :update_all), class: "btn btn-primary", disabled: disable_save_pages_button? %>
19
19
  </div>
@@ -1,7 +1,7 @@
1
1
  <% views = blacklight_view_config_for_search_block(block) %>
2
2
  <% if views.length > 1 -%>
3
3
  <div class="view-type">
4
- <span class="sr-only"><%= t('blacklight.search.view_title') %></span>
4
+ <span class="sr-only visually-hidden"><%= t('blacklight.search.view_title') %></span>
5
5
  <div class="view-type-group btn-group">
6
6
  <% views.each do |view, config| %>
7
7
  <%= link_to url_for(search_state.to_h.merge(view: view)), :title => t("blacklight.search.view_title.#{view}", default: t("blacklight.search.view.#{view}", default: blacklight_config.view[view].title)), :class => "btn btn-outline-secondary view-type-#{ view.to_s.parameterize } #{"active" if block_document_index_view_type(block) == view}" do %>
@@ -12,6 +12,7 @@
12
12
  class: "nav-link #{"active" if i == 0}",
13
13
  role: 'tab',
14
14
  'data-toggle' => 'tab',
15
+ 'data-bs-toggle' => 'tab',
15
16
  'aria-controls' => "external_resource_tab_#{i}"
16
17
  )
17
18
  %>
@@ -2,7 +2,7 @@
2
2
  <%= f.text_field :url %>
3
3
  <div class="form-actions">
4
4
  <div class="primary-actions">
5
- <%= cancel_link @resource, :back, class: 'btn-sizing' %>
5
+ <%= cancel_link @resource, :back, class: 'btn btn-link', role: 'button' %>
6
6
  <%= f.submit t('.add_item'), class: 'btn btn-primary' %>
7
7
  </div>
8
8
  </div>
@@ -2,7 +2,7 @@
2
2
  <%= f.url_field :url, type: "file", help: t('.help_html', link: link_to(t('.template'), template_exhibit_resources_csv_uploads_path)), label: t('.file_label') %>
3
3
  <div class="form-actions">
4
4
  <div class="primary-actions">
5
- <%= cancel_link @resource, :back, class: 'btn-sizing' %>
5
+ <%= cancel_link @resource, :back, class: 'btn btn-link', role: 'button' %>
6
6
  <%= f.submit t('.add_item'), class: 'btn btn-primary' %>
7
7
  </div>
8
8
  </div>