From 131ffc614a1ff79eed42019bbe7dca5e67bd01dd Mon Sep 17 00:00:00 2001 From: aydawka Date: Tue, 23 Sep 2025 14:53:32 -0700 Subject: [PATCH 1/8] =?UTF-8?q?fix:=20=F0=9F=90=9B=20modify=20style?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/study/datasets/AllDatasets.vue | 50 +++++++++++++++++++----- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/src/views/study/datasets/AllDatasets.vue b/src/views/study/datasets/AllDatasets.vue index 99dbda03..94af5cba 100644 --- a/src/views/study/datasets/AllDatasets.vue +++ b/src/views/study/datasets/AllDatasets.vue @@ -38,7 +38,25 @@ onBeforeMount(async () => { } const data = await response.json(); - + datasets.value = data; + // loop datasets to fetch versions for each + for (const dataset of data) { + const responseVersion = await fetch( + `${baseURL}/study/${studyId}/dataset/${dataset.id}/version`, + { method: "GET" } + ); + + if (!responseVersion.ok) { + push.error(`Something went wrong (versions for dataset ${dataset.id}).`); + continue; + } + + const dataVersion = await responseVersion.json(); + + // attach versions to each dataset + dataset.versions = dataVersion; + console.log(data, dataVersion); + } console.log(data); datasets.value = data; @@ -49,6 +67,12 @@ const navigateToDataset = (datasetId: string) => { router.push({ name: "dataset:overview", params: { datasetId } }); }; + +const navigateToNewVersion = (datasetId: string) => { + sidebarStore.setAppSidebarCollapsed(true); + + router.push({ name: "dataset:publish:versions:new", params: { datasetId } }); +}; - View dataset on data.fairhub.io + View dataset on fairhub.io diff --git a/src/views/study/datasets/AllDatasets.vue b/src/views/study/datasets/AllDatasets.vue index 94af5cba..d743128d 100644 --- a/src/views/study/datasets/AllDatasets.vue +++ b/src/views/study/datasets/AllDatasets.vue @@ -21,11 +21,9 @@ const routeParams = { }; onBeforeMount(async () => { - const studyId = routeParams.studyId as string; - sidebarStore.setAppSidebarCollapsed(false); - const response = await fetch(`${baseURL}/study/${studyId}/dataset`, { + const response = await fetch(`${baseURL}/study/${routeParams.studyId}/dataset`, { method: "GET", }); @@ -40,9 +38,9 @@ onBeforeMount(async () => { const data = await response.json(); datasets.value = data; // loop datasets to fetch versions for each - for (const dataset of data) { + for (const dataset of datasets.value) { const responseVersion = await fetch( - `${baseURL}/study/${studyId}/dataset/${dataset.id}/version`, + `${baseURL}/study/${routeParams.studyId}/dataset/${dataset.id}/version`, { method: "GET" } ); @@ -55,11 +53,8 @@ onBeforeMount(async () => { // attach versions to each dataset dataset.versions = dataVersion; - console.log(data, dataVersion); } console.log(data); - - datasets.value = data; }); const navigateToDataset = (datasetId: string) => { @@ -69,10 +64,32 @@ const navigateToDataset = (datasetId: string) => { }; const navigateToNewVersion = (datasetId: string) => { - sidebarStore.setAppSidebarCollapsed(true); + router.push({ + name: "dataset:publish:versions:new", + params: { + datasetId, + studyId: routeParams.studyId, + }, + }); +}; - router.push({ name: "dataset:publish:versions:new", params: { datasetId } }); +const navigateToDatasetVersion = (datasetId: string) => { + router.push({ + name: "dataset:publish:versions", + params: { + datasetId, + studyId: routeParams.studyId, + }, + }); }; + +const draftAndNonExistingVersions = computed(() => + datasets.value.filter((d) => !d.versions?.some((v) => v.published)) +); + +const publishedVersions = computed(() => + datasets.value.filter((d) => d.versions?.some((v) => v.published)) +); - Create a new dataset + Publish a new dataset @@ -128,66 +145,111 @@ const navigateToNewVersion = (datasetId: string) => {
-

{{ dataset.title || "Untitled Dataset" }}

+

{{ d.title || "Untitled Dataset" }}

- Description: + Description: - {{ dataset.description || "No description provided" }} + {{ d.description || "No description provided" }}

- Created date: + Created date: - - {{ displayHumanFriendlyDateAndTime(dataset.created_at) }} - + {{ displayHumanFriendlyDateAndTime(d.created_at) }}

- Last updated date: + Last updated date: + + {{ displayHumanFriendlyDateAndTime(d.updated_on) }} +

+ +

+ Status: - {{ displayHumanFriendlyDateAndTime(dataset.created_at) }} + {{ d.versions?.some((v) => v.published) ? "Published" : " In preparation" }}

+
+ +
+ + Publish a new version + + + + + + View on FAIRhub.io + + +
+
+ + +

+ Published Datasets +

+ +
+
+

{{ d.title || "Untitled Dataset" }}

+
+ + + +
+

+ Description: + + {{ d.description || "No description provided" }} +

+ +

+ Created date: + + {{ displayHumanFriendlyDateAndTime(d.created_at) }} +

- Number of participants: - + Last updated date: - 0 + {{ displayHumanFriendlyDateAndTime(d.updated_on) }}

- Status: - + Status: - In preparation + Published

- Publish a new version + + View all versions + - - View on fairhub.io + + View on FAIRhub.io
From 6c5ddaf34f3edd3196bc24d7ea653f24a7707cb2 Mon Sep 17 00:00:00 2001 From: aydawka Date: Tue, 30 Sep 2025 00:27:57 -0700 Subject: [PATCH 3/8] =?UTF-8?q?fix:=20=F0=9F=90=9B=20dataset=20workflow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/types/Dataset.d.ts | 2 +- src/views/study/datasets/AllDatasets.vue | 29 ++---------------------- 2 files changed, 3 insertions(+), 28 deletions(-) diff --git a/src/types/Dataset.d.ts b/src/types/Dataset.d.ts index 4e4eca4c..dd98b75b 100644 --- a/src/types/Dataset.d.ts +++ b/src/types/Dataset.d.ts @@ -5,8 +5,8 @@ export interface Dataset { title: string; created_at: number; description: string; + latest_version?: Version[]; updated_at: number; - versions?: Version[]; } export interface DatasetTitle { diff --git a/src/views/study/datasets/AllDatasets.vue b/src/views/study/datasets/AllDatasets.vue index d743128d..834f5fa4 100644 --- a/src/views/study/datasets/AllDatasets.vue +++ b/src/views/study/datasets/AllDatasets.vue @@ -38,22 +38,6 @@ onBeforeMount(async () => { const data = await response.json(); datasets.value = data; // loop datasets to fetch versions for each - for (const dataset of datasets.value) { - const responseVersion = await fetch( - `${baseURL}/study/${routeParams.studyId}/dataset/${dataset.id}/version`, - { method: "GET" } - ); - - if (!responseVersion.ok) { - push.error(`Something went wrong (versions for dataset ${dataset.id}).`); - continue; - } - - const dataVersion = await responseVersion.json(); - - // attach versions to each dataset - dataset.versions = dataVersion; - } console.log(data); }); @@ -84,12 +68,10 @@ const navigateToDatasetVersion = (datasetId: string) => { }; const draftAndNonExistingVersions = computed(() => - datasets.value.filter((d) => !d.versions?.some((v) => v.published)) + datasets.value.filter((d) => d.latest_version === null) ); -const publishedVersions = computed(() => - datasets.value.filter((d) => d.versions?.some((v) => v.published)) -); +const publishedVersions = computed(() => datasets.value.filter((d) => d.latest_version !== null));