Skip to content
Snippets Groups Projects

Resolve #3484213 "Over eager hookformalter"

1 file
+ 39
36
Compare changes
  • Side-by-side
  • Inline
+ 39
36
@@ -77,45 +77,48 @@ function tmgmt_workspaces_form_alter(array &$form, FormStateInterface $form_stat
if (in_array($form_id, $tmgmt_custom_form_ids, TRUE)) {
$form_state->set('workspace_safe', TRUE);
}
}
if ($form_state->getBuildInfo()['base_form_id'] ?? NULL === 'tmgmt_job_form') {
/** @var \Drupal\workspaces\WorkspaceManagerInterface $workspace_manager */
$workspace_manager = \Drupal::service('workspaces.manager');
/** @var \Drupal\tmgmt\Form\JobForm $form_object */
$form_object = $form_state->getFormObject();
/** @var \Drupal\tmgmt\JobInterface $job */
$job = $form_object->getEntity();
$active_workspace_id = $workspace_manager->hasActiveWorkspace() ? $workspace_manager->getActiveWorkspace()->id() : NULL;
$target_workspace = $job->get('target_workspace')->target_id;
$element = [
'#title' => t('Target workspace'),
'#prefix' => '<div id="tmgmt-ui-target-workspace" class="tmgmt-ui-target-workspace tmgmt-ui-info-item">',
'#suffix' => '</div>',
/**
* Implements hook_form_BASE_FORM_ID_alter() for tmgmt_job_form.
*/
function tmgmt_workspaces_form_tmgmt_job_form_alter(array &$form, FormStateInterface $form_state, string $form_id): void {
/** @var \Drupal\workspaces\WorkspaceManagerInterface $workspace_manager */
$workspace_manager = \Drupal::service('workspaces.manager');
/** @var \Drupal\tmgmt\Form\JobForm $form_object */
$form_object = $form_state->getFormObject();
/** @var \Drupal\tmgmt\JobInterface $job */
$job = $form_object->getEntity();
$active_workspace_id = $workspace_manager->hasActiveWorkspace() ? $workspace_manager->getActiveWorkspace()->id() : NULL;
$target_workspace = $job->get('target_workspace')->target_id;
$element = [
'#title' => t('Target workspace'),
'#prefix' => '<div id="tmgmt-ui-target-workspace" class="tmgmt-ui-target-workspace tmgmt-ui-info-item">',
'#suffix' => '</div>',
];
if (!$job->isUnprocessed()) {
$element += [
'#type' => 'item',
'#markup' => $target_workspace ? _tmgmt_workspaces_get_workspace_label($target_workspace) : t('- None -'),
'#value' => $target_workspace,
];
if (!$job->isUnprocessed()) {
$element += [
'#type' => 'item',
'#markup' => $target_workspace ? _tmgmt_workspaces_get_workspace_label($target_workspace) : t('- None -'),
'#value' => $target_workspace,
];
}
else {
$element += [
'#type' => 'select',
'#options' => _tmgmt_workspaces_get_workspace_options(),
'#empty_option' => t('- None -'),
'#default_value' => $target_workspace ?: $active_workspace_id,
];
}
// Insert our form element after 'target_language'.
$index = array_search('target_language', array_keys($form['info'])) + 1;
$form['info'] = array_slice($form['info'], 0, $index, TRUE) +
['target_workspace' => $element] +
array_slice($form['info'], $index, NULL, TRUE);
}
else {
$element += [
'#type' => 'select',
'#options' => _tmgmt_workspaces_get_workspace_options(),
'#empty_option' => t('- None -'),
'#default_value' => $target_workspace ?: $active_workspace_id,
];
}
// Insert our form element after 'target_language'.
$index = array_search('target_language', array_keys($form['info'])) + 1;
$form['info'] = array_slice($form['info'], 0, $index, TRUE) +
['target_workspace' => $element] +
array_slice($form['info'], $index, NULL, TRUE);
}
/**
Loading