From 65927daf20083f58b8f0efc899893c5a2f004402 Mon Sep 17 00:00:00 2001 From: Louis Chemineau Date: Fri, 29 Sep 2023 12:14:28 -0700 Subject: Do not manipulate userCount when it is equal to 0 Signed-off-by: Louis Chemineau (cherry picked from commit bd787e859344eae1466b3bdeb33839b4f82a5147) --- apps/settings/src/store/users.js | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'apps') diff --git a/apps/settings/src/store/users.js b/apps/settings/src/store/users.js index ab8105ecb51..f780ecd88f5 100644 --- a/apps/settings/src/store/users.js +++ b/apps/settings/src/store/users.js @@ -159,6 +159,11 @@ const mutations = { }, // update active/disabled counts, groups counts updateUserCounts(state, { user, actionType }) { + // 0 is a special value + if (state.userCount === 0) { + return + } + const disabledGroup = state.groups.find(group => group.id === 'disabled') switch (actionType) { case 'enable': -- cgit v1.2.3 From 96d719fd46e4402ba020d6631f13894ae4fb42bd Mon Sep 17 00:00:00 2001 From: Christopher Ng Date: Fri, 29 Sep 2023 12:14:28 -0700 Subject: Do not preload potential manager list on UserRow mount - NcMultiselect version of 992c03d842f962c2900fab715104d310d19dc6bf Signed-off-by: Christopher Ng --- apps/settings/src/components/UserList/UserRow.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'apps') diff --git a/apps/settings/src/components/UserList/UserRow.vue b/apps/settings/src/components/UserList/UserRow.vue index 11b4c90042c..3ff3e46d00a 100644 --- a/apps/settings/src/components/UserList/UserRow.vue +++ b/apps/settings/src/components/UserList/UserRow.vue @@ -224,6 +224,7 @@ class="multiselect-vue" label="displayname" track-by="id" + @open="_id => searchUserManager()" @search-change="searchUserManager" @remove="updateUserManager" @select="updateUserManager"> @@ -387,7 +388,6 @@ export default { }, }, async beforeMount() { - await this.searchUserManager() if (this.user.manager) { await this.initManager(this.user.manager) } -- cgit v1.2.3 From 38fb8fdc87897751818ddeaa557dae99c24acd69 Mon Sep 17 00:00:00 2001 From: Christopher Ng Date: Fri, 29 Sep 2023 12:14:28 -0700 Subject: fix(ux): Show initial loading state of managers - NcMultiselect version of 50ddc6820e8f90044dfc752d711023452aabdafc Signed-off-by: Christopher Ng --- apps/settings/src/components/UserList/UserRow.vue | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'apps') diff --git a/apps/settings/src/components/UserList/UserRow.vue b/apps/settings/src/components/UserList/UserRow.vue index 3ff3e46d00a..dddf5abef8a 100644 --- a/apps/settings/src/components/UserList/UserRow.vue +++ b/apps/settings/src/components/UserList/UserRow.vue @@ -221,10 +221,11 @@ :user-select="true" :options="possibleManagers" :placeholder="t('settings', 'Select manager')" + :loading="loadingPossibleManagers || loading.manager" class="multiselect-vue" label="displayname" track-by="id" - @open="_id => searchUserManager()" + @open="searchInitialUserManager" @search-change="searchUserManager" @remove="updateUserManager" @select="updateUserManager"> @@ -337,6 +338,7 @@ export default { rand: parseInt(Math.random() * 1000), openedMenu: false, feedbackMessage: '', + loadingPossibleManagers: false, possibleManagers: [], currentManager: '', editing: false, @@ -431,11 +433,19 @@ export default { filterManagers(managers) { return managers.filter((manager) => manager.id !== this.user.id) }, + async initManager(userId) { await this.$store.dispatch('getUser', userId).then(response => { this.currentManager = response?.data.ocs.data }) }, + + async searchInitialUserManager() { + this.loadingPossibleManagers = true + await this.searchUserManager() + this.loadingPossibleManagers = false + }, + async searchUserManager(query) { await this.$store.dispatch('searchUsers', { offset: 0, limit: 10, search: query }).then(response => { const users = response?.data ? this.filterManagers(Object.values(response?.data.ocs.data.users)) : [] -- cgit v1.2.3