function thunder_media_update_8101 in Thunder 8.2
Remove "Language" filter and add descriptions from media browsers.
File
- modules/
thunder_media/ thunder_media.install, line 567 - Contains.
Code
function thunder_media_update_8101() {
/** @var \Drupal\update_helper\Updater $updater */
$updater = \Drupal::service('update_helper.updater');
$updateLogger = $updater
->logger();
// Perform removal of language filters from relevant views.
$successfulUpdate = TRUE;
$viewIds = [
'image_browser',
'media_browser',
];
foreach ($viewIds as $viewId) {
/** @var \Drupal\views\Entity\View $view */
$view = View::load($viewId);
if (!empty($view) && !empty($view
->getDisplay('default')['display_options']['filters']['langcode'])) {
unset($view
->getDisplay('default')['display_options']['filters']['langcode']);
try {
$view
->save();
$updateLogger
->info(t('Language filter for media browser view "@view_id" is removed.', [
'@view_id' => $viewId,
]));
} catch (EntityStorageException $storageException) {
$successfulUpdate = FALSE;
$updateLogger
->warning(t('Unable to save changes for view: @view_id.', [
'@view_id' => $viewId,
]));
}
}
else {
$successfulUpdate = FALSE;
$updateLogger
->warning(t('Unable to remove Language filter for media browser view: @view_id.', [
'@view_id' => $viewId,
]));
}
}
// Update names and descriptions for Image view.
$expectedImageViewConfig['display']['default']['display_options']['filters']['status']['group_info']['description'] = '';
$expectedImageViewConfig['display']['default']['display_options']['filters']['status']['group_info']['default_group'] = 'All';
$expectedImageViewConfig['display']['default']['display_options']['filters']['name']['expose']['label'] = 'Media name';
$expectedImageViewConfig['display']['default']['display_options']['filters']['name']['expose']['description'] = '';
$newImageViewConfig['display']['default']['display_options']['filters']['status']['group_info']['description'] = 'Filter by status';
$newImageViewConfig['display']['default']['display_options']['filters']['status']['group_info']['default_group'] = '1';
$newImageViewConfig['display']['default']['display_options']['filters']['name']['expose']['label'] = 'Image name';
$newImageViewConfig['display']['default']['display_options']['filters']['name']['expose']['description'] = 'Filter by name';
if (_thunder_media_update_config('views.view.image_browser', $newImageViewConfig, $expectedImageViewConfig)) {
$updateLogger
->info(t('Entity browser image view filter descriptions and names are updated.'));
}
else {
$successfulUpdate = FALSE;
$updateLogger
->warning(t('Unable to change entity browser image view filter descriptions and names.'));
}
// If update is successful for all views, then check entry in checklist.
if (!$successfulUpdate) {
$updateLogger
->warning(t('Unable to remove language filters from views. Please perform this process manually.'));
}
try {
/** @var \Drupal\update_helper_checklist\UpdateChecklist $updateChecklist */
$updateChecklist = \Drupal::service('update_helper_checklist.update_checklist');
if ($successfulUpdate) {
$updateChecklist
->markUpdatesSuccessful([
'thunder' => [
'v1_1__remove_entity_browser_language_filter',
],
]);
}
else {
$updateChecklist
->markUpdatesFailed([
'thunder' => [
'v1_1__remove_entity_browser_language_filter',
],
]);
}
} catch (EntityStorageException $ee) {
$updateLogger
->warning(t('Unable to mark update in checklist.'));
} catch (ServiceNotFoundException $se) {
// If service is not available, we will just ignore it.
}
// Output log result depending on channel used for update execution.
return $updateLogger
->output();
}