+
+
+
+
@@ -58,6 +86,7 @@
import { toggleRowDetails } from '../../mixins/toggleRowDetails'
import RowDetails from '../RowDetails.vue'
import EditCreationFormular from '../EditCreationFormular.vue'
+import ContributionMessagesList from '../ContributionMessages/ContributionMessagesList.vue'
export default {
name: 'OpenCreationsTable',
@@ -65,6 +94,7 @@ export default {
components: {
EditCreationFormular,
RowDetails,
+ ContributionMessagesList,
},
props: {
items: {
@@ -98,6 +128,9 @@ export default {
updateUserData(rowItem, newCreation) {
rowItem.creation = newCreation
},
+ updateState(id) {
+ this.$emit('update-state', id)
+ },
},
}
diff --git a/admin/src/graphql/adminCreateContributionMessage.js b/admin/src/graphql/adminCreateContributionMessage.js
new file mode 100644
index 000000000..25d81f151
--- /dev/null
+++ b/admin/src/graphql/adminCreateContributionMessage.js
@@ -0,0 +1,15 @@
+import gql from 'graphql-tag'
+
+export const adminCreateContributionMessage = gql`
+ mutation ($contributionId: Float!, $message: String!) {
+ adminCreateContributionMessage(contributionId: $contributionId, message: $message) {
+ id
+ message
+ createdAt
+ updatedAt
+ type
+ userFirstName
+ userLastName
+ }
+ }
+`
diff --git a/admin/src/graphql/listContributionMessages.js b/admin/src/graphql/listContributionMessages.js
new file mode 100644
index 000000000..c3ffdb0b9
--- /dev/null
+++ b/admin/src/graphql/listContributionMessages.js
@@ -0,0 +1,25 @@
+import gql from 'graphql-tag'
+
+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
+ isModerator
+ }
+ }
+ }
+`
diff --git a/admin/src/graphql/listUnconfirmedContributions.js b/admin/src/graphql/listUnconfirmedContributions.js
index c31347468..1d7f9e21c 100644
--- a/admin/src/graphql/listUnconfirmedContributions.js
+++ b/admin/src/graphql/listUnconfirmedContributions.js
@@ -6,12 +6,15 @@ export const listUnconfirmedContributions = gql`
id
firstName
lastName
+ userId
email
amount
memo
date
moderator
creation
+ state
+ messageCount
}
}
`
diff --git a/admin/src/locales/de.json b/admin/src/locales/de.json
index 4f1b40b71..c977a613e 100644
--- a/admin/src/locales/de.json
+++ b/admin/src/locales/de.json
@@ -69,6 +69,10 @@
},
"short_hash": "({shortHash})"
},
+ "form": {
+ "cancel": "Abbrechen",
+ "submit": "Senden"
+ },
"GDD": "GDD",
"hide_details": "Details verbergen",
"lastname": "Nachname",
@@ -78,6 +82,9 @@
"pipe": "|",
"plus": "+"
},
+ "message": {
+ "request": "Die Anfrage wurde gesendet."
+ },
"moderator": "Moderator",
"multiple_creation_text": "Bitte wähle ein oder mehrere Mitglieder aus für die du Schöpfen möchtest.",
"name": "Name",
diff --git a/admin/src/locales/en.json b/admin/src/locales/en.json
index 2145a87d3..e99305e08 100644
--- a/admin/src/locales/en.json
+++ b/admin/src/locales/en.json
@@ -69,6 +69,10 @@
},
"short_hash": "({shortHash})"
},
+ "form": {
+ "cancel": "Cancel",
+ "submit": "Send"
+ },
"GDD": "GDD",
"hide_details": "Hide details",
"lastname": "Lastname",
@@ -78,6 +82,9 @@
"pipe": "|",
"plus": "+"
},
+ "message": {
+ "request": "Request has been sent."
+ },
"moderator": "Moderator",
"multiple_creation_text": "Please select one or more members for which you would like to perform creations.",
"name": "Name",
diff --git a/admin/src/pages/CreationConfirm.spec.js b/admin/src/pages/CreationConfirm.spec.js
index 352eba809..0ea1aeba2 100644
--- a/admin/src/pages/CreationConfirm.spec.js
+++ b/admin/src/pages/CreationConfirm.spec.js
@@ -14,21 +14,23 @@ const apolloQueryMock = jest.fn().mockResolvedValue({
id: 1,
firstName: 'Bibi',
lastName: 'Bloxberg',
+ userId: 99,
email: 'bibi@bloxberg.de',
amount: 500,
memo: 'Danke für alles',
date: new Date(),
- moderator: 2,
+ moderator: 1,
},
{
id: 2,
firstName: 'Räuber',
lastName: 'Hotzenplotz',
+ userId: 100,
email: 'raeuber@hotzenplotz.de',
amount: 1000000,
memo: 'Gut Ergattert',
date: new Date(),
- moderator: 2,
+ moderator: 1,
},
],
},
@@ -41,6 +43,15 @@ const mocks = {
$d: jest.fn((d) => d),
$store: {
commit: storeCommitMock,
+ state: {
+ moderator: {
+ firstName: 'Peter',
+ lastName: 'Lustig',
+ isAdmin: '2022-08-30T07:41:31.000Z',
+ id: 263,
+ language: 'de',
+ },
+ },
},
$apollo: {
query: apolloQueryMock,
diff --git a/admin/src/pages/CreationConfirm.vue b/admin/src/pages/CreationConfirm.vue
index c07e6b351..1f82fafc4 100644
--- a/admin/src/pages/CreationConfirm.vue
+++ b/admin/src/pages/CreationConfirm.vue
@@ -9,6 +9,7 @@
:fields="fields"
@remove-creation="removeCreation"
@show-overlay="showOverlay"
+ @update-state="updateState"
/>