Skip to content
Snippets Groups Projects

Issue #3264849: Show next minor or current minor updates in Update form

1 file
+ 47
22
Compare changes
  • Side-by-side
  • Inline
+ 47
22
@@ -193,7 +193,6 @@ class UpdaterForm extends FormBase {
if (empty($project['title']) || empty($project['link'])) {
throw new \UnexpectedValueException('Expected project data to have a title and link.');
}
$title = Link::fromTextAndUrl($project['title'], Url::fromUri($project['link']))->toRenderable();
switch ($project['status']) {
case UpdateManagerInterface::NOT_SECURE:
@@ -204,28 +203,33 @@ class UpdaterForm extends FormBase {
case UpdateManagerInterface::NOT_SUPPORTED:
$release_status = $this->t('Unsupported');
break;
}
// Create an entry for this project.
$rows = [];
if ($installed_minor_release) {
$rows['drupal-installed-minor'] = $this->getReleaseRow($installed_minor_release, $release_status);
}
if ($next_minor_release) {
if (!$installed_minor_release) {
$description = $release_status;
}
else {
$description = $this->t('(Minor Update)');
}
$rows['drupal-next-minor'] = $this->getReleaseRow($next_minor_release, $description);
default:
$release_status = $this->t('Available update');
}
$form['current'] = [
'#type' => 'html_tag',
'#tag' => 'h3',
'#value' => $this->t(
'Currently installed version: @version : @status',
[
'@version' => $project_info->getInstalledVersion(),
'@status' => $this->getUpdateStatus($project['status']),
]
),
];
if ($installed_minor_release) {
$form['drupal-installed-minor'] = $this->getReleaseTable($installed_minor_release, $release_status);
if ($next_minor_release) {
$form['drupal-installed-minor']['#caption'] = $this->t('Current minor update');
}
}
if ($next_minor_release) {
$form['drupal-next-minor'] = $this->getReleaseTable($next_minor_release);
$form['drupal-next-minor'] = $this->getReleaseTable($next_minor_release, $installed_minor_release ? $this->t('Minor update') : $release_status);
if ($installed_minor_release) {
$form['drupal-next-minor']['#caption'] = $this->t('Next minor update');
}
}
$form['backup'] = [
@@ -237,9 +241,7 @@ class UpdaterForm extends FormBase {
$results = [];
}
else {
$event = new ReadinessCheckEvent($this->updater, [
'drupal' => $installed_minor_release->getVersion(),
]);
$event = new ReadinessCheckEvent($this->updater);
$this->eventDispatcher->dispatch($event);
$results = $event->getResults();
}
@@ -333,7 +335,7 @@ class UpdaterForm extends FormBase {
'title' => [
'#type' => 'html_tag',
'#tag' => 'p',
'#value' => $project['title'] . ' ' . $release_description,
'#value' => $release_description,
],
'recommended_version' => [
'data' => [
@@ -361,11 +363,10 @@ class UpdaterForm extends FormBase {
private function getReleaseTable(ProjectRelease $release, string $release_description = '') {
$table = [
'#type' => 'table',
'#caption' => $this->t('Update for @version', ['@version' => static::getMajorAndMinorVersion($release->getVersion())]),
'#description' => $this->t('more'),
'#header' => [
'title' => [
'data' => $this->t('Name'),
'data' => $this->t('Update Status'),
'class' => ['update-project-name'],
],
'recommended_version' => [
@@ -379,4 +380,28 @@ class UpdaterForm extends FormBase {
}
private function getUpdateStatus(int $status) {
switch ($status) {
case UpdateManagerInterface::NOT_SECURE:
return $this->t('Security update required!');
break;
case UpdateManagerInterface::REVOKED:
return $this->t('Revoked!');
break;
case UpdateManagerInterface::NOT_SUPPORTED:
return $this->t('Not supported!');
break;
case UpdateManagerInterface::NOT_CURRENT:
return $this->t('Update available');
break;
case UpdateManagerInterface::CURRENT:
return $this->t('Up to date');
break;
}
}
}
Loading