Commit 0fd08cf4 authored by Rahul Shinde's avatar Rahul Shinde Committed by vbouchet
Browse files

Issue #3130622 by vbouchet, rahul.shinde: Add the possibility to...

Issue #3130622 by vbouchet, rahul.shinde: Add the possibility to enable/disable policies from the policy list
parent b2bcdd60
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -55,13 +55,27 @@ entity.memory_limit_policy.edit_form:
    _permission: 'administer site configuration'

entity.memory_limit_policy.delete_form:
  path: '/admin/config/performance/memory-limit-policy/policy/delete/{memory_limit_policy}'
  path: '/admin/config/performance/memory-limit-policy/policy/{memory_limit_policy}/delete'
  defaults:
    _title: Delete policy
    _entity_form: 'memory_limit_policy.delete'
  requirements:
    _permission: 'administer site configuration'

entity.memory_limit_policy.enable:
  path: '/admin/config/performance/memory-limit-policy/{memory_limit_policy}/enable'
  defaults:
    _entity_form: 'memory_limit_policy.enable'
  requirements:
    _permission: 'administer site configuration'

entity.memory_limit_policy.disable:
  path: '/admin/config/performance/memory-limit-policy/{memory_limit_policy}/disable'
  defaults:
    _entity_form: 'memory_limit_policy.disable'
  requirements:
    _permission: 'administer site configuration'

entity.memory_limit_policy.constraint.add:
  path: '/admin/config/system/memory_limit_policy/constraint/add/{machine_name}/{constraint_id}'
  defaults:
+7 −3
Original line number Diff line number Diff line
@@ -20,7 +20,9 @@ use Drupal\memory_limit_policy\MemoryLimitPolicyInterface;
 *   handlers = {
 *     "list_builder" = "Drupal\memory_limit_policy\Controller\MemoryLimitPolicyListBuilder",
 *     "form" = {
 *       "delete" = "Drupal\memory_limit_policy\Form\MemoryLimitPolicyDeleteForm"
 *       "delete" = "Drupal\memory_limit_policy\Form\MemoryLimitPolicyDeleteForm",
 *       "enable" = "Drupal\memory_limit_policy\Form\MemoryLimitPolicyEnableForm",
 *       "disable" = "Drupal\memory_limit_policy\Form\MemoryLimitPolicyDisableForm",
 *     },
 *     "wizard" = {
 *       "add" = "Drupal\memory_limit_policy\Wizard\MemoryLimitPolicyWizard",
@@ -47,8 +49,10 @@ use Drupal\memory_limit_policy\MemoryLimitPolicyInterface;
 *   links = {
 *     "canonical" = "/admin/config/performance/memory-limit-policy/{memory_limit_policy}",
 *     "edit-form" = "/admin/config/performance/memory-limit-policy/{machine_name}/{step}",
 *     "delete-form" = "/admin/config/performance/memory-limit-policy/policy/delete/{memory_limit_policy}",
 *     "collection" = "/admin/config/performance/memory-limit-policy/list"
 *     "delete-form" = "/admin/config/performance/memory-limit-policy/policy/{memory_limit_policy}/delete",
 *     "collection" = "/admin/config/performance/memory-limit-policy/list",
 *     "enable" = "/admin/config/performance/memory-limit-policy/{machine_name}/enable",
 *     "disable" = "/admin/config/performance/memory-limit-policy/{machine_name}/disable",
 *   }
 * )
 */
+2 −2
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ class MemoryLimitPolicyDeleteForm extends EntityConfirmFormBase {
   * {@inheritdoc}
   */
  public function getQuestion() {
    return $this->t('Are you sure you want to delete the %name policy?', ['%name' => $this->entity->label()]);
    return $this->t('Are you sure you want to delete the %policy policy?', ['%policy' => $this->entity->label()]);
  }

  /**
@@ -62,7 +62,7 @@ class MemoryLimitPolicyDeleteForm extends EntityConfirmFormBase {
    $this->entity->delete();

    $this->messenger->addMessage(
      $this->t('The @label memory limit policy has been deleted.',
      $this->t('The @label policy has been deleted.',
        [
          '@type' => $this->entity->bundle(),
          '@label' => $this->entity->label(),
+66 −0
Original line number Diff line number Diff line
<?php

namespace Drupal\memory_limit_policy\Form;

use Drupal\Core\Entity\EntityConfirmFormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Url;
use Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * Provides the policy disable form.
 */
class MemoryLimitPolicyDisableForm extends EntityConfirmFormBase {

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

    $form->setMessenger(
      $container->get('messenger')
    );

    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function getQuestion() {
    return $this->t('Are you sure you want to disable the %policy policy?', ['%policy' => $this->entity->label()]);
  }

  /**
   * {@inheritdoc}
   */
  public function getCancelUrl() {
    return new Url('entity.memory_limit_policy.collection');
  }

  /**
   * {@inheritdoc}
   */
  public function getConfirmText() {
    return $this->t('Disable');
  }

  /**
   * {@inheritdoc}
   */
  public function getDescription() {
    return $this->t('Disabled policies are not evaluated. This action can be undone from the policies administration page.');
  }

  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
    $this->entity->disable()->save();
    $this->messenger()
      ->addStatus($this->t('The %policy policy has been disabled.', ['%policy' => $this->entity->label()]));
    $form_state->setRedirectUrl($this->getCancelUrl());
  }

}
+66 −0
Original line number Diff line number Diff line
<?php

namespace Drupal\memory_limit_policy\Form;

use Drupal\Core\Entity\EntityConfirmFormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Url;
use Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * Provides the policy enable form.
 */
class MemoryLimitPolicyEnableForm extends EntityConfirmFormBase {

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

    $form->setMessenger(
      $container->get('messenger')
    );

    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function getQuestion() {
    return $this->t('Are you sure you want to enable the %policy policy?', ['%policy' => $this->entity->label()]);
  }

  /**
   * {@inheritdoc}
   */
  public function getCancelUrl() {
    return new Url('entity.memory_limit_policy.collection');
  }

  /**
   * {@inheritdoc}
   */
  public function getConfirmText() {
    return $this->t('Enable');
  }

  /**
   * {@inheritdoc}
   */
  public function getDescription() {
    return $this->t('Enabled policies are evaluated. This action can be undone from the policies administration page.');
  }

  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
    $this->entity->enable()->save();
    $this->messenger()
      ->addStatus($this->t('The %policy policy has been enabled.', ['%policy' => $this->entity->label()]));
    $form_state->setRedirectUrl($this->getCancelUrl());
  }

}