add slug user to group member

This commit is contained in:
ogerly 2022-10-18 13:38:05 +02:00
parent 11f5ce746a
commit a8cf6acd93
4 changed files with 52 additions and 9 deletions

View File

@ -18,6 +18,13 @@
</ds-flex-item> </ds-flex-item>
</ds-flex> </ds-flex>
</ds-form> </ds-form>
<div v-if="noSlug">Kein User mit diesem Slug gefunden!</div>
<div v-if="slugUser.length > 0">
{{slugUser}}
<ds-button size="small" primary @click="addMemberToGroup(slugUser)">
{{ $t('group.addMemberToGroup') }}
</ds-button>
</div>
</base-card> </base-card>
<ds-table :fields="tableFields" :data="groupMembers" condensed> <ds-table :fields="tableFields" :data="groupMembers" condensed>
<template #avatar="scope"> <template #avatar="scope">
@ -70,7 +77,7 @@
</ds-chip> </ds-chip>
</template> </template>
<template #edit="scope"> <template #edit="scope">
<ds-button size="small" primary :disabled="true" @click="openModal(scope.row)"> <ds-button v-if="scope.row.myRoleInGroup !== 'owner'" size="small" primary @click="deleteMember(scope.row.id)">
<!-- TODO: implement removal of group members --> <!-- TODO: implement removal of group members -->
<!-- :disabled="scope.row.myRoleInGroup === 'owner'" <!-- :disabled="scope.row.myRoleInGroup === 'owner'"
--> -->
@ -93,7 +100,7 @@
</div> </div>
</template> </template>
<script> <script>
import { User } from '~/graphql/User' import { minimisedUserQuery } from '~/graphql/User'
import { changeGroupMemberRoleMutation } from '~/graphql/groups.js' import { changeGroupMemberRoleMutation } from '~/graphql/groups.js'
export default { export default {
@ -112,6 +119,8 @@ export default {
return { return {
isOpen: false, isOpen: false,
memberId: null, memberId: null,
noSlug: false,
slugUser: [],
form: { form: {
query: '', query: '',
}, },
@ -159,17 +168,49 @@ export default {
this.$toast.error(error.message) this.$toast.error(error.message)
} }
}, },
async addMemberToGroup () {
const newRole = 'usual'
try {
await this.$apollo.mutate({
mutation: changeGroupMemberRoleMutation(),
variables: { groupId: this.groupId, userId: this.slugUser[0].id, roleInGroup: newRole },
})
this.$toast.success(
this.$t('group.changeMemberRole', { role: this.$t(`group.roles.${newRole}`) }),
)
} catch (error) {
this.$toast.error(error.message)
}
},
async submit() { async submit() {
console.log('submit', this.form.query) try {
} const {
data: { User },
} = await this.$apollo.query({
query: minimisedUserQuery(),
variables: {
slug: this.form.query,
},
})
if(User.length === 0) {
this.noSlug = true
} else {
this.noSlug = false
this.slugUser = User
}
} catch (error) {
this.noSlug = true
} finally {
}
},
// TODO: implement removal of group members // TODO: implement removal of group members
// openModal(row) { // openModal(row) {
// this.isOpen = true // this.isOpen = true
// this.memberId = row.id // this.memberId = row.id
// }, // },
// deleteMember(id) { deleteMember(id) {
// alert('deleteMember: ' + id) alert('deleteMember: ' + id)
// }, },
}, },
} }
</script> </script>

View File

@ -49,8 +49,8 @@ export default (i18n) => {
export const minimisedUserQuery = () => { export const minimisedUserQuery = () => {
return gql` return gql`
query { query ($slug: String) {
User(orderBy: slug_asc) { User(slug: $slug, orderBy: slug_asc) {
id id
slug slug
name name

View File

@ -440,6 +440,7 @@
"roleInGroup": "Rolle", "roleInGroup": "Rolle",
"slug": "Eindeutiger Name" "slug": "Eindeutiger Name"
}, },
"addMemberToGroup":"zur Gruppe hinzufügen",
"membersCount": "Mitglied ::: Mitglieder", "membersCount": "Mitglied ::: Mitglieder",
"membersListTitle": "Gruppenmitglieder", "membersListTitle": "Gruppenmitglieder",
"membersListTitleNotAllowedSeeingGroupMembers": "Gruppenmitglieder unsichtbar", "membersListTitleNotAllowedSeeingGroupMembers": "Gruppenmitglieder unsichtbar",

View File

@ -441,6 +441,7 @@
"slug": "Unique name" "slug": "Unique name"
}, },
"membersCount": "Member ::: Members", "membersCount": "Member ::: Members",
"addMemberToGroup":"zur Gruppe hinzufügen",
"membersListTitle": "Group Members", "membersListTitle": "Group Members",
"membersListTitleNotAllowedSeeingGroupMembers": "Group Members invisible", "membersListTitleNotAllowedSeeingGroupMembers": "Group Members invisible",
"myGroups": "My Groups", "myGroups": "My Groups",