add listUnconfirmedContributions messages count

This commit is contained in:
ogerly 2022-08-25 13:52:35 +02:00
parent 275ce304f9
commit 9ee47e020f
5 changed files with 84 additions and 59 deletions

View File

@ -1,15 +1,22 @@
<template> <template>
<div class="contribution-messages-list"> <div class="contribution-messages-list">
<b-container> <b-container>
{{ messagesCount }}
<div v-for="message in messages" v-bind:key="message.id"> <div v-for="message in messages" v-bind:key="message.id">
<contribution-messages-list-item :typeId="message.isModerator"> <b-container>
<div v-for="message in messages" v-bind:key="message.id">
<contribution-messages-list-item :message="message" />
</div>
</b-container>
<!-- <contribution-messages-list-item :typeId="message.isModerator">
<template #1> <template #1>
<is-moderator :message="message"></is-moderator> <is-moderator :message="message"></is-moderator>
</template> </template>
<template #0> <template #0>
<is-not-moderator :message="message" class="text-right"></is-not-moderator> <is-not-moderator :message="message" class="text-right"></is-not-moderator>
</template> </template>
</contribution-messages-list-item> </contribution-messages-list-item> -->
</div> </div>
</b-container> </b-container>
<br /> <br />
@ -20,65 +27,27 @@
</template> </template>
<script> <script>
import ContributionMessagesListItem from './slots/ContributionMessagesListItem.vue' import ContributionMessagesListItem from './slots/ContributionMessagesListItem.vue'
import IsModerator from './slots/IsModerator.vue'
import IsNotModerator from './slots/IsNotModerator.vue'
import ContributionMessagesFormular from '../ContributionMessages/ContributionMessagesFormular.vue' import ContributionMessagesFormular from '../ContributionMessages/ContributionMessagesFormular.vue'
export default { export default {
name: 'ContributionMessagesList', name: 'ContributionMessagesList',
components: {
ContributionMessagesListItem,
ContributionMessagesFormular,
},
props: { props: {
contributionId: { contributionId: {
type: Number, type: Number,
required: true, required: true,
}, },
messagesCount: {
type: Number,
required: true,
}, },
components: { messages: {
ContributionMessagesListItem, type: Array,
IsModerator, required: true,
IsNotModerator,
ContributionMessagesFormular,
}, },
data() {
return {
messages: [
{
id: '0',
msgid: '0',
memo: 'kjsdn sdnnasd andandandak sd n askdna kdnak asdnadjasndk adkand',
uuid: '1',
firstName: 'peter',
lastName: 'lustig',
isModerator: 1,
},
{
id: '1',
msgid: '0',
memo: 'nftzfD dfRDTD FDdrD TFt F ZTFZF TZfz FF T TZF Z ff ',
uuid: '2',
firstName: 'bibi',
lastName: 'bloxberg',
isModerator: 0,
},
{
id: '2',
msgid: '0',
memo: 'oG iu Hih hi ',
uuid: '1',
firstName: 'peter',
lastName: 'lustig',
isModerator: 1,
},
{
id: '3',
msgid: '0',
memo: 'zdg gdggs ds gdggusgdug nftz s s ZF TZfz FF 564c ',
uuid: '2',
firstName: 'bibi',
lastName: 'bloxberg',
isModerator: 0,
},
],
}
}, },
} }
</script> </script>

View File

@ -1,15 +1,37 @@
<template> <template>
<div> <div>
<slot :name="typeId"></slot> <is-moderator v-if="isModerator" :message="message"></is-moderator>
<is-not-moderator v-else :message="message"></is-not-moderator>
</div> </div>
</template> </template>
<script> <script>
import IsModerator from '@/components/ContributionMessages/slots/IsModerator.vue'
import IsNotModerator from '@/components/ContributionMessages/slots/IsNotModerator.vue'
export default { export default {
name: 'ContributionMessagesListItem', name: 'ContributionMessagesListItem',
components: {
IsModerator,
IsNotModerator,
},
props: { props: {
typeId: { message: {
type: Number, type: Object,
required: true, required: true,
default() {
return {}
},
},
},
data() {
return {
storeName: `${this.$store.state.firstName} ${this.$store.state.lastName}`,
moderationName: `${this.message.userFirstName} ${this.message.userLastName}`,
}
},
computed: {
isModerator() {
return this.storeName === this.moderationName
}, },
}, },
} }

View File

@ -2,6 +2,7 @@
<div class="open-creations-table"> <div class="open-creations-table">
<b-table-lite :items="items" :fields="fields" caption-top striped hover stacked="md"> <b-table-lite :items="items" :fields="fields" caption-top striped hover stacked="md">
<template #cell(bookmark)="row"> <template #cell(bookmark)="row">
{{ row.item }}
<b-button <b-button
variant="danger" variant="danger"
size="md" size="md"
@ -21,7 +22,10 @@
> >
<b-icon :icon="row.detailsShowing ? 'x' : 'pencil-square'" aria-label="Help"></b-icon> <b-icon :icon="row.detailsShowing ? 'x' : 'pencil-square'" aria-label="Help"></b-icon>
</b-button> </b-button>
<b-button v-else @click="rowToggleDetails(row, 0)"> <b-button
v-else
@click="rowToggleDetails(row, 0), getListContributionMessages(row.item.id)"
>
<b-icon icon="chat-dots"></b-icon> <b-icon icon="chat-dots"></b-icon>
<b-icon icon="exclamation-circle-fill"></b-icon> <b-icon icon="exclamation-circle-fill"></b-icon>
</b-button> </b-button>
@ -52,7 +56,11 @@
/> />
</div> </div>
<div v-else> <div v-else>
<contribution-messages-list :contributionId="row.item.id" /> <contribution-messages-list
:contributionId="row.item.id"
:messages="messages"
:messagesCount="messagesCount"
/>
</div> </div>
</template> </template>
</row-details> </row-details>
@ -65,8 +73,8 @@
import { toggleRowDetails } from '../../mixins/toggleRowDetails' import { toggleRowDetails } from '../../mixins/toggleRowDetails'
import RowDetails from '../RowDetails.vue' import RowDetails from '../RowDetails.vue'
import EditCreationFormular from '../EditCreationFormular.vue' import EditCreationFormular from '../EditCreationFormular.vue'
import ContributionMessagesList from '../ContributionMessages/ContributionMessagesList.vue' import ContributionMessagesList from '../ContributionMessages/ContributionMessagesList.vue'
import { listContributionMessages } from '../../graphql/listContributionMessages.js'
export default { export default {
name: 'OpenCreationsTable', name: 'OpenCreationsTable',
@ -93,10 +101,30 @@ export default {
date: null, date: null,
memo: null, memo: null,
moderator: null, moderator: null,
messagesCount: 0,
messages: [],
}, },
} }
}, },
methods: { methods: {
getListContributionMessages(id) {
console.log('getListContributionMessages', id)
this.$apollo
.query({
query: listContributionMessages,
variables: {
contributionId: id,
},
})
.then((result) => {
console.log('result', result.data.listContributionMessages)
this.messagesCount = result.data.getListContributionMessages.count
this.messages = result.data.getListContributionMessages.messages
})
.catch((error) => {
this.toastError(error.message)
})
},
updateCreationData(data) { updateCreationData(data) {
this.creationUserData = data this.creationUserData = data
// this.creationUserData.amount = data.amount // this.creationUserData.amount = data.amount

View File

@ -1,7 +1,12 @@
import gql from 'graphql-tag' import gql from 'graphql-tag'
export const listContributionMessages = gql` export const listContributionMessages = gql`
query ($contributionId: Int, $pageSize: Int = 25, $currentPage: Int = 1, $order: Order = DESC) { query (
$contributionId: Float!
$pageSize: Int = 25
$currentPage: Int = 1
$order: Order = DESC
) {
listContributionMessages( listContributionMessages(
contributionId: $contributionId contributionId: $contributionId
pageSize: $pageSize pageSize: $pageSize

View File

@ -17,6 +17,7 @@
<script> <script>
import ContributionMessagesListItem from '@/components/ContributionMessages/ContributionMessagesListItem.vue' import ContributionMessagesListItem from '@/components/ContributionMessages/ContributionMessagesListItem.vue'
import ContributionMessagesFormular from '@/components/ContributionMessages/ContributionMessagesFormular.vue' import ContributionMessagesFormular from '@/components/ContributionMessages/ContributionMessagesFormular.vue'
export default { export default {
name: 'ContributionMessagesList', name: 'ContributionMessagesList',
components: { components: {