Browse Source

Work on #1491.

pull/783/head
Mark Jordan 6 years ago
parent
commit
b9b88e373b
  1. 7
      islandora.libraries.yml
  2. 31
      islandora.module
  3. 6
      js/image_media_form_defaults.js

7
islandora.libraries.yml

@ -0,0 +1,7 @@
image_media_form_defaults:
version: 1.x
js:
js/image_media_form_defaults.js: {}
dependencies:
- core/jquery
- core/jquery.once

31
islandora.module

@ -316,6 +316,24 @@ 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 +486,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

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