Version 1
[yaffs-website] / web / modules / contrib / migrate_tools / src / Controller / MigrationGroupListBuilder.php
diff --git a/web/modules/contrib/migrate_tools/src/Controller/MigrationGroupListBuilder.php b/web/modules/contrib/migrate_tools/src/Controller/MigrationGroupListBuilder.php
new file mode 100644 (file)
index 0000000..6757c22
--- /dev/null
@@ -0,0 +1,68 @@
+<?php
+
+namespace Drupal\migrate_tools\Controller;
+
+use Drupal\Core\Config\Entity\ConfigEntityListBuilder;
+use Drupal\Core\Entity\EntityInterface;
+use Drupal\Core\Url;
+
+/**
+ * Provides a listing of migration group entities.
+ *
+ * @package Drupal\migrate_tools\Controller
+ *
+ * @ingroup migrate_tools
+ */
+class MigrationGroupListBuilder extends ConfigEntityListBuilder {
+
+  /**
+   * Builds the header row for the entity listing.
+   *
+   * @return array
+   *   A render array structure of header strings.
+   *
+   * @see Drupal\Core\Entity\EntityListController::render()
+   */
+  public function buildHeader() {
+    $header['label'] = $this->t('Migration Group');
+    $header['machine_name'] = $this->t('Machine Name');
+    $header['description'] = $this->t('Description');
+    $header['source_type'] = $this->t('Source Type');
+    return $header + parent::buildHeader();
+  }
+
+  /**
+   * Builds a row for an entity in the entity listing.
+   *
+   * @param EntityInterface $entity
+   *   The entity for which to build the row.
+   *
+   * @return array
+   *   A render array of the table row for displaying the entity.
+   *
+   * @see Drupal\Core\Entity\EntityListController::render()
+   */
+  public function buildRow(EntityInterface $entity) {
+    $row['label'] = $entity->label();
+    $row['machine_name'] = $entity->id();
+    $row['description'] = $entity->get('description');
+    $row['source_type'] = $entity->get('source_type');
+
+    return $row + parent::buildRow($entity);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getDefaultOperations(EntityInterface $entity) {
+    $operations = parent::getDefaultOperations($entity);
+    $operations['list'] = [
+      'title' => $this->t('List migrations'),
+      'weight' => 0,
+      'url' => Url::fromRoute('entity.migration.list', ['migration_group' => $entity->id()]),
+    ];
+
+    return $operations;
+  }
+
+}