diff --git a/modules/datastore/datastore.module b/modules/datastore/datastore.module
index 33c4064ff1..0b78c16bc4 100644
--- a/modules/datastore/datastore.module
+++ b/modules/datastore/datastore.module
@@ -15,6 +15,7 @@ function datastore_theme($existing, $type, $theme, $path) {
'uuid' => NULL,
'title' => NULL,
'url' => NULL,
+ 'node_id' => NULL,
],
],
'datastore_dashboard_revision_cell' => [
diff --git a/modules/datastore/src/Form/DashboardForm.php b/modules/datastore/src/Form/DashboardForm.php
index 61d3e279df..cdf905dd9a 100644
--- a/modules/datastore/src/Form/DashboardForm.php
+++ b/modules/datastore/src/Form/DashboardForm.php
@@ -502,6 +502,7 @@ protected function buildRevisionRow(array $rev, int $resourceCount, string $harv
if ($moderation_class == 'hidden') {
$moderation_class = 'published-hidden';
}
+
return [
[
'rowspan' => $resourceCount,
@@ -510,6 +511,7 @@ protected function buildRevisionRow(array $rev, int $resourceCount, string $harv
'#uuid' => $rev['uuid'],
'#title' => $rev['title'],
'#url' => Url::fromUri("internal:/dataset/$rev[uuid]"),
+ '#node_id' => $rev['node_id'],
],
],
[
diff --git a/modules/datastore/templates/datastore-dashboard-dataset-cell.html.twig b/modules/datastore/templates/datastore-dashboard-dataset-cell.html.twig
index 466214284e..1b0912791d 100644
--- a/modules/datastore/templates/datastore-dashboard-dataset-cell.html.twig
+++ b/modules/datastore/templates/datastore-dashboard-dataset-cell.html.twig
@@ -1,2 +1,8 @@
-
{{ uuid }}
-{{ link(title, url) }}
\ No newline at end of file
+
+ {{title}}
{{ 'admin'|t }}
+ {% if url is not empty %}
+ {% set link_attributes = create_attribute({'aria-label': 'view: @title'|t({'@title': title})}) %}
+ | {{ link('view', url, {'attributes': link_attributes}) }}
+ {% endif %}
+
+ {{ uuid }}
diff --git a/modules/datastore/tests/src/Unit/Form/DashboardFormTest.php b/modules/datastore/tests/src/Unit/Form/DashboardFormTest.php
index b1e434f107..523b6a9b81 100644
--- a/modules/datastore/tests/src/Unit/Form/DashboardFormTest.php
+++ b/modules/datastore/tests/src/Unit/Form/DashboardFormTest.php
@@ -110,6 +110,7 @@ public function testBuildTableRowsWithHarvestIdFilter() {
'moderation_state' => 'published',
'modified_date_metadata' => '2020-01-15',
'modified_date_dkan' => '2021-02-11',
+ 'node_id' => 1,
];
$distribution = [
'distribution_uuid' => 'dist-1',
@@ -154,6 +155,7 @@ public function testBuildTableRowsWithHarvestIdFilter() {
$this->assertEquals('NEW', $form['table']['#rows'][0][2]['data']);
$this->assertEquals('done', $form['table']['#rows'][0][6]['data']['#status']);
$this->assertEquals(NULL, $form['table']['#rows'][0][6]['data']['#error']);
+ $this->assertEquals(1, $form['table']['#rows'][0][0]['data']['#node_id']);
}
/**
@@ -167,6 +169,7 @@ public function testBuildTableRowsWithDatasetTitleFilter() {
'moderation_state' => 'published',
'modified_date_metadata' => '2020-01-15',
'modified_date_dkan' => '2021-02-11',
+ 'node_id' => 2,
];
$distribution = [
'distribution_uuid' => 'dist-1',
@@ -222,6 +225,7 @@ public function testBuildTableRowsWithDatasetTitleFilter() {
$this->assertEquals('NEW', $form['table']['#rows'][0][2]['data']);
$this->assertEquals('done', $form['table']['#rows'][0][6]['data']['#status']);
$this->assertEquals(NULL, $form['table']['#rows'][0][6]['data']['#error']);
+ $this->assertEquals(2, $form['table']['#rows'][0][0]['data']['#node_id']);
}
/**
@@ -235,6 +239,7 @@ public function testBuildTableRowsWithUuidFilter() {
'moderation_state' => 'published',
'modified_date_metadata' => '2020-01-15',
'modified_date_dkan' => '2021-02-11',
+ 'node_id' => 3,
];
$distribution = [
'distribution_uuid' => 'dist-1',
@@ -295,6 +300,7 @@ public function testBuildTableRowsWithAllDatasets() {
'title' => 'Dataset 1',
'modified_date_metadata' => '2019-08-12',
'modified_date_dkan' => '2021-07-08',
+ 'node_id' => 3,
'distributions' => [
[
'distribution_uuid' => 'dist-1',
@@ -320,6 +326,7 @@ public function testBuildTableRowsWithAllDatasets() {
'title' => 'Non-Harvest Dataset',
'modified_date_metadata' => '2019-08-12',
'modified_date_dkan' => '2021-07-08',
+ 'node_id' => 3,
'distributions' => [
[
'distribution_uuid' => 'dist-2',
@@ -395,6 +402,7 @@ public function testBuildTableRowsDatasetWithNoDistribution() {
'modified_date_metadata' => '2019-08-12',
'modified_date_dkan' => '2021-07-08',
'distributions' => ['Not found'],
+ 'node_id' => 1,
],
];
@@ -421,6 +429,7 @@ public function testBuildTableRowsWithUnsupportedResourceTypes() {
'title' => 'Dataset 1',
'modified_date_metadata' => '2019-08-12',
'modified_date_dkan' => '2021-07-08',
+ 'node_id' => 5,
'distributions' => [
[
'distribution_uuid' => 'dist-1',
@@ -510,6 +519,7 @@ public function testBuildTableRowsWithUnsupportedResourceTypes() {
$this->assertEquals('done', $form["table"]["#rows"][1][3]["data"]["#status"]);
// The second row post import class is correct.
$this->assertEquals('done', $form["table"]["#rows"][1][3]["class"]);
+ $this->assertEquals(5, $form['table']['#rows'][0][0]['data']['#node_id']);
}
/**
@@ -524,6 +534,7 @@ public function testBuildTableRowsDatasetMultipleDistribution() {
'title' => 'Dataset 1',
'modified_date_metadata' => '2019-08-12',
'modified_date_dkan' => '2021-07-08',
+ 'node_id' => 7,
'distributions' => [
[
'distribution_uuid' => 'dist-1',