3 namespace Drupal\entityqueue\Plugin\EntityQueueHandler;
5 use Drupal\Core\Entity\EntityStorageInterface;
6 use Drupal\entityqueue\Entity\EntitySubqueue;
7 use Drupal\entityqueue\EntityQueueHandlerBase;
8 use Drupal\entityqueue\EntityQueueInterface;
11 * Defines an entity queue handler that manages a single subqueue.
13 * @EntityQueueHandler(
15 * title = @Translation("Simple queue")
18 class Simple extends EntityQueueHandlerBase {
23 public function supportsMultipleSubqueues() {
30 public function hasAutomatedSubqueues() {
37 public function getQueueListBuilderOperations() {
38 // Simple queues have just one subqueue so we can link directly to the edit
40 $operations['edit_subqueue'] = [
41 'title' => $this->t('Edit items'),
43 'url' => EntitySubqueue::load($this->queue->id())->urlInfo('edit-form'),
52 public function onQueuePostSave(EntityQueueInterface $queue, EntityStorageInterface $storage, $update = TRUE) {
53 // Make sure that every simple queue has a subqueue.
55 $subqueue = EntitySubqueue::load($queue->id());
56 $subqueue->setTitle($queue->label());
59 $subqueue = EntitySubqueue::create([
60 'queue' => $queue->id(),
61 'name' => $queue->id(),
62 'title' => $queue->label(),
63 'langcode' => $queue->language()->getId(),
73 public function onQueuePostDelete(EntityQueueInterface $queue, EntityStorageInterface $storage) {
74 // Delete the subqueue when the parent queue is deleted.
75 if ($subqueue = EntitySubqueue::load($queue->id())) {