hydra-head 4.0.3 → 4.1.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 (125) hide show
  1. data/.gitignore +1 -0
  2. data/HISTORY.textile +17 -2
  3. data/app/assets/stylesheets/hydra/html_refactor.css +3 -30
  4. data/app/assets/stylesheets/hydra/styles.css +6 -64
  5. data/app/controllers/downloads_controller.rb +1 -1
  6. data/app/controllers/hydra/assets_controller.rb +10 -1
  7. data/app/controllers/hydra/contributors_controller.rb +15 -1
  8. data/app/controllers/hydra/file_assets_controller.rb +1 -1
  9. data/app/controllers/hydra/permissions_controller.rb +14 -0
  10. data/app/helpers/hydra/article_metadata_helper_behavior.rb +14 -1
  11. data/app/helpers/hydra/downloads_helper_behavior.rb +6 -0
  12. data/app/helpers/hydra/facets_helper_behavior.rb +7 -0
  13. data/app/helpers/hydra/generic_content_objects_helper_behavior.rb +6 -0
  14. data/app/helpers/hydra/hydra_assets_helper_behavior.rb +10 -0
  15. data/app/helpers/hydra/hydra_fedora_metadata_helper_behavior.rb +31 -0
  16. data/app/helpers/hydra/hydra_helper_behavior.rb +18 -7
  17. data/app/helpers/hydra/hydra_uploader_helper_behavior.rb +5 -0
  18. data/app/helpers/hydra/inline_editable_metadata_helper_behavior.rb +6 -0
  19. data/app/helpers/hydra/javascript_includes_helper_behavior.rb +7 -0
  20. data/app/helpers/hydra/personalization_helper_behavior.rb +5 -0
  21. data/app/helpers/hydra/release_process_helper_behavior.rb +5 -0
  22. data/app/models/generic_content.rb +3 -0
  23. data/app/models/generic_image.rb +3 -0
  24. data/app/models/superuser.rb +4 -2
  25. data/app/models/user_attribute.rb +7 -2
  26. data/app/views/_add_assets_links.html.erb +4 -4
  27. data/app/views/catalog/_index_partials/_default.html.erb +2 -2
  28. data/app/views/catalog/show.html.erb +1 -1
  29. data/app/views/generic_contents/_index.html.erb +2 -2
  30. data/app/views/generic_images/_edit.html.erb +1 -1
  31. data/app/views/generic_images/_index.html.erb +2 -2
  32. data/app/views/hydra/file_assets/_file_assets_form.html.erb +1 -1
  33. data/app/views/hydra/file_assets/_index.html.erb +2 -2
  34. data/app/views/hydra/file_assets/_result.html.erb +1 -1
  35. data/app/views/layouts/hydra-head.html.erb +4 -1
  36. data/app/views/mods_assets/_index_list.html.erb +1 -1
  37. data/app/views/mods_assets/_index_table.html.erb +2 -2
  38. data/app/views/mods_assets/_show.html.erb +1 -1
  39. data/app/views/mods_assets/_show_file_assets.html.erb +1 -1
  40. data/config/jetty.yml +1 -1
  41. data/config/locales/hydra.en.yml +7 -0
  42. data/config/solr.yml +1 -1
  43. data/config/solr_mappings.yml +2 -2
  44. data/hydra-head.gemspec +5 -4
  45. data/lib/generators/hydra/head_generator.rb +6 -5
  46. data/lib/generators/hydra/templates/config/fedora.yml +1 -1
  47. data/lib/generators/hydra/templates/config/solr.yml +1 -1
  48. data/lib/hydra-head/version.rb +1 -1
  49. data/lib/hydra.rb +13 -11
  50. data/lib/hydra/assets.rb +5 -135
  51. data/lib/hydra/catalog.rb +6 -44
  52. data/lib/hydra/controller.rb +10 -27
  53. data/lib/hydra/controller/assets_controller_behavior.rb +142 -0
  54. data/lib/hydra/controller/catalog_controller_behavior.rb +56 -0
  55. data/lib/hydra/controller/controller_behavior.rb +59 -0
  56. data/lib/hydra/controller/file_assets_behavior.rb +142 -0
  57. data/lib/hydra/controller/repository_controller_behavior.rb +119 -0
  58. data/lib/hydra/controller/upload_behavior.rb +139 -0
  59. data/lib/hydra/file_assets.rb +3 -138
  60. data/lib/hydra/file_assets_helper.rb +6 -133
  61. data/lib/hydra/generic_content.rb +15 -0
  62. data/lib/hydra/generic_image.rb +10 -0
  63. data/lib/hydra/global_configurable.rb +46 -0
  64. data/lib/hydra/model_methods.rb +3 -3
  65. data/lib/hydra/model_mixins.rb +1 -1
  66. data/lib/hydra/model_mixins/solr_document_extension.rb +24 -0
  67. data/lib/hydra/repository_controller.rb +4 -95
  68. data/lib/hydra/ui/controller.rb +1 -2
  69. data/lib/hydra/user.rb +13 -1
  70. data/lib/railties/hydra-fixtures.rake +1 -1
  71. data/tasks/hydra-head.rake +2 -0
  72. data/{app/models → test_support/etc}/common_metadata_asset.rb +1 -2
  73. data/test_support/features/mods_asset_show.feature +1 -1
  74. data/test_support/features/support/env.rb +2 -0
  75. data/test_support/features/support/paths.rb +2 -0
  76. data/test_support/spec/controllers/catalog_controller_spec.rb +8 -0
  77. data/test_support/spec/controllers/catalog_controller_viewing_context_spec.rb +10 -1
  78. data/test_support/spec/controllers/catalog_valid_html_spec.rb +8 -0
  79. data/test_support/spec/controllers/contributors_controller_spec.rb +10 -0
  80. data/test_support/spec/controllers/file_assets_controller_spec.rb +15 -3
  81. data/test_support/spec/controllers/hydra-assets_controller_spec.rb +11 -1
  82. data/test_support/spec/controllers/hydra_controller_spec.rb +15 -4
  83. data/test_support/spec/controllers/permissions_controller_spec.rb +8 -0
  84. data/test_support/spec/helpers/access_controls_enforcement_spec.rb +1 -2
  85. data/test_support/spec/helpers/file_assets_helper_spec.rb +1 -1
  86. data/test_support/spec/helpers/generic_content_objects_helper_spec.rb +10 -1
  87. data/test_support/spec/helpers/hydra-repository_controller_spec.rb +1 -1
  88. data/test_support/spec/helpers/hydra_assets_helper_spec.rb +8 -0
  89. data/test_support/spec/helpers/hydra_fedora_metadata_helper_spec.rb +11 -0
  90. data/test_support/spec/helpers/hydra_helper_spec.rb +18 -0
  91. data/test_support/spec/helpers/hydra_model_methods_spec.rb +0 -12
  92. data/test_support/spec/helpers/hydra_uploader_helper_spec.rb +8 -0
  93. data/test_support/spec/helpers/javascript_includes_helper_spec.rb +9 -1
  94. data/test_support/spec/lib/catalog_spec.rb +10 -3
  95. data/test_support/spec/lib/global_configurable_spec.rb +98 -0
  96. data/test_support/spec/lib/model_methods_spec.rb +29 -0
  97. data/test_support/spec/models/generic_content_spec.rb +11 -0
  98. data/test_support/spec/models/generic_image_spec.rb +15 -0
  99. data/test_support/spec/models/user_spec.rb +25 -0
  100. metadata +39 -37
  101. data/app/models/ability.rb +0 -5
  102. data/app/models/hydra/ability.rb +0 -137
  103. data/app/models/hydra/datastream/common_mods_index_methods.rb +0 -47
  104. data/app/models/hydra/datastream/mods_article.rb +0 -530
  105. data/app/models/hydra/datastream/mods_dataset.rb +0 -173
  106. data/app/models/hydra/datastream/mods_generic_content.rb +0 -498
  107. data/app/models/hydra/datastream/mods_image.rb +0 -497
  108. data/app/models/hydra/datastream/rights_metadata.rb +0 -191
  109. data/app/models/hydra/role_mapper_behavior.rb +0 -33
  110. data/app/models/role_mapper.rb +0 -6
  111. data/lib/hydra/access_controls_enforcement.rb +0 -237
  112. data/lib/hydra/access_controls_evaluation.rb +0 -38
  113. data/lib/hydra/common_mods_index_methods.rb +0 -46
  114. data/lib/hydra/model_mixins/mods_object.rb +0 -17
  115. data/lib/hydra/model_mixins/rights_metadata.rb +0 -357
  116. data/lib/hydra/mods_article.rb +0 -535
  117. data/lib/hydra/mods_dataset.rb +0 -177
  118. data/lib/hydra/mods_generic_content.rb +0 -500
  119. data/lib/hydra/mods_image.rb +0 -500
  120. data/lib/uva/mods_index_methods.rb +0 -30
  121. data/test_support/spec/lib/common_mods_index_methods_spec.rb +0 -26
  122. data/test_support/spec/models/ability_spec.rb +0 -40
  123. data/test_support/spec/models/hydra_rights_metadata_spec.rb +0 -175
  124. data/test_support/spec/models/role_mapper_spec.rb +0 -22
  125. data/test_support/spec/unit/rights_metadata_spec.rb +0 -80
@@ -1,4 +1,7 @@
1
+ require 'deprecation'
1
2
  module Hydra::ReleaseProcessHelperBehavior
3
+ extend Deprecation
4
+ self.deprecation_horizon = 'hydra-head 5.x'
2
5
 
3
6
  def display_release_status_notice(document)
4
7
  readiness = document.test_release_readiness
@@ -14,6 +17,7 @@ module Hydra::ReleaseProcessHelperBehavior
14
17
  flash[:error] = flash[:error] | readiness[:failures]
15
18
  end
16
19
  end
20
+ deprecation_deprecate :display_release_status_notice
17
21
 
18
22
  def check_embargo_date_format
19
23
  if params.keys.include? [:embargo, :embargo_release_date]
@@ -28,5 +32,6 @@ module Hydra::ReleaseProcessHelperBehavior
28
32
  end
29
33
  end
30
34
  end
35
+ #deprecation_deprecate :check_embargo_date_format
31
36
 
32
37
  end
@@ -1,5 +1,7 @@
1
1
  # GenericContent: EXAMPLE Model that conforms to the Hydra genericContent and genericMetadata cModels
2
+ require 'deprecation'
2
3
  class GenericContent < ActiveFedora::Base
4
+ extend Deprecation
3
5
 
4
6
  # Uses the Hydra Rights Metadata Schema for tracking access permissions & copyright
5
7
  # FIXME: should this have "include Hydra::ModelMixins::CommonMetadata" instead?
@@ -18,6 +20,7 @@ class GenericContent < ActiveFedora::Base
18
20
  include Hydra::ModelMethods
19
21
 
20
22
  def initialize( attrs={} )
23
+ Deprecation.warn(GenericContent, "GenericContent is deprecated and will be removed in hydra-head 5.x")
21
24
  super
22
25
  end
23
26
  end
@@ -39,8 +39,10 @@
39
39
  # gi.has_screen?
40
40
  # gi.has_thumbnail?
41
41
  require 'hydra'
42
+ require 'deprecation'
42
43
 
43
44
  class GenericImage < ActiveFedora::Base
45
+ extend Deprecation
44
46
 
45
47
  # Uses the GenericImage mixin to conform to the Hydra genericImage cModel (auto-includes on GenericContent behaviors)
46
48
  include Hydra::GenericImage
@@ -58,6 +60,7 @@ class GenericImage < ActiveFedora::Base
58
60
  has_metadata :name => "properties", :type => Hydra::Datastream::Properties
59
61
 
60
62
  def initialize( attrs={} )
63
+ Deprecation.warn(GenericImage, "GenericImage is deprecated and will be removed in hydra-head 5.x")
61
64
  super
62
65
  end
63
66
 
@@ -1,12 +1,14 @@
1
1
  # @deprecated - we are moving away from this approach; this code will be removed no later than release 6.x
2
2
  # To make a superuser record, look up the ID (not the login) of a previously created user,
3
3
  # and then insert that id into the superusers table
4
+ require 'deprecation'
4
5
  class Superuser < ActiveRecord::Base
6
+ extend Deprecation
5
7
  belongs_to :user
6
8
 
7
9
  def initialize
8
- ActiveSupport::Deprecation.warn("Superuser is deprecated and will be removed from HydraHead in release 5 or 6; we are moving away from this approach.")
10
+ Deprecation.warn(Superuser, "Superuser is deprecated and will be removed from HydraHead in release 5 or 6; we are moving away from this approach.")
9
11
  super
10
12
  end
11
13
 
12
- end
14
+ end
@@ -1,9 +1,12 @@
1
1
  # @deprecated - from the original implementation of UVA's Libra. This type of behavior should be application-specific. This will be removed no later than release 6.x
2
+ require 'deprecation'
2
3
  class UserAttribute < ActiveRecord::Base
3
4
  belongs_to :user
5
+ extend Deprecation
4
6
 
7
+ self.deprecation_horizon = 'hydra-head 5.x'
5
8
  def initialize
6
- ActiveSupport::Deprecation.warn("UserAttribute is deprecated and will be removed from HydraHead in release 5 or 6; this behavior should be implemented at the app level.")
9
+ Deprecation.warn(UserAttribute, "UserAttribute is deprecated and will be removed from HydraHead in release 5 or 6; this behavior should be implemented at the app level.")
7
10
  super
8
11
  end
9
12
 
@@ -12,7 +15,7 @@ class UserAttribute < ActiveRecord::Base
12
15
  # @param [sting] login the login of the user
13
16
  # @return the user attribute object or nil
14
17
  def self.find_by_login(login)
15
- ActiveSupport::Deprecation.warn("UserAttribute.find_by_login is deprecated and will be removed from HydraHead in release 5 or 6; this behavior should be implemented at the app level.")
18
+ Deprecation.warn(UserAttribute, "UserAttribute.find_by_login is deprecated and will be removed from HydraHead in release 5 or 6; this behavior should be implemented at the app level.")
16
19
  user = User.find_by_login(login)
17
20
  if user
18
21
  UserAttribute.find_by_user_id(user.id)
@@ -29,4 +32,6 @@ class UserAttribute < ActiveRecord::Base
29
32
  [fn, ln].join(" ").strip
30
33
  end
31
34
 
35
+ deprecation_deprecate :full_name
36
+
32
37
  end
@@ -2,13 +2,13 @@
2
2
  <a class="add-new-asset" href="#">Add a New Asset</a>
3
3
  <ul id="select-item-list">
4
4
  <li>
5
- <%= link_to_create_asset 'Add a Basic MODS Asset', 'mods_asset' %>
5
+ <%= link_to 'Add a Basic MODS Asset', new_hydra_asset_path(:content_type => 'mods_asset'), :class => 'create_asset' %>
6
6
  </li>
7
7
  <li>
8
- <%= link_to_create_asset 'Add an Image', 'generic_image' %>
8
+ <%= link_to 'Add an Image', new_hydra_asset_path(:content_type => 'generic_image'), :class => 'create_asset' %>
9
9
  </li>
10
10
  <li>
11
- <%= link_to_create_asset 'Add Generic Content', 'generic_content' %>
11
+ <%= link_to 'Add Generic Content', new_hydra_asset_path(:content_type => 'generic_content'), :class => 'create_asset' %>
12
12
  </li>
13
13
  </ul>
14
- </div>
14
+ </div>
@@ -6,10 +6,10 @@
6
6
 
7
7
  </td>
8
8
  <td>
9
- <%= DateTime.parse(document.fetch(:system_create_dt,nil)).to_time %>
9
+ <%= l DateTime.parse(document.fetch(:system_create_dt,nil)).to_time %>
10
10
  </td>
11
11
  <td>
12
- <%= (document.fetch(:medium_t,nil) || document_type(document)).gsub("Hydrangea","") %>
12
+ <%= document.document_type(blacklight_config.show.display_type) %>
13
13
  </td>
14
14
  <td>
15
15
  <%= get_file_asset_count(document)%>
@@ -35,6 +35,6 @@
35
35
  </div>
36
36
  <% if controller.action_name == "edit" %>
37
37
  <div class="delete-asset">
38
- <%= button_to("Delete This Item", {:action => :destroy, :controller => :"hydra/assets", :id => @document_fedora.pid}, :confirm => 'Are you sure?', :method => :delete )%>
38
+ <%= button_to("Delete This Item", {:action => :destroy, :controller => :"hydra/assets", :id => @document_fedora.pid}, :data => { :confirm => 'Are you sure?' }, :method => :delete )%>
39
39
  </div>
40
40
  <% end %>
@@ -3,14 +3,14 @@
3
3
  <%= link_to_document(document, :label => blacklight_config.show.heading.to_sym, :counter => (counter + 1 + @response.params[:start].to_i)) %>
4
4
  </td>
5
5
  <td>
6
- <% creator = get_person_from_role(document, "Creator") %>
6
+ <% creator = document.get_person_from_role("Creator") %>
7
7
  <%= [creator[:last], creator[:first]].join(", ") unless creator.nil? %>
8
8
  </td>
9
9
  <td>
10
10
  <%= DateTime.parse(document.fetch(:system_create_dt, "")).to_time %>
11
11
  </td>
12
12
  <td>
13
- <%= (document[:medium_t] || document_type(document)).gsub(/^Generic/,"") %>
13
+ <%= document.document_type(blacklight_config.show.display_type) %>
14
14
  </td>
15
15
  <td>
16
16
  <%= get_file_asset_count(document)%>
@@ -20,7 +20,7 @@
20
20
  // This hidden form really belongs elsewhere, but putting it inside of an
21
21
  // accordion section un-hides it, so I stuck it here for now. -MZ
22
22
  %>
23
- <form id="new_contributor" action="<%=url_for(:action=>"create", :controller=>"contributors", :asset_id=>params[:id]) %>" method="post">
23
+ <form id="new_contributor" action="<%=hydra_asset_contributors_path(:asset_id=>params[:id]) %>" method="post">
24
24
  <input class="content_type" type="hidden" name="content_type" value="generic_content" />
25
25
  <p><label for="contributor_type">Contributor Type</label>
26
26
  <select id="contributor_type" name="contributor_type">
@@ -6,14 +6,14 @@
6
6
 
7
7
  </td>
8
8
  <td>
9
- <% creator = get_person_from_role(document, "Creator") %>
9
+ <% creator = document.get_person_from_role("Creator") %>
10
10
  <%= [creator[:last], creator[:first]].join(", ") unless creator.nil? %>
11
11
  </td>
12
12
  <td>
13
13
  <%= DateTime.parse(document.fetch(:system_create_dt, "")).to_time %>
14
14
  </td>
15
15
  <td>
16
- <%= (document[:medium_t] || document_type(document)).gsub(/^Generic/,"") %>
16
+ <%= document.document_type(blacklight_config.show.display_type) %>
17
17
  </td>
18
18
  <td>
19
19
  <%= get_file_asset_count(document)%>
@@ -1,7 +1,7 @@
1
1
  <%- if params.has_key?(:number_of_files) or !@file_assets.empty? -%>
2
2
  <%= render :partial => "hydra/file_assets/index", :locals => { :file_assets => @file_assets } %>
3
3
  <%- end -%>
4
- <%= form_tag(upload_url, :class => "step") do -%>
4
+ <%= form_tag(hydra_asset_file_assets_path(:asset_id => params[:asset_id] || params[:id]), :class => "step") do -%>
5
5
  <%= label_tag "number_of_files", "Number of files add" %>
6
6
  <%= select_tag("number_of_files", options_for_select((0...11).to_a) ) -%>
7
7
  <%= hidden_field_tag(:wf_step, params[:wf_step], :id => "num_files_wf_step") %>
@@ -11,8 +11,8 @@
11
11
  <%- container_content_type_param = defined?(container_content_type) ? "?container_content_type=#{container_content_type}" : "" %>
12
12
  <fieldset id='uploader'>
13
13
  <legend>File Upload</legend>
14
- <%= form_tag(upload_url,:method=>"post",:enctype=>"multipart/form-data", :class=>"uploader-form step") do -%>
15
- <input type="hidden" name="container_id" value="<%=h container_id %>"/>
14
+ <%= form_tag(hydra_asset_file_assets_path(:asset_id => params[:asset_id] || params[:id]),:method=>"post",:enctype=>"multipart/form-data", :class=>"uploader-form step") do -%>
15
+ <%= hidden_field_tag("container_id", params[:asset_id] || params[:id]) %>
16
16
  <%= hidden_field_tag("container_content_type", container_content_type, :id => "file_upload_content_type") if defined?(container_content_type) %>
17
17
  <%- params[:number_of_files].to_i.times do -%>
18
18
  <%= render :partial=>"hydra/file_assets/new"%>
@@ -5,7 +5,7 @@
5
5
  <td>
6
6
 
7
7
  <% if can? :edit, @document %>
8
- <%= button_to("Delete", "/hydra/assets/#{result["id"]}/file_assets/#{result["id"]}?container_id=#{@document[:id]}", :confirm => "Are you sure you want to delete this file?", :method => :delete, :class => "delete-button") %>
8
+ <%= button_to("Delete", "/hydra/assets/#{result["id"]}/file_assets/#{result["id"]}?container_id=#{@document[:id]}", :data => { :confirm => "Are you sure you want to delete this file?" }, :method => :delete, :class => "delete-button") %>
9
9
  <% end %>
10
10
  </td>
11
11
  </tr>
@@ -12,10 +12,12 @@
12
12
  </head>
13
13
 
14
14
  <body class="<%= render_body_class %>">
15
+ <div id="page">
15
16
 
16
17
  <div id="hd">
18
+ <div id="user_util_links">
17
19
  <%= render :partial => '/user_util_links' %>
18
- <%= (params[:controller] == "catalog" and !params[:id]) ? "<span id='results_text'>Search Results</span>".html_safe : "" %>
20
+ </div>
19
21
  </div>
20
22
 
21
23
  <div id="bd">
@@ -38,6 +40,7 @@
38
40
  </div>
39
41
  </div>
40
42
  </div>
43
+ </div>
41
44
 
42
45
  </body>
43
46
 
@@ -1,5 +1,5 @@
1
1
  <div id="title_div" style="float:left;width:300px;"><h2><%= counter + 1 %>. <%= link_to_document(document, :label => Blacklight.config[:show][:heading].to_sym, :counter => (counter + 1 + @response.params[:start].to_i)) %></h2></div>
2
- <div id="type_div" style="float:right;"><%= (document.get(:medium_t) || document_type(document)).gsub("Hydrangea","") %></div>
2
+ <div id="type_div" style="float:right;"><%= document.document_type(blacklight_config.show.display_type) %></div>
3
3
  <div id="content_div" style="float:left;">
4
4
  <dl id="index_list">
5
5
  <dt>Author(s):</dt>
@@ -1,7 +1,7 @@
1
1
  <tr class="document <%= cycle("even","odd") %>">
2
2
  <td class="document_title"><%= link_to_document(document, :label => :mods_0_title_info_0_main_title_t, :counter => (counter + 1 + @response.params[:start].to_i)) %></td>
3
- <td class="document_author"><% author = get_person_from_role(document, "author") %><%= author.nil? ? "n/a" : [author[:last], author[:first]].join(", ") %></td>
3
+ <td class="document_author"><% author = document.get_person_from_role("author") %><%= author.nil? ? "n/a" : [author[:last], author[:first]].join(", ") %></td>
4
4
  <td class="document_work"><%= document.fetch(:journal_title_info_main_title_t, nil) %></td>
5
- <td class="document_date"><%= format_date(DateTime.parse(document.fetch(:system_create_dt, "")).to_time) %></td>
5
+ <td class="document_date"><%= l(DateTime.parse(document.fetch(:system_create_dt, "")).to_date, :format => :hydra) %></td>
6
6
  <td class="document_files"><%= get_file_asset_count(document) %></td>
7
7
  </tr>
@@ -28,7 +28,7 @@
28
28
  <td><%= result[solr_name("extent", :text)] %></td>
29
29
  <td>
30
30
  <% dt = DateTime.parse(result[ solr_name("system_create", :date)] ) -%>
31
- <%= format_date dt %>
31
+ <%= l dt, :format => :hydra %>
32
32
  </td>
33
33
  </tr>
34
34
  <% end %>
@@ -13,7 +13,7 @@
13
13
  <td><%= result[solr_name("extent", :text)] %></td>
14
14
  <td>
15
15
  <% dt = DateTime.parse(result[ solr_name("system_create", :date)] ) -%>
16
- <%= format_date dt %>
16
+ <%= l dt, :format => :hydra %>
17
17
  </td>
18
18
  </tr>
19
19
  <% end %>
@@ -1,5 +1,5 @@
1
1
  default:
2
- jetty_port: 8983
2
+ jetty_port: <%= ENV['TEST_JETTY_PORT'] || 8983 %>
3
3
  startup_wait: 30
4
4
  java_opts:
5
5
  - "-Xmx256m"
@@ -0,0 +1,7 @@
1
+ en:
2
+ date:
3
+ formats:
4
+ hydra: "%b. %e, %Y"
5
+ time:
6
+ formats:
7
+ hydra: "%b. %e, %Y"
@@ -2,7 +2,7 @@
2
2
  development:
3
3
  url: http://localhost:8983/solr/development
4
4
  test: &TEST
5
- url: http://127.0.0.1:8983/solr/test
5
+ url: http://localhost:8983/solr/test
6
6
  cucumber:
7
7
  <<: *TEST
8
8
  production:
@@ -8,7 +8,7 @@ default: searchable
8
8
  searchable:
9
9
  default: _t
10
10
  date: _dt
11
- string: _t
11
+ string: _s
12
12
  text: _t
13
13
  symbol: _s
14
14
  integer: _i
@@ -19,4 +19,4 @@ searchable:
19
19
  displayable: _display
20
20
  facetable: _facet
21
21
  sortable: _sort
22
- unstemmed_searchable: _unstem_search
22
+ unstemmed_searchable: _unstem_search
@@ -13,19 +13,20 @@ Gem::Specification.new do |s|
13
13
  s.description = %q{Hydra-Head is a Rails Engine containing the core code for a Hydra application. The full hydra stack includes: Blacklight, Fedora, Solr, active-fedora, solrizer, and om}
14
14
 
15
15
  s.add_dependency "rails", '~>3.2.3'
16
- s.add_dependency "blacklight", '~>3.4.2'
16
+ s.add_dependency "blacklight", '~>3.4'
17
17
  s.add_dependency "devise"
18
18
  s.add_dependency "active-fedora", '~>4.1'
19
19
  s.add_dependency 'RedCloth', '=4.2.9'
20
20
  s.add_dependency 'block_helpers'
21
21
  s.add_dependency 'sanitize'
22
- s.add_dependency 'cancan'
23
- s.add_dependency 'deprecation'
22
+ s.add_dependency 'hydra-mods', ">= 0.0.5"
23
+ s.add_dependency 'deprecation', ">= 0.0.5"
24
24
  s.add_dependency 'jquery-rails'
25
+ s.add_dependency 'hydra-access-controls', ">= 0.0.2"
25
26
 
26
27
  s.add_development_dependency 'sqlite3'
27
28
  s.add_development_dependency 'yard'
28
- s.add_development_dependency 'jettywrapper', ">=1.0.4"
29
+ s.add_development_dependency 'jettywrapper', ">=1.3.0"
29
30
  s.add_development_dependency 'rspec-rails'
30
31
  s.add_development_dependency 'mocha'
31
32
  s.add_development_dependency 'cucumber-rails', '>=1.2.0'
@@ -112,17 +112,18 @@ EOF
112
112
  if File.exists?(file_path)
113
113
  insert_into_file file_path, :after => 'include Blacklight::Catalog' do
114
114
  "\n # Extend Blacklight::Catalog with Hydra behaviors (primarily editing)." +
115
- "\n include Hydra::Catalog\n" +
115
+ "\n include Hydra::Controller::CatalogControllerBehavior\n" +
116
116
  "\n # These before_filters apply the hydra access controls" +
117
117
  "\n before_filter :enforce_access_controls" +
118
118
  "\n before_filter :enforce_viewing_context_for_show_requests, :only=>:show" +
119
119
  "\n # This applies appropriate access controls to all solr queries" +
120
120
  "\n CatalogController.solr_search_params_logic << :add_access_controls_to_solr_params" +
121
121
  "\n # This filters out objects that you want to exclude from search results, like FileAssets" +
122
- "\n CatalogController.solr_search_params_logic << :exclude_unwanted_models"
122
+ "\n CatalogController.solr_search_params_logic << :exclude_unwanted_models"
123
+
123
124
  end
124
125
  else
125
- puts " \e[31mFailure\e[0m Could not find #{model_name.underscore}.rb. To add Hydra behaviors to your Blacklight::Catalog Controllers, you must include the Hydra::Controller module in the Controller class definition. See the Hydra::Controller section in the Hydra API Docs for more info."
126
+ puts " \e[31mFailure\e[0m Could not find #{model_name.underscore}.rb. To add Hydra behaviors to your Blacklight::Catalog Controllers, you must include the Hydra::Controller::ControllerBehavior module in the Controller class definition. See the Hydra::Controller::ControllerBehavior section in the Hydra API Docs for more info."
126
127
  end
127
128
  end
128
129
 
@@ -142,13 +143,13 @@ EOF
142
143
  if File.exists?(file_path)
143
144
  insert_into_file file_path, :after => 'include Blacklight::Controller' do
144
145
  " \n# Adds Hydra behaviors into the application controller \n" +
145
- " include Hydra::Controller\n" +
146
+ " include Hydra::Controller::ControllerBehavior\n" +
146
147
  " def layout_name\n" +
147
148
  " 'hydra-head'\n" +
148
149
  " end\n"
149
150
  end
150
151
  else
151
- puts " \e[31mFailure\e[0m Could not find #{model_name.underscore}.rb. To add Hydra behaviors to your Blacklight::Catalog Controllers, you must include the Hydra::Controller module in the Controller class definition. See the Hydra::Controller section in the Hydra API Docs for more info."
152
+ puts " \e[31mFailure\e[0m Could not find #{model_name.underscore}.rb. To add Hydra behaviors to your Blacklight::Catalog Controllers, you must include the Hydra::Controller::ControllerBehavior module in the Controller class definition. See the Hydra::Controller::ControllerBehavior section in the Hydra API Docs for more info."
152
153
  end
153
154
  end
154
155
 
@@ -5,7 +5,7 @@ development:
5
5
  test: &TEST
6
6
  user: fedoraAdmin
7
7
  password: fedoraAdmin
8
- url: http://127.0.0.1:8983/fedora-test
8
+ url: <%= "http://127.0.0.1:#{ENV['TEST_JETTY_PORT'] || 8983}/fedora-test" %>
9
9
  production:
10
10
  user: fedoraAdmin
11
11
  password: fedoraAdmin
@@ -3,7 +3,7 @@
3
3
  development:
4
4
  url: http://localhost:8983/solr/development
5
5
  test: &TEST
6
- url: http://127.0.0.1:8983/solr/test
6
+ url: <%= "http://127.0.0.1:#{ENV['TEST_JETTY_PORT'] || 8983}/solr/test" %>
7
7
  cucumber:
8
8
  <<: *TEST
9
9
  production:
@@ -1,4 +1,4 @@
1
1
  module HydraHead
2
- VERSION = "4.0.3"
2
+ VERSION = "4.1.0"
3
3
  end
4
4
 
@@ -1,13 +1,13 @@
1
1
  require "blacklight"
2
2
  require 'active-fedora'
3
3
  require 'cancan'
4
+ require 'hydra-access-controls'
4
5
 
5
6
  # Hydra libraries
6
7
  module Hydra
7
- extend Blacklight::GlobalConfigurable
8
8
  extend ActiveSupport::Autoload
9
- autoload :AccessControlsEvaluation
10
- autoload :AccessControlsEnforcement
9
+ autoload :GlobalConfigurable
10
+ extend GlobalConfigurable
11
11
  autoload :Assets
12
12
  autoload :Catalog
13
13
  autoload :Controller
@@ -15,27 +15,29 @@ module Hydra
15
15
  autoload :GenericContent
16
16
  autoload :GenericImage
17
17
  autoload :GenericUserAttributes
18
- autoload :ModelMixins
19
- autoload :ModsGenericContent
20
- autoload :ModsImage
18
+ require 'hydra/model_mixins'
21
19
  autoload :RepositoryController
22
20
  autoload :SubmissionWorkflow
23
21
  autoload :SuperuserAttributes
24
22
  autoload :User
25
23
  autoload :UI
26
24
  autoload :Workflow
27
- end
28
25
 
26
+ autoload :FileAssetsHelper
27
+
28
+ # This error is raised when a user isn't allowed to access a given controller action.
29
+ # This usually happens within a call to AccessControlsEnforcement#enforce_access_controls but can be
30
+ # raised manually.
31
+ class Hydra::AccessDenied < CanCan::AccessDenied; end
32
+ end
29
33
 
30
34
 
31
35
  require 'hydra/assets_controller_helper'
32
- require 'hydra/file_assets_helper'
33
-
34
36
  require 'hydra/rights_metadata'
35
- require 'hydra/common_mods_index_methods'
36
- require 'hydra/mods_article'
37
+ require 'hydra/mods'
37
38
  require 'hydra/model_methods'
38
39
  require 'hydra/models/file_asset'
39
40
  require 'mediashelf/active_fedora_helper' #deprecated
40
41
 
42
+ SolrDocument.use_extension Hydra::ModelMixins::SolrDocumentExtension
41
43