Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/samvera/hydra-editor
A basic editor for samvera objects.
https://github.com/samvera/hydra-editor
core-components samvera-community
Last synced: 2 months ago
JSON representation
A basic editor for samvera objects.
- Host: GitHub
- URL: https://github.com/samvera/hydra-editor
- Owner: samvera
- License: other
- Created: 2013-04-15T15:18:49.000Z (almost 12 years ago)
- Default Branch: main
- Last Pushed: 2023-09-22T17:13:16.000Z (over 1 year ago)
- Last Synced: 2024-04-26T08:21:09.066Z (9 months ago)
- Topics: core-components, samvera-community
- Language: Ruby
- Homepage:
- Size: 460 KB
- Stars: 10
- Watchers: 57
- Forks: 13
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
- Support: SUPPORT.md
Awesome Lists containing this project
README
# HydraEditor
Code:
[![Gem Version](https://badge.fury.io/rb/hydra-editor.png)](http://badge.fury.io/rb/hydra-editor)
[![Build Status](https://circleci.com/gh/samvera/hydra-editor.svg?style=svg)](https://circleci.com/gh/samvera/hydra-editor)
[![Coverage Status](https://coveralls.io/repos/github/samvera/hydra-editor/badge.svg?branch=main)](https://coveralls.io/github/samvera/hydra-editor?branch=main)Docs:
[![Contribution Guidelines](http://img.shields.io/badge/CONTRIBUTING-Guidelines-blue.svg)](./CONTRIBUTING.md)
[![Apache 2.0 License](http://img.shields.io/badge/APACHE2-license-blue.svg)](./LICENSE.txt)Community Support: [![Samvera Community Slack](https://img.shields.io/badge/samvera-slack-blueviolet)](http://slack.samvera.org/)
# What is hydra-editor?
A basic metadata editor for Rails applications based on hydra-head.
## Product Owner & Maintenance
`hydra-editor` was a Core Component of the Samvera Community. Given a decline in available labor required for maintenance, this project no longer has a dedicated Product Owner. The documentation for what this means can be found [here](http://samvera.github.io/core_components.html#requirements-for-a-core-component).
### Product Owner
**Vacant**
_Until a Product Owner has been identified, we ask that you please direct all requests for support, bug reports, and general questions to the [`#dev` Channel on the Samvera Slack](https://samvera.slack.com/app_redirect?channel=dev)._
# Help
The Samvera community is here to help. Please see our [support guide](./SUPPORT.md).
# Getting Started
To use add to your gemfile:
```ruby
gem 'hydra-editor'
```Then run:
```
bundle install
```Next generate the bootstrap form layouts:
```
rails generate simple_form:install --bootstrap
```And to config/routes.rb add:
```ruby
mount HydraEditor::Engine => '/'
```(Note: You do not have to mount the engine if you do not intend to use the engine's default routes.)
In your initialization set ```HydraEditor.models```
```ruby
# config/initializers/hydra_editor.rb
HydraEditor.models = ["RecordedAudio", "PdfModel"]
```You can customize the names of your fields/models by adding to your translation file:
```yaml
# config/locales/en.yml
en:
hydra_editor:
form:
model_label:
PdfModel: "PDF"
RecordedAudio: "audio"simple_form:
labels:
image:
dateCreated: "Date Created"
sub_location: "Holding Sub-location"
```Create a form object for each of your models.
```ruby
# app/forms/recorded_audio_form.rb
class RecordedAudioForm
include HydraEditor::Form
self.model_class = RecordedAudio
self.terms = [] # Terms to be edited
self.required_fields = [] # Required fields
end
```Add the javascript by adding this line to your app/assets/javascript/application.js:
```javascript
//= require hydra-editor/hydra-editor
```Add the stylesheets by adding this line to your app/assets/stylesheets/application.css:
```css
*= require hydra-editor/hydra-editor
```(Note: The Javascript includes require Blacklight and must be put after that.)
## Updating to 4.0.0
* [SimpleForm](https://github.com/plataformatec/simple_form) is supported from release 3.2.0 onwards
* `#to_model` now returns `self` (previously it was the value of `@model`):
```ruby
class MyForm
include HydraEditor::Form
self.model_class = MyModel
self.terms = [:title, :creator]
# [...]
end
# [...]
some_work = MyModel.new(title: ['Black holes: The Reith Lectures.'], creator: 'S.W. Hawking')
some_form = MyForm.new(some_work)
# [...]
some_form.to_model
# => #nil, "title"=>["Black holes: The Reith Lectures."], "creator"=>"S.W. Hawking"}, @model=#>
```
* When a form field for a single value is empty, it now returns a `nil` value (as opposed to an empty `String`):
```ruby
class MyForm
include HydraEditor::Form
self.model_class = MyModel
self.terms = [:title, :creator]
# [...]
end# [...]
values = MyForm.model_attributes(
title: ['On the distribution of values of angles determined by coplanar points.'],
creator: ''
)
values['creator']
# => nil
```## Other customizations
By default `hydra-editor` provides a RecordsController with :new, :create, :edit, and :update actions implemented in the included RecordsControllerBehavior module, and a RecordsHelper module with methods implemented in RecordsHelperBehavior. If you are mounting the engine and using its routes, you can override the controller behaviors by creating your own RecordsController:
```ruby
class RecordsController < ApplicationController
include RecordsControllerBehavior# You custom code
end
```If you are not mounting the engine or using its default routes, you can include RecordsControllerBehavior in your own controller and add the appropriate routes to your app's config/routes.rb.
## Releasing
1. `bundle install`
2. Increase the version number in `lib/hydra_editor/version.rb`
3. Increase the same version number in `.github_changelog_generator`
4. Update `CHANGELOG.md` by running this command:```
github_changelog_generator --user samvera --project hydra-editor --token YOUR_GITHUB_TOKEN_HERE
```5. Commit these changes to the main branch
6. Run `rake release`
# Acknowledgments
This software has been developed by and is brought to you by the Samvera community. Learn more at the
[Samvera website](http://samvera.org/).![Samvera Logo](https://wiki.duraspace.org/download/thumbnails/87459292/samvera-fall-font2-200w.png?version=1&modificationDate=1498550535816&api=v2)