class WorkspaceDeleteForm

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

Provides a form for deleting a workspace.

@internal

Hierarchy

Expanded class hierarchy of WorkspaceDeleteForm

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

File

core/modules/workspaces_ui/src/Form/WorkspaceDeleteForm.php, line 19

Namespace

Drupal\workspaces_ui\Form
View source
class WorkspaceDeleteForm extends ContentEntityDeleteForm {
  
  /**
   * The workspace entity.
   *
   * @var \Drupal\workspaces\WorkspaceInterface
   */
  protected $entity;
  
  /**
   * The workspace tracker service.
   *
   * @var \Drupal\workspaces\WorkspaceTrackerInterface
   */
  protected $workspaceTracker;
  
  /**
   * The workspace repository service.
   *
   * @var \Drupal\workspaces\WorkspaceRepositoryInterface
   */
  protected $workspaceRepository;
  
  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container) {
    return new static($container->get('entity.repository'), $container->get('workspaces.tracker'), $container->get('workspaces.repository'), $container->get('entity_type.bundle.info'), $container->get('datetime.time'));
  }
  
  /**
   * Constructs a WorkspaceDeleteForm object.
   *
   * @param \Drupal\Core\Entity\EntityRepositoryInterface $entity_repository
   *   The entity repository service.
   * @param \Drupal\workspaces\WorkspaceTrackerInterface $workspace_tracker
   *   The workspace tracker service to check how many revisions will be
   *   deleted.
   * @param \Drupal\workspaces\WorkspaceRepositoryInterface $workspace_repository
   *   The workspace repository service.
   * @param \Drupal\Core\Entity\EntityTypeBundleInfoInterface $entity_type_bundle_info
   *   The entity type bundle service.
   * @param \Drupal\Component\Datetime\TimeInterface $time
   *   The time service.
   */
  public function __construct(EntityRepositoryInterface $entity_repository, WorkspaceTrackerInterface $workspace_tracker, WorkspaceRepositoryInterface $workspace_repository, ?EntityTypeBundleInfoInterface $entity_type_bundle_info = NULL, ?TimeInterface $time = NULL) {
    parent::__construct($entity_repository, $entity_type_bundle_info, $time);
    $this->workspaceTracker = $workspace_tracker;
    $this->workspaceRepository = $workspace_repository;
  }
  
  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    $form = parent::buildForm($form, $form_state);
    $workspace_tree = $this->workspaceRepository
      ->loadTree();
    if (!empty($workspace_tree[$this->entity
      ->id()]['descendants'])) {
      $form['description']['#markup'] = $this->t('The %label workspace can not be deleted because it has child workspaces.', [
        '%label' => $this->entity
          ->label(),
      ]);
      $form['actions']['submit']['#disabled'] = TRUE;
      return $form;
    }
    $tracked_entities = $this->workspaceTracker
      ->getTrackedEntities($this->entity
      ->id());
    $items = [];
    foreach ($tracked_entities as $entity_type_id => $entity_ids) {
      $revision_ids = $this->workspaceTracker
        ->getAllTrackedRevisions($this->entity
        ->id(), $entity_type_id, $entity_ids);
      $label = $this->entityTypeManager
        ->getDefinition($entity_type_id)
        ->getLabel();
      $items[] = $this->formatPlural(count($revision_ids), '1 @label revision.', '@count @label revisions.', [
        '@label' => $label,
      ]);
    }
    $form['revisions'] = [
      '#theme' => 'item_list',
      '#title' => $this->t('The following will also be deleted:'),
      '#items' => $items,
    ];
    return $form;
  }
  
  /**
   * {@inheritdoc}
   */
  public function getDescription() {
    return $this->t('This action cannot be undone, and will also delete all content created in this workspace.');
  }

}

Members

Title Sort descending Modifiers Object type Summary Member alias 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.
ConfigDependencyDeleteFormTrait::addDependencyListsToForm protected function Adds form elements to list affected configuration entities.
ConfigDependencyDeleteFormTrait::t abstract protected function Translates a string to the current language or to a given language.
ContentEntityConfirmFormBase::actions protected function Overrides EntityForm::actions
ContentEntityConfirmFormBase::delete public function The delete() method is not used in ContentEntityConfirmFormBase. This
overrides the default implementation that redirects to the delete-form
confirmation form.
ContentEntityConfirmFormBase::form public function Overrides ContentEntityForm::form
ContentEntityConfirmFormBase::getBaseFormId public function Overrides EntityForm::getBaseFormId
ContentEntityConfirmFormBase::getCancelText public function Overrides ConfirmFormInterface::getCancelText
ContentEntityConfirmFormBase::getFormName public function Overrides ConfirmFormInterface::getFormName
ContentEntityConfirmFormBase::save public function The save() method is not used in ContentEntityConfirmFormBase. This
overrides the default implementation that saves the entity.
Overrides EntityForm::save
ContentEntityConfirmFormBase::validateForm public function Overrides ContentEntityForm::validateForm
ContentEntityDeleteForm::getCancelUrl public function Overrides ConfirmFormInterface::getCancelUrl 5
ContentEntityDeleteForm::getDeletionMessage protected function 4
ContentEntityDeleteForm::getQuestion public function Overrides ConfirmFormInterface::getQuestion
ContentEntityDeleteForm::logDeletionMessage protected function 2
ContentEntityDeleteForm::submitForm public function Overrides EntityDeleteFormTrait::submitForm
ContentEntityForm::$entityRepository protected property The entity repository service.
ContentEntityForm::$entityTypeBundleInfo protected property The entity type bundle info service.
ContentEntityForm::$time protected property The time service.
ContentEntityForm::addRevisionableFormFields protected function Add revision form fields if the entity enabled the UI.
ContentEntityForm::buildEntity public function Overrides EntityForm::buildEntity 4
ContentEntityForm::copyFormValuesToEntity protected function Overrides EntityForm::copyFormValuesToEntity
ContentEntityForm::flagViolations protected function Flags violations for the current form. 4
ContentEntityForm::getBundleEntity protected function Returns the bundle entity of the entity, or NULL if there is none.
ContentEntityForm::getEditedFieldNames protected function Gets the names of all fields edited in the form. 4
ContentEntityForm::getFormDisplay public function Overrides ContentEntityFormInterface::getFormDisplay
ContentEntityForm::getFormLangcode public function Overrides ContentEntityFormInterface::getFormLangcode
ContentEntityForm::getNewRevisionDefault protected function Should new revisions created on default.
ContentEntityForm::init protected function Initializes the form state and the entity before the first form build. Overrides EntityForm::init 1
ContentEntityForm::initFormLangcodes protected function Initializes form language code values.
ContentEntityForm::isDefaultFormLangcode public function Overrides ContentEntityFormInterface::isDefaultFormLangcode
ContentEntityForm::prepareEntity protected function Overrides EntityForm::prepareEntity 1
ContentEntityForm::setFormDisplay public function Overrides ContentEntityFormInterface::setFormDisplay
ContentEntityForm::showRevisionUi protected function Checks whether the revision form fields should be added to the form.
ContentEntityForm::updateChangedTime public function Updates the changed time of the entity.
ContentEntityForm::updateFormLangcode public function Updates the form language to reflect any change to the entity language.
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
EntityDeleteFormTrait::getCancelUrl public function Aliased as: traitGetCancelUrl 2
EntityDeleteFormTrait::getConfirmText public function 1
EntityDeleteFormTrait::getDeletionMessage protected function Gets the message to display to the user after deleting the entity. Aliased as: traitGetDeletionMessage 3
EntityDeleteFormTrait::getEntity abstract public function Gets the entity of this form.
EntityDeleteFormTrait::getQuestion public function Aliased as: traitGetQuestion 4
EntityDeleteFormTrait::getRedirectUrl protected function Returns the URL where the user should be redirected after deletion. 4
EntityDeleteFormTrait::logDeletionMessage protected function Logs a message about the deleted entity. Aliased as: traitLogDeletionMessage 2
EntityDeleteFormTrait::logger abstract protected function Gets the logger for a specific channel.
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::getCallableFromDefinition protected function Gets a callable from a string or array definition if possible.
EntityForm::getEntityFromRouteMatch public function Overrides EntityFormInterface::getEntityFromRouteMatch 3
EntityForm::getFormId public function Overrides FormInterface::getFormId 14
EntityForm::getOperation public function Overrides EntityFormInterface::getOperation
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::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.
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 protected property The messenger. 25
MessengerTrait::messenger public function Gets the messenger. 25
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
WorkspaceDeleteForm::$entity protected property The workspace entity. Overrides ContentEntityForm::$entity
WorkspaceDeleteForm::$workspaceRepository protected property The workspace repository service.
WorkspaceDeleteForm::$workspaceTracker protected property The workspace tracker service.
WorkspaceDeleteForm::buildForm public function Overrides ContentEntityDeleteForm::buildForm
WorkspaceDeleteForm::create public static function Overrides ContentEntityForm::create
WorkspaceDeleteForm::getDescription public function Overrides ContentEntityConfirmFormBase::getDescription
WorkspaceDeleteForm::__construct public function Constructs a WorkspaceDeleteForm object. Overrides ContentEntityForm::__construct

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