Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / core / modules / views / src / EntityViewsData.php
index 2ba2086ac10397f529244f4a0afdd50683f71725..a12bd55f2c287e841f526bd383486a53b71e4f7d 100644 (file)
@@ -183,6 +183,13 @@ class EntityViewsData implements EntityHandlerInterface, EntityViewsDataInterfac
           'id' => 'entity_operations',
         ],
       ];
+      $data[$revision_table]['operations'] = [
+        'field' => [
+          'title' => $this->t('Operations links'),
+          'help' => $this->t('Provides links to perform entity operations.'),
+          'id' => 'entity_operations',
+        ],
+      ];
     }
 
     if ($this->entityType->hasViewBuilderClass()) {
@@ -236,6 +243,13 @@ class EntityViewsData implements EntityHandlerInterface, EntityViewsDataInterfac
           'type' => 'INNER',
         ];
       }
+
+      // Add a filter for showing only the latest revisions of an entity.
+      $data[$revision_table]['latest_revision'] = [
+        'title' => $this->t('Is Latest Revision'),
+        'help' => $this->t('Restrict the view to only revisions that are the latest revision of their entity.'),
+        'filter' => ['id' => 'latest_revision'],
+      ];
     }
 
     $this->addEntityLinks($data[$base_table]);
@@ -300,7 +314,7 @@ class EntityViewsData implements EntityHandlerInterface, EntityViewsDataInterfac
 
     // Add the entity type key to each table generated.
     $entity_type_id = $this->entityType->id();
-    array_walk($data, function(&$table_data) use ($entity_type_id){
+    array_walk($data, function (&$table_data) use ($entity_type_id) {
       $table_data['table']['entity type'] = $entity_type_id;
     });
 
@@ -371,13 +385,10 @@ class EntityViewsData implements EntityHandlerInterface, EntityViewsDataInterfac
     // @todo Introduce concept of the "main" column for a field, rather than
     //   assuming the first one is the main column. See also what the
     //   mapSingleFieldViewsData() method does with $first.
-    $multiple = (count($field_column_mapping) > 1);
     $first = TRUE;
     foreach ($field_column_mapping as $field_column_name => $schema_field_name) {
-      $views_field_name = ($multiple) ? $field_name . '__' . $field_column_name : $field_name;
-      $table_data[$views_field_name] = $this->mapSingleFieldViewsData($table, $field_name, $field_definition_type, $field_column_name, $field_schema['columns'][$field_column_name]['type'], $first, $field_definition);
-
-      $table_data[$views_field_name]['entity field'] = $field_name;
+      $table_data[$schema_field_name] = $this->mapSingleFieldViewsData($table, $field_name, $field_definition_type, $field_column_name, $field_schema['columns'][$field_column_name]['type'], $first, $field_definition);
+      $table_data[$schema_field_name]['entity field'] = $field_name;
       $first = FALSE;
     }
   }