Skip to content
Snippets Groups Projects

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

1 file
+ 28
23
Compare changes
  • Side-by-side
  • Inline
+ 28
23
@@ -217,10 +217,10 @@ class UpdaterForm extends FormBase {
// Create an entry for this project.
$rows = [];
if ($installed_minor_release) {
$rows['drupal-install-minor'] = $this->getReleaseRow($title, $project_info, $installed_minor_release, $project['title']);
$rows[1] = $this->getReleaseRow($installed_minor_release, $project['title']);
}
if ($next_minor_release) {
$rows['drupal-next-minor'] = $this->getReleaseRow($title, $project_info, $next_minor_release, $project['title']);
$rows[2] = $this->getReleaseRow($next_minor_release, $project['title']);
}
$form['projects'] = [
@@ -236,9 +236,8 @@ class UpdaterForm extends FormBase {
],
'submit' => $this->t('Update'),
],
'#rows' => $rows,
];
$form['projects'] = array_merge($form['projects'], $rows);
if ($form_state->getUserInput()) {
$results = [];
}
@@ -290,13 +289,13 @@ class UpdaterForm extends FormBase {
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$form_state->getTriggeringElement();
$button = $form_state->getTriggeringElement();
$batch = (new BatchBuilder())
->setTitle($this->t('Downloading updates'))
->setInitMessage($this->t('Preparing to download updates'))
->addOperation(
[BatchProcessor::class, 'begin'],
[$form_state->getValue('target_version')]
[$button['#target_version']]
)
->addOperation([BatchProcessor::class, 'stage'])
->setFinishCallback([BatchProcessor::class, 'finishStage'])
@@ -322,19 +321,28 @@ class UpdaterForm extends FormBase {
}
/**
* @param array $title
* @param \Drupal\automatic_updates\ProjectInfo $project_info
* @param \Drupal\automatic_updates_9_3_shim\ProjectRelease $recommended_release
* @param $title1
* Gets a table row for specific release.
*
* @param \Drupal\automatic_updates_9_3_shim\ProjectRelease $release
* The project release.
*
* @return array
* The render array for the table row.
*/
protected function getReleaseRow(array $title, ProjectInfo $project_info, ProjectRelease $recommended_release, $title1): array {
protected function getReleaseRow(ProjectRelease $release): array {
$project_info = new ProjectInfo('drupal');
$project = $project_info->getProjectInfo();
$entry = [
'title' => [
'data' => $title,
'#type' => 'html_tag',
'#tag' => 'p',
'#value' => $project['title'],
],
'installed_version' => [
'#type' => 'html_tag',
'#tag' => 'p',
'#value' => $project_info->getInstalledVersion(),
],
'installed_version' => $project_info->getInstalledVersion(),
'recommended_version' => [
'data' => [
// @todo Is an inline template the right tool here? Is there an Update
@@ -342,23 +350,20 @@ class UpdaterForm extends FormBase {
'#type' => 'inline_template',
'#template' => '{{ release_version }} (<a href="{{ release_link }}" title="{{ project_title }}">{{ release_notes }}</a>)',
'#context' => [
'release_version' => $recommended_release->getVersion(),
'release_link' => $recommended_release->getReleaseUrl(),
'project_title' => $this->t('Release notes for @project_title', ['@project_title' => $title1]),
'release_version' => $release->getVersion(),
'release_link' => $release->getReleaseUrl(),
'project_title' => $this->t('Release notes for @version', ['@version' => $release->getVersion()]),
'release_notes' => $this->t('Release notes'),
],
],
],
'submit' => [
'#type' => 'button',
'#value' => $this->t('Update to @version', ['@version' => $recommended_release->getVersion()]),
'#executes_submit_callback' => TRUE,
'#type' => 'submit',
'#value' => $this->t('Update to @version', ['@version' => $release->getVersion()]),
'#target_version' => $release->getVersion(),
],
];
return [
//'class' => "update-$type",
'data' => $entry,
];
return $entry;
}
}
Loading