diff --git a/core/modules/update/lib/Drupal/update/Controller/UpdateController.php b/core/modules/update/lib/Drupal/update/Controller/UpdateController.php new file mode 100644 index 0000000..d46af8a --- /dev/null +++ b/core/modules/update/lib/Drupal/update/Controller/UpdateController.php @@ -0,0 +1,65 @@ +moduleHandler = $module_handler; + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container) { + return new static( + $container->get('module_handler') + ); + } + + /** + * Returns a page about the update status of projects. + * + * @return array + * A build array with the update status of projects. + */ + public function updateStatus() { + $build = array( + '#theme' => 'update_report' + ); + if ($available = update_get_available(TRUE)) { + $this->moduleHandler->loadInclude('update', 'compare.inc'); + $build['#data'] = update_calculate_project_data($available); + } + else { + $build['#data'] = _update_no_data(); + } + return $build; + } + +} diff --git a/core/modules/update/update.module b/core/modules/update/update.module index 7dee311..59b3575 100644 --- a/core/modules/update/update.module +++ b/core/modules/update/update.module @@ -158,10 +158,8 @@ function update_menu() { $items['admin/reports/updates'] = array( 'title' => 'Available updates', 'description' => 'Get a status report about available updates for your installed modules and themes.', - 'page callback' => 'update_status', - 'access arguments' => array('administer site configuration'), + 'route_name' => 'update_status', 'weight' => -50, - 'file' => 'update.report.inc', ); $items['admin/reports/updates/list'] = array( 'title' => 'List', diff --git a/core/modules/update/update.report.inc b/core/modules/update/update.report.inc index 607b523..35677d8 100644 --- a/core/modules/update/update.report.inc +++ b/core/modules/update/update.report.inc @@ -6,22 +6,6 @@ */ /** - * Page callback: Generates a page about the update status of projects. - * - * @see update_menu() - */ -function update_status() { - if ($available = update_get_available(TRUE)) { - module_load_include('inc', 'update', 'update.compare'); - $data = update_calculate_project_data($available); - return theme('update_report', array('data' => $data)); - } - else { - return theme('update_report', array('data' => _update_no_data())); - } -} - -/** * Returns HTML for the project status report. * * @param array $variables diff --git a/core/modules/update/update.routing.yml b/core/modules/update/update.routing.yml index f201302..16ac4b4 100644 --- a/core/modules/update/update.routing.yml +++ b/core/modules/update/update.routing.yml @@ -4,3 +4,10 @@ update_settings: _form: '\Drupal\update\UpdateSettingsForm' requirements: _permission: 'administer site configuration' + +update_status: + pattern: '/admin/reports/updates' + defaults: + _content: '\Drupal\update\Controller\UpdateController::updateStatus' + requirements: + _permission: 'administer site configuration'