Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mjordan/islandora_object_clone
Islandora module that allows users to clone objects.
https://github.com/mjordan/islandora_object_clone
Last synced: 27 days ago
JSON representation
Islandora module that allows users to clone objects.
- Host: GitHub
- URL: https://github.com/mjordan/islandora_object_clone
- Owner: mjordan
- License: gpl-3.0
- Created: 2017-11-10T04:24:00.000Z (about 7 years ago)
- Default Branch: 7.x
- Last Pushed: 2017-11-12T04:51:07.000Z (about 7 years ago)
- Last Synced: 2024-10-08T08:31:04.469Z (about 1 month ago)
- Language: PHP
- Size: 52.7 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- islandora_awesome - Islandora Object Clone - (In Development) - Creates a shallow clone of Islandora objects. Clones contain the original object properties and datastreams, but not that object's children. (The Islandora 7.x-1.x List / Utility Modules)
README
# Islandora Object Clone
Copies an Islandora object and persists the copy much in the same manner that [Node Clone](https://www.drupal.org/project/node_clone) does for Drupal nodes. At the end of the cloning process (click a tab, optionally fill in a couple of form fields), you have a new object that is pretty much identical to the object it was cloned from. Differences are listed below.
## Introduction
Performs a shallow clone of the source object, that is, it only copies the object properties and datastreams. It does not generate new objects corresponding to any children the source object has.
MODS and DC are copied as is, with the exception that the new object's PID is added to a dc:identifier element (this is Fedora's default behavior). The source object's PID that existed in its DC is therefore also present in the new DC datastream. Also, any identifiers or other source-object-specific data, like DOIs or UUIDs, in MODS or other datastreams is also carried over. Reviewing the cloned metadata for this sort of data is probably a good habit to get into. The clone confirmation form contains an option to copy the DC datastream (default is to not copy it). If the DC datastream is not copied, it is generated automatically in the new object, the same way it is on normal object ingest. It also contains an option for the user to be immediately redirected to the MODS edit form after submitting the "Clone object" button.
## Requirements
* [Islandora](https://github.com/Islandora/islandora)
## Installation
Same as any Drupal module.
## Configuration
You will need to enable which content models source objects must have at `admin/islandora/tools/object_clone`.
There is an option to allow objects that have sequence relationships ('isSequenceNumber' and 'isSequenceNumberOfxxx') to be cloneable. These include all paged content objects and any other objects that are children of compound objects. If checked, these objects will be cloneable like other objects, and users who clone them will be reminded to review their order within their parent objects. If unchecked, these objects will not be cloneable.
## Usage
Users with permission to manage objects (as defined by the Islandora module) are provided access to a "Clone" tab for each object. Clicking on this tab reveals a form that asks for the label, state, namespace, and collections of the object to be created. Clicking on the "Clone object" button in this form creates a new object based on the source object and ingests it. The new object differs from its source in the following ways:
* the new object's owner is the user who cloned it
* the user is asked to supply the following properties of the new object (form defaults are taken from the source object):
* label
* state (is overridden by Islandora Simple Workflow)
* namespace
* the user is asked to select which collection(s) to add the cloned object to (form defaults to the source object's immediate parent collection(s)).
* the user is asked whether or not to copy the source object's DC datastream to the new object. If it is copied, it will contain the source object's PID, which as mentioned above, is probably not desirable.Apart from these differences, the new object's content model and other RELS-EXT relationships (except for collection membership) are the same as in the source object, as are all datastreams other than RELS-EXT, which is rebuilt in the new object, and RELS-INT, which is rebuilt to incorporate relationships associated with datastreams.
## Extending/customizing this module
See the islandora_object_clone.api.php file for hooks this module defines.
## Maintainer
* [Mark Jordan](https://github.com/mjordan)
## Development and feedback
Use cases, suggestions, and bug reports, as well as pull requests, are welcome. Please see CONTRIBUTING.md for more information.
## License
* [GPLv3](http://www.gnu.org/licenses/gpl-3.0.txt)