From eed23e2eeaf2801a44e8668d6e2842d061e8b86f Mon Sep 17 00:00:00 2001 From: Steve Wirt Date: Tue, 7 Apr 2026 14:28:29 -0400 Subject: [PATCH] Improve resiliance of Import Status dashboard --- .../dkan_datastore/src/Form/DashboardForm.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/dkan_datastore/src/Form/DashboardForm.php b/modules/dkan_datastore/src/Form/DashboardForm.php index 0476269e05..d5710971ee 100644 --- a/modules/dkan_datastore/src/Form/DashboardForm.php +++ b/modules/dkan_datastore/src/Form/DashboardForm.php @@ -467,7 +467,7 @@ protected function buildRevisionRows(array $datasetInfo, string $harvestStatus) // Create a row for each dataset revision (there could be both a published // and latest). foreach ($datasetInfo as $rev) { - $distributions = $rev['distributions']; + $distributions = $rev['distributions'] ?? []; // For first distribution, combine with revision information. $rows[] = array_merge( $this->buildRevisionRow($rev, count($distributions), $harvestStatus), @@ -499,7 +499,7 @@ protected function buildRevisionRow(array $rev, int $resourceCount, string $harv // Moderation state can be 'hidden', which is not a good CSS class if we // don't want data to be hidden. We hijack the 'registered' class for use // here. - $moderation_class = $rev['moderation_state']; + $moderation_class = $rev['moderation_state'] ?? NULL; if ($moderation_class == 'hidden') { $moderation_class = 'published-hidden'; } @@ -508,9 +508,9 @@ protected function buildRevisionRow(array $rev, int $resourceCount, string $harv 'rowspan' => $resourceCount, 'data' => [ '#theme' => 'dkan_datastore_dashboard_dataset_cell', - '#uuid' => $rev['uuid'], - '#title' => $rev['title'], - '#url' => Url::fromUri("internal:/dataset/$rev[uuid]"), + '#uuid' => $rev['uuid'] ?? NULL, + '#title' => $rev['title'] ?? $this->t('unknown'), + '#url' => (!empty($rev['uuid'])) ? Url::fromUri("internal:/dataset/{$rev['uuid']}") : NULL, ], ], [ @@ -518,9 +518,9 @@ protected function buildRevisionRow(array $rev, int $resourceCount, string $harv 'class' => [$moderation_class], 'data' => [ '#theme' => 'dkan_datastore_dashboard_revision_cell', - '#revision_id' => $rev['revision_id'], - '#modified' => $this->dateFormatter->format(strtotime((string) $rev['modified_date_dkan']), 'short'), - '#moderation_state' => $rev['moderation_state'], + '#revision_id' => $rev['revision_id'] ?? NULL, + '#modified' => (!empty($rev['modified_date_dkan'])) ? $this->dateFormatter->format(strtotime((string) $rev['modified_date_dkan']), 'short') : NULL, + '#moderation_state' => $rev['moderation_state'] ?? NULL, ], ], [