From d45ea471b1e2ba351cb55180584244978e2b39a5 Mon Sep 17 00:00:00 2001 From: Alexander Ackermann Date: Thu, 2 Oct 2025 14:19:20 +0200 Subject: [PATCH] feat: set view mode e.G tiles or table view globally --- .../src/composables/extensions/useFolderViews.ts | 5 ++++- .../useResourcesViewDefaults.ts | 4 +--- .../web-app-files/src/views/spaces/Projects.vue | 15 +++------------ .../tests/unit/views/spaces/Projects.spec.ts | 1 + packages/web-pkg/src/components/ViewOptions.vue | 4 +--- 5 files changed, 10 insertions(+), 19 deletions(-) diff --git a/packages/web-app-files/src/composables/extensions/useFolderViews.ts b/packages/web-app-files/src/composables/extensions/useFolderViews.ts index 4d727b4395..f5b98d8b27 100644 --- a/packages/web-app-files/src/composables/extensions/useFolderViews.ts +++ b/packages/web-app-files/src/composables/extensions/useFolderViews.ts @@ -13,7 +13,10 @@ export const useFolderViews = (): FolderViewExtension[] => { { id: 'com.github.opencloud-eu.web.files.folder-view.resource-table-condensed', type: 'folderView', - extensionPointIds: [folderViewsFolderExtensionPoint.id], + extensionPointIds: [ + folderViewsFolderExtensionPoint.id, + folderViewsProjectSpacesExtensionPoint.id + ], folderView: { name: 'resource-table-condensed', label: $gettext('Condensed table view'), diff --git a/packages/web-app-files/src/composables/resourcesViewDefaults/useResourcesViewDefaults.ts b/packages/web-app-files/src/composables/resourcesViewDefaults/useResourcesViewDefaults.ts index a8342e7170..132aa037d6 100644 --- a/packages/web-app-files/src/composables/resourcesViewDefaults/useResourcesViewDefaults.ts +++ b/packages/web-app-files/src/composables/resourcesViewDefaults/useResourcesViewDefaults.ts @@ -5,7 +5,6 @@ import { useSort, SortDir, SortField, - useRouteName, useResourcesStore, folderService } from '@opencloud-eu/web-pkg' @@ -72,9 +71,8 @@ export const useResourcesViewDefaults = queryItemAsString(currentViewModeQuery.value)) diff --git a/packages/web-app-files/src/views/spaces/Projects.vue b/packages/web-app-files/src/views/spaces/Projects.vue index 7737891012..1d3f0962c2 100644 --- a/packages/web-app-files/src/views/spaces/Projects.vue +++ b/packages/web-app-files/src/views/spaces/Projects.vue @@ -55,6 +55,7 @@ :header-position="fileListHeaderY" :is-side-bar-open="isSideBarOpen" :view-size="viewSize" + :view-mode="viewMode" v-bind="folderView.componentAttrs?.()" @sort="handleSort" @item-visible="loadPreview({ space: $event, resource: $event })" @@ -146,7 +147,6 @@ import { useResourcesStore, useSpacesStore, useExtensionRegistry, - queryItemAsString, useLoadPreview } from '@opencloud-eu/web-pkg' @@ -155,9 +155,7 @@ import { useAbility, useClientService, FolderViewModeConstants, - useRouteQueryPersisted, useSort, - useRouteName, usePagination, useRouter, useRoute, @@ -216,6 +214,7 @@ const loadResourcesTask = useTask(function* (signal) { const { viewSize, + viewMode, fileListHeaderY, scrollToResourceFromRoute, areResourcesLoading, @@ -335,15 +334,7 @@ const viewModes = computed(() => { ] }) -const routeName = useRouteName() - -const viewMode = useRouteQueryPersisted({ - name: `${unref(routeName)}-${FolderViewModeConstants.queryName}`, - defaultValue: FolderViewModeConstants.name.tiles -}) -const viewModeStr = computed(() => queryItemAsString(unref(viewMode))) - -const { loadPreview } = useLoadPreview(viewModeStr) +const { loadPreview } = useLoadPreview(viewMode) const keyActions = useKeyboardActions() useKeyboardFileNavigation(keyActions, runtimeSpaces, viewMode) diff --git a/packages/web-app-files/tests/unit/views/spaces/Projects.spec.ts b/packages/web-app-files/tests/unit/views/spaces/Projects.spec.ts index 7d8aafe2e3..d3999433a1 100644 --- a/packages/web-app-files/tests/unit/views/spaces/Projects.spec.ts +++ b/packages/web-app-files/tests/unit/views/spaces/Projects.spec.ts @@ -171,6 +171,7 @@ function getMountedWrapper({ }) vi.mocked(queryItemAsString).mockImplementation(() => includeDisabled.toString()) + vi.mocked(queryItemAsString).mockImplementation(() => 'resource-table') const extensions = [ { diff --git a/packages/web-pkg/src/components/ViewOptions.vue b/packages/web-pkg/src/components/ViewOptions.vue index 59b1a2d600..f9f25c9674 100644 --- a/packages/web-pkg/src/components/ViewOptions.vue +++ b/packages/web-pkg/src/components/ViewOptions.vue @@ -157,7 +157,6 @@ import { useActiveLocation, useResourcesStore, useRoute, - useRouteName, useRouteQuery, useRouteQueryPersisted, useRouter, @@ -232,9 +231,8 @@ export default defineComponent({ storagePrefix: props.perPageStoragePrefix }) - const routeName = useRouteName() const viewModeQuery = useRouteQueryPersisted({ - name: `${unref(routeName)}-${FolderViewModeConstants.queryName}`, + name: FolderViewModeConstants.queryName, defaultValue: props.viewModeDefault })