X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fcore%2Flib%2FDrupal%2FCore%2FAction%2FPlugin%2FAction%2FDeleteAction.php;fp=web%2Fcore%2Flib%2FDrupal%2FCore%2FAction%2FPlugin%2FAction%2FDeleteAction.php;h=fcf76a4fbe5f66273b42542ba90f858650802e1a;hp=0000000000000000000000000000000000000000;hb=0bf8d09d2542548982e81a441b1f16e75873a04f;hpb=74df008bdbb3a11eeea356744f39b802369bda3c diff --git a/web/core/lib/Drupal/Core/Action/Plugin/Action/DeleteAction.php b/web/core/lib/Drupal/Core/Action/Plugin/Action/DeleteAction.php new file mode 100644 index 000000000..fcf76a4fb --- /dev/null +++ b/web/core/lib/Drupal/Core/Action/Plugin/Action/DeleteAction.php @@ -0,0 +1,99 @@ +currentUser = $current_user; + $this->tempStore = $temp_store_factory->get('entity_delete_multiple_confirm'); + + parent::__construct($configuration, $plugin_id, $plugin_definition, $entity_type_manager); + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { + return new static( + $configuration, + $plugin_id, + $plugin_definition, + $container->get('entity_type.manager'), + $container->get('tempstore.private'), + $container->get('current_user') + ); + } + + /** + * {@inheritdoc} + */ + public function executeMultiple(array $entities) { + /** @var \Drupal\Core\Entity\EntityInterface[] $entities */ + $selection = []; + foreach ($entities as $entity) { + $langcode = $entity->language()->getId(); + $selection[$entity->id()][$langcode] = $langcode; + } + $this->tempStore->set($this->currentUser->id() . ':' . $this->getPluginDefinition()['type'], $selection); + } + + /** + * {@inheritdoc} + */ + public function execute($object = NULL) { + $this->executeMultiple([$object]); + } + + /** + * {@inheritdoc} + */ + public function access($object, AccountInterface $account = NULL, $return_as_object = FALSE) { + return $object->access('delete', $account, $return_as_object); + } + +}