Issue #1938822 by sandhya.m, EllaTheHarpy, tim.plunkett, alexpott, YesCT: Convert update_status() to a new-style Controller.

8.0.x
Alex Pott 2013-05-08 18:49:27 +01:00
parent 4889cf6bc7
commit a90da0d23e
4 changed files with 76 additions and 19 deletions

View File

@ -0,0 +1,65 @@
<?php
/**
* @file
* Contains \Drupal\update\Controller\UpdateController.
*/
namespace Drupal\update\Controller;
use Drupal\Core\ControllerInterface;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Controller routines for update routes.
*/
class UpdateController implements ControllerInterface {
/**
* Module handler service.
*
* @var \Drupal\Core\Extension\ModuleHandlerInterface
*/
protected $moduleHandler;
/**
* Constructs update status data.
*
* @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
* Module Handler Service.
*/
public function __construct(ModuleHandlerInterface $module_handler) {
$this->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;
}
}

View File

@ -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',
@ -266,12 +264,15 @@ function update_theme() {
),
'update_report' => array(
'variables' => array('data' => NULL),
'file' => 'update.report.inc',
),
'update_version' => array(
'variables' => array('version' => NULL, 'tag' => NULL, 'class' => array()),
'file' => 'update.report.inc',
),
'update_status_label' => array(
'variables' => array('status' => NULL),
'file' => 'update.report.inc',
),
);
}

View File

@ -5,22 +5,6 @@
* Code required only when rendering the available updates report.
*/
/**
* 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.
*

View File

@ -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'