fcrepo_admin 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/HISTORY.rdoc +10 -2
  3. data/README.rdoc +59 -14
  4. data/app/controllers/fcrepo_admin/datastreams_controller.rb +8 -46
  5. data/app/controllers/fcrepo_admin/objects_controller.rb +1 -1
  6. data/app/views/fcrepo_admin/datastreams/_alert.html.erb +4 -0
  7. data/app/views/fcrepo_admin/datastreams/_content.html.erb +1 -1
  8. data/app/views/fcrepo_admin/datastreams/_datastreams_list.html.erb +3 -3
  9. data/app/views/fcrepo_admin/datastreams/_profile.html.erb +4 -5
  10. data/app/views/fcrepo_admin/datastreams/content.html.erb +2 -1
  11. data/app/views/fcrepo_admin/datastreams/edit.html.erb +4 -3
  12. data/app/views/fcrepo_admin/datastreams/history.html.erb +3 -8
  13. data/app/views/fcrepo_admin/datastreams/index.html.erb +4 -1
  14. data/app/views/fcrepo_admin/datastreams/upload.html.erb +4 -3
  15. data/app/views/fcrepo_admin/objects/_direct_permissions.html.erb +1 -1
  16. data/app/views/fcrepo_admin/objects/_permissions_list.html.erb +1 -1
  17. data/app/views/fcrepo_admin/objects/permissions.html.erb +8 -2
  18. data/app/views/fcrepo_admin/shared/_context_nav.html.erb +2 -2
  19. data/app/views/layouts/fcrepo_admin/datastreams.html.erb +5 -7
  20. data/app/views/layouts/fcrepo_admin/objects.html.erb +1 -1
  21. data/config/locales/fcrepo_admin.en.yml +33 -22
  22. data/config/routes.rb +5 -2
  23. data/lib/fcrepo_admin.rb +51 -1
  24. data/lib/fcrepo_admin/decorators/active_fedora/base_decorator.rb +33 -0
  25. data/lib/fcrepo_admin/decorators/active_fedora/datastream_decorator.rb +35 -0
  26. data/lib/fcrepo_admin/engine.rb +6 -0
  27. data/lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb +132 -8
  28. data/lib/fcrepo_admin/helpers/objects_helper_behavior.rb +47 -8
  29. data/lib/fcrepo_admin/version.rb +1 -1
  30. data/spec/controllers/datastreams_controller_spec.rb +53 -29
  31. data/spec/controllers/objects_controller_spec.rb +1 -1
  32. data/spec/features/datastreams/content.html.erb_spec.rb +7 -0
  33. data/spec/features/datastreams/edit.html.erb_spec.rb +1 -1
  34. data/spec/features/datastreams/index.html.erb_spec.rb +3 -3
  35. data/spec/features/datastreams/show.html.erb_spec.rb +44 -12
  36. data/spec/features/datastreams/upload.html.erb_spec.rb +1 -1
  37. data/spec/internal/app/models/item.rb +3 -0
  38. data/spec/internal/app/models/solr_document.rb +0 -2
  39. data/spec/internal/spec/fixtures/files/hydra.jpg +0 -0
  40. metadata +9 -8
  41. data/app/views/fcrepo_admin/datastreams/_context_nav.html.erb +0 -9
  42. data/app/views/fcrepo_admin/datastreams/_context_nav_items.html.erb +0 -38
  43. data/app/views/fcrepo_admin/objects/_context_nav.html.erb +0 -9
  44. data/app/views/fcrepo_admin/objects/_context_nav_datastreams.html.erb +0 -13
  45. data/app/views/fcrepo_admin/objects/_context_nav_items.html.erb +0 -19
  46. data/lib/fcrepo_admin/helpers/fcrepo_admin_helper_behavior.rb +0 -27
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 305ef9978b750b747db1086587bf2d1728a59db9
4
- data.tar.gz: 6c1b3182517d5540696c72f69a8eb5eb8e360925
3
+ metadata.gz: 9b41a170f6b9f8ad2296559c6ff76f85c1b325c2
4
+ data.tar.gz: ce970e804c3e9fec32d7ac493bdb001e775f765d
5
5
  SHA512:
6
- metadata.gz: b2c10fdd7964b34923d6486be2fb8b1c05215e9430d0f8cf75e04007f80ab658660f83220502b9469a94f1467d49a364a80714b209ddad2efc726d0fed71e887
7
- data.tar.gz: 277b2fc6f1dd3a411ace6984eec531d60cd2e5d4ac9b906e9774f9064d283c84d82e6abf8630dc0110328de7803cf95e79d460a641f704e4c1b80a149a6e5af1
6
+ metadata.gz: 13935a3cdf2cc95bd0048caf3a25c3e1442b4229b2f874ad93c0eb47bb4bbc2164a9f78da5acbef5dec5ca39e949d7db46b4fa1b167d821d16e88b8308ecff08
7
+ data.tar.gz: bd682bf0c49d2f06dd2aef3c630d4da5ed723c2efc6e1d1005a3801f40d25f7df096a4267f9e63566481556b691213915fcb6c4ffb969b04397477a584688d53
data/HISTORY.rdoc CHANGED
@@ -1,6 +1,14 @@
1
+ === 0.5.0 (2013-05-17)
2
+
3
+ * Feature: Configurable settings.
4
+ * Context navigation menus refactored: customizations now done through helpers and configuration settings, not by overriding partials.
5
+ * ActiveFedora::Base and ActiveFedora::Datastream classes extended by decorators.
6
+ * Tests added.
7
+
1
8
  ==== 0.4.1 (2013-05-14)
2
9
 
3
- * Feature: Datastream history view
10
+ * Feature: Datastream history view.
11
+ * Feature: Support for asOfDateTime parameter added to datastream read views to display content and profile information for datastream versions.
4
12
 
5
13
  === 0.4.0 (2013-05-03)
6
14
 
@@ -16,7 +24,7 @@
16
24
 
17
25
  * Moved FcrepoAdmin::BlacklightHelperBehavior to FcrepoAdmin::Helpers::BlacklightHelperBehavior.
18
26
  * FcrepoAdmin::ObjectsHelper methods can now be easily overridden.
19
- * DatastreamsHelper module added.
27
+ * FcrepoAdmin::DatastreamsHelper module added.
20
28
  * Shared helper methods in new module FcrepoAdmin::Helpers::FcrepoAdminHelperBehavior.
21
29
  * Objects and datastreams controller behaviors are now easily overrideable.
22
30
  * Refactored object and datastream context navs for greater reusability.
data/README.rdoc CHANGED
@@ -1,18 +1,18 @@
1
- = Hydra Administrative Tool for a Fedora Repository
1
+ == Hydra Administrative Tool for a Fedora Repository
2
2
 
3
3
  A Rails engine providing an administrative interface to a Fedora Commons repository built on the Hydra project framework.
4
4
 
5
- == Status
5
+ === Status
6
6
 
7
7
  This project should be considered *experimental* and not ready for production deployment.
8
8
  Versions earlier than 1.0 may change API and/or UI without notice or regard for backward compatibility.
9
9
 
10
- == Requirements
10
+ === Requirements
11
11
 
12
12
  fcrepo_admin is designed for installation on hydra-head 6.0 or higher (requires active-fedora 6.1 or higher).
13
13
  See https://github.com/projecthydra/hydra-head/wiki/Installation-Prerequisites.
14
14
 
15
- == Installation
15
+ === Installation
16
16
 
17
17
  (In the future, we hope to automate some of these tasks with a generator.)
18
18
 
@@ -38,7 +38,7 @@ See https://github.com/projecthydra/hydra-head/wiki/Installation-Prerequisites.
38
38
  You may use any mount point (except perhaps <code>'/catalog'</code>).
39
39
  All routes include <code>objects</code> as a subpath.
40
40
 
41
- * Add CanCan action aliases (version >= 0.4.0)
41
+ * Add CanCan action aliases (fcrepo_admin >= 0.4.0)
42
42
 
43
43
  In your Ability class (app/models/ability.rb) include the FcrepoAdmin::Ability module, for example:
44
44
 
@@ -51,7 +51,7 @@ See https://github.com/projecthydra/hydra-head/wiki/Installation-Prerequisites.
51
51
  FcrepoAdmin::Ability defines action aliases for permissions which are enforced on (ActiveFedora::Base) objects.
52
52
  If your application defines action aliases, please check FcrepoAdmin::Ability for conflicts as aliases are global.
53
53
 
54
- * Add Javascript (not required for version >= 0.4.0)
54
+ * Add Javascript (fcrepo_admin < 0.4.0)
55
55
 
56
56
  In app/assets/javascripts/application.js add:
57
57
 
@@ -75,11 +75,28 @@ See https://github.com/projecthydra/hydra-head/wiki/Installation-Prerequisites.
75
75
 
76
76
  include ActiveFedora::Auditable
77
77
 
78
- == Overriding fcrepo_admin behaviors
78
+ === Overriding fcrepo_admin behaviors
79
79
 
80
- The following are examples of possible customizations. This list is not necessarily exhaustive.
80
+ ==== Configurable settings (fcrepo_admin >= 0.5.0)
81
81
 
82
- === Helpers
82
+ To override default configurable settings for fcrepo_admin, create an initializer at config/initializers/fcrepo_admin.rb.
83
+ You should start with this content:
84
+
85
+ module YourApp
86
+ class Application < Rails::Application
87
+ config.before_initialize do
88
+ # Customized settings will go here
89
+ end
90
+ end
91
+ end
92
+
93
+ Refer to the default configuration settings at https://github.com/projecthydra/fcrepo-admin/blob/master/lib/fcrepo_admin.rb.
94
+
95
+ All configuration options are set by module methods prefixed by FcrepoAdmin, for example:
96
+
97
+ FcrepoAdmin.read_only = true
98
+
99
+ ==== Helpers
83
100
 
84
101
  Override objects helpers by creating app/helpers/fcrepo_admin/objects_helper.rb with this content:
85
102
 
@@ -97,7 +114,28 @@ Override datastreams helpers by creating app/helpers/fcrepo_admin/datastreams_he
97
114
  # override methods here
98
115
  end
99
116
 
100
- === Context Navigation Menus
117
+ ==== Context Navigation Menus
118
+
119
+ ===== fcrepo_admin >= 0.5.0
120
+
121
+ The configuration settings that control the items on the context menus are:
122
+
123
+ FcrepoAdmin.object_nav_items = [:pid, :summary, :datastreams, :permissions, :associations, :audit_trail]
124
+ FcrepoAdmin.datastream_nav_items = [:dsid, :version, :current_version, :summary, :content, :download, :edit, :upload, :history]
125
+
126
+ Each setting takes an array of symbols representing the items. You can start by copying the default values shown above.
127
+ If you simply want to rearrange or remove items, then just modify the default arrays.
128
+
129
+ To add a custom navigation item, start by adding your own symbol to the approriate array setting. Then override the
130
+ appropriate helper method (see section above on overriding fcrepo_admin helpers) -- for object context nav, override
131
+ #custom_object_nav_item in ObjectsHelper; for datastream context nav, override #custom_datastream_nav_item
132
+ in DatastreamsHelper.
133
+
134
+ Each method takes a single symbol argument and should return either nil (meaning no menu item is to be added) or the *content*
135
+ of a menu item. Do not include the <li></li> wrapper. You may want to use link_to_unless_current and/or put a condition on
136
+ the menu item (i.e., so that nil is returned if the condition is not met).
137
+
138
+ ===== fcrepo_admin < 0.5.0
101
139
 
102
140
  The contents of the object context navigation menu can be customized by overriding the #object_context_nav_items
103
141
  helper method, or by copying and modifying the partial fcrepo_admin/objects/context_nav_items.
@@ -105,7 +143,7 @@ helper method, or by copying and modifying the partial fcrepo_admin/objects/cont
105
143
  The contents of the datastream context navigation menu can be customized by overriding the
106
144
  #datastream_context_nav_items helper method, or by copying and modifying the partial fcrepo_admin/datastreams/context_nav_items.
107
145
 
108
- === Controllers
146
+ ==== Controllers
109
147
 
110
148
  To override or extend controller behaviors, please consult Rails engine documentation and guides, such as
111
149
  http://edgeguides.rubyonrails.org/engines.html.
@@ -124,12 +162,19 @@ to your Ability class. For this, you can use Hydra's #custom_permissions callba
124
162
 
125
163
  end
126
164
 
127
- == Internationalization (i18n)
165
+ ==== Read-only mode
166
+
167
+ To suppress mutating behaviors (i.e, routes, nav items, etc.) regardless of user permissions,
168
+ add this configuration setting:
169
+
170
+ FcrepoAdmin.read_only = true
171
+
172
+ === Internationalization (i18n)
128
173
 
129
174
  An effort has been made to support i18n on headings, menus, etc. See https://github.com/projecthydra/fcrepo-admin/blob/master/config/locales/fcrepo_admin.en.yml
130
175
  for the keys and consult the Rails documentation on how to provide your own translations or alternate text values.
131
176
 
132
- == Contributing
177
+ === Contributing
133
178
 
134
179
  * Consider first posting to hydra-tech@googlegroups.com with a question or bug report, or submit an issue
135
180
  to the Github issue tracker at https://github.com/projecthydra/fcrepo-admin/issues.
@@ -138,7 +183,7 @@ for the keys and consult the Rails documentation on how to provide your own tran
138
183
 
139
184
  Thanks!
140
185
 
141
- == License
186
+ === License
142
187
 
143
188
  See the LICENSE file in the root directory of the project for copyright and license information.
144
189
 
@@ -13,15 +13,6 @@ module FcrepoAdmin
13
13
  before_filter :load_and_authorize_object
14
14
  before_filter :load_datastream, :except => :index
15
15
 
16
- helper_method :ds_is_current_version?
17
- helper_method :ds_content_is_text?
18
- helper_method :ds_content_is_editable?
19
- helper_method :ds_content_is_uploadable?
20
-
21
- # TODO Migrate to config initializer
22
- EXTRA_TEXT_MIME_TYPES = ['application/xml', 'application/rdf+xml', 'application/json']
23
- MAX_EDITABLE_SIZE = 1024 * 64
24
-
25
16
  def index
26
17
  end
27
18
 
@@ -29,6 +20,9 @@ module FcrepoAdmin
29
20
  end
30
21
 
31
22
  def content
23
+ unless @datastream.content_is_text?
24
+ render :text => "Datastream content is not text.", :status => 403
25
+ end
32
26
  end
33
27
 
34
28
  def history
@@ -41,10 +35,13 @@ module FcrepoAdmin
41
35
  end
42
36
 
43
37
  def edit
38
+ unless @datastream.content_is_editable?
39
+ render :text => "Datastream content is not editable", :status => 403
40
+ end
44
41
  end
45
42
 
46
43
  def upload
47
- unless ds_content_is_uploadable?
44
+ unless @datastream.content_is_uploadable?
48
45
  render :text => "This datstream does not support file content", :status => 403
49
46
  end
50
47
  end
@@ -57,7 +54,7 @@ module FcrepoAdmin
57
54
  end
58
55
  @object.save
59
56
  flash[:notice] = "Datastream content updated." # i18n
60
- redirect_to fcrepo_admin.object_datastream_url(@object, @datastream.dsid)
57
+ redirect_to fcrepo_admin.object_datastream_url(@object, @datastream)
61
58
  end
62
59
 
63
60
  private
@@ -67,41 +64,6 @@ module FcrepoAdmin
67
64
  @datastream = @datastream.asOfDateTime(params[:asOfDateTime]) if params[:asOfDateTime]
68
65
  end
69
66
 
70
- protected
71
-
72
- # XXX Use Rubydora::Datastream#current_version? when it becomes available
73
- # https://github.com/projecthydra/rubydora/pull/25
74
- def ds_is_current_version?
75
- @current_version ||= (@datastream.new? || @datastream.dsVersionID == @datastream.versions.first.dsVersionID)
76
- end
77
-
78
- def ds_content_is_url?
79
- @datastream.external? || @datastream.redirect?
80
- end
81
-
82
- def ds_content_is_editable?
83
- !ds_content_is_url? && ds_content_is_text? && ds_editable_content_size_ok?
84
- end
85
-
86
- def ds_editable_content_size_ok?
87
- @datastream.dsSize <= MAX_EDITABLE_SIZE
88
- end
89
-
90
- def ds_content_is_uploadable?
91
- @datastream.managed? || @datastream.inline?
92
- end
93
-
94
- private
95
-
96
- def ds_content_is_text?
97
- mimetype_is_text(@datastream.mimeType)
98
- end
99
-
100
- def mimetype_is_text(mimetype)
101
- return false if mimetype.blank?
102
- mimetype.start_with?('text/') || EXTRA_TEXT_MIME_TYPES.include?(mimetype)
103
- end
104
-
105
67
  end
106
68
  end
107
69
 
@@ -13,7 +13,7 @@ module FcrepoAdmin
13
13
  end
14
14
 
15
15
  def audit_trail
16
- if object_is_auditable?
16
+ if @object.auditable?
17
17
  if params[:download] # TODO use format instead download param
18
18
  send_data @object.audit_trail.to_xml, :disposition => 'inline', :type => 'text/xml'
19
19
  end
@@ -0,0 +1,4 @@
1
+ <%= content_tag :div, :class => css_class do %>
2
+ <% if caution %><strong><%= t("fcrepo_admin.datastream.alerts.caution") %></strong><% end %>
3
+ <%= t("fcrepo_admin.datastream.alerts.#{alert}") %>
4
+ <% end %>
@@ -1,5 +1,5 @@
1
1
  <h4>Content</h4>
2
- <% if ds_content_is_text? %>
2
+ <% if datastream.content_is_text? %>
3
3
  <pre class="prettyprint pre-scrollable"><%= datastream.content %></pre>
4
4
  <% else %>
5
5
  <div class="alert">
@@ -3,7 +3,7 @@
3
3
  <tr>
4
4
  <th scope="col"><%= t("fcrepo_admin.datastreams.header.id") %></th>
5
5
  <% columns.each do |col| %>
6
- <th scope="col"><%= t("fcrepo_admin.datastream.profile.#{col}") %></th>
6
+ <th scope="col"><%= t("fcrepo_admin.datastream.profile.keys.#{col}") %></th>
7
7
  <% end %>
8
8
  </tr>
9
9
  </thead>
@@ -11,12 +11,12 @@
11
11
  <% object.datastreams.each do |dsid, ds| %>
12
12
  <tr>
13
13
  <td>
14
- <%= link_to dsid, fcrepo_admin.object_datastream_path(object, dsid) %>
14
+ <%= link_to dsid, fcrepo_admin.object_datastream_path(object, ds) %>
15
15
  </td>
16
16
  <% unless ds.new? %>
17
17
  <% columns.each do |col| %>
18
18
  <td>
19
- <%= format_ds_profile_value ds, col %>
19
+ <%= format_datastream_profile_value ds, col %>
20
20
  </td>
21
21
  <% end %>
22
22
  <% else %>
@@ -1,16 +1,15 @@
1
1
  <% unless datastream.new? %>
2
2
  <h4><%= t("fcrepo_admin.datastream.profile.title") %></h4>
3
-
4
3
  <table class="table table-bordered table-condensed table-striped" style="width: auto">
5
- <% datastream.profile.each_key do |key| %>
4
+ <% datastream_show_profile_keys.each do |key| %>
6
5
  <tr>
7
- <th scope="row"><%= t("fcrepo_admin.datastream.profile.#{key}") %></th>
8
- <td><%= format_ds_profile_value datastream, key %></td>
6
+ <th scope="row"><%= t("fcrepo_admin.datastream.profile.keys.#{key}") %></th>
7
+ <td><%= format_datastream_profile_value datastream, key %></td>
9
8
  </tr>
10
9
  <% end %>
11
10
  </table>
12
11
  <% else %>
13
12
  <div class="alert alert-info">
14
- This datastream has not been persisted to Fedora.
13
+ <%= t("fcrepo_admin.datastream.alerts.not_persisted") %>
15
14
  </div>
16
15
  <% end %>
@@ -1 +1,2 @@
1
- <%= render :partial => 'content', :locals => {:datastream => @datastream} %>
1
+ <h4><%= t("fcrepo_admin.datastream.content.title") %></h4>
2
+ <pre class="prettyprint pre-scrollable"><%= @datastream.content %></pre>
@@ -1,9 +1,10 @@
1
- <h4><%= t("fcrepo_admin.datastream.edit.header") %></h4>
2
- <%= form_tag fcrepo_admin.object_datastream_path(@datastream.pid, @datastream.dsid), :method => :put do %>
1
+ <h4><%= t("fcrepo_admin.datastream.edit.title") %></h4>
2
+ <%= datastream_alerts :system_managed, :not_versionable %>
3
+ <%= form_tag fcrepo_admin.object_datastream_path(@object, @datastream), :method => :put do %>
3
4
  <div>
4
5
  <%= text_area_tag "content", @datastream.content, :size => "50x20", :class => "field", :style => "width: 100%" %>
5
6
  </div>
6
7
  <p>
7
- <%= submit_tag t("fcrepo_admin.datastream.edit.submit"), :confirm => t("fcrepo_admin.datastream.edit.confirm"), :class => "btn btn-primary" %>
8
+ <%= submit_tag t("fcrepo_admin.datastream.edit.form.submit"), :confirm => t("fcrepo_admin.datastream.edit.form.confirm"), :class => "btn btn-primary" %>
8
9
  </p>
9
10
  <% end %>
@@ -9,16 +9,11 @@
9
9
  </tr>
10
10
  </thead>
11
11
  <tbody>
12
- <% @datastream.versions.each_with_index do |ds, i| %>
12
+ <% @datastream.versions.each do |dsVersion| %>
13
13
  <tr>
14
- <td><%=
15
- link_to_unless i == 0, ds.profile["dsVersionID"], "#{fcrepo_admin.object_datastream_path(@object, ds.dsid)}?asOfDateTime=#{ds.asOfDateTime}" do |name|
16
- "#{name} (current version)"
17
- end
18
- -%>
19
- </td>
14
+ <td><%= link_to_datastream_version dsVersion %></td>
20
15
  <% datastream_history_columns.each do |col| %>
21
- <td><%= ds.profile[col] %></td>
16
+ <td><%= dsVersion.profile[col] %></td>
22
17
  <% end %>
23
18
  <% end %>
24
19
  </tbody>
@@ -1 +1,4 @@
1
- <%= render :partial => 'datastreams', :locals => {:object => @object} %>
1
+ <h3><%= t("fcrepo_admin.datastreams.title") %></h3>
2
+
3
+ <%= render :partial => 'datastreams_list', :locals => {:object => @object, :columns => datastream_index_columns} %>
4
+
@@ -1,10 +1,11 @@
1
- <h4><%= t("fcrepo_admin.datastream.upload.header") %></h4>
2
- <%= form_tag fcrepo_admin.object_datastream_path(@datastream.pid, @datastream.dsid), :method => :put, :multipart => true do %>
1
+ <h4><%= t("fcrepo_admin.datastream.upload.title") %></h4>
2
+ <%= datastream_alerts :system_managed, :not_versionable %>
3
+ <%= form_tag fcrepo_admin.object_datastream_path(@object, @datastream), :method => :put, :multipart => true do %>
3
4
  <div>
4
5
  <%= file_field_tag "file" %>
5
6
  </div>
6
7
  <p>
7
- <%= submit_tag t("fcrepo_admin.datastream.upload.submit"), :confirm => t("fcrepo_admin.datastream.upload.confirm"), :class => "btn btn-primary" %>
8
+ <%= submit_tag t("fcrepo_admin.datastream.upload.form.submit"), :confirm => t("fcrepo_admin.datastream.upload.form.confirm"), :class => "btn btn-primary" %>
8
9
  </p>
9
10
  <% end %>
10
11
 
@@ -1,5 +1,5 @@
1
1
  <h4><%= t("fcrepo_admin.object.permissions.direct") %></h4>
2
- <% if object_has_permissions? %>
2
+ <% if object.has_permissions? %>
3
3
  <%= render :partial => 'permissions_list', :locals => {:permissions => object.permissions} %>
4
4
  <% else %>
5
5
  <div class="alert">
@@ -3,7 +3,7 @@
3
3
  <%= t("fcrepo_admin.object.permissions.no_permissions") %>
4
4
  </div>
5
5
  <% else %>
6
- <table class="table table-bordered table-condensed table-autowidth" style="width: auto">
6
+ <table class="table table-bordered table-condensed">
7
7
  <thead>
8
8
  <tr>
9
9
  <th scope="col"><%= t("fcrepo_admin.object.permissions.header.type") %></th>
@@ -1,5 +1,11 @@
1
1
  <h3><%= t("fcrepo_admin.object.permissions.title") %></h3>
2
- <%= render :partial => 'direct_permissions', :locals => {:object => @object} %>
3
- <%= render 'inherited_permissions' %>
2
+ <div class="row">
3
+ <div class="span4">
4
+ <%= render :partial => 'direct_permissions', :locals => {:object => @object} %>
5
+ </div>
6
+ <div class="span5">
7
+ <%= render 'inherited_permissions' %>
8
+ </div>
9
+ </div>
4
10
 
5
11
 
@@ -3,9 +3,9 @@
3
3
  <li class="nav-header">
4
4
  <%= header %>
5
5
  </li>
6
- <% items.each do |label, path| %>
6
+ <% items.each do |item| %>
7
7
  <li>
8
- <%= link_to_unless_current label, path %>
8
+ <%= item %>
9
9
  </li>
10
10
  <% end %>
11
11
  </ul>