Skip to content
Snippets Groups Projects
Commit 967b186a authored by Pravin Gaikwad's avatar Pravin Gaikwad Committed by Jakob P
Browse files

Resolve #3494927 "Acquia dam configs"

parent 3094d5c8
Branches 1.1.x
Tags 1.1.0-rc3
No related merge requests found
......@@ -579,8 +579,112 @@ function acquia_dam_update_9010() {
}
/**
* Inform Drupal about new configuration during 1.0.x -> 1.1.x upgrade process.
* Add Audio and Generic media types.
*/
function acquia_dam_update_9012() {
\Drupal::service('config.installer')->installDefaultConfig('module', 'acquia_dam');
$source = new FileStorage(__DIR__ . '/config/install');
// Update Existing views.
$update_views = [
'acquia_dam_asset_library',
'dam_content_overview',
'acquia_dam_links',
];
// Update existing configurations.
$entity_storage = \Drupal::entityTypeManager()->getStorage('view');
$configs_to_update = $entity_storage->loadMultiple($update_views);
foreach ($configs_to_update as $config) {
$entity = $entity_storage->updateFromStorageRecord($config, $source->read('views.view.' . $config->id()));
$entity->save();
}
$config_to_add = [
'media_type' => [
'media.type.acquia_dam_audio_asset',
'media.type.acquia_dam_generic_asset',
],
'entity_view_display' => [
'core.entity_view_display.media.acquia_dam_audio_asset.default',
'core.entity_view_display.media.acquia_dam_audio_asset.media_library',
'core.entity_view_display.media.acquia_dam_generic_asset.default',
'core.entity_view_display.media.acquia_dam_generic_asset.media_library',
],
];
foreach ($config_to_add as $config_type => $configs) {
$entity_storage = \Drupal::entityTypeManager()->getStorage($config_type);
// Add new configurations.
foreach ($configs as $config) {
$entity = $entity_storage->createFromStorageRecord($source->read($config));
$entity->save();
}
}
// Create the Check for asset update action.
// Define the action.
$action = [
'id' => 'asset_update_check_action',
'label' => 'Check for asset update',
'type' => 'system',
'plugin' => 'asset_update_check_action',
'config' => [],
];
// Check if the action already exists.
if (!\Drupal\system\Entity\Action::load($action['id'])) {
// Create the action.
$action_entity = \Drupal\system\Entity\Action::create($action);
$action_entity->save();
}
}
/**
* DB update hook #9013.
*
* Issue #3477945: Update the existing media types with new configurations.
* Update the view with new configurations.
* Create the Check for asset update action.
*/
function acquia_dam_update_9013() {
$config_map = [
'media_type' => [
'acquia_dam_audio_asset',
'acquia_dam_generic_asset',
'acquia_dam_documents_asset',
'acquia_dam_image_asset',
'acquia_dam_pdf_asset',
'acquia_dam_spinset_asset',
'acquia_dam_video_asset',
],
'entity_view_display' => [
'media.acquia_dam_documents_asset.default',
'media.acquia_dam_documents_asset.media_library',
'media.acquia_dam_image_asset.default',
'media.acquia_dam_image_asset.media_library',
'media.acquia_dam_pdf_asset.default',
'media.acquia_dam_pdf_asset.media_library',
'media.acquia_dam_spinset_asset.default',
'media.acquia_dam_spinset_asset.media_library',
'media.acquia_dam_video_asset.default',
'media.acquia_dam_video_asset.media_library',
'media.acquia_dam_audio_asset.default',
'media.acquia_dam_audio_asset.media_library',
'media.acquia_dam_generic_asset.default',
'media.acquia_dam_generic_asset.media_library',
],
];
$source = new FileStorage(__DIR__ . '/config/install');
foreach ($config_map as $config_type => $configs) {
$entity_storage = \Drupal::entityTypeManager()->getStorage($config_type);
// Update existing configurations.
$configs_to_update = $entity_storage->loadMultiple($configs);
$prefix = $config_type === 'media_type' ? 'media.type.' : 'core.entity_view_display.';
foreach ($configs_to_update as $config) {
$entity = $entity_storage->updateFromStorageRecord($config, $source->read($prefix . $config->id()));
$entity->save();
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment