function upgrade_rector_form_drupal_upgrade_status_form_alter in Upgrade Rector 8
Implements hook_form_FORM_ID_alter().
File
- ./
upgrade_rector.module, line 21
Code
function upgrade_rector_form_drupal_upgrade_status_form_alter(&$form, FormStateInterface $form_state, $form_id) {
// Weave in rector results with upgrade status results.
$projects = \Drupal::service('upgrade_rector.project_collector')
->collectProjects();
$rector_results = \Drupal::service('keyvalue')
->get('upgrade_status_rector_results');
$rector_processor = \Drupal::service('upgrade_rector.rector_processor');
$categories = [
'custom',
'contrib',
];
foreach ($categories as $category) {
$states = [
'installed',
'uninstalled',
];
foreach ($states as $state) {
if (!isset($form[$category]['data'][$state]['#options'])) {
continue;
}
foreach ($form[$category]['data'][$state]['#options'] as $key => &$project) {
$raw_rector_result = $rector_results
->get($key);
if (empty($raw_rector_result)) {
continue;
}
$processed_result = $rector_processor
->processResults($raw_rector_result, $projects[$category][$key]);
if ($processed_result['state'] === 'success' && empty($processed_result['patch'])) {
$class = 'upgrade-status-ok-label';
$label = t('Nothing to patch');
}
elseif ($processed_result['state'] === 'fail') {
$class = 'upgrade-status-error-label';
$label = t('Patch error');
}
else {
$class = 'upgrade-status-ok-label';
$label = t('Patch available');
}
$url = Url::fromRoute('upgrade_rector.result', [
'type' => $projects[$category][$key]
->getType(),
'project_machine_name' => $key,
]);
$rector_info = [
'rector_info' => [
'#type' => 'link',
'#title' => $label,
'#url' => $url,
'#attributes' => [
'class' => [
'use-ajax',
$class,
],
'data-dialog-type' => 'modal',
'data-dialog-options' => Json::encode([
'width' => 1024,
'height' => 568,
]),
],
],
];
$status = $project['status']['data'];
if (!is_array($status)) {
$status = [
'#type' => 'markup',
'#markup' => $status,
];
}
$project['status']['data'] = [
$status,
$rector_info,
];
}
}
}
// Add checkbox to enable running rector.
$form['drupal_upgrade_status_form']['action']['run_rector'] = [
'#type' => 'checkbox',
'#title' => t('Generate patches for scanned projects with rector.'),
'#default_value' => TRUE,
];
}