Initial Drupal 11 with DDEV setup
This commit is contained in:
89
web/core/modules/update/src/Controller/UpdateController.php
Normal file
89
web/core/modules/update/src/Controller/UpdateController.php
Normal file
@ -0,0 +1,89 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\update\Controller;
|
||||
|
||||
use Drupal\Core\Batch\BatchBuilder;
|
||||
use Drupal\Core\Controller\ControllerBase;
|
||||
use Drupal\Core\Render\RendererInterface;
|
||||
use Drupal\update\UpdateFetcherInterface;
|
||||
use Drupal\update\UpdateManagerInterface;
|
||||
|
||||
/**
|
||||
* Controller routines for update routes.
|
||||
*/
|
||||
class UpdateController extends ControllerBase {
|
||||
|
||||
/**
|
||||
* Update manager service.
|
||||
*
|
||||
* @var \Drupal\update\UpdateManagerInterface
|
||||
*/
|
||||
protected $updateManager;
|
||||
|
||||
/**
|
||||
* The renderer.
|
||||
*
|
||||
* @var \Drupal\Core\Render\RendererInterface
|
||||
*/
|
||||
protected $renderer;
|
||||
|
||||
/**
|
||||
* Constructs update status data.
|
||||
*
|
||||
* @param \Drupal\update\UpdateManagerInterface $update_manager
|
||||
* Update Manager Service.
|
||||
* @param \Drupal\Core\Render\RendererInterface $renderer
|
||||
* The renderer.
|
||||
*/
|
||||
public function __construct(UpdateManagerInterface $update_manager, RendererInterface $renderer) {
|
||||
$this->updateManager = $update_manager;
|
||||
$this->renderer = $renderer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a page about the update status of projects.
|
||||
*
|
||||
* @return array
|
||||
* A build array with the update status of projects.
|
||||
*/
|
||||
public function updateStatus() {
|
||||
$build = [
|
||||
'#theme' => 'update_report',
|
||||
];
|
||||
if ($available = update_get_available(TRUE)) {
|
||||
$this->moduleHandler()->loadInclude('update', 'compare.inc');
|
||||
$build['#data'] = update_calculate_project_data($available);
|
||||
|
||||
// @todo Consider using 'fetch_failures' from the 'update' collection
|
||||
// in the key_value_expire service for this?
|
||||
$fetch_failed = FALSE;
|
||||
foreach ($build['#data'] as $project) {
|
||||
if ($project['status'] === UpdateFetcherInterface::NOT_FETCHED) {
|
||||
$fetch_failed = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($fetch_failed) {
|
||||
$message = ['#theme' => 'update_fetch_error_message'];
|
||||
$this->messenger()->addError($this->renderer->renderInIsolation($message));
|
||||
}
|
||||
}
|
||||
return $build;
|
||||
}
|
||||
|
||||
/**
|
||||
* Manually checks the update status without the use of cron.
|
||||
*/
|
||||
public function updateStatusManually() {
|
||||
$this->updateManager->refreshUpdateData();
|
||||
$batch_builder = (new BatchBuilder())
|
||||
->setTitle($this->t('Checking available update data'))
|
||||
->addOperation([$this->updateManager, 'fetchDataBatch'], [])
|
||||
->setProgressMessage($this->t('Trying to check available update data ...'))
|
||||
->setErrorMessage($this->t('Error checking available update data.'))
|
||||
->setFinishCallback('update_fetch_data_finished');
|
||||
batch_set($batch_builder->toArray());
|
||||
return batch_process('admin/reports/updates');
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user