diff --git a/components/ProjectGroupPicker.vue b/components/ProjectGroupPicker.vue
index 19eb4ec..b87250b 100644
--- a/components/ProjectGroupPicker.vue
+++ b/components/ProjectGroupPicker.vue
@@ -2,6 +2,7 @@
· Scroll to continue loading
- Showing all {{ projectGroups.length }} project group{{ projectGroups.length !== 1 ? 's' : '' }}
+ Showing all {{ projectGroups.length }} project group{{ projectGroups.length !== 1 ? 's' : '' }}
Showing first {{ projectGroups.length }} results
· Scroll to continue loading
@@ -32,7 +33,7 @@
@@ -88,8 +89,9 @@ import { ref, watch, onMounted, onUnmounted, nextTick } from 'vue'
import { tdeiUserClient } from '~/services/index'
import type { TdeiProjectGroupItem } from '~/types/tdei'
-const props = withDefaults(defineProps<{ disabled?: boolean; options?: TdeiProjectGroupItem[] }>(), {
+const props = withDefaults(defineProps<{ id?: string; disabled?: boolean; options?: TdeiProjectGroupItem[]; rememberSelection?: boolean }>(), {
disabled: false,
+ rememberSelection: false,
})
const model = defineModel({ required: true })
@@ -104,6 +106,7 @@ const listRef = ref
(null)
const activeIndex = ref(-1)
const projectGroups = computed(() => props.options ?? fetchedGroups.value)
+const showScrollHint = computed(() => !props.options && hasMore.value)
let pageNo = 1
const hasMore = ref(true)
@@ -143,7 +146,9 @@ const loadGroups = async (reset = false) => {
if (total !== undefined) totalCount.value = total
fetchedGroups.value.push(...newGroups)
const selected = newGroups.find(g => g.tdei_project_group_id === model.value)
- if (selected) persistCachedName(selected.tdei_project_group_id, selected.name)
+ if (selected && props.rememberSelection) {
+ persistCachedName(selected.tdei_project_group_id, selected.name)
+ }
if (newGroups.length < pageSize) {
hasMore.value = false
@@ -204,7 +209,9 @@ const selectGroup = (id: string) => {
if (pg) {
searchText.value = pg.name
selectedGroupName.value = pg.name
- persistCachedName(pg.tdei_project_group_id, pg.name)
+ if (props.rememberSelection) {
+ persistCachedName(pg.tdei_project_group_id, pg.name)
+ }
}
}
@@ -295,7 +302,7 @@ watch(
(groups) => {
if (groups.length > 0) {
const pgId = model.value as string | undefined
- if (!pgId || !groups.some(pg => pg.tdei_project_group_id === pgId)) {
+ if (!pgId || (props.options && !groups.some(pg => pg.tdei_project_group_id === pgId))) {
model.value = groups[0]?.tdei_project_group_id
}
const selected = groups.find(pg => pg.tdei_project_group_id === model.value)
@@ -310,7 +317,7 @@ watch(
onMounted(async () => {
// Show cached name immediately before the API call completes
- if (model.value && loadCachedName(model.value as string)) {
+ if (props.rememberSelection && model.value && loadCachedName(model.value as string)) {
applyCachedName()
}
@@ -322,7 +329,7 @@ onMounted(async () => {
if (selected) {
searchText.value = selected.name
selectedGroupName.value = selected.name
- } else if (model.value && loadCachedName(model.value as string)) {
+ } else if (props.rememberSelection && model.value && loadCachedName(model.value as string)) {
// Group is beyond page 1 — use the cached name for display
applyCachedName()
} else if (model.value) {
diff --git a/components/ServicePicker.vue b/components/ServicePicker.vue
index e361ff4..6d1fbfc 100644
--- a/components/ServicePicker.vue
+++ b/components/ServicePicker.vue
@@ -37,10 +37,11 @@ async function refreshServices() {
services.value = (await tdeiUserClient.getMyServices(props.projectGroupId, props.serviceType))
.sort((a, b) => a.name.localeCompare(b.name));
- if (!model.value && services.length > 0) {
- model.value = services[0].id
+ const selectedServiceStillExists = services.value.some(s => s.id === model.value)
+
+ if (!selectedServiceStillExists) {
+ model.value = services.value[0]?.id ?? null
}
}
-
diff --git a/pages/dashboard.vue b/pages/dashboard.vue
index 275291a..2394cb5 100644
--- a/pages/dashboard.vue
+++ b/pages/dashboard.vue
@@ -4,7 +4,11 @@
My Workspaces
-
+
diff --git a/pages/workspace/[id]/export/tdei.vue b/pages/workspace/[id]/export/tdei.vue
index 9d9e187..e6ba869 100644
--- a/pages/workspace/[id]/export/tdei.vue
+++ b/pages/workspace/[id]/export/tdei.vue
@@ -62,13 +62,16 @@
Dataset Name
-
-
- Project Group
+
Dataset Type
-
diff --git a/pages/workspace/create/tdei.vue b/pages/workspace/create/tdei.vue
index 1db82ef..461bcc5 100644
--- a/pages/workspace/create/tdei.vue
+++ b/pages/workspace/create/tdei.vue
@@ -20,14 +20,17 @@
>
-
- Project Group
+
Dataset