== Hydra Administrative Tool for a Fedora Repository A Rails engine providing an administrative interface to a Fedora Commons repository built on the Hydra project framework. === Status This project should be considered *experimental* and not ready for production deployment. Versions earlier than 1.0 may change API and/or UI without notice or regard for backward compatibility. === Requirements fcrepo_admin is designed for installation on hydra-head 6.0 or higher (requires active-fedora 6.1 or higher). See https://github.com/projecthydra/hydra-head/wiki/Installation-Prerequisites. === Installation (In the future, we hope to automate some of these tasks with a generator.) * Add to gemfile gem 'fcrepo_admin' Then bundle install * Run the Blacklight and Hydra generators (if this is a new Rails app, not an existing Hydra head) rails g blacklight --devise rails g hydra:head -f rake db:migrate rails g hydra:jetty # if you need a development copy of jetty with solr and fedora * Mount the engine In config/routes.rb add this line: mount FcrepoAdmin::Engine => '/', :as=> 'fcrepo_admin' You may use any mount point (except perhaps '/catalog'). All routes include objects as a subpath. * Add CanCan action aliases (version >= 0.4.0) In your Ability class (app/models/ability.rb) include the FcrepoAdmin::Ability module, for example: class Ability include Hydra::Ability include Hydra::PolicyAwareAbility include FcrepoAdmin::Ability end FcrepoAdmin::Ability defines action aliases for permissions which are enforced on (ActiveFedora::Base) objects. If your application defines action aliases, please check FcrepoAdmin::Ability for conflicts as aliases are global. * Add Javascript (not required for version >= 0.4.0) In app/assets/javascripts/application.js add: //= require bootstrap-tab * Customize catalog search results (optional) If you would like catalog search results items to link to the fcrepo_admin object show view instead of the catalog show view, create app/helpers/blacklight_helper.rb with this content: module BlacklightHelper include Blacklight::BlacklightHelperBehavior # Default Blacklight behaviors include FcrepoAdmin::Helpers::BlacklightHelperBehavior # fcrepo_admin overrides # additional customizations here, if any end * Add audit trail support (optional) To enable access to the Fedora audit trail data through the fcrepo_admin UI, include the ActiveFedora::Auditable mixin in your ActiveFedora models: include ActiveFedora::Auditable === Overriding fcrepo_admin behaviors The following are examples of possible customizations. This list is not necessarily exhaustive. * Helpers Override objects helpers by creating app/helpers/fcrepo_admin/objects_helper.rb with this content: module FcrepoAdmin::ObjectsHelper include FcrepoAdmin::Helpers::ObjectsHelperBehavior # override and/or add methods here end In particular you may want to override #object_title. The contents of the object context navigation menu can be customized by overriding #object_context_nav_items, or by copying and modifying the partial fcrepo_admin/objects/context_nav_items. Override datastreams helpers by creating app/helpers/fcrepo_admin/datastreams_helper.rb with this content: module FcrepoAdmin::DatastreamsHelper include FcrepoAdmin::Helpers::DatastreamsHelperBehavior # override and/or add methods here end The contents of the datastream context navigation menu can be customized by overriding #datastream_context_nav_items, or by copying and modifying the partial fcrepo_admin/datastreams/context_nav_items. * Controllers To override/extend the objects controller, create app/controllers/fcrepo_admin/objects_controller.rb: module FcrepoAdmin class ObjectsController < CatalogController include FcrepoAdmin::Controller::ObjectsControllerBehavior # add your customizations end end NOTE: This controller subclasses CatalogController, not ApplicationController. To override/extend the datastreams controller, create app/controllers/fcrepo_admin/datastreams_controller.rb: module FcrepoAdmin class DatastreamsController < ApplicationController include FcrepoAdmin::Controller::DatastreamsControllerBehavior # add your customizations end end === Contributing * Consider first posting to hydra-tech@googlegroups.com with a question or bug report, or submit an issue to the Github issue tracker at https://github.com/projecthydra/fcrepo-admin/issues. * Fork the git repository, create a feature branch, make your changes, and submit a pull request. It is preferable for all changes to be made in one commit, if possible. Thanks! === License See the LICENSE file in the root directory of the project for copyright and license information. Licenses for code copied from other projects will be included in source files as required.