diff --git a/client/src/components/Dataset/DatasetStorage/RelocateDialog.vue b/client/src/components/Dataset/DatasetStorage/RelocateDialog.vue
new file mode 100644
index 000000000000..4fab527c72dd
--- /dev/null
+++ b/client/src/components/Dataset/DatasetStorage/RelocateDialog.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
Relocate the dataset's current object store of:
+
+
+
+
Select a new object store below to relocate the dataset
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/client/src/components/Dataset/DatasetStorage/RelocateLink.vue b/client/src/components/Dataset/DatasetStorage/RelocateLink.vue
new file mode 100644
index 000000000000..8494c2c64756
--- /dev/null
+++ b/client/src/components/Dataset/DatasetStorage/RelocateLink.vue
@@ -0,0 +1,107 @@
+
+
+
+
+
+ (relocate)
+
+
diff --git a/client/src/components/Dataset/DatasetStorage/RelocateModal.vue b/client/src/components/Dataset/DatasetStorage/RelocateModal.vue
new file mode 100644
index 000000000000..f86243922d12
--- /dev/null
+++ b/client/src/components/Dataset/DatasetStorage/RelocateModal.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+ {{ title }}
+
+
+
+
diff --git a/client/src/components/ObjectStore/DescribeObjectStore.vue b/client/src/components/ObjectStore/DescribeObjectStore.vue
index f8fffc5e4d5e..caf9ddd9ae45 100644
--- a/client/src/components/ObjectStore/DescribeObjectStore.vue
+++ b/client/src/components/ObjectStore/DescribeObjectStore.vue
@@ -1,5 +1,5 @@
-
- (relocate)
+
+
+
+ (relocate)
diff --git a/client/src/components/Dataset/DatasetStorage/RelocateModal.vue b/client/src/components/Dataset/DatasetStorage/RelocateModal.vue
deleted file mode 100644
index f86243922d12..000000000000
--- a/client/src/components/Dataset/DatasetStorage/RelocateModal.vue
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
- {{ title }}
-
-
-
-
diff --git a/client/src/components/Dataset/DatasetStorage/SelectModal.vue b/client/src/components/Dataset/DatasetStorage/SelectModal.vue
new file mode 100644
index 000000000000..14e5b7fc24ec
--- /dev/null
+++ b/client/src/components/Dataset/DatasetStorage/SelectModal.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+ {{ title }}
+
+
+
+
From fb7e244eb5bc069b050d7a6d3fc79d4eee97516d Mon Sep 17 00:00:00 2001
From: John Chilton
Date: Sat, 10 Feb 2024 16:58:39 -0500
Subject: [PATCH 7/8] Higher level abstractions for building object store
components.
---
.../Dataset/DatasetStorage/RelocateDialog.vue | 28 ++++++++----------
.../ObjectStore/ObjectStoreSelectButton.vue | 2 ++
...ObjectStoreSelectButtonDescribePopover.vue | 29 +++++++++++++++++++
.../ObjectStore/SelectObjectStore.vue | 14 ++++-----
4 files changed, 50 insertions(+), 23 deletions(-)
create mode 100644 client/src/components/ObjectStore/ObjectStoreSelectButtonDescribePopover.vue
diff --git a/client/src/components/Dataset/DatasetStorage/RelocateDialog.vue b/client/src/components/Dataset/DatasetStorage/RelocateDialog.vue
index 4fab527c72dd..e0823d4b9bd5 100644
--- a/client/src/components/Dataset/DatasetStorage/RelocateDialog.vue
+++ b/client/src/components/Dataset/DatasetStorage/RelocateDialog.vue
@@ -1,9 +1,8 @@
+
+
+
+
+
+
diff --git a/client/src/components/ObjectStore/SelectObjectStore.vue b/client/src/components/ObjectStore/SelectObjectStore.vue
index fa71c773c305..36638836208c 100644
--- a/client/src/components/ObjectStore/SelectObjectStore.vue
+++ b/client/src/components/ObjectStore/SelectObjectStore.vue
@@ -5,9 +5,9 @@ import { computed, ref } from "vue";
import { useObjectStoreStore } from "@/stores/objectStoreStore";
import ObjectStoreSelectButton from "./ObjectStoreSelectButton.vue";
+import ObjectStoreSelectButtonDescribePopover from "./ObjectStoreSelectButtonDescribePopover.vue";
import ObjectStoreSelectButtonPopover from "./ObjectStoreSelectButtonPopover.vue";
import LoadingSpan from "@/components/LoadingSpan.vue";
-import DescribeObjectStore from "@/components/ObjectStore/DescribeObjectStore.vue";
interface SelectObjectStoreProps {
selectedObjectStoreId?: String | null;
@@ -76,8 +76,8 @@ async function handleSubmit(preferredObjectStoreId: string) {
>
{{ defaultOptionDescription }}
-
-
-
+ id-prefix="preferred"
+ :what="forWhat"
+ :object-store="objectStore">
+