class WorkspaceActivateForm

Same name and namespace in other branches
  1. 11.x core/modules/workspaces/src/Form/WorkspaceActivateForm.php \Drupal\workspaces\Form\WorkspaceActivateForm
  2. 10 core/modules/workspaces/src/Form/WorkspaceActivateForm.php \Drupal\workspaces\Form\WorkspaceActivateForm
  3. 9 core/modules/workspaces/src/Form/WorkspaceActivateForm.php \Drupal\workspaces\Form\WorkspaceActivateForm
  4. 8.9.x core/modules/workspaces/src/Form/WorkspaceActivateForm.php \Drupal\workspaces\Form\WorkspaceActivateForm
  5. 11.x core/modules/workspaces_ui/src/Form/WorkspaceActivateForm.php \Drupal\workspaces_ui\Form\WorkspaceActivateForm

Handle activation of a workspace on administrative pages.

Hierarchy

Expanded class hierarchy of WorkspaceActivateForm

1 file declares its use of WorkspaceActivateForm
WorkspacesUiHooks.php in core/modules/workspaces_ui/src/Hook/WorkspacesUiHooks.php

File

core/modules/workspaces_ui/src/Form/WorkspaceActivateForm.php, line 18

Namespace

Drupal\workspaces_ui\Form
View source
class WorkspaceActivateForm extends EntityConfirmFormBase implements WorkspaceSafeFormInterface {
  
  /**
   * The workspace entity.
   *
   * @var \Drupal\workspaces\WorkspaceInterface
   */
  protected $entity;
  
  /**
   * The workspace replication manager.
   *
   * @var \Drupal\workspaces\WorkspaceManagerInterface
   */
  protected $workspaceManager;
  
  /**
   * The messenger service.
   *
   * @var \Drupal\Core\Messenger\MessengerInterface
   */
  protected $messenger;
  
  /**
   * Constructs a new WorkspaceActivateForm.
   *
   * @param \Drupal\workspaces\WorkspaceManagerInterface $workspace_manager
   *   The workspace manager.
   * @param \Drupal\Core\Messenger\MessengerInterface $messenger
   *   The messenger service.
   */
  public function __construct(WorkspaceManagerInterface $workspace_manager, MessengerInterface $messenger) {
    $this->workspaceManager = $workspace_manager;
    $this->messenger = $messenger;
  }
  
  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container) {
    return new static($container->get('workspaces.manager'), $container->get('messenger'));
  }
  
  /**
   * {@inheritdoc}
   */
  public function getQuestion() {
    return $this->t('Would you like to activate the %workspace workspace?', [
      '%workspace' => $this->entity
        ->label(),
    ]);
  }
  
  /**
   * {@inheritdoc}
   */
  public function getDescription() {
    return $this->t('Activate the %workspace workspace.', [
      '%workspace' => $this->entity
        ->label(),
    ]);
  }
  
  /**
   * {@inheritdoc}
   */
  public function getCancelUrl() {
    return $this->entity
      ->toUrl('collection');
  }
  
  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    $form = parent::buildForm($form, $form_state);
    // Content entity forms do not use the parent's #after_build callback.
    unset($form['#after_build']);
    return $form;
  }
  
  /**
   * {@inheritdoc}
   */
  public function actions(array $form, FormStateInterface $form_state) {
    $actions = parent::actions($form, $form_state);
    $actions['cancel']['#attributes']['class'][] = 'dialog-cancel';
    return $actions;
  }
  
  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
    try {
      $this->workspaceManager
        ->setActiveWorkspace($this->entity);
      $this->messenger
        ->addMessage($this->t('%workspace_label is now the active workspace.', [
        '%workspace_label' => $this->entity
          ->label(),
      ]));
    } catch (WorkspaceAccessException) {
      $this->messenger
        ->addError($this->t('You do not have access to activate the %workspace_label workspace.', [
        '%workspace_label' => $this->entity
          ->label(),
      ]));
    }
    // Redirect to the workspace manage page by default.
    if (!$this->getRequest()->query
      ->has('destination')) {
      $form_state->setRedirectUrl($this->entity
        ->toUrl());
    }
  }
  
  /**
   * Checks access for the workspace activate form.
   *
   * @param \Drupal\Core\Routing\RouteMatchInterface $route_match
   *   The route match.
   *
   * @return \Drupal\Core\Access\AccessResult
   *   The access result.
   */
  public function checkAccess(RouteMatchInterface $route_match) {
    /** @var \Drupal\workspaces\WorkspaceInterface $workspace */
    $workspace = $route_match->getParameter('workspace');
    $active_workspace = $this->workspaceManager
      ->getActiveWorkspace();
    $access = AccessResult::allowedIf(!$active_workspace || $active_workspace && $active_workspace->id() != $workspace->id())
      ->addCacheableDependency($workspace);
    return $access;
  }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
AutowiredInstanceTrait::createInstanceAutowired public static function Instantiates a new instance of the implementing class using autowiring.
AutowiredInstanceTrait::getAutowireArguments private static function Resolves arguments for a method using autowiring.
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 2
DependencySerializationTrait::__wakeup public function 2
EntityConfirmFormBase::delete public function The delete() method is not used in EntityConfirmFormBase. This overrides
the default implementation that redirects to the delete-form confirmation
form.
EntityConfirmFormBase::getBaseFormId public function Overrides EntityForm::getBaseFormId
EntityConfirmFormBase::getCancelText public function Overrides ConfirmFormInterface::getCancelText
EntityConfirmFormBase::getConfirmText public function Overrides ConfirmFormInterface::getConfirmText 6
EntityConfirmFormBase::getFormName public function Overrides ConfirmFormInterface::getFormName
EntityConfirmFormBase::save public function The save() method is not used in EntityConfirmFormBase. This overrides the
default implementation that saves the entity.
Overrides EntityForm::save
EntityForm::$entityTypeManager protected property The entity type manager. 3
EntityForm::$moduleHandler protected property The module handler service. 3
EntityForm::$operation protected property The name of the current operation.
EntityForm::actionsElement protected function Returns the action form element for the current entity form.
EntityForm::afterBuild public function Form element #after_build callback: Updates the entity with submitted data. 1
EntityForm::buildEntity public function Overrides EntityFormInterface::buildEntity 5
EntityForm::copyFormValuesToEntity protected function Copies top-level form values to entity properties. 12
EntityForm::form public function Gets the actual form array to be built. 35
EntityForm::getCallableFromDefinition protected function Gets a callable from a string or array definition if possible.
EntityForm::getEntity public function Overrides EntityFormInterface::getEntity
EntityForm::getEntityFromRouteMatch public function Overrides EntityFormInterface::getEntityFromRouteMatch 3
EntityForm::getFormId public function Overrides FormInterface::getFormId 14
EntityForm::getOperation public function Overrides EntityFormInterface::getOperation
EntityForm::init protected function Initialize the form state and the entity before the first form build. 3
EntityForm::prepareEntity protected function Prepares the entity object before the form is built first. 3
EntityForm::prepareInvokeAll protected function Invokes the specified prepare hook variant.
EntityForm::processForm public function Process callback: assigns weights and hides extra fields.
EntityForm::setEntity public function Overrides EntityFormInterface::setEntity
EntityForm::setEntityTypeManager public function Overrides EntityFormInterface::setEntityTypeManager
EntityForm::setModuleHandler public function Overrides EntityFormInterface::setModuleHandler
EntityForm::setOperation public function Overrides EntityFormInterface::setOperation
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. 2
FormBase::getRequest protected function Gets the request object. Overrides HtmxRequestInfoTrait::getRequest
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.
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 Overrides FormInterface::validateForm 54
HtmxRequestInfoTrait::getHtmxCurrentUrl protected function Retrieves the URL of the requesting page from an HTMX request header.
HtmxRequestInfoTrait::getHtmxPrompt protected function Retrieves the prompt from an HTMX request header.
HtmxRequestInfoTrait::getHtmxTarget protected function Retrieves the target identifier from an HTMX request header.
HtmxRequestInfoTrait::getHtmxTrigger protected function Retrieves the trigger identifier from an HTMX request header.
HtmxRequestInfoTrait::getHtmxTriggerName protected function Retrieves the trigger name from an HTMX request header.
HtmxRequestInfoTrait::isHtmxBoosted protected function Determines if the request is boosted by HTMX.
HtmxRequestInfoTrait::isHtmxHistoryRestoration protected function Determines if if the request is for history restoration.
HtmxRequestInfoTrait::isHtmxRequest protected function Determines if the request is sent by HTMX.
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 public function Gets the messenger. 26
MessengerTrait::setMessenger public function Sets the messenger.
RedirectDestinationTrait::$redirectDestination protected property The redirect destination service. 2
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. 3
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. 1
WorkspaceActivateForm::$entity protected property The workspace entity. Overrides EntityForm::$entity
WorkspaceActivateForm::$messenger protected property The messenger service. Overrides MessengerTrait::$messenger
WorkspaceActivateForm::$workspaceManager protected property The workspace replication manager.
WorkspaceActivateForm::actions public function Overrides EntityConfirmFormBase::actions
WorkspaceActivateForm::buildForm public function Overrides EntityConfirmFormBase::buildForm
WorkspaceActivateForm::checkAccess public function Checks access for the workspace activate form.
WorkspaceActivateForm::create public static function Overrides AutowireTrait::create
WorkspaceActivateForm::getCancelUrl public function Overrides ConfirmFormInterface::getCancelUrl
WorkspaceActivateForm::getDescription public function Overrides EntityConfirmFormBase::getDescription
WorkspaceActivateForm::getQuestion public function Overrides ConfirmFormInterface::getQuestion
WorkspaceActivateForm::submitForm public function Overrides EntityForm::submitForm
WorkspaceActivateForm::__construct public function Constructs a new WorkspaceActivateForm.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.