You are here

class EventTypeRuleComponentEdit in RNG - Events and Registrations 8

Same name and namespace in other branches
  1. 8.2 src/Form/EventTypeRuleComponentEdit.php \Drupal\rng\Form\EventTypeRuleComponentEdit
  2. 3.x src/Form/EventTypeRuleComponentEdit.php \Drupal\rng\Form\EventTypeRuleComponentEdit

Configure event settings.

Hierarchy

Expanded class hierarchy of EventTypeRuleComponentEdit

1 string reference to 'EventTypeRuleComponentEdit'
rng.routing.yml in ./rng.routing.yml
rng.routing.yml

File

src/Form/EventTypeRuleComponentEdit.php, line 17

Namespace

Drupal\rng\Form
View source
class EventTypeRuleComponentEdit extends FormBase {

  /**
   * The action manager service.
   *
   * @var \Drupal\Core\Action\ActionManager
   */
  protected $actionManager;

  /**
   * The condition manager service.
   *
   * @var \Drupal\Core\Condition\ConditionManager
   */
  protected $conditionManager;

  /**
   * The RNG event manager.
   *
   * @var \Drupal\rng\EventManagerInterface
   */
  protected $eventManager;

  /**
   * The event type rule.
   *
   * @var \Drupal\rng\EventTypeRuleInterface
   */
  var $eventTypeRule;

  /**
   * The component type. 'action' or 'condition'.
   *
   * @var string
   */
  var $componentType;

  /**
   * The component key from the event type rule.
   *
   * @var string
   */
  var $componentId;

  /**
   * The plugin instance.
   *
   * @var \Drupal\Core\Condition\ConditionInterface|\Drupal\Core\Action\ActionInterface
   */
  protected $plugin;

  /**
   * Constructs a new MessageActionForm object.
   *
   * @param \Drupal\Core\Action\ActionManager $action_manager
   *   The action manager.
   * @param \Drupal\Core\Condition\ConditionManager $condition_manager
   *   The condition manager.
   * @param \Drupal\rng\EventManagerInterface $event_manager
   *   The RNG event manager.
   */
  public function __construct(ActionManager $action_manager, ConditionManager $condition_manager, EventManagerInterface $event_manager) {
    $this->actionManager = $action_manager;
    $this->conditionManager = $condition_manager;
    $this->eventManager = $event_manager;
  }

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container) {
    return new static($container
      ->get('plugin.manager.action'), $container
      ->get('plugin.manager.condition'), $container
      ->get('rng.event_manager'));
  }

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

  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state, EventTypeRuleInterface $rng_event_type_rule = NULL, $component_type = NULL, $component_id = NULL) {
    $this->eventTypeRule = $rng_event_type_rule;
    $this->componentType = $component_type;
    $this->componentId = $component_id;
    if ($this->componentType == 'condition') {
      $manager = 'conditionManager';
      $components = $this->eventTypeRule
        ->getConditions();
      $configuration = $components[$this->componentId];
      $plugin_id = $configuration['id'];
      unset($configuration['id']);
    }
    else {
      if ($this->componentType == 'action') {
        $manager = 'actionManager';
        $components = $this->eventTypeRule
          ->getActions();
        $plugin_id = $components[$this->componentId]['id'];
        $configuration = $components[$this->componentId]['configuration'];
      }
      else {
        return $form;
      }
    }
    $this->plugin = $this->{$manager}
      ->createInstance($plugin_id, $configuration);
    $form += $this->plugin
      ->buildConfigurationForm($form, $form_state);
    $form['actions'] = [
      '#type' => 'actions',
    ];
    $form['actions']['submit'] = [
      '#type' => 'submit',
      '#value' => t('Save'),
      '#button_type' => 'primary',
    ];
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
    $this->plugin
      ->submitConfigurationForm($form, $form_state);
    $configuration = $this->plugin
      ->getConfiguration();
    if ($this->componentType == 'condition') {
      $this->eventTypeRule
        ->setCondition($this->componentId, $configuration);
    }
    else {
      if ($this->componentType == 'action') {
        $this->eventTypeRule
          ->setAction($this->componentId, $configuration);
      }
    }
    $this->eventTypeRule
      ->save();
    $event_type = $this->eventManager
      ->eventType($this->eventTypeRule
      ->getEventEntityTypeId(), $this->eventTypeRule
      ->getEventBundle());
    $this->eventManager
      ->invalidateEventType($event_type);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
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
EventTypeRuleComponentEdit::$actionManager protected property The action manager service.
EventTypeRuleComponentEdit::$componentId property The component key from the event type rule.
EventTypeRuleComponentEdit::$componentType property The component type. 'action' or 'condition'.
EventTypeRuleComponentEdit::$conditionManager protected property The condition manager service.
EventTypeRuleComponentEdit::$eventManager protected property The RNG event manager.
EventTypeRuleComponentEdit::$eventTypeRule property The event type rule.
EventTypeRuleComponentEdit::$plugin protected property The plugin instance.
EventTypeRuleComponentEdit::buildForm public function Form constructor. Overrides FormInterface::buildForm
EventTypeRuleComponentEdit::create public static function Instantiates a new instance of this class. Overrides FormBase::create
EventTypeRuleComponentEdit::getFormId public function Returns a unique string identifying the form. Overrides FormInterface::getFormId
EventTypeRuleComponentEdit::submitForm public function Form submission handler. Overrides FormInterface::submitForm
EventTypeRuleComponentEdit::__construct public function Constructs a new MessageActionForm object.
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.