From 97aff70b80af05f3242a171bcee5bdfe32f19250 Mon Sep 17 00:00:00 2001 From: Angelina Filippova Date: Sat, 4 May 2019 02:12:48 +0300 Subject: [PATCH 01/15] Add checkboxes to select users and a list of actions --- src/lang/en.js | 3 +- src/views/users/components/DropdownMenu.vue | 70 +++++++++++++++++++++ src/views/users/index.vue | 30 ++++++++- 3 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 src/views/users/components/DropdownMenu.vue diff --git a/src/lang/en.js b/src/lang/en.js index 4ec4b96c..1addb11b 100644 --- a/src/lang/en.js +++ b/src/lang/en.js @@ -188,7 +188,8 @@ export default { forceUnlisted: 'Force posts to be unlisted', sandbox: 'Force posts to be followers-only', disableRemoteSubscription: 'Disallow following user from remote instances', - disableAnySubscription: 'Disallow following user at all' + disableAnySubscription: 'Disallow following user at all', + selectUsers: 'Select users to apply actions to multiple users' }, usersFilter: { inputPlaceholder: 'Select filter', diff --git a/src/views/users/components/DropdownMenu.vue b/src/views/users/components/DropdownMenu.vue new file mode 100644 index 00000000..837fb90d --- /dev/null +++ b/src/views/users/components/DropdownMenu.vue @@ -0,0 +1,70 @@ + + + diff --git a/src/views/users/index.vue b/src/views/users/index.vue index 87e76910..4c76bcd3 100644 --- a/src/views/users/index.vue +++ b/src/views/users/index.vue @@ -5,7 +5,17 @@ - + + + + + + {{ $t('users.selectUsers') }} + + + + + @@ -113,16 +142,28 @@ export default { mapSelectedUsers ) }, - toggleTagForMultipleUsers(tag) { + addTagForMultipleUsers(tag) { const mapSelectedUsers = () => this.selectedUsers .filter(user => tag === 'disable_remote_subscription' || tag === 'disable_any_subscription' - ? user.local : user + ? user.local && !user.tags.includes(tag) + : !user.tags.includes(tag) ).map(user => this.$store.dispatch('ToggleTag', { user, tag })) this.confirmMessage( 'Are you sure you want to apply tag to all selected users?', mapSelectedUsers ) }, + removeTagFromMultipleUsers(tag) { + const mapSelectedUsers = () => this.selectedUsers + .filter(user => tag === 'disable_remote_subscription' || tag === 'disable_any_subscription' + ? user.local && user.tags.includes(tag) + : user.tags.includes(tag) + ).map(user => this.$store.dispatch('ToggleTag', { user, tag })) + this.confirmMessage( + 'Are you sure you want to remove tag from all selected users?', + mapSelectedUsers + ) + }, confirmMessage(message, mapSelectedUsers) { this.$confirm(message, { confirmButtonText: 'OK', @@ -144,3 +185,19 @@ export default { } } + + From 4b5d69c198f1ea94a5289c44f885818d08ff2867 Mon Sep 17 00:00:00 2001 From: Angelina Filippova Date: Sun, 5 May 2019 22:52:20 +0300 Subject: [PATCH 04/15] Add ability to choose multiple users on different pages --- src/views/users/components/DropdownMenu.vue | 1 + src/views/users/index.vue | 23 ++++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/views/users/components/DropdownMenu.vue b/src/views/users/components/DropdownMenu.vue index 6dfcdff5..546ece3f 100644 --- a/src/views/users/components/DropdownMenu.vue +++ b/src/views/users/components/DropdownMenu.vue @@ -171,6 +171,7 @@ export default { type: 'warning' }).then(() => { mapSelectedUsers() + this.$emit('apply-action') this.$message({ type: 'success', message: 'Completed' diff --git a/src/views/users/index.vue b/src/views/users/index.vue index 043f4736..182e8bb0 100644 --- a/src/views/users/index.vue +++ b/src/views/users/index.vue @@ -7,15 +7,29 @@ - + {{ $t('users.selectUsers') }} - - + +