BackupRestoreForm.php in Backup and Migrate 8.4
File
src/Form/BackupRestoreForm.php
View source
<?php
namespace Drupal\backup_migrate\Form;
use BackupMigrate\Drupal\Config\DrupalConfigHelper;
use Drupal\backup_migrate\Entity\Destination;
use Drupal\Core\Form\ConfirmFormBase;
use Drupal\Core\Form\FormStateInterface;
class BackupRestoreForm extends ConfirmFormBase {
var $destination;
var $backup_id;
public function getQuestion() {
return $this
->t('Are you sure you want to restore this backup?');
}
public function getConfirmText() {
return $this
->t('Restore');
}
public function getCancelUrl() {
return $this->destination
->toUrl('backups');
}
public function getFormId() {
return 'backup_migrate_backup_restore_confirm';
}
public function buildForm(array $form, FormStateInterface $form_state, $backup_migrate_destination = NULL, $backup_id = NULL) {
$this->destination = $backup_migrate_destination;
$this->backup_id = $backup_id;
$bam = backup_migrate_get_service_object();
$form['source_id'] = DrupalConfigHelper::getPluginSelector($bam
->sources(), $this
->t('Restore To'));
$conf_schema = $bam
->plugins()
->map('configSchema', [
'operation' => 'restore',
]);
$form += DrupalConfigHelper::buildFormFromSchema($conf_schema, $bam
->plugins()
->config());
$form += DrupalConfigHelper::buildAllPluginsForm($bam
->plugins(), 'restore');
return parent::buildForm($form, $form_state);
}
public function submitForm(array &$form, FormStateInterface $form_state) {
$config = $form_state
->getValues();
backup_migrate_perform_restore($config['source_id'], $this->destination
->id(), $this->backup_id, $config);
$form_state
->setRedirectUrl($this
->getCancelUrl());
}
}