Skip to content

Commit 3cc9adb

Browse files
committed
feat: persist search term in the route query
1 parent ea72e31 commit 3cc9adb

20 files changed

Lines changed: 127 additions & 36 deletions

File tree

‎packages/web-app-admin-settings/src/components/Users/UsersList.vue‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,8 +171,8 @@ const { graphUsersEditLoginAllowedDisabled } = storeToRefs(capabilityStore)
171171
const userSettingsStore = useUserSettingsStore()
172172
const { users, selectedUsers } = storeToRefs(userSettingsStore)
173173
174-
const displayNameQuery = useRouteQuery('q_displayName')
175-
const filterTerm = computed(() => queryItemAsString(unref(displayNameQuery)))
174+
const searchTermQuery = useRouteQuery('q_search_term')
175+
const filterTerm = computed(() => queryItemAsString(unref(searchTermQuery)))
176176
177177
function getRoleDisplayName(appRoleAssignments: AppRoleAssignment[]) {
178178
const assignedRole = appRoleAssignments?.[0]

‎packages/web-app-admin-settings/src/views/Extensions.vue‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,13 @@
3434
<script setup lang="ts">
3535
import AppTemplate from '../components/AppTemplate.vue'
3636
import ExtensionsList from '../components/Extensions/ExtensionsList.vue'
37-
import { NoContentMessage, useAppsStore, useConfigStore } from '@opencloud-eu/web-pkg'
38-
import { computed, ref, unref } from 'vue'
37+
import {
38+
NoContentMessage,
39+
useAppsStore,
40+
useConfigStore,
41+
useRouteQueryFilterTerm
42+
} from '@opencloud-eu/web-pkg'
43+
import { computed, unref } from 'vue'
3944
import { useGettext } from 'vue3-gettext'
4045
import { storeToRefs } from 'pinia'
4146
@@ -44,7 +49,7 @@ const appsStore = useAppsStore()
4449
const configStore = useConfigStore()
4550
const { apps, appLoadingFailure } = storeToRefs(appsStore)
4651
47-
const filterTerm = ref('')
52+
const filterTerm = useRouteQueryFilterTerm()
4853
4954
interface ExtensionInfo {
5055
name: string

‎packages/web-app-admin-settings/src/views/Groups.vue‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,11 @@ import {
7979
NoContentMessage,
8080
SideBarPanel,
8181
SideBarPanelContext,
82-
useClientService
82+
useClientService,
83+
useRouteQueryFilterTerm
8384
} from '@opencloud-eu/web-pkg'
8485
import { Group } from '@opencloud-eu/web-client/graph/generated'
85-
import { computed, ref, unref, onBeforeUnmount, onMounted, provide } from 'vue'
86+
import { computed, unref, onBeforeUnmount, onMounted, provide } from 'vue'
8687
import { useTask } from 'vue-concurrency'
8788
import { useGettext } from 'vue3-gettext'
8889
import { storeToRefs } from 'pinia'
@@ -92,7 +93,7 @@ const groupSettingsStore = useGroupSettingsStore()
9293
const { selectedGroups, groups } = storeToRefs(groupSettingsStore)
9394
const clientService = useClientService()
9495
const { $gettext } = useGettext()
95-
const filterTerm = ref('')
96+
const filterTerm = useRouteQueryFilterTerm()
9697
9798
provide(
9899
'group',

‎packages/web-app-admin-settings/src/views/Spaces.vue‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,11 @@ import {
7575
useFileActions,
7676
useSideBar,
7777
useSpacesStore,
78-
AppLoadingSpinner
78+
AppLoadingSpinner,
79+
useRouteQueryFilterTerm
7980
} from '@opencloud-eu/web-pkg'
8081
import { call, isProjectSpaceResource, SpaceResource } from '@opencloud-eu/web-client'
81-
import { computed, onBeforeUnmount, onMounted, provide, ref, unref, watch } from 'vue'
82+
import { computed, onBeforeUnmount, onMounted, provide, unref, watch } from 'vue'
8283
import { useTask } from 'vue-concurrency'
8384
import { useGettext } from 'vue3-gettext'
8485
import { useSpaceSettingsStore } from '../composables'
@@ -97,7 +98,7 @@ const { selectedSpaces } = storeToRefs(spaceSettingsStore)
9798
const { allProjectSpaces } = storeToRefs(spacesStore)
9899
const spaces = computed(() => unref(allProjectSpaces) || [])
99100
100-
const filterTerm = ref('')
101+
const filterTerm = useRouteQueryFilterTerm()
101102
102103
// the members of a space (incl. its managers) are only part of the response with this expansion
103104
const spacePermissionsExpand = 'root($expand=permissions)'

‎packages/web-app-admin-settings/src/views/Users.vue‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ function parseIdsQuery(value: QueryValue) {
188188
return queryItemAsString(value)?.split('+') || []
189189
}
190190
191-
const searchTermQuery = useRouteQuery('q_displayName')
191+
const searchTermQuery = useRouteQuery('q_search_term')
192192
const filterGroupIds = ref(parseIdsQuery(unref(useRouteQuery('q_groups'))))
193193
const filterRoleIds = ref(parseIdsQuery(unref(useRouteQuery('q_roles'))))
194194
const searchTerm = ref(queryItemAsString(unref(searchTermQuery)) || '')
@@ -302,8 +302,8 @@ async function searchUsers() {
302302
await router.push({
303303
...unref(route),
304304
query: {
305-
...omit(unref(route).query, 'q_displayName'),
306-
...(unref(searchTerm) && { q_displayName: unref(searchTerm) })
305+
...omit(unref(route).query, 'q_search_term'),
306+
...(unref(searchTerm) && { q_search_term: unref(searchTerm) })
307307
}
308308
})
309309
appliedSearchTerm.value = unref(searchTerm)

‎packages/web-app-admin-settings/tests/unit/views/Extensions.spec.ts‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import Extensions from '../../../src/views/Extensions.vue'
22
import ExtensionsList from '../../../src/components/Extensions/ExtensionsList.vue'
3-
import { nextTick } from 'vue'
3+
import { nextTick, ref } from 'vue'
44
import { defaultPlugins, mount, useAppDefaultsMock } from '@opencloud-eu/web-test-helpers'
55
import { useAppDefaults, useAppsStore, useConfigStore } from '@opencloud-eu/web-pkg'
66

77
vi.mock('@opencloud-eu/web-pkg', async (importOriginal) => ({
88
...(await importOriginal<any>()),
99
useAppDefaults: vi.fn(),
10-
useRouteQueryPersisted: vi.fn()
10+
useRouteQueryPersisted: vi.fn(),
11+
useRouteQueryFilterTerm: vi.fn(() => ref(''))
1112
}))
1213
vi.mocked(useAppDefaults).mockImplementation(() => useAppDefaultsMock())
1314

‎packages/web-app-admin-settings/tests/unit/views/Spaces.spec.ts‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { ref } from 'vue'
12
import { SpaceResource } from '@opencloud-eu/web-client'
23
import { Graph } from '@opencloud-eu/web-client/graph'
34
import { mockDeep } from 'vitest-mock-extended'
@@ -26,7 +27,8 @@ vi.mock('@opencloud-eu/web-pkg', async (importOriginal) => ({
2627
...(await importOriginal<any>()),
2728
queryItemAsString: vi.fn(),
2829
useAppDefaults: vi.fn(),
29-
useRouteQueryPersisted: vi.fn()
30+
useRouteQueryPersisted: vi.fn(),
31+
useRouteQueryFilterTerm: vi.fn(() => ref(''))
3032
}))
3133
vi.mocked(useAppDefaults).mockImplementation(() => useAppDefaultsMock({}))
3234

‎packages/web-app-admin-settings/tests/unit/views/Users.spec.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ function getMountedWrapper({
372372
selectedUsers?: User[]
373373
} = {}) {
374374
const query: Record<string, string> = {
375-
...(displayNameFilterQuery && { q_displayName: displayNameFilterQuery }),
375+
...(displayNameFilterQuery && { q_search_term: displayNameFilterQuery }),
376376
...(groupFilterQuery && { q_groups: groupFilterQuery }),
377377
...(roleFilterQuery && { q_roles: roleFilterQuery })
378378
}

‎packages/web-app-files/src/views/shares/SharedViaLink.vue‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,8 @@ import {
8282
useGetMatchingSpace,
8383
ContextActions,
8484
useKeyboardActions,
85-
eventBus
85+
eventBus,
86+
useRouteQueryFilterTerm
8687
} from '@opencloud-eu/web-pkg'
8788
import ListInfo from '../../components/FilesList/ListInfo.vue'
8889
import FilesViewWrapper from '../../components/FilesViewWrapper.vue'
@@ -91,7 +92,7 @@ import {
9192
useKeyboardFileNavigation,
9293
useKeyboardFileMouseActions
9394
} from '../../composables/keyboardActions'
94-
import { computed, onBeforeUnmount, onMounted, ref, unref } from 'vue'
95+
import { computed, onBeforeUnmount, onMounted, unref } from 'vue'
9596
import SharesNavigation from '../../../src/components/AppBar/SharesNavigation.vue'
9697
import { OutgoingShareResource } from '@opencloud-eu/web-client'
9798
import { folderViewsSharedViaLinkExtensionPoint } from '../../extensionPoints'
@@ -133,7 +134,7 @@ const { triggerDefaultAction } = useFileActions()
133134
134135
const { loadPreview, dropPreview } = useLoadPreview(viewMode)
135136
136-
const filterTerm = ref('')
137+
const filterTerm = useRouteQueryFilterTerm()
137138
const filteredItems = computed(() => {
138139
if (unref(filterTerm)) {
139140
const searchEngine = new Fuse(unref(paginatedResources), {

‎packages/web-app-files/src/views/shares/SharedWithMe.vue‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,8 @@ import {
102102
useAppsStore,
103103
useResourcesStore,
104104
UserAvatar,
105-
useKeyboardActions
105+
useKeyboardActions,
106+
useRouteQueryFilterTerm
106107
} from '@opencloud-eu/web-pkg'
107108
import { eventBus } from '@opencloud-eu/web-pkg'
108109
import { AppBar, ItemFilterInline } from '@opencloud-eu/web-pkg'
@@ -144,7 +145,7 @@ const {
144145
const { $gettext } = useGettext()
145146
146147
const areHiddenFilesShown = ref(false)
147-
const filterTerm = ref('')
148+
const filterTerm = useRouteQueryFilterTerm()
148149
149150
const breadcrumbs = computed(() => {
150151
return [

0 commit comments

Comments
 (0)