class ReviewForm in Drupal 8
Same name and namespace in other branches
- 9 core/modules/migrate_drupal_ui/src/Form/ReviewForm.php \Drupal\migrate_drupal_ui\Form\ReviewForm
Migrate Upgrade review form.
This confirmation form provides the user with a summary of all the modules enabled on the source site and whether they will be upgraded or not. Data from a module's .migrate_drupal.yml file and all the migration plugins (source, destination and field) for each enabled Drupal 8 module are used to decide the migration status for each enabled module on the source site.
The migration status displayed on the Review page is a list of all the enabled modules on the source site divided into two categories, those that will not be upgraded and those that will be upgraded. The intention is to provide the admin with enough information to decide if it is OK to proceed with the upgrade.
@internal
Hierarchy
- class \Drupal\Core\Form\FormBase implements ContainerInjectionInterface, FormInterface uses DependencySerializationTrait, LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\migrate_drupal_ui\Form\MigrateUpgradeFormBase uses MigrationConfigurationTrait
- class \Drupal\migrate_drupal_ui\Form\ReviewForm
- class \Drupal\migrate_drupal_ui\Form\MigrateUpgradeFormBase uses MigrationConfigurationTrait
Expanded class hierarchy of ReviewForm
1 string reference to 'ReviewForm'
- migrate_drupal_ui.routing.yml in core/
modules/ migrate_drupal_ui/ migrate_drupal_ui.routing.yml - core/modules/migrate_drupal_ui/migrate_drupal_ui.routing.yml
File
- core/
modules/ migrate_drupal_ui/ src/ Form/ ReviewForm.php, line 31
Namespace
Drupal\migrate_drupal_ui\FormView source
class ReviewForm extends MigrateUpgradeFormBase {
/**
* The migrations.
*
* @var \Drupal\migrate\Plugin\MigrationInterface[]
*/
protected $migrations;
/**
* Migration state service.
*
* @var \Drupal\migrate_drupal\MigrationState
*/
protected $migrationState;
/**
* ReviewForm constructor.
*
* @param \Drupal\Core\State\StateInterface $state
* The state service.
* @param \Drupal\migrate\Plugin\MigrationPluginManagerInterface $migration_plugin_manager
* The migration plugin manager service.
* @param \Drupal\Core\TempStore\PrivateTempStoreFactory $tempstore_private
* The private tempstore factory service.
* @param \Drupal\migrate_drupal\MigrationState $migrationState
* Migration state service.
* @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
* The config factory service.
*/
public function __construct(StateInterface $state, MigrationPluginManagerInterface $migration_plugin_manager, PrivateTempStoreFactory $tempstore_private, MigrationState $migrationState, ConfigFactoryInterface $config_factory) {
parent::__construct($config_factory, $migration_plugin_manager, $state, $tempstore_private);
$this->migrationState = $migrationState;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('state'), $container
->get('plugin.manager.migration'), $container
->get('tempstore.private'), $container
->get('migrate_drupal.migration_state'), $container
->get('config.factory'));
}
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'migrate_drupal_ui_review_form';
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
// Get all the data needed for this form.
$version = $this->store
->get('version');
$this->migrations = $this->store
->get('migrations');
// Fetch the source system data at the first opportunity.
$system_data = $this->store
->get('system_data');
// If data is missing or this is the wrong step, start over.
if (!$version || !$this->migrations || !$system_data || $this->store
->get('step') != 'review') {
return $this
->restartUpgradeForm();
}
$form = parent::buildForm($form, $form_state);
$form['#title'] = $this
->t('What will be upgraded?');
$migrations = $this->migrationPluginManager
->createInstances(array_keys($this->store
->get('migrations')));
// Get the upgrade states for the source modules.
$display = $this->migrationState
->getUpgradeStates($version, $system_data, $migrations);
// Missing migrations.
$missing_module_list = [
'#type' => 'details',
'#open' => TRUE,
'#title' => $this
->t('Modules that will not be upgraded'),
'#summary_attributes' => [
'id' => [
'error',
],
],
'#description' => $this
->t("The new site is missing modules corresponding to the old site's modules. Unless they are installed prior to the upgrade, configuration and/or content needed by them will not be available on your new site. <a href=':review'>Read the checklist</a> to help decide what to do.", [
':review' => 'https://www.drupal.org/docs/8/upgrade/upgrade-using-web-browser#pre-upgrade-analysis',
]),
'#weight' => 2,
];
$missing_module_list['module_list'] = [
'#type' => 'table',
'#header' => [
$this
->t('Drupal @version', [
'@version' => $version,
]),
$this
->t('Drupal @version', [
'@version' => $this->destinationSiteVersion,
]),
],
];
$missing_count = 0;
if (isset($display[MigrationState::NOT_FINISHED])) {
foreach ($display[MigrationState::NOT_FINISHED] as $source_module => $destination_modules) {
$missing_count++;
// Get the migration status for this $source_module, if a module of the
// same name exists on the destination site.
$missing_module_list['module_list'][] = [
'source_module' => [
'#type' => 'html_tag',
'#tag' => 'span',
'#value' => $source_module,
'#attributes' => [
'class' => [
'upgrade-analysis-report__status-icon',
'upgrade-analysis-report__status-icon--error',
],
],
],
'destination_module' => [
'#plain_text' => $destination_modules,
],
];
}
}
// Available migrations.
$available_module_list = [
'#type' => 'details',
'#title' => $this
->t('Modules that will be upgraded'),
'#summary_attributes' => [
'id' => [
'checked',
],
],
'#weight' => 4,
];
$available_module_list['module_list'] = [
'#type' => 'table',
'#header' => [
$this
->t('Drupal @version', [
'@version' => $version,
]),
$this
->t('Drupal @version', [
'@version' => $this->destinationSiteVersion,
]),
],
];
$available_count = 0;
if (isset($display[MigrationState::FINISHED])) {
foreach ($display[MigrationState::FINISHED] as $source_module => $destination_modules) {
$available_count++;
$available_module_list['module_list'][] = [
'source_module' => [
'#type' => 'html_tag',
'#tag' => 'span',
'#value' => $source_module,
'#attributes' => [
'class' => [
'upgrade-analysis-report__status-icon',
'upgrade-analysis-report__status-icon--checked',
],
],
],
'destination_module' => [
'#plain_text' => $destination_modules,
],
];
}
}
$counters = [];
$general_info = [];
if ($missing_count) {
$counters[] = [
'#theme' => 'status_report_counter',
'#amount' => $missing_count,
'#text' => $this
->formatPlural($missing_count, 'Module will not be upgraded', 'Modules will not be upgraded'),
'#severity' => 'error',
'#weight' => 0,
];
$general_info[] = $missing_module_list;
}
if ($available_count) {
$counters[] = [
'#theme' => 'status_report_counter',
'#amount' => $available_count,
'#text' => $this
->formatPlural($available_count, 'Module will be upgraded', 'Modules will be upgraded'),
'#severity' => 'checked',
'#weight' => 1,
];
$general_info[] = $available_module_list;
}
$form['status_report_page'] = [
'#theme' => 'status_report_page',
'#counters' => $counters,
'#general_info' => $general_info,
];
$form['#attached']['library'][] = 'migrate_drupal_ui/base';
return $form;
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$config['source_base_path'] = $this->store
->get('source_base_path');
$batch = [
'title' => $this
->t('Running upgrade'),
'progress_message' => '',
'operations' => [
[
[
MigrateUpgradeImportBatch::class,
'run',
],
[
array_keys($this->migrations),
$config,
],
],
],
'finished' => [
MigrateUpgradeImportBatch::class,
'finished',
],
];
batch_set($batch);
$form_state
->setRedirect('<front>');
$this->store
->set('step', 'overview');
$this->state
->set('migrate_drupal_ui.performed', REQUEST_TIME);
}
/**
* {@inheritdoc}
*/
public function getConfirmText() {
return $this
->t('Perform upgrade');
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
FormBase:: |
protected | property | The request stack. | 1 |
FormBase:: |
protected | property | The route match. | |
FormBase:: |
protected | function | Retrieves a configuration object. | |
FormBase:: |
protected | function | Gets the config factory for this form. | 1 |
FormBase:: |
private | function | Returns the service container. | |
FormBase:: |
protected | function | Gets the current user. | |
FormBase:: |
protected | function | Gets the request object. | |
FormBase:: |
protected | function | Gets the route match. | |
FormBase:: |
protected | function | Gets the logger for a specific channel. | |
FormBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
FormBase:: |
public | function | Resets the configuration factory. | |
FormBase:: |
public | function | Sets the config factory for this form. | |
FormBase:: |
public | function | Sets the request stack object to use. | |
FormBase:: |
public | function |
Form validation handler. Overrides FormInterface:: |
62 |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
MigrateUpgradeFormBase:: |
protected | property | The destination site major version. | |
MigrateUpgradeFormBase:: |
protected | property | Private temporary storage. | |
MigrateUpgradeFormBase:: |
protected | function | Helper to redirect to the Overview form. | |
MigrationConfigurationTrait:: |
protected | property | The config factory service. | |
MigrationConfigurationTrait:: |
protected | property | The follow-up migration tags. | |
MigrationConfigurationTrait:: |
protected | property | The migration plugin manager service. | |
MigrationConfigurationTrait:: |
protected | property | The state service. | |
MigrationConfigurationTrait:: |
protected | function | Creates the necessary state entries for SqlBase::getDatabase() to work. | |
MigrationConfigurationTrait:: |
protected | function | Gets the config factory service. | |
MigrationConfigurationTrait:: |
protected | function | Gets the database connection for the source Drupal database. | |
MigrationConfigurationTrait:: |
protected | function | Returns the follow-up migration tags. | |
MigrationConfigurationTrait:: |
public static | function | Determines what version of Drupal the source database contains. | |
MigrationConfigurationTrait:: |
protected | function | Gets the migration plugin manager service. | |
MigrationConfigurationTrait:: |
protected | function | Gets the migrations for import. | |
MigrationConfigurationTrait:: |
protected | function | Gets the state service. | |
MigrationConfigurationTrait:: |
protected | function | Gets the system data from the system table of the source Drupal database. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
ReviewForm:: |
protected | property | The migrations. | |
ReviewForm:: |
protected | property | Migration state service. | |
ReviewForm:: |
public | function |
Form constructor. Overrides MigrateUpgradeFormBase:: |
|
ReviewForm:: |
public static | function |
Instantiates a new instance of this class. Overrides MigrateUpgradeFormBase:: |
|
ReviewForm:: |
public | function |
Returns a caption for the button that confirms the action. Overrides MigrateUpgradeFormBase:: |
|
ReviewForm:: |
public | function |
Returns a unique string identifying the form. Overrides FormInterface:: |
|
ReviewForm:: |
public | function |
Form submission handler. Overrides FormInterface:: |
|
ReviewForm:: |
public | function |
ReviewForm constructor. Overrides MigrateUpgradeFormBase:: |
|
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |