reload messages if submited

This commit is contained in:
ogerly 2022-08-27 11:20:14 +02:00
parent 5dc74b9cb8
commit c6f2e9fb0d
5 changed files with 53 additions and 2 deletions

View File

@ -51,6 +51,8 @@ export default {
}, },
}) })
.then((result) => { .then((result) => {
this.$emit('get-list-contribution-messages', this.contributionId)
this.form.text = ''
this.toastSuccess(result) this.toastSuccess(result)
}) })
.catch((error) => { .catch((error) => {

View File

@ -10,6 +10,7 @@
class="mt-5" class="mt-5"
:contributionId="contributionId" :contributionId="contributionId"
@toggle-contribution-messages-box="toggleContributionMessagesBox" @toggle-contribution-messages-box="toggleContributionMessagesBox"
@get-list-contribution-messages="getListContributionMessages"
/> />
</div> </div>
</template> </template>
@ -41,6 +42,9 @@ export default {
toggleContributionMessagesBox(id) { toggleContributionMessagesBox(id) {
this.$emit('toggle-contribution-messages-box', id) this.$emit('toggle-contribution-messages-box', id)
}, },
getListContributionMessages() {
this.$emit('get-list-contribution-messages', this.contributionId)
},
}, },
} }
</script> </script>

View File

@ -47,6 +47,7 @@ export default {
data() { data() {
return { return {
currentPage: 1, currentPage: 1,
messages: [],
} }
}, },
methods: { methods: {

View File

@ -2,7 +2,7 @@
<div class="contribution-list-item"> <div class="contribution-list-item">
<slot> <slot>
<div class="border p-3 w-100 mb-1" :class="`border-${variant}`"> <div class="border p-3 w-100 mb-1" :class="`border-${variant}`">
<div v-b-toggle="messages.length ? collapsId : ''"> <div v-b-toggle="messages.length ? collapsId : ''" @click="getListContributionMessages">
<div class="d-inline-flex"> <div class="d-inline-flex">
<div class="mr-2"> <div class="mr-2">
<b-icon <b-icon
@ -64,10 +64,11 @@
<b-collapse :id="collapsId" class="mt-2"> <b-collapse :id="collapsId" class="mt-2">
<b-card> <b-card>
<contribution-messages-list <contribution-messages-list
:messages="messages" :messages="messages_get"
:state="state" :state="state"
:contributionId="contributionId" :contributionId="contributionId"
@toggle-contribution-messages-box="toggleContributionMessagesBox" @toggle-contribution-messages-box="toggleContributionMessagesBox"
@get-list-contribution-messages="getListContributionMessages"
/> />
</b-card> </b-card>
</b-collapse> </b-collapse>
@ -78,6 +79,7 @@
</template> </template>
<script> <script>
import ContributionMessagesList from '@/components/ContributionMessages/ContributionMessagesList.vue' import ContributionMessagesList from '@/components/ContributionMessages/ContributionMessagesList.vue'
import { listContributionMessages } from '../../graphql/queries.js'
export default { export default {
name: 'ContributionListItem', name: 'ContributionListItem',
@ -139,6 +141,7 @@ export default {
data() { data() {
return { return {
inProcess: true, inProcess: true,
messages_get: [],
} }
}, },
computed: { computed: {
@ -169,6 +172,24 @@ export default {
toggleContributionMessagesBox(id) { toggleContributionMessagesBox(id) {
alert('toggleContributionMessagesBox(' + id + ')') alert('toggleContributionMessagesBox(' + id + ')')
}, },
getListContributionMessages() {
console.log('getListContributionMessages', this.contributionId)
this.$apollo
.query({
query: listContributionMessages,
variables: {
contributionId: this.contributionId,
},
fetchPolicy: 'no-cache',
})
.then((result) => {
console.log('result', result.data.listContributionMessages.messages)
this.messages_get = result.data.listContributionMessages.messages
})
.catch((error) => {
this.toastError(error.message)
})
},
}, },
} }
</script> </script>

View File

@ -265,3 +265,26 @@ export const searchAdminUsers = gql`
} }
} }
` `
export const listContributionMessages = gql`
query($contributionId: Float!, $pageSize: Int = 25, $currentPage: Int = 1, $order: Order = ASC) {
listContributionMessages(
contributionId: $contributionId
pageSize: $pageSize
currentPage: $currentPage
order: $order
) {
count
messages {
id
message
createdAt
updatedAt
type
userFirstName
userLastName
userId
}
}
}
`