commonwealth-vlr-engine 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -0
- data/app/assets/stylesheets/commonwealth-vlr-engine/advanced_search.scss +1 -1
- data/app/assets/stylesheets/commonwealth-vlr-engine/basic_search.scss +6 -1
- data/app/assets/stylesheets/commonwealth-vlr-engine/commonwealth-vlr-engine.css +1 -0
- data/app/assets/stylesheets/commonwealth-vlr-engine/folders.scss +1 -1
- data/app/assets/stylesheets/commonwealth-vlr-engine/header.scss +9 -0
- data/app/assets/stylesheets/commonwealth-vlr-engine/home.scss +9 -0
- data/app/assets/stylesheets/commonwealth-vlr-engine/twitter_typeahead.scss +9 -0
- data/app/controllers/blacklight_advanced_search/advanced_controller.rb +12 -48
- data/app/controllers/bookmarks_controller.rb +8 -8
- data/app/controllers/collections_controller.rb +10 -26
- data/app/controllers/folder_items_actions_controller.rb +2 -2
- data/app/controllers/folders_controller.rb +10 -6
- data/app/controllers/image_viewer_controller.rb +2 -2
- data/app/controllers/institutions_controller.rb +13 -12
- data/app/controllers/ocr_search_controller.rb +2 -8
- data/app/controllers/saved_searches_controller.rb +8 -0
- data/app/controllers/search_history_controller.rb +8 -0
- data/app/helpers/commonwealth_vlr_engine/application_helper.rb +37 -37
- data/app/helpers/commonwealth_vlr_engine/blacklight_helper.rb +3 -11
- data/app/helpers/commonwealth_vlr_engine/blacklight_url_helper.rb +1 -16
- data/app/helpers/commonwealth_vlr_engine/catalog_helper.rb +1 -1
- data/app/helpers/commonwealth_vlr_engine/collections_helper_behavior.rb +1 -1
- data/app/helpers/commonwealth_vlr_engine/institutions_helper_behavior.rb +2 -2
- data/app/helpers/commonwealth_vlr_engine/vlr_blacklight_maps_helper_behavior.rb +10 -6
- data/app/views/advanced/_advanced_search_fields.html.erb +2 -2
- data/app/views/advanced/_advanced_search_form.html.erb +2 -2
- data/app/views/advanced/index.html.erb +1 -1
- data/app/views/bookmarks/index.html.erb +1 -1
- data/app/views/catalog/_basic_search.html.erb +5 -3
- data/app/views/catalog/_constraints.html.erb +1 -1
- data/app/views/catalog/_facet_limit_series.html.erb +7 -5
- data/app/views/catalog/_index_gallery.html.erb +1 -3
- data/app/views/catalog/{_index_map_institutions.html.erb → _index_mapview_institutions.html.erb} +0 -0
- data/app/views/catalog/_search_form.html.erb +14 -4
- data/app/views/catalog/_show_partials/_show_default_metadata.html.erb +9 -0
- data/app/views/catalog/_show_partials/_show_flagged_notice.html.erb +1 -1
- data/app/views/catalog/_show_tools.html.erb +2 -2
- data/app/views/catalog/_zero_results.html.erb +1 -1
- data/app/views/collections/_search_form_collection.html.erb +1 -1
- data/app/views/collections/show.html.erb +1 -1
- data/app/views/feedback/complete.html.erb +1 -1
- data/app/views/institutions/_search_form_institution.html.erb +1 -1
- data/app/views/layouts/commonwealth-vlr-engine.html.erb +2 -2
- data/app/views/ocr_search/_search_form_ocr.html.erb +1 -1
- data/app/views/pages/home.html.erb +2 -1
- data/app/views/saved_searches/index.html.erb +4 -4
- data/app/views/search_history/index.html.erb +5 -5
- data/app/views/shared/_folder_item_actions.html.erb +1 -2
- data/app/views/shared/_footer.html.erb +1 -1
- data/app/views/shared/_header_navbar.html.erb +1 -1
- data/app/views/shared/_nav_links.html.erb +2 -2
- data/app/views/shared/_search_form_header.html.erb +9 -3
- data/app/views/shared/_sitelinks_search_box.html.erb +12 -0
- data/app/views/shared/_tools.html.erb +2 -2
- data/app/views/shared/_user_util_links.html.erb +2 -2
- data/app/views/users/show.html.erb +2 -2
- data/commonwealth-vlr-engine.gemspec +4 -4
- data/config/initializers/assets.rb +2 -0
- data/config/locales/commonwealth-vlr-engine.en.yml +4 -0
- data/config/routes.rb +1 -0
- data/lib/commonwealth-vlr-engine.rb +6 -16
- data/lib/commonwealth-vlr-engine/controller_override.rb +82 -47
- data/lib/commonwealth-vlr-engine/engine.rb +6 -4
- data/lib/commonwealth-vlr-engine/render_constraints_override.rb +3 -2
- data/lib/commonwealth-vlr-engine/search_builder/collections_search_builder.rb +14 -0
- data/lib/commonwealth-vlr-engine/{commonwealth_search_builder.rb → search_builder/commonwealth_search_builder_behavior.rb} +9 -2
- data/lib/commonwealth-vlr-engine/search_builder/flagged_search_builder.rb +14 -0
- data/lib/commonwealth-vlr-engine/search_builder/institutions_search_builder.rb +11 -0
- data/lib/commonwealth-vlr-engine/search_builder/mlt_search_builder.rb +15 -0
- data/lib/commonwealth-vlr-engine/search_builder/ocr_search_builder.rb +10 -0
- data/lib/commonwealth-vlr-engine/version.rb +1 -1
- data/lib/generators/commonwealth_vlr_engine/controller_generator.rb +1 -2
- data/lib/generators/commonwealth_vlr_engine/localassets_generator.rb +1 -1
- data/lib/generators/commonwealth_vlr_engine/model_generator.rb +3 -16
- data/lib/generators/commonwealth_vlr_engine/routes_generator.rb +8 -0
- data/lib/generators/commonwealth_vlr_engine/templates/commonwealth_search_builder.rb +17 -0
- data/lib/generators/commonwealth_vlr_engine/templates/{commonwealth_vlr_engine.css.scss → commonwealth_vlr_engine.scss} +0 -0
- data/spec/controllers/catalog_controller_spec.rb +20 -3
- data/spec/controllers/collections_controller_spec.rb +2 -2
- data/spec/controllers/folder_items_actions_controller_spec.rb +2 -2
- data/spec/controllers/institutions_controller_spec.rb +13 -0
- data/spec/controllers/ocr_search_controller_spec.rb +4 -0
- data/spec/features/more_like_this_search_spec.rb +1 -1
- data/spec/features/ocr_search/index_spec.rb +1 -1
- data/spec/helpers/institutions_helper_spec.rb +10 -5
- data/spec/lib/commonwealth-vlr-engine/search_builder/collections_search_builder_spec.rb +19 -0
- data/spec/lib/commonwealth-vlr-engine/search_builder/commonwealth_search_builder_behavior_spec.rb +116 -0
- data/spec/lib/commonwealth-vlr-engine/search_builder/flagged_search_builder_spec.rb +19 -0
- data/spec/lib/commonwealth-vlr-engine/search_builder/institutions_search_builder_spec.rb +19 -0
- data/spec/lib/commonwealth-vlr-engine/search_builder/mlt_search_builder_spec.rb +19 -0
- data/spec/lib/commonwealth-vlr-engine/search_builder/ocr_search_builder_spec.rb +19 -0
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +2 -0
- data/tasks/vlr_engine.rake +1 -1
- metadata +38 -23
- data/app/views/bookmarks/_tools.html.erb +0 -25
- data/app/views/catalog/_index_list_default.html.erb +0 -13
- data/lib/commonwealth-vlr-engine/route_sets.rb +0 -49
- data/lib/commonwealth-vlr-engine/routes.rb +0 -21
- data/spec/lib/commonwealth-vlr-engine/commonwealth_search_builder_spec.rb +0 -101
- data/spec/lib/commonwealth-vlr-engine/controller_override_spec.rb +0 -41
@@ -20,14 +20,14 @@
|
|
20
20
|
<% if @document.respond_to?( :to_email_text ) %>
|
21
21
|
<li class="email">
|
22
22
|
<%= link_to content_tag(:span, '', :class => 'glyphicon glyphicon-envelope') + ' ' + t('blacklight.tools.email'),
|
23
|
-
|
23
|
+
email_solr_document_path(:id => @document),
|
24
24
|
{:id => 'emailLink', :data => {:ajax_modal => 'trigger'}} %>
|
25
25
|
</li>
|
26
26
|
<%- end -%>
|
27
27
|
<%# if (@document.respond_to?(:export_as_mla_citation_txt) || @document.respond_to?(:export_as_apa_citation_txt)) %>
|
28
28
|
<li class="cite">
|
29
29
|
<%= link_to content_tag(:span, '', :class => 'glyphicon glyphicon-list-alt') + ' ' + t('blacklight.tools.citation'),
|
30
|
-
|
30
|
+
citation_solr_document_path(:id => @document),
|
31
31
|
{:id => 'citeLink', :data => {:ajax_modal => 'trigger'}} %>
|
32
32
|
</li>
|
33
33
|
<%# end %>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<li><%= t 'blacklight.search.zero_results.search_fields', :search_fields => search_field_label(params) %> --
|
11
11
|
<%= link_to t('blacklight.search.zero_results.search_everything',
|
12
12
|
field: blacklight_config.default_search_field.label),
|
13
|
-
url_for(params_for_search(:search_field=>blacklight_config.default_search_field.key)) %>
|
13
|
+
url_for(search_state.params_for_search(:search_field=>blacklight_config.default_search_field.key)) %>
|
14
14
|
</li>
|
15
15
|
<%- end %>
|
16
16
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<%= form_tag search_action_url,
|
3
3
|
:method => :get,
|
4
4
|
:class => 'search-query-form form-inline collection-search' do %>
|
5
|
-
<%= render_hash_as_hidden_fields(params_for_search(:f => params[:f]).except('q', 'search_field', 'qt', 'page')) %>
|
5
|
+
<%= render_hash_as_hidden_fields(search_state.params_for_search(:f => params[:f]).except('q', 'search_field', 'qt', 'page')) %>
|
6
6
|
|
7
7
|
<div class="input-group pull-left">
|
8
8
|
<label for="q_coll" class="sr-only"><%= t('blacklight.search.form.collection') %></label>
|
@@ -82,7 +82,7 @@
|
|
82
82
|
<% unless @response.aggregations[map_facet_field].items.empty? %>
|
83
83
|
<div id="blacklight-collection-map-container">
|
84
84
|
<h4><%= t('blacklight.collections.map.title') %></h4>
|
85
|
-
<%= render :partial => 'catalog/
|
85
|
+
<%= render :partial => 'catalog/index_mapview',
|
86
86
|
:locals => {:geojson_features => serialize_geojson(map_facet_values,
|
87
87
|
'index')} %>
|
88
88
|
</div>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
:method => :get,
|
4
4
|
:class => 'search-query-form form-inline institution-search' do %>
|
5
5
|
|
6
|
-
<%= render_hash_as_hidden_fields(params_for_search(:f => params[:f]).except('q', 'search_field', 'qt', 'page')) %>
|
6
|
+
<%= render_hash_as_hidden_fields(search_state.params_for_search(:f => params[:f]).except('q', 'search_field', 'qt', 'page')) %>
|
7
7
|
|
8
8
|
<div class="input-group pull-left">
|
9
9
|
<label for="q_inst" class="sr-only"><%= t('blacklight.search.form.institution') %></label>
|
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
<title><%= render_page_title %></title>
|
20
20
|
<%= opensearch_description_tag application_name, opensearch_catalog_url(:format => 'xml') %>
|
21
|
-
<%= favicon_link_tag
|
21
|
+
<%= favicon_link_tag %>
|
22
22
|
<%= favicon_link_tag 'dc_mobile-icons_60x60.png', :rel => 'apple-touch-icon', :type => 'image/png' %>
|
23
23
|
<%= favicon_link_tag 'dc_mobile-icons_76x76.png', :rel => 'apple-touch-icon', :type => 'image/png', :sizes => '76x76' %>
|
24
24
|
<%= favicon_link_tag 'dc_mobile-icons_120x120.png', :rel => 'apple-touch-icon', :type => 'image/png', :sizes => '120x120' %>
|
@@ -43,7 +43,7 @@
|
|
43
43
|
<%= render :partial => 'shared/ajax_modal' %>
|
44
44
|
|
45
45
|
<!-- /container -->
|
46
|
-
<div id="main-container" class="
|
46
|
+
<div id="main-container" class="<%= container_classes %>">
|
47
47
|
|
48
48
|
<%= content_tag :h1, application_name, class: 'sr-only application-heading' %>
|
49
49
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
:method => :get,
|
4
4
|
:class => 'ocr-search-form',
|
5
5
|
:data => {:ajax_modal => 'preserve'} do %>
|
6
|
-
<%= render_hash_as_hidden_fields(params_for_search(:id => params[:id]).except('q', 'ocr_q', 'search_field', 'qt', 'page')) %>
|
6
|
+
<%= render_hash_as_hidden_fields(search_state.params_for_search(:id => params[:id]).except('q', 'ocr_q', 'search_field', 'qt', 'page')) %>
|
7
7
|
|
8
8
|
<div class="input-group pull-left">
|
9
9
|
<label for="q_ocr" class="sr-only"><%= t('blacklight.ocr.search.form.q') %></label>
|
@@ -1,3 +1,4 @@
|
|
1
1
|
<%# putting this in a partial so it can be called from catalog#index %>
|
2
2
|
<%# when no search params present %>
|
3
|
-
<%= render
|
3
|
+
<%= render 'pages/_home_partials/home_content' %>
|
4
|
+
<%= render 'shared/sitelinks_search_box' %>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<% @page_title = t('blacklight.saved_searches.
|
1
|
+
<% @page_title = t('blacklight.saved_searches.page_title', :application_name => application_name) %>
|
2
2
|
<div class="col-sm-9" id="searches_content">
|
3
3
|
|
4
4
|
<div id="breadcrumb">
|
@@ -32,7 +32,7 @@
|
|
32
32
|
<%= t('blacklight.saved_searches.list_title') %>
|
33
33
|
<small>
|
34
34
|
[<%= link_to t('blacklight.saved_searches.clear.action_title'),
|
35
|
-
|
35
|
+
blacklight.clear_saved_searches_path,
|
36
36
|
:class => 'clear_all',
|
37
37
|
:method => :delete,
|
38
38
|
:data => { :confirm => t('blacklight.saved_searches.clear.action_confirm') } %>]
|
@@ -43,10 +43,10 @@
|
|
43
43
|
<tr>
|
44
44
|
<td><%= link_to_previous_search(search.query_params) %></td>
|
45
45
|
<td><%# button_to content_tag(:i, '', :class => 'icon-remove'),
|
46
|
-
forget_search_path(search.id) %>
|
46
|
+
blacklight.forget_search_path(search.id) %>
|
47
47
|
<%= link_to(content_tag(:span, '',
|
48
48
|
:class => 'glyphicon glyphicon-remove'),
|
49
|
-
forget_search_path(search.id),
|
49
|
+
blacklight.forget_search_path(search.id),
|
50
50
|
:class => 'delete_search',
|
51
51
|
:method => 'post',
|
52
52
|
:title => t('blacklight.saved_searches.delete'))
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<% @page_title = t('blacklight.search_history.
|
1
|
+
<% @page_title = t('blacklight.search_history.page_title', :application_name => application_name) %>
|
2
2
|
<div class="col-sm-9" id="search_history_content">
|
3
3
|
<%# sidebar_items << capture do %>
|
4
4
|
<!-- <p><%# link_back_to_catalog %></p> -->
|
@@ -30,7 +30,7 @@
|
|
30
30
|
<%=t('blacklight.search_history.recent')%>
|
31
31
|
<small>
|
32
32
|
[<%= link_to t('blacklight.search_history.clear.action_title'),
|
33
|
-
clear_search_history_path,
|
33
|
+
blacklight.clear_search_history_path,
|
34
34
|
:id => 'clear_search_history',
|
35
35
|
:method => :delete,
|
36
36
|
:data => { :confirm => t('blacklight.search_history.clear.action_confirm') } %>]
|
@@ -43,12 +43,12 @@
|
|
43
43
|
<%- if has_user_authentication_provider? -%>
|
44
44
|
<td class="actions">
|
45
45
|
<%- if current_or_guest_user && search.saved? -%>
|
46
|
-
<%# button_to t('blacklight.search_history.forget'), forget_search_path(search.id), :class => 'btn btn-default' %>
|
46
|
+
<%# button_to t('blacklight.search_history.forget'), blacklight.forget_search_path(search.id), :class => 'btn btn-default' %>
|
47
47
|
<%= content_tag(:span, '', :class => 'glyphicon glyphicon-ok') %>
|
48
48
|
In your <%= link_to t('blacklight.saved_searches.title'),
|
49
|
-
|
49
|
+
blacklight.saved_searches_path %>
|
50
50
|
<%- else -%>
|
51
|
-
<%= button_to t('blacklight.search_history.save'), save_search_path(search.id), :method => :put, :class => 'btn btn-default' %>
|
51
|
+
<%= button_to t('blacklight.search_history.save'), blacklight.save_search_path(search.id), :method => :put, :class => 'btn btn-default' %>
|
52
52
|
<%- end -%>
|
53
53
|
</td>
|
54
54
|
<%- end -%>
|
@@ -18,7 +18,6 @@
|
|
18
18
|
<% end %>
|
19
19
|
|
20
20
|
<% if current_user && !current_user.folders.empty? %>
|
21
|
-
<% existing_folders = current_user.folders %>
|
22
21
|
<div class="btn-group folder-item-control" id="copy_folder_item_control">
|
23
22
|
<span class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
24
23
|
<%= content_tag(:span, '', :class => 'glyphicon glyphicon-random') + ' ' + t('blacklight.tools.copy_to') %> <span class="caret"></span>
|
@@ -39,7 +38,7 @@
|
|
39
38
|
<% end %>
|
40
39
|
</li>
|
41
40
|
<% end %>
|
42
|
-
<%
|
41
|
+
<% current_user.folders.each do |folder| %>
|
43
42
|
<% if @folder && folder.id == @folder.id %>
|
44
43
|
<%# do nothing %>
|
45
44
|
<% else %>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<div id="header-navbar" class="navbar" role="navigation">
|
2
|
-
<div class="
|
2
|
+
<div class="<%= container_classes %>">
|
3
3
|
<div class="navbar-header">
|
4
4
|
<button id="nav_collapse_button" type="button" class="navbar-toggle btn collapsed" data-toggle="collapse" data-target="#user-util-collapse">
|
5
5
|
<span class="glyphicon glyphicon-search"></span>
|
@@ -1,9 +1,9 @@
|
|
1
1
|
<% nav_links = {
|
2
2
|
:search => {
|
3
3
|
:basic => {:nav_link_title => t('blacklight.search.nav.basic'),
|
4
|
-
:nav_link_path =>
|
4
|
+
:nav_link_path => search_catalog_path},
|
5
5
|
:advanced => {:nav_link_title => t('blacklight.search.nav.advanced'),
|
6
|
-
:nav_link_path => advanced_search_path}
|
6
|
+
:nav_link_path => blacklight_advanced_search_engine.advanced_search_path}
|
7
7
|
},
|
8
8
|
:explore => {},
|
9
9
|
:about => {
|
@@ -1,9 +1,15 @@
|
|
1
1
|
<%= form_tag search_action_url, :method => :get, :class => 'header-search-form form-inline' do %>
|
2
|
-
<%= render_hash_as_hidden_fields(params_for_search(:search_field => default_search_field[:key]).except('q', 'qt', 'page', 'utf8', 'f', 'sort', 'mlt_id', 'coordinates', 'spatial_search_type', 'view')) %>
|
2
|
+
<%= render_hash_as_hidden_fields(search_state.params_for_search(:search_field => default_search_field[:key]).except('q', 'qt', 'page', 'utf8', 'f', 'sort', 'mlt_id', 'coordinates', 'spatial_search_type', 'view')) %>
|
3
3
|
|
4
4
|
<div class="input-group pull-left">
|
5
|
-
<label for="q" class="sr-only"><%= t('blacklight.search.form.
|
6
|
-
<%= text_field_tag :q,
|
5
|
+
<label for="q" class="sr-only"><%= t('blacklight.search.form.search.label') %></label>
|
6
|
+
<%= text_field_tag :q,
|
7
|
+
nil,
|
8
|
+
placeholder: t('blacklight.search.form.search.placeholder'),
|
9
|
+
class: 'search_q q form-control input-sm',
|
10
|
+
id: 'q',
|
11
|
+
data: { autocomplete_enabled: autocomplete_enabled?,
|
12
|
+
autocomplete_path: blacklight.suggest_index_path } %>
|
7
13
|
<span class="input-group-btn">
|
8
14
|
<button type="submit" class="btn btn-primary search-btn btn-xs" id="search">
|
9
15
|
<span class="submit-search-text"><%=t('blacklight.search.form.submit')%></span>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<script type="application/ld+json">
|
2
|
+
{
|
3
|
+
"@context": "http://schema.org",
|
4
|
+
"@type": "WebSite",
|
5
|
+
"url": "<%= root_url %>",
|
6
|
+
"potentialAction": {
|
7
|
+
"@type": "SearchAction",
|
8
|
+
"target": "<%= search_catalog_url %>?q={search_term_string}",
|
9
|
+
"query-input": "required name=search_term_string"
|
10
|
+
}
|
11
|
+
}
|
12
|
+
</script>
|
@@ -2,12 +2,12 @@
|
|
2
2
|
<ul class="folderItemToolsList">
|
3
3
|
<li class="cite">
|
4
4
|
<%= link_to content_tag(:span, '', :class => 'glyphicon glyphicon-list-alt') + ' ' + t('blacklight.tools.citation'),
|
5
|
-
|
5
|
+
citation_solr_documents_path(:id => ''),
|
6
6
|
{:id => 'citeLink', :name => 'citation', :class => 'lightboxLink btn btn-default'} %>
|
7
7
|
</li>
|
8
8
|
<li class="email">
|
9
9
|
<%= link_to content_tag(:span, '', :class => 'glyphicon glyphicon-envelope') + ' ' + t('blacklight.tools.email'),
|
10
|
-
|
10
|
+
email_solr_documents_path(:id => ''),
|
11
11
|
:class => 'lightboxLink btn btn-default',
|
12
12
|
:id => 'emailLink' %>
|
13
13
|
</li>
|
@@ -10,8 +10,8 @@
|
|
10
10
|
</button>
|
11
11
|
<ul id="user-util-links-list" class="dropdown-menu">
|
12
12
|
<li><%= link_to t('blacklight.header_links.folders'), folders_path %></li>
|
13
|
-
<li><%= link_to t('blacklight.header_links.saved_searches'), saved_searches_path %></li>
|
14
|
-
<li><%= link_to t('blacklight.header_links.search_history'), search_history_path %></li>
|
13
|
+
<li><%= link_to t('blacklight.header_links.saved_searches'), blacklight.saved_searches_path %></li>
|
14
|
+
<li><%= link_to t('blacklight.header_links.search_history'), blacklight.search_history_path %></li>
|
15
15
|
<li><%= link_to t('devise.registrations.edit'), edit_user_registration_path %></li>
|
16
16
|
<li><%= link_to t('blacklight.header_links.logout'), destroy_user_session_path %></li>
|
17
17
|
</ul>
|
@@ -10,11 +10,11 @@
|
|
10
10
|
<%= t('blacklight.folders.intro') %>
|
11
11
|
</li>
|
12
12
|
<li>
|
13
|
-
<h4><%= link_to t('blacklight.header_links.saved_searches'), saved_searches_path %></h4>
|
13
|
+
<h4><%= link_to t('blacklight.header_links.saved_searches'), blacklight.saved_searches_path %></h4>
|
14
14
|
<%= t('blacklight.saved_searches.intro') %>
|
15
15
|
</li>
|
16
16
|
<li>
|
17
|
-
<h4><%= link_to t('blacklight.header_links.search_history'), search_history_path %></h4>
|
17
|
+
<h4><%= link_to t('blacklight.header_links.search_history'), blacklight.search_history_path %></h4>
|
18
18
|
<%= t('blacklight.search_history.intro') %>
|
19
19
|
</li>
|
20
20
|
<li>
|
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.require_paths = ['lib']
|
19
19
|
|
20
20
|
spec.add_dependency 'rails', '~>4.2.0'
|
21
|
-
spec.add_dependency 'blacklight', '
|
22
|
-
spec.add_dependency 'blacklight_advanced_search', '
|
23
|
-
spec.add_dependency 'blacklight-gallery', '0.
|
24
|
-
spec.add_dependency 'blacklight-maps', '0.
|
21
|
+
spec.add_dependency 'blacklight', '>= 6.1.0'
|
22
|
+
spec.add_dependency 'blacklight_advanced_search', '6.0.2'
|
23
|
+
spec.add_dependency 'blacklight-gallery', '0.5.0'
|
24
|
+
spec.add_dependency 'blacklight-maps', '0.5.0'
|
25
25
|
spec.add_dependency 'bootstrap-sass', '~> 3.0'
|
26
26
|
spec.add_dependency 'font-awesome-sass', '4.1.0'
|
27
27
|
spec.add_dependency 'bpluser'
|
@@ -191,6 +191,9 @@ en:
|
|
191
191
|
success: 'All items removed.'
|
192
192
|
failure: 'Items could not be removed. Please try again later.'
|
193
193
|
|
194
|
+
formats:
|
195
|
+
page_title: 'Formats - %{application_name}'
|
196
|
+
|
194
197
|
footer:
|
195
198
|
address: '123 Main Street, Anywhere, MA 01234'
|
196
199
|
|
@@ -281,6 +284,7 @@ en:
|
|
281
284
|
note_date: 'Notes (date)'
|
282
285
|
note_ownership: 'Notes (ownership)'
|
283
286
|
note_performers: 'Performers'
|
287
|
+
note_physical: 'Notes (object)'
|
284
288
|
note_reference: 'Notes (citation)'
|
285
289
|
note_resp: 'Name on Item'
|
286
290
|
publisher: 'Publisher'
|
data/config/routes.rb
CHANGED
@@ -4,12 +4,15 @@ require 'commonwealth-vlr-engine/version'
|
|
4
4
|
module CommonwealthVlrEngine
|
5
5
|
|
6
6
|
require 'commonwealth-vlr-engine/controller_override'
|
7
|
-
require 'commonwealth-vlr-engine/
|
7
|
+
require 'commonwealth-vlr-engine/search_builder/commonwealth_search_builder_behavior'
|
8
|
+
require 'commonwealth-vlr-engine/search_builder/institutions_search_builder'
|
9
|
+
require 'commonwealth-vlr-engine/search_builder/collections_search_builder'
|
10
|
+
require 'commonwealth-vlr-engine/search_builder/flagged_search_builder'
|
11
|
+
require 'commonwealth-vlr-engine/search_builder/ocr_search_builder'
|
12
|
+
require 'commonwealth-vlr-engine/search_builder/mlt_search_builder'
|
8
13
|
require 'commonwealth-vlr-engine/controller'
|
9
14
|
require 'commonwealth-vlr-engine/render_constraints_override'
|
10
15
|
require 'commonwealth-vlr-engine/pages'
|
11
|
-
require 'commonwealth-vlr-engine/routes'
|
12
|
-
require 'commonwealth-vlr-engine/route_sets'
|
13
16
|
require 'commonwealth-vlr-engine/finder'
|
14
17
|
require 'commonwealth-vlr-engine/notifier'
|
15
18
|
require 'commonwealth-vlr-engine/iiif_manifest'
|
@@ -38,18 +41,5 @@ module CommonwealthVlrEngine
|
|
38
41
|
File.join(app_root, 'config', 'vlr.yml')
|
39
42
|
end
|
40
43
|
|
41
|
-
def self.inject!
|
42
|
-
|
43
|
-
CatalogController.send(:include, CommonwealthVlrEngine::RenderConstraintsOverride)
|
44
|
-
CatalogController.send(:helper, CommonwealthVlrEngine::RenderConstraintsOverride) unless
|
45
|
-
CatalogController.helpers.is_a?(CommonwealthVlrEngine::RenderConstraintsOverride)
|
46
|
-
|
47
|
-
# inject into SearchHistory and SavedSearches so mlt queries display properly
|
48
|
-
SearchHistoryController.send(:helper, CommonwealthVlrEngine::RenderConstraintsOverride) unless
|
49
|
-
SearchHistoryController.helpers.is_a?(CommonwealthVlrEngine::RenderConstraintsOverride)
|
50
|
-
SavedSearchesController.send(:helper, CommonwealthVlrEngine::RenderConstraintsOverride) unless
|
51
|
-
SavedSearchesController.helpers.is_a?(CommonwealthVlrEngine::RenderConstraintsOverride)
|
52
|
-
end
|
53
|
-
|
54
44
|
end
|
55
45
|
|
@@ -4,21 +4,15 @@ module CommonwealthVlrEngine
|
|
4
4
|
|
5
5
|
included do
|
6
6
|
|
7
|
-
# adds behavior for retrieving files for an object
|
8
7
|
self.send(:include, CommonwealthVlrEngine::Finder)
|
8
|
+
self.send(:include, CommonwealthVlrEngine::RenderConstraintsOverride)
|
9
|
+
self.send(:helper, CommonwealthVlrEngine::RenderConstraintsOverride)
|
9
10
|
|
10
|
-
|
11
|
-
|
12
|
-
end
|
11
|
+
# add BlacklightAdvancedSearch
|
12
|
+
self.send(:include, BlacklightAdvancedSearch::Controller)
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
CommonwealthVlrEngine::CommonwealthSearchBuilder
|
17
|
-
) unless
|
18
|
-
self.blacklight_config.search_builder_class.include?(
|
19
|
-
CommonwealthVlrEngine::CommonwealthSearchBuilder
|
20
|
-
)
|
21
|
-
end
|
14
|
+
# add BlacklightMaps
|
15
|
+
self.send(:include, BlacklightMaps::ControllerOverride)
|
22
16
|
|
23
17
|
before_filter :get_object_files, :only => [:show]
|
24
18
|
before_filter :set_nav_context, :only => [:index]
|
@@ -62,10 +56,12 @@ module CommonwealthVlrEngine
|
|
62
56
|
# solr field for flagged/inappropriate content
|
63
57
|
config.flagged_field = 'flagged_content_ssi'
|
64
58
|
|
65
|
-
# advanced search
|
59
|
+
# advanced search configuration
|
66
60
|
config.advanced_search = {
|
67
|
-
:
|
68
|
-
:
|
61
|
+
qt: 'search',
|
62
|
+
url_key: 'advanced',
|
63
|
+
query_parser: 'dismax',
|
64
|
+
form_solr_parameters: {
|
69
65
|
'facet.field' => ['genre_basic_ssim', 'collection_name_ssim'],
|
70
66
|
'facet.limit' => -1, # return all facet values
|
71
67
|
'facet.sort' => 'index' # sort by byte order of values
|
@@ -88,28 +84,28 @@ module CommonwealthVlrEngine
|
|
88
84
|
config.index.display_type_field = 'active_fedora_model_suffix_ssi'
|
89
85
|
|
90
86
|
# solr fields that will be treated as facets by the blacklight application
|
91
|
-
config.add_facet_field 'subject_facet_ssim', :
|
92
|
-
config.add_facet_field 'subject_geographic_ssim', :
|
93
|
-
config.add_facet_field 'date_facet_ssim', :
|
94
|
-
config.add_facet_field 'genre_basic_ssim', :
|
95
|
-
config.add_facet_field 'collection_name_ssim', :
|
87
|
+
config.add_facet_field 'subject_facet_ssim', label: 'Topic', limit: 8, sort: 'count', collapse: false
|
88
|
+
config.add_facet_field 'subject_geographic_ssim', label: 'Place', limit: 8, sort: 'count', collapse: false
|
89
|
+
config.add_facet_field 'date_facet_ssim', label: 'Date', limit: 8, sort: 'index', collapse: false
|
90
|
+
config.add_facet_field 'genre_basic_ssim', label: 'Format', limit: 8, sort: 'count', helper_method: :render_format, collapse: false
|
91
|
+
config.add_facet_field 'collection_name_ssim', label: 'Collection', limit: 8, sort: 'count', collapse: false
|
96
92
|
# link_to_facet fields (not in facets sidebar of search results)
|
97
|
-
config.add_facet_field 'related_item_host_ssim', :
|
98
|
-
config.add_facet_field 'genre_specific_ssim', :
|
99
|
-
config.add_facet_field 'related_item_series_ssim', :
|
100
|
-
config.add_facet_field 'related_item_subseries_ssim', :
|
101
|
-
config.add_facet_field 'related_item_subsubseries_ssim', :
|
102
|
-
config.add_facet_field 'institution_name_ssim', :
|
103
|
-
config.add_facet_field 'name_facet_ssim', :
|
93
|
+
config.add_facet_field 'related_item_host_ssim', label: 'Collection', include_in_request: false # Collection (local)
|
94
|
+
config.add_facet_field 'genre_specific_ssim', label: 'Genre', include_in_request: false
|
95
|
+
config.add_facet_field 'related_item_series_ssim', label: 'Series', limit: 300, sort: 'index', include_in_request: false
|
96
|
+
config.add_facet_field 'related_item_subseries_ssim', label: 'Subseries', include_in_request: false
|
97
|
+
config.add_facet_field 'related_item_subsubseries_ssim', label: 'Sub-subseries', include_in_request: false
|
98
|
+
config.add_facet_field 'institution_name_ssim', label: 'Institution', include_in_request: false
|
99
|
+
config.add_facet_field 'name_facet_ssim', label: 'Name', include_in_request: false
|
104
100
|
# facet for blacklight-maps catalog#index map view
|
105
101
|
# have to use '-2' to get all values
|
106
102
|
# because Blacklight::RequestBuilders#solr_facet_params adds '+1' to value
|
107
|
-
config.add_facet_field 'subject_geojson_facet_ssim', :
|
103
|
+
config.add_facet_field 'subject_geojson_facet_ssim', limit: -2, label: 'Coordinates', show: false
|
108
104
|
|
109
105
|
# solr fields to be displayed in the index (search results) view
|
110
|
-
config.add_index_field 'genre_basic_ssim', :
|
111
|
-
config.add_index_field 'collection_name_ssim', :
|
112
|
-
config.add_index_field 'date_start_tsim', :
|
106
|
+
config.add_index_field 'genre_basic_ssim', label: 'Format', helper_method: :render_format_index
|
107
|
+
config.add_index_field 'collection_name_ssim', label: 'Collection', helper_method: :index_collection_link
|
108
|
+
config.add_index_field 'date_start_tsim', label: 'Date', helper_method: :index_date_value
|
113
109
|
|
114
110
|
# "fielded" search configuration. Used by pulldown among other places.
|
115
111
|
config.add_search_field('all_fields') do |field|
|
@@ -120,8 +116,8 @@ module CommonwealthVlrEngine
|
|
120
116
|
config.add_search_field('title') do |field|
|
121
117
|
field.solr_parameters = { :'spellcheck.dictionary' => 'default' }
|
122
118
|
field.solr_local_parameters = {
|
123
|
-
:
|
124
|
-
:
|
119
|
+
qf: '$title_qf',
|
120
|
+
pf: '$title_pf'
|
125
121
|
}
|
126
122
|
end
|
127
123
|
|
@@ -129,32 +125,32 @@ module CommonwealthVlrEngine
|
|
129
125
|
field.solr_parameters = { :'spellcheck.dictionary' => 'default' }
|
130
126
|
field.qt = 'search'
|
131
127
|
field.solr_local_parameters = {
|
132
|
-
:
|
133
|
-
:
|
128
|
+
qf: '$subject_qf',
|
129
|
+
pf: '$subject_pf'
|
134
130
|
}
|
135
131
|
end
|
136
132
|
|
137
133
|
config.add_search_field('place') do |field|
|
138
134
|
field.solr_parameters = { :'spellcheck.dictionary' => 'default' }
|
139
135
|
field.solr_local_parameters = {
|
140
|
-
:
|
141
|
-
:
|
136
|
+
qf: '$place_qf',
|
137
|
+
pf: '$place_pf'
|
142
138
|
}
|
143
139
|
end
|
144
140
|
|
145
141
|
config.add_search_field('creator') do |field|
|
146
142
|
field.solr_parameters = { :'spellcheck.dictionary' => 'default' }
|
147
143
|
field.solr_local_parameters = {
|
148
|
-
:
|
149
|
-
:
|
144
|
+
qf: '$author_qf',
|
145
|
+
pf: '$author_pf'
|
150
146
|
}
|
151
147
|
end
|
152
148
|
|
153
149
|
# "sort results by" select (pulldown)
|
154
|
-
config.add_sort_field 'score desc, title_info_primary_ssort asc', :
|
155
|
-
config.add_sort_field 'title_info_primary_ssort asc, date_start_dtsi asc', :
|
156
|
-
config.add_sort_field 'date_start_dtsi asc, title_info_primary_ssort asc', :
|
157
|
-
config.add_sort_field 'date_start_dtsi desc, title_info_primary_ssort asc', :
|
150
|
+
config.add_sort_field 'score desc, title_info_primary_ssort asc', label: 'relevance'
|
151
|
+
config.add_sort_field 'title_info_primary_ssort asc, date_start_dtsi asc', label: 'title'
|
152
|
+
config.add_sort_field 'date_start_dtsi asc, title_info_primary_ssort asc', label: 'date (asc)'
|
153
|
+
config.add_sort_field 'date_start_dtsi desc, title_info_primary_ssort asc', label: 'date (desc)'
|
158
154
|
|
159
155
|
end
|
160
156
|
|
@@ -186,11 +182,11 @@ module CommonwealthVlrEngine
|
|
186
182
|
# displays values and pagination links for Format field
|
187
183
|
def formats_facet
|
188
184
|
@nav_li_active = 'explore'
|
185
|
+
@page_title = t('blacklight.formats.page_title', :application_name => t('blacklight.application_name'))
|
189
186
|
|
190
187
|
@facet = blacklight_config.facet_fields['genre_basic_ssim']
|
191
188
|
@response = get_facet_field_response(@facet.key, params)
|
192
189
|
@display_facet = @response.aggregations[@facet.key]
|
193
|
-
|
194
190
|
@pagination = facet_paginator(@facet, @display_facet)
|
195
191
|
|
196
192
|
render :facet
|
@@ -199,7 +195,7 @@ module CommonwealthVlrEngine
|
|
199
195
|
# if this is 'more like this' search, solr id = params[:mlt_id]
|
200
196
|
def mlt_search
|
201
197
|
if params[:mlt_id]
|
202
|
-
|
198
|
+
blacklight_config.search_builder_class = CommonwealthMltSearchBuilder
|
203
199
|
end
|
204
200
|
end
|
205
201
|
|
@@ -215,8 +211,8 @@ module CommonwealthVlrEngine
|
|
215
211
|
# add institutions if configured
|
216
212
|
def add_institution_fields
|
217
213
|
if t('blacklight.home.browse.institutions.enabled')
|
218
|
-
blacklight_config.add_facet_field 'physical_location_ssim', :
|
219
|
-
blacklight_config.add_index_field 'institution_name_ssim', :
|
214
|
+
blacklight_config.add_facet_field 'physical_location_ssim', label: 'Institution', limit: 8, sort: 'count', collapse: false
|
215
|
+
blacklight_config.add_index_field 'institution_name_ssim', label: 'Institution', helper_method: :index_institution_link
|
220
216
|
end
|
221
217
|
end
|
222
218
|
|
@@ -233,6 +229,45 @@ module CommonwealthVlrEngine
|
|
233
229
|
volumes.presence
|
234
230
|
end
|
235
231
|
|
232
|
+
protected
|
233
|
+
##
|
234
|
+
# When a user logs in, transfer any saved searches or bookmarks to the current_user
|
235
|
+
def transfer_guest_user_actions_to_current_user
|
236
|
+
return unless respond_to? :current_user and respond_to? :guest_user and current_user and guest_user
|
237
|
+
current_user_searches = current_user.searches.pluck(:query_params)
|
238
|
+
current_user_bookmarks = current_user.bookmarks.pluck(:document_id)
|
239
|
+
|
240
|
+
guest_user.searches.reject { |s| current_user_searches.include?(s.query_params)}.each do |s|
|
241
|
+
current_user.searches << s
|
242
|
+
s.save!
|
243
|
+
end
|
244
|
+
|
245
|
+
guest_user.bookmarks.reject { |b| current_user_bookmarks.include?(b.document_id)}.each do |b|
|
246
|
+
current_user.bookmarks << b
|
247
|
+
b.save!
|
248
|
+
end
|
249
|
+
|
250
|
+
#Custom code to transfer over folders
|
251
|
+
guest_user.folders.each do |folder|
|
252
|
+
target_folder = current_user.folders.where(:title=>folder.title)
|
253
|
+
if target_folder.blank?
|
254
|
+
target_folder = current_user.folders.create({title: folder.title, description: folder.description, visibility: folder.visibility})
|
255
|
+
target_folder.save!
|
256
|
+
else
|
257
|
+
target_folder = target_folder.first
|
258
|
+
end
|
259
|
+
folder.folder_items.each do |item_to_add|
|
260
|
+
unless target_folder.has_folder_item(item_to_add.document_id)
|
261
|
+
target_folder.folder_items.create(:document_id => item_to_add.document_id) and target_folder.touch
|
262
|
+
target_folder.save!
|
263
|
+
end
|
264
|
+
end
|
265
|
+
end
|
266
|
+
|
267
|
+
# let guest_user know we've moved some bookmarks from under it
|
268
|
+
guest_user.reload if guest_user.persisted?
|
269
|
+
end
|
270
|
+
|
236
271
|
end
|
237
272
|
|
238
273
|
end
|