Browse Source

Work on #1491.

pull/777/head
Mark Jordan 6 years ago
parent
commit
1a08fff117
  1. 30
      islandora.module
  2. 6
      js/image_media_form_defaults.js

30
islandora.module

@ -316,6 +316,23 @@ function islandora_preprocess_node(&$variables) {
}
}
/**
* Implements hook_form_alter().
*/
function islandora_form_alter(&$form, FormStateInterface $form_state, $form_id) {
$media_add_forms = ['media_audio_add_form', 'media_document_add_form',
'media_extracted_text_add_form', 'media_file_add_form', 'media_image_add_form',
'media_fits_technical_metadata_add_form', 'media_video_add_form'];
if (in_array($form['#form_id'], $media_add_forms)) {
$params = \Drupal::request()->query->all();
$media_of_nid = $params['edit']['field_media_of']['widget'][0]['target_id'];
$node = \Drupal::entityTypeManager()->getStorage('node')->load($media_of_nid);
$title = $node->getTitle();
$form['name']['widget'][0]['value']['#default_value'] = $title;
}
}
/**
* Implements hook_entity_form_display_alter().
*/
@ -468,3 +485,16 @@ function islandora_preprocess_views_view_table(&$variables) {
}
}
}
/**
* Implements hook_page_attachments().
*/
function islandora_page_attachments(array &$attachments) {
$current_path = \Drupal::service('path.current')->getPath();
$path_args = explode('/', ltrim($current_path, '/'));
// Need to populate the "Alt text" field using JavaScript since it is not part of
// the rendered form, it is added via Ajax on file upload.
if (count($path_args) >= 3 && $path_args[0] == 'media' && $path_args[1] == 'add' && $path_args[2] == 'image') {
$attachments['#attached']['library'][] = 'islandora/image_media_form_defaults';
}
}

6
js/image_media_form_defaults.js

@ -1,8 +1,6 @@
(function (Drupal, $) {
"use strict";
var ImageName = $('input[id=edit-name-0-value]').val();
$(document).ajaxSuccess(function() {
$(document).ajaxSuccess(function () {
$('input[data-drupal-selector=edit-field-media-image-0-alt]').val(ImageName);
});
}) (Drupal, jQuery);
})(Drupal, jQuery);

Loading…
Cancel
Save