diff --git a/changelog/unreleased/enhancement-requests-language-header b/changelog/unreleased/enhancement-requests-language-header index 98669d4a78c..dd462b48ef8 100644 --- a/changelog/unreleased/enhancement-requests-language-header +++ b/changelog/unreleased/enhancement-requests-language-header @@ -4,3 +4,4 @@ All outgoing requests now have the `Accept-Language` header which includes the c https://github.com/owncloud/web/issues/8612 https://github.com/owncloud/web/pull/8621 +https://github.com/owncloud/web/pull/8660 diff --git a/packages/web-app-admin-settings/src/components/Users/CreateUserModal.vue b/packages/web-app-admin-settings/src/components/Users/CreateUserModal.vue index ff28790978e..7604d06eae3 100644 --- a/packages/web-app-admin-settings/src/components/Users/CreateUserModal.vue +++ b/packages/web-app-admin-settings/src/components/Users/CreateUserModal.vue @@ -55,12 +55,13 @@ diff --git a/packages/web-pkg/src/composables/driveResolver/useDriveResolver.ts b/packages/web-pkg/src/composables/driveResolver/useDriveResolver.ts index 3b1e7fd4f66..1a74130418f 100644 --- a/packages/web-pkg/src/composables/driveResolver/useDriveResolver.ts +++ b/packages/web-pkg/src/composables/driveResolver/useDriveResolver.ts @@ -3,13 +3,13 @@ import { Store } from 'vuex' import { computed, Ref, ref, unref, watch } from 'vue' import { buildShareSpaceResource, SpaceResource } from 'web-client/src/helpers' import { useRouteQuery } from '../router' -import { useGraphClient } from '../graphClient' import { Resource } from 'web-client' import { useSpacesLoading } from './useSpacesLoading' import { queryItemAsString } from '../appDefaults' import { configurationManager } from '../../configuration' import { urlJoin } from 'web-client/src/utils' import { useCapabilitySpacesEnabled } from '../capability' +import { useClientService } from 'web-pkg/src/composables' interface DriveResolverOptions { store?: Store @@ -32,7 +32,7 @@ export const useDriveResolver = (options: DriveResolverOptions = {}): DriveResol }) const hasSpaces = useCapabilitySpacesEnabled(store) - const { graphClient } = useGraphClient() + const clientService = useClientService() const spaces = computed(() => store.getters['runtime/spaces/spaces']) const space = ref(null) const item: Ref = ref(null) @@ -111,7 +111,7 @@ export const useDriveResolver = (options: DriveResolverOptions = {}): DriveResol return } return store.dispatch('runtime/spaces/loadSpaceMembers', { - graphClient: unref(graphClient), + graphClient: clientService.graphAuthenticated, space: s }) }, diff --git a/packages/web-pkg/src/composables/graphClient/index.ts b/packages/web-pkg/src/composables/graphClient/index.ts deleted file mode 100644 index 2611ce3155a..00000000000 --- a/packages/web-pkg/src/composables/graphClient/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './useGraphClient' diff --git a/packages/web-pkg/src/composables/graphClient/useGraphClient.ts b/packages/web-pkg/src/composables/graphClient/useGraphClient.ts deleted file mode 100644 index e359b71611a..00000000000 --- a/packages/web-pkg/src/composables/graphClient/useGraphClient.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { computed } from 'vue' -import { useClientService } from '../' - -export const useGraphClient = () => { - const clientService = useClientService() - - const graphClient = computed(() => { - return clientService.graphAuthenticated - }) - - return { - graphClient - } -} diff --git a/packages/web-pkg/src/composables/index.ts b/packages/web-pkg/src/composables/index.ts index cb152aaa3ce..69e7c81f398 100644 --- a/packages/web-pkg/src/composables/index.ts +++ b/packages/web-pkg/src/composables/index.ts @@ -4,7 +4,6 @@ export * from './authContext' export * from './capability' export * from './clientService' export * from './driveResolver' -export * from './graphClient' export * from './loadingService' export * from './localStorage' export * from './router' diff --git a/packages/web-pkg/src/mixins/spaces/showMembers.ts b/packages/web-pkg/src/mixins/spaces/showMembers.ts index 15596f8d2d7..bbdd7c539f3 100644 --- a/packages/web-pkg/src/mixins/spaces/showMembers.ts +++ b/packages/web-pkg/src/mixins/spaces/showMembers.ts @@ -1,12 +1,8 @@ import { mapMutations } from 'vuex' import { eventBus } from 'web-pkg/src/services/eventBus' -import { useGraphClient } from 'web-pkg/src/composables' import { SideBarEventTopics } from 'web-pkg/src/composables/sideBar' export default { - setup() { - return { ...useGraphClient() } - }, computed: { $_showMembers_items() { return [ diff --git a/packages/web-pkg/src/services/client/client.ts b/packages/web-pkg/src/services/client/client.ts index 14006e482e7..0a504fb507e 100644 --- a/packages/web-pkg/src/services/client/client.ts +++ b/packages/web-pkg/src/services/client/client.ts @@ -22,7 +22,7 @@ interface HttpClient { token?: string } -const createAxiosInstance = (authParams: AuthParameters, language): AxiosInstance => { +const createAxiosInstance = (authParams: AuthParameters, language: string): AxiosInstance => { const auth = new Auth(authParams) const axiosClient = axios.create({ headers: auth.getHeaders() diff --git a/packages/web-pkg/tests/unit/components/Spaces/QuotaModal.spec.ts b/packages/web-pkg/tests/unit/components/Spaces/QuotaModal.spec.ts index eb65cc9ab4c..066835e6301 100644 --- a/packages/web-pkg/tests/unit/components/Spaces/QuotaModal.spec.ts +++ b/packages/web-pkg/tests/unit/components/Spaces/QuotaModal.spec.ts @@ -12,7 +12,7 @@ import { describe('QuotaModal', () => { describe('method "editQuota"', () => { it('should show message on success', async () => { - const { wrapper, mocks } = getWrapper() + const { wrapper, mocks, storeOptions } = getWrapper() mocks.$clientService.graphAuthenticated.drives.updateDrive.mockImplementation(() => mockAxiosResolve({ id: '1fe58d8b-aa69-4c22-baf7-97dd57479f22', @@ -25,24 +25,24 @@ describe('QuotaModal', () => { } }) ) - const showMessageStub = jest.spyOn(wrapper.vm, 'showMessage') - const updateSpaceFieldStub = jest.spyOn(wrapper.vm, 'UPDATE_SPACE_FIELD') await wrapper.vm.editQuota() - expect(updateSpaceFieldStub).toHaveBeenCalledTimes(1) - expect(showMessageStub).toHaveBeenCalledTimes(1) + expect( + storeOptions.modules.runtime.modules.spaces.mutations.UPDATE_SPACE_FIELD + ).toHaveBeenCalledTimes(1) + expect(storeOptions.actions.showMessage).toHaveBeenCalledTimes(1) }) it('should show message on server error', async () => { jest.spyOn(console, 'error').mockImplementation(() => undefined) - const { wrapper, mocks } = getWrapper() + const { wrapper, mocks, storeOptions } = getWrapper() mocks.$clientService.graphAuthenticated.drives.updateDrive.mockRejectedValue(new Error()) - const showMessageStub = jest.spyOn(wrapper.vm, 'showMessage') - const updateSpaceFieldStub = jest.spyOn(wrapper.vm, 'UPDATE_SPACE_FIELD') await wrapper.vm.editQuota() - expect(updateSpaceFieldStub).toHaveBeenCalledTimes(0) - expect(showMessageStub).toHaveBeenCalledTimes(1) + expect( + storeOptions.modules.runtime.modules.spaces.mutations.UPDATE_SPACE_FIELD + ).toHaveBeenCalledTimes(0) + expect(storeOptions.actions.showMessage).toHaveBeenCalledTimes(1) }) }) }) @@ -53,16 +53,8 @@ function getWrapper() { const store = createStore(storeOptions) return { mocks, + storeOptions, wrapper: mount(QuotaModal, { - data: () => { - return { - selectedOption: { - displayValue: '10', - displayUnit: 'GB', - value: 10 * Math.pow(10, 9) - } - } - }, props: { cancel: jest.fn(), spaces: [ diff --git a/packages/web-runtime/package.json b/packages/web-runtime/package.json index 74ae19a494a..bcfe1fc6166 100644 --- a/packages/web-runtime/package.json +++ b/packages/web-runtime/package.json @@ -27,7 +27,7 @@ "luxon": "^2.4.0", "marked": "^4.0.12", "oidc-client-ts": "^2.1.0", - "owncloud-sdk": "~3.1.0-alpha.3", + "owncloud-sdk": "~3.1.0-alpha.4", "p-queue": "^6.6.2", "portal-vue": "3.0.0", "postcss-import": "^12.0.1", diff --git a/packages/web-runtime/src/pages/account.vue b/packages/web-runtime/src/pages/account.vue index 6489510252e..5c1ef5dd319 100644 --- a/packages/web-runtime/src/pages/account.vue +++ b/packages/web-runtime/src/pages/account.vue @@ -89,7 +89,7 @@ import { computed, defineComponent, onMounted, unref } from 'vue' import { useAccessToken, useCapabilitySpacesEnabled, - useGraphClient, + useClientService, useStore } from 'web-pkg/src/composables' import { useTask } from 'vue-concurrency' @@ -107,6 +107,7 @@ export default defineComponent({ const store = useStore() const accessToken = useAccessToken({ store }) const language = useGettext() + const clientService = useClientService() // FIXME: Use graph capability when we have it const isLanguageSupported = useCapabilitySpacesEnabled() @@ -207,7 +208,7 @@ export default defineComponent({ }) return { - ...useGraphClient(), + clientService, languageOptions, selectedLanguageOption, updateSelectedLanguage, @@ -237,7 +238,7 @@ export default defineComponent({ this.editPasswordModalOpen = false }, editPassword(currentPassword, newPassword) { - return this.graphClient.users + return this.clientService.graphAuthenticated.users .changeOwnPassword(currentPassword.trim(), newPassword.trim()) .then(() => { this.closeEditPasswordModal() diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1a42d99572e..aee4bf6567f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -283,7 +283,7 @@ importers: '@babel/preset-env': 7.19.4_@babel+core@7.19.6 '@babel/runtime': 7.20.1 '@popperjs/core': 2.11.5 - autoprefixer: 10.4.12_postcss@8.4.20 + autoprefixer: 10.4.12_postcss@8.4.21 babel-core: 7.0.0-bridge.0_@babel+core@7.19.6 babel-jest: 29.2.2_@babel+core@7.19.6 babel-loader: 9.1.0_q4ydpsrmbqywduja5orgah6fgq @@ -331,7 +331,7 @@ importers: style-loader: 2.0.0_webpack@4.46.0 style-value-types: 5.1.2 stylelint: 14.16.0 - stylelint-config-sass-guidelines: 9.0.1_l3s4qeu3gkar2knsdy3w5miimm + stylelint-config-sass-guidelines: 9.0.1_4hlw5ipnhspjrftdr7hqo6kmye stylelint-config-standard: 26.0.0_stylelint@14.16.0 tinycolor2: 1.4.2 tippy.js: 6.3.7 @@ -647,7 +647,7 @@ importers: luxon: ^2.4.0 marked: ^4.0.12 oidc-client-ts: ^2.1.0 - owncloud-sdk: ~3.1.0-alpha.3 + owncloud-sdk: ~3.1.0-alpha.4 p-queue: ^6.6.2 portal-vue: 3.0.0 postcss-import: ^12.0.1 @@ -695,7 +695,7 @@ importers: luxon: 2.4.0 marked: 4.0.12 oidc-client-ts: 2.1.0 - owncloud-sdk: 3.1.0-alpha.3_qgpf6seimtkgc6dfu7oqfstxh4 + owncloud-sdk: 3.1.0-alpha.4_qgpf6seimtkgc6dfu7oqfstxh4 p-queue: 6.6.2 portal-vue: 3.0.0_vue@3.2.47 postcss-import: 12.0.1 @@ -7426,7 +7426,7 @@ packages: engines: {node: '>=8.0.0'} dev: true - /autoprefixer/10.4.12_postcss@8.4.20: + /autoprefixer/10.4.12_postcss@8.4.21: resolution: {integrity: sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -7438,7 +7438,7 @@ packages: fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.20 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true @@ -16561,8 +16561,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /owncloud-sdk/3.1.0-alpha.3_qgpf6seimtkgc6dfu7oqfstxh4: - resolution: {integrity: sha512-jouNHVHUJBuYs7A1ZPUNl+uSUulSYwTFzOjW4NhONl9xbDthKDeB+vWycUY9IdFRKroF8l1qo4xkXVO9mn7U/A==} + /owncloud-sdk/3.1.0-alpha.4_qgpf6seimtkgc6dfu7oqfstxh4: + resolution: {integrity: sha512-Z+ZKPhccB+BrPKqT5Lv8jwTl3zBtw8POgytPi5jByNQpPoU1JuQ9H32ysHa3yFU/rhIuYWWDBSHPlvw+nyIUlA==} peerDependencies: axios: ^0.27.2 cross-fetch: ^3.0.6 @@ -17456,13 +17456,13 @@ packages: postcss: 8.4.20 dev: true - /postcss-scss/4.0.6_postcss@8.4.20: + /postcss-scss/4.0.6_postcss@8.4.21: resolution: {integrity: sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.4.19 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 dev: true /postcss-selector-parser/6.0.10: @@ -17558,7 +17558,6 @@ packages: nanoid: 3.3.4 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: false /preact/10.7.1: resolution: {integrity: sha512-MufnRFz39aIhs9AMFisonjzTud1PK1bY+jcJLo6m2T9Uh8AqjD77w11eAAawmjUogoGOnipECq7e/1RClIKsxg==} @@ -19909,15 +19908,15 @@ packages: stylelint: 14.16.0 dev: true - /stylelint-config-sass-guidelines/9.0.1_l3s4qeu3gkar2knsdy3w5miimm: + /stylelint-config-sass-guidelines/9.0.1_4hlw5ipnhspjrftdr7hqo6kmye: resolution: {integrity: sha512-N06PsVsrgKijQ3YT5hqKA7x3NUkgELTRI1cbWMqcYiCGG6MjzvNk6Cb5YYA1PrvrksBV76BvY9P9bAswojVMqA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: postcss: ^8.3.3 stylelint: ^14.0.1 dependencies: - postcss: 8.4.20 - postcss-scss: 4.0.6_postcss@8.4.20 + postcss: 8.4.21 + postcss-scss: 4.0.6_postcss@8.4.21 stylelint: 14.16.0 stylelint-order: 5.0.0_stylelint@14.16.0 stylelint-scss: 4.3.0_stylelint@14.16.0