diff --git a/client/src/components/DatasetInformation/DatasetDetails.vue b/client/src/components/DatasetInformation/DatasetDetails.vue index 667e33d2c802..7680606b3106 100644 --- a/client/src/components/DatasetInformation/DatasetDetails.vue +++ b/client/src/components/DatasetInformation/DatasetDetails.vue @@ -33,7 +33,6 @@ const userStore = useUserStore(); const { currentUser } = storeToRefs(userStore); const loading = ref(false); -const jobLoading = ref(true); const jobTimeOut = ref(null); const jobDetails = ref(); const dataset = ref(null); @@ -57,8 +56,6 @@ async function getDatasetDetails() { } async function loadJobDetails() { - jobLoading.value = true; - try { const { data } = await fetchJobDetails({ job_id: dataset.value?.creating_job as string, full: true }); @@ -73,8 +70,6 @@ async function loadJobDetails() { const error = e as AxiosError<{ err_msg?: string }>; jobLoadingError.value = error.response?.data?.err_msg || "Unable to fetch available dataset details."; - } finally { - jobLoading.value = false; } } @@ -102,7 +97,7 @@ onUnmounted(() => { {{ datasetLoadingError }}
-
+
@@ -124,7 +119,7 @@ onUnmounted(() => { - +

Dataset Peek

diff --git a/client/src/components/FilesDialog/FilesDialog.vue b/client/src/components/FilesDialog/FilesDialog.vue index 1020f8afd105..1fb89ae29130 100644 --- a/client/src/components/FilesDialog/FilesDialog.vue +++ b/client/src/components/FilesDialog/FilesDialog.vue @@ -272,7 +272,11 @@ function load(record?: SelectionItem) { } if (shouldUseItemsProvider()) { - itemsProvider.value = provideItems; + itemsProvider.value = (ctx) => provideItems(ctx, currentDirectory.value?.url); + optionsShow.value = true; + showTime.value = true; + showDetails.value = false; + return; } browseRemoteFiles(currentDirectory.value?.url, false, props.requireWritable) @@ -295,7 +299,10 @@ function load(record?: SelectionItem) { * If it does, we will use the items provider to fetch items. */ function shouldUseItemsProvider(): boolean { - const fileSource = filesSources.getFileSourceById(currentDirectory.value?.id!); + if (!currentDirectory.value) { + return false; + } + const fileSource = filesSources.getFileSourceByUri(currentDirectory.value.url); const supportsPagination = fileSource?.supports?.pagination; return Boolean(supportsPagination); } @@ -303,23 +310,16 @@ function shouldUseItemsProvider(): boolean { /** * Fetches items from the server using server-side pagination and filtering. **/ -async function provideItems(ctx: ItemsProviderContext): Promise { +async function provideItems(ctx: ItemsProviderContext, url?: string): Promise { isBusy.value = true; try { - if (!currentDirectory.value) { + if (!url) { return []; } const limit = ctx.perPage; const offset = (ctx.currentPage - 1) * ctx.perPage; const query = ctx.filter; - const response = await browseRemoteFiles( - currentDirectory.value?.url, - false, - props.requireWritable, - limit, - offset, - query - ); + const response = await browseRemoteFiles(url, false, props.requireWritable, limit, offset, query); const result = response.entries.map(entryToRecord); totalItems.value = response.totalMatches; items.value = result; diff --git a/client/src/components/Workflow/Editor/Index.vue b/client/src/components/Workflow/Editor/Index.vue index ffb07080dc1f..6025c523050c 100644 --- a/client/src/components/Workflow/Editor/Index.vue +++ b/client/src/components/Workflow/Editor/Index.vue @@ -98,7 +98,7 @@ @onUpgrade="onUpgrade" />
-
+
stateStore.activeNodeId, + () => { + scrollToTop(); + } + ); + + const rightPanelElement = ref(null); + + function scrollToTop() { + rightPanelElement.value?.scrollTo({ + top: 0, + behavior: "instant", + }); + } + const { comments } = storeToRefs(commentStore); const { getStepIndex, steps } = storeToRefs(stepStore); const { activeNodeId } = storeToRefs(stateStore); @@ -427,6 +443,8 @@ export default { setAnnotation, tags, setTags, + rightPanelElement, + scrollToTop, connectionStore, hasChanges, hasInvalidConnections, @@ -914,9 +932,6 @@ export default { this.setCreator(creator); } }, - onActiveNode(nodeId) { - this.$refs["right-panel"].scrollTop = 0; - }, onInsertedStateMessages(insertedStateMessages) { this.insertedStateMessages = insertedStateMessages; this.hideModal(); diff --git a/lib/galaxy/config/sample/object_store_conf.sample.yml b/lib/galaxy/config/sample/object_store_conf.sample.yml index 27e18e2796cb..afbcfc22323b 100644 --- a/lib/galaxy/config/sample/object_store_conf.sample.yml +++ b/lib/galaxy/config/sample/object_store_conf.sample.yml @@ -223,9 +223,9 @@ auth: # an access token suitable for data access (allowing calls to the Oneprovider REST API). access_token: ... connection: - # the domain of the Onezone service (e.g. "demo.onedata.org"), or its IP address for + # the domain of the Onezone service (e.g. datahub.egi.eu), or its IP address for # devel instances (see above). - onezone_domain: demo.onedata.org + onezone_domain: datahub.egi.eu # Allows connection to Onedata servers that do not present trusted SSL certificates. # SHOULD NOT be used unless you really know what you are doing. disable_tls_certificate_validation: false diff --git a/lib/galaxy/config/sample/object_store_conf.xml.sample b/lib/galaxy/config/sample/object_store_conf.xml.sample index b27b7125d42b..1b9d997271e9 100644 --- a/lib/galaxy/config/sample/object_store_conf.xml.sample +++ b/lib/galaxy/config/sample/object_store_conf.xml.sample @@ -165,7 +165,7 @@ an access token suitable for data access (allowing calls to the Oneprovider REST API). //connection/@onezone_domain - - the domain of the Onezone service (e.g. "demo.onedata.org"), or its IP address for + the domain of the Onezone service (e.g. datahub.egi.eu), or its IP address for devel instances (see above). //connection/@disable_tls_certificate_validation - @@ -182,7 +182,7 @@