From 8083df4cddce64ca3d216a5403f8293de92e560c Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Thu, 24 Apr 2025 10:32:44 +0200
Subject: [PATCH] WIP

Signed-off-by: Martin Weise <martin.weise@tuwien.ac.at>
---
 dbrepo-ui/components/ResourceStatus.vue        | 18 +++++++++++++++++-
 .../pages/database/[database_id]/info.vue      |  2 +-
 .../core/entity/identifier/Identifier.java     |  1 +
 3 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/dbrepo-ui/components/ResourceStatus.vue b/dbrepo-ui/components/ResourceStatus.vue
index 017908b3af..22718ff583 100644
--- a/dbrepo-ui/components/ResourceStatus.vue
+++ b/dbrepo-ui/components/ResourceStatus.vue
@@ -16,6 +16,8 @@
 </template>
 
 <script>
+import { useCacheStore } from '~/stores/cache.js';
+
 export default {
   props: {
     resource: {
@@ -34,6 +36,11 @@ export default {
       }
     }
   },
+  data () {
+    return {
+      cacheStore: useCacheStore()
+    }
+  },
   computed: {
     mode () {
       if (!this.resource) {
@@ -54,8 +61,17 @@ export default {
       }
       return this.$t(`pages.database.status.${this.mode}`)
     },
+    cacheUser () {
+      return this.cacheStore.getUser
+    },
     hasIdentifier () {
-      return this.resource.identifiers?.length > 0
+      if (!this.resource.identifiers) {
+        return false
+      }
+      if (!this.cacheUser) {
+        return this.resource.identifiers.filter(i => i.status === 'published').length
+      }
+      return this.resource.identifiers.filter(i => i.status === 'published' || i.owner.id === this.cacheUser.uid)
     },
     color () {
       if (this.hasIdentifier) {
diff --git a/dbrepo-ui/pages/database/[database_id]/info.vue b/dbrepo-ui/pages/database/[database_id]/info.vue
index 89583c5f4f..0af35a5d3b 100644
--- a/dbrepo-ui/pages/database/[database_id]/info.vue
+++ b/dbrepo-ui/pages/database/[database_id]/info.vue
@@ -272,7 +272,7 @@ export default {
       if (!this.database || !this.database.identifiers) {
         return []
       }
-      return this.database.identifiers.filter(i => i.query_id === this.$route.params.subset_id)
+      return this.database.identifiers.filter(i => i.database_id === this.$route.params.database_id)
     },
     pid () {
       return this.$route.query.pid
diff --git a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/Identifier.java b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/Identifier.java
index 04471509c6..ac0559fa96 100644
--- a/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/Identifier.java
+++ b/lib/java/dbrepo-core/src/main/java/at/ac/tuwien/ifs/dbrepo/core/entity/identifier/Identifier.java
@@ -33,6 +33,7 @@ import java.util.UUID;
         @NamedQuery(name = "Identifier.findSubsetIdentifier", query = "select i from Identifier i where i.database.id = ?1 and i.queryId = ?2 and i.type = 'SUBSET' ORDER BY i.id DESC"),
         @NamedQuery(name = "Identifier.findViewIdentifier", query = "select i from Identifier i where i.database.id = ?1 and i.viewId = ?2 and i.type = 'VIEW' ORDER BY i.id DESC"),
         @NamedQuery(name = "Identifier.findEarliest", query = "select i from Identifier i ORDER BY i.created ASC limit 1"),
+        @NamedQuery(name = "Identifier.findAll", query = "select i from Identifier i ORDER BY i.created DESC"),
 })
 public class Identifier implements Serializable {
 
-- 
GitLab