fcrepo_admin 0.1.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.
- 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
|
+
|