diff --git a/modules/dkan_datastore/dkan_datastore.module b/modules/dkan_datastore/dkan_datastore.module
index 99fa44d398..02ba116c87 100644
--- a/modules/dkan_datastore/dkan_datastore.module
+++ b/modules/dkan_datastore/dkan_datastore.module
@@ -15,6 +15,7 @@ function dkan_datastore_theme($existing, $type, $theme, $path) {
'uuid' => NULL,
'title' => NULL,
'url' => NULL,
+ 'node_id' => NULL,
],
],
'dkan_datastore_dashboard_revision_cell' => [
diff --git a/modules/dkan_datastore/src/Form/DashboardForm.php b/modules/dkan_datastore/src/Form/DashboardForm.php
index 0476269e05..c5cc25cec2 100644
--- a/modules/dkan_datastore/src/Form/DashboardForm.php
+++ b/modules/dkan_datastore/src/Form/DashboardForm.php
@@ -503,6 +503,7 @@ protected function buildRevisionRow(array $rev, int $resourceCount, string $harv
if ($moderation_class == 'hidden') {
$moderation_class = 'published-hidden';
}
+
return [
[
'rowspan' => $resourceCount,
@@ -511,6 +512,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/dkan_datastore/templates/dkan-datastore-dashboard-dataset-cell.html.twig b/modules/dkan_datastore/templates/dkan-datastore-dashboard-dataset-cell.html.twig
index 466214284e..1b0912791d 100644
--- a/modules/dkan_datastore/templates/dkan-datastore-dashboard-dataset-cell.html.twig
+++ b/modules/dkan_datastore/templates/dkan-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/dkan_datastore/tests/src/Unit/Form/DashboardFormTest.php b/modules/dkan_datastore/tests/src/Unit/Form/DashboardFormTest.php
index 260452cf7a..56c8bdd493 100644
--- a/modules/dkan_datastore/tests/src/Unit/Form/DashboardFormTest.php
+++ b/modules/dkan_datastore/tests/src/Unit/Form/DashboardFormTest.php
@@ -2,8 +2,12 @@
namespace Drupal\Tests\dkan_datastore\Unit\Form;
+use Drupal\Core\Database\Connection;
use Drupal\Core\Datetime\DateFormatter;
use Drupal\Core\DependencyInjection\Container;
+use Drupal\Core\Entity\EntityStorageInterface;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\Core\Entity\Query\QueryInterface;
use Drupal\Core\Form\FormState;
use Drupal\Core\Pager\Pager;
use Drupal\Core\Pager\PagerManagerInterface;
@@ -11,27 +15,23 @@
use Drupal\Core\StreamWrapper\PublicStream;
use Drupal\Core\StreamWrapper\StreamWrapperManager;
use Drupal\Core\StringTranslation\TranslationManager;
-use Drupal\Tests\dkan_metastore\Unit\MetastoreServiceTest;
+use Drupal\dkan_common\DataResource;
use Drupal\dkan_common\DatasetInfo;
-use Drupal\Core\Database\Connection;
use Drupal\dkan_datastore\Form\DashboardForm;
+use Drupal\dkan_datastore\PostImportResult;
+use Drupal\dkan_datastore\PostImportResultFactory;
use Drupal\dkan_datastore\Service\PostImport;
use Drupal\dkan_harvest\Entity\HarvestRunRepository;
use Drupal\dkan_harvest\HarvestService;
use Drupal\dkan_metastore\MetastoreService;
+use Drupal\dkan_metastore\ResourceMapper;
+use Drupal\node\NodeInterface;
+use Drupal\Tests\dkan_metastore\Unit\MetastoreServiceTest;
use MockChain\Chain;
use MockChain\Options;
use PHPUnit\Framework\TestCase;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
-use Drupal\dkan_metastore\ResourceMapper;
-use Drupal\dkan_datastore\PostImportResult;
-use Drupal\dkan_datastore\PostImportResultFactory;
-use Drupal\dkan_common\DataResource;
-use Drupal\Core\Entity\EntityStorageInterface;
-use Drupal\Core\Entity\EntityTypeManagerInterface;
-use Drupal\Core\Entity\Query\QueryInterface;
-use Drupal\node\NodeInterface;
/**
* @group dkan
@@ -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"][0]);
+ $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',