fcrepo_admin 0.5.4 → 0.5.5.pre
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +5 -0
- data/HISTORY.md +6 -0
- data/README.md +11 -1
- data/Rakefile +3 -0
- data/app/controllers/fcrepo_admin/datastreams_controller.rb +0 -8
- data/app/controllers/fcrepo_admin/download_controller.rb +30 -0
- data/app/views/fcrepo_admin/objects/show.html.erb +2 -7
- data/config/routes.rb +1 -1
- data/fcrepo_admin.gemspec +1 -0
- data/lib/fcrepo_admin/decorators/active_fedora/base_decorator.rb +1 -2
- data/lib/fcrepo_admin/helpers/associations_helper_behavior.rb +1 -1
- data/lib/fcrepo_admin/helpers/blacklight_helper_behavior.rb +1 -1
- data/lib/fcrepo_admin/version.rb +1 -1
- data/spec/controllers/datastreams_controller_spec.rb +0 -4
- data/spec/controllers/download_controller_spec.rb +12 -0
- data/spec/controllers/objects_controller_spec.rb +19 -11
- data/spec/internal/Rakefile +2 -0
- data/{lib/tasks → tasks}/.gitkeep +0 -0
- data/{lib/tasks → tasks}/fcrepo_admin.rake +11 -0
- metadata +24 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c10e6b3628d01fdcc937e5c5c12e4704d2e06622
|
4
|
+
data.tar.gz: 554f2f1bad6bb56761a5968bc049a6b6c36d21bf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec451e2d153537b2a865ac90faa40cc6eacf3ad6cc339a4ee6e4c17201ce913fe5a36e6bc0b4a058cbb5c234462902a2c967b58c47bc4948265c41b17e302248
|
7
|
+
data.tar.gz: c9a962d12ad4f1b85ae5b8d7c3fe8fa8c58a7b45a6f873121fcbf92b44575b0f4e854f42b8fea7ca8bcc1e0c84597851f30e743d6a8af8785177d78895755620
|
data/.gitignore
CHANGED
data/.travis.yml
ADDED
data/HISTORY.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
#### 0.5.5 (2013-06-07)
|
2
|
+
|
3
|
+
* Upgraded Rubydora to version 1.6.5 (for Rubydora::DigitalObject#object_xml)
|
4
|
+
* Datastream downloads now routed through FcrpeoAdmin::DownloadController, which uses Hydra::Controller::DownloadBehavior.
|
5
|
+
* Added fcrepo_admin:ci rake task for CI build and hooked into Travis.
|
6
|
+
|
1
7
|
#### 0.5.4 (2013-05-24)
|
2
8
|
|
3
9
|
* Changed config setting `associated_objects_sort_param` (v0.5.3) to `association_collection_query_sort_param`.
|
data/README.md
CHANGED
@@ -4,6 +4,8 @@ A Rails engine providing an administrative interface to a Fedora Commons reposit
|
|
4
4
|
|
5
5
|
### Status
|
6
6
|
|
7
|
+
[![Build Status](https://travis-ci.org/projecthydra/fcrepo-admin.png?branch=master)](https://travis-ci.org/projecthydra/fcrepo-admin)
|
8
|
+
|
7
9
|
This project should be considered *experimental*. Versions earlier than 1.0 may change API and/or UI without notice
|
8
10
|
or regard for backward compatibility.
|
9
11
|
|
@@ -182,7 +184,7 @@ end
|
|
182
184
|
|
183
185
|
#### Associations
|
184
186
|
|
185
|
-
Due to
|
187
|
+
Due to the way Rails resolves relative paths to partials, in order to use Blacklight's default document index view behavior
|
186
188
|
on the associations show page and avoid missing template errors, fcrepo_admin provides a custom document partial at
|
187
189
|
`fcrepo_admin/catalog/document` that renders the partial at `catalog/document`, for which Blacklight provides a default.
|
188
190
|
If you have a custom document partial at a different path that you want to use for the document list on the associations
|
@@ -196,6 +198,14 @@ this content in that file:
|
|
196
198
|
replacing the partial path as appropriate. If anyone has a better solution or knows of a way to avoid providing the
|
197
199
|
document partial in fcrepo_admin admin, please submit a pull request.
|
198
200
|
|
201
|
+
#### Blacklight document actions
|
202
|
+
|
203
|
+
Blacklight's default show page for a document (i.e., Solr document for, in this case, an ActiveFedora object) includes a menu
|
204
|
+
of actions, including a bookmark function. In order to provide the most flexible interface with a focus on repository "administrative"
|
205
|
+
functions, we have not included this content in the default fcrepo_admin views. However, since the fcrepo_admin object show view
|
206
|
+
includes the Solr document in its context, you could re-add this functionality by overriding the default template at
|
207
|
+
`fcrepo_admin/objects/show.html.erb` or by overriding the catalog show partial which that views renders.
|
208
|
+
|
199
209
|
#### Read-only mode
|
200
210
|
|
201
211
|
To suppress mutating behaviors (i.e, routes, nav items, etc.) regardless of user permissions,
|
data/Rakefile
CHANGED
@@ -6,6 +6,9 @@ rescue LoadError
|
|
6
6
|
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
7
7
|
end
|
8
8
|
|
9
|
+
require 'jettywrapper'
|
10
|
+
|
11
|
+
ENGINE_PATH = File.dirname(__FILE__)
|
9
12
|
APP_RAKEFILE = File.expand_path("../spec/internal/Rakefile", __FILE__)
|
10
13
|
load 'rails/tasks/engine.rake'
|
11
14
|
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'mime/types'
|
2
|
-
|
3
1
|
module FcrepoAdmin
|
4
2
|
class DatastreamsController < ApplicationController
|
5
3
|
|
@@ -26,12 +24,6 @@ module FcrepoAdmin
|
|
26
24
|
def history
|
27
25
|
end
|
28
26
|
|
29
|
-
def download
|
30
|
-
# XXX Replace with Hydra download behavior?
|
31
|
-
mimetypes = MIME::Types[@datastream.mimeType]
|
32
|
-
send_data @datastream.content, :disposition => 'attachment', :type => @datastream.mimeType, :filename => "#{@datastream.pid.sub(/:/, '_')}_#{@datastream.dsid}.#{mimetypes.first.extensions.first}"
|
33
|
-
end
|
34
|
-
|
35
27
|
def edit
|
36
28
|
unless @datastream.content_is_editable?
|
37
29
|
render :text => "Datastream content is not editable", :status => 403
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'mime/types'
|
2
|
+
|
3
|
+
module FcrepoAdmin
|
4
|
+
class DownloadController < ApplicationController
|
5
|
+
|
6
|
+
include Hydra::Controller::DownloadBehavior
|
7
|
+
|
8
|
+
protected
|
9
|
+
|
10
|
+
def load_asset
|
11
|
+
@asset = ActiveFedora::Base.load_instance_from_solr(params[:object_id])
|
12
|
+
end
|
13
|
+
|
14
|
+
def datastream_to_show
|
15
|
+
asset.datastreams[params[:id]]
|
16
|
+
end
|
17
|
+
|
18
|
+
# Pattern: pid__dsid.ext (replacing colon in pid with underscore)
|
19
|
+
def datastream_name
|
20
|
+
"#{datastream.pid.sub(/:/, '_')}__#{datastream.dsid}.#{datastream_extension}"
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def datastream_extension
|
26
|
+
MIME::Types[datastream.mimeType].first.extensions.first rescue 'bin'
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
@@ -1,10 +1,5 @@
|
|
1
|
-
<div class="document
|
2
|
-
|
3
|
-
<%= render :partial => 'catalog/show_default', :locals => {:document => @document} %>
|
4
|
-
</div>
|
5
|
-
<div class="span2">
|
6
|
-
<%= render_show_doc_actions @document %>
|
7
|
-
</div>
|
1
|
+
<div class="document">
|
2
|
+
<%= render_document_partial @document, :show %>
|
8
3
|
</div>
|
9
4
|
<div class="row">
|
10
5
|
<div class="span5">
|
data/config/routes.rb
CHANGED
data/fcrepo_admin.gemspec
CHANGED
@@ -17,7 +17,7 @@ module FcrepoAdmin::Helpers
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
# We
|
20
|
+
# We attempted to use Blacklight's #paginate_rsolr_response, but it causes a routing error
|
21
21
|
# b/c Kaminari as of version 0.14.1 cannot handle namespace-prefixed routes.
|
22
22
|
# The fallback rendering bypasses Kaminari, but doesn't look so good on a large page set.
|
23
23
|
# See https://github.com/amatsuda/kaminari/pull/322.
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module FcrepoAdmin::Helpers
|
2
2
|
module BlacklightHelperBehavior
|
3
3
|
|
4
|
-
def link_to_document(doc, opts={:label=>nil, :counter => nil, :results_view => true})
|
4
|
+
def link_to_document(doc, opts = {:label => nil, :counter => nil, :results_view => true})
|
5
5
|
opts[:label] ||= blacklight_config.index.show_link.to_sym
|
6
6
|
label = render_document_index_label doc, opts
|
7
7
|
link_to label, fcrepo_admin.object_path(doc.id)
|
data/lib/fcrepo_admin/version.rb
CHANGED
@@ -17,10 +17,6 @@ describe FcrepoAdmin::DatastreamsController do
|
|
17
17
|
response.should render_template(:content)
|
18
18
|
end
|
19
19
|
end
|
20
|
-
context "#download" do
|
21
|
-
subject { get :download, :object_id => object, :id => object.descMetadata, :use_route => 'fcrepo_admin' }
|
22
|
-
it { should be_successful }
|
23
|
-
end
|
24
20
|
context "change methods" do
|
25
21
|
let(:user) { FactoryGirl.create(:user) }
|
26
22
|
before do
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe FcrepoAdmin::DownloadController do
|
4
|
+
let(:object) { FactoryGirl.create(:item) }
|
5
|
+
after { object.delete }
|
6
|
+
context "#show" do
|
7
|
+
it "should have the right content and headers" do
|
8
|
+
get :show, :object_id => object.pid, :id => object.descMetadata, :use_route => 'fcrepo_admin'
|
9
|
+
response.headers['Content-Disposition'].should == "inline; filename=\"#{object.pid.sub(/:/, '_')}__descMetadata.xml\""
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -1,22 +1,30 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe FcrepoAdmin::ObjectsController do
|
4
|
-
|
5
|
-
after { object.delete }
|
4
|
+
before { @object = FactoryGirl.create(:item) }
|
5
|
+
after { @object.delete }
|
6
6
|
context "#show" do
|
7
|
-
|
8
|
-
|
7
|
+
context "html format" do
|
8
|
+
subject { get :show, :id => @object, :use_route => 'fcrepo_admin' }
|
9
|
+
it { should render_template(:show) }
|
10
|
+
end
|
11
|
+
context "xml format" do
|
12
|
+
subject { get :show, :id => @object.pid, :format => 'xml', :use_route => 'fcrepo_admin' }
|
13
|
+
its(:body) { should eq(@object.object_xml) }
|
14
|
+
end
|
9
15
|
end
|
10
16
|
context "#audit_trail" do
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
+
context "html format" do
|
18
|
+
subject { get :audit_trail, :id => @object, :use_route => 'fcrepo_admin' }
|
19
|
+
it { should render_template(:audit_trail) }
|
20
|
+
end
|
21
|
+
context "xml format" do
|
22
|
+
subject { get :audit_trail, :id => @object.pid, :format => 'xml', :use_route => 'fcrepo_admin' }
|
23
|
+
its(:body) { should eq(@object.audit_trail.to_xml) }
|
24
|
+
end
|
17
25
|
end
|
18
26
|
context "#permissions" do
|
19
|
-
subject { get :permissions, :id => object, :use_route => 'fcrepo_admin' }
|
27
|
+
subject { get :permissions, :id => @object, :use_route => 'fcrepo_admin' }
|
20
28
|
it { should render_template(:permissions) }
|
21
29
|
end
|
22
30
|
end
|
data/spec/internal/Rakefile
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
3
3
|
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
4
4
|
|
5
|
+
require 'jettywrapper'
|
6
|
+
|
5
7
|
require File.expand_path('../config/application', __FILE__)
|
6
8
|
|
7
9
|
Dummy::Application.load_tasks
|
File without changes
|
@@ -1,4 +1,15 @@
|
|
1
1
|
namespace :fcrepo_admin do
|
2
|
+
desc "CI Build"
|
3
|
+
task :ci do
|
4
|
+
ENV['environment'] = "test"
|
5
|
+
Rake::Task["jetty:clean"].invoke
|
6
|
+
jetty_params = Jettywrapper.load_config
|
7
|
+
jetty_params[:startup_wait] = 60
|
8
|
+
jetty_params[:jetty_home] = File.expand_path(File.dirname(__FILE__) + '/../jetty')
|
9
|
+
Jettywrapper.wrap(jetty_params) do
|
10
|
+
Rake::Task['spec'].invoke
|
11
|
+
end
|
12
|
+
end
|
2
13
|
namespace :solr do
|
3
14
|
desc "Deletes everything from the Solr index"
|
4
15
|
task :clean => :environment do
|
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.5.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Chandek-Stark
|
@@ -11,8 +11,22 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2013-
|
14
|
+
date: 2013-06-07 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: rubydora
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 1.6.5
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.6.5
|
16
30
|
- !ruby/object:Gem::Dependency
|
17
31
|
name: hydra-head
|
18
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -236,6 +250,7 @@ extra_rdoc_files:
|
|
236
250
|
files:
|
237
251
|
- .gitignore
|
238
252
|
- .rspec
|
253
|
+
- .travis.yml
|
239
254
|
- Gemfile
|
240
255
|
- HISTORY.md
|
241
256
|
- LICENSE
|
@@ -243,6 +258,7 @@ files:
|
|
243
258
|
- Rakefile
|
244
259
|
- app/controllers/fcrepo_admin/associations_controller.rb
|
245
260
|
- app/controllers/fcrepo_admin/datastreams_controller.rb
|
261
|
+
- app/controllers/fcrepo_admin/download_controller.rb
|
246
262
|
- app/controllers/fcrepo_admin/objects_controller.rb
|
247
263
|
- app/helpers/fcrepo_admin/associations_helper.rb
|
248
264
|
- app/helpers/fcrepo_admin/datastreams_helper.rb
|
@@ -298,10 +314,9 @@ files:
|
|
298
314
|
- lib/fcrepo_admin/helpers/objects_helper_behavior.rb
|
299
315
|
- lib/fcrepo_admin/solr_document_extension.rb
|
300
316
|
- lib/fcrepo_admin/version.rb
|
301
|
-
- lib/tasks/.gitkeep
|
302
|
-
- lib/tasks/fcrepo_admin.rake
|
303
317
|
- spec/controllers/associations_controller_spec.rb
|
304
318
|
- spec/controllers/datastreams_controller_spec.rb
|
319
|
+
- spec/controllers/download_controller_spec.rb
|
305
320
|
- spec/controllers/objects_controller_spec.rb
|
306
321
|
- spec/factories/fcrepo_admin_factories.rb
|
307
322
|
- spec/factories/user_factories.rb
|
@@ -368,6 +383,8 @@ files:
|
|
368
383
|
- spec/internal/spec/fixtures/files/descMetadata.xml
|
369
384
|
- spec/internal/spec/fixtures/files/hydra.jpg
|
370
385
|
- spec/spec_helper.rb
|
386
|
+
- tasks/.gitkeep
|
387
|
+
- tasks/fcrepo_admin.rake
|
371
388
|
homepage: http://projecthydra.org
|
372
389
|
licenses:
|
373
390
|
- BSD Simplified
|
@@ -383,9 +400,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
383
400
|
version: 1.9.3
|
384
401
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
385
402
|
requirements:
|
386
|
-
- - '
|
403
|
+
- - '>'
|
387
404
|
- !ruby/object:Gem::Version
|
388
|
-
version:
|
405
|
+
version: 1.3.1
|
389
406
|
requirements: []
|
390
407
|
rubyforge_project:
|
391
408
|
rubygems_version: 2.0.3
|
@@ -395,6 +412,7 @@ summary: Hydra-based Fedora Commons repository admin tool.
|
|
395
412
|
test_files:
|
396
413
|
- spec/controllers/associations_controller_spec.rb
|
397
414
|
- spec/controllers/datastreams_controller_spec.rb
|
415
|
+
- spec/controllers/download_controller_spec.rb
|
398
416
|
- spec/controllers/objects_controller_spec.rb
|
399
417
|
- spec/factories/fcrepo_admin_factories.rb
|
400
418
|
- spec/factories/user_factories.rb
|