Skip to content

Commit 3b67454

Browse files
committed
WIP moving search view controls around
1 parent fbb0931 commit 3b67454

8 files changed

+68
-29
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<div class="view-type hidden-xs btn-group btn-group-sm search-index-tool-group">
2+
<span class="sr-only visually-hidden"><%= t('blacklight.search.view_title') %></span>
3+
<div class="view-type-group btn-group">
4+
<%= helpers.search_mode_button(:grid, classes: ['btn-sm']) %>
5+
<%= helpers.search_mode_button(:list, classes: ['btn-sm']) %>
6+
<% if show_other_sources? && @response.params[:q].present? %>
7+
<button id="extended-search-mode" type="button" class="btn btn-sm btn-outline-secondary result-type-button" title="Search Other Sources"><i class="fa fa-link"></i></button>
8+
<% end %>
9+
<% if timeline_views? %>
10+
<button id="date-graph-toggle" type="button" class="btn btn-sm btn-outline-secondary result-type-button" data-toggle="tooltip" aria-label="timeline view" title="timeline view"><i class="fa fa-bar-chart"></i></button>
11+
<% end %>
12+
</div>
13+
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# frozen_string_literal: true
2+
3+
module Dcv::Response
4+
class ViewTypeComponent < Blacklight::Response::ViewTypeComponent
5+
# @param [Blacklight::Response] response
6+
def initialize(response:, views: {}, search_state:, selected: nil, subsite_config:, **_args)
7+
super(response: response, views: views, search_state: search_state, selected: selected)
8+
@response = response
9+
@views = views
10+
@search_state = search_state
11+
@selected = selected
12+
@subsite_config = subsite_config
13+
puts @subsite_config.inspect
14+
end
15+
16+
def timeline_views?
17+
@subsite_config.dig('date_search_configuration', 'show_timeline')
18+
end
19+
20+
def show_other_sources?
21+
@subsite_config.dig('date_search_configuration', 'show_other_sources')
22+
end
23+
24+
def before_render
25+
return if views.any?
26+
27+
@views.each do |key, config|
28+
view(key: key, view: config, selected: @selected == key, search_state: @search_state)
29+
end
30+
end
31+
32+
def render?
33+
true
34+
end
35+
end
36+
end

app/helpers/dcv/subsite_helper.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ def subsite_search_mode
9090
end
9191
end
9292

93-
def search_mode_button(mode=:grid)
94-
classes = 'btn result-type-button'
93+
def search_mode_button(mode=:grid, classes: [])
94+
classes = 'btn result-type-button ' + classes.join(' ')
9595
classes << ((mode == subsite_search_mode) ? ' btn-success' : ' btn-outline-secondary')
9696
icon_classes = (mode == :list) ? 'fa fa-th-list' : 'fa fa-th'
9797
content_tag(:button, type: 'button', class: classes, :"data-toggle" => "tooltip", "aria-label": "#{mode} view", title: "#{mode} view", id: "#{mode}-mode") do

app/views/shared/_per_page_widget.html.erb

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<div id="per_page-dropdown" class="btn-group btn-group-sm">
44
<span class="sr-only"><%= t('blacklight.search.per_page.title') %></span>
5-
<%= link_to("<i class=\"fa fa-arrows-v\"></i> #{current_per_page} <span class=\"caret\"></span>".html_safe, "#", :class=> "btn btn-outline-secondary dropdown-toggle", :'data-toggle'=>"dropdown", :"data-tt" => 'tooltip', :"aria-label"=>t(:'blacklight.search.per_page.button_label', :count => current_per_page), :title=>t(:'blacklight.search.per_page.button_label', :count => current_per_page)) %>
5+
<%= link_to("<i class=\"fa fa-arrows-v\"></i> #{current_per_page} <span class=\"caret\"></span>".html_safe, "#", :class=> "btn btn-sm btn-outline-secondary dropdown-toggle", :'data-toggle'=>"dropdown", :"data-tt" => 'tooltip', :"aria-label"=>t(:'blacklight.search.per_page.button_label', :count => current_per_page), :title=>t(:'blacklight.search.per_page.button_label', :count => current_per_page)) %>
66
<ul class="dropdown-menu dropdown-menu-right" role="menu">
77
<%- per_page_options_for_select.each do |(label, count)| %>
88
<% label = "#{label} <i class=\"fa fa-check\"></i>".html_safe if count == current_per_page -%>
+6-21
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,10 @@
1-
<div id="sortAndPerPage" class="border-bottom-0 d-flex justify-content-between">
2-
<div id="search-result-pagination">
3-
<%= render(partial: "paginate_compact", object: @response) if has_search_parameters? %>
1+
<div id="sortAndPerPage" class="border-bottom-0 d-flex justify-content-center">
2+
<div id="search-widgets" class="btn-group btn-group-sm search-index-tool-group col-12">
3+
<%= render :partial => 'sort_widget' %>
4+
<%= render :partial => 'per_page_widget' %>
5+
<%= render :partial => 'view_type_group' %>
46
</div>
5-
<div id="search-index-tools">
6-
<div id="search-widgets" class="btn-group btn-group-sm float-right search-index-tool-group">
7-
<%= render :partial => 'sort_widget' %>
8-
<%= render :partial => 'per_page_widget' %>
9-
<%= render :partial => 'view_type_group' %>
10-
</div>
11-
<div id="view-options" class="hidden-xs btn-group btn-group-sm float-right search-index-tool-group">
12-
<%= search_mode_button(:grid) %>
13-
<%= search_mode_button(:list) %>
14-
<% if controller.subsite_config.dig('display_options', 'show_other_sources') && @response.params[:q].present? %>
15-
<button id="extended-search-mode" type="button" class="btn btn-outline-secondary result-type-button" title="Search Other Sources"><i class="fa fa-link"></i></button>
16-
<% end %>
17-
</div>
7+
<div>
188
<%= render Dcv::Search::Ui::CsvExportComponent.new %>
19-
<% if controller.subsite_config.dig('date_search_configuration', 'show_timeline') %>
20-
<div id="date-toggle" class="btn-group btn-group-sm float-right search-index-tool-group">
21-
<button id="date-graph-toggle" type="button" class="btn btn-outline-secondary result-type-button" data-toggle="tooltip" aria-label="timeline view" title="timeline view"><i class="fa fa-bar-chart"></i></button>
22-
</div>
23-
<% end %>
249
</div>
2510
</div>

app/views/shared/_sort_widget.html.erb

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<% if show_sort_and_per_page? and !active_sort_fields.blank? %>
22
<div id="sort-dropdown" class="btn-group btn-group-sm">
3-
<%= link_to('<i class="fa fa-sort-alpha-asc"></i> <span class="caret"></span>'.html_safe, "#", :class=>"btn btn-outline-secondary dropdown-toggle", :'data-toggle'=>"dropdown", :"data-tt" => 'tooltip', :"aria-label"=>t('blacklight.search.sort.label', :field =>current_sort_field.label), :title=>t('blacklight.search.sort.label', :field =>current_sort_field.label)) %>
3+
<%= link_to('<i class="fa fa-sort-alpha-asc"></i> <span class="caret"></span>'.html_safe, "#", :class=>"btn btn-sm btn-outline-secondary dropdown-toggle", :'data-toggle'=>"dropdown", :"data-tt" => 'tooltip', :"aria-label"=>t('blacklight.search.sort.label', :field =>current_sort_field.label), :title=>t('blacklight.search.sort.label', :field =>current_sort_field.label)) %>
44

55
<ul class="dropdown-menu dropdown-menu-right" role="menu">
66
<%- active_sort_fields.each do |sort_key, field_config| %>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<%= render(Dcv::Response::ViewTypeComponent.new(
2+
response: @response,
3+
views: document_index_view_controls,
4+
search_state: search_state,
5+
selected: document_index_view_type,
6+
controller_name: controller.controller_name,
7+
subsite_config: controller.subsite_config)) if show_sort_and_per_page? -%>

app/views/shared/index.html.erb

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<div class="row">
2-
<div id="nav" class="col-md-12">
2+
<div id="sidebar" class="col-md-3">
3+
<div id="nav">
34
<%= render 'sort_and_per_page' %>
45
</div>
5-
<div id="sidebar" class="col-md-3">
66
<%= render 'search_sidebar' %>
77
</div>
88

@@ -41,8 +41,6 @@
4141
</div>
4242
</div>
4343

44-
<%= render 'results_pagination' %>
45-
4644
<% if show_other_sources? %>
4745
<div class="text-right">
4846
<button title="return to results" class="pagination btn btn-sm btn-link hidden" id="return-to-results" type="button">&laquo; Return to Results</button>

0 commit comments

Comments
 (0)