blacklight 4.3.0 → 4.4.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.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +0 -6
  4. data/Gemfile +5 -0
  5. data/README.md +1 -1
  6. data/Rakefile +0 -1
  7. data/VERSION +1 -1
  8. data/app/assets/javascripts/blacklight/autofocus.js +16 -0
  9. data/app/assets/javascripts/blacklight/blacklight.js +1 -0
  10. data/app/assets/javascripts/blacklight/bookmark_toggle.js +2 -5
  11. data/app/assets/javascripts/blacklight/checkbox_submit.js +3 -6
  12. data/app/assets/javascripts/blacklight/core.js +24 -1
  13. data/app/assets/javascripts/blacklight/css_dropdowns.js +2 -2
  14. data/app/assets/javascripts/blacklight/facet_expand_contract.js +4 -3
  15. data/app/assets/javascripts/blacklight/lightbox_dialog.js +7 -1
  16. data/app/assets/javascripts/blacklight/search_context.js +1 -1
  17. data/app/assets/javascripts/blacklight/select_submit.js +1 -1
  18. data/app/assets/javascripts/blacklight/zebra_stripe.js +1 -1
  19. data/app/assets/stylesheets/blacklight/_blacklight_base.css.scss +1 -0
  20. data/app/assets/stylesheets/blacklight/_catalog.css.scss +5 -0
  21. data/app/assets/stylesheets/blacklight/_facets.css.scss +6 -0
  22. data/app/assets/stylesheets/blacklight/_group.css.scss +14 -0
  23. data/app/assets/stylesheets/blacklight/blacklight_defaults.css.scss +1 -0
  24. data/app/controllers/bookmarks_controller.rb +2 -2
  25. data/app/helpers/blacklight/blacklight_helper_behavior.rb +41 -24
  26. data/app/helpers/blacklight/catalog_helper_behavior.rb +48 -28
  27. data/app/helpers/blacklight/facets_helper_behavior.rb +9 -75
  28. data/app/models/record_mailer.rb +1 -16
  29. data/app/views/bookmarks/index.html.erb +2 -0
  30. data/app/views/catalog/_bookmark_control.html.erb +3 -4
  31. data/app/views/catalog/_document.html.erb +2 -1
  32. data/app/views/catalog/_document_header.html.erb +6 -3
  33. data/app/views/catalog/_email_form.html.erb +0 -7
  34. data/app/views/catalog/_facet_layout.html.erb +1 -1
  35. data/app/views/catalog/_group_default.html.erb +12 -0
  36. data/app/views/catalog/_index_default.html.erb +1 -1
  37. data/app/views/catalog/_opensearch_response_metadata.html.erb +2 -3
  38. data/app/views/catalog/_paginate_compact.html.erb +2 -2
  39. data/app/views/catalog/_results_pagination.html.erb +2 -2
  40. data/app/views/catalog/_search_form.html.erb +1 -1
  41. data/app/views/catalog/_sms_form.html.erb +1 -21
  42. data/app/views/catalog/_thumbnail_default.html.erb +5 -0
  43. data/app/views/catalog/email_sent.html.erb +9 -0
  44. data/app/views/catalog/index.atom.builder +7 -8
  45. data/app/views/catalog/index.html.erb +6 -3
  46. data/app/views/catalog/librarian_view.html.erb +1 -1
  47. data/app/views/catalog/sms_sent.html.erb +9 -0
  48. data/app/views/feedback/complete.html.erb +2 -0
  49. data/app/views/feedback/show.html.erb +7 -5
  50. data/app/views/kaminari/blacklight_compact/_paginator.html.erb +1 -1
  51. data/app/views/layouts/blacklight.html.erb +1 -2
  52. data/app/views/saved_searches/index.html.erb +2 -0
  53. data/app/views/search_history/index.html.erb +1 -1
  54. data/blacklight.gemspec +1 -1
  55. data/config/locales/blacklight.en.yml +11 -0
  56. data/config/locales/blacklight.fr.yml +15 -1
  57. data/gemfiles/rails3.gemfile +7 -0
  58. data/gemfiles/rails4.gemfile +7 -0
  59. data/lib/blacklight.rb +1 -0
  60. data/lib/blacklight/catalog.rb +101 -56
  61. data/lib/blacklight/configuration.rb +1 -1
  62. data/lib/blacklight/controller.rb +7 -4
  63. data/lib/blacklight/facet.rb +79 -0
  64. data/lib/blacklight/routes.rb +0 -1
  65. data/lib/blacklight/solr/document.rb +4 -0
  66. data/lib/blacklight/solr/document/marc_export.rb +1 -1
  67. data/lib/blacklight/solr_helper.rb +39 -8
  68. data/lib/blacklight/solr_response.rb +35 -3
  69. data/lib/blacklight/solr_response/facets.rb +4 -0
  70. data/lib/blacklight/solr_response/group.rb +33 -0
  71. data/lib/blacklight/solr_response/group_response.rb +49 -0
  72. data/lib/blacklight/solr_response/pagination_methods.rb +27 -0
  73. data/lib/blacklight/user.rb +30 -32
  74. data/lib/generators/blacklight/assets_generator.rb +3 -1
  75. data/lib/generators/blacklight/blacklight_generator.rb +28 -125
  76. data/lib/generators/blacklight/marc_generator.rb +66 -0
  77. data/lib/generators/blacklight/models_generator.rb +113 -0
  78. data/lib/generators/blacklight/templates/alternate_controller.rb +9 -0
  79. data/lib/generators/blacklight/templates/config/solr.yml +0 -2
  80. data/lib/generators/blacklight/templates/solr_document.rb +1 -13
  81. data/lib/railties/all_tests.rake +5 -8
  82. data/spec/controllers/catalog_controller_spec.rb +185 -113
  83. data/spec/features/alternate_controller_spec.rb +34 -0
  84. data/spec/features/bookmarks_spec.rb +58 -0
  85. data/spec/features/did_you_mean_spec.rb +135 -0
  86. data/spec/features/librarian_view_spec.rb +13 -0
  87. data/spec/features/record_view_spec.rb +37 -0
  88. data/spec/features/saved_searches_spec.rb +47 -0
  89. data/spec/features/search_filters_spec.rb +137 -0
  90. data/spec/features/search_history_spec.rb +75 -0
  91. data/spec/features/search_pagination_spec.rb +91 -0
  92. data/spec/features/search_results_spec.rb +68 -0
  93. data/spec/features/search_sort_spec.rb +20 -0
  94. data/spec/features/search_spec.rb +108 -0
  95. data/spec/helpers/blacklight_helper_spec.rb +45 -2
  96. data/spec/helpers/catalog_helper_spec.rb +134 -1
  97. data/spec/helpers/facets_helper_spec.rb +8 -0
  98. data/spec/lib/blacklight/solr_response/group_response_spec.rb +78 -0
  99. data/spec/lib/blacklight/solr_response/group_spec.rb +70 -0
  100. data/spec/lib/blacklight_solr_response_spec.rb +11 -5
  101. data/spec/lib/blacklight_user_spec.rb +22 -41
  102. data/spec/lib/solr_helper_spec.rb +73 -1
  103. data/spec/models/record_mailer_spec.rb +3 -3
  104. data/spec/models/{solr_docment_spec.rb → solr_document_spec.rb} +1 -1
  105. data/spec/spec_helper.rb +0 -1
  106. data/spec/support/features.rb +7 -0
  107. data/spec/support/features/session_helpers.rb +22 -0
  108. data/spec/test_app_templates/Gemfile.extra +0 -4
  109. data/spec/test_app_templates/lib/generators/test_app_generator.rb +0 -6
  110. data/spec/test_app_templates/lib/tasks/blacklight_test_app.rake +1 -9
  111. data/spec/views/catalog/_facets.html.erb_spec.rb +2 -1
  112. data/tasks/blacklight.rake +0 -10
  113. metadata +49 -58
  114. data/features/bookmarks.feature +0 -68
  115. data/features/did_you_mean.feature +0 -123
  116. data/features/librarian_view.feature +0 -18
  117. data/features/record_view.feature +0 -40
  118. data/features/saved_searches.feature +0 -49
  119. data/features/search.feature +0 -83
  120. data/features/search_filters.feature +0 -119
  121. data/features/search_history.feature +0 -85
  122. data/features/search_pagination.feature +0 -53
  123. data/features/search_results.feature +0 -61
  124. data/features/search_sort.feature +0 -27
  125. data/features/step_definitions/bookmarks_steps.rb +0 -6
  126. data/features/step_definitions/error_steps.rb +0 -5
  127. data/features/step_definitions/general_steps.rb +0 -50
  128. data/features/step_definitions/record_view_steps.rb +0 -12
  129. data/features/step_definitions/saved_searches_steps.rb +0 -19
  130. data/features/step_definitions/search_facets_steps.rb +0 -29
  131. data/features/step_definitions/search_history_steps.rb +0 -9
  132. data/features/step_definitions/search_pagination_steps.rb +0 -29
  133. data/features/step_definitions/search_result_steps.rb +0 -115
  134. data/features/step_definitions/search_steps.rb +0 -118
  135. data/features/step_definitions/user_steps.rb +0 -5
  136. data/features/step_definitions/web_steps.rb +0 -217
  137. data/features/support/env.rb +0 -65
  138. data/features/support/paths.rb +0 -48
  139. data/features/support/selectors.rb +0 -40
  140. data/lib/railties/blacklight_cucumber.rake +0 -126
  141. data/lib/solrmarc.log.1 +0 -854
@@ -1,12 +1,6 @@
1
1
  module Blacklight::FacetsHelperBehavior
2
2
 
3
- #
4
- # blacklight_config based helpers ->
5
- #
6
-
7
- def facet_configuration_for_field(field)
8
- blacklight_config.facet_fields[field] || Blacklight::Configuration::FacetField.new(:field => field).normalize!
9
- end
3
+ include Blacklight::Facet
10
4
 
11
5
  # used in the catalog/_facets partial
12
6
  def facet_field_labels
@@ -14,37 +8,18 @@ module Blacklight::FacetsHelperBehavior
14
8
  Hash[*blacklight_config.facet_fields.map { |key, facet| [key, facet.label] }.flatten]
15
9
  end
16
10
 
17
- # used in the catalog/_facets partial
18
- def facet_field_names
19
- blacklight_config.facet_fields.keys
20
- end
21
11
 
22
12
  def has_facet_values? fields = facet_field_names, options = {}
23
- solr_fields = fields.map { |solr_field| facet_by_field_name(solr_field) }.compact
24
- solr_fields.any? { |display_facet| !display_facet.items.empty? }
13
+ facets_from_request(fields).any? { |display_facet| !display_facet.items.empty? }
25
14
  end
26
15
 
27
16
  # Render a collection of facet fields
28
17
  def render_facet_partials fields = facet_field_names, options = {}
29
- solr_fields = fields.map { |solr_field| facet_by_field_name(solr_field) }.compact
30
-
31
- solr_fields.map do |display_facet|
18
+ facets_from_request(fields).map do |display_facet|
32
19
  render_facet_limit(display_facet, options)
33
20
  end.compact.join("\n").html_safe
34
21
  end
35
22
 
36
- # Get a FacetField object from the @response
37
- def facet_by_field_name solr_field
38
- case solr_field
39
- when String, Symbol
40
- extract_solr_facet_by_field_name(solr_field)
41
- when Blacklight::Configuration::FacetField
42
- extract_solr_facet_by_field_name(solr_field.field)
43
- else
44
- solr_field
45
- end
46
- end
47
-
48
23
 
49
24
  # used in the catalog/_facets partial and elsewhere
50
25
  # Renders a single section for facet limit with a specified
@@ -202,6 +177,10 @@ module Blacklight::FacetsHelperBehavior
202
177
  p[:f].delete(field) if p[:f][field].size == 0
203
178
  p
204
179
  end
180
+
181
+ def facet_field_in_params? field
182
+ params[:f] and params[:f][field]
183
+ end
205
184
 
206
185
  # true or false, depending on whether the field and value is in params[:f]
207
186
  def facet_in_params?(field, item)
@@ -211,7 +190,7 @@ module Blacklight::FacetsHelperBehavior
211
190
 
212
191
  value = facet_value_for_facet_item(item)
213
192
 
214
- params[:f] and params[:f][field] and params[:f][field].include?(value)
193
+ facet_field_in_params?(field) and params[:f][field].include?(value)
215
194
  end
216
195
 
217
196
  def facet_display_value field, item
@@ -237,6 +216,7 @@ module Blacklight::FacetsHelperBehavior
237
216
  end
238
217
  end
239
218
 
219
+
240
220
  private
241
221
 
242
222
  def facet_value_for_facet_item item
@@ -247,50 +227,4 @@ module Blacklight::FacetsHelperBehavior
247
227
  end
248
228
  end
249
229
 
250
- # Get the solr response for the solr field :field
251
- def extract_solr_facet_by_field_name facet_name
252
- facet_field = facet_configuration_for_field(facet_name)
253
- case
254
- when (facet_field.respond_to?(:query) and facet_field.query)
255
- create_rsolr_facet_field_response_for_query_facet_field facet_name, facet_field
256
- when (facet_field.respond_to?(:pivot) and facet_field.pivot)
257
- create_rsolr_facet_field_response_for_pivot_facet_field facet_name, facet_field
258
- else
259
- @response.facet_by_field_name(facet_name)
260
- end
261
- end
262
-
263
- def create_rsolr_facet_field_response_for_query_facet_field facet_name, facet_field
264
- salient_facet_queries = facet_field.query.map { |k, x| x[:fq] }
265
- items = []
266
- @response.facet_queries.select { |k,v| salient_facet_queries.include?(k) }.reject { |value, hits| hits == 0 }.map do |value,hits|
267
- salient_fields = facet_field.query.select { |key, val| val[:fq] == value }
268
- key = ((salient_fields.keys if salient_fields.respond_to? :keys) || salient_fields.first).first
269
- items << Blacklight::SolrResponse::Facets::FacetItem.new(:value => key, :hits => hits, :label => facet_field.query[key][:label])
270
- end
271
-
272
- Blacklight::SolrResponse::Facets::FacetField.new facet_name, items
273
- end
274
-
275
-
276
- def create_rsolr_facet_field_response_for_pivot_facet_field facet_name, facet_field
277
- items = []
278
- (@response.facet_pivot[facet_field.pivot.join(",")] || []).map do |lst|
279
- items << construct_pivot_field(lst)
280
- end
281
-
282
- Blacklight::SolrResponse::Facets::FacetField.new facet_name, items
283
- end
284
-
285
- def construct_pivot_field lst, parent_fq = {}
286
- items = []
287
-
288
- lst[:pivot].each do |i|
289
- items << construct_pivot_field(i, parent_fq.merge({ lst[:field] => lst[:value] }))
290
- end if lst[:pivot]
291
-
292
- Blacklight::SolrResponse::Facets::FacetItem.new(:value => lst[:value], :hits => lst[:count], :field => lst[:field], :items => items, :fq => parent_fq)
293
-
294
- end
295
-
296
230
  end
@@ -14,24 +14,9 @@ class RecordMailer < ActionMailer::Base
14
14
  end
15
15
 
16
16
  def sms_record(documents, details, url_gen_params)
17
- if sms_mapping[details[:carrier]]
18
- to = "#{details[:to]}@#{sms_mapping[details[:carrier]]}"
19
- end
20
17
  @documents = documents
21
18
  @url_gen_params = url_gen_params
22
- mail(:to => to, :subject => "")
19
+ mail(:to => details[:to], :subject => "")
23
20
  end
24
21
 
25
- protected
26
-
27
- def sms_mapping
28
- {'virgin' => 'vmobl.com',
29
- 'att' => 'txt.att.net',
30
- 'verizon' => 'vtext.com',
31
- 'nextel' => 'messaging.nextel.com',
32
- 'sprint' => 'messaging.sprintpcs.com',
33
- 'tmobile' => 'tmomail.net',
34
- 'alltel' => 'message.alltel.com',
35
- 'cricket' => 'mms.mycricket.com'}
36
- end
37
22
  end
@@ -1,3 +1,4 @@
1
+ <div id="content" class="span12">
1
2
  <h1><%= t('blacklight.bookmarks.title') %></h1>
2
3
 
3
4
  <%- if current_or_guest_user.blank? -%>
@@ -14,4 +15,5 @@
14
15
  <%= render_document_index %>
15
16
  <%= render 'results_pagination' %>
16
17
  <% end %>
18
+ </div>
17
19
 
@@ -1,19 +1,18 @@
1
1
  <% if current_or_guest_user %>
2
- <%- existing_bookmark = current_or_guest_user.existing_bookmark_for(document.id) -%>
3
2
  <%-
4
3
  # Note these two forms are pretty similar but for different :methods, classes, and labels.
5
4
  # but it was simpler to leave them seperate instead of DRYing them, got confusing trying that.
6
5
  # the data-doc-id attribute is used by our JS that converts to a checkbox/label.
7
6
  -%>
8
- <% unless existing_bookmark %>
7
+ <% unless current_or_guest_user.document_is_bookmarked? document.id %>
9
8
 
10
- <%= form_tag( bookmark_path( document ), :method => :put, :class => "bookmark_toggle", "data-doc-id" => document.id) do %>
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 %>
11
10
  <%= submit_tag(t('blacklight.bookmarks.add.button'), :id => "bookmark_toggle_#{document.id.to_s.parameterize}", :class => "bookmark_add") %>
12
11
  <% end %>
13
12
 
14
13
  <% else %>
15
14
 
16
- <%= form_tag( bookmark_path( document ), :method => :delete, :class => "bookmark_toggle", "data-doc-id" => document.id) do %>
15
+ <%= form_tag( bookmark_path( document ), :method => :delete, :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 %>
17
16
  <%= submit_tag(t('blacklight.bookmarks.remove.button'), :id => "bookmark_toggle_#{document.id.to_s.parameterize}", :class => "bookmark_remove") %>
18
17
  <% end %>
19
18
 
@@ -1,8 +1,9 @@
1
1
  <% # container for a single doc -%>
2
2
  <div class="document <%= render_document_class document %>">
3
-
4
3
  <%= render :partial => 'document_header', :locals => { :document => document, :document_counter => document_counter } %>
5
4
 
5
+ <%= render_document_partial document, :thumbnail, :document_counter => document_counter %>
6
+
6
7
  <% # main container for doc partial view -%>
7
8
  <%= render_document_partial document, :index %>
8
9
 
@@ -2,10 +2,13 @@
2
2
  <% # header bar for doc items in index view -%>
3
3
  <div class="documentHeader clearfix">
4
4
 
5
- <% # main title container for doc partial view -%>
6
- <h5 class="index_title"><%= t('blacklight.search.documents.counter', :counter => (document_counter + 1 + @response.params[:start].to_i)) %><%= link_to_document document, :label=>document_show_link_field(document), :counter => (document_counter + 1 + @response.params[:start].to_i) %></h5>
5
+ <%- # main title container for doc partial view -%>
6
+ <h5 class="index_title">
7
+ <% counter = document_counter_with_offset(document_counter) %>
8
+ <%= t('blacklight.search.documents.counter', :counter => counter) if counter %>
9
+ <%= link_to_document document, :label=>document_show_link_field(document), :counter => counter %>
10
+ </h5>
7
11
 
8
-
9
12
  <% # bookmark functions for items/docs -%>
10
13
  <%= render_index_doc_actions document, :wrapping_class => "documentFunctions span2" %>
11
14
  </div>
@@ -1,4 +1,3 @@
1
- <%- unless flash[:success] %>
2
1
  <%= form_tag url_for(:controller => "catalog", :action => "email"), :id => 'email_form', :class => "form-horizontal ajax_form", :method => :post do %>
3
2
 
4
3
  <div class="modal-body">
@@ -35,9 +34,3 @@
35
34
  <button type="submit" class="btn btn-primary"> <%= t('blacklight.sms.form.submit') %></button>
36
35
  </div>
37
36
  <% end %>
38
- <%- else %>
39
- <div class="modal-body">
40
- <%= render :partial=>'/flash_msg' %>
41
- <span class="ajax-close-modal"/>
42
- </div>
43
- <%- end %>
@@ -1,4 +1,4 @@
1
1
  <div class="facet_limit blacklight-<%= facet_field.field.parameterize %>">
2
- <h5><%= facet_field.label -%> <i class="icon-chevron"></i></h5>
2
+ <h5><%= link_to facet_field.label, "#", "data-no-turbolink" => true -%> <i class="icon-chevron"></i></h5>
3
3
  <%= yield %>
4
4
  </div>
@@ -0,0 +1,12 @@
1
+ <% # container for all groups in index view -%>
2
+ <div id="groups">
3
+ <%- @response.groups.each do |g| %>
4
+ <h3 class="group-key"><%= g.key %></h3>
5
+ <div class="grouped-documents">
6
+ <%= render_document_index g.docs %>
7
+ </div>
8
+ <%- if g.total > @response.group_limit %>
9
+ <%= link_to t('blacklight.search.group.more'), add_group_facet_params_and_redirect(g), :class => 'more-in-group' %>
10
+ <%- end %>
11
+ <%- end %>
12
+ </div>
@@ -1,5 +1,5 @@
1
1
  <%# default partial to display solr document fields in catalog index view -%>
2
- <dl class="dl-horizontal dl-invert">
2
+ <dl class="document-metadata dl-horizontal dl-invert">
3
3
 
4
4
  <% index_fields(document).each do |solr_fname, field| -%>
5
5
  <% if should_render_index_field? document, field %>
@@ -1,4 +1,3 @@
1
- <% page_info = paginate_params(@response) %>
2
1
  <%= tag :meta, :name => "totalResults", :content => @response.total %>
3
- <%= tag :meta, :name => "startIndex", :content => (page_info.current_page == 1 ? 1 : @response.start ) %>
4
- <%= tag :meta, :name => "itemsPerPage", :content => page_info.limit_value %>
2
+ <%= tag :meta, :name => "startIndex", :content => @response.start %>
3
+ <%= tag :meta, :name => "itemsPerPage", :content => @response.limit_value %>
@@ -1,5 +1,5 @@
1
- <% if paginate_params(@response).num_pages > 1 %>
2
- <%= paginate_rsolr_response @response, :theme => :blacklight_compact %>
1
+ <% if @response.total_pages > 1 %>
2
+ <%= paginate @response, :theme => :blacklight_compact %>
3
3
  <% else %>
4
4
  <%= render_pagination_info(@response) %>
5
5
  <% end %>
@@ -1,8 +1,8 @@
1
- <% if paginate_params(@response).num_pages > 1 %>
1
+ <% if @response.total_pages > 1 %>
2
2
  <div class="row record-padding">
3
3
  <div class="span9">
4
4
  <div class="pagination">
5
- <%= paginate_rsolr_response @response, :outer_window => 2, :theme => 'blacklight' %>
5
+ <%= paginate @response, :outer_window => 2, :theme => 'blacklight' %>
6
6
  </div>
7
7
  </div>
8
8
  </div>
@@ -10,7 +10,7 @@
10
10
  <% end %>
11
11
  <div class="input-append pull-left">
12
12
  <label for="q" class="hide-text"><%= t('blacklight.search.form.q') %></label>
13
- <%= text_field_tag :q, params[:q], :placeholder => t('blacklight.search.form.q'), :class => "search_q q", :id => "q"%>
13
+ <%= text_field_tag :q, params[:q], :placeholder => t('blacklight.search.form.q'), :class => "search_q q", :id => "q", :autofocus => should_autofocus_on_search_box? %>
14
14
  <button type="submit" class="btn btn-primary search-btn" id="search">
15
15
  <span class="submit-search-text"><%=t('blacklight.search.form.submit')%></span>
16
16
  <i class="icon-search icon-white"></i>
@@ -1,17 +1,3 @@
1
- <% carriers =
2
- {
3
- 'AT&T' => 'att',
4
- 'Verizon' => 'verizon',
5
- 'T Mobile' => 'tmobile',
6
- 'Sprint' => 'sprint',
7
- 'Nextel' => 'nextel',
8
- 'Virgin Mobile' => 'virgin',
9
- 'Alltel' => 'alltel',
10
- 'Cricket' => 'cricket'
11
- }
12
- %>
13
- <%- unless flash[:success] %>
14
-
15
1
  <%= form_tag url_for(:controller => "catalog", :action => "sms"), :id => 'sms_form', :class => "form-horizontal ajax_form", :method => :post do %>
16
2
  <div class="modal-body">
17
3
  <%= render :partial=>'/flash_msg' %>
@@ -28,7 +14,7 @@
28
14
  <%= t('blacklight.sms.form.carrier') %>
29
15
  </label>
30
16
  <div class="controls">
31
- <%= select_tag(:carrier, options_for_select(carriers.to_a.sort.unshift([t('blacklight.sms.form.carrier_prompt'),'']), params[:carrier])) %><br/>
17
+ <%= select_tag(:carrier, options_for_select(sms_mappings.to_a.sort.unshift([t('blacklight.sms.form.carrier_prompt'),'']), params[:carrier])) %><br/>
32
18
  </div>
33
19
 
34
20
  </div>
@@ -40,9 +26,3 @@
40
26
  <button type="submit" class="btn btn-primary"> <%= t('blacklight.sms.form.submit') %></button>
41
27
  </div>
42
28
  <% end %>
43
- <%- else %>
44
- <div class="modal-body">
45
- <%= render :partial=>'/flash_msg' %>
46
- <span class="ajax-close-modal"/>
47
- </div>
48
- <%- end %>
@@ -0,0 +1,5 @@
1
+ <%- if has_thumbnail?(document) && tn = render_thumbnail_tag(document, nil, :counter => document_counter + 1 + @response.params[:start].to_i) %>
2
+ <div class="document-thumbnail">
3
+ <%= tn %>
4
+ </div>
5
+ <%- end %>
@@ -0,0 +1,9 @@
1
+ <div class="modal-header">
2
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
3
+ <h1><%= t('blacklight.email.form.title') %></h1>
4
+ </div>
5
+
6
+ <div class="modal-body">
7
+ <%= render :partial=>'/flash_msg' %>
8
+ <span class="ajax-close-modal"></span>
9
+ </div>
@@ -1,5 +1,4 @@
1
1
  require 'base64'
2
- page_info = paginate_params(@response)
3
2
 
4
3
  xml.instruct!(:xml, :encoding => "UTF-8")
5
4
 
@@ -17,18 +16,18 @@ xml.feed("xmlns" => "http://www.w3.org/2005/Atom",
17
16
  # Navigational and context links
18
17
 
19
18
  xml.link( "rel" => "next",
20
- "href" => url_for(params.merge(:only_path => false, :page => (page_info.current_page + 1).to_s))
21
- ) if page_info.num_pages > page_info.current_page
19
+ "href" => url_for(params.merge(:only_path => false, :page => @response.next_page.to_s))
20
+ ) if @response.next_page
22
21
 
23
22
  xml.link( "rel" => "previous",
24
- "href" => url_for(params.merge(:only_path => false, :page => (page_info.current_page - 1).to_s))
25
- ) if page_info.current_page > 1
23
+ "href" => url_for(params.merge(:only_path => false, :page => @response.prev_page.to_s))
24
+ ) if @response.prev_page
26
25
 
27
26
  xml.link( "rel" => "first",
28
27
  "href" => url_for(params.merge(:only_path => false, :page => "1")))
29
28
 
30
29
  xml.link( "rel" => "last",
31
- "href" => url_for(params.merge(:only_path => false, :page => page_info.num_pages.to_s)))
30
+ "href" => url_for(params.merge(:only_path => false, :page => @response.total_pages.to_s)))
32
31
 
33
32
  # "search" doesn't seem to actually be legal, but is very common, and
34
33
  # used as an example in opensearch docs
@@ -39,8 +38,8 @@ xml.feed("xmlns" => "http://www.w3.org/2005/Atom",
39
38
  # opensearch response elements
40
39
  xml.opensearch :totalResults, @response.total.to_s
41
40
  xml.opensearch :startIndex, @response.start.to_s
42
- xml.opensearch :itemsPerPage, page_info.limit_value
43
- xml.opensearch :Query, :role => "request", :searchTerms => params[:q], :startPage => page_info.current_page
41
+ xml.opensearch :itemsPerPage, @response.limit_value
42
+ xml.opensearch :Query, :role => "request", :searchTerms => params[:q], :startPage => @response.current_page
44
43
 
45
44
 
46
45
  # updated is required, for now we'll just set it to now, sorry
@@ -20,11 +20,14 @@
20
20
 
21
21
  <%= render :partial => 'constraints' %>
22
22
 
23
- <%= render 'sort_and_per_page' %>
24
-
23
+ <%= render :partial => 'sort_and_per_page' %>
25
24
  <h2 class="hide-text"><%= t('blacklight.search.search_results') %></h2>
26
- <%= render_document_index %>
27
25
 
26
+ <%- if render_grouped_response? %>
27
+ <%= render_grouped_document_index %>
28
+ <%- else %>
29
+ <%= render_document_index %>
30
+ <%- end %>
28
31
 
29
32
  <%= render 'results_pagination' %>
30
33
 
@@ -6,5 +6,5 @@
6
6
  <%- if @document.respond_to?(:to_marc) -%>
7
7
  <%= render "marc_view" %>
8
8
  <%- else %>
9
- No MARC data found.
9
+ <%= t('blacklight.search.librarian_view.empty') %>
10
10
  <%- end -%>
@@ -0,0 +1,9 @@
1
+ <div class="modal-header">
2
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
3
+ <h1><%= t('blacklight.sms.form.title') %></h1>
4
+ </div>
5
+
6
+ <div class="modal-body">
7
+ <%= render :partial=>'/flash_msg' %>
8
+ <span class="ajax-close-modal"></span>
9
+ </div>
@@ -1,3 +1,5 @@
1
+ <div id="content" class="span9">
1
2
  <h1><%= t('blacklight.feedback.complete.title') %></h1>
2
3
 
3
4
  <%= link_to t('blacklight.back_to_search'), catalog_index_path %>
5
+ </div>