From 2ae82137cd816b53cdf60ecba986e938f81d09e9 Mon Sep 17 00:00:00 2001 From: "John Molakvoæ (skjnldsv)" Date: Fri, 6 Apr 2018 20:56:02 +0200 Subject: Group filtering, disable state, ocs api final update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- .../src/components/popoverMenu/popoverItem.vue | 11 ++--- settings/src/components/userList.vue | 53 ++++++++++++++++++---- settings/src/components/userList/userRow.vue | 39 ++++++++++++---- settings/src/store/api.js | 2 +- settings/src/store/index.js | 23 ++++++---- settings/src/store/users.js | 53 +++++++++++++++++++--- settings/src/views/Users.vue | 35 ++++++++++---- 7 files changed, 167 insertions(+), 49 deletions(-) (limited to 'settings/src') diff --git a/settings/src/components/popoverMenu/popoverItem.vue b/settings/src/components/popoverMenu/popoverItem.vue index 84907341327..343c4638005 100644 --- a/settings/src/components/popoverMenu/popoverItem.vue +++ b/settings/src/components/popoverMenu/popoverItem.vue @@ -1,10 +1,10 @@ @@ -132,6 +138,12 @@ export default { settings() { return this.$store.getters.getServerData; }, + filteredUsers() { + if (this.route.hash === '#group_disabled') { + return this.users.filter(user => user.enabled !== true); + } + return this.users.filter(user => user.enabled === true); + }, groups() { // data provided php side + remove the disabled group return this.$store.getters.getGroups.filter(group => group.id !== '_disabled'); @@ -156,7 +168,30 @@ export default { }, usersLimit() { return this.$store.getters.getUsersLimit; - }, + }, + route() { + return this.$store.getters.getRoute; + }, + // get selected hash + selectedGroup() { + let hash = this.route.hash; + if (typeof hash === 'string' && hash.length > 0) { + // we have a valid hash: groupXXXX + // group_XXXX are reserved groups + let split = hash.split('group'); + if (split.length === 2 && split[1].charAt(0) !== '_') { + return hash.split('group')[1]; + } + } + return ''; + } + }, + watch: { + // watch url change and group select + selectedGroup: function (val, old) { + this.$store.commit('resetUsers'); + this.$refs.infiniteLoading.$emit('$InfiniteLoading:reset'); + } }, methods: { onScroll(event) { @@ -182,7 +217,7 @@ export default { }, infiniteHandler($state) { - this.$store.dispatch('getUsers', {offset:this.usersOffset, limit:this.usersLimit}) + this.$store.dispatch('getUsers', {offset:this.usersOffset, limit:this.usersLimit, group:this.selectedGroup}) .then((response) => {response?$state.loaded():$state.complete()}); }, @@ -197,8 +232,10 @@ export default { userid: this.newUser.id, password: this.newUser.password, email: this.newUser.mailAddress, - groups: this.newUser.groups.map(group => group.id) - }).then(() =>this.resetForm()); + groups: this.newUser.groups.map(group => group.id), + subadmin: this.newUser.subAdminsGroups.map(group => group.id), + quota: this.newUser.quota.id + }).then(() => this.resetForm()); } } } diff --git a/settings/src/components/userList/userRow.vue b/settings/src/components/userList/userRow.vue index 816b0a33fa3..bc2ef228db8 100644 --- a/settings/src/components/userList/userRow.vue +++ b/settings/src/components/userList/userRow.vue @@ -1,6 +1,6 @@