fcrepo_admin 0.5.3 → 0.5.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/HISTORY.md +8 -3
- data/README.md +47 -1
- data/app/controllers/fcrepo_admin/associations_controller.rb +6 -6
- data/app/views/fcrepo_admin/associations/show.html.erb +7 -11
- data/app/views/fcrepo_admin/catalog/_document.html.erb +1 -4
- data/app/views/fcrepo_admin/datastreams/history.html.erb +2 -2
- data/app/views/fcrepo_admin/pagination/_links.html.erb +10 -0
- data/lib/fcrepo_admin/configurable.rb +6 -6
- data/lib/fcrepo_admin/helpers/associations_helper_behavior.rb +8 -3
- data/lib/fcrepo_admin/version.rb +1 -1
- metadata +3 -4
- data/app/views/fcrepo_admin/associations/_pagination.html.erb +0 -7
- data/app/views/fcrepo_admin/catalog/_document_header.html.erb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 846f4e519831674baf94f1db10f8c40196136d58
|
4
|
+
data.tar.gz: 643de27ff77646f00ab3fde0b5d73e3a79da4157
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c2f5c11df23df0a4fc79ee771e95fa1a3537189d7c6532cc32feb11554524815b191a484ff0bb5e5b252a7ae3e61c3fc4531553d7cdf8e0890e26cbdf24b6b06
|
7
|
+
data.tar.gz: 045a7e428c0932f767175815aea618456879a57dbd7453894bf3c6e60bca27b041bf0f0a7ecd83e600c5618a597a9ff338995a1c0f71c66c3432e6126188969a
|
data/HISTORY.md
CHANGED
@@ -1,18 +1,23 @@
|
|
1
|
+
#### 0.5.4 (2013-05-24)
|
2
|
+
|
3
|
+
* Changed config setting `associated_objects_sort_param` (v0.5.3) to `association_collection_query_sort_param`.
|
4
|
+
* Changed config setting `associated_objects_per_page` (v0.5.1) to `association_show_docs_per_page`.
|
5
|
+
|
1
6
|
#### 0.5.3 (2013-05-23)
|
2
7
|
|
3
|
-
* Added configuration setting `
|
8
|
+
* Added configuration setting `associated_objects_sort_param` to specify Solr query sort clause for retrieving associated objects. Default is `nil`, meaning that no sort clause is used.
|
4
9
|
|
5
10
|
#### 0.5.2 (2013-05-22)
|
6
11
|
|
7
12
|
* Fixed association show view pagination by working around Kaminari.
|
8
13
|
* Object XML (FOXML) accessible from object context nav.
|
9
|
-
* Catalog show
|
14
|
+
* Catalog show document actions displayed in object show view (summary).
|
10
15
|
|
11
16
|
#### 0.5.1 (2013-05-21)
|
12
17
|
|
13
18
|
* Association show view paginated (Fixes #18).
|
14
19
|
* Association show view uses blacklight document list rendering.
|
15
|
-
* Object show
|
20
|
+
* Object show action loads Solr document for object and show view incorporates Blacklight document show fields.
|
16
21
|
|
17
22
|
### 0.5.0 (2013-05-17)
|
18
23
|
|
data/README.md
CHANGED
@@ -65,10 +65,12 @@ instead of the catalog show view, create `app/helpers/blacklight_helper.rb` with
|
|
65
65
|
module BlacklightHelper
|
66
66
|
include Blacklight::BlacklightHelperBehavior # Default Blacklight behaviors
|
67
67
|
include FcrepoAdmin::Helpers::BlacklightHelperBehavior # fcrepo_admin overrides
|
68
|
-
# additional customizations here, if any
|
69
68
|
end
|
70
69
|
```
|
71
70
|
|
71
|
+
If you have an existing custom blacklight helper module, simply include `FcrepoAdmin::Helpers::BlacklightHelperBehavior`
|
72
|
+
*after* `Blacklight::BlacklightHelperBehavior`.
|
73
|
+
|
72
74
|
**Add audit trail support** (optional)
|
73
75
|
|
74
76
|
To enable access to the Fedora audit trail data through the fcrepo_admin UI, include the
|
@@ -178,6 +180,22 @@ class Ability
|
|
178
180
|
end
|
179
181
|
```
|
180
182
|
|
183
|
+
#### Associations
|
184
|
+
|
185
|
+
Due to issues with Rails partials and relative paths, in order to use Blacklight's default document index view behavior
|
186
|
+
on the associations show page and avoid missing template errors, fcrepo_admin provides a custom document partial at
|
187
|
+
`fcrepo_admin/catalog/document` that renders the partial at `catalog/document`, for which Blacklight provides a default.
|
188
|
+
If you have a custom document partial at a different path that you want to use for the document list on the associations
|
189
|
+
show page, you *may* be able to simply copy it to `app/views/fcrepo_admin/catalog/document`, or you might try putting
|
190
|
+
this content in that file:
|
191
|
+
|
192
|
+
```
|
193
|
+
<%= render :partial => 'path/to/my/document', :locals => { :document => document, :document_counter => document_counter } %>
|
194
|
+
```
|
195
|
+
|
196
|
+
replacing the partial path as appropriate. If anyone has a better solution or knows of a way to avoid providing the
|
197
|
+
document partial in fcrepo_admin admin, please submit a pull request.
|
198
|
+
|
181
199
|
#### Read-only mode
|
182
200
|
|
183
201
|
To suppress mutating behaviors (i.e, routes, nav items, etc.) regardless of user permissions,
|
@@ -192,6 +210,34 @@ FcrepoAdmin.read_only = true
|
|
192
210
|
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
|
193
211
|
for the keys and consult the Rails documentation on how to provide your own translations or alternate text values.
|
194
212
|
|
213
|
+
### Known Issues
|
214
|
+
|
215
|
+
#### Pagination
|
216
|
+
|
217
|
+
Kaminari as of version 0.14.1 does not support namespace-prefixed routes, which causes a routing error in Blacklight's
|
218
|
+
`paginate_rsolr_response` helper when called from within fcrepo_admin. In place of `paginate_rsolr_response` fcrepo_admin
|
219
|
+
use its own helper `safe_paginate_rsolr_response` which provides a basic set of pagination links without using Kaminari.
|
220
|
+
|
221
|
+
There is (as of 2013-05-24) an outstanding Kaminari pull request which resolves the routing issue (https://github.com/amatsuda/kaminari/pull/322).
|
222
|
+
You can implement this solution by adding to your application's Gemfile:
|
223
|
+
|
224
|
+
```
|
225
|
+
gem 'kaminari', github: 'harai/kaminari', branch: 'route_prefix_prototype'
|
226
|
+
```
|
227
|
+
|
228
|
+
and then override the `safe_paginate_rsolr_response` helper with something like:
|
229
|
+
|
230
|
+
```ruby
|
231
|
+
def safe_paginate_rsolr_response(response)
|
232
|
+
paginate_rsolr_response response, :outer_window => 2, :theme => 'blacklight', :route_set => fcrepo_admin
|
233
|
+
end
|
234
|
+
```
|
235
|
+
|
236
|
+
the key part being the `:route_set` option -- note that the value is not a string -- with gets passed through to Kaminari.
|
237
|
+
|
238
|
+
If Kaminari is suitably patched in the future, we will likely remove `safe_paginate_rsolr_response` in favor of
|
239
|
+
`paginate_rsolr_response`.
|
240
|
+
|
195
241
|
### Contributing
|
196
242
|
|
197
243
|
* Consider first posting to hydra-tech@googlegroups.com with a question or bug report, or submit an issue
|
@@ -15,7 +15,7 @@ module FcrepoAdmin
|
|
15
15
|
if @association.nil?
|
16
16
|
render :text => "Association not found", :status => 404
|
17
17
|
elsif @association.collection?
|
18
|
-
get_collection_from_solr
|
18
|
+
@response, @documents = get_collection_from_solr
|
19
19
|
else
|
20
20
|
# This shouldn't normally happen b/c UI links directly to target object view in this case
|
21
21
|
# but we'll handle it gracefully anyway.
|
@@ -31,8 +31,8 @@ module FcrepoAdmin
|
|
31
31
|
protected
|
32
32
|
|
33
33
|
def get_collection_from_solr
|
34
|
-
|
35
|
-
|
34
|
+
solr_response = solr_response_for_raw_result(get_collection_query_result)
|
35
|
+
[solr_response, solr_documents_for_response(solr_response)]
|
36
36
|
end
|
37
37
|
|
38
38
|
def get_collection_query_result
|
@@ -41,11 +41,11 @@ module FcrepoAdmin
|
|
41
41
|
|
42
42
|
def collection_query_args
|
43
43
|
page = params[:page].blank? ? 1 : params[:page].to_i
|
44
|
-
rows = FcrepoAdmin.
|
44
|
+
rows = FcrepoAdmin.association_show_docs_per_page
|
45
45
|
start = (page - 1) * rows
|
46
46
|
args = {raw: true, start: start, rows: rows}
|
47
|
-
if FcrepoAdmin.
|
48
|
-
args[:sort] = FcrepoAdmin.
|
47
|
+
if FcrepoAdmin.association_collection_query_sort_param
|
48
|
+
args[:sort] = FcrepoAdmin.association_collection_query_sort_param
|
49
49
|
end
|
50
50
|
apply_gated_discovery(args, nil) # add args to enforce Hydra access controls
|
51
51
|
args
|
@@ -1,17 +1,13 @@
|
|
1
1
|
<h3><%= t("fcrepo_admin.object.associations.title") %>: <%= @association.name %></h3>
|
2
2
|
|
3
3
|
<% if @response.total > 0 %>
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
<div class="pagination">
|
12
|
-
<%= render :partial => 'pagination', :locals => {:pagination_info => paginate_params(@response)} %>
|
13
|
-
</div>
|
14
|
-
<% end %>
|
4
|
+
<div class="pagination">
|
5
|
+
<%= render_pagination_info @response %>
|
6
|
+
</div>
|
7
|
+
<%= render_document_index @documents %>
|
8
|
+
<div class="pagination">
|
9
|
+
<%= safe_paginate_rsolr_response @response %>
|
10
|
+
</div>
|
15
11
|
<% else %>
|
16
12
|
<div class="alert">
|
17
13
|
No associated objects found.
|
@@ -1,4 +1 @@
|
|
1
|
-
|
2
|
-
<%= render :partial => 'catalog/document_header', :locals => { :document => document, :document_counter => document_counter } %>
|
3
|
-
<%= render :partial => 'catalog/index_default', :locals => {:document => document} %>
|
4
|
-
</div>
|
1
|
+
<%= render :partial => 'catalog/document', :locals => { :document => document, :document_counter => document_counter } %>
|
@@ -2,9 +2,9 @@
|
|
2
2
|
<table class="table table-condensed table-bordered" style="width: auto">
|
3
3
|
<thead>
|
4
4
|
<tr>
|
5
|
-
<th scope="col"><%= t("fcrepo_admin.datastream.profile.dsVersionID") %></th>
|
5
|
+
<th scope="col"><%= t("fcrepo_admin.datastream.profile.keys.dsVersionID") %></th>
|
6
6
|
<% datastream_history_columns.each do |col| %>
|
7
|
-
<th scope="col"><%= t("fcrepo_admin.datastream.profile.#{col}") %></th>
|
7
|
+
<th scope="col"><%= t("fcrepo_admin.datastream.profile.keys.#{col}") %></th>
|
8
8
|
<% end %>
|
9
9
|
</tr>
|
10
10
|
</thead>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<% pagination_info = paginate_params(response) %>
|
2
|
+
<div class="pagination">
|
3
|
+
<ul>
|
4
|
+
<li class="<% if pagination_info.current_page == 1 %>disabled<% end %>"><a href="?page=<%= pagination_info.current_page - 1 %>">«</a></li>
|
5
|
+
<% (1..pagination_info.num_pages).each do |n| %>
|
6
|
+
<li class="<% if n == pagination_info.current_page %>active<% end %>"><a href="?page=<%= n %>"><%= n %></a></li>
|
7
|
+
<% end %>
|
8
|
+
<li class="<% if pagination_info.current_page == pagination_info.num_pages %>disabled<% end %>"><a href="?page=<%= pagination_info.current_page + 1 %>">»</a></li>
|
9
|
+
</ul>
|
10
|
+
</div>
|
@@ -47,13 +47,13 @@ module FcrepoAdmin::Configurable
|
|
47
47
|
mattr_accessor :object_properties
|
48
48
|
self.object_properties = [:label, :state, :create_date, :modified_date, :owner_id]
|
49
49
|
|
50
|
-
# Number of
|
51
|
-
mattr_accessor :
|
52
|
-
self.
|
50
|
+
# Number of documents to display per page on associations show view
|
51
|
+
mattr_accessor :association_show_docs_per_page
|
52
|
+
self.association_show_docs_per_page = 10
|
53
53
|
|
54
|
-
# Solr sort param added to association collection
|
55
|
-
mattr_accessor :
|
56
|
-
self.
|
54
|
+
# Solr sort param added to query for association target documents when target is a collection
|
55
|
+
mattr_accessor :association_collection_query_sort_param
|
56
|
+
self.association_collection_query_sort_param = nil
|
57
57
|
end
|
58
58
|
|
59
59
|
end
|
@@ -4,7 +4,8 @@ module FcrepoAdmin::Helpers
|
|
4
4
|
def link_to_association_target(association)
|
5
5
|
target = @object.send(association.name)
|
6
6
|
if association.collection?
|
7
|
-
|
7
|
+
size = target.size
|
8
|
+
link_to_unless size == 0, "#{association.class_name} (#{size})", fcrepo_admin.object_association_path(@object, association.name) do |text|
|
8
9
|
text
|
9
10
|
end
|
10
11
|
else # not a collection
|
@@ -16,8 +17,12 @@ module FcrepoAdmin::Helpers
|
|
16
17
|
end
|
17
18
|
end
|
18
19
|
|
19
|
-
|
20
|
-
|
20
|
+
# We attempt to use Blacklight's #paginate_rsolr_response, but it causes a routing error
|
21
|
+
# b/c Kaminari as of version 0.14.1 cannot handle namespace-prefixed routes.
|
22
|
+
# The fallback rendering bypasses Kaminari, but doesn't look so good on a large page set.
|
23
|
+
# See https://github.com/amatsuda/kaminari/pull/322.
|
24
|
+
def safe_paginate_rsolr_response(response)
|
25
|
+
render :partial => "fcrepo_admin/pagination/links", :locals => {:response => response}
|
21
26
|
end
|
22
27
|
|
23
28
|
end
|
data/lib/fcrepo_admin/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fcrepo_admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Chandek-Stark
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2013-05-
|
14
|
+
date: 2013-05-24 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: hydra-head
|
@@ -250,11 +250,9 @@ files:
|
|
250
250
|
- app/mailers/.gitkeep
|
251
251
|
- app/models/.gitkeep
|
252
252
|
- app/views/fcrepo_admin/associations/_associations.html.erb
|
253
|
-
- app/views/fcrepo_admin/associations/_pagination.html.erb
|
254
253
|
- app/views/fcrepo_admin/associations/index.html.erb
|
255
254
|
- app/views/fcrepo_admin/associations/show.html.erb
|
256
255
|
- app/views/fcrepo_admin/catalog/_document.html.erb
|
257
|
-
- app/views/fcrepo_admin/catalog/_document_header.html.erb
|
258
256
|
- app/views/fcrepo_admin/datastreams/_active_fedora.html.erb
|
259
257
|
- app/views/fcrepo_admin/datastreams/_alert.html.erb
|
260
258
|
- app/views/fcrepo_admin/datastreams/_content.html.erb
|
@@ -277,6 +275,7 @@ files:
|
|
277
275
|
- app/views/fcrepo_admin/objects/audit_trail.html.erb
|
278
276
|
- app/views/fcrepo_admin/objects/permissions.html.erb
|
279
277
|
- app/views/fcrepo_admin/objects/show.html.erb
|
278
|
+
- app/views/fcrepo_admin/pagination/_links.html.erb
|
280
279
|
- app/views/fcrepo_admin/shared/_context_nav.html.erb
|
281
280
|
- app/views/layouts/fcrepo_admin/datastreams.html.erb
|
282
281
|
- app/views/layouts/fcrepo_admin/default.html.erb
|
@@ -1,7 +0,0 @@
|
|
1
|
-
<ul>
|
2
|
-
<li class="<% if pagination_info.current_page == 1 %>disabled<% end %>"><a href="?page=<%= pagination_info.current_page - 1 %>">«</a></li>
|
3
|
-
<% (1..pagination_info.num_pages).each do |n| %>
|
4
|
-
<li class="<% if n == pagination_info.current_page %>active<% end %>"><a href="?page=<%= n %>"><%= n %></a></li>
|
5
|
-
<% end %>
|
6
|
-
<li class="<% if pagination_info.current_page == pagination_info.num_pages %>disabled<% end %>"><a href="?page=<%= pagination_info.current_page + 1 %>">»</a></li>
|
7
|
-
</ul>
|
@@ -1,7 +0,0 @@
|
|
1
|
-
<% # header bar for doc items in index view -%>
|
2
|
-
<div class="documentHeader clearfix">
|
3
|
-
<% # main title container for doc partial view -%>
|
4
|
-
<h5 class="index_title"><%= t('blacklight.search.documents.counter', :counter => (document_counter + 1 + @response.params[:start].to_i)) %><%= link_to_document document, :label=>document_show_link_field(document), :counter => (document_counter + 1 + @response.params[:start].to_i) %></h5>
|
5
|
-
<% # bookmark functions for items/docs -%>
|
6
|
-
<%= render_index_doc_actions document, :wrapping_class => "documentFunctions span2" %>
|
7
|
-
</div>
|