arclight 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.all-contributorsrc +450 -0
- data/.babelrc +3 -0
- data/.codeclimate.yml +5 -0
- data/.eslintrc +3 -0
- data/.rubocop.yml +19 -0
- data/.rubocop_todo.yml +15 -135
- data/.travis.yml +2 -2
- data/CONTRIBUTORS.md +79 -0
- data/README.md +21 -24
- data/Rakefile +0 -1
- data/app/assets/images/blacklight/bookmark.svg +1 -0
- data/app/assets/images/blacklight/collection.svg +5 -0
- data/app/assets/images/blacklight/compact.svg +1 -25
- data/app/assets/images/blacklight/container.svg +5 -0
- data/app/assets/images/blacklight/ead.svg +1 -0
- data/app/assets/images/blacklight/file.svg +5 -0
- data/app/assets/images/blacklight/folder.svg +1 -0
- data/app/assets/images/blacklight/list.svg +1 -0
- data/app/assets/images/blacklight/minus.svg +1 -0
- data/app/assets/images/blacklight/online.svg +5 -0
- data/app/assets/images/blacklight/pdf.svg +1 -0
- data/app/assets/images/blacklight/plus.svg +1 -0
- data/app/assets/images/blacklight/repository.svg +1 -0
- data/app/assets/javascripts/arclight/arclight.js +1 -3
- data/app/assets/javascripts/arclight/collection_navigation.js +36 -53
- data/app/assets/javascripts/arclight/collection_scrollspy.js +1 -1
- data/app/assets/javascripts/arclight/context_navigation.js +374 -0
- data/app/assets/javascripts/arclight/truncator.js.erb +8 -2
- data/app/assets/stylesheets/arclight/application.scss +3 -1
- data/app/assets/stylesheets/arclight/bootstrap_overrides.scss +23 -0
- data/app/assets/stylesheets/arclight/modules/context_navigation.scss +75 -0
- data/app/assets/stylesheets/arclight/modules/hierarchy_and_online_contents.scss +28 -35
- data/app/assets/stylesheets/arclight/modules/highlights.scss +2 -1
- data/app/assets/stylesheets/arclight/modules/layout.scss +128 -14
- data/app/assets/stylesheets/arclight/modules/mastheads.scss +27 -5
- data/app/assets/stylesheets/arclight/modules/repositories.scss +1 -5
- data/app/assets/stylesheets/arclight/modules/repository_card.scss +6 -7
- data/app/assets/stylesheets/arclight/modules/search_results.scss +145 -24
- data/app/assets/stylesheets/arclight/modules/show_collection.scss +38 -59
- data/app/assets/stylesheets/arclight/responsive.scss +13 -0
- data/app/assets/stylesheets/arclight/variables.scss +21 -1
- data/app/controllers/concerns/arclight/ead_format_helpers.rb +225 -0
- data/app/controllers/concerns/arclight/field_config_helpers.rb +23 -7
- data/app/factories/blacklight_field_configuration_factory.rb +1 -0
- data/app/helpers/arclight_helper.rb +197 -35
- data/app/models/arclight/document_downloads.rb +125 -0
- data/app/models/arclight/parent.rb +4 -2
- data/app/models/arclight/parents.rb +6 -4
- data/app/models/arclight/requests/aeon_external_request.rb +42 -0
- data/app/models/arclight/requests/aeon_web_ead.rb +47 -0
- data/app/models/arclight/requests/google_form.rb +2 -2
- data/app/models/concerns/arclight/catalog.rb +14 -2
- data/app/models/concerns/arclight/search_behavior.rb +27 -12
- data/app/models/concerns/arclight/solr_document.rb +29 -7
- data/app/views/arclight/_requests.html.erb +7 -0
- data/app/views/arclight/repositories/_in_person_repository.html.erb +1 -1
- data/app/views/arclight/repositories/_repository.html.erb +2 -2
- data/app/views/arclight/repositories/_repository_contact.html.erb +9 -0
- data/app/views/arclight/repositories/index.html.erb +3 -0
- data/app/views/arclight/repositories/show.html.erb +5 -4
- data/app/views/arclight/requests/_aeon_external_request_endpoint.html.erb +9 -0
- data/app/views/arclight/requests/_aeon_web_ead.html.erb +7 -0
- data/app/views/arclight/requests/_google_form.html.erb +2 -1
- data/app/views/arclight/viewers/_oembed.html.erb +2 -1
- data/app/views/catalog/_access_contents.html.erb +15 -0
- data/app/views/catalog/_arclight_abstract_or_scope.html.erb +5 -0
- data/app/views/catalog/_arclight_bookmark_control.html.erb +38 -0
- data/app/views/catalog/_arclight_document_header_icon.html.erb +1 -0
- data/app/views/catalog/_arclight_index_compact_default.html.erb +18 -11
- data/app/views/catalog/_arclight_index_default.html.erb +45 -0
- data/app/views/catalog/_arclight_index_group_document_compact_default.html.erb +19 -0
- data/app/views/catalog/_arclight_index_group_document_default.html.erb +18 -0
- data/app/views/catalog/_arclight_online_content_indicator.html.erb +1 -3
- data/app/views/catalog/_collection_contents.html.erb +2 -10
- data/app/views/catalog/_collection_context.html.erb +15 -0
- data/app/views/catalog/_collection_context_nav.html.erb +12 -0
- data/app/views/catalog/_collection_online_contents.html.erb +3 -3
- data/app/views/catalog/_component_context.html.erb +5 -0
- data/app/views/catalog/_containers.html.erb +3 -0
- data/app/views/catalog/_context_sidebar.html.erb +2 -2
- data/app/views/catalog/_document_downloads.html.erb +14 -0
- data/app/views/catalog/_group.html.erb +21 -0
- data/app/views/catalog/_group_header_compact_default.html.erb +15 -0
- data/app/views/catalog/_group_header_default.html.erb +20 -0
- data/app/views/catalog/_group_toggle.html.erb +10 -0
- data/app/views/catalog/_home.html.erb +1 -1
- data/app/views/catalog/_index_breadcrumb_default.html.erb +5 -2
- data/app/views/catalog/_index_collection_context_default.html.erb +53 -0
- data/app/views/catalog/_index_header.html.erb +3 -3
- data/app/views/catalog/_index_online_contents_default.html.erb +1 -1
- data/app/views/catalog/_online_content_label.html.erb +5 -0
- data/app/views/catalog/_search_form.html.erb +34 -0
- data/app/views/catalog/_search_results.html.erb +1 -4
- data/app/views/catalog/_show_actions_box_default.html.erb +27 -0
- data/app/views/catalog/_show_breadcrumbs_default.html.erb +5 -20
- data/app/views/catalog/_show_collection.html.erb +42 -24
- data/app/views/catalog/_show_default.html.erb +63 -35
- data/app/views/catalog/_show_upper_metadata_default.html.erb +1 -1
- data/app/views/catalog/_sort_and_per_page.html.erb +8 -0
- data/app/views/catalog/_within_collection_dropdown.html.erb +26 -0
- data/app/views/shared/_breadcrumbs.html.erb +4 -4
- data/app/views/shared/_context_sidebar.html.erb +2 -2
- data/app/views/shared/_header_navbar.html.erb +13 -17
- data/app/views/shared/_show_breadcrumbs.html.erb +27 -0
- data/arclight.gemspec +5 -6
- data/config/i18n-tasks.yml +2 -1
- data/config/locales/arclight.en.yml +54 -21
- data/config/repositories.yml +0 -0
- data/lib/arclight/engine.rb +22 -12
- data/lib/arclight/hash_absolute_xpath.rb +11 -7
- data/lib/arclight/level_label.rb +46 -0
- data/lib/arclight/normalized_date.rb +2 -2
- data/lib/arclight/normalized_id.rb +1 -0
- data/lib/arclight/normalized_title.rb +1 -0
- data/lib/arclight/repository.rb +58 -5
- data/lib/arclight/traject/ead2_config.rb +178 -159
- data/lib/arclight/traject/nokogiri_namespaceless_reader.rb +22 -0
- data/lib/arclight/version.rb +1 -1
- data/lib/arclight/viewers/oembed.rb +1 -0
- data/lib/arclight/year_range.rb +9 -1
- data/lib/generators/arclight/install_generator.rb +5 -1
- data/lib/generators/arclight/templates/catalog_controller.rb +128 -100
- data/lib/generators/arclight/templates/config/downloads.yml +12 -0
- data/lib/generators/arclight/templates/config/repositories.yml +20 -2
- data/lib/generators/arclight/update_generator.rb +1 -1
- data/lib/tasks/index.rake +18 -20
- data/package.json +8 -1
- data/solr/conf/schema.xml +51 -292
- data/solr/conf/solrconfig.xml +40 -125
- data/tasks/arclight.rake +1 -0
- data/vendor/assets/javascripts/responsiveTruncator.js +2 -2
- metadata +71 -44
- data/app/assets/javascripts/arclight/collection_context.js +0 -18
- data/app/assets/javascripts/arclight/component_ancestors.js +0 -56
- data/app/assets/javascripts/arclight/search_results.js +0 -15
- data/app/assets/stylesheets/arclight/modules/sidebar.scss +0 -21
- data/app/views/catalog/_collection_count.html.erb +0 -7
- data/app/views/catalog/_collection_downloads.html.erb +0 -15
- data/app/views/catalog/_collection_overview.html.erb +0 -7
- data/app/views/catalog/_component_contents.html.erb +0 -16
- data/app/views/catalog/_component_overview.html.erb +0 -40
- data/app/views/catalog/_index_header_hierarchy_default.html.erb +0 -42
- data/app/views/catalog/_index_hierarchy_default.html.erb +0 -28
- data/app/views/catalog/_results_histogram.html.erb +0 -15
- data/app/views/catalog/_show_component_sidebar.html.erb +0 -12
- data/app/views/catalog/_show_sidebar.html.erb +0 -22
- data/lib/arclight/custom_component.rb +0 -99
- data/lib/arclight/custom_document.rb +0 -93
- data/lib/arclight/indexer.rb +0 -9
- data/lib/arclight/shared_indexing_behavior.rb +0 -97
- data/lib/arclight/shared_terminology_behavior.rb +0 -65
- data/lib/arclight/solr_ead_indexer_ext.rb +0 -155
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
Blacklight.onLoad(function () {
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
$('[data-arclight-collection-context="true"]').each(function (i, element) {
|
|
5
|
-
var $el = $(element);
|
|
6
|
-
var data = $el.data();
|
|
7
|
-
$.ajax({
|
|
8
|
-
url: data.arclightCollectionContextUrl
|
|
9
|
-
}).done(function (response) {
|
|
10
|
-
var resp = $.parseHTML(response);
|
|
11
|
-
var $doc = $(resp);
|
|
12
|
-
var link = $('<a></a>').attr('href', data.arclightCollectionContextUrl);
|
|
13
|
-
var addedSection = $doc.find('.al-show-header-section');
|
|
14
|
-
addedSection.find('h1').wrapInner(link);
|
|
15
|
-
$el.hide().html(addedSection).fadeIn(500);
|
|
16
|
-
});
|
|
17
|
-
});
|
|
18
|
-
});
|
|
@@ -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,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,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,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,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,42 +0,0 @@
|
|
|
1
|
-
<div class="documentHeader row" data-document-id="<%= document.id %>">
|
|
2
|
-
<% requestable = item_requestable?('', { document: document }) %>
|
|
3
|
-
<h3 class="index_title document-title-heading col-md-8">
|
|
4
|
-
<% if document.containers.present? %>
|
|
5
|
-
<span class="document-title-containers">
|
|
6
|
-
<%= document.containers.join(', ') %>:
|
|
7
|
-
</span>
|
|
8
|
-
<% end %>
|
|
9
|
-
<% counter = document_counter_with_offset(document_counter) %>
|
|
10
|
-
<%= link_to_document document, document_show_link_field(document), counter: counter %>
|
|
11
|
-
<%= render_document_partial(document, 'arclight_online_content_indicator') %>
|
|
12
|
-
<% if document.children? %>
|
|
13
|
-
<div class='al-hierarchy-children-status'>
|
|
14
|
-
<span class='badge badge-default al-number-of-children-badge'>
|
|
15
|
-
<%= t(:'arclight.views.index.number_of_children', count: document.number_of_children) %>
|
|
16
|
-
<% unless hierarchy_component_context? %>
|
|
17
|
-
<%= link_to(
|
|
18
|
-
t('arclight.hierarchy.view_all'),
|
|
19
|
-
"##{document.reference}-collapsible-hierarchy",
|
|
20
|
-
class: 'al-toggle-view-all',
|
|
21
|
-
data: {
|
|
22
|
-
toggle: 'collapse'
|
|
23
|
-
}
|
|
24
|
-
)
|
|
25
|
-
%>
|
|
26
|
-
<% end %>
|
|
27
|
-
</span>
|
|
28
|
-
</div>
|
|
29
|
-
<% end %>
|
|
30
|
-
</h3>
|
|
31
|
-
|
|
32
|
-
<div class="al-hierarchy-side-content float-right col">
|
|
33
|
-
<% unless hierarchy_component_context? %>
|
|
34
|
-
<div class="index-document-functions">
|
|
35
|
-
<%= render partial: 'catalog/bookmark_control', locals: { document: document } %>
|
|
36
|
-
</div>
|
|
37
|
-
<% end %>
|
|
38
|
-
<% if requestable %>
|
|
39
|
-
<%= render partial: 'arclight/requests/google_form', locals: { document: document } %>
|
|
40
|
-
<% end %>
|
|
41
|
-
</div>
|
|
42
|
-
</div>
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
<%= content_tag('div', class: 'al-document-abstract-or-scope') do %>
|
|
2
|
-
<%= content_tag(:h4, I18n.t('arclight.hierarchy.scope_and_contents'), class: 'al-hierarchy-sub-heading') %>
|
|
3
|
-
<%= content_tag('div', 'data-arclight-truncate' => true) do %>
|
|
4
|
-
<%= document.abstract_or_scope %>
|
|
5
|
-
<% end %>
|
|
6
|
-
<% end if document.abstract_or_scope %>
|
|
7
|
-
|
|
8
|
-
<% if document.number_of_children > 0 %>
|
|
9
|
-
<%= content_tag(:div, id: "#{document.reference}-collapsible-hierarchy",
|
|
10
|
-
class: "collapse al-hierarchy-level-#{document.component_level}",
|
|
11
|
-
) do %>
|
|
12
|
-
|
|
13
|
-
<%= content_tag(
|
|
14
|
-
:div, '',
|
|
15
|
-
class: 'al-contents',
|
|
16
|
-
data: {
|
|
17
|
-
arclight: {
|
|
18
|
-
hierarchy: true,
|
|
19
|
-
level: document.component_level + 1,
|
|
20
|
-
path: search_catalog_path,
|
|
21
|
-
name: document.collection_name,
|
|
22
|
-
parent: document.reference
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
) %>
|
|
26
|
-
|
|
27
|
-
<% end %>
|
|
28
|
-
<% end %>
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
<div class='al-data-range-histogram row'>
|
|
2
|
-
<div class='col-md-12'>
|
|
3
|
-
<div id='al-date-range-histogram-content' class='collapse facet-content'>
|
|
4
|
-
<%= render partial: 'arclight_rangelimit', locals: { field_name: :date_range_sim, solr_field: :date_range_sim } %>
|
|
5
|
-
</div>
|
|
6
|
-
<a class='float-right' data-toggle='collapse' href='#al-date-range-histogram-content' aria-expanded='false' aria-controls='al-date-range-histogram-content'>
|
|
7
|
-
<span id="al-date-range-histogram-show">
|
|
8
|
-
<%= t('arclight.date_range_histogram.show') %>
|
|
9
|
-
</span>
|
|
10
|
-
<span id="al-date-range-histogram-hide" hidden="hidden">
|
|
11
|
-
<%= t('arclight.date_range_histogram.hide') %>
|
|
12
|
-
</span>
|
|
13
|
-
</a>
|
|
14
|
-
</div>
|
|
15
|
-
</div>
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
<div class='al-sticky-sidebar'>
|
|
2
|
-
<h2 class="sr-only">Sidebar</h2>
|
|
3
|
-
|
|
4
|
-
<% unless blacklight_config.show.component_sidebar_items.nil? %>
|
|
5
|
-
<div id="accordion" role="tablist" aria-multiselectable="true">
|
|
6
|
-
<% items = blacklight_config.show.component_sidebar_items.select { |i| fields_have_content?(@document, i) } %>
|
|
7
|
-
<% items.each_with_index do |item, index| %>
|
|
8
|
-
<%= render partial: 'context_card', locals: { document: @document, field_accessor: item, card_index: index} %>
|
|
9
|
-
<% end %>
|
|
10
|
-
</div>
|
|
11
|
-
<% end %>
|
|
12
|
-
</div>
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
<div class='al-sticky-sidebar'>
|
|
2
|
-
<h2 class="sr-only">Sidebar</h2>
|
|
3
|
-
<div class='al-sidebar-navigation-overview card'>
|
|
4
|
-
<div class='card-header'>
|
|
5
|
-
<h3 class="mb-0"><%= t('arclight.views.show.navigation_sidebar.title') %></h3>
|
|
6
|
-
</div>
|
|
7
|
-
<div class='card-body'>
|
|
8
|
-
<ul class='nav nav-pills flex-column'>
|
|
9
|
-
<% unless blacklight_config.show.metadata_partials.nil? %>
|
|
10
|
-
<% blacklight_config.show.metadata_partials.each do |item| %>
|
|
11
|
-
<% next unless fields_have_content?(@document, item) %>
|
|
12
|
-
<li class='nav-item'>
|
|
13
|
-
<%= link_to t("arclight.views.show.sections.#{item}"), "##{t("arclight.views.show.sections.#{item}").parameterize}", class: 'nav-link' %>
|
|
14
|
-
</li>
|
|
15
|
-
<% end %>
|
|
16
|
-
<% end %>
|
|
17
|
-
</ul>
|
|
18
|
-
</div>
|
|
19
|
-
</div>
|
|
20
|
-
|
|
21
|
-
<%= render 'shared/context_sidebar' %>
|
|
22
|
-
</div>
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Arclight
|
|
4
|
-
##
|
|
5
|
-
# An Arclight custom component indexing code
|
|
6
|
-
class CustomComponent < SolrEad::Component
|
|
7
|
-
extend Arclight::SharedTerminologyBehavior
|
|
8
|
-
include Arclight::SharedIndexingBehavior
|
|
9
|
-
use_terminology SolrEad::Component
|
|
10
|
-
|
|
11
|
-
# we extend the terminology to provide additional fields and/or indexing strategies
|
|
12
|
-
# than `solr_ead` provides as-is. in many cases we're doing redundant indexing, but
|
|
13
|
-
# we're trying to modify the `solr_ead` gem as little as possible
|
|
14
|
-
extend_terminology do |t|
|
|
15
|
-
# identifiers
|
|
16
|
-
t.level(path: 'c/@level', index_as: %i[displayable]) # machine-readable for string `level_ssm`
|
|
17
|
-
t.otherlevel(path: 'c/@otherlevel', index_as: %i[displayable])
|
|
18
|
-
t.ref_(path: '/c/@id', index_as: %i[displayable])
|
|
19
|
-
|
|
20
|
-
# facets
|
|
21
|
-
t.creator(path: "c/did/origination[@label='creator']/*/text()", index_as: %i[displayable facetable symbol])
|
|
22
|
-
t.places(path: 'c/controlaccess/geogname/text()', index_as: %i[displayable facetable symbol])
|
|
23
|
-
|
|
24
|
-
add_unitid(t, 'c/')
|
|
25
|
-
add_extent(t, 'c/')
|
|
26
|
-
add_dates(t, 'c/')
|
|
27
|
-
add_searchable_notes(t, 'c/')
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def to_solr(solr_doc = {})
|
|
31
|
-
super
|
|
32
|
-
solr_doc['id'] = Arclight::NormalizedId.new(solr_doc['id']).to_s
|
|
33
|
-
solr_doc['creator_sort'] = creator.to_a.join(', ') if creator.present?
|
|
34
|
-
add_component_fields(solr_doc)
|
|
35
|
-
solr_doc
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
private
|
|
39
|
-
|
|
40
|
-
def add_component_fields(solr_doc)
|
|
41
|
-
component_field_definitions.each do |field|
|
|
42
|
-
# we want to use `set_field` rather than `insert_field` since we may be overriding fields
|
|
43
|
-
Solrizer.set_field(solr_doc, field[:name], field[:value], field[:index_as])
|
|
44
|
-
end
|
|
45
|
-
add_date_ranges(solr_doc)
|
|
46
|
-
add_normalized_title(solr_doc)
|
|
47
|
-
resolve_repository(solr_doc)
|
|
48
|
-
add_digital_content(prefix: 'c', solr_doc: solr_doc)
|
|
49
|
-
add_digital_content(prefix: 'c/did', solr_doc: solr_doc)
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def component_field_definitions
|
|
53
|
-
[
|
|
54
|
-
{ name: 'level', value: formatted_level, index_as: :facetable },
|
|
55
|
-
{ name: 'names', value: names, index_as: :symbol },
|
|
56
|
-
{ name: 'access_subjects', value: access_subjects, index_as: :symbol },
|
|
57
|
-
{ name: 'containers', value: containers, index_as: :symbol },
|
|
58
|
-
{ name: 'has_online_content', value: online_content?, index_as: :symbol }
|
|
59
|
-
]
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def resolve_repository(solr_doc)
|
|
63
|
-
repository = solr_doc[Solrizer.solr_name('repository', :displayable)]
|
|
64
|
-
%i[displayable facetable].each do |index_as|
|
|
65
|
-
Solrizer.set_field(solr_doc, 'repository', repository_as_configured(repository), index_as)
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
# @see http://eadiva.com/2/c/
|
|
70
|
-
def formatted_level
|
|
71
|
-
# terminology definitions for level yield Arrays and in this case single values
|
|
72
|
-
# TODO: OM changes the behavior of `level = level.first` such that it always returns `nil`
|
|
73
|
-
# so need our own local variable here
|
|
74
|
-
actual_level = level.first.to_s if level.respond_to? :first
|
|
75
|
-
|
|
76
|
-
if actual_level == 'otherlevel'
|
|
77
|
-
alternative_level = otherlevel.first.to_s if otherlevel.respond_to? :first
|
|
78
|
-
alternative_level.present? ? alternative_level : 'Other'
|
|
79
|
-
elsif actual_level.present?
|
|
80
|
-
actual_level.capitalize
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
def names
|
|
85
|
-
names_array(%w[corpname famname name persname], parent: 'c')
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
def access_subjects
|
|
89
|
-
subjects_array(%w[subject function occupation genreform], parent: 'c')
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
def containers
|
|
93
|
-
contains = search('//container').to_a
|
|
94
|
-
contains.map do |c|
|
|
95
|
-
"#{c.attributes['type'].try(:value)} #{c.text}".strip
|
|
96
|
-
end
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
end
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Arclight
|
|
4
|
-
##
|
|
5
|
-
# An Arclight custom document indexing code
|
|
6
|
-
class CustomDocument < SolrEad::Document
|
|
7
|
-
extend Arclight::SharedTerminologyBehavior
|
|
8
|
-
include Arclight::SharedIndexingBehavior
|
|
9
|
-
use_terminology SolrEad::Document
|
|
10
|
-
|
|
11
|
-
# we extend the terminology to provide additional fields and/or indexing strategies
|
|
12
|
-
# than `solr_ead` provides as-is. in many cases we're doing redundant indexing, but
|
|
13
|
-
# we're trying to modify the `solr_ead` gem as little as possible
|
|
14
|
-
extend_terminology do |t|
|
|
15
|
-
# facets
|
|
16
|
-
t.repository(path: 'archdesc/did/repository/corpname/text() | archdesc/did/repository/name/text()', index_as: %i[displayable facetable])
|
|
17
|
-
t.creator(path: "archdesc/did/origination[@label='creator']/*/text()", index_as: %i[displayable facetable symbol])
|
|
18
|
-
t.creator_persname(path: "archdesc/did/origination[@label='creator']/persname/text()", index_as: %i[displayable facetable symbol])
|
|
19
|
-
t.creator_corpname(path: "archdesc/did/origination[@label='creator']/corpname/text()", index_as: %i[displayable facetable symbol])
|
|
20
|
-
t.creator_famname(path: "archdesc/did/origination[@label='creator']/famname/text()", index_as: %i[displayable facetable symbol])
|
|
21
|
-
t.function(path: 'archdesc/controlaccess/function/text()', index_as: %i[displayable facetable])
|
|
22
|
-
t.occupation(path: 'archdesc/controlaccess/occupation/text()', index_as: %i[displayable facetable])
|
|
23
|
-
t.places(path: 'archdesc/controlaccess/geogname/text()', index_as: %i[displayable facetable symbol])
|
|
24
|
-
|
|
25
|
-
add_unitid(t, 'archdesc/')
|
|
26
|
-
add_extent(t, 'archdesc/')
|
|
27
|
-
add_dates(t, 'archdesc/')
|
|
28
|
-
add_searchable_notes(t, 'archdesc/')
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def to_solr(solr_doc = {})
|
|
32
|
-
super
|
|
33
|
-
solr_doc['id'] = Arclight::NormalizedId.new(eadid.first).to_s
|
|
34
|
-
solr_doc['creator_sort'] = creator.to_a.join(', ') if creator.present?
|
|
35
|
-
add_document_fields(solr_doc)
|
|
36
|
-
solr_doc
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
private
|
|
40
|
-
|
|
41
|
-
def add_document_fields(solr_doc)
|
|
42
|
-
arclight_field_definitions.each do |field|
|
|
43
|
-
# we want to use `set_field` rather than `insert_field` since we may be overriding fields
|
|
44
|
-
Solrizer.set_field(solr_doc, field[:name], field[:value], field[:index_as])
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
add_date_ranges(solr_doc)
|
|
48
|
-
add_digital_content(prefix: 'ead/archdesc', solr_doc: solr_doc)
|
|
49
|
-
add_normalized_titles(solr_doc)
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def add_normalized_titles(solr_doc)
|
|
53
|
-
title = add_normalized_title(solr_doc)
|
|
54
|
-
Solrizer.set_field(solr_doc, 'collection', title, :facetable)
|
|
55
|
-
Solrizer.set_field(solr_doc, 'collection', title, :displayable)
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def arclight_field_definitions
|
|
59
|
-
[
|
|
60
|
-
{ name: 'level', value: 'collection', index_as: :displayable },
|
|
61
|
-
{ name: 'level', value: 'Collection', index_as: :facetable },
|
|
62
|
-
{ name: 'names', value: names, index_as: :symbol },
|
|
63
|
-
{ name: 'access_subjects', value: access_subjects, index_as: :symbol },
|
|
64
|
-
{ name: 'creators', value: creators, index_as: :symbol },
|
|
65
|
-
{ name: 'has_online_content', value: online_content?, index_as: :symbol },
|
|
66
|
-
{ name: 'repository', value: repository_as_configured(repository), index_as: :displayable },
|
|
67
|
-
{ name: 'repository', value: repository_as_configured(repository), index_as: :facetable },
|
|
68
|
-
{ name: 'names_coll', value: names_coll, index_as: :symbol }
|
|
69
|
-
]
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def names
|
|
73
|
-
[corpname, famname, name, persname].flatten.compact.uniq - repository
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
def names_coll
|
|
77
|
-
names_array(%w[corpname famname name persname], parent: 'archdesc')
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
def creators
|
|
81
|
-
[creator_persname, creator_corpname, creator_famname].flatten.compact.uniq - repository
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
# Combine subjets into one group from
|
|
85
|
-
# <controlaccess/><subject></subject>
|
|
86
|
-
# <controlaccess/><function></function>
|
|
87
|
-
# <controlaccess/><genreform></genreform>
|
|
88
|
-
# <controlaccess/><occupation></occupation>
|
|
89
|
-
def access_subjects
|
|
90
|
-
subjects_array(%w[subject function occupation genreform], parent: 'archdesc')
|
|
91
|
-
end
|
|
92
|
-
end
|
|
93
|
-
end
|