blacklight 3.4.2 → 3.5.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 (95) hide show
  1. data/Gemfile +4 -0
  2. data/VERSION +1 -1
  3. data/app/assets/javascripts/blacklight/blacklight.js +15 -474
  4. data/app/assets/javascripts/blacklight/bookmark_toggle.js +21 -0
  5. data/app/assets/javascripts/blacklight/checkbox_submit.js +126 -0
  6. data/app/assets/javascripts/blacklight/core.js +2 -0
  7. data/app/assets/javascripts/blacklight/facet_expand_contract.js +40 -0
  8. data/app/assets/javascripts/blacklight/folder_toggle.js +24 -0
  9. data/app/assets/javascripts/blacklight/lightbox_dialog.js +15 -0
  10. data/app/assets/javascripts/blacklight/more_facets.js +15 -0
  11. data/app/assets/javascripts/blacklight/search_context.js +26 -0
  12. data/app/assets/javascripts/blacklight/select_submit.js +18 -0
  13. data/app/assets/javascripts/blacklight/zebra_stripe.js +13 -0
  14. data/app/assets/javascripts/jquery.uiExt.ajaxyDialog.js +180 -0
  15. data/app/controllers/bookmarks_controller.rb +9 -9
  16. data/app/controllers/feedback_controller.rb +3 -3
  17. data/app/controllers/folder_controller.rb +3 -3
  18. data/app/controllers/saved_searches_controller.rb +7 -7
  19. data/app/controllers/search_history_controller.rb +2 -2
  20. data/app/helpers/blacklight/blacklight_helper_behavior.rb +6 -10
  21. data/app/helpers/blacklight/catalog_helper_behavior.rb +8 -11
  22. data/app/helpers/blacklight/facets_helper_behavior.rb +2 -2
  23. data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +2 -2
  24. data/app/models/bookmark.rb +5 -0
  25. data/app/models/record_mailer.rb +5 -11
  26. data/app/views/_user_util_links.html.erb +6 -6
  27. data/app/views/bookmarks/index.html.erb +8 -8
  28. data/app/views/catalog/_bookmark_control.html.erb +2 -2
  29. data/app/views/catalog/_bookmark_form.html.erb +3 -3
  30. data/app/views/catalog/_citation.html.erb +3 -3
  31. data/app/views/catalog/_constraints.html.erb +1 -1
  32. data/app/views/catalog/_constraints_element.html.erb +2 -2
  33. data/app/views/catalog/_did_you_mean.html.erb +2 -7
  34. data/app/views/catalog/_document.html.erb +1 -1
  35. data/app/views/catalog/_email_form.html.erb +4 -4
  36. data/app/views/catalog/_facet_limit.html.erb +1 -1
  37. data/app/views/catalog/_facet_pagination.html.erb +7 -7
  38. data/app/views/catalog/_facets.html.erb +1 -1
  39. data/app/views/catalog/_folder_control.html.erb +1 -1
  40. data/app/views/catalog/_home_text.html.erb +1 -1
  41. data/app/views/catalog/_marc_view.html.erb +2 -2
  42. data/app/views/catalog/_refworks_form.html.erb +2 -2
  43. data/app/views/catalog/_results_pagination.html.erb +1 -1
  44. data/app/views/catalog/_search_form.html.erb +5 -5
  45. data/app/views/catalog/_show_tools.html.erb +6 -6
  46. data/app/views/catalog/_sms_form.html.erb +5 -5
  47. data/app/views/catalog/_sort_and_per_page.html.erb +6 -9
  48. data/app/views/catalog/index.atom.builder +3 -3
  49. data/app/views/catalog/index.html.erb +2 -2
  50. data/app/views/catalog/index.rss.builder +3 -3
  51. data/app/views/catalog/show.html.erb +2 -2
  52. data/app/views/feedback/complete.html.erb +2 -2
  53. data/app/views/feedback/show.html.erb +5 -5
  54. data/app/views/folder/_tools.html.erb +4 -4
  55. data/app/views/folder/index.html.erb +1 -1
  56. data/app/views/layouts/blacklight.html.erb +1 -1
  57. data/app/views/record_mailer/email_record.text.erb +2 -2
  58. data/app/views/record_mailer/sms_record.text.erb +1 -1
  59. data/app/views/saved_searches/index.html.erb +6 -6
  60. data/app/views/search_history/index.html.erb +6 -6
  61. data/config/locales/blacklight.en.yml +227 -0
  62. data/lib/blacklight.rb +0 -2
  63. data/lib/blacklight/catalog.rb +11 -13
  64. data/lib/blacklight/configurable.rb +0 -3
  65. data/lib/blacklight/configuration.rb +0 -42
  66. data/lib/blacklight/configuration/fields.rb +2 -0
  67. data/lib/blacklight/routes.rb +14 -2
  68. data/lib/blacklight/search_fields.rb +1 -1
  69. data/lib/blacklight/solr/document/email.rb +6 -6
  70. data/lib/blacklight/solr/document/sms.rb +4 -4
  71. data/lib/blacklight/solr_helper.rb +1 -3
  72. data/lib/generators/blacklight/blacklight_generator.rb +3 -0
  73. data/lib/railties/blacklight_cucumber.rake +12 -3
  74. data/lib/railties/blacklight_rspec.rake +9 -2
  75. data/test_support/alternate_controller.rb +4 -0
  76. data/test_support/bin/test.sh +13 -1
  77. data/test_support/features/bookmarks.feature +1 -1
  78. data/test_support/features/librarian_view.feature +2 -1
  79. data/test_support/features/record_view.feature +1 -0
  80. data/test_support/features/search.feature +1 -0
  81. data/test_support/features/step_definitions/general_steps.rb +4 -0
  82. data/test_support/features/support/env.rb +12 -1
  83. data/test_support/features/support/paths.rb +2 -1
  84. data/test_support/spec/helpers/blacklight_helper_spec.rb +8 -2
  85. data/test_support/spec/helpers/search_history_constraints_helper_spec.rb +6 -18
  86. data/test_support/spec/lib/search_fields_spec.rb +18 -25
  87. data/test_support/spec/models/record_mailer_spec.rb +5 -4
  88. data/test_support/spec/requests/alternate_controller_spec.rb +15 -0
  89. data/test_support/spec/spec_helper.rb +12 -0
  90. data/test_support/spec/views/catalog/_index_default.erb_spec.rb +6 -17
  91. data/test_support/spec/views/catalog/_show_default.erb_spec.rb +7 -17
  92. metadata +19 -8
  93. data/config/locales/kaminari.yml +0 -10
  94. data/lib/blacklight/global_configurable.rb +0 -46
  95. data/test_support/spec/lib/global_configurable_spec.rb +0 -98
@@ -24,9 +24,9 @@ class BookmarksController < ApplicationController
24
24
 
25
25
  unless request.xhr?
26
26
  if bookmark.save
27
- flash[:notice] = "Successfully added bookmark."
27
+ flash[:notice] = I18n.t('blacklight.bookmarks.add.success')
28
28
  else
29
- flash[:error] = "Could not save bookmark."
29
+ flash[:error] = I18n.t('blacklight.bookmarks.add.failure')
30
30
  end
31
31
  redirect_to :back
32
32
  else
@@ -56,9 +56,9 @@ class BookmarksController < ApplicationController
56
56
  success = false unless current_user.bookmarks.create(bookmark)
57
57
  end
58
58
  if @bookmarks.length > 0 && success
59
- flash[:notice] = "Successfully added bookmarks."
59
+ flash[:notice] = I18n.t('blacklight.bookmarks.add.success', :count => @bookmarks.length)
60
60
  elsif @bookmarks.length > 0
61
- flash[:error] = "There was a problem adding bookmarks"
61
+ flash[:error] = I18n.t('blacklight.bookmarks.add.failure', :count => @bookmarks.length)
62
62
  end
63
63
 
64
64
  redirect_to :back
@@ -73,9 +73,9 @@ class BookmarksController < ApplicationController
73
73
 
74
74
  unless request.xhr?
75
75
  if success
76
- flash[:notice] = "Successfully removed bookmark."
76
+ flash[:notice] = I18n.t('blacklight.bookmarks.remove.success')
77
77
  else
78
- flash[:error] = "Sorry, there was a problem removing the bookmark."
78
+ flash[:error] = I18n.t('blacklight.bookmarks.remove.failure')
79
79
  end
80
80
  redirect_to :back
81
81
  else
@@ -86,15 +86,15 @@ class BookmarksController < ApplicationController
86
86
 
87
87
  def clear
88
88
  if current_user.bookmarks.clear
89
- flash[:notice] = "Cleared your bookmarks."
89
+ flash[:notice] = I18n.t('blacklight.bookmarks.clear.success')
90
90
  else
91
- flash[:error] = "There was a problem clearing your bookmarks."
91
+ flash[:error] = I18n.t('blacklight.bookmarks.clear.failure')
92
92
  end
93
93
  redirect_to :action => "index"
94
94
  end
95
95
 
96
96
  protected
97
97
  def verify_user
98
- flash[:notice] = "Please log in to manage and view your bookmarks." and raise Blacklight::Exceptions::AccessDenied unless current_user
98
+ flash[:notice] = I18n.t('blacklight.bookmarks.need_login') and raise Blacklight::Exceptions::AccessDenied unless current_user
99
99
  end
100
100
  end
@@ -21,13 +21,13 @@ class FeedbackController < ApplicationController
21
21
  # returns either an empty array or an array with error messages
22
22
  def validate
23
23
  unless params[:name] =~ /\w+/
24
- @errors << 'A valid name is required'
24
+ @errors << I18n.t('blacklight.feedback.valid_name')
25
25
  end
26
26
  unless params[:email] =~ /\w+@\w+\.\w+/
27
- @errors << 'A valid email address is required'
27
+ @errors << I18n.t('blacklight.feedback.valid_email')
28
28
  end
29
29
  unless params[:message] =~ /\w+/
30
- @errors << 'A message is required'
30
+ @errors << I18n.t('blacklight.feedback.need_message')
31
31
  end
32
32
  #unless simple_captcha_valid?
33
33
  # @errors << 'Captcha did not match'
@@ -20,7 +20,7 @@ class FolderController < ApplicationController
20
20
  # Rails 3 uses a one line notation for setting the flash notice.
21
21
  # flash[:notice] = "#{params[:title] || "Item"} successfully added to Folder"
22
22
  respond_to do |format|
23
- format.html { redirect_to :back, :notice => "#{params[:title] || "Item"} successfully added to Folder"}
23
+ format.html { redirect_to :back, :notice => I18n.t('blacklight.folder.add.success', :title => params[:title] || 'Item') }
24
24
  format.js { render :json => session[:folder_document_ids] }
25
25
  end
26
26
  end
@@ -31,7 +31,7 @@ class FolderController < ApplicationController
31
31
 
32
32
  respond_to do |format|
33
33
  format.html do
34
- flash[:notice] = "#{params[:title] || "Item"} successfully removed from selected items"
34
+ flash[:notice] = I18n.t('blacklight.folder.remove.success', :title => params[:title] || 'Item')
35
35
  redirect_to :back
36
36
  end
37
37
  format.js do
@@ -43,7 +43,7 @@ class FolderController < ApplicationController
43
43
 
44
44
  # get rid of the items in the folder
45
45
  def clear
46
- flash[:notice] = "Cleared Selected Items"
46
+ flash[:notice] = I18n.t('blacklight.folder.clear.success')
47
47
  session[:folder_document_ids] = []
48
48
  respond_to do |format|
49
49
  format.html { redirect_to :back }
@@ -13,9 +13,9 @@ class SavedSearchesController < ApplicationController
13
13
  def save
14
14
  current_user.searches << Search.find(params[:id])
15
15
  if current_user.save
16
- flash[:notice] = "Successfully saved your search."
16
+ flash[:notice] = I18n.t('blacklight.saved_searches.add.success')
17
17
  else
18
- flash[:error] = "The was a problem saving your search."
18
+ flash[:error] = I18n.t('blacklight.saved_searches.add.failure')
19
19
  end
20
20
  redirect_to :back
21
21
  end
@@ -28,9 +28,9 @@ class SavedSearchesController < ApplicationController
28
28
  search.user_id = nil
29
29
  search.save
30
30
 
31
- flash[:notice] = "Successfully removed that saved search."
31
+ flash[:notice] =I18n.t('blacklight.saved_searches.remove.success')
32
32
  else
33
- flash[:error] = "Couldn't remove that saved search."
33
+ flash[:error] = I18n.t('blacklight.saved_searches.remove.failure')
34
34
  end
35
35
  redirect_to :back
36
36
  end
@@ -39,9 +39,9 @@ class SavedSearchesController < ApplicationController
39
39
  # are in the session[:history]
40
40
  def clear
41
41
  if Search.update_all("user_id = NULL", "user_id = #{current_user.id}")
42
- flash[:notice] = "Cleared your saved searches."
42
+ flash[:notice] = I18n.t('blacklight.saved_searches.clear.success')
43
43
  else
44
- flash[:error] = "There was a problem clearing your saved searches."
44
+ flash[:error] = I18n.t('blacklight.saved_searches.clear.failure')
45
45
  end
46
46
  redirect_to :action => "index"
47
47
  end
@@ -49,6 +49,6 @@ class SavedSearchesController < ApplicationController
49
49
 
50
50
  protected
51
51
  def verify_user
52
- flash[:notice] = "Please log in to manage and view your saved searches." and raise Blacklight::Exceptions::AccessDenied unless current_user
52
+ flash[:notice] = I18n.t('blacklight.saved_searches.need_login') and raise Blacklight::Exceptions::AccessDenied unless current_user
53
53
  end
54
54
  end
@@ -12,9 +12,9 @@ class SearchHistoryController < ApplicationController
12
12
  #TODO we may want to remove unsaved (those without user_id) items from the database when removed from history
13
13
  def clear
14
14
  if session[:history].clear
15
- flash[:notice] = "Cleared your search history."
15
+ flash[:notice] = I18n.t('blacklight.search_history.clear.success')
16
16
  else
17
- flash[:error] = "There was a problem clearing your search history."
17
+ flash[:error] = I18n.t('blacklight.search_history.clear.failure')
18
18
  end
19
19
  redirect_to :back
20
20
  end
@@ -13,7 +13,7 @@ module Blacklight::BlacklightHelperBehavior
13
13
  def application_name
14
14
  return Rails.application.config.application_name if Rails.application.config.respond_to? :application_name
15
15
 
16
- 'Blacklight'
16
+ t('blacklight.application_name')
17
17
  end
18
18
 
19
19
  # Provide the full, absolute url for an image
@@ -42,7 +42,7 @@ module Blacklight::BlacklightHelperBehavior
42
42
  unless( options[:exclude].include?(format) ||
43
43
  (options[:unique] && seen.include?(spec[:content_type]))
44
44
  )
45
- html << tag(:link, {:rel=>"alternate", :title=>format, :type => spec[:content_type], :href=> catalog_url(document, format)}) << "\n"
45
+ html << tag(:link, {:rel=>"alternate", :title=>format, :type => spec[:content_type], :href=> polymorphic_url(document, :format => format)}) << "\n"
46
46
 
47
47
  seen.add(spec[:content_type]) if options[:unique]
48
48
  end
@@ -266,10 +266,6 @@ module Blacklight::BlacklightHelperBehavior
266
266
  label ||= doc.id
267
267
  end
268
268
 
269
-
270
- def solr_document_path(*args); catalog_path(*args); end
271
- def solr_document_url(*args); catalog_url(*args); end
272
-
273
269
  # link_to_document(doc, :label=>'VIEW', :counter => 3)
274
270
  # Use the catalog_path RESTful route to create a link to the show page for a specific item.
275
271
  # catalog_path accepts a HashWithIndifferentAccess object. The solr query params are stored in the session,
@@ -282,11 +278,11 @@ module Blacklight::BlacklightHelperBehavior
282
278
 
283
279
  # link_back_to_catalog(:label=>'Back to Search')
284
280
  # Create a link back to the index screen, keeping the user's facet, query and paging choices intact by using session.
285
- def link_back_to_catalog(opts={:label=>'Back to Search'})
281
+ def link_back_to_catalog(opts={:label=>t('blacklight.back_to_search')})
286
282
  query_params = session[:search] ? session[:search].dup : {}
287
283
  query_params.delete :counter
288
284
  query_params.delete :total
289
- link_url = catalog_index_path + "?" + query_params.to_query
285
+ link_url = url_for(query_params)
290
286
  link_to opts[:label], link_url
291
287
  end
292
288
 
@@ -327,12 +323,12 @@ module Blacklight::BlacklightHelperBehavior
327
323
 
328
324
  def link_to_previous_document(previous_document)
329
325
  return if previous_document == nil
330
- link_to '« Previous', previous_document, :class => "previous", :'data-counter' => session[:search][:counter].to_i - 1
326
+ link_to raw(t('views.pagination.previous')), previous_document, :class => "previous", :'data-counter' => session[:search][:counter].to_i - 1
331
327
  end
332
328
 
333
329
  def link_to_next_document(next_document)
334
330
  return if next_document == nil
335
- link_to 'Next »', next_document, :class => "next", :'data-counter' => session[:search][:counter].to_i + 1
331
+ link_to raw(t('views.pagination.next')), next_document, :class => "next", :'data-counter' => session[:search][:counter].to_i + 1
336
332
  end
337
333
 
338
334
  # Use case, you want to render an html partial from an XML (say, atom)
@@ -39,17 +39,14 @@ module Blacklight::CatalogHelperBehavior
39
39
  end_num = format_num(start + response.docs.length - 1)
40
40
  total_num = format_num(total_hits)
41
41
 
42
+ # TODO: i18n the entry_name
42
43
  entry_name = options[:entry_name] ||
43
- (response.empty?? 'entry' : response.docs.first.class.name.underscore.sub('_', ' '))
44
+ (response.empty?? t('blacklight.entry_name.default') : response.docs.first.class.name.underscore.sub('_', ' '))
44
45
 
45
- if num_pages < 2
46
- case response.docs.length
47
- when 0; "No #{h(entry_name.pluralize)} found".html_safe
48
- when 1; "Displaying <b>1</b> #{h(entry_name)}".html_safe
49
- else; "Displaying <b>all #{total_num}</b> #{entry_name.pluralize}".html_safe
50
- end
51
- else
52
- "Displaying #{h(entry_name.pluralize)} <b>#{start_num} - #{end_num}</b> of <b>#{total_num}</b>".html_safe
46
+ case response.docs.length
47
+ when 0; t('blacklight.search.pagination_info.no_items_found', :entry_name => entry_name.pluralize ).html_safe
48
+ when 1; t('blacklight.search.pagination_info.single_item_found', :entry_name => entry_name).html_safe
49
+ else; t('blacklight.search.pagination_info.pages', :entry_name => entry_name.pluralize, :current_page => current_page, :num_pages => num_pages, :start_num => start_num, :end_num => end_num, :total_num => total_num, :count => num_pages).html_safe
53
50
  end
54
51
  end
55
52
 
@@ -59,7 +56,7 @@ module Blacklight::CatalogHelperBehavior
59
56
  # Code should call this method rather than interrogating session directly,
60
57
  # because implementation of where this data is stored/retrieved may change.
61
58
  def item_page_entry_info
62
- "Showing item <b>#{session[:search][:counter].to_i} of #{format_num(session[:search][:total])}</b> from your search.".html_safe
59
+ t('blacklight.search.entry_pagination_info.other', :current => format_num(session[:search][:counter]), :total => format_num(session[:search][:total]), :count => session[:search][:total].to_i).html_safe
63
60
  end
64
61
 
65
62
  # Look up search field user-displayable label
@@ -70,7 +67,7 @@ module Blacklight::CatalogHelperBehavior
70
67
 
71
68
  # Export to Refworks URL, called in _show_tools
72
69
  def refworks_export_url(document = @document)
73
- "http://www.refworks.com/express/expressimport.asp?vendor=#{CGI.escape(application_name)}&filter=MARC%20Format&encoding=65001&url=#{CGI.escape(catalog_path(document, :format => 'refworks_marc_txt', :only_path => false))}"
70
+ "http://www.refworks.com/express/expressimport.asp?vendor=#{CGI.escape(application_name)}&filter=MARC%20Format&encoding=65001&url=#{CGI.escape(polymorphic_path(document, :format => 'refworks_marc_txt', :only_path => false))}"
74
71
  end
75
72
 
76
73
  def render_document_class(document = @document)
@@ -102,14 +102,14 @@ module Blacklight::FacetsHelperBehavior
102
102
  # with class, and 'remove' button.
103
103
  def render_selected_facet_value(facet_solr_field, item)
104
104
  content_tag(:span, render_facet_value(facet_solr_field, item, :suppress_link => true), :class => "selected label") +
105
- link_to("[remove]", remove_facet_params(facet_solr_field, item.value, params), :class=>"remove")
105
+ link_to(t('blacklight.search.facets.selected.remove'), remove_facet_params(facet_solr_field, item.value, params), :class=>"remove")
106
106
  end
107
107
 
108
108
  # Renders a count value for facet limits. Can be over-ridden locally
109
109
  # to change style, for instance not use parens. And can be called
110
110
  # by plugins to get consistent display.
111
111
  def render_facet_count(num)
112
- content_tag("span", "(" + format_num(num) + ")", :class => "count")
112
+ content_tag("span", t('blacklight.search.facets.count', :number => num), :class => "count")
113
113
  end
114
114
 
115
115
  # adds the value and/or field to params[:f]
@@ -32,7 +32,7 @@ module Blacklight::SearchHistoryConstraintsHelperBehavior
32
32
  render_search_to_s_element(blacklight_config.facet_fields[facet_field].label,
33
33
  value_list.collect do |value|
34
34
  render_filter_value(value)
35
- end.join(content_tag(:span, 'and', :class =>'label')).html_safe
35
+ end.join(content_tag(:span, t('blacklight.and'), :class =>'label')).html_safe
36
36
  )
37
37
  end.join(" \n ").html_safe
38
38
  end
@@ -46,7 +46,7 @@ module Blacklight::SearchHistoryConstraintsHelperBehavior
46
46
 
47
47
  def render_filter_name name
48
48
  return "".html_safe if name.blank?
49
- content_tag(:span, h(name) + ":", :class => 'filterName')
49
+ content_tag(:span, t('blacklight.search.filters.label', :label => name), :class => 'filterName')
50
50
  end
51
51
 
52
52
  def render_filter_value value
@@ -4,5 +4,10 @@ class Bookmark < ActiveRecord::Base
4
4
  belongs_to :user
5
5
  validates_presence_of :user_id, :scope=>:document_id
6
6
  attr_accessible :id, :document_id, :title
7
+
8
+
9
+ def document
10
+ SolrDocument.new :id => document_id
11
+ end
7
12
 
8
13
  end
@@ -1,31 +1,25 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  # Only works for documents with a #to_marc right now.
3
3
  class RecordMailer < ActionMailer::Base
4
-
5
- def email_record(documents, details, from_host, url_gen_params)
4
+ def email_record(documents, details, url_gen_params)
6
5
  #raise ArgumentError.new("RecordMailer#email_record only works with documents with a #to_marc") unless document.respond_to?(:to_marc)
7
6
 
8
- if documents.size == 1
9
- subject = "Item Record: #{documents.first.to_semantic_values[:title] rescue 'N/A'}"
10
- else
11
- subject = "Item records"
12
- end
7
+ subject = I18n.t('blacklight.email.text.subject', :count => documents.length, :title => (documents.first.to_semantic_values[:title] rescue 'N/A') )
13
8
 
14
9
  @documents = documents
15
10
  @message = details[:message]
16
11
  @url_gen_params = url_gen_params
17
12
 
18
- mail(:to => details[:to], :from => "no-reply@" << from_host, :subject => subject)
13
+ mail(:to => details[:to], :subject => subject)
19
14
  end
20
15
 
21
- def sms_record(documents, details, from_host, url_gen_params)
16
+ def sms_record(documents, details, url_gen_params)
22
17
  if sms_mapping[details[:carrier]]
23
18
  to = "#{details[:to]}@#{sms_mapping[details[:carrier]]}"
24
19
  end
25
20
  @documents = documents
26
- @host = from_host
27
21
  @url_gen_params = url_gen_params
28
- mail(:to => to, :from => "no-reply@" << from_host, :subject => "")
22
+ mail(:to => to, :subject => "")
29
23
  end
30
24
 
31
25
  protected
@@ -1,15 +1,15 @@
1
1
  <% if has_user_authentication_provider? %>
2
2
  <% if current_user%>
3
- <%= link_to "Log Out", destroy_user_session_path %> [<%= link_to current_user, edit_user_registration_path %>]
3
+ <%= link_to t('blacklight.header_links.logout'), destroy_user_session_path %> [<%= link_to current_user, edit_user_registration_path %>]
4
4
  |
5
- <%= link_to 'Your Bookmarks', bookmarks_path %>
5
+ <%= link_to t('blacklight.header_links.bookmarks'), bookmarks_path %>
6
6
  |
7
- <%= link_to "Saved Searches", saved_searches_path %>
7
+ <%= link_to t('blacklight.header_links.saved_searches'), saved_searches_path %>
8
8
  <% else %>
9
- <%= link_to 'Login', new_user_session_path %>
9
+ <%= link_to t('blacklight.header_links.login'), new_user_session_path %>
10
10
  <% end %>
11
11
  |
12
12
  <% end %>
13
- <%= link_to "Selected Items", folder_index_path %> (<span id="folder_number"><%= "#{session[:folder_document_ids] ? session[:folder_document_ids].length : 0}" %></span>)
13
+ <%= link_to t('blacklight.header_links.selected_items'), folder_index_path %> (<span id="folder_number"><%= "#{session[:folder_document_ids] ? session[:folder_document_ids].length : 0}" %></span>)
14
14
  |
15
- <%= link_to "Search History", search_history_path %>
15
+ <%= link_to t('blacklight.header_links.search_history'), search_history_path %>
@@ -1,29 +1,29 @@
1
- <h1>Bookmarks</h1>
1
+ <h1><%= t('blacklight.bookmarks.title') %></h1>
2
2
 
3
3
  <%- if current_user.blank? -%>
4
4
 
5
- <h2>Please log in to see your bookmarks.</h2>
5
+ <h2><%= t('blacklight.bookmarks.need_login') %></h2>
6
6
 
7
7
  <%- elsif @bookmarks.blank? -%>
8
8
 
9
- <h2>You have no bookmarks</h2>
9
+ <h2><%= t('blacklight.bookmarks.no_bookmarks') %></h2>
10
10
 
11
11
  <%- else -%>
12
12
 
13
13
  <%= paginate @bookmarks, :theme => 'blacklight' %>
14
14
  <div id="userBookmarks">
15
15
  <p>
16
- <%= link_to "Clear Bookmarks", clear_bookmarks_path, :method => :delete, :confirm => "Clear your bookmarks?" %>
16
+ <%= link_to t('blacklight.bookmarks.clear.action_title'), clear_bookmarks_path, :method => :delete, :data => { :confirm => t('blacklight.bookmarks.clear.action_confirm') } %>
17
17
  </p>
18
18
 
19
- <h2>Your Bookmarks</h2>
19
+ <h2><%= t('blacklight.bookmarks.list_title') %></h2>
20
20
 
21
21
  <table class="zebra">
22
22
  <% @bookmarks.each do |bm| %>
23
23
  <tr>
24
- <td><%= link_to h(bm.title), catalog_path(CGI.escape(bm.document_id)) %></td>
25
- <td><%= button_to 'Remove', {:controller => "bookmarks", :action => "destroy", :id => CGI.escape(bm.document_id)},
26
- :method => :delete, :confirm => 'Remove this bookmark?' %></td>
24
+ <td><%= link_to h(bm.title), polymorphic_path(bm.document) %></td>
25
+ <td><%= button_to t('blacklight.bookmarks.delete'), {:controller => "bookmarks", :action => "destroy", :id => CGI.escape(bm.document_id)},
26
+ :method => :delete, :confirm => t('blacklight.bookmarks.remove.action_confirm') %></td>
27
27
  </tr>
28
28
  <% end %>
29
29
  </table>
@@ -9,14 +9,14 @@
9
9
 
10
10
  <%= form_tag( bookmark_path( document ), :method => :put, :class => "bookmark_toggle", "data-doc-id" => document.id, :title=> document[document_show_link_field] ) do %>
11
11
  <%= hidden_field(:bookmark, :title, :value => document[document_show_link_field] ) %>
12
- <%= submit_tag("Bookmark", :id => "bookmark_toggle_#{document.id.to_s.parameterize}", :class => "bookmark_add") %>
12
+ <%= submit_tag(t('blacklight.bookmarks.add.button'), :id => "bookmark_toggle_#{document.id.to_s.parameterize}", :class => "bookmark_add") %>
13
13
  <% end %>
14
14
 
15
15
  <% else %>
16
16
 
17
17
  <%= form_tag( bookmark_path( document ), :method => :delete, :class => "bookmark_toggle", "data-doc-id" => document.id, :title=> document[document_show_link_field]) do %>
18
18
  <%= hidden_field(:bookmark, :title, :value => document[document_show_link_field] ) %>
19
- <%= submit_tag("Remove bookmark", :id => "bookmark_toggle_#{document.id.to_s.parameterize}", :class => "bookmark_remove") %>
19
+ <%= submit_tag(t('blacklight.bookmarks.remove.button'), :id => "bookmark_toggle_#{document.id.to_s.parameterize}", :class => "bookmark_remove") %>
20
20
  <% end %>
21
21
 
22
22
  <% end %>
@@ -1,8 +1,8 @@
1
- <%= form_tag '/bookmarks', :name => "bookmarks" do %>
1
+ <%= form_tag bookmarks_url, :name => "bookmarks" do %>
2
2
  <% documents.each_with_index do |document, index| %>
3
3
  <%= hidden_field_tag "bookmarks[#{index}][document_id]", document.get(:id)%>
4
4
  <%= hidden_field_tag "bookmarks[#{index}][title]", h(document[document_show_link_field])%>
5
5
  <% end %>
6
- <%= link_to_function "Add to Bookmarks", "document.bookmarks.submit()" %>
7
- <%= submit_tag 'Add to Bookmarks', :class => 'hide' %>
6
+ <%= link_to_function t('blacklight.bookmarks.collection.add.button'), "document.bookmarks.submit()" %>
7
+ <%= submit_tag t('blacklight.bookmarks.collection.add.button'), :class => 'hide' %>
8
8
  <% end %>
@@ -3,17 +3,17 @@
3
3
  <h1><%= citation_title(document) %></h1>
4
4
 
5
5
  <% if document.respond_to?(:export_as_mla_citation_txt) %>
6
- <h4>MLA</h4>
6
+ <h4><%= t('blacklight.citation.mla') %></h4>
7
7
  <%= document.send(:export_as_mla_citation_txt).html_safe %><br/><br/>
8
8
  <% end %>
9
9
 
10
10
  <% if document.respond_to?(:export_as_apa_citation_txt) %>
11
- <h4>APA</h4>
11
+ <h4><%= t('blacklight.citation.apa') %></h4>
12
12
  <%= document.send(:export_as_apa_citation_txt).html_safe %><br/><br/>
13
13
  <% end %>
14
14
 
15
15
  <%- if document.respond_to?(:export_as_chicago_citation_txt) -%>
16
- <h4>Chicago</h4>
16
+ <h4><%= t('blacklight.citation.chicago') %></h4>
17
17
  <%= document.send(:export_as_chicago_citation_txt).html_safe %>
18
18
  <%- end -%>
19
19