blacklight 5.3.0 → 5.4.0.rc1
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/Gemfile +3 -1
- data/VERSION +1 -1
- data/app/assets/javascripts/blacklight/blacklight.js +1 -0
- data/app/assets/javascripts/blacklight/collapsable.js +9 -0
- data/app/controllers/bookmarks_controller.rb +72 -9
- data/app/helpers/blacklight/blacklight_helper_behavior.rb +15 -7
- data/app/helpers/blacklight/catalog_helper_behavior.rb +17 -9
- data/app/helpers/blacklight/configuration_helper_behavior.rb +59 -7
- data/app/helpers/blacklight/facets_helper_behavior.rb +1 -16
- data/app/helpers/blacklight/url_helper_behavior.rb +21 -2
- data/app/models/bookmark.rb +13 -4
- data/app/models/solr_document.rb +5 -0
- data/app/views/bookmarks/_tools.html.erb +10 -11
- data/app/views/catalog/_bookmark_control.html.erb +2 -2
- data/app/views/catalog/_refworks_form.html.erb +3 -2
- data/app/views/catalog/_sort_widget.html.erb +5 -5
- data/app/views/catalog/_view_type_group.html.erb +2 -2
- data/app/views/shared/_header_navbar.html.erb +1 -3
- data/config/locales/blacklight.pt-BR.yml +223 -0
- data/db/migrate/20140320000000_add_polymorphic_type_to_bookmarks.rb +8 -0
- data/gemfiles/rails4.1.gemfile +1 -1
- data/lib/blacklight.rb +5 -0
- data/lib/blacklight/catalog.rb +33 -5
- data/lib/blacklight/configuration.rb +12 -3
- data/lib/blacklight/configuration/facet_field.rb +1 -1
- data/lib/blacklight/configuration/search_field.rb +3 -2
- data/lib/blacklight/configuration/solr_field.rb +2 -1
- data/lib/blacklight/configuration/sort_field.rb +2 -1
- data/lib/blacklight/engine.rb +9 -1
- data/lib/blacklight/exceptions.rb +3 -0
- data/lib/blacklight/rails/routes.rb +12 -0
- data/lib/blacklight/request_builders.rb +19 -18
- data/lib/blacklight/search_fields.rb +0 -9
- data/lib/blacklight/solr/document.rb +15 -0
- data/lib/blacklight/solr/document/export.rb +4 -0
- data/lib/blacklight/solr_helper.rb +25 -28
- data/lib/blacklight/solr_response.rb +31 -29
- data/lib/blacklight/solr_response/response.rb +18 -0
- data/lib/blacklight/user.rb +17 -4
- data/lib/blacklight/utils.rb +30 -2
- data/lib/generators/blacklight/install_generator.rb +4 -0
- data/lib/generators/blacklight/templates/config/initializers/blacklight_initializer.rb +9 -0
- data/spec/controllers/application_controller_spec.rb +0 -1
- data/spec/controllers/bookmarks_controller_spec.rb +8 -4
- data/spec/controllers/catalog_controller_spec.rb +48 -55
- data/spec/controllers/saved_searches_controller_spec.rb +1 -4
- data/spec/controllers/search_history_controller_spec.rb +0 -1
- data/spec/features/bookmarks_spec.rb +14 -0
- data/spec/features/search_formats_spec.rb +45 -0
- data/spec/helpers/blacklight_helper_spec.rb +71 -30
- data/spec/helpers/configuration_helper_spec.rb +128 -4
- data/spec/helpers/facets_helper_spec.rb +1 -1
- data/spec/lib/blacklight/configuration_spec.rb +0 -5
- data/spec/lib/blacklight/search_fields_spec.rb +0 -22
- data/spec/lib/blacklight/solr/document_spec.rb +6 -0
- data/spec/lib/blacklight/solr_helper_spec.rb +31 -10
- data/spec/lib/blacklight/solr_response_spec.rb +8 -0
- data/spec/lib/blacklight/user_spec.rb +38 -4
- data/spec/models/bookmark_spec.rb +22 -17
- data/spec/spec_helper.rb +2 -0
- data/template.demo.rb +4 -9
- metadata +12 -6
- data/spec/data/sample_docs.yml +0 -655
@@ -1,12 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
</li>
|
1
|
+
<ul class="bookmarkTools nav nav-pills">
|
2
|
+
<li class="cite">
|
3
|
+
<%= link_to t('blacklight.tools.cite'), citation_catalog_path(:sort=>params[:sort], :per_page=>params[:per_page], :id => @response.documents.map {|doc| doc.id}), {:id => 'citeLink', :name => 'citation', :class => 'btn btn-default', :data => {:ajax_modal => "trigger"}} %>
|
4
|
+
</li>
|
5
|
+
|
6
|
+
<li class="email">
|
7
|
+
<%= link_to t('blacklight.tools.email'), email_catalog_path(:sort=>params[:sort], :per_page=>params[:per_page], :id => @response.documents.map {|doc| doc.id}), :class=>"btn btn-default", :id => "emailLink", :data => {:ajax_modal => "trigger"} %>
|
8
|
+
</li>
|
9
|
+
|
10
|
+
<%= render_marc_tools %>
|
12
11
|
</ul>
|
@@ -3,8 +3,8 @@
|
|
3
3
|
# Note these two forms are pretty similar but for different :methods, classes, and labels.
|
4
4
|
# but it was simpler to leave them seperate instead of DRYing them, got confusing trying that.
|
5
5
|
# the data-doc-id attribute is used by our JS that converts to a checkbox/label.
|
6
|
-
-%>
|
7
|
-
<%
|
6
|
+
-%>
|
7
|
+
<% if current_bookmarks.find { |x| x.document_id == document.id and x.document_type == document.class }.blank? %>
|
8
8
|
|
9
9
|
<%= form_tag( bookmark_path( document ), :method => :put, :class => "bookmark_toggle", "data-doc-id" => document.id, :'data-present' => t('blacklight.search.bookmarks.present'), :'data-absent' => t('blacklight.search.bookmarks.absent'), :'data-inprogress' => t('blacklight.search.bookmarks.inprogress')) do %>
|
10
10
|
<%= submit_tag(t('blacklight.bookmarks.add.button'), :id => "bookmark_toggle_#{document.id.to_s.parameterize}", :class => "bookmark_add") %>
|
@@ -1,5 +1,6 @@
|
|
1
|
-
|
1
|
+
<%# this partial is used by blacklight-marc 5.0 %>
|
2
|
+
<%= form_tag refworks_export_url, :name => "refworks", :role => 'form', :target => "_blank", :id => "refworks-form" do %>
|
2
3
|
|
3
4
|
<%= hidden_field_tag "ImportData", render_refworks_texts(documents) %>
|
4
5
|
<%= submit_tag t('blacklight.tools.refworks'), :class => 'submit btn btn-default'%>
|
5
|
-
<% end %>
|
6
|
+
<% end %>
|
@@ -1,13 +1,13 @@
|
|
1
|
-
<% if show_sort_and_per_page? and !
|
1
|
+
<% if show_sort_and_per_page? and !active_sort_fields.blank? %>
|
2
2
|
<div id="sort-dropdown" class="btn-group">
|
3
3
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
4
4
|
<%= link_to(t('blacklight.search.sort.label', :field =>current_sort_field.label), "#") %> <span class="caret"></span>
|
5
5
|
</button>
|
6
6
|
|
7
7
|
<ul class="dropdown-menu">
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
<%- active_sort_fields.each do |sort_key, field_config| %>
|
9
|
+
<li><%= link_to(field_config.label, url_for(params_for_search(:sort => sort_key))) %></li>
|
10
|
+
<%- end -%>
|
11
11
|
</ul>
|
12
12
|
</div>
|
13
|
-
<% end %>
|
13
|
+
<% end %>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<div class="view-type">
|
3
3
|
<span class="sr-only"><%= t('blacklight.search.view_title') %></span>
|
4
4
|
<div class="view-type-group btn-group">
|
5
|
-
<%
|
5
|
+
<% document_index_views.each do |view, config| %>
|
6
6
|
<%= link_to url_for(params.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-default view-type-#{ view.to_s.parameterize } #{"active" if document_index_view_type == view}" do %>
|
7
7
|
<%= render_view_type_group_icon view %>
|
8
8
|
<span class="caption"><%= t("blacklight.search.view.#{view}") %></span>
|
@@ -10,4 +10,4 @@
|
|
10
10
|
<% end %>
|
11
11
|
</div>
|
12
12
|
</div>
|
13
|
-
<% end -%>
|
13
|
+
<% end -%>
|
@@ -0,0 +1,223 @@
|
|
1
|
+
pt-BR:
|
2
|
+
active_record:
|
3
|
+
models:
|
4
|
+
feedback: 'Feedback'
|
5
|
+
attributes:
|
6
|
+
feedback:
|
7
|
+
name: 'Seu Nome'
|
8
|
+
email: 'Seu Email'
|
9
|
+
message: 'Sua Mensagem'
|
10
|
+
views:
|
11
|
+
pagination:
|
12
|
+
first: '« primeiro'
|
13
|
+
last: 'último »'
|
14
|
+
previous: '« anterior'
|
15
|
+
next: 'próximo »'
|
16
|
+
truncate: '…'
|
17
|
+
|
18
|
+
pagination_compact:
|
19
|
+
previous: '« ant'
|
20
|
+
next: 'próx »'
|
21
|
+
|
22
|
+
blacklight:
|
23
|
+
application_name: 'Blacklight'
|
24
|
+
|
25
|
+
header_links:
|
26
|
+
login: 'Acessar'
|
27
|
+
logout: 'Sair'
|
28
|
+
bookmarks: 'Favoritos'
|
29
|
+
saved_searches: 'Buscas Salvas'
|
30
|
+
search_history: 'Histórico'
|
31
|
+
|
32
|
+
welcome: 'Bem-Vindo!'
|
33
|
+
and: 'e'
|
34
|
+
or: 'ou'
|
35
|
+
|
36
|
+
bookmarks:
|
37
|
+
collection:
|
38
|
+
add:
|
39
|
+
button: 'Adicionar aos Favoritos'
|
40
|
+
title: 'Favoritos'
|
41
|
+
no_bookmarks: 'Você não salvou nenhum Favorito'
|
42
|
+
add:
|
43
|
+
button: 'Favorito'
|
44
|
+
success:
|
45
|
+
one: 'Favorito Adicionado.'
|
46
|
+
other: 'Favoritos Adicionados.'
|
47
|
+
failure: 'Xiii, ocorreu um erro ao salvar o favorito.'
|
48
|
+
remove:
|
49
|
+
button: 'Remover favorito'
|
50
|
+
success: 'Favorito removido.'
|
51
|
+
failure: 'Xiii, ocorreu um erro a remover o favorito.'
|
52
|
+
action_confirm: 'Remover este favorito?'
|
53
|
+
clear:
|
54
|
+
action_title: 'Limpar favoritos'
|
55
|
+
action_confirm: 'Deseja limpar seus favoritos?'
|
56
|
+
success: 'Seus favoritos está limpo.'
|
57
|
+
failure: 'Xiii, ocorreu um erro ao limpar seus favoritos.'
|
58
|
+
need_login: 'Faça o login para ver ou modificar seus favoritos.'
|
59
|
+
list_title: 'Seus Favoritos'
|
60
|
+
delete: 'Excluir'
|
61
|
+
|
62
|
+
feedback:
|
63
|
+
valid_name: 'Preencha o Nome'
|
64
|
+
valid_email: 'Verifique seu endereço de email'
|
65
|
+
need_message: 'Escreva uma mensagem'
|
66
|
+
submit: 'Enviar!'
|
67
|
+
errors:
|
68
|
+
title: 'Por favor corrija os seguintes erros no formulário:'
|
69
|
+
complete:
|
70
|
+
title: 'Obrigado por seu contato'
|
71
|
+
|
72
|
+
saved_searches:
|
73
|
+
add:
|
74
|
+
success: 'Sua busca foi salva.'
|
75
|
+
failure: 'Xiii, ocorreu um erro ao salvar sua pesquisa.'
|
76
|
+
remove:
|
77
|
+
success: 'A busca salva foi excluída.'
|
78
|
+
failure: 'Xiii, ocorreu um erro ao excluir sua pesquisa.'
|
79
|
+
clear:
|
80
|
+
action_title: 'Limpar Buscas Salvas'
|
81
|
+
action_confirm: 'Deseja Excluir as Buscas Salvas?'
|
82
|
+
success: 'As buscas foram removidas.'
|
83
|
+
failure: 'Xiii, ocorreu um erro ao remover suas pesquisas.'
|
84
|
+
title: 'Pesquisas Salvas'
|
85
|
+
need_login: 'Por favor faça o login para gerenciar suas buscas salvas.'
|
86
|
+
no_searches: 'Você não salvou nenhuma busca'
|
87
|
+
list_title: 'Suas Buscas'
|
88
|
+
delete: 'excluir'
|
89
|
+
|
90
|
+
search_history:
|
91
|
+
clear:
|
92
|
+
action_title: 'Limpar Histórico de Busca'
|
93
|
+
action_confirm: 'Deseja limpar o histórico de Busca?'
|
94
|
+
success: 'Histórico de Busca removido.'
|
95
|
+
failure: 'Xiii, ocorreu um erro ao remover o histórico de busca.'
|
96
|
+
title: 'Histórico de Busca'
|
97
|
+
no_history: 'Não existe nada em seu histórico'
|
98
|
+
recent: 'Buscas Recentes'
|
99
|
+
forget: 'limpar'
|
100
|
+
save: 'salvar'
|
101
|
+
|
102
|
+
tools:
|
103
|
+
title: 'Ferramentas'
|
104
|
+
cite: 'Citar'
|
105
|
+
endnote: 'Exportar para EndNote'
|
106
|
+
refworks: 'Exportar para Refworks'
|
107
|
+
email: 'Email'
|
108
|
+
sms: 'SMS'
|
109
|
+
librarian_view: 'Librarian View'
|
110
|
+
clear: 'Limpar'
|
111
|
+
|
112
|
+
citation:
|
113
|
+
mla: 'MLA'
|
114
|
+
apa: 'APA'
|
115
|
+
chicago: 'Chicago'
|
116
|
+
|
117
|
+
email:
|
118
|
+
form:
|
119
|
+
title: 'Enviar por Email'
|
120
|
+
to: 'Email:'
|
121
|
+
message: 'Mensagem:'
|
122
|
+
submit: 'Enviar'
|
123
|
+
text:
|
124
|
+
title: 'Título: %{value}'
|
125
|
+
author: 'Autor: %{value}'
|
126
|
+
format: 'Formato: %{value}'
|
127
|
+
language: 'Idioma: %{value}'
|
128
|
+
subject:
|
129
|
+
one: 'Item: %{title}'
|
130
|
+
other: 'Itens'
|
131
|
+
url: 'URL: %{url}'
|
132
|
+
message: 'Mensagem: %{message}'
|
133
|
+
|
134
|
+
errors:
|
135
|
+
to:
|
136
|
+
invalid: 'Verifique seu endereço de email'
|
137
|
+
blank: 'Você precisa especificar um destinaário para enviar esta mensagem'
|
138
|
+
sms:
|
139
|
+
form:
|
140
|
+
title: 'Enviar por SMS'
|
141
|
+
to: 'Celular:'
|
142
|
+
carrier: 'Operadora'
|
143
|
+
carrier_prompt: 'Selecione a Operadora'
|
144
|
+
submit: 'Enviar'
|
145
|
+
text:
|
146
|
+
title: '%{value}'
|
147
|
+
author: ' por %{value}'
|
148
|
+
url: 'Link: %{url}'
|
149
|
+
errors:
|
150
|
+
to:
|
151
|
+
invalid: 'Você precisa digitar um número de telefone válido'
|
152
|
+
blank: "Você precisa digitar o número de telefone do destinatário para enviar uma mensagem"
|
153
|
+
carrier:
|
154
|
+
blank: 'Você precisa selecionar a operadora'
|
155
|
+
|
156
|
+
back_to_search: 'Voltar a busca'
|
157
|
+
back_to_bookmarks: 'Voltar aos Favoritos'
|
158
|
+
|
159
|
+
search:
|
160
|
+
title: '%{application_name} Resultado da Busca'
|
161
|
+
search_results_header: 'Busca'
|
162
|
+
search_results: 'Resultados da Busca'
|
163
|
+
errors:
|
164
|
+
request_error: "Desculpe, Eu não compreendi sua busca."
|
165
|
+
invalid_solr_id: "Desculpe, você solicitou um cadastro que não existe."
|
166
|
+
per_page:
|
167
|
+
label: '%{count}<span class="hide-text"> por página</span>'
|
168
|
+
button_label: '%{count} por página'
|
169
|
+
title: 'Número de resultados para mostrar por página'
|
170
|
+
submit: 'Atualizar'
|
171
|
+
sort:
|
172
|
+
label: 'Ordenar por %{field}'
|
173
|
+
submit: 'ordenar resultados'
|
174
|
+
form:
|
175
|
+
search_field:
|
176
|
+
label: 'Procurar em'
|
177
|
+
title: 'Opções da Busca'
|
178
|
+
post_label: 'por'
|
179
|
+
q: 'Busca...'
|
180
|
+
submit: 'Buscar'
|
181
|
+
pagination:
|
182
|
+
title: 'Navegação nos Resultados'
|
183
|
+
pagination_info:
|
184
|
+
no_items_found: 'Nenhum resultado encontrado para %{entry_name}'
|
185
|
+
single_item_found: '<strong>1</strong> para <strong>1</strong> de <strong>1</strong>'
|
186
|
+
pages:
|
187
|
+
one: '<strong>%{start_num}</strong> - <strong>%{end_num}</strong> de <strong>%{total_num}</strong>'
|
188
|
+
other: '<strong>%{start_num}</strong> - <strong>%{end_num}</strong> de <strong>%{total_num}</strong>'
|
189
|
+
entry_pagination_info:
|
190
|
+
one: '<strong>1 de 1</strong>'
|
191
|
+
other: '<strong>%{current}</strong> de <strong>%{total}</strong>'
|
192
|
+
documents:
|
193
|
+
counter: '%{counter}. '
|
194
|
+
facets:
|
195
|
+
title: 'Filtre sua busca'
|
196
|
+
sort:
|
197
|
+
count: 'Ordenar por Número'
|
198
|
+
index: 'Ordem Alfabética A-Z'
|
199
|
+
count: '%{number}'
|
200
|
+
more: 'mais »'
|
201
|
+
selected:
|
202
|
+
remove: '[remover]'
|
203
|
+
filters:
|
204
|
+
title: 'Sua busca por:'
|
205
|
+
label: '%{label}:'
|
206
|
+
remove:
|
207
|
+
value: 'Remover filtro %{value}'
|
208
|
+
label_value: 'Remover %{label}: %{value}'
|
209
|
+
librarian_view:
|
210
|
+
title: 'Librarian View'
|
211
|
+
leader: 'LEADER %{leader}'
|
212
|
+
start_over: 'refazer busca'
|
213
|
+
show:
|
214
|
+
title: '%{document_title} - %{application_name}'
|
215
|
+
rss_feed: 'RSS para resultadoss'
|
216
|
+
atom_feed: 'Atom para resultados'
|
217
|
+
fields:
|
218
|
+
default: 'Palavra-chave'
|
219
|
+
|
220
|
+
entry_name:
|
221
|
+
default: 'registro'
|
222
|
+
|
223
|
+
did_you_mean: 'Você quis dizer: %{options}?'
|
data/gemfiles/rails4.1.gemfile
CHANGED
data/lib/blacklight.rb
CHANGED
@@ -36,6 +36,11 @@ module Blacklight
|
|
36
36
|
attr_accessor :solr, :solr_config
|
37
37
|
end
|
38
38
|
|
39
|
+
# Secret key used to share session information with
|
40
|
+
# other services (e.g. refworks callback urls)
|
41
|
+
mattr_accessor :secret_key
|
42
|
+
@@secret_key = nil
|
43
|
+
|
39
44
|
def self.solr_file
|
40
45
|
"#{::Rails.root.to_s}/config/solr.yml"
|
41
46
|
end
|
data/lib/blacklight/catalog.rb
CHANGED
@@ -21,7 +21,6 @@ module Blacklight::Catalog
|
|
21
21
|
|
22
22
|
# get search results from the solr index
|
23
23
|
def index
|
24
|
-
|
25
24
|
(@response, @document_list) = get_search_results
|
26
25
|
|
27
26
|
respond_to do |format|
|
@@ -33,12 +32,13 @@ module Blacklight::Catalog
|
|
33
32
|
end
|
34
33
|
|
35
34
|
additional_response_formats(format)
|
35
|
+
document_export_formats(format)
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
39
|
# get single document from the solr index
|
40
40
|
def show
|
41
|
-
@response, @document = get_solr_response_for_doc_id
|
41
|
+
@response, @document = get_solr_response_for_doc_id
|
42
42
|
|
43
43
|
respond_to do |format|
|
44
44
|
format.html {setup_next_and_previous_documents}
|
@@ -103,7 +103,7 @@ module Blacklight::Catalog
|
|
103
103
|
|
104
104
|
# citation action
|
105
105
|
def citation
|
106
|
-
@response, @documents =
|
106
|
+
@response, @documents = get_solr_response_for_document_ids(params[:id])
|
107
107
|
respond_to do |format|
|
108
108
|
format.html
|
109
109
|
format.js { render :layout => false }
|
@@ -113,7 +113,7 @@ module Blacklight::Catalog
|
|
113
113
|
|
114
114
|
# Email Action (this will render the appropriate view on GET requests and process the form and send the email on POST requests)
|
115
115
|
def email
|
116
|
-
@response, @documents =
|
116
|
+
@response, @documents = get_solr_response_for_document_ids(params[:id])
|
117
117
|
|
118
118
|
if request.post? and validate_email_params
|
119
119
|
email = RecordMailer.email_record(@documents, {:to => params[:to], :message => params[:message]}, url_options)
|
@@ -136,7 +136,7 @@ module Blacklight::Catalog
|
|
136
136
|
|
137
137
|
# SMS action (this will render the appropriate view on GET requests and process the form and send the email on POST requests)
|
138
138
|
def sms
|
139
|
-
@response, @documents =
|
139
|
+
@response, @documents = get_solr_response_for_document_ids(params[:id])
|
140
140
|
|
141
141
|
if request.post? and validate_sms_params
|
142
142
|
to = "#{params[:to].gsub(/[^\d]/, '')}@#{sms_mappings[params[:carrier]]}"
|
@@ -170,6 +170,8 @@ module Blacklight::Catalog
|
|
170
170
|
# non-routable methods ->
|
171
171
|
#
|
172
172
|
|
173
|
+
##
|
174
|
+
# Render additional response formats, as provided by the blacklight configuration
|
173
175
|
def additional_response_formats format
|
174
176
|
blacklight_config.index.respond_to.each do |key, config|
|
175
177
|
format.send key do
|
@@ -189,6 +191,32 @@ module Blacklight::Catalog
|
|
189
191
|
end
|
190
192
|
end
|
191
193
|
|
194
|
+
##
|
195
|
+
# Try to render a response from the document export formats available
|
196
|
+
def document_export_formats format
|
197
|
+
format.any do
|
198
|
+
format_name = params.fetch(:format, '').to_sym
|
199
|
+
|
200
|
+
if @response.export_formats.include? format_name
|
201
|
+
render_document_export_format format_name
|
202
|
+
else
|
203
|
+
raise ActionController::UnknownFormat.new
|
204
|
+
end
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
##
|
209
|
+
# Render the document export formats for a response
|
210
|
+
# First, try to render an appropriate template (e.g. index.endnote.erb)
|
211
|
+
# If that fails, just concatenate the document export responses with a newline.
|
212
|
+
def render_document_export_format format_name
|
213
|
+
begin
|
214
|
+
render
|
215
|
+
rescue ActionView::MissingTemplate
|
216
|
+
render text: @response.documents.map { |x| x.export_as(format_name) if x.exports_as? format_name }.compact.join("\n"), layout: false
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
192
220
|
# override this method to change the JSON response from #index
|
193
221
|
def render_search_results_as_json
|
194
222
|
{response: {docs: @document_list, facets: search_facets_as_json, pages: pagination_info(@response)}}
|
@@ -17,9 +17,8 @@ module Blacklight
|
|
17
17
|
# the basic, required Blacklight fields
|
18
18
|
class << self
|
19
19
|
def default_values
|
20
|
-
@default_values ||= begin
|
21
|
-
unique_key = ((SolrDocument.unique_key if defined?(SolrDocument)) || 'id')
|
22
20
|
|
21
|
+
@default_values ||= begin
|
23
22
|
{
|
24
23
|
# HTTP method to use when making requests to solr; valid
|
25
24
|
# values are :get and :post.
|
@@ -30,6 +29,8 @@ module Blacklight
|
|
30
29
|
:solr_path => 'select',
|
31
30
|
# Default values of parameters to send with every search request
|
32
31
|
:default_solr_params => {},
|
32
|
+
# the model to load solr response documents into; set below in #initialize_default_values
|
33
|
+
:solr_document_model => nil,
|
33
34
|
# The solr rqeuest handler to use when requesting only a single document
|
34
35
|
:document_solr_request_handler => 'document',
|
35
36
|
# THe path to send single document requests to solr
|
@@ -50,7 +51,7 @@ module Blacklight
|
|
50
51
|
# General configuration for all views
|
51
52
|
:index => ViewConfig::Index.new(
|
52
53
|
# solr field to use to render a document title
|
53
|
-
:title_field =>
|
54
|
+
:title_field => nil,
|
54
55
|
# solr field to use to render format-specific partials
|
55
56
|
:display_type_field => 'format',
|
56
57
|
# partials to render for each document(see #render_document_partials)
|
@@ -131,6 +132,10 @@ module Blacklight
|
|
131
132
|
self[k] ||= v
|
132
133
|
end
|
133
134
|
end
|
135
|
+
|
136
|
+
def solr_document_model
|
137
|
+
super || SolrDocument
|
138
|
+
end
|
134
139
|
|
135
140
|
##
|
136
141
|
# DSL helper
|
@@ -160,6 +165,10 @@ module Blacklight
|
|
160
165
|
|
161
166
|
field
|
162
167
|
end
|
168
|
+
|
169
|
+
def default_title_field
|
170
|
+
solr_document_model.unique_key || 'id'
|
171
|
+
end
|
163
172
|
|
164
173
|
##
|
165
174
|
# Add any configured facet fields to the default solr parameters hash
|