You are here

class ConfigDistroImportForm in Config Distro 8

Construct the storage changes in a configuration synchronization form.

Hierarchy

Expanded class hierarchy of ConfigDistroImportForm

1 string reference to 'ConfigDistroImportForm'
config_distro.routing.yml in ./config_distro.routing.yml
config_distro.routing.yml

File

src/Form/ConfigDistroImportForm.php, line 17

Namespace

Drupal\config_distro\Form
View source
class ConfigDistroImportForm extends ConfigSync {

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container) {
    $class = parent::create($container);

    // Substitute our storage for the default one.
    $class->syncStorage = $container
      ->get('config_distro.storage.distro');

    // Prevent snapshot messages by using a storage that won't have core.extension.
    // @see ConfigSync::buildForm().
    $class->snapshotStorage = new NullStorage();
    return $class;
  }

  /**
   * {@inheritdoc}
   */
  public function getFormId() {
    return 'config_distro_import_form';
  }

  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    $form = parent::buildForm($form, $form_state);

    // @todo: why is this empty?
    $storage_comparer = $form_state
      ->get('storage_comparer');
    if (!isset($storage_comparer)) {
      $storage_comparer = new StorageComparer($this->syncStorage, $this->activeStorage, $this->configManager);
    }
    foreach ($storage_comparer
      ->getAllCollectionNames() as $collection) {
      if (isset($form[$collection])) {
        foreach (array_keys($form[$collection]) as $config_change_type) {
          if (isset($form[$collection][$config_change_type]['list'])) {
            foreach ($form[$collection][$config_change_type]['list']['#rows'] as &$row) {
              $config_name = $row['name'];
              if ($config_change_type == 'rename') {
                $names = $storage_comparer
                  ->extractRenameNames($config_name);
                $route_options = [
                  'source_name' => $names['old_name'],
                  'target_name' => $names['new_name'],
                ];
              }
              else {
                $route_options = [
                  'source_name' => $config_name,
                ];
              }
              if ($collection != StorageInterface::DEFAULT_COLLECTION) {
                $route_name = 'config_distro.diff_collection';
                $route_options['collection'] = $collection;
              }
              else {
                $route_name = 'config_distro.diff';
              }

              // Set the diff url to our own.
              $row['operations']['data']['#links']['view_diff']['url'] = Url::fromRoute($route_name, $route_options);
            }
          }
        }
      }
    }
    return $form;
  }

  /**
   * Dispatches an event to notify modules about a successful import.
   *
   * This method was deprecated in Drupal 8.6.x and will be called only on
   * sites running an earlier version of Drupal core.
   *
   * @see config_distro_batch_alter()
   */
  public static function finishBatch($success, $results, $operations) {
    parent::finishBatch($success, $results, $operations);
    if ($success) {

      // Dispatch an event to notify modules about the successful import.
      \Drupal::service('event_dispatcher')
        ->dispatch(ConfigDistroEvents::IMPORT);
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ConfigDistroImportForm::buildForm public function Form constructor. Overrides ConfigSync::buildForm
ConfigDistroImportForm::create public static function Instantiates a new instance of this class. Overrides ConfigSync::create
ConfigDistroImportForm::finishBatch public static function Dispatches an event to notify modules about a successful import. Overrides ConfigSync::finishBatch
ConfigDistroImportForm::getFormId public function Returns a unique string identifying the form. Overrides ConfigSync::getFormId
ConfigSync::$activeStorage protected property The active configuration object.
ConfigSync::$configManager protected property The configuration manager.
ConfigSync::$eventDispatcher protected property Event dispatcher.
ConfigSync::$importTransformer protected property The import transformer service.
ConfigSync::$lock protected property The database lock object.
ConfigSync::$moduleExtensionList protected property The module extension list.
ConfigSync::$moduleHandler protected property The module handler.
ConfigSync::$moduleInstaller protected property The module installer.
ConfigSync::$renderer protected property The renderer.
ConfigSync::$snapshotStorage protected property The snapshot configuration object.
ConfigSync::$syncStorage protected property The sync configuration object.
ConfigSync::$themeHandler protected property The theme handler.
ConfigSync::$typedConfigManager protected property The typed config manager.
ConfigSync::processBatch Deprecated public static function Processes the config import batch and persists the importer.
ConfigSync::submitForm public function Form submission handler. Overrides FormInterface::submitForm
ConfigSync::__construct public function Constructs the object.
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
FormBase::$configFactory protected property The config factory. 1
FormBase::$requestStack protected property The request stack. 1
FormBase::$routeMatch protected property The route match.
FormBase::config protected function Retrieves a configuration object.
FormBase::configFactory protected function Gets the config factory for this form. 1
FormBase::container private function Returns the service container.
FormBase::currentUser protected function Gets the current user.
FormBase::getRequest protected function Gets the request object.
FormBase::getRouteMatch protected function Gets the route match.
FormBase::logger protected function Gets the logger for a specific channel.
FormBase::redirect protected function Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait::redirect
FormBase::resetConfigFactory public function Resets the configuration factory.
FormBase::setConfigFactory public function Sets the config factory for this form.
FormBase::setRequestStack public function Sets the request stack object to use.
FormBase::validateForm public function Form validation handler. Overrides FormInterface::validateForm 62
LinkGeneratorTrait::$linkGenerator protected property The link generator. 1
LinkGeneratorTrait::getLinkGenerator Deprecated protected function Returns the link generator.
LinkGeneratorTrait::l Deprecated protected function Renders a link to a route given a route name and its parameters.
LinkGeneratorTrait::setLinkGenerator Deprecated public function Sets the link generator service.
LoggerChannelTrait::$loggerFactory protected property The logger channel factory service.
LoggerChannelTrait::getLogger protected function Gets the logger for a specific channel.
LoggerChannelTrait::setLoggerFactory public function Injects the logger channel factory.
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
RedirectDestinationTrait::$redirectDestination protected property The redirect destination service. 1
RedirectDestinationTrait::getDestinationArray protected function Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url.
RedirectDestinationTrait::getRedirectDestination protected function Returns the redirect destination service.
RedirectDestinationTrait::setRedirectDestination public function Sets the redirect destination service.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
UrlGeneratorTrait::$urlGenerator protected property The url generator.
UrlGeneratorTrait::getUrlGenerator Deprecated protected function Returns the URL generator service.
UrlGeneratorTrait::setUrlGenerator Deprecated public function Sets the URL generator service.
UrlGeneratorTrait::url Deprecated protected function Generates a URL or path for a specific route based on the given parameters.