fcrepo_admin 0.5.3 → 0.5.4
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.
- 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>
|