summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2023-10-09 22:51:37 +0200
committerGitHub <noreply@github.com>2023-10-09 22:51:37 +0200
commita762275dd04e34d13e66b4b937d25824e579c106 (patch)
tree11d0e2360d17780203548fb64b68094aee4613fe /apps
parent35d73517b57ba969499c5cbe68313c549498ee4b (diff)
parent617f5aef1dde711884ed80d313194fb2a7bafd88 (diff)
downloadnextcloud-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.vue12
-rw-r--r--apps/settings/src/store/users.js5
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':