diff --git a/src/App.vue b/src/App.vue
index 2a7fe2b0..e558f00c 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,9 +1,12 @@
diff --git a/src/components/sidebar/AppSidebar.vue b/src/components/sidebar/AppSidebar.vue
index dbad4ec6..d0c0991e 100644
--- a/src/components/sidebar/AppSidebar.vue
+++ b/src/components/sidebar/AppSidebar.vue
@@ -305,12 +305,14 @@ const toggleSidebar = (collapsed: boolean) => {
const navigateTo = (value: string) => {
const routeName = value.split(":")[0];
-
if (routeName === "studies") {
sidebarStore.setAppSidebarCollapsed(false);
router.push({
name: value,
+ query: {
+ _clear: "true",
+ },
});
return;
@@ -318,12 +320,14 @@ const navigateTo = (value: string) => {
if (routeName === "study") {
sidebarStore.setAppSidebarCollapsed(false);
-
router.push({
name: value,
params: {
studyId: studyID.value,
},
+ query: {
+ _clear: "true",
+ },
});
return;
@@ -337,6 +341,9 @@ const navigateTo = (value: string) => {
params: {
studyId: studyID.value,
},
+ query: {
+ _clear: "true",
+ },
});
return;
@@ -373,8 +380,6 @@ const defaultExpandedKeys = computed(() => {
if (currentRoute.name) {
const name = currentRoute.name as string;
- console.log("appsidebar-name", name, name.startsWith("study:metadata"));
-
if (name.startsWith("study:metadata")) {
return ["study:metadata"];
}
@@ -390,7 +395,7 @@ const selectAndExpand = (key: string) => {
menuInstRef.value?.showOption(key);
};
-router.beforeEach((to, from) => {
+router.beforeEach((to) => {
if (typeof to.name !== "string") return;
const name: string = to.meta && to.meta.menuItem ? (to.meta.menuItem as string) : to.name;
selectAndExpand(name);
diff --git a/src/components/sidebar/DatasetSidebar.vue b/src/components/sidebar/DatasetSidebar.vue
index a23b6669..794575ce 100644
--- a/src/components/sidebar/DatasetSidebar.vue
+++ b/src/components/sidebar/DatasetSidebar.vue
@@ -163,6 +163,9 @@ const navigateTo = (value: string) => {
datasetId: datasetId.value,
studyId: studyID.value,
},
+ query: {
+ _clear: "true",
+ },
});
return;
@@ -206,7 +209,7 @@ const selectAndExpand = (key: string) => {
menuInstRef.value?.showOption(key);
};
-router.beforeEach((to, from) => {
+router.beforeEach((to) => {
if (typeof to.name !== "string") return;
const name: string = to.meta && to.meta.menuItem ? (to.meta.menuItem as string) : to.name;
selectAndExpand(name);
diff --git a/src/stores/nav.ts b/src/stores/nav.ts
new file mode 100644
index 00000000..2dbdf31e
--- /dev/null
+++ b/src/stores/nav.ts
@@ -0,0 +1,52 @@
+import type { Ref } from "vue/dist/vue";
+import type { RouteLocationNormalized } from "vue-router";
+
+export const prev_route: Ref = ref(null);
+export const current_route: Ref = ref(null);
+
+export function getBackRoute(): string {
+ if (prev_route.value && typeof prev_route.value.name == "string") {
+ if (prev_route.value.name == "dataset:publish:version:study-metadata") {
+ return "dataset:publish:version:study-metadata";
+ }
+ if (prev_route.value.name == "dataset:publish:version:dataset-metadata") {
+ return "dataset:publish:version:dataset-metadata";
+ }
+ if (prev_route.value.name.startsWith("dataset:")) {
+ return "dataset:overview";
+ }
+ if (prev_route.value.name.startsWith("study:")) {
+ return "study:overview";
+ }
+ }
+ if (current_route.value && typeof current_route.value.name == "string") {
+ if (current_route.value.name.startsWith("dataset")) {
+ return "dataset:overview";
+ }
+ if (current_route.value.name.startsWith("study")) {
+ console.log("oh no were here");
+ return "study:overview";
+ }
+ }
+ return "study:overview";
+}
+
+export function getBackParams(): object {
+ if (prev_route.value && typeof prev_route.value.name == "string") {
+ if (prev_route.value.name == "dataset:publish:version:study-metadata") {
+ return prev_route.value?.params;
+ }
+ if (prev_route.value.name == "dataset:publish:version:dataset-metadata") {
+ return prev_route.value?.params;
+ }
+ }
+ if (current_route.value && typeof current_route.value.name == "string") {
+ if (current_route.value.name.startsWith("dataset")) {
+ return current_route.value?.params;
+ }
+ if (current_route.value.name.startsWith("study")) {
+ return current_route.value?.params;
+ }
+ }
+ return current_route.value ? current_route.value.params : {};
+}
diff --git a/src/types/Version.d.ts b/src/types/Version.d.ts
index f7f19ef4..021f97f2 100644
--- a/src/types/Version.d.ts
+++ b/src/types/Version.d.ts
@@ -41,6 +41,7 @@ export interface VersionStudyOverallOfficial {
id: string;
name: string;
affiliation: string;
+ role: string;
}
export interface VersionDesign {
@@ -103,7 +104,8 @@ export interface VersionStudyStatusModule {
}
export interface VersionStudySponsor {
- responsible_party_investigator_name: string;
+ lead_sponsor_name: string;
+ responsible_party_investigator_name: string | null;
responsible_party_type: string;
}
@@ -125,7 +127,6 @@ export interface VersionStudyArm {
export interface VersionStudyEligibility {
gender: string | null;
gender_based: string | null;
- maximum_age_value: number | null;
minimum_age_value: number | null;
}
@@ -233,7 +234,7 @@ export interface VersionDatasetSubjects {
export interface VersionDatasetAccess {
description: string;
type: string | null;
- url: string;
+ url: string | null;
url_last_checked: number | null;
}
@@ -246,7 +247,7 @@ export interface VersionDatasetRights {
export interface VersionDatasetFunders {
id: string;
name: string;
- award_number: string;
+ award_number: string | null;
identifier: string;
}
diff --git a/src/views/study/dataset/metadata/about/DatasetMetadataOther.vue b/src/views/study/dataset/metadata/about/DatasetMetadataOther.vue
index 5c1abb21..1c9c5301 100644
--- a/src/views/study/dataset/metadata/about/DatasetMetadataOther.vue
+++ b/src/views/study/dataset/metadata/about/DatasetMetadataOther.vue
@@ -2,6 +2,7 @@
import type { FormInst } from "naive-ui";
import LANGUAGES_JSON from "@/assets/data/languages.json";
+import { getBackParams, getBackRoute } from "@/stores/nav";
import type { DatasetOther } from "@/types/Dataset";
import { baseURL } from "@/utils/constants";
@@ -119,10 +120,8 @@ const saveMetadata = (e: MouseEvent) => {
diff --git a/src/views/study/dataset/metadata/access/DatasetMetadataAccess.vue b/src/views/study/dataset/metadata/access/DatasetMetadataAccess.vue
index 06e5ea54..23f95c5d 100644
--- a/src/views/study/dataset/metadata/access/DatasetMetadataAccess.vue
+++ b/src/views/study/dataset/metadata/access/DatasetMetadataAccess.vue
@@ -1,10 +1,10 @@