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.
Files changed (96) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +1 -0
  4. data/Gemfile +5 -0
  5. data/LICENSE +27 -0
  6. data/README.rdoc +75 -0
  7. data/Rakefile +22 -0
  8. data/app/controllers/fcrepo_admin/audit_trail_controller.rb +17 -0
  9. data/app/controllers/fcrepo_admin/datastreams_controller.rb +29 -0
  10. data/app/controllers/fcrepo_admin/objects_controller.rb +14 -0
  11. data/app/helpers/application_helper.rb +2 -0
  12. data/app/mailers/.gitkeep +0 -0
  13. data/app/models/.gitkeep +0 -0
  14. data/app/views/fcrepo_admin/audit_trail/index.html.erb +34 -0
  15. data/app/views/fcrepo_admin/catalog/_datastreams.html.erb +19 -0
  16. data/app/views/fcrepo_admin/catalog/_show.html.erb +2 -0
  17. data/app/views/fcrepo_admin/datastreams/_content.html.erb +12 -0
  18. data/app/views/fcrepo_admin/datastreams/_datastreams.html +18 -0
  19. data/app/views/fcrepo_admin/datastreams/_profile.html.erb +10 -0
  20. data/app/views/fcrepo_admin/datastreams/index.html.erb +4 -0
  21. data/app/views/fcrepo_admin/datastreams/show.html.erb +22 -0
  22. data/app/views/fcrepo_admin/objects/_more_info.html.erb +6 -0
  23. data/app/views/fcrepo_admin/objects/_properties.html.erb +8 -0
  24. data/app/views/fcrepo_admin/objects/show.html.erb +18 -0
  25. data/config/locales/fcrepo_admin.en.yml +55 -0
  26. data/config/routes.rb +14 -0
  27. data/doc/README_FOR_APP +2 -0
  28. data/fcrepo_admin.gemspec +42 -0
  29. data/lib/assets/.gitkeep +0 -0
  30. data/lib/assets/stylesheets/fcrepo_admin/fcrepo_admin.css +4 -0
  31. data/lib/fcrepo_admin.rb +8 -0
  32. data/lib/fcrepo_admin/controller_behavior.rb +10 -0
  33. data/lib/fcrepo_admin/engine.rb +12 -0
  34. data/lib/fcrepo_admin/solr_document_extension.rb +49 -0
  35. data/lib/fcrepo_admin/version.rb +3 -0
  36. data/lib/tasks/.gitkeep +0 -0
  37. data/lib/tasks/fcrepo_admin.rake +24 -0
  38. data/script/rails +6 -0
  39. data/spec/controllers/audit_trail_controller_spec.rb +20 -0
  40. data/spec/controllers/datastreams_controller_spec.rb +21 -0
  41. data/spec/factories/fcrepo_admin_factories.rb +20 -0
  42. data/spec/factories/user_factories.rb +8 -0
  43. data/spec/features/audit_trail/index.html.erb_spec.rb +11 -0
  44. data/spec/features/catalog/show.html.erb_spec.rb +21 -0
  45. data/spec/features/datastreams/show.html.erb_spec.rb +31 -0
  46. data/spec/features/objects/show.html.erb_spec.rb +29 -0
  47. data/spec/fixtures/auditable.foxml.xml +110 -0
  48. data/spec/internal/README.rdoc +261 -0
  49. data/spec/internal/Rakefile +7 -0
  50. data/spec/internal/app/assets/javascripts/application.js +16 -0
  51. data/spec/internal/app/assets/stylesheets/application.css +13 -0
  52. data/spec/internal/app/assets/stylesheets/blacklight.css.scss +3 -0
  53. data/spec/internal/app/controllers/application_controller.rb +11 -0
  54. data/spec/internal/app/controllers/catalog_controller.rb +169 -0
  55. data/spec/internal/app/helpers/application_helper.rb +2 -0
  56. data/spec/internal/app/mailers/.gitkeep +0 -0
  57. data/spec/internal/app/models/.gitkeep +0 -0
  58. data/spec/internal/app/models/ability.rb +4 -0
  59. data/spec/internal/app/models/content_model.rb +12 -0
  60. data/spec/internal/app/models/solr_document.rb +36 -0
  61. data/spec/internal/app/models/user.rb +26 -0
  62. data/spec/internal/app/views/catalog/_show_default.html.erb +12 -0
  63. data/spec/internal/app/views/layouts/application.html.erb +14 -0
  64. data/spec/internal/config.ru +4 -0
  65. data/spec/internal/config/application.rb +59 -0
  66. data/spec/internal/config/boot.rb +10 -0
  67. data/spec/internal/config/database.yml +25 -0
  68. data/spec/internal/config/environment.rb +5 -0
  69. data/spec/internal/config/environments/development.rb +37 -0
  70. data/spec/internal/config/environments/production.rb +67 -0
  71. data/spec/internal/config/environments/test.rb +37 -0
  72. data/spec/internal/config/fedora.yml +12 -0
  73. data/spec/internal/config/initializers/backtrace_silencers.rb +7 -0
  74. data/spec/internal/config/initializers/devise.rb +240 -0
  75. data/spec/internal/config/initializers/hydra_config.rb +34 -0
  76. data/spec/internal/config/initializers/inflections.rb +15 -0
  77. data/spec/internal/config/initializers/mime_types.rb +12 -0
  78. data/spec/internal/config/initializers/secret_token.rb +7 -0
  79. data/spec/internal/config/initializers/session_store.rb +8 -0
  80. data/spec/internal/config/initializers/wrap_parameters.rb +14 -0
  81. data/spec/internal/config/locales/devise.en.yml +59 -0
  82. data/spec/internal/config/locales/en.yml +5 -0
  83. data/spec/internal/config/role_map_development.yml +6 -0
  84. data/spec/internal/config/role_map_test.yml +6 -0
  85. data/spec/internal/config/routes.rb +6 -0
  86. data/spec/internal/config/solr.yml +6 -0
  87. data/spec/internal/db/schema.rb +57 -0
  88. data/spec/internal/lib/assets/.gitkeep +0 -0
  89. data/spec/internal/log/.gitkeep +0 -0
  90. data/spec/internal/public/404.html +26 -0
  91. data/spec/internal/public/422.html +26 -0
  92. data/spec/internal/public/500.html +25 -0
  93. data/spec/internal/public/favicon.ico +0 -0
  94. data/spec/internal/script/rails +6 -0
  95. data/spec/spec_helper.rb +45 -0
  96. 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
@@ -0,0 +1,9 @@
1
+ /.bundle
2
+ Gemfile.lock
3
+ pkg
4
+ spec/internal/db/*.sqlite3
5
+ spec/internal/log/*.log
6
+ spec/internal/jetty
7
+ spec/internal/tmp
8
+ spec/internal/.sass-cache
9
+ tmp
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ gem 'devise'
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
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
File without changes
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,2 @@
1
+ <%= render :partial => 'fcrepo_admin/catalog/datastreams', :locals => {:datastreams => document.datastreams, :pid => document.id} %>
2
+ <%= render :partial => 'fcrepo_admin/objects/more_info', :locals => {:pid => document.id} %>
@@ -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,4 @@
1
+ <h1><%= @object.pid %></h1>
2
+
3
+ <h3><%= t("fcrepo_admin.datastreams.title") %></h3>
4
+ <%= render :partial => 'datastreams', :locals => {:datastreams => @object.datastreams} %>
@@ -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,6 @@
1
+ <h3><%= t("fcrepo_admin.object.more_info") %></h3>
2
+ <ul>
3
+ <li>
4
+ <%= link_to t("fcrepo_admin.audit_trail.title"), fcrepo_admin.object_audit_trail_index_path(pid) %>
5
+ </li>
6
+ </ul>
@@ -0,0 +1,8 @@
1
+ <table class="table table-bordered table-condensed">
2
+ <% properties.each do |key, value| %>
3
+ <tr>
4
+ <th scope="row"><%= t("fcrepo_admin.object.properties.keys.#{key}") %></th>
5
+ <td><%= value %></td>
6
+ </tr>
7
+ <% end %>
8
+ </table>
@@ -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
+