From b3d75592eb5af34640e84e47d9a58fbd34a8939e Mon Sep 17 00:00:00 2001 From: Jannik Stehle Date: Tue, 24 Jan 2023 08:27:10 +0100 Subject: [PATCH 1/3] Fix re-loading the spaces members panel --- .../unreleased/bugfix-re-loading-space-members | 6 ++++++ .../src/components/SideBar/SideBar.vue | 6 +++++- .../src/components/sideBar/Spaces/SpaceInfo.vue | 14 +++----------- .../components/sidebar/Spaces/SpaceInfo.spec.ts | 14 +++----------- 4 files changed, 17 insertions(+), 23 deletions(-) create mode 100644 changelog/unreleased/bugfix-re-loading-space-members diff --git a/changelog/unreleased/bugfix-re-loading-space-members b/changelog/unreleased/bugfix-re-loading-space-members new file mode 100644 index 00000000000..5eef65be039 --- /dev/null +++ b/changelog/unreleased/bugfix-re-loading-space-members @@ -0,0 +1,6 @@ +Bugfix: Re-loading space members panel + +We've fixed a bug where re-loading the members panel for a space would remove recently added members in the UI. + +https://github.com/owncloud/web/pull/8300 +https://github.com/owncloud/web/issues/8298 diff --git a/packages/web-app-files/src/components/SideBar/SideBar.vue b/packages/web-app-files/src/components/SideBar/SideBar.vue index f11030df32d..41f39b7de95 100644 --- a/packages/web-app-files/src/components/SideBar/SideBar.vue +++ b/packages/web-app-files/src/components/SideBar/SideBar.vue @@ -27,6 +27,7 @@ /> @@ -219,6 +220,9 @@ export default defineComponent({ this.isSharedWithOthersLocation || this.isSharedViaLinkLocation ) + }, + spaceResource() { + return this.spaces.find((s) => s.id === this.highlightedFile.id) } }, watch: { @@ -238,7 +242,7 @@ export default defineComponent({ } if (isProjectSpaceResource(this.highlightedFile)) { - this.loadSpaceMembers({ graphClient: this.graphClient, space: this.highlightedFile }) + this.loadSpaceMembers({ graphClient: this.graphClient, space: this.spaceResource }) } if (this.isShareLocation || !noChanges) { diff --git a/packages/web-pkg/src/components/sideBar/Spaces/SpaceInfo.vue b/packages/web-pkg/src/components/sideBar/Spaces/SpaceInfo.vue index 32affc24d93..b38fd78944d 100644 --- a/packages/web-pkg/src/components/sideBar/Spaces/SpaceInfo.vue +++ b/packages/web-pkg/src/components/sideBar/Spaces/SpaceInfo.vue @@ -4,13 +4,13 @@
-

- +

+

@@ -19,7 +19,6 @@ diff --git a/packages/web-pkg/tests/unit/components/sidebar/Spaces/SpaceInfo.spec.ts b/packages/web-pkg/tests/unit/components/sidebar/Spaces/SpaceInfo.spec.ts index f117057b296..2cd7c302bf5 100644 --- a/packages/web-pkg/tests/unit/components/sidebar/Spaces/SpaceInfo.spec.ts +++ b/packages/web-pkg/tests/unit/components/sidebar/Spaces/SpaceInfo.spec.ts @@ -1,10 +1,5 @@ import SpaceInfo from 'web-pkg/src/components/sideBar/Spaces/SpaceInfo.vue' -import { - createStore, - defaultPlugins, - shallowMount, - defaultStoreMockOptions -} from 'web-test-helpers' +import { defaultPlugins, shallowMount } from 'web-test-helpers' const spaceMock = { type: 'space', @@ -31,14 +26,11 @@ describe('SpaceInfo', () => { }) function createWrapper(spaceResource) { - const storeOptions = { ...defaultStoreMockOptions } - storeOptions.modules.Files.getters.highlightedFile.mockImplementation(() => spaceResource) - const store = createStore(storeOptions) - return { wrapper: shallowMount(SpaceInfo, { + props: { spaceResource }, global: { - plugins: [...defaultPlugins(), store] + plugins: [...defaultPlugins()] } }) } From 005aa8bcc7c6bd7407237cd429636891ec1f15a6 Mon Sep 17 00:00:00 2001 From: Jannik Stehle Date: Tue, 24 Jan 2023 08:27:32 +0100 Subject: [PATCH 2/3] Fix disappearing groups after removing one group form a space --- changelog/unreleased/enhancement-share-group-members | 2 ++ packages/web-runtime/src/store/spaces.ts | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/changelog/unreleased/enhancement-share-group-members b/changelog/unreleased/enhancement-share-group-members index 4b32bff3dbd..db89902d624 100644 --- a/changelog/unreleased/enhancement-share-group-members +++ b/changelog/unreleased/enhancement-share-group-members @@ -13,5 +13,7 @@ In detail it contains: * All users / groups who only have access on a share level inside a sub-resource of a space can not see all groups which are regular members of the space https://github.com/owncloud/web/pull/8161 +https://github.com/owncloud/web/pull/8300 https://github.com/owncloud/web/issues/8160 https://github.com/owncloud/web/issues/8177 +https://github.com/owncloud/web/issues/8299 diff --git a/packages/web-runtime/src/store/spaces.ts b/packages/web-runtime/src/store/spaces.ts index dfea3f2cb67..f212d83b6de 100644 --- a/packages/web-runtime/src/store/spaces.ts +++ b/packages/web-runtime/src/store/spaces.ts @@ -88,8 +88,10 @@ const mutations = { state.spaceMembers = members }, UPSERT_SPACE_MEMBERS(state, member) { + // group shares don't have the name prop... distinguish by shareType + const checkAttr = member.collaborator.name ? 'name' : 'displayName' const memberIndex = state.spaceMembers.findIndex((s) => { - return member.id === s.id && member.collaborator.name === s.collaborator.name + return member.id === s.id && member.collaborator[checkAttr] === s.collaborator[checkAttr] }) if (memberIndex >= 0) { @@ -100,8 +102,10 @@ const mutations = { } }, REMOVE_SPACE_MEMBER(state, member) { + // group shares don't have the name prop... distinguish by shareType + const checkAttr = member.collaborator.name ? 'name' : 'displayName' state.spaceMembers = state.spaceMembers.filter( - (s) => member.id === s.id && member.collaborator.name !== s.collaborator.name + (s) => member.id === s.id && member.collaborator[checkAttr] !== s.collaborator[checkAttr] ) } } From aa4e094ec2d38fe1901b7faf0f7ef53ce57f91b5 Mon Sep 17 00:00:00 2001 From: Jannik Stehle Date: Tue, 24 Jan 2023 08:47:38 +0100 Subject: [PATCH 3/3] Fix vue imports --- packages/web-pkg/src/components/sideBar/Spaces/SpaceInfo.vue | 4 +--- packages/web-runtime/src/store/spaces.ts | 3 +-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/web-pkg/src/components/sideBar/Spaces/SpaceInfo.vue b/packages/web-pkg/src/components/sideBar/Spaces/SpaceInfo.vue index b38fd78944d..3ad55258b90 100644 --- a/packages/web-pkg/src/components/sideBar/Spaces/SpaceInfo.vue +++ b/packages/web-pkg/src/components/sideBar/Spaces/SpaceInfo.vue @@ -17,9 +17,7 @@