Skip to content

Commit

Permalink
Fix broken links (#2142)
Browse files Browse the repository at this point in the history
* Update video and audio pages #2139.

* Fix broken link #2141

* Update wording thanks @eldonquijote.
  • Loading branch information
rosiel authored Jul 29, 2022
1 parent 0d283c1 commit 67ee042
Show file tree
Hide file tree
Showing 8 changed files with 95 additions and 12 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@
# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
*.gif binary
38 changes: 30 additions & 8 deletions docs/concepts/collection.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,47 @@ Collections are groups of related content that can be viewed or managed as a uni

Islandora provides:

- a generic "member of" relationship field (`field_member_of`) to group objects under a "parent" object. This mechanism is shared by _Collections_ with similar use cases: [Paged Content](../user-documentation/paged-content.md) and _Compound Objects_. Islandora on its own does not prescribe any particular [Content Type](../user-documentation/content_types.md), so this field can be configured for any [node bundle](https://www.drupal.org/docs/drupal-apis/entity-api/bundles) intended to represent Islandora resources.
- a "Children" tab on resources, which provides a management interface to access, re-order, add, or delete the members of a resource.
- a "Model" field (`field_model`) which can take various values including "Collection"
- a mechanism for grouping nodes under a "Parent" node through the generic "Member Of" relationship field (`field_member_of`). This mechanism is also used by _[Paged Content](../user-documentation/paged-content.md)_ and _Compound Objects_. Islandora on its own does not prescribe any particular [Content Type](../user-documentation/content_types.md), so this field can be configured for any [node bundle](https://www.drupal.org/docs/drupal-apis/entity-api/bundles) intended to represent Islandora resources.
- a "Children" tab on resources, which provides a management interface to access, re-order, add, or delete the members of a resource based on the Member Of field.
- a "Model" field (`field_model`) which can take various values including "Collection".

## Islandora Defaults features

[Islandora Defaults](../reference/islandora_defaults_reference.md) is an optional collection of presets for Islandora, intended to provide a more user-friendly out-of-the-box experience and starting point for more specific customization.

Islandora Defaults provides:

- a [Content Types](../user-documentation/content_types.md) "Repository Item" that uses the `field_member_of` field, so that users may add nodes of this type to a collection (or paged content, or compound resource),
- logic (a [Context](../user-documentation/context.md)) such that if a resource is tagged as a "collection", a view of its members will show on the collection's page.


- a [Content Type](../user-documentation/content_types.md) "Repository Item" that uses the `field_member_of` field, so that users may add nodes of this type to a collection (or paged content, or compound resource),
- A [View](../tutorials/create_update_views.md) showing the members of the collection.
- logic (a [Context](../user-documentation/context.md)) such that if a resource is tagged as a "Collection" (in the "Model" field, then a view of its members will show on the collection's page.

For more details, see the tutorial on [How to create and add to a collection](../tutorials/how-to-create-collection.md)

## Bulk management of members of a collection

Bulk management of items can be done using the Drupal contrib module [Views Bulk Edit](https://www.drupal.org/project/views_bulk_edit). In short, build a view using this module, and you will be able to perform Drupal Actions on sets of objects. Neither Islandora nor Islandora Defaults provide out-of-the-box management tools, but the sandbox provides some sample content and views that use Views Bulk Edit.
Bulk management of items can be done from a Views Bulk Operations-compatible View, including the main Drupal Content View (at admin/content) and the Manage Members View (at node/[node]/members). This is possible due to the Drupal contrib modules [Views Bulk Operations (VBO)](https://www.drupal.org/project/views_bulk_operations) and [Views Bulk Edit](https://www.drupal.org/project/views_bulk_edit). VBO allows you to perform Drupal Actions on objects. These Actions include making Islandora Derivatives such as "Audio - Generate a Service File from an Original File" and also to perform Drupal core Actions such as publishing/unpublishing content. The Views Bulk Edit module extends VBO and allows you to edit field values (such as the Member Of field, which would change which collection a group of nodes are in).

For instance, if you want to move a number of nodes from one collection into another, then you can

- select them all in a View such as the Members view of a collection
- select "Edit content" from the Action dropdown, and click "Apply to selected Items"
- under "SELECT FIELDS TO CHANGE", select "Member of"
- in the Member Of autocomplete that appears, type the name of the target collection
- Careful! Under "Change method", choosee between "Replace the current value" and "Add a new value to the multivalue field". The first one will wipe out ALL existing collections including the one you're working on - which may be what you're after.
- Select "Confirm" at the bottom of the form to save your changes.

For more information see the video tutorial on [Batch Editing](https://youtu.be/ZMp0lPelOZw).


## Deleting A Collection

!!! Warning "Deleting Collections creates orphans."
When you delete a Collection object, it will be deleted from the "Member of" field of all its Children. This means that it will not be possible to track down the children after the Collection has been deleted. If you intend to move the children, see above. If you intend to delete the children, this must be done before-hand. This is a [known issue](https://github.com/Islandora/documentation/issues/628).

!!! Warning "Deleting content creates orphan media."
Deleting content (Collections or otherwise) will NOT delete any attached Media. This is a [known issue](https://github.com/Islandora/documentation/issues/909).


## Permissions on a Collection

No reliable access control methods currently allow you to assign people to administer and manage only specific collections.
2 changes: 1 addition & 1 deletion docs/concepts/derivatives.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,4 +97,4 @@ The queue system used by Islandora is ActiveMQ, and the listeners are part of ["
## Derivative Swimlane Diagram

The following diagram shows the flow of derivative generation from start to finish. A user saves a Media in Drupal, which may trigger Drupal to emit a derivative event to a queue, which is read by Alpaca and sent to a microservice. The microservice gets the original file and makes a transformation, returning the derivative file to Alpaca, which sends it back to Drupal to become a Drupal Media.
[ ![Derivative process swimlane diagram](../../assets/derivatives-swimlane.png)](../../assets/derivatives-swimlane.png)
[ ![Derivative process swimlane diagram](../assets/derivatives-swimlane.png)](../assets/derivatives-swimlane.png)
5 changes: 3 additions & 2 deletions docs/concepts/node-media.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,9 @@ This migration is performed by all installation methods, so these values should
be available "out of the box". These values were provided by the PCDM data model
(see [RDF in Islandora](rdf.md)),
and not all values are associated with behaviours you might expect - for instance,
we do not make transcripts show up by tagging a file with "Transcript". See
[transcripts](../user-documentation/transcripts.md) instead.
Islandora is not configured out-of-the box to display a transcript if you add a
Media (file) and tag it as "Transcript". See [Audio](../models/audio.md) and
[Video](../models/video.md) for setting up transcripts.

!!! note "Standard vs Multi-file media model"
This describes the stadard file-media relationship in Islandora.
Expand Down
Empty file.
28 changes: 28 additions & 0 deletions docs/models/audio.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Audio

## Media and File Types

Islandora Defaults uses the built-in Drupal "Audio" media type for video. Islandora Defaults configures it to accept files of type `mp3`, `wav`, and `aac`.

## Derivatives

Islandora uses Homarus (ffmpeg as a microservice) to create audio derivatives. Islandora Defaults sets you up to create:

* "Service file" from the original file, with parameters `-codec:a libmp3lame -q:a 5`, stored in the public filesystem

These parameters can be changed in the configuration for the Drupal Action that Islandora uses to generate an Audio derivative.

Islandora Defaults sets up a context to automatically create this derivative when:

* The Audio media is tagged with the "Original File" term (a term with External URI `http://pcdm.org/use#OriginalFile`)
* The media's parent node is tagged with the "Audio" model (a term with External URI `http://purl.org/coar/resource_type/c_18cc`)

The mimetype formats allowed by Homarus are configured in Homarus itself - see [Installing Crayfish](../installation/manual/installing_crayfish/#homarus-audiovideo-derivatives)

## Display

Drupal provides an "Audio" field formatter for file fields that displays a simple playable audio widget. It works but does not support captions/subtitles. Islandora provides a "Audio with captions" formatter that allows for captions.

To use the captions feature out of the box, add the captions track as a WEBVTT file (`.vtt`) in the Audio media's "Track" field (see below regarding which Audio media to use). If you don't have the "Track" field (provided by Islandora Defaults), create a field of type "Media Track" (a type provided by Islandora) on the same Media (or more broadly, same entity) as your audio file. Then use the Manage Display page to set your audio file field to render using the "Audio with captions" field formatter.

If you're using Islandora Defaults, you can expect to see an audio player on your node. This is done with a special view (an EVA view) that displays service files, which is configured to show on Repository Item's default display mode (on the "Manage Display" page). The EVA view renders the service file media using the "Source" view mode. For Audio media, this is configured to show only the audio file using the "Audio with Captions" widget. Note that captions, to be displayed, must be on the media that is playing. Thus when the Service file media is being played, captions on the Original File media are ignored.
31 changes: 31 additions & 0 deletions docs/models/video.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Video

## Media and file types

Islandora Defaults uses the built-in Drupal "Video" media type for videos. Islandora Defaults configures it to accept files of type `mp4`.

The Install Profile also makes available the "Remote video" media type, but its behaviour has not been publically documented.

## Derivatives

Islandora uses Homarus (ffmpeg as a microservice) to create video derivatives. Islandora Defaults sets you up to create:

* Service file with mimetype video/mp4 [yes, this is the same as the input, i'm not sure if it downsamples]
* Thumbnail with mimetype image/jpeg, derived from one second into the video and scaled down to ~100 px using the command `-ss 00:00:01.000 -frames 1 -vf scale=100:-2`.

These parameters can be changed in the configuration for the Drupal Actions that Islandora uses to create video derivatives.

Islandora Defaults sets up a context to automatically create this derivative when:

* The Video media is tagged with the "Original File" term (a term with External URI `http://pcdm.org/use#OriginalFile`)
* The media's parent node is tagged with the "Video" model (a term with External URI `http://purl.org/coar/resource_type/c_18cc`)

The mimetype formats allowed by Homarus are configured in Homarus itself - see [Installing Crayfish](../installation/manual/installing_crayfish/#homarus-audiovideo-derivatives)

## Display

Drupal provides a "Video" field formatter for file fields that displays a simple playable video widget. It works but does not support captions/subtitles. Islandora provides a "Video with Captions" formatter that allows for captions.

To use the Captions feature out of the box, add the captions track as a WEBVTT file (`.vtt`) in the Video media's "Track" field (see below regarding which Video media to use). If you don't have the "Track" field (provided by Islandora Defaults), create a field of type "Media Track" (a type provided by Islandora) on the same Media (or more broadly, same entity) as your audio file. Then use the Manage Display page to set your audio file field to render using the "Audio with captions" field formatter.

If you're using Islandora Defaults, you can expect to see a video player on your node. This is done with a special view (an EVA view) that displays service files, which is configured to show on the default view of Repository Items (see the "Manage Display" page). The EVA view renders the service file media using the "Source" view mode. For Video media, this is configured to show only the video file using the "Video with Captions" formatter. Thus when the Service file media is being played, captions on the Original File media are ignored.
2 changes: 1 addition & 1 deletion docs/technical-documentation/migrate-csv.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ This tutorial uses the configurations and code available in the [migrate_islando

Sample CSV and images are also included in the module as a convenience so they are easily available on the Drupal server running the migration. (This is not the recommended method for making files available to Drupal in a real migration.)

The module also contains a Migrate process plugin that transforms strings into associative arrays. This is useful for populating multiple Linked Agent fields. (See "[Typed Relation](../user-documentation/metadata/#typed-relation)" for more information on the Linked Agent field.) It will be available when this module is enabled, and the node migration uses it. It was written generically and will hopefully become part of Migrate Plus, but for now it is here.
The module also contains a Migrate process plugin that transforms strings into associative arrays. This is useful for populating multiple Linked Agent fields. (See "[Typed Relation](../../user-documentation/metadata#typed-relation)" for more information on the Linked Agent field.) It will be available when this module is enabled, and the node migration uses it. It was written generically and will hopefully become part of Migrate Plus, but for now it is here.

When you are ready to create your actual migrations, the contents of this repository can function as a template for you to create the YAML files defining your own migrations.

Expand Down

0 comments on commit 67ee042

Please sign in to comment.