hydra-head 3.1.0.pre5 → 3.1.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- data/HISTORY.textile +14 -1
- data/app/helpers/application_helper.rb +1 -166
- data/app/helpers/article_metadata_helper.rb +2 -78
- data/app/helpers/blacklight_helper.rb +2 -195
- data/app/helpers/downloads_helper.rb +3 -18
- data/app/helpers/generic_content_objects_helper.rb +2 -14
- data/app/helpers/hydra/application_helper_behavior.rb +10 -0
- data/app/helpers/hydra/article_metadata_helper_behavior.rb +82 -0
- data/app/helpers/hydra/blacklight_helper_behavior.rb +203 -0
- data/app/helpers/hydra/downloads_helper_behavior.rb +21 -0
- data/app/helpers/hydra/generic_content_objects_helper_behavior.rb +16 -0
- data/app/helpers/hydra/hydra_assets_helper_behavior.rb +66 -0
- data/app/helpers/hydra/hydra_djatoka_helper_behavior.rb +23 -0
- data/app/helpers/hydra/hydra_fedora_metadata_helper_behavior.rb +349 -0
- data/app/helpers/hydra/hydra_helper_behavior.rb +184 -0
- data/app/helpers/hydra/hydra_uploader_helper_behavior.rb +18 -0
- data/app/helpers/hydra/inline_editable_metadata_helper_behavior.rb +15 -0
- data/app/helpers/hydra/javascript_includes_helper_behavior.rb +91 -0
- data/app/helpers/hydra/personalization_helper_behavior.rb +44 -0
- data/app/helpers/hydra/release_process_helper_behavior.rb +32 -0
- data/app/helpers/hydra_assets_helper.rb +2 -64
- data/app/helpers/hydra_djatoka_helper.rb +3 -22
- data/app/helpers/hydra_fedora_metadata_helper.rb +2 -347
- data/app/helpers/hydra_helper.rb +2 -182
- data/app/helpers/hydra_uploader_helper.rb +2 -16
- data/app/helpers/inline_editable_metadata_helper.rb +3 -14
- data/app/helpers/javascript_includes_helper.rb +2 -89
- data/app/helpers/personalization_helper.rb +2 -42
- data/app/helpers/release_process_helper.rb +2 -30
- data/lib/blacklight/blacklight_helper_behavior.rb +612 -0
- data/lib/hydra-head/version.rb +1 -1
- data/lib/railties/hydra-fixtures.rake +0 -1
- data/tasks/hydra-head.rake +1 -2
- data/test_support/features/step_definitions/edit_metadata_steps.rb +0 -1
- data/{spec → test_support/spec}/controllers/catalog_valid_html_spec.rb +1 -11
- data/test_support/spec/helpers/blacklight_helper_spec.rb +6 -2
- data/test_support/spec/spec_helper.rb +5 -3
- metadata +23 -14
- data/lib/hydra/fixture_loader.rb +0 -48
- data/lib/stanford/searchworks_helper.rb +0 -1338
- data/lib/stanford/solr_helper.rb +0 -108
- data/lib/stanford_blacklight_extensions.rb +0 -6
- data/spec-rails2/helpers/hydra_fedora_metadata_helper_spec.rb +0 -219
- data/spec-rails2/spec_helper.rb +0 -88
data/HISTORY.textile
CHANGED
@@ -1,7 +1,20 @@
|
|
1
|
+
h3. 3.1.0
|
2
|
+
* Updated to ActiveFedora 3.1.1
|
3
|
+
* Update rake tasks to leverage jettywrapper
|
4
|
+
* Don't fork processes to run tests
|
5
|
+
* Refactor helpers, so that applications can easily override them
|
6
|
+
|
7
|
+
h3. 3.0.1
|
8
|
+
|
9
|
+
* generator has the correct solr config files
|
10
|
+
* reverted back to using object_type_facet for "Format" facet. This is instead of using active_fedora_model_s, which made some cucumber tests unstable because active_fedora_model_s is populated inconsistently by ActiveFedora (really we should deprecate that solr field)
|
11
|
+
|
12
|
+
h2. 3.0.0: Upgrade to Rails 3
|
13
|
+
|
1
14
|
h3. 0.0.1
|
2
15
|
|
3
16
|
Pulled plugin code from Hydrus
|
4
17
|
* Javascript disabled, progressive enhancement set up
|
5
18
|
* Better Cucumber Coverage
|
6
19
|
|
7
|
-
h3. 0.0.0
|
20
|
+
h3. 0.0.0
|
@@ -1,168 +1,3 @@
|
|
1
|
-
require "hydra_helper"
|
2
1
|
module ApplicationHelper
|
3
|
-
include
|
4
|
-
#include Stanford::SolrHelper # this is already included by the SearchworksHelper
|
5
|
-
include HydraHelper
|
6
|
-
|
7
|
-
def application_name
|
8
|
-
'A Hydra Head'
|
9
|
-
end
|
10
|
-
|
11
|
-
def get_data_with_linked_label(doc, label, field_string, opts={})
|
12
|
-
|
13
|
-
(opts[:default] and !doc[field_string]) ? field = opts[:default] : field = doc[field_string]
|
14
|
-
delim = opts[:delimiter] ? opts[:delimiter] : "<br/>"
|
15
|
-
if doc[field_string]
|
16
|
-
text = "<dt>#{label}</dt><dd>"
|
17
|
-
if field.respond_to?(:each)
|
18
|
-
text += field.map do |l|
|
19
|
-
linked_label(l, field_string)
|
20
|
-
end.join(delim)
|
21
|
-
else
|
22
|
-
text += linked_label(field, field_string)
|
23
|
-
end
|
24
|
-
text += "</dd>"
|
25
|
-
text
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def linked_label(field, field_string)
|
30
|
-
link_to(field, add_facet_params(field_string, field).merge!({"controller" => "catalog", :action=> "index"}))
|
31
|
-
end
|
32
|
-
|
33
|
-
# currently only used by the render_document_partial helper method (below)
|
34
|
-
def document_partial_name(document)
|
35
|
-
if !document[Blacklight.config[:show][:display_type]].nil?
|
36
|
-
return document[Blacklight.config[:show][:display_type]].first.gsub("info:fedora/afmodel:","").underscore.pluralize
|
37
|
-
else
|
38
|
-
return nil
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
# Overriding Blacklight's render_document_partial
|
43
|
-
# given a doc and action_name, this method attempts to render a partial template
|
44
|
-
# based on the value of doc[:format]
|
45
|
-
# if this value is blank (nil/empty) the "default" is used
|
46
|
-
# if the partial is not found, the "default" partial is rendered instead
|
47
|
-
def render_document_partial(doc, action_name, locals={})
|
48
|
-
format = document_partial_name(doc)
|
49
|
-
begin
|
50
|
-
Rails.logger.debug("attempting to render #{format}/_#{action_name}")
|
51
|
-
render :partial=>"#{format}/#{action_name}", :locals=>{:document=>doc}.merge(locals)
|
52
|
-
rescue ActionView::MissingTemplate
|
53
|
-
Rails.logger.debug("rendering default partial catalog/_#{action_name}_partials/default")
|
54
|
-
render :partial=>"catalog/_#{action_name}_partials/default", :locals=>{:document=>doc}.merge(locals)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
###
|
59
|
-
### Overrides pulled in from Libra
|
60
|
-
###
|
61
|
-
|
62
|
-
def render_facet_value(facet_solr_field, item, options ={})
|
63
|
-
if item.is_a? Array
|
64
|
-
link_to_unless(options[:suppress_link], item[0], add_facet_params_and_redirect(facet_solr_field, item[0]), :class=>"facet_select") + " (" + format_num(item[1]) + ")"
|
65
|
-
else
|
66
|
-
link_to_unless(options[:suppress_link], item.value, add_facet_params_and_redirect(facet_solr_field, item.value), :class=>"facet_select") + " (" + format_num(item.hits) + ")"
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
# Removing the [remove] link from the default selected facet display
|
71
|
-
def render_selected_facet_value(facet_solr_field, item)
|
72
|
-
'<span class="selected">' +
|
73
|
-
render_facet_value(facet_solr_field, item, :suppress_link => true) +
|
74
|
-
'</span>'
|
75
|
-
end
|
76
|
-
|
77
|
-
def render_complex_facet_value(facet_solr_field, item, options ={})
|
78
|
-
link_to_unless(options[:suppress_link], format_item_value(item.value), add_facet_params_and_redirect(facet_solr_field, item.value), :class=>"facet_select") + " (" + format_num(item.hits) + ")"
|
79
|
-
end
|
80
|
-
|
81
|
-
def render_journal_facet_value(facet_solr_field, item, options ={})
|
82
|
-
|
83
|
-
val = item.value.strip.length > 12 ? item.value.strip[0..12].concat("...") : item.value.strip
|
84
|
-
link_to_unless(options[:suppress_link], val, add_facet_params_and_redirect(facet_solr_field, item.value), :class=>"facet_select") + " (" + format_num(item.hits) + ")"
|
85
|
-
end
|
86
|
-
|
87
|
-
def render_complex_facet_image(facet_solr_field, item, options = {})
|
88
|
-
computing_id = extract_computing_id(item.value)
|
89
|
-
if File.exists?("#{Rails.root}/public/images/faculty_images/#{computing_id}.jpg")
|
90
|
-
img = image_tag "/images/faculty_images/#{computing_id}.jpg", :width=> "100", :alt=>"#{item.value}"
|
91
|
-
else
|
92
|
-
img = image_tag "/plugin_assets/hydra-head/images/default_thumbnail.gif", :width=>"100", :alt=>"#{item.value}"
|
93
|
-
end
|
94
|
-
link_to_unless(options[:suppress_link], img, add_facet_params_and_redirect(facet_solr_field, item.value), :class=>"facet_select facet_image")
|
95
|
-
end
|
96
|
-
|
97
|
-
def render_journal_image(facet_solr_field, item, options = {})
|
98
|
-
if File.exists?("#{Rails.root}/public/images/journal_images/#{item.value.strip.downcase.gsub(/\s+/,'_')}.jpg")
|
99
|
-
img = image_tag "/images/journal_images/#{item.value.strip.downcase.gsub(/\s+/,'_')}.jpg", :width => "100"
|
100
|
-
else
|
101
|
-
img = image_tag "/plugin_assets/hydra-head/images/default_thumbnail.gif", :width=>"100", :alt=>"#{item.value}"
|
102
|
-
end
|
103
|
-
|
104
|
-
link_to_unless(options[:suppress_link], img, add_facet_params_and_redirect(facet_solr_field, item.value), :class=>"facet_select")
|
105
|
-
end
|
106
|
-
|
107
|
-
def get_randomized_display_items items
|
108
|
-
clean_items = items.each.inject([]) do |array, item|
|
109
|
-
array << item unless item.value.strip.blank?
|
110
|
-
array
|
111
|
-
end
|
112
|
-
|
113
|
-
if clean_items.length < 6
|
114
|
-
clean_items.sort_by {|item| item.value }
|
115
|
-
else
|
116
|
-
rdi = clean_items.sort_by {rand}.slice(0..5)
|
117
|
-
return rdi.sort_by {|item| item.value.downcase}
|
118
|
-
end
|
119
|
-
|
120
|
-
end
|
121
|
-
|
122
|
-
def extract_computing_id val
|
123
|
-
cid = val.split(" ")[-1]
|
124
|
-
cid[1..cid.length-2]
|
125
|
-
end
|
126
|
-
|
127
|
-
def format_item_value val
|
128
|
-
begin
|
129
|
-
last, f_c = val.split(", ")
|
130
|
-
first = f_c.split(" (")[0]
|
131
|
-
rescue
|
132
|
-
return val.nil? ? "" : val
|
133
|
-
end
|
134
|
-
[last, "#{first[0..0]}."].join(", ")
|
135
|
-
end
|
136
|
-
|
137
|
-
# COPIED from vendor/plugins/blacklight/app/helpers/application_helper.rb
|
138
|
-
# Used in catalog/facet action, facets.rb view, for a click
|
139
|
-
# on a facet value. Add on the facet params to existing
|
140
|
-
# search constraints. Remove any paginator-specific request
|
141
|
-
# params, or other request params that should be removed
|
142
|
-
# for a 'fresh' display.
|
143
|
-
# Change the action to 'index' to send them back to
|
144
|
-
# catalog/index with their new facet choice.
|
145
|
-
def add_facet_params_and_redirect(field, value)
|
146
|
-
new_params = add_facet_params(field, value)
|
147
|
-
|
148
|
-
# Delete page, if needed.
|
149
|
-
new_params.delete(:page)
|
150
|
-
|
151
|
-
# Delete :qt, if needed - added to resolve NPE errors
|
152
|
-
new_params.delete(:qt)
|
153
|
-
|
154
|
-
# Delete any request params from facet-specific action, needed
|
155
|
-
# to redir to index action properly.
|
156
|
-
Blacklight::Solr::FacetPaginator.request_keys.values.each do |paginator_key|
|
157
|
-
new_params.delete(paginator_key)
|
158
|
-
end
|
159
|
-
new_params.delete(:id)
|
160
|
-
|
161
|
-
# Force action to be index.
|
162
|
-
new_params[:action] = "index"
|
163
|
-
|
164
|
-
new_params
|
165
|
-
end
|
166
|
-
|
167
|
-
|
2
|
+
include Hydra::ApplicationHelperBehavior
|
168
3
|
end
|
@@ -1,80 +1,4 @@
|
|
1
|
-
# This was CatalogHelper in the rails2 version of hydra-head
|
2
1
|
module ArticleMetadataHelper
|
3
|
-
|
4
|
-
def format_date date
|
5
|
-
date.strftime("%b. %e, %Y")
|
6
|
-
end
|
7
|
-
|
8
|
-
|
9
|
-
def depositor_string depositor=nil
|
10
|
-
"#{depositor}" unless depositor.nil?
|
11
|
-
end
|
12
|
-
def get_children pid
|
13
|
-
par = solr_facet_params(:is_part_of_s)
|
14
|
-
query="_query_:\"{!dismax qf=$qf_dismax pf=$pf_dismax}is_part_of_s:info\\:fedora/#{pid.gsub(":",'\:')}\""
|
15
|
-
# start query of with user supplied query term
|
16
|
-
#q << "_query_:\"{!dismax qf=$qf_dismax pf=$pf_dismax}#{user_query}\""
|
17
|
-
(response, document_list) = get_search_results( :q=>query )
|
18
|
-
par.inspect
|
19
|
-
end
|
20
|
-
|
21
|
-
def author_list(doc)
|
22
|
-
get_persons_from_roles(doc,['author','collaborator','creator','contributor']).map {|person| format_person_string(person[:first],person[:last],person[:institution])}
|
23
|
-
end
|
24
|
-
|
25
|
-
def researcher_list(doc)
|
26
|
-
get_persons_from_roles(doc,['research team head']).map {|person| format_person_string(person[:first],person[:last],person[:institution])}
|
27
|
-
end
|
28
|
-
|
29
|
-
def get_persons_from_roles(doc,roles,opts={})
|
30
|
-
i = 0
|
31
|
-
persons =[]
|
32
|
-
while i < 10
|
33
|
-
persons_roles = [] # reset the array
|
34
|
-
persons_roles = doc["person_#{i}_role_t"].map{|w|w.strip.downcase} unless doc["person_#{i}_role_t"].nil?
|
35
|
-
if persons_roles and (persons_roles & roles).length > 0
|
36
|
-
persons << {:first => doc["person_#{i}_first_name_t"], :last=> doc["person_#{i}_last_name_t"], :institution => doc["person_#{i}_institution_t"]}
|
37
|
-
end
|
38
|
-
i += 1
|
39
|
-
end
|
40
|
-
return persons
|
41
|
-
end
|
42
|
-
|
43
|
-
def format_person_string first_name, last_name, affiliation, opt={}
|
44
|
-
full_name = [first_name, last_name].join(" ").strip
|
45
|
-
affiliation = affiliation.nil? ? "" : "(#{affiliation})"
|
46
|
-
[full_name, affiliation].join(" ").concat(";")
|
47
|
-
end
|
48
|
-
|
49
|
-
def journal_info(doc)
|
50
|
-
title = doc.get(:journal_title_info_main_title_t)
|
51
|
-
pub_date = doc.get(:journal_issue_publication_date_t)
|
52
|
-
volume = doc.get(:journal_issue_volume_t)
|
53
|
-
issue = doc.get(:journal_issue_volume_t)
|
54
|
-
start_page = doc.get(:journal_issue_pages_start_t)
|
55
|
-
end_page = doc.get(:journal_issue_end_page_t)
|
56
|
-
journal_info = "#{title}. #{pub_date}; #{volume} ( #{issue} ): #{start_page} - #{end_page}"
|
57
|
-
journal_info = "" if journal_info.match(/^\.\s+;\s+\(\s+\)\:\s+-\s*$/)
|
58
|
-
journal_info
|
59
|
-
end
|
60
|
-
|
61
|
-
def short_abstract(doc,max=250)
|
62
|
-
abstract = doc.get(:abstract_t)
|
63
|
-
if abstract.blank?
|
64
|
-
return ""
|
65
|
-
elsif abstract.length < max
|
66
|
-
return abstract
|
67
|
-
else
|
68
|
-
return abstract[0..max].strip.concat("...")
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
def admin_info(doc)
|
73
|
-
info =<<-EOS
|
74
|
-
Deposited: #{format_date(DateTime.parse(doc.get(:system_create_dt)).to_time)}
|
75
|
-
| By: #{depositor_string(doc.get(:depositor_t))}
|
76
|
-
| Status: Created
|
77
|
-
EOS
|
78
|
-
end
|
79
|
-
|
2
|
+
include Hydra::ArticleMetadataHelperBehavior
|
80
3
|
end
|
4
|
+
|
@@ -1,197 +1,4 @@
|
|
1
|
-
require "hydra_helper"
|
2
|
-
|
3
1
|
module BlacklightHelper
|
4
|
-
|
5
|
-
#include Stanford::SearchworksHelper
|
6
|
-
#include Stanford::SolrHelper # this is already included by the SearchworksHelper
|
7
|
-
include HydraHelper
|
8
|
-
|
9
|
-
def application_name
|
10
|
-
'A Hydra Head'
|
11
|
-
end
|
12
|
-
|
13
|
-
def get_data_with_linked_label(doc, label, field_string, opts={})
|
14
|
-
|
15
|
-
(opts[:default] and !doc[field_string]) ? field = opts[:default] : field = doc[field_string]
|
16
|
-
delim = opts[:delimiter] ? opts[:delimiter] : "<br/>"
|
17
|
-
if doc[field_string]
|
18
|
-
text = "<dt>#{label}</dt><dd>"
|
19
|
-
if field.respond_to?(:each)
|
20
|
-
text += field.map do |l|
|
21
|
-
linked_label(l, field_string)
|
22
|
-
end.join(delim)
|
23
|
-
else
|
24
|
-
text += linked_label(field, field_string)
|
25
|
-
end
|
26
|
-
text += "</dd>"
|
27
|
-
text
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
def linked_label(field, field_string)
|
32
|
-
link_to(field, add_facet_params(field_string, field).merge!({"controller" => "catalog", :action=> "index"}))
|
33
|
-
end
|
34
|
-
def link_to_document(doc, opts={:label=>Blacklight.config[:index][:show_link].to_sym, :counter => nil,:title => nil})
|
35
|
-
label = case opts[:label]
|
36
|
-
when Symbol
|
37
|
-
doc.fetch(opts[:label], "")
|
38
|
-
when String
|
39
|
-
opts[:label]
|
40
|
-
else
|
41
|
-
raise 'Invalid label argument'
|
42
|
-
end
|
43
|
-
|
44
|
-
if label.blank?
|
45
|
-
label = doc[:id]
|
46
|
-
end
|
47
|
-
|
48
|
-
link_to_with_data(label, catalog_path(doc[:id]), {:method => :put, :data => {:counter => opts[:counter]},:title=>opts[:title]})
|
49
|
-
end
|
50
|
-
|
51
|
-
# currently only used by the render_document_partial helper method (below)
|
52
|
-
def document_partial_name(document)
|
53
|
-
if !document[Blacklight.config[:show][:display_type]].nil?
|
54
|
-
return document[Blacklight.config[:show][:display_type]].first.gsub("info:fedora/afmodel:","").underscore.pluralize
|
55
|
-
else
|
56
|
-
return nil
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
# Overriding Blacklight's render_document_partial
|
61
|
-
# given a doc and action_name, this method attempts to render a partial template
|
62
|
-
# based on the value of doc[:format]
|
63
|
-
# if this value is blank (nil/empty) the "default" is used
|
64
|
-
# if the partial is not found, the "default" partial is rendered instead
|
65
|
-
def render_document_partial(doc, action_name, locals={})
|
66
|
-
format = document_partial_name(doc)
|
67
|
-
begin
|
68
|
-
Rails.logger.debug("attempting to render #{format}/_#{action_name}")
|
69
|
-
render :partial=>"#{format}/#{action_name}", :locals=>{:document=>doc}.merge(locals)
|
70
|
-
rescue ActionView::MissingTemplate
|
71
|
-
Rails.logger.debug("rendering default partial catalog/_#{action_name}_partials/default")
|
72
|
-
render :partial=>"catalog/_#{action_name}_partials/default", :locals=>{:document=>doc}.merge(locals)
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
###
|
77
|
-
### Overrides pulled in from Libra
|
78
|
-
###
|
79
|
-
|
80
|
-
def render_facet_value(facet_solr_field, item, options ={})
|
81
|
-
if item.is_a? Array
|
82
|
-
link_to_unless(options[:suppress_link], item[0], add_facet_params_and_redirect(facet_solr_field, item[0]), :class=>"facet_select") + " (" + format_num(item[1]) + ")"
|
83
|
-
else
|
84
|
-
link_to_unless(options[:suppress_link], item.value, add_facet_params_and_redirect(facet_solr_field, item.value), :class=>"facet_select") + " (" + format_num(item.hits) + ")"
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
def render_complex_facet_value(facet_solr_field, item, options ={})
|
89
|
-
link_to_unless(options[:suppress_link], format_item_value(item.value), add_facet_params_and_redirect(facet_solr_field, item.value), :class=>"facet_select") + " (" + format_num(item.hits) + ")"
|
90
|
-
end
|
91
|
-
|
92
|
-
def render_journal_facet_value(facet_solr_field, item, options ={})
|
93
|
-
|
94
|
-
val = item.value.strip.length > 12 ? item.value.strip[0..12].concat("...") : item.value.strip
|
95
|
-
link_to_unless(options[:suppress_link], val, add_facet_params_and_redirect(facet_solr_field, item.value), :class=>"facet_select") + " (" + format_num(item.hits) + ")"
|
96
|
-
end
|
97
|
-
|
98
|
-
def render_complex_facet_image(facet_solr_field, item, options = {})
|
99
|
-
computing_id = extract_computing_id(item.value)
|
100
|
-
if File.exists?("#{Rails.root}/public/images/faculty_images/#{computing_id}.jpg")
|
101
|
-
img = image_tag "/images/faculty_images/#{computing_id}.jpg", :width=> "100", :alt=>"#{item.value}"
|
102
|
-
else
|
103
|
-
img = image_tag "/plugin_assets/hydra-head/images/default_thumbnail.gif", :width=>"100", :alt=>"#{item.value}"
|
104
|
-
end
|
105
|
-
link_to_unless(options[:suppress_link], img, add_facet_params_and_redirect(facet_solr_field, item.value), :class=>"facet_select facet_image")
|
106
|
-
end
|
107
|
-
|
108
|
-
def render_journal_image(facet_solr_field, item, options = {})
|
109
|
-
if File.exists?("#{Rails.root}/public/images/journal_images/#{item.value.strip.downcase.gsub(/\s+/,'_')}.jpg")
|
110
|
-
img = image_tag "/images/journal_images/#{item.value.strip.downcase.gsub(/\s+/,'_')}.jpg", :width => "100"
|
111
|
-
else
|
112
|
-
img = image_tag "/plugin_assets/hydra-head/images/default_thumbnail.gif", :width=>"100", :alt=>"#{item.value}"
|
113
|
-
end
|
114
|
-
|
115
|
-
link_to_unless(options[:suppress_link], img, add_facet_params_and_redirect(facet_solr_field, item.value), :class=>"facet_select")
|
116
|
-
end
|
117
|
-
|
118
|
-
def get_randomized_display_items items
|
119
|
-
clean_items = items.each.inject([]) do |array, item|
|
120
|
-
array << item unless item.value.strip.blank?
|
121
|
-
array
|
122
|
-
end
|
123
|
-
|
124
|
-
if clean_items.length < 6
|
125
|
-
clean_items.sort_by {|item| item.value }
|
126
|
-
else
|
127
|
-
rdi = clean_items.sort_by {rand}.slice(0..5)
|
128
|
-
return rdi.sort_by {|item| item.value.downcase}
|
129
|
-
end
|
130
|
-
|
131
|
-
end
|
132
|
-
|
133
|
-
def extract_computing_id val
|
134
|
-
cid = val.split(" ")[-1]
|
135
|
-
cid[1..cid.length-2]
|
136
|
-
end
|
137
|
-
|
138
|
-
def format_item_value val
|
139
|
-
begin
|
140
|
-
last, f_c = val.split(", ")
|
141
|
-
first = f_c.split(" (")[0]
|
142
|
-
rescue
|
143
|
-
return val.nil? ? "" : val
|
144
|
-
end
|
145
|
-
[last, "#{first[0..0]}."].join(", ")
|
146
|
-
end
|
147
|
-
|
148
|
-
def render_head_content
|
149
|
-
render_stylesheet_includes +
|
150
|
-
render_js_includes +
|
151
|
-
render_extra_head_content_without_unapi +
|
152
|
-
content_for(:head)
|
153
|
-
end
|
154
|
-
|
155
|
-
def render_extra_head_content_without_unapi
|
156
|
-
remove_unapi!
|
157
|
-
render_extra_head_content
|
158
|
-
end
|
159
|
-
|
160
|
-
# rel="unapi-server" is not HTML5 valid. Need to see if there is a way to do that properly while still validating.
|
161
|
-
def remove_unapi!
|
162
|
-
extra_head_content.delete_if do |ehc|
|
163
|
-
ehc.include?("unapi-server")
|
164
|
-
end
|
165
|
-
end
|
166
|
-
|
167
|
-
# COPIED from vendor/plugins/blacklight/app/helpers/application_helper.rb
|
168
|
-
# Used in catalog/facet action, facets.rb view, for a click
|
169
|
-
# on a facet value. Add on the facet params to existing
|
170
|
-
# search constraints. Remove any paginator-specific request
|
171
|
-
# params, or other request params that should be removed
|
172
|
-
# for a 'fresh' display.
|
173
|
-
# Change the action to 'index' to send them back to
|
174
|
-
# catalog/index with their new facet choice.
|
175
|
-
def add_facet_params_and_redirect(field, value)
|
176
|
-
new_params = add_facet_params(field, value)
|
177
|
-
|
178
|
-
# Delete page, if needed.
|
179
|
-
new_params.delete(:page)
|
180
|
-
|
181
|
-
# Delete :qt, if needed - added to resolve NPE errors
|
182
|
-
new_params.delete(:qt)
|
183
|
-
|
184
|
-
# Delete any request params from facet-specific action, needed
|
185
|
-
# to redir to index action properly.
|
186
|
-
Blacklight::Solr::FacetPaginator.request_keys.values.each do |paginator_key|
|
187
|
-
new_params.delete(paginator_key)
|
188
|
-
end
|
189
|
-
new_params.delete(:id)
|
190
|
-
|
191
|
-
# Force action to be index.
|
192
|
-
new_params[:action] = "index"
|
193
|
-
|
194
|
-
new_params
|
195
|
-
end
|
196
|
-
|
2
|
+
include Hydra::BlacklightHelperBehavior
|
197
3
|
end
|
4
|
+
|