fcrepo_admin 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/.gitignore +9 -0
- data/.rspec +1 -0
- data/Gemfile +5 -0
- data/LICENSE +27 -0
- data/README.rdoc +75 -0
- data/Rakefile +22 -0
- data/app/controllers/fcrepo_admin/audit_trail_controller.rb +17 -0
- data/app/controllers/fcrepo_admin/datastreams_controller.rb +29 -0
- data/app/controllers/fcrepo_admin/objects_controller.rb +14 -0
- data/app/helpers/application_helper.rb +2 -0
- data/app/mailers/.gitkeep +0 -0
- data/app/models/.gitkeep +0 -0
- data/app/views/fcrepo_admin/audit_trail/index.html.erb +34 -0
- data/app/views/fcrepo_admin/catalog/_datastreams.html.erb +19 -0
- data/app/views/fcrepo_admin/catalog/_show.html.erb +2 -0
- data/app/views/fcrepo_admin/datastreams/_content.html.erb +12 -0
- data/app/views/fcrepo_admin/datastreams/_datastreams.html +18 -0
- data/app/views/fcrepo_admin/datastreams/_profile.html.erb +10 -0
- data/app/views/fcrepo_admin/datastreams/index.html.erb +4 -0
- data/app/views/fcrepo_admin/datastreams/show.html.erb +22 -0
- data/app/views/fcrepo_admin/objects/_more_info.html.erb +6 -0
- data/app/views/fcrepo_admin/objects/_properties.html.erb +8 -0
- data/app/views/fcrepo_admin/objects/show.html.erb +18 -0
- data/config/locales/fcrepo_admin.en.yml +55 -0
- data/config/routes.rb +14 -0
- data/doc/README_FOR_APP +2 -0
- data/fcrepo_admin.gemspec +42 -0
- data/lib/assets/.gitkeep +0 -0
- data/lib/assets/stylesheets/fcrepo_admin/fcrepo_admin.css +4 -0
- data/lib/fcrepo_admin.rb +8 -0
- data/lib/fcrepo_admin/controller_behavior.rb +10 -0
- data/lib/fcrepo_admin/engine.rb +12 -0
- data/lib/fcrepo_admin/solr_document_extension.rb +49 -0
- data/lib/fcrepo_admin/version.rb +3 -0
- data/lib/tasks/.gitkeep +0 -0
- data/lib/tasks/fcrepo_admin.rake +24 -0
- data/script/rails +6 -0
- data/spec/controllers/audit_trail_controller_spec.rb +20 -0
- data/spec/controllers/datastreams_controller_spec.rb +21 -0
- data/spec/factories/fcrepo_admin_factories.rb +20 -0
- data/spec/factories/user_factories.rb +8 -0
- data/spec/features/audit_trail/index.html.erb_spec.rb +11 -0
- data/spec/features/catalog/show.html.erb_spec.rb +21 -0
- data/spec/features/datastreams/show.html.erb_spec.rb +31 -0
- data/spec/features/objects/show.html.erb_spec.rb +29 -0
- data/spec/fixtures/auditable.foxml.xml +110 -0
- data/spec/internal/README.rdoc +261 -0
- data/spec/internal/Rakefile +7 -0
- data/spec/internal/app/assets/javascripts/application.js +16 -0
- data/spec/internal/app/assets/stylesheets/application.css +13 -0
- data/spec/internal/app/assets/stylesheets/blacklight.css.scss +3 -0
- data/spec/internal/app/controllers/application_controller.rb +11 -0
- data/spec/internal/app/controllers/catalog_controller.rb +169 -0
- data/spec/internal/app/helpers/application_helper.rb +2 -0
- data/spec/internal/app/mailers/.gitkeep +0 -0
- data/spec/internal/app/models/.gitkeep +0 -0
- data/spec/internal/app/models/ability.rb +4 -0
- data/spec/internal/app/models/content_model.rb +12 -0
- data/spec/internal/app/models/solr_document.rb +36 -0
- data/spec/internal/app/models/user.rb +26 -0
- data/spec/internal/app/views/catalog/_show_default.html.erb +12 -0
- data/spec/internal/app/views/layouts/application.html.erb +14 -0
- data/spec/internal/config.ru +4 -0
- data/spec/internal/config/application.rb +59 -0
- data/spec/internal/config/boot.rb +10 -0
- data/spec/internal/config/database.yml +25 -0
- data/spec/internal/config/environment.rb +5 -0
- data/spec/internal/config/environments/development.rb +37 -0
- data/spec/internal/config/environments/production.rb +67 -0
- data/spec/internal/config/environments/test.rb +37 -0
- data/spec/internal/config/fedora.yml +12 -0
- data/spec/internal/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/internal/config/initializers/devise.rb +240 -0
- data/spec/internal/config/initializers/hydra_config.rb +34 -0
- data/spec/internal/config/initializers/inflections.rb +15 -0
- data/spec/internal/config/initializers/mime_types.rb +12 -0
- data/spec/internal/config/initializers/secret_token.rb +7 -0
- data/spec/internal/config/initializers/session_store.rb +8 -0
- data/spec/internal/config/initializers/wrap_parameters.rb +14 -0
- data/spec/internal/config/locales/devise.en.yml +59 -0
- data/spec/internal/config/locales/en.yml +5 -0
- data/spec/internal/config/role_map_development.yml +6 -0
- data/spec/internal/config/role_map_test.yml +6 -0
- data/spec/internal/config/routes.rb +6 -0
- data/spec/internal/config/solr.yml +6 -0
- data/spec/internal/db/schema.rb +57 -0
- data/spec/internal/lib/assets/.gitkeep +0 -0
- data/spec/internal/log/.gitkeep +0 -0
- data/spec/internal/public/404.html +26 -0
- data/spec/internal/public/422.html +26 -0
- data/spec/internal/public/500.html +25 -0
- data/spec/internal/public/favicon.ico +0 -0
- data/spec/internal/script/rails +6 -0
- data/spec/spec_helper.rb +45 -0
- metadata +397 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NzVjNjI2ZGM3M2YxMDVhZjU4MjBlZTU2OWY0NjYzMTlmNjBlZWI5ZQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZjIxN2E2MGZkYjgzZTZlNDkxY2U2MmE0Mzk1MDEzODhlZDFhMjkyMw==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NjgzYWExYWEyOWM1NzA5N2EwN2FkMjE3YzJmMTY2NjU2MDBiNTRiNTk3NTY0
|
10
|
+
NzBlNzVhOTIxNmFiN2ViOTY3ZmJmNmViNzgzNWIwMjZmZTBmODc5YzQ2MjJh
|
11
|
+
YjkyYjE3YzczZjk3YjFlMjgxYTZkOWMxMDE0MTBlYTI3N2Q2ZjM=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YThhYWMzZjU5MjhjZjk3NjMyYmZlMWJkZTIzYTJmODdkYzZhZDFiYzUwMjZl
|
14
|
+
N2I3NTQyYmM3ZjQ5MDc0ODg1ODY0MzEzNTE5ZDQxODhmYTY4MmZlYzA0MTZj
|
15
|
+
NTg0NjhmMTg5YWM0NGJkZWM5NzM5YmNlMTc2NmE0MDk1ZDJkMjc=
|
data/.gitignore
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
Copyright (c) Duke University.
|
2
|
+
All rights reserved.
|
3
|
+
|
4
|
+
Redistribution and use in source and binary forms, with or without modification,
|
5
|
+
are permitted provided that the following conditions are met:
|
6
|
+
|
7
|
+
1. Redistributions of source code must retain the above copyright notice,
|
8
|
+
this list of conditions and the following disclaimer.
|
9
|
+
|
10
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
11
|
+
this list of conditions and the following disclaimer in the documentation
|
12
|
+
and/or other materials provided with the distribution.
|
13
|
+
|
14
|
+
3. Neither the name of Duke University nor the names of its contributors may
|
15
|
+
be used to endorse or promote products derived from this software without
|
16
|
+
specific prior written permission.
|
17
|
+
|
18
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
19
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
20
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
21
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
22
|
+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
23
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
24
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
25
|
+
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
26
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
27
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
== Hydra Administrative Tool for a Fedora Repository
|
2
|
+
|
3
|
+
A Rails engine providing an administrative interface to a Fedora Commons repository built on the Hydra project framework.
|
4
|
+
|
5
|
+
=== Status
|
6
|
+
|
7
|
+
This project is at an early stage of development. It should be considered experimental and not ready for production deployment.
|
8
|
+
|
9
|
+
=== Requirements
|
10
|
+
|
11
|
+
fcrepo_admin is designed for installation on hydra-head 6.0.0 or higher.
|
12
|
+
See https://github.com/projecthydra/hydra-head/wiki/Installation-Prerequisites.
|
13
|
+
|
14
|
+
=== Installation
|
15
|
+
|
16
|
+
(In the future, we hope to automate some of these tasks with a generator.)
|
17
|
+
|
18
|
+
* Add to gemfile
|
19
|
+
|
20
|
+
gem 'fcrepo_admin'
|
21
|
+
|
22
|
+
Then <code>bundle install</code>
|
23
|
+
|
24
|
+
* Run the Blacklight and Hydra generators (if this is a new Rails app, not an existing Hydra head)
|
25
|
+
|
26
|
+
rails g blacklight --devise
|
27
|
+
rails g hydra:head -f
|
28
|
+
rake db:migrate
|
29
|
+
rails g hydra:jetty # if you need a development copy of jetty with solr and fedora
|
30
|
+
|
31
|
+
* Mount the engine
|
32
|
+
|
33
|
+
In config/routes.rb add this line:
|
34
|
+
|
35
|
+
mount FcrepoAdmin::Engine => '/admin', :as=> 'fcrepo_admin'
|
36
|
+
|
37
|
+
You may replace <code>'/admin'</code> with any mount point (except perhaps <code>'/catalog'</code>),
|
38
|
+
including <code>'/'</code>. All routes include <code>objects</code> as a subpath.
|
39
|
+
|
40
|
+
* Extend the SolrDocument model
|
41
|
+
|
42
|
+
In app/models/solr_document.rb add this line:
|
43
|
+
|
44
|
+
use_extension FcrepoAdmin::SolrDocumentExtension
|
45
|
+
|
46
|
+
(This may only be necessary if customizing the catalog show page as indicated below.)
|
47
|
+
|
48
|
+
* Add Javascript
|
49
|
+
|
50
|
+
In app/assets/javascripts/application.js add this line:
|
51
|
+
|
52
|
+
//= require bootstrap-tab
|
53
|
+
|
54
|
+
* Add CSS
|
55
|
+
|
56
|
+
In app/assets/stylesheets/application.css add this line:
|
57
|
+
|
58
|
+
//= require fcrepo_admin/fcrepo_admin
|
59
|
+
|
60
|
+
* Customize catalog show page (optional)
|
61
|
+
|
62
|
+
If you would like to add Fedora object information to the catalog show page,
|
63
|
+
copy the partial <code>app/views/catalog/_show_default.html.erb</code> from the Blacklight
|
64
|
+
gem to your application, then add to the bottom of the file:
|
65
|
+
|
66
|
+
<%= render :partial => 'fcrepo_admin/catalog/show', :locals => {:document => document} %>
|
67
|
+
|
68
|
+
Use Blacklight's config options in CatalogController to control the basic content on the show page
|
69
|
+
(HTML title, page title, and list of the fields/values at the top of the page).
|
70
|
+
|
71
|
+
=== License
|
72
|
+
|
73
|
+
See the LICENSE file in the root directory of the project for copyright and license information.
|
74
|
+
|
75
|
+
Licenses for code copied from other projects will be included in source files as required.
|
data/Rakefile
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'bundler/setup'
|
5
|
+
rescue LoadError
|
6
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
7
|
+
end
|
8
|
+
|
9
|
+
APP_RAKEFILE = File.expand_path("../spec/internal/Rakefile", __FILE__)
|
10
|
+
load 'rails/tasks/engine.rake'
|
11
|
+
|
12
|
+
Bundler::GemHelper.install_tasks
|
13
|
+
|
14
|
+
Dir[File.join(File.dirname(__FILE__), 'tasks/**/*.rake')].each {|f| load f }
|
15
|
+
|
16
|
+
require 'rspec/core'
|
17
|
+
require 'rspec/core/rake_task'
|
18
|
+
|
19
|
+
desc "Run all specs in spec directory (excluding plugin specs)"
|
20
|
+
RSpec::Core::RakeTask.new(:spec => 'app:db:test:prepare')
|
21
|
+
|
22
|
+
task :default => :spec
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module FcrepoAdmin
|
2
|
+
class AuditTrailController < ApplicationController
|
3
|
+
|
4
|
+
include FcrepoAdmin::ControllerBehavior
|
5
|
+
|
6
|
+
before_filter :load_and_authz_object
|
7
|
+
|
8
|
+
def index
|
9
|
+
# XXX Update when new version of ActiveFedora released
|
10
|
+
@audit_trail = @object.respond_to?(:audit_trail) ? @object.audit_trail : @object.inner_object.audit_trail
|
11
|
+
if params[:download]
|
12
|
+
send_data @audit_trail.to_xml, :disposition => 'inline', :type => 'text/xml'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'mime/types'
|
2
|
+
|
3
|
+
module FcrepoAdmin
|
4
|
+
class DatastreamsController < ApplicationController
|
5
|
+
|
6
|
+
include FcrepoAdmin::ControllerBehavior
|
7
|
+
|
8
|
+
TEXT_MIME_TYPES = ['application/xml', 'application/rdf+xml', 'application/json']
|
9
|
+
|
10
|
+
before_filter :load_and_authz_object
|
11
|
+
|
12
|
+
def index
|
13
|
+
# @object loaded and authz'd by before_filter
|
14
|
+
end
|
15
|
+
|
16
|
+
def show
|
17
|
+
@datastream = @object.datastreams[params[:id]]
|
18
|
+
@inline = @datastream.mimeType.start_with?('text/') || TEXT_MIME_TYPES.include?(@datastream.mimeType)
|
19
|
+
end
|
20
|
+
|
21
|
+
def download
|
22
|
+
@datastream = @object.datastreams[params[:id]]
|
23
|
+
mimetypes = MIME::Types[@datastream.mimeType]
|
24
|
+
send_data @datastream.content, :disposition => 'attachment', :type => @datastream.mimeType, :filename => "#{@datastream.pid.sub(/:/, '_')}_#{@datastream.dsid}.#{mimetypes.first.extensions.first}"
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module FcrepoAdmin
|
2
|
+
class ObjectsController < ApplicationController
|
3
|
+
|
4
|
+
PROPERTIES = [:owner_id, :state, :create_date, :modified_date, :label]
|
5
|
+
|
6
|
+
def show
|
7
|
+
@object = ActiveFedora::Base.find(params[:id], :cast => true)
|
8
|
+
authorize! :read, @object
|
9
|
+
@properties = {}
|
10
|
+
PROPERTIES.each { |p| @properties[p] = @object.send(p) }
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
File without changes
|
data/app/models/.gitkeep
ADDED
File without changes
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<h1><%= @object.pid %></h1>
|
2
|
+
|
3
|
+
<h3><%= t("fcrepo_admin.audit_trail.title") %></h3>
|
4
|
+
|
5
|
+
<p>
|
6
|
+
<%= link_to t("fcrepo_admin.audit_trail.download"), "#{fcrepo_admin.object_audit_trail_index_path(@object)}?download=true", :class => "btn btn-primary" %>
|
7
|
+
</p>
|
8
|
+
|
9
|
+
<table class="table table-bordered table-condensed table-striped">
|
10
|
+
<thead>
|
11
|
+
<tr>
|
12
|
+
<th scope="col"><%= t("fcrepo_admin.audit_trail.record.id") %></th>
|
13
|
+
<th scope="col"><%= t("fcrepo_admin.audit_trail.record.process_type") %></th>
|
14
|
+
<th scope="col"><%= t("fcrepo_admin.audit_trail.record.action") %></th>
|
15
|
+
<th scope="col"><%= t("fcrepo_admin.audit_trail.record.component_id") %></th>
|
16
|
+
<th scope="col"><%= t("fcrepo_admin.audit_trail.record.responsibility") %></th>
|
17
|
+
<th scope="col"><%= t("fcrepo_admin.audit_trail.record.date") %></th>
|
18
|
+
<th scope="col"><%= t("fcrepo_admin.audit_trail.record.justification") %></th>
|
19
|
+
</tr>
|
20
|
+
</thead>
|
21
|
+
<tbody>
|
22
|
+
<% @audit_trail.records.each do |record| %>
|
23
|
+
<tr>
|
24
|
+
<td><%= record.id %></td>
|
25
|
+
<td><%= record.process_type %></td>
|
26
|
+
<td><%= record.action %></td>
|
27
|
+
<td><%= record.component_id %></td>
|
28
|
+
<td><%= record.responsibility %></td>
|
29
|
+
<td><%= record.date %></td>
|
30
|
+
<td><%= record.justification %></td>
|
31
|
+
</tr>
|
32
|
+
<% end %>
|
33
|
+
</tbody>
|
34
|
+
</table>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<h3><%= t("fcrepo_admin.datastream.title").pluralize %></h3>
|
2
|
+
<table class="table table-bordered table-condensed">
|
3
|
+
<thead>
|
4
|
+
<tr>
|
5
|
+
<th scope="col"><%= t("fcrepo_admin.datastream.id") %></th>
|
6
|
+
<th scope="col"><%= t("fcrepo_admin.datastream.label") %></th>
|
7
|
+
<th scope="col"><%= t("fcrepo_admin.datastream.mimetype") %></th>
|
8
|
+
</tr>
|
9
|
+
</thead>
|
10
|
+
<tbody>
|
11
|
+
<% datastreams.reject { |dsid, dsProfile| dsProfile.empty? }.each do |dsid, dsProfile| %>
|
12
|
+
<tr>
|
13
|
+
<td><%= link_to dsid, fcrepo_admin.object_datastream_path(pid, dsid) %></td>
|
14
|
+
<td><%= dsProfile["dsLabel"] %></td>
|
15
|
+
<td><%= dsProfile["dsMIME"] %></td>
|
16
|
+
</tr>
|
17
|
+
<% end %>
|
18
|
+
</tbody>
|
19
|
+
</table>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<div id="fcrepo-admin-dscontent">
|
2
|
+
<% if inline %>
|
3
|
+
<pre class="prettyprint pre-scrollable"><%= datastream.content %></pre>
|
4
|
+
<% else %>
|
5
|
+
<p>
|
6
|
+
<%= t("fcrepo_admin.datastream.content_not_text") %>.
|
7
|
+
</p>
|
8
|
+
<% end %>
|
9
|
+
<p>
|
10
|
+
<%= link_to t("fcrepo_admin.datastream.download"), fcrepo_admin.download_object_datastream_path(datastream.pid, datastream.dsid), :class => "btn btn-primary" %>
|
11
|
+
</p>
|
12
|
+
</div>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<table class="table table-bordered table-condensed">
|
2
|
+
<thead>
|
3
|
+
<tr>
|
4
|
+
<th scope="col"><%= t("fcrepo_admin.datastreams.header.id") %></th>
|
5
|
+
<th scope="col"><%= t("fcrepo_admin.datastreams.header.label") %></th>
|
6
|
+
<th scope="col"><%= t("fcrepo_admin.datastreams.header.mimetype") %></th>
|
7
|
+
</tr>
|
8
|
+
</thead>
|
9
|
+
<tbody>
|
10
|
+
<% datastreams.reject { |dsid, ds| ds.profile.empty? }.each do |dsid, ds| %>
|
11
|
+
<tr>
|
12
|
+
<td><%= link_to dsid, fcrepo_admin.object_datastream_path(ds.pid, dsid) %></td>
|
13
|
+
<td><%= ds.profile["dsLabel"] %></td>
|
14
|
+
<td><%= ds.profile["dsMIME"] %></td>
|
15
|
+
</tr>
|
16
|
+
<% end %>
|
17
|
+
</tbody>
|
18
|
+
</table>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<div id="fcrepo-admin-dsprofile">
|
2
|
+
<table class="table table-bordered table-condensed table-striped">
|
3
|
+
<% datastream.profile.each do |key, value| %>
|
4
|
+
<tr>
|
5
|
+
<th scope="row"><%= t("fcrepo_admin.datastream.profile.#{key}") %></th>
|
6
|
+
<td><%= value.blank? ? " " : value %></td>
|
7
|
+
</tr>
|
8
|
+
<% end %>
|
9
|
+
</table>
|
10
|
+
</div>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<h1><%= @datastream.pid %></h1>
|
2
|
+
|
3
|
+
<h3><%= t("fcrepo_admin.datastream.title") %>: <%= @datastream.dsid %></h3>
|
4
|
+
|
5
|
+
<div class="document">
|
6
|
+
|
7
|
+
<div class="tabbable">
|
8
|
+
<ul class="nav nav-tabs">
|
9
|
+
<li class="active"><a href="#tab1" data-toggle="tab"><%= t("fcrepo_admin.datastream.tabs.content") %></a></li>
|
10
|
+
<li><a href="#tab2" data-toggle="tab"><%= t("fcrepo_admin.datastream.tabs.profile") %></a></li>
|
11
|
+
</ul>
|
12
|
+
<div class="tab-content">
|
13
|
+
<div class="tab-pane active" id="tab1">
|
14
|
+
<%= render :partial => 'content', :locals => {:datastream => @datastream, :inline => @inline} %>
|
15
|
+
</div>
|
16
|
+
<div class="tab-pane" id="tab2">
|
17
|
+
<%= render :partial => 'profile', :locals => {:datastream => @datastream} %>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
|
22
|
+
</div>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<h1><%= @object.pid %></h1>
|
2
|
+
|
3
|
+
<div class="tabbable">
|
4
|
+
<ul class="nav nav-tabs">
|
5
|
+
<li class="active"><a href="#tab1" data-toggle="tab"><%= t("fcrepo_admin.object.tabs.datastreams") %></a></li>
|
6
|
+
<li><a href="#tab2" data-toggle="tab"><%= t("fcrepo_admin.object.tabs.properties") %></a></li>
|
7
|
+
</ul>
|
8
|
+
<div class="tab-content">
|
9
|
+
<div class="tab-pane active" id="tab1">
|
10
|
+
<%= render :partial => 'fcrepo_admin/datastreams/datastreams', :locals => {:datastreams => @object.datastreams} %>
|
11
|
+
</div>
|
12
|
+
<div class="tab-pane" id="tab2">
|
13
|
+
<%= render :partial => 'properties', :locals => {:properties => @properties} %>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
|
18
|
+
<%= render :partial => 'more_info', :locals => {:pid => @object.pid} %>
|
@@ -0,0 +1,55 @@
|
|
1
|
+
en:
|
2
|
+
fcrepo_admin:
|
3
|
+
object:
|
4
|
+
more_info: 'More Information'
|
5
|
+
tabs:
|
6
|
+
datastreams: 'Datastreams'
|
7
|
+
properties: 'Properties'
|
8
|
+
properties:
|
9
|
+
title: 'Properties'
|
10
|
+
keys:
|
11
|
+
owner_id: 'Owner ID'
|
12
|
+
state: 'State'
|
13
|
+
create_date: 'Create Date'
|
14
|
+
modified_date: 'Modified Date'
|
15
|
+
label: 'Label'
|
16
|
+
audit_trail:
|
17
|
+
title: 'Audit Trail'
|
18
|
+
download: 'Download'
|
19
|
+
record:
|
20
|
+
id: 'Record ID'
|
21
|
+
process_type: 'Process Type'
|
22
|
+
action: 'Action'
|
23
|
+
component_id: 'Component ID'
|
24
|
+
responsibility: 'Responsibility'
|
25
|
+
date: 'Date'
|
26
|
+
justification: 'Justification'
|
27
|
+
datastreams:
|
28
|
+
title: 'Datastreams'
|
29
|
+
header:
|
30
|
+
id: 'Datastream ID'
|
31
|
+
label: 'Label'
|
32
|
+
mimetype: 'MIME Type'
|
33
|
+
datastream:
|
34
|
+
title: 'Datastream'
|
35
|
+
tabs:
|
36
|
+
content: 'Content'
|
37
|
+
profile: 'Profile'
|
38
|
+
download: 'Download'
|
39
|
+
content_not_text: 'The datastream content is not text'
|
40
|
+
profile:
|
41
|
+
dsLabel: 'Label'
|
42
|
+
dsMIME: 'MIME Type'
|
43
|
+
dsVersionID: 'Version'
|
44
|
+
dsCreateDate: 'Create Date'
|
45
|
+
dsState: 'State'
|
46
|
+
dsFormatURI: 'Format URI'
|
47
|
+
dsControlGroup: 'Control Group'
|
48
|
+
dsSize: 'Size'
|
49
|
+
dsVersionable: 'Versionable'
|
50
|
+
dsInfoType: 'Info Type'
|
51
|
+
dsLocation: 'Location'
|
52
|
+
dsLocationType: 'Location Type'
|
53
|
+
dsChecksumType: 'Checksum Type'
|
54
|
+
dsChecksum: 'Checksum'
|
55
|
+
|