diff options
author | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2023-10-09 22:51:37 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-09 22:51:37 +0200 |
commit | a762275dd04e34d13e66b4b937d25824e579c106 (patch) | |
tree | 11d0e2360d17780203548fb64b68094aee4613fe /apps | |
parent | 35d73517b57ba969499c5cbe68313c549498ee4b (diff) | |
parent | 617f5aef1dde711884ed80d313194fb2a7bafd88 (diff) | |
download | nextcloud-server-a762275dd04e34d13e66b4b937d25824e579c106.tar.gz nextcloud-server-a762275dd04e34d13e66b4b937d25824e579c106.zip |
Merge pull request #40718 from nextcloud/backport/40428/stable27
[stable27] Multiple bug fix in users list
Diffstat (limited to 'apps')
-rw-r--r-- | apps/settings/src/components/UserList/UserRow.vue | 12 | ||||
-rw-r--r-- | apps/settings/src/store/users.js | 5 |
2 files changed, 16 insertions, 1 deletions
diff --git a/apps/settings/src/components/UserList/UserRow.vue b/apps/settings/src/components/UserList/UserRow.vue index 11b4c90042c..dddf5abef8a 100644 --- a/apps/settings/src/components/UserList/UserRow.vue +++ b/apps/settings/src/components/UserList/UserRow.vue @@ -221,9 +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="searchInitialUserManager" @search-change="searchUserManager" @remove="updateUserManager" @select="updateUserManager"> @@ -336,6 +338,7 @@ export default { rand: parseInt(Math.random() * 1000), openedMenu: false, feedbackMessage: '', + loadingPossibleManagers: false, possibleManagers: [], currentManager: '', editing: false, @@ -387,7 +390,6 @@ export default { }, }, async beforeMount() { - await this.searchUserManager() if (this.user.manager) { await this.initManager(this.user.manager) } @@ -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)) : [] 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': |