fcrepo_admin 0.1.1 → 0.2.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.
- data/HISTORY.rdoc +8 -0
- data/app/controllers/fcrepo_admin/datastreams_controller.rb +28 -6
- data/app/views/fcrepo_admin/datastreams/edit.html.erb +19 -0
- data/app/views/fcrepo_admin/datastreams/show.html.erb +20 -15
- data/config/locales/fcrepo_admin.en.yml +5 -0
- data/config/routes.rb +1 -1
- data/fcrepo_admin.gemspec +1 -1
- data/lib/fcrepo_admin.rb +1 -0
- data/lib/fcrepo_admin/controller_behavior.rb +25 -2
- data/lib/fcrepo_admin/datastream_ability.rb +17 -0
- data/lib/fcrepo_admin/version.rb +1 -1
- data/spec/controllers/datastreams_controller_spec.rb +54 -7
- data/spec/features/datastreams/edit.html.erb_spec.rb +34 -0
- data/spec/features/datastreams/show.html.erb_spec.rb +28 -21
- data/spec/internal/app/models/ability.rb +1 -0
- data/spec/internal/app/models/content_model.rb +1 -0
- data/spec/internal/spec/fixtures/files/descMetadata.xml +3 -0
- data/spec/spec_helper.rb +3 -0
- metadata +46 -5
- checksums.yaml +0 -15
data/HISTORY.rdoc
ADDED
@@ -2,28 +2,50 @@ require 'mime/types'
|
|
2
2
|
|
3
3
|
module FcrepoAdmin
|
4
4
|
class DatastreamsController < ApplicationController
|
5
|
-
|
5
|
+
|
6
6
|
include FcrepoAdmin::ControllerBehavior
|
7
|
+
# include CanCan::ControllerAdditions
|
7
8
|
|
8
9
|
TEXT_MIME_TYPES = ['application/xml', 'application/rdf+xml', 'application/json']
|
9
10
|
|
10
|
-
before_filter :load_and_authz_object
|
11
|
+
before_filter :load_and_authz_object, :only => :index
|
12
|
+
before_filter :load_and_authz_datastream, :except => :index
|
13
|
+
before_filter :inline_filter, :only => [:show, :edit]
|
11
14
|
|
12
15
|
def index
|
13
|
-
# @object loaded and authz'd by before_filter
|
14
16
|
end
|
15
17
|
|
16
18
|
def show
|
17
|
-
@datastream = @object.datastreams[params[:id]]
|
18
|
-
@inline = @datastream.mimeType.start_with?('text/') || TEXT_MIME_TYPES.include?(@datastream.mimeType)
|
19
19
|
end
|
20
20
|
|
21
21
|
def download
|
22
|
-
@datastream = @object.datastreams[params[:id]]
|
23
22
|
mimetypes = MIME::Types[@datastream.mimeType]
|
24
23
|
send_data @datastream.content, :disposition => 'attachment', :type => @datastream.mimeType, :filename => "#{@datastream.pid.sub(/:/, '_')}_#{@datastream.dsid}.#{mimetypes.first.extensions.first}"
|
25
24
|
end
|
26
25
|
|
26
|
+
def edit
|
27
|
+
end
|
28
|
+
|
29
|
+
def update
|
30
|
+
if params[:file]
|
31
|
+
File.open(params[:file], 'rb') do |f|
|
32
|
+
# FIXME read in chunks
|
33
|
+
@datastream.content = f.read
|
34
|
+
end
|
35
|
+
else
|
36
|
+
@datastream.content = params[:content]
|
37
|
+
end
|
38
|
+
@object.save
|
39
|
+
flash[:notice] = "Datastream content updated."
|
40
|
+
redirect_to fcrepo_admin.object_datastream_url(@object, @datastream.dsid)
|
41
|
+
end
|
42
|
+
|
43
|
+
protected
|
44
|
+
|
45
|
+
def inline_filter
|
46
|
+
@inline = @datastream.mimeType.start_with?('text/') || TEXT_MIME_TYPES.include?(@datastream.mimeType)
|
47
|
+
end
|
48
|
+
|
27
49
|
end
|
28
50
|
end
|
29
51
|
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<h1><%= @datastream.pid %></h1>
|
2
|
+
|
3
|
+
<h3><%= t("fcrepo_admin.datastream.title") %>: <%= @datastream.dsid %></h3>
|
4
|
+
|
5
|
+
<%= form_tag fcrepo_admin.object_datastream_path(@datastream.pid, @datastream.dsid), :method => :put, :multipart => true do %>
|
6
|
+
<% if @inline %>
|
7
|
+
<div>
|
8
|
+
<%= label_tag "content", t("fcrepo_admin.datastream.edit.content") %>
|
9
|
+
<%= text_area_tag "content", @datastream.content, :size => "50x20", :class => "field span9" %>
|
10
|
+
</div>
|
11
|
+
<% end %>
|
12
|
+
<div>
|
13
|
+
<%= label_tag "file", t("fcrepo_admin.datastream.edit.file") %>
|
14
|
+
<%= file_field_tag "file" %>
|
15
|
+
</div>
|
16
|
+
<p>
|
17
|
+
<%= submit_tag t("fcrepo_admin.datastream.edit.submit"), :confirm => t("fcrepo_admin.datastream.edit.confirm"), :class => "btn btn-primary" %>
|
18
|
+
</p>
|
19
|
+
<% end %>
|
@@ -1,22 +1,27 @@
|
|
1
1
|
<h1><%= @datastream.pid %></h1>
|
2
2
|
|
3
|
-
<
|
3
|
+
<ul class="pull-right nav nav-pills">
|
4
|
+
<% if can? :edit, @datastream %>
|
5
|
+
<li>
|
6
|
+
<%= link_to content_tag(:i, "", :class => "icon-pencil"), fcrepo_admin.edit_object_datastream_path(@datastream.pid, @datastream.dsid) %>
|
7
|
+
</li>
|
8
|
+
<% end %>
|
9
|
+
</ul>
|
4
10
|
|
5
|
-
<
|
11
|
+
<h3><%= t("fcrepo_admin.datastream.title") %>: <%= @datastream.dsid %></h3>
|
6
12
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
</div>
|
13
|
+
<div class="tabbable">
|
14
|
+
<ul class="nav nav-tabs">
|
15
|
+
<li class="active"><a href="#tab1" data-toggle="tab"><%= t("fcrepo_admin.datastream.tabs.content") %></a></li>
|
16
|
+
<li><a href="#tab2" data-toggle="tab"><%= t("fcrepo_admin.datastream.tabs.profile") %></a></li>
|
17
|
+
</ul>
|
18
|
+
<div class="tab-content">
|
19
|
+
<div class="tab-pane active" id="tab1">
|
20
|
+
<%= render :partial => 'content', :locals => {:datastream => @datastream, :inline => @inline} %>
|
21
|
+
</div>
|
22
|
+
<div class="tab-pane" id="tab2">
|
23
|
+
<%= render :partial => 'profile', :locals => {:datastream => @datastream} %>
|
19
24
|
</div>
|
20
25
|
</div>
|
21
|
-
|
22
26
|
</div>
|
27
|
+
|
@@ -52,4 +52,9 @@ en:
|
|
52
52
|
dsLocationType: 'Location Type'
|
53
53
|
dsChecksumType: 'Checksum Type'
|
54
54
|
dsChecksum: 'Checksum'
|
55
|
+
edit:
|
56
|
+
file: 'Upload File'
|
57
|
+
content: 'Replace Content'
|
58
|
+
confirm: "These changes are not validated and cannot be undone!"
|
59
|
+
submit: 'Update Content'
|
55
60
|
|
data/config/routes.rb
CHANGED
@@ -2,7 +2,7 @@ FcrepoAdmin::Engine.routes.draw do
|
|
2
2
|
|
3
3
|
scope :module => "fcrepo_admin" do
|
4
4
|
resources :objects, :only => :show do
|
5
|
-
resources :datastreams, :only => [:index, :show] do
|
5
|
+
resources :datastreams, :only => [:index, :show, :edit, :update] do
|
6
6
|
member do
|
7
7
|
get 'download'
|
8
8
|
end
|
data/fcrepo_admin.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.files = `git ls-files`.split("\n")
|
21
21
|
s.test_files = `git ls-files -- spec/*`.split("\n")
|
22
22
|
|
23
|
-
s.extra_rdoc_files = ["LICENSE", "README.rdoc"]
|
23
|
+
s.extra_rdoc_files = ["LICENSE", "README.rdoc", "HISTORY.rdoc"]
|
24
24
|
|
25
25
|
s.require_paths = ["lib"]
|
26
26
|
|
data/lib/fcrepo_admin.rb
CHANGED
@@ -2,9 +2,32 @@ module FcrepoAdmin
|
|
2
2
|
module ControllerBehavior
|
3
3
|
|
4
4
|
def load_and_authz_object
|
5
|
+
load_object
|
6
|
+
authorize_object
|
7
|
+
end
|
8
|
+
|
9
|
+
def load_object
|
5
10
|
@object = ActiveFedora::Base.find(params[:object_id], :cast => true)
|
6
|
-
|
7
|
-
|
11
|
+
end
|
12
|
+
|
13
|
+
def authorize_object
|
14
|
+
#authorize_resource :instance_name => 'object'
|
15
|
+
authorize! params[:action].to_sym, @object
|
16
|
+
end
|
17
|
+
|
18
|
+
def load_and_authz_datastream
|
19
|
+
load_datastream
|
20
|
+
authorize_datastream
|
21
|
+
end
|
22
|
+
|
23
|
+
def load_datastream
|
24
|
+
load_object
|
25
|
+
@datastream = @object.datastreams[params[:id]]
|
26
|
+
end
|
27
|
+
|
28
|
+
def authorize_datastream
|
29
|
+
authorize! params[:action].to_sym, @datastream
|
30
|
+
end
|
8
31
|
|
9
32
|
end
|
10
33
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'cancan'
|
2
|
+
|
3
|
+
module FcrepoAdmin
|
4
|
+
module DatastreamAbility
|
5
|
+
|
6
|
+
def custom_permissions
|
7
|
+
can :read, ActiveFedora::Datastream do |ds|
|
8
|
+
test_read(ds.pid)
|
9
|
+
end
|
10
|
+
|
11
|
+
can [:edit, :update, :destroy], ActiveFedora::Datastream do |ds|
|
12
|
+
test_edit(ds.pid)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
data/lib/fcrepo_admin/version.rb
CHANGED
@@ -5,17 +5,64 @@ shared_examples "a datastream profile view" do
|
|
5
5
|
end
|
6
6
|
|
7
7
|
describe FcrepoAdmin::DatastreamsController do
|
8
|
-
|
8
|
+
before do
|
9
|
+
@object = FactoryGirl.create(:content_model)
|
10
|
+
@dsid = "descMetadata"
|
11
|
+
end
|
12
|
+
after { @object.delete }
|
9
13
|
context "#show" do
|
10
|
-
|
11
|
-
|
12
|
-
context "profile information" do
|
13
|
-
subject { get :show, :object_id => object, :id => dsid, :use_route => 'fcrepo_admin' }
|
14
|
+
context "browser view" do
|
15
|
+
subject { get :show, :object_id => @object, :id => @dsid, :use_route => 'fcrepo_admin' }
|
14
16
|
it { should render_template(:show) }
|
15
17
|
end
|
16
|
-
context "download
|
17
|
-
subject { get :show, :object_id => object, :id => dsid, :download => 'true', :use_route => 'fcrepo_admin' }
|
18
|
+
context "download" do
|
19
|
+
subject { get :show, :object_id => @object, :id => @dsid, :download => 'true', :use_route => 'fcrepo_admin' }
|
18
20
|
it { should be_successful }
|
19
21
|
end
|
20
22
|
end
|
23
|
+
context "change methods" do
|
24
|
+
let(:user) { FactoryGirl.create(:user) }
|
25
|
+
before do
|
26
|
+
@object.permissions = [{type: 'user', name: user.email, access: 'edit'}]
|
27
|
+
@object.save
|
28
|
+
sign_in user
|
29
|
+
end
|
30
|
+
after { user.delete }
|
31
|
+
context "#edit" do
|
32
|
+
subject { get :edit, :object_id => @object, :id => @dsid, :use_route => 'fcrepo_admin' }
|
33
|
+
it { should render_template(:edit) }
|
34
|
+
end
|
35
|
+
context "#update" do
|
36
|
+
context "content" do
|
37
|
+
before do
|
38
|
+
@content = <<EOS
|
39
|
+
<dc xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
40
|
+
<dcterms:title>Altered Test Component</dcterms:title>
|
41
|
+
</dc>
|
42
|
+
EOS
|
43
|
+
put :update, :object_id => @object, :id => @dsid, :content => @content, :use_route => 'fcrepo_admin'
|
44
|
+
@object.reload
|
45
|
+
end
|
46
|
+
it "should update the datastream content and redirect to the show page" do
|
47
|
+
@object.title.should == "Altered Test Component"
|
48
|
+
# TODO get this to work
|
49
|
+
# response.should redirect_to :action => :show, :object_id => @object, :id => @dsid, :use_route => 'fcrepo_admin'
|
50
|
+
response.response_code.should == 302
|
51
|
+
end
|
52
|
+
end
|
53
|
+
context "file" do
|
54
|
+
before do
|
55
|
+
@file = fixture_file_upload('/files/descMetadata.xml', 'text/xml')
|
56
|
+
put :update, :object_id => @object, :id => @dsid, :file => @file, :use_route => 'fcrepo_admin'
|
57
|
+
@object.reload
|
58
|
+
end
|
59
|
+
it "should update the datastream content and redirect to the show page" do
|
60
|
+
@object.title.should == "Altered Test Component"
|
61
|
+
# TODO get this to work
|
62
|
+
# response.should redirect_to :action => :show, :object_id => @object, :id => @dsid, :use_route => 'fcrepo_admin'
|
63
|
+
response.response_code.should == 302
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
21
68
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.configure do |c|
|
4
|
+
Warden.test_mode!
|
5
|
+
end
|
6
|
+
|
7
|
+
describe "datastreams/edit.html.erb" do
|
8
|
+
let(:object) { FactoryGirl.create(:content_model) }
|
9
|
+
let(:user) { FactoryGirl.create(:user) }
|
10
|
+
before {
|
11
|
+
object.permissions = [{type: 'user', name: user.email, access: 'edit'}]
|
12
|
+
object.save
|
13
|
+
login_as(user, :scope => :user, :run_callbacks => false)
|
14
|
+
visit fcrepo_admin.edit_object_datastream_path(object, "descMetadata")
|
15
|
+
}
|
16
|
+
after do
|
17
|
+
user.delete
|
18
|
+
object.delete
|
19
|
+
Warden.test_reset!
|
20
|
+
end
|
21
|
+
it "should provide an upload form to replace content" do
|
22
|
+
|
23
|
+
end
|
24
|
+
it "should provide a text field to edit/replace text content" do
|
25
|
+
fill_in "content", :with => <<EOS
|
26
|
+
<dc xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
27
|
+
<dcterms:title>Altered Test Component</dcterms:title>
|
28
|
+
</dc>
|
29
|
+
EOS
|
30
|
+
click_button I18n.t("fcrepo_admin.datastream.edit.submit")
|
31
|
+
object.reload
|
32
|
+
object.title.should == "Altered Test Component"
|
33
|
+
end
|
34
|
+
end
|
@@ -1,31 +1,38 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
|
3
|
+
RSpec.configure do |c|
|
4
|
+
Warden.test_mode!
|
5
|
+
end
|
6
|
+
|
7
|
+
describe "datastreams/show.html.erb" do
|
8
|
+
let!(:object) { FactoryGirl.create(:content_model) }
|
9
|
+
let(:dsid) { "descMetadata" }
|
10
|
+
before { visit fcrepo_admin.object_datastream_path(object, dsid) }
|
11
|
+
after { object.delete }
|
4
12
|
it "should display all attributes of the datastream profile" do
|
5
13
|
object.datastreams[dsid].profile.each do |key, value|
|
6
|
-
|
7
|
-
|
14
|
+
# TODO use paths
|
15
|
+
page.should have_content(I18n.t("fcrepo_admin.datastream.profile.#{key}"))
|
16
|
+
page.should have_content(value)
|
8
17
|
end
|
9
18
|
end
|
10
19
|
it "should have a link to download the datastream content" do
|
11
|
-
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
shared_examples "an object having datastream show pages" do
|
16
|
-
it_behaves_like "a datastream show page" do
|
17
|
-
let(:dsid) { "DC" }
|
18
|
-
end
|
19
|
-
it_behaves_like "a datastream show page" do
|
20
|
-
let(:dsid) { "RELS-EXT" }
|
20
|
+
page.should have_link(I18n.t("fcrepo_admin.datastream.download"), :href => fcrepo_admin.download_object_datastream_path(object, dsid))
|
21
21
|
end
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
22
|
+
context "user can edit" do
|
23
|
+
let(:user) { FactoryGirl.create(:user) }
|
24
|
+
before do
|
25
|
+
object.permissions = [{type: 'user', name: user.email, access: 'edit'}]
|
26
|
+
object.save
|
27
|
+
login_as(user, :scope => :user, :run_callbacks => false)
|
28
|
+
visit fcrepo_admin.object_datastream_path(object, dsid)
|
29
|
+
end
|
30
|
+
after do
|
31
|
+
user.delete
|
32
|
+
Warden.test_reset!
|
33
|
+
end
|
34
|
+
it "should have a link to the edit page" do
|
35
|
+
page.should have_link("", :href => fcrepo_admin.edit_object_datastream_path(object, dsid))
|
36
|
+
end
|
30
37
|
end
|
31
38
|
end
|
@@ -2,6 +2,7 @@ class ContentModel < ActiveFedora::Base
|
|
2
2
|
|
3
3
|
has_metadata :name => "descMetadata", :type => ActiveFedora::QualifiedDublinCoreDatastream
|
4
4
|
has_metadata :name => "rightsMetadata", :type => Hydra::Datastream::RightsMetadata
|
5
|
+
has_file_datastream :name => "content", :type => ActiveFedora::Datastream
|
5
6
|
|
6
7
|
delegate :title, :to => "descMetadata", :unique => true
|
7
8
|
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fcrepo_admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- David Chandek-Stark
|
@@ -11,11 +12,12 @@ authors:
|
|
11
12
|
autorequire:
|
12
13
|
bindir: bin
|
13
14
|
cert_chain: []
|
14
|
-
date: 2013-04-
|
15
|
+
date: 2013-04-12 00:00:00.000000000 Z
|
15
16
|
dependencies:
|
16
17
|
- !ruby/object:Gem::Dependency
|
17
18
|
name: hydra-head
|
18
19
|
requirement: !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
19
21
|
requirements:
|
20
22
|
- - '='
|
21
23
|
- !ruby/object:Gem::Version
|
@@ -23,6 +25,7 @@ dependencies:
|
|
23
25
|
type: :runtime
|
24
26
|
prerelease: false
|
25
27
|
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
26
29
|
requirements:
|
27
30
|
- - '='
|
28
31
|
- !ruby/object:Gem::Version
|
@@ -30,6 +33,7 @@ dependencies:
|
|
30
33
|
- !ruby/object:Gem::Dependency
|
31
34
|
name: blacklight
|
32
35
|
requirement: !ruby/object:Gem::Requirement
|
36
|
+
none: false
|
33
37
|
requirements:
|
34
38
|
- - ! '>='
|
35
39
|
- !ruby/object:Gem::Version
|
@@ -37,6 +41,7 @@ dependencies:
|
|
37
41
|
type: :runtime
|
38
42
|
prerelease: false
|
39
43
|
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
none: false
|
40
45
|
requirements:
|
41
46
|
- - ! '>='
|
42
47
|
- !ruby/object:Gem::Version
|
@@ -44,6 +49,7 @@ dependencies:
|
|
44
49
|
- !ruby/object:Gem::Dependency
|
45
50
|
name: rails
|
46
51
|
requirement: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
47
53
|
requirements:
|
48
54
|
- - ~>
|
49
55
|
- !ruby/object:Gem::Version
|
@@ -51,6 +57,7 @@ dependencies:
|
|
51
57
|
type: :runtime
|
52
58
|
prerelease: false
|
53
59
|
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
54
61
|
requirements:
|
55
62
|
- - ~>
|
56
63
|
- !ruby/object:Gem::Version
|
@@ -58,6 +65,7 @@ dependencies:
|
|
58
65
|
- !ruby/object:Gem::Dependency
|
59
66
|
name: mime-types
|
60
67
|
requirement: !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
61
69
|
requirements:
|
62
70
|
- - ~>
|
63
71
|
- !ruby/object:Gem::Version
|
@@ -65,6 +73,7 @@ dependencies:
|
|
65
73
|
type: :runtime
|
66
74
|
prerelease: false
|
67
75
|
version_requirements: !ruby/object:Gem::Requirement
|
76
|
+
none: false
|
68
77
|
requirements:
|
69
78
|
- - ~>
|
70
79
|
- !ruby/object:Gem::Version
|
@@ -72,6 +81,7 @@ dependencies:
|
|
72
81
|
- !ruby/object:Gem::Dependency
|
73
82
|
name: devise
|
74
83
|
requirement: !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
75
85
|
requirements:
|
76
86
|
- - ! '>='
|
77
87
|
- !ruby/object:Gem::Version
|
@@ -79,6 +89,7 @@ dependencies:
|
|
79
89
|
type: :development
|
80
90
|
prerelease: false
|
81
91
|
version_requirements: !ruby/object:Gem::Requirement
|
92
|
+
none: false
|
82
93
|
requirements:
|
83
94
|
- - ! '>='
|
84
95
|
- !ruby/object:Gem::Version
|
@@ -86,6 +97,7 @@ dependencies:
|
|
86
97
|
- !ruby/object:Gem::Dependency
|
87
98
|
name: rspec
|
88
99
|
requirement: !ruby/object:Gem::Requirement
|
100
|
+
none: false
|
89
101
|
requirements:
|
90
102
|
- - ! '>='
|
91
103
|
- !ruby/object:Gem::Version
|
@@ -93,6 +105,7 @@ dependencies:
|
|
93
105
|
type: :development
|
94
106
|
prerelease: false
|
95
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
none: false
|
96
109
|
requirements:
|
97
110
|
- - ! '>='
|
98
111
|
- !ruby/object:Gem::Version
|
@@ -100,6 +113,7 @@ dependencies:
|
|
100
113
|
- !ruby/object:Gem::Dependency
|
101
114
|
name: rspec-rails
|
102
115
|
requirement: !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
103
117
|
requirements:
|
104
118
|
- - ! '>='
|
105
119
|
- !ruby/object:Gem::Version
|
@@ -107,6 +121,7 @@ dependencies:
|
|
107
121
|
type: :development
|
108
122
|
prerelease: false
|
109
123
|
version_requirements: !ruby/object:Gem::Requirement
|
124
|
+
none: false
|
110
125
|
requirements:
|
111
126
|
- - ! '>='
|
112
127
|
- !ruby/object:Gem::Version
|
@@ -114,6 +129,7 @@ dependencies:
|
|
114
129
|
- !ruby/object:Gem::Dependency
|
115
130
|
name: capybara
|
116
131
|
requirement: !ruby/object:Gem::Requirement
|
132
|
+
none: false
|
117
133
|
requirements:
|
118
134
|
- - ! '>='
|
119
135
|
- !ruby/object:Gem::Version
|
@@ -121,6 +137,7 @@ dependencies:
|
|
121
137
|
type: :development
|
122
138
|
prerelease: false
|
123
139
|
version_requirements: !ruby/object:Gem::Requirement
|
140
|
+
none: false
|
124
141
|
requirements:
|
125
142
|
- - ! '>='
|
126
143
|
- !ruby/object:Gem::Version
|
@@ -128,6 +145,7 @@ dependencies:
|
|
128
145
|
- !ruby/object:Gem::Dependency
|
129
146
|
name: sqlite3
|
130
147
|
requirement: !ruby/object:Gem::Requirement
|
148
|
+
none: false
|
131
149
|
requirements:
|
132
150
|
- - ! '>='
|
133
151
|
- !ruby/object:Gem::Version
|
@@ -135,6 +153,7 @@ dependencies:
|
|
135
153
|
type: :development
|
136
154
|
prerelease: false
|
137
155
|
version_requirements: !ruby/object:Gem::Requirement
|
156
|
+
none: false
|
138
157
|
requirements:
|
139
158
|
- - ! '>='
|
140
159
|
- !ruby/object:Gem::Version
|
@@ -142,6 +161,7 @@ dependencies:
|
|
142
161
|
- !ruby/object:Gem::Dependency
|
143
162
|
name: factory_girl_rails
|
144
163
|
requirement: !ruby/object:Gem::Requirement
|
164
|
+
none: false
|
145
165
|
requirements:
|
146
166
|
- - ! '>='
|
147
167
|
- !ruby/object:Gem::Version
|
@@ -149,6 +169,7 @@ dependencies:
|
|
149
169
|
type: :development
|
150
170
|
prerelease: false
|
151
171
|
version_requirements: !ruby/object:Gem::Requirement
|
172
|
+
none: false
|
152
173
|
requirements:
|
153
174
|
- - ! '>='
|
154
175
|
- !ruby/object:Gem::Version
|
@@ -156,6 +177,7 @@ dependencies:
|
|
156
177
|
- !ruby/object:Gem::Dependency
|
157
178
|
name: jettywrapper
|
158
179
|
requirement: !ruby/object:Gem::Requirement
|
180
|
+
none: false
|
159
181
|
requirements:
|
160
182
|
- - ! '>='
|
161
183
|
- !ruby/object:Gem::Version
|
@@ -163,6 +185,7 @@ dependencies:
|
|
163
185
|
type: :development
|
164
186
|
prerelease: false
|
165
187
|
version_requirements: !ruby/object:Gem::Requirement
|
188
|
+
none: false
|
166
189
|
requirements:
|
167
190
|
- - ! '>='
|
168
191
|
- !ruby/object:Gem::Version
|
@@ -170,6 +193,7 @@ dependencies:
|
|
170
193
|
- !ruby/object:Gem::Dependency
|
171
194
|
name: jquery-rails
|
172
195
|
requirement: !ruby/object:Gem::Requirement
|
196
|
+
none: false
|
173
197
|
requirements:
|
174
198
|
- - ! '>='
|
175
199
|
- !ruby/object:Gem::Version
|
@@ -177,6 +201,7 @@ dependencies:
|
|
177
201
|
type: :development
|
178
202
|
prerelease: false
|
179
203
|
version_requirements: !ruby/object:Gem::Requirement
|
204
|
+
none: false
|
180
205
|
requirements:
|
181
206
|
- - ! '>='
|
182
207
|
- !ruby/object:Gem::Version
|
@@ -184,6 +209,7 @@ dependencies:
|
|
184
209
|
- !ruby/object:Gem::Dependency
|
185
210
|
name: sass-rails
|
186
211
|
requirement: !ruby/object:Gem::Requirement
|
212
|
+
none: false
|
187
213
|
requirements:
|
188
214
|
- - ! '>='
|
189
215
|
- !ruby/object:Gem::Version
|
@@ -191,6 +217,7 @@ dependencies:
|
|
191
217
|
type: :development
|
192
218
|
prerelease: false
|
193
219
|
version_requirements: !ruby/object:Gem::Requirement
|
220
|
+
none: false
|
194
221
|
requirements:
|
195
222
|
- - ! '>='
|
196
223
|
- !ruby/object:Gem::Version
|
@@ -198,6 +225,7 @@ dependencies:
|
|
198
225
|
- !ruby/object:Gem::Dependency
|
199
226
|
name: bootstrap-sass
|
200
227
|
requirement: !ruby/object:Gem::Requirement
|
228
|
+
none: false
|
201
229
|
requirements:
|
202
230
|
- - ! '>='
|
203
231
|
- !ruby/object:Gem::Version
|
@@ -205,6 +233,7 @@ dependencies:
|
|
205
233
|
type: :development
|
206
234
|
prerelease: false
|
207
235
|
version_requirements: !ruby/object:Gem::Requirement
|
236
|
+
none: false
|
208
237
|
requirements:
|
209
238
|
- - ! '>='
|
210
239
|
- !ruby/object:Gem::Version
|
@@ -218,10 +247,12 @@ extensions: []
|
|
218
247
|
extra_rdoc_files:
|
219
248
|
- LICENSE
|
220
249
|
- README.rdoc
|
250
|
+
- HISTORY.rdoc
|
221
251
|
files:
|
222
252
|
- .gitignore
|
223
253
|
- .rspec
|
224
254
|
- Gemfile
|
255
|
+
- HISTORY.rdoc
|
225
256
|
- LICENSE
|
226
257
|
- README.rdoc
|
227
258
|
- Rakefile
|
@@ -237,6 +268,7 @@ files:
|
|
237
268
|
- app/views/fcrepo_admin/datastreams/_content.html.erb
|
238
269
|
- app/views/fcrepo_admin/datastreams/_datastreams.html
|
239
270
|
- app/views/fcrepo_admin/datastreams/_profile.html.erb
|
271
|
+
- app/views/fcrepo_admin/datastreams/edit.html.erb
|
240
272
|
- app/views/fcrepo_admin/datastreams/index.html.erb
|
241
273
|
- app/views/fcrepo_admin/datastreams/show.html.erb
|
242
274
|
- app/views/fcrepo_admin/objects/_more_info.html.erb
|
@@ -250,6 +282,7 @@ files:
|
|
250
282
|
- lib/assets/stylesheets/fcrepo_admin/fcrepo_admin.css
|
251
283
|
- lib/fcrepo_admin.rb
|
252
284
|
- lib/fcrepo_admin/controller_behavior.rb
|
285
|
+
- lib/fcrepo_admin/datastream_ability.rb
|
253
286
|
- lib/fcrepo_admin/engine.rb
|
254
287
|
- lib/fcrepo_admin/solr_document_extension.rb
|
255
288
|
- lib/fcrepo_admin/version.rb
|
@@ -262,6 +295,7 @@ files:
|
|
262
295
|
- spec/factories/user_factories.rb
|
263
296
|
- spec/features/audit_trail/index.html.erb_spec.rb
|
264
297
|
- spec/features/catalog/show.html.erb_spec.rb
|
298
|
+
- spec/features/datastreams/edit.html.erb_spec.rb
|
265
299
|
- spec/features/datastreams/show.html.erb_spec.rb
|
266
300
|
- spec/features/objects/show.html.erb_spec.rb
|
267
301
|
- spec/fixtures/auditable.foxml.xml
|
@@ -312,30 +346,35 @@ files:
|
|
312
346
|
- spec/internal/public/500.html
|
313
347
|
- spec/internal/public/favicon.ico
|
314
348
|
- spec/internal/script/rails
|
349
|
+
- spec/internal/spec/fixtures/files/descMetadata.xml
|
315
350
|
- spec/spec_helper.rb
|
316
351
|
homepage: http://projecthydra.org
|
317
352
|
licenses:
|
318
353
|
- BSD Simplified
|
319
|
-
metadata: {}
|
320
354
|
post_install_message:
|
321
355
|
rdoc_options: []
|
322
356
|
require_paths:
|
323
357
|
- lib
|
324
358
|
required_ruby_version: !ruby/object:Gem::Requirement
|
359
|
+
none: false
|
325
360
|
requirements:
|
326
361
|
- - ! '>='
|
327
362
|
- !ruby/object:Gem::Version
|
328
363
|
version: 1.9.3
|
329
364
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
365
|
+
none: false
|
330
366
|
requirements:
|
331
367
|
- - ! '>='
|
332
368
|
- !ruby/object:Gem::Version
|
333
369
|
version: '0'
|
370
|
+
segments:
|
371
|
+
- 0
|
372
|
+
hash: -3734139466657518267
|
334
373
|
requirements: []
|
335
374
|
rubyforge_project:
|
336
|
-
rubygems_version:
|
375
|
+
rubygems_version: 1.8.25
|
337
376
|
signing_key:
|
338
|
-
specification_version:
|
377
|
+
specification_version: 3
|
339
378
|
summary: Hydra-based Fedora Commons repository admin tool.
|
340
379
|
test_files:
|
341
380
|
- spec/controllers/audit_trail_controller_spec.rb
|
@@ -344,6 +383,7 @@ test_files:
|
|
344
383
|
- spec/factories/user_factories.rb
|
345
384
|
- spec/features/audit_trail/index.html.erb_spec.rb
|
346
385
|
- spec/features/catalog/show.html.erb_spec.rb
|
386
|
+
- spec/features/datastreams/edit.html.erb_spec.rb
|
347
387
|
- spec/features/datastreams/show.html.erb_spec.rb
|
348
388
|
- spec/features/objects/show.html.erb_spec.rb
|
349
389
|
- spec/fixtures/auditable.foxml.xml
|
@@ -394,4 +434,5 @@ test_files:
|
|
394
434
|
- spec/internal/public/500.html
|
395
435
|
- spec/internal/public/favicon.ico
|
396
436
|
- spec/internal/script/rails
|
437
|
+
- spec/internal/spec/fixtures/files/descMetadata.xml
|
397
438
|
- spec/spec_helper.rb
|
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
NGU5YjVmYjc4ZGQ5NDJhZTM1ZTM0MDYyZmU4NzAwMDQ2YWViMjg3Mw==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
MGE2ZTE3N2VhZmI3ZTBkOTc1ZjQzNGVkZWI0YzdjYjY0MTM3NjVjOA==
|
7
|
-
!binary "U0hBNTEy":
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
NTg5MDI1YTAzZDIxYTZlZGM1YjM4Yjg2NWJjYjZiM2I5ZmI0ZDQ0ZTllMGUw
|
10
|
-
YzM4ZTJlNDRjMDA2YTIwMjExZTIyZWEyMzIzMDk0NjU2ZmQ2MjkzMzkxMTc5
|
11
|
-
YzVhNWRmMmJmODgwYzI5N2I1Zjg4YWU2ZGNhN2UxM2IzNWE1Y2M=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
OGEyMWZlNzliZTY2NTczMWI1NTgwYjc0ZGQxZmJiMDU2Yzc0ZWJmYWExMTFk
|
14
|
-
YTBlYWE4Yjc3YjQ0YzBmNjI0Zjg5OWE1ZDdlZDlhOGVhZjUzOGEyMDRiZjJi
|
15
|
-
MDRhOWEzYTkzZDA2Y2Q1OWYxMjA3OTVmNWM5YjlhZWRmYzRmY2E=
|