mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Merge branch 'adminEditPendingCreationQueries' into adminDeletePendingCreationQuery
This commit is contained in:
commit
b81336c309
2
.github/workflows/test.yml
vendored
2
.github/workflows/test.yml
vendored
@ -441,7 +441,7 @@ jobs:
|
|||||||
report_name: Coverage Admin Interface
|
report_name: Coverage Admin Interface
|
||||||
type: lcov
|
type: lcov
|
||||||
result_path: ./coverage/lcov.info
|
result_path: ./coverage/lcov.info
|
||||||
min_coverage: 53
|
min_coverage: 51
|
||||||
token: ${{ github.token }}
|
token: ${{ github.token }}
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|||||||
@ -1,21 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="component-creation-formular">
|
<div class="component-creation-formular">
|
||||||
<div>
|
<div class="shadow p-3 mb-5 bg-white rounded">
|
||||||
<h3>
|
|
||||||
{{
|
|
||||||
this.type === 'singleCreation'
|
|
||||||
? 'Einzelschöpfung für ' + item.firstName + ' ' + item.lastName + ''
|
|
||||||
: 'Mehrfachschöpfung für ' + Object.keys(this.itemsMassCreation).length + ' Mitglieder'
|
|
||||||
}}
|
|
||||||
</h3>
|
|
||||||
<div v-show="this.type === 'massCreation' && Object.keys(this.itemsMassCreation).length <= 0">
|
|
||||||
Bitte wähle ein oder Mehrere Mitglieder aus für die du Schöpfen möchtest
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
v-show="this.type === 'singleCreation' || Object.keys(this.itemsMassCreation).length > 0"
|
|
||||||
class="shadow p-3 mb-5 bg-white rounded"
|
|
||||||
>
|
|
||||||
<b-form ref="creationForm">
|
<b-form ref="creationForm">
|
||||||
<b-row class="m-4">
|
<b-row class="m-4">
|
||||||
<label>Monat Auswählen</label>
|
<label>Monat Auswählen</label>
|
||||||
@ -27,7 +12,9 @@
|
|||||||
size="lg"
|
size="lg"
|
||||||
@change="updateRadioSelected(beforeLastMonth, 0, creation[0])"
|
@change="updateRadioSelected(beforeLastMonth, 0, creation[0])"
|
||||||
>
|
>
|
||||||
|
<label for="beforeLastMonth">
|
||||||
{{ beforeLastMonth.short }} {{ creation[0] != null ? creation[0] + ' GDD' : '' }}
|
{{ beforeLastMonth.short }} {{ creation[0] != null ? creation[0] + ' GDD' : '' }}
|
||||||
|
</label>
|
||||||
</b-form-radio>
|
</b-form-radio>
|
||||||
</b-col>
|
</b-col>
|
||||||
<b-col>
|
<b-col>
|
||||||
@ -38,7 +25,9 @@
|
|||||||
size="lg"
|
size="lg"
|
||||||
@change="updateRadioSelected(lastMonth, 1, creation[1])"
|
@change="updateRadioSelected(lastMonth, 1, creation[1])"
|
||||||
>
|
>
|
||||||
|
<label for="lastMonth">
|
||||||
{{ lastMonth.short }} {{ creation[1] != null ? creation[1] + ' GDD' : '' }}
|
{{ lastMonth.short }} {{ creation[1] != null ? creation[1] + ' GDD' : '' }}
|
||||||
|
</label>
|
||||||
</b-form-radio>
|
</b-form-radio>
|
||||||
</b-col>
|
</b-col>
|
||||||
<b-col class="text-right">
|
<b-col class="text-right">
|
||||||
@ -49,7 +38,9 @@
|
|||||||
size="lg"
|
size="lg"
|
||||||
@change="updateRadioSelected(currentMonth, 2, creation[2])"
|
@change="updateRadioSelected(currentMonth, 2, creation[2])"
|
||||||
>
|
>
|
||||||
|
<label for="currentMonth">
|
||||||
{{ currentMonth.short }} {{ creation[2] != null ? creation[2] + ' GDD' : '' }}
|
{{ currentMonth.short }} {{ creation[2] != null ? creation[2] + ' GDD' : '' }}
|
||||||
|
</label>
|
||||||
</b-form-radio>
|
</b-form-radio>
|
||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
@ -73,7 +64,6 @@
|
|||||||
:min="rangeMin"
|
:min="rangeMin"
|
||||||
:max="rangeMax"
|
:max="rangeMax"
|
||||||
step="10"
|
step="10"
|
||||||
@load="checkFormForUpdate('range')"
|
|
||||||
></b-form-input>
|
></b-form-input>
|
||||||
</b-input-group>
|
</b-input-group>
|
||||||
</div>
|
</div>
|
||||||
@ -86,7 +76,6 @@
|
|||||||
v-model="text"
|
v-model="text"
|
||||||
:state="text.length >= 10"
|
:state="text.length >= 10"
|
||||||
placeholder="Mindestens 10 Zeichen eingeben"
|
placeholder="Mindestens 10 Zeichen eingeben"
|
||||||
@load="checkFormForUpdate('text')"
|
|
||||||
rows="3"
|
rows="3"
|
||||||
></b-form-textarea>
|
></b-form-textarea>
|
||||||
</div>
|
</div>
|
||||||
@ -126,6 +115,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
import { verifyLogin } from '../graphql/verifyLogin'
|
||||||
import { createPendingCreation } from '../graphql/createPendingCreation'
|
import { createPendingCreation } from '../graphql/createPendingCreation'
|
||||||
export default {
|
export default {
|
||||||
name: 'CreationFormular',
|
name: 'CreationFormular',
|
||||||
@ -142,25 +132,34 @@ export default {
|
|||||||
item: {
|
item: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: false,
|
required: false,
|
||||||
|
default() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
items: {
|
||||||
|
type: Array,
|
||||||
|
required: false,
|
||||||
|
default() {
|
||||||
|
return []
|
||||||
|
},
|
||||||
},
|
},
|
||||||
creationUserData: {
|
creationUserData: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: false,
|
required: false,
|
||||||
|
default() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
creation: {
|
creation: {
|
||||||
type: Array,
|
type: Array,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
itemsMassCreation: {
|
|
||||||
type: Object,
|
|
||||||
required: false,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
radioSelected: '',
|
radioSelected: '',
|
||||||
text: '',
|
text: !this.creationUserData.memo ? '' : this.creationUserData.memo,
|
||||||
value: 0,
|
value: !this.creationUserData.amount ? 0 : this.creationUserData.amount / 10000,
|
||||||
rangeMin: 0,
|
rangeMin: 0,
|
||||||
rangeMax: 1000,
|
rangeMax: 1000,
|
||||||
currentMonth: {
|
currentMonth: {
|
||||||
@ -180,6 +179,7 @@ export default {
|
|||||||
createdIndex: null,
|
createdIndex: null,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
// Auswählen eines Zeitraumes
|
// Auswählen eines Zeitraumes
|
||||||
updateRadioSelected(name, index, openCreation) {
|
updateRadioSelected(name, index, openCreation) {
|
||||||
@ -188,27 +188,12 @@ export default {
|
|||||||
if (this.type === 'massCreation') {
|
if (this.type === 'massCreation') {
|
||||||
// An Creation.vue emitten und radioSelectedMass aktualisieren
|
// An Creation.vue emitten und radioSelectedMass aktualisieren
|
||||||
this.$emit('update-radio-selected', [name, index])
|
this.$emit('update-radio-selected', [name, index])
|
||||||
}
|
} else if (this.type === 'singleCreation') {
|
||||||
// Wenn Einzelschöpfung
|
|
||||||
if (this.type === 'singleCreation') {
|
|
||||||
this.rangeMin = 0
|
this.rangeMin = 0
|
||||||
// Der maximale offene Betrag an GDD die für ein User noch geschöpft werden kann
|
// Der maximale offene Betrag an GDD die für ein User noch geschöpft werden kann
|
||||||
this.rangeMax = openCreation
|
this.rangeMax = openCreation
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
checkFormForUpdate(input) {
|
|
||||||
switch (input) {
|
|
||||||
case 'text':
|
|
||||||
this.text = this.creationUserData.text
|
|
||||||
break
|
|
||||||
case 'range':
|
|
||||||
this.value = this.creationUserData.creationGdd
|
|
||||||
break
|
|
||||||
default:
|
|
||||||
// TODO: Toast
|
|
||||||
alert("I don't know such values")
|
|
||||||
}
|
|
||||||
},
|
|
||||||
submitCreation() {
|
submitCreation() {
|
||||||
// Formular Prüfen ob ein Zeitraum ausgewählt wurde. Ansonsten abbrechen und Hinweis anzeigen
|
// Formular Prüfen ob ein Zeitraum ausgewählt wurde. Ansonsten abbrechen und Hinweis anzeigen
|
||||||
if (this.radioSelected === '') {
|
if (this.radioSelected === '') {
|
||||||
@ -226,6 +211,7 @@ export default {
|
|||||||
if (this.text.length < 10) {
|
if (this.text.length < 10) {
|
||||||
return alert('Bitte gib einen Text ein der länger als 10 Zeichen ist!')
|
return alert('Bitte gib einen Text ein der länger als 10 Zeichen ist!')
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.type === 'massCreation') {
|
if (this.type === 'massCreation') {
|
||||||
// Die anzahl der Mitglieder aus der Mehrfachschöpfung
|
// Die anzahl der Mitglieder aus der Mehrfachschöpfung
|
||||||
const i = Object.keys(this.itemsMassCreation).length
|
const i = Object.keys(this.itemsMassCreation).length
|
||||||
@ -248,9 +234,7 @@ export default {
|
|||||||
|
|
||||||
// lösche alle Mitglieder aus der MehrfachSchöpfungsListe nach dem alle Mehrfachschpfungen zum bestätigen gesendet wurden.
|
// lösche alle Mitglieder aus der MehrfachSchöpfungsListe nach dem alle Mehrfachschpfungen zum bestätigen gesendet wurden.
|
||||||
this.$emit('remove-all-bookmark')
|
this.$emit('remove-all-bookmark')
|
||||||
}
|
} else if (this.type === 'singleCreation') {
|
||||||
|
|
||||||
if (this.type === 'singleCreation') {
|
|
||||||
this.submitObj = {
|
this.submitObj = {
|
||||||
email: this.item.email,
|
email: this.item.email,
|
||||||
creationDate: this.radioSelected.long,
|
creationDate: this.radioSelected.long,
|
||||||
@ -259,16 +243,6 @@ export default {
|
|||||||
moderator: Number(this.$store.state.moderator.id),
|
moderator: Number(this.$store.state.moderator.id),
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.pagetype === 'PageCreationConfirm') {
|
|
||||||
// hinweis das eine ein einzelne Schöpfung abgesendet wird an (email)
|
|
||||||
alert('UPDATE EINZEL SCHÖPFUNG ABSENDEN FÜR >> ')
|
|
||||||
// umschreiben, update eine bestehende Schöpfung eine
|
|
||||||
this.$emit('update-creation-data', {
|
|
||||||
datum: this.radioSelected.long,
|
|
||||||
creationGdd: this.value,
|
|
||||||
text: this.text,
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
this.$apollo
|
this.$apollo
|
||||||
.mutate({
|
.mutate({
|
||||||
mutation: createPendingCreation,
|
mutation: createPendingCreation,
|
||||||
@ -296,8 +270,20 @@ export default {
|
|||||||
this.value = 0
|
this.value = 0
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
searchModeratorData() {
|
||||||
|
this.$apollo
|
||||||
|
.query({ query: verifyLogin })
|
||||||
|
.then((result) => {
|
||||||
|
this.$store.commit('moderator', result.data.verifyLogin)
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
this.$store.commit('moderator', { id: 0, name: 'Test Moderator' })
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.searchModeratorData()
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
289
admin/src/components/EditCreationFormular.vue
Normal file
289
admin/src/components/EditCreationFormular.vue
Normal file
@ -0,0 +1,289 @@
|
|||||||
|
<template>
|
||||||
|
<div class="component-edit-creation-formular">
|
||||||
|
<div class="shadow p-3 mb-5 bg-white rounded">
|
||||||
|
<b-form ref="updateCreationForm">
|
||||||
|
<b-row class="m-4">
|
||||||
|
<label>Monat Auswählen</label>
|
||||||
|
<b-col class="text-left">
|
||||||
|
<b-form-radio
|
||||||
|
v-model="radioSelected"
|
||||||
|
:value="beforeLastMonth"
|
||||||
|
:disabled="selectedOpenCreationAmount[0] === 0"
|
||||||
|
size="lg"
|
||||||
|
@change="updateRadioSelected(beforeLastMonth, 0, selectedOpenCreationAmount[0])"
|
||||||
|
>
|
||||||
|
<label for="beforeLastMonth">
|
||||||
|
{{ beforeLastMonth.short }}
|
||||||
|
{{
|
||||||
|
selectedOpenCreationAmount[0] != null
|
||||||
|
? selectedOpenCreationAmount[0] + ' GDD'
|
||||||
|
: ''
|
||||||
|
}}
|
||||||
|
</label>
|
||||||
|
</b-form-radio>
|
||||||
|
</b-col>
|
||||||
|
<b-col>
|
||||||
|
<b-form-radio
|
||||||
|
v-model="radioSelected"
|
||||||
|
:value="lastMonth"
|
||||||
|
:disabled="selectedOpenCreationAmount[1] === 0"
|
||||||
|
size="lg"
|
||||||
|
@change="updateRadioSelected(lastMonth, 1, selectedOpenCreationAmount[1])"
|
||||||
|
>
|
||||||
|
<label for="lastMonth">
|
||||||
|
{{ lastMonth.short }}
|
||||||
|
{{
|
||||||
|
selectedOpenCreationAmount[1] != null
|
||||||
|
? selectedOpenCreationAmount[1] + ' GDD'
|
||||||
|
: ''
|
||||||
|
}}
|
||||||
|
</label>
|
||||||
|
</b-form-radio>
|
||||||
|
</b-col>
|
||||||
|
<b-col class="text-right">
|
||||||
|
<b-form-radio
|
||||||
|
v-model="radioSelected"
|
||||||
|
:value="currentMonth"
|
||||||
|
:disabled="selectedOpenCreationAmount[2] === 0"
|
||||||
|
size="lg"
|
||||||
|
@change="updateRadioSelected(currentMonth, 2, selectedOpenCreationAmount[2])"
|
||||||
|
>
|
||||||
|
<label for="currentMonth">
|
||||||
|
{{ currentMonth.short }}
|
||||||
|
{{
|
||||||
|
selectedOpenCreationAmount[2] != null
|
||||||
|
? selectedOpenCreationAmount[2] + ' GDD'
|
||||||
|
: ''
|
||||||
|
}}
|
||||||
|
</label>
|
||||||
|
</b-form-radio>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
|
||||||
|
<b-row class="m-4">
|
||||||
|
<label>Betrag Auswählen</label>
|
||||||
|
<div>
|
||||||
|
<b-input-group prepend="GDD" append=".00">
|
||||||
|
<b-form-input
|
||||||
|
type="number"
|
||||||
|
v-model="value"
|
||||||
|
:min="rangeMin"
|
||||||
|
:max="rangeMax"
|
||||||
|
></b-form-input>
|
||||||
|
</b-input-group>
|
||||||
|
|
||||||
|
<b-input-group prepend="0" :append="String(rangeMax)" class="mt-3">
|
||||||
|
<b-form-input
|
||||||
|
type="range"
|
||||||
|
v-model="value"
|
||||||
|
:min="rangeMin"
|
||||||
|
:max="rangeMax"
|
||||||
|
step="10"
|
||||||
|
></b-form-input>
|
||||||
|
</b-input-group>
|
||||||
|
</div>
|
||||||
|
</b-row>
|
||||||
|
<b-row class="m-4">
|
||||||
|
<label>Text eintragen</label>
|
||||||
|
<div>
|
||||||
|
<b-form-textarea
|
||||||
|
id="textarea-state"
|
||||||
|
v-model="text"
|
||||||
|
:state="text.length >= 10"
|
||||||
|
placeholder="Mindestens 10 Zeichen eingeben"
|
||||||
|
rows="3"
|
||||||
|
></b-form-textarea>
|
||||||
|
</div>
|
||||||
|
</b-row>
|
||||||
|
<b-row class="m-4">
|
||||||
|
<b-col class="text-center">
|
||||||
|
<b-button type="reset" variant="danger" @click="$refs.updateCreationForm.reset()">
|
||||||
|
zurücksetzen
|
||||||
|
</b-button>
|
||||||
|
</b-col>
|
||||||
|
<b-col class="text-center">
|
||||||
|
<div class="text-right">
|
||||||
|
<b-button
|
||||||
|
type="button"
|
||||||
|
variant="success"
|
||||||
|
@click="submitCreation"
|
||||||
|
:disabled="radioSelected === '' || value <= 0 || text.length < 10"
|
||||||
|
>
|
||||||
|
Update Schöpfung ({{ type }},{{ pagetype }})
|
||||||
|
</b-button>
|
||||||
|
</div>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
</b-form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { updatePendingCreation } from '../graphql/updatePendingCreation'
|
||||||
|
export default {
|
||||||
|
name: 'CreationFormular',
|
||||||
|
props: {
|
||||||
|
type: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
},
|
||||||
|
pagetype: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
item: {
|
||||||
|
type: Object,
|
||||||
|
required: false,
|
||||||
|
default() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
items: {
|
||||||
|
type: Array,
|
||||||
|
required: false,
|
||||||
|
default() {
|
||||||
|
return []
|
||||||
|
},
|
||||||
|
},
|
||||||
|
row: {
|
||||||
|
type: Array,
|
||||||
|
required: Object,
|
||||||
|
default() {
|
||||||
|
return []
|
||||||
|
},
|
||||||
|
},
|
||||||
|
creationUserData: {
|
||||||
|
type: Object,
|
||||||
|
required: false,
|
||||||
|
default() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
creation: {
|
||||||
|
type: Array,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
if (this.pagetype === 'PageCreationConfirm' && this.creationUserData.date) {
|
||||||
|
switch (this.$moment(this.creationUserData.date).format('MMMM')) {
|
||||||
|
case this.currentMonth.short:
|
||||||
|
this.createdIndex = 2
|
||||||
|
this.radioSelected = this.currentMonth
|
||||||
|
break
|
||||||
|
case this.lastMonth.short:
|
||||||
|
this.createdIndex = 1
|
||||||
|
this.radioSelected = this.lastMonth
|
||||||
|
break
|
||||||
|
case this.beforeLastMonth.short:
|
||||||
|
this.createdIndex = 0
|
||||||
|
this.radioSelected = this.beforeLastMonth
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
throw new Error('Something went wrong')
|
||||||
|
}
|
||||||
|
this.selectedOpenCreationAmount[this.createdIndex] =
|
||||||
|
this.creation[this.createdIndex] + this.creationUserData.amount / 10000
|
||||||
|
this.rangeMax = this.selectedOpenCreationAmount[this.createdIndex]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
radioSelected: '',
|
||||||
|
text: !this.creationUserData.memo ? '' : this.creationUserData.memo,
|
||||||
|
value: !this.creationUserData.amount ? 0 : this.creationUserData.amount / 10000,
|
||||||
|
rangeMin: 0,
|
||||||
|
rangeMax: 1000,
|
||||||
|
currentMonth: {
|
||||||
|
short: this.$moment().format('MMMM'),
|
||||||
|
long: this.$moment().format('YYYY-MM-DD'),
|
||||||
|
},
|
||||||
|
lastMonth: {
|
||||||
|
short: this.$moment().subtract(1, 'month').format('MMMM'),
|
||||||
|
long: this.$moment().subtract(1, 'month').format('YYYY-MM') + '-01',
|
||||||
|
},
|
||||||
|
beforeLastMonth: {
|
||||||
|
short: this.$moment().subtract(2, 'month').format('MMMM'),
|
||||||
|
long: this.$moment().subtract(2, 'month').format('YYYY-MM') + '-01',
|
||||||
|
},
|
||||||
|
submitObj: null,
|
||||||
|
isdisabled: true,
|
||||||
|
createdIndex: null,
|
||||||
|
selectedOpenCreationAmount: {},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
updateRadioSelected(name, index, openCreation) {
|
||||||
|
this.createdIndex = index
|
||||||
|
this.rangeMin = 0
|
||||||
|
this.rangeMax = this.creation[index]
|
||||||
|
},
|
||||||
|
submitCreation() {
|
||||||
|
// Formular Prüfen ob ein Zeitraum ausgewählt wurde. Ansonsten abbrechen und Hinweis anzeigen
|
||||||
|
if (this.radioSelected === '') {
|
||||||
|
return alert('Bitte wähle einen Zeitraum!')
|
||||||
|
}
|
||||||
|
// Formular Prüfen ob der GDD Betrag grösser 0 ist. Ansonsten abbrechen und Hinweis anzeigen
|
||||||
|
if (this.value <= 0) {
|
||||||
|
return alert('Bitte gib einen GDD Betrag an!')
|
||||||
|
}
|
||||||
|
// Formular Prüfen ob der Text vorhanden ist. Ansonsten abbrechen und Hinweis anzeigen
|
||||||
|
if (this.text === '') {
|
||||||
|
return alert('Bitte gib einen Text ein!')
|
||||||
|
}
|
||||||
|
// Formular Prüfen ob der Text länger als 10 Zeichen hat. Ansonsten abbrechen und Hinweis anzeigen
|
||||||
|
if (this.text.length < 10) {
|
||||||
|
return alert('Bitte gib einen Text ein der länger als 10 Zeichen ist!')
|
||||||
|
}
|
||||||
|
if (this.type === 'singleCreation') {
|
||||||
|
this.submitObj = {
|
||||||
|
id: this.item.id,
|
||||||
|
email: this.item.email,
|
||||||
|
creationDate: this.radioSelected.long,
|
||||||
|
amount: Number(this.value),
|
||||||
|
memo: this.text,
|
||||||
|
moderator: Number(this.$store.state.moderator.id),
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.pagetype === 'PageCreationConfirm') {
|
||||||
|
// hinweis das eine ein einzelne Schöpfung abgesendet wird an (email)
|
||||||
|
this.$apollo
|
||||||
|
.mutate({
|
||||||
|
mutation: updatePendingCreation,
|
||||||
|
variables: this.submitObj,
|
||||||
|
})
|
||||||
|
.then((result) => {
|
||||||
|
this.$emit('update-user-data', this.item, result.data.updatePendingCreation.creation)
|
||||||
|
this.$emit('update-creation-data', {
|
||||||
|
amount: Number(result.data.updatePendingCreation.amount),
|
||||||
|
date: result.data.updatePendingCreation.date,
|
||||||
|
memo: result.data.updatePendingCreation.memo,
|
||||||
|
moderator: Number(result.data.updatePendingCreation.moderator),
|
||||||
|
row: this.row,
|
||||||
|
})
|
||||||
|
this.$toasted.success(
|
||||||
|
`Offene schöpfung (${this.value} GDD) für ${this.item.email} wurde geändert, liegt zur Bestätigung bereit`,
|
||||||
|
)
|
||||||
|
this.submitObj = null
|
||||||
|
this.createdIndex = null
|
||||||
|
// das creation Formular reseten
|
||||||
|
this.$refs.updateCreationForm.reset()
|
||||||
|
// Den geschöpften Wert auf o setzen
|
||||||
|
this.value = 0
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
this.$toasted.error(error.message)
|
||||||
|
this.submitObj = null
|
||||||
|
// das creation Formular reseten
|
||||||
|
this.$refs.updateCreationForm.reset()
|
||||||
|
// Den geschöpften Wert auf o setzen
|
||||||
|
this.value = 0
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@ -60,13 +60,25 @@
|
|||||||
<b-row class="mb-2">
|
<b-row class="mb-2">
|
||||||
<b-col></b-col>
|
<b-col></b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
|
{{ type }}
|
||||||
<creation-formular
|
<creation-formular
|
||||||
|
v-if="type === 'PageUserSearch'"
|
||||||
type="singleCreation"
|
type="singleCreation"
|
||||||
:pagetype="type"
|
:pagetype="type"
|
||||||
:creation="row.item.creation"
|
:creation="row.item.creation"
|
||||||
:item="row.item"
|
:item="row.item"
|
||||||
:creationUserData="creationData"
|
:creationUserData="creationUserData"
|
||||||
|
@update-creation-data="updateCreationData"
|
||||||
|
@update-user-data="updateUserData"
|
||||||
|
/>
|
||||||
|
<edit-creation-formular
|
||||||
|
v-else
|
||||||
|
type="singleCreation"
|
||||||
|
:pagetype="type"
|
||||||
|
:creation="row.item.creation"
|
||||||
|
:item="row.item"
|
||||||
|
:row="row"
|
||||||
|
:creationUserData="creationUserData"
|
||||||
@update-creation-data="updateCreationData"
|
@update-creation-data="updateCreationData"
|
||||||
@update-user-data="updateUserData"
|
@update-user-data="updateUserData"
|
||||||
/>
|
/>
|
||||||
@ -119,6 +131,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import CreationFormular from '../components/CreationFormular.vue'
|
import CreationFormular from '../components/CreationFormular.vue'
|
||||||
|
import EditCreationFormular from '../components/EditCreationFormular.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'UserTable',
|
name: 'UserTable',
|
||||||
@ -147,10 +160,11 @@ export default {
|
|||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
CreationFormular,
|
CreationFormular,
|
||||||
|
EditCreationFormular,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
creationData: {},
|
creationUserData: {},
|
||||||
overlay: false,
|
overlay: false,
|
||||||
overlayBookmarkType: '',
|
overlayBookmarkType: '',
|
||||||
overlayItem: [],
|
overlayItem: [],
|
||||||
@ -219,19 +233,28 @@ export default {
|
|||||||
this.$emit('remove-confirm-result', item, 'remove')
|
this.$emit('remove-confirm-result', item, 'remove')
|
||||||
},
|
},
|
||||||
editCreationUserTable(row, rowItem) {
|
editCreationUserTable(row, rowItem) {
|
||||||
alert('editCreationUserTable')
|
|
||||||
if (!row.detailsShowing) {
|
if (!row.detailsShowing) {
|
||||||
alert('offen edit loslegen')
|
this.creationUserData = rowItem
|
||||||
// this.item = rowItem
|
} else {
|
||||||
this.creationData = rowItem
|
this.creationUserData = {}
|
||||||
// alert(this.creationData)
|
|
||||||
}
|
}
|
||||||
row.toggleDetails()
|
row.toggleDetails()
|
||||||
},
|
},
|
||||||
updateCreationData(data) {
|
updateCreationData(data) {
|
||||||
this.creationData = {
|
// console.log('updateCreationData this.creationUserData11=> ', this.creationUserData)
|
||||||
...data,
|
// console.log('updateCreationData data=> ', data)
|
||||||
}
|
// this.creationUserData = {
|
||||||
|
// ...this.creationUserData,
|
||||||
|
// ...data,
|
||||||
|
// }
|
||||||
|
// console.log('updateCreationData this.creationUserData22=> ', this.creationUserData)
|
||||||
|
|
||||||
|
this.creationUserData.amount = data.amount
|
||||||
|
this.creationUserData.date = data.date
|
||||||
|
this.creationUserData.memo = data.memo
|
||||||
|
this.creationUserData.moderator = data.moderator
|
||||||
|
|
||||||
|
data.row.toggleDetails()
|
||||||
},
|
},
|
||||||
updateUserData(rowItem, newCreation) {
|
updateUserData(rowItem, newCreation) {
|
||||||
rowItem.creation = newCreation
|
rowItem.creation = newCreation
|
||||||
|
|||||||
@ -8,7 +8,7 @@ export const getPendingCreations = gql`
|
|||||||
lastName
|
lastName
|
||||||
email
|
email
|
||||||
amount
|
amount
|
||||||
note
|
memo
|
||||||
date
|
date
|
||||||
moderator
|
moderator
|
||||||
creation
|
creation
|
||||||
|
|||||||
27
admin/src/graphql/updatePendingCreation.js
Normal file
27
admin/src/graphql/updatePendingCreation.js
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
import gql from 'graphql-tag'
|
||||||
|
|
||||||
|
export const updatePendingCreation = gql`
|
||||||
|
mutation (
|
||||||
|
$id: Int!
|
||||||
|
$email: String!
|
||||||
|
$amount: Int!
|
||||||
|
$memo: String!
|
||||||
|
$creationDate: String!
|
||||||
|
$moderator: Int!
|
||||||
|
) {
|
||||||
|
updatePendingCreation(
|
||||||
|
id: $id
|
||||||
|
email: $email
|
||||||
|
amount: $amount
|
||||||
|
memo: $memo
|
||||||
|
creationDate: $creationDate
|
||||||
|
moderator: $moderator
|
||||||
|
) {
|
||||||
|
amount
|
||||||
|
date
|
||||||
|
memo
|
||||||
|
creation
|
||||||
|
moderator
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
||||||
11
admin/src/graphql/verifyLogin.js
Normal file
11
admin/src/graphql/verifyLogin.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import gql from 'graphql-tag'
|
||||||
|
|
||||||
|
export const verifyLogin = gql`
|
||||||
|
query {
|
||||||
|
verifyLogin {
|
||||||
|
firstName
|
||||||
|
lastName
|
||||||
|
id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
||||||
@ -3,12 +3,14 @@ import './main'
|
|||||||
import CONFIG from './config'
|
import CONFIG from './config'
|
||||||
|
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
|
import VueApollo from 'vue-apollo'
|
||||||
import Vuex from 'vuex'
|
import Vuex from 'vuex'
|
||||||
import VueI18n from 'vue-i18n'
|
import VueI18n from 'vue-i18n'
|
||||||
import { BootstrapVue, IconsPlugin } from 'bootstrap-vue'
|
import { BootstrapVue, IconsPlugin } from 'bootstrap-vue'
|
||||||
import moment from 'vue-moment'
|
import moment from 'vue-moment'
|
||||||
|
|
||||||
jest.mock('vue')
|
jest.mock('vue')
|
||||||
|
jest.mock('vue-apollo')
|
||||||
jest.mock('vuex')
|
jest.mock('vuex')
|
||||||
jest.mock('vue-i18n')
|
jest.mock('vue-i18n')
|
||||||
jest.mock('vue-moment')
|
jest.mock('vue-moment')
|
||||||
@ -55,6 +57,10 @@ describe('main', () => {
|
|||||||
expect(InMemoryCache).toBeCalled()
|
expect(InMemoryCache).toBeCalled()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('calls the VueApollo', () => {
|
||||||
|
expect(VueApollo).toBeCalled()
|
||||||
|
})
|
||||||
|
|
||||||
it('calls Vue', () => {
|
it('calls Vue', () => {
|
||||||
expect(Vue).toBeCalled()
|
expect(Vue).toBeCalled()
|
||||||
})
|
})
|
||||||
@ -63,16 +69,16 @@ describe('main', () => {
|
|||||||
expect(VueI18n).toBeCalled()
|
expect(VueI18n).toBeCalled()
|
||||||
})
|
})
|
||||||
|
|
||||||
it.skip('calls BootstrapVue', () => {
|
it('calls BootstrapVue', () => {
|
||||||
expect(BootstrapVue).toBeCalled()
|
expect(Vue.use).toBeCalledWith(BootstrapVue)
|
||||||
})
|
})
|
||||||
|
|
||||||
it.skip('calls IconsPlugin', () => {
|
it('calls IconsPlugin', () => {
|
||||||
expect(IconsPlugin).toBeCalled()
|
expect(Vue.use).toBeCalledWith(IconsPlugin)
|
||||||
})
|
})
|
||||||
|
|
||||||
it.skip('calls Moment', () => {
|
it('calls Moment', () => {
|
||||||
expect(moment).toBeCalled()
|
expect(Vue.use).toBeCalledWith(moment)
|
||||||
})
|
})
|
||||||
|
|
||||||
it.skip('creates a store', () => {
|
it.skip('creates a store', () => {
|
||||||
|
|||||||
@ -21,24 +21,26 @@
|
|||||||
</b-col>
|
</b-col>
|
||||||
<b-col cols="12" lg="7" class="shadow p-3 mb-5 rounded bg-info">
|
<b-col cols="12" lg="7" class="shadow p-3 mb-5 rounded bg-info">
|
||||||
<user-table
|
<user-table
|
||||||
v-if="massCreation.length > 0"
|
v-show="itemsMassCreation.length > 0"
|
||||||
class="shadow p-3 mb-5 bg-white rounded"
|
class="shadow p-3 mb-5 bg-white rounded"
|
||||||
type="UserListMassCreation"
|
type="UserListMassCreation"
|
||||||
:itemsUser="massCreation"
|
:itemsUser="itemsMassCreation"
|
||||||
:fieldsTable="fields"
|
:fieldsTable="fields"
|
||||||
:criteria="null"
|
:criteria="null"
|
||||||
:creation="creation"
|
:creation="creation"
|
||||||
@update-item="updateItem"
|
@update-item="updateItem"
|
||||||
/>
|
/>
|
||||||
|
<div v-if="itemsMassCreation.length === 0">
|
||||||
|
Bitte wähle ein oder Mehrere Mitglieder aus für die du Schöpfen möchtest
|
||||||
|
</div>
|
||||||
<creation-formular
|
<creation-formular
|
||||||
v-if="massCreation.length > 0"
|
v-else
|
||||||
type="massCreation"
|
type="massCreation"
|
||||||
:creation="creation"
|
:creation="creation"
|
||||||
:itemsMassCreation="massCreation"
|
:items="itemsMassCreation"
|
||||||
@update-radio-selected="updateRadioSelected"
|
|
||||||
@remove-all-bookmark="removeAllBookmark"
|
@remove-all-bookmark="removeAllBookmark"
|
||||||
/>
|
/>
|
||||||
|
{{ itemsMassCreation }}
|
||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
</div>
|
</div>
|
||||||
@ -72,7 +74,7 @@ export default {
|
|||||||
{ key: 'bookmark', label: 'löschen' },
|
{ key: 'bookmark', label: 'löschen' },
|
||||||
],
|
],
|
||||||
itemsList: [],
|
itemsList: [],
|
||||||
massCreation: [],
|
itemsMassCreation: [],
|
||||||
radioSelectedMass: '',
|
radioSelectedMass: '',
|
||||||
criteria: '',
|
criteria: '',
|
||||||
creation: [null, null, null],
|
creation: [null, null, null],
|
||||||
@ -111,12 +113,12 @@ export default {
|
|||||||
findArr = this.itemsList.find((arr) => arr.id === e.id)
|
findArr = this.itemsList.find((arr) => arr.id === e.id)
|
||||||
index = this.itemsList.indexOf(findArr)
|
index = this.itemsList.indexOf(findArr)
|
||||||
this.itemsList.splice(index, 1)
|
this.itemsList.splice(index, 1)
|
||||||
this.massCreation.push(e)
|
this.itemsMassCreation.push(e)
|
||||||
break
|
break
|
||||||
case 'remove':
|
case 'remove':
|
||||||
findArr = this.massCreation.find((arr) => arr.id === e.id)
|
findArr = this.itemsMassCreation.find((arr) => arr.id === e.id)
|
||||||
index = this.massCreation.indexOf(findArr)
|
index = this.itemsMassCreation.indexOf(findArr)
|
||||||
this.massCreation.splice(index, 1)
|
this.itemsMassCreation.splice(index, 1)
|
||||||
this.itemsList.push(e)
|
this.itemsList.push(e)
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
@ -124,19 +126,19 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
updateRadioSelected(obj) {
|
// updateRadioSelected(obj) {
|
||||||
this.radioSelectedMass = obj[0]
|
// this.radioSelectedMass = obj[0]
|
||||||
},
|
// },
|
||||||
|
|
||||||
removeAllBookmark() {
|
removeAllBookmark() {
|
||||||
alert('remove all bookmarks')
|
alert('remove all bookmarks')
|
||||||
const index = 0
|
const index = 0
|
||||||
let i = 0
|
let i = 0
|
||||||
|
|
||||||
for (i; i < this.massCreation.length; i++) {
|
for (i; i < this.itemsMassCreation.length; i++) {
|
||||||
this.itemsList.push(this.massCreation[i])
|
this.itemsList.push(this.itemsMassCreation[i])
|
||||||
}
|
}
|
||||||
this.massCreation.splice(index, this.massCreation.length)
|
this.itemsMassCreation.splice(index, this.itemsMassCreation.length)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,7 +13,7 @@ const apolloQueryMock = jest.fn().mockResolvedValue({
|
|||||||
lastName: 'Bloxberg',
|
lastName: 'Bloxberg',
|
||||||
email: 'bibi@bloxberg.de',
|
email: 'bibi@bloxberg.de',
|
||||||
amount: 500,
|
amount: 500,
|
||||||
note: 'Danke für alles',
|
memo: 'Danke für alles',
|
||||||
date: new Date(),
|
date: new Date(),
|
||||||
moderator: 0,
|
moderator: 0,
|
||||||
},
|
},
|
||||||
@ -22,7 +22,7 @@ const apolloQueryMock = jest.fn().mockResolvedValue({
|
|||||||
lastName: 'Hotzenplotz',
|
lastName: 'Hotzenplotz',
|
||||||
email: 'raeuber@hotzenplotz.de',
|
email: 'raeuber@hotzenplotz.de',
|
||||||
amount: 1000000,
|
amount: 1000000,
|
||||||
note: 'Gut Ergatert',
|
memo: 'Gut Ergatert',
|
||||||
date: new Date(),
|
date: new Date(),
|
||||||
moderator: 0,
|
moderator: 0,
|
||||||
},
|
},
|
||||||
|
|||||||
@ -33,7 +33,7 @@ export default {
|
|||||||
return value + ' GDD'
|
return value + ' GDD'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ key: 'note', label: 'Text' },
|
{ key: 'memo', label: 'Text' },
|
||||||
{
|
{
|
||||||
key: 'date',
|
key: 'date',
|
||||||
label: 'Datum',
|
label: 'Datum',
|
||||||
|
|||||||
@ -21,6 +21,9 @@ export const mutations = {
|
|||||||
setOpenCreations: (state, openCreations) => {
|
setOpenCreations: (state, openCreations) => {
|
||||||
state.openCreations = openCreations
|
state.openCreations = openCreations
|
||||||
},
|
},
|
||||||
|
moderator: (state, moderator) => {
|
||||||
|
state.moderator = moderator
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
export const actions = {
|
export const actions = {
|
||||||
|
|||||||
22
backend/src/graphql/arg/UpdatePendingCreationArgs.ts
Normal file
22
backend/src/graphql/arg/UpdatePendingCreationArgs.ts
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import { ArgsType, Field, Int } from 'type-graphql'
|
||||||
|
|
||||||
|
@ArgsType()
|
||||||
|
export default class CreatePendingCreationArgs {
|
||||||
|
@Field(() => Int)
|
||||||
|
id: number
|
||||||
|
|
||||||
|
@Field(() => String)
|
||||||
|
email: string
|
||||||
|
|
||||||
|
@Field(() => Int)
|
||||||
|
amount: number
|
||||||
|
|
||||||
|
@Field(() => String)
|
||||||
|
memo: string
|
||||||
|
|
||||||
|
@Field(() => String)
|
||||||
|
creationDate: string
|
||||||
|
|
||||||
|
@Field(() => Int)
|
||||||
|
moderator: number
|
||||||
|
}
|
||||||
19
backend/src/graphql/model/UpdatePendingCreation.ts
Normal file
19
backend/src/graphql/model/UpdatePendingCreation.ts
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
import { ObjectType, Field } from 'type-graphql'
|
||||||
|
|
||||||
|
@ObjectType()
|
||||||
|
export class UpdatePendingCreation {
|
||||||
|
@Field(() => Date)
|
||||||
|
date: Date
|
||||||
|
|
||||||
|
@Field(() => String)
|
||||||
|
memo: string
|
||||||
|
|
||||||
|
@Field(() => Number)
|
||||||
|
amount: number
|
||||||
|
|
||||||
|
@Field(() => Number)
|
||||||
|
moderator: number
|
||||||
|
|
||||||
|
@Field(() => [Number])
|
||||||
|
creation: number[]
|
||||||
|
}
|
||||||
@ -12,6 +12,7 @@ export class User {
|
|||||||
*/
|
*/
|
||||||
constructor(json?: any) {
|
constructor(json?: any) {
|
||||||
if (json) {
|
if (json) {
|
||||||
|
this.id = json.id
|
||||||
this.email = json.email
|
this.email = json.email
|
||||||
this.firstName = json.first_name
|
this.firstName = json.first_name
|
||||||
this.lastName = json.last_name
|
this.lastName = json.last_name
|
||||||
@ -24,6 +25,9 @@ export class User {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Field(() => Number)
|
||||||
|
id: number
|
||||||
|
|
||||||
@Field(() => String)
|
@Field(() => String)
|
||||||
email: string
|
email: string
|
||||||
|
|
||||||
|
|||||||
@ -2,11 +2,13 @@ import { Resolver, Query, Arg, Args, Authorized, Mutation } from 'type-graphql'
|
|||||||
import { getCustomRepository, Raw } from 'typeorm'
|
import { getCustomRepository, Raw } from 'typeorm'
|
||||||
import { UserAdmin } from '../model/UserAdmin'
|
import { UserAdmin } from '../model/UserAdmin'
|
||||||
import { PendingCreation } from '../model/PendingCreation'
|
import { PendingCreation } from '../model/PendingCreation'
|
||||||
|
import { UpdatePendingCreation } from '../model/UpdatePendingCreation'
|
||||||
import { RIGHTS } from '../../auth/RIGHTS'
|
import { RIGHTS } from '../../auth/RIGHTS'
|
||||||
import { TransactionCreationRepository } from '../../typeorm/repository/TransactionCreation'
|
import { TransactionCreationRepository } from '../../typeorm/repository/TransactionCreation'
|
||||||
import { PendingCreationRepository } from '../../typeorm/repository/PendingCreation'
|
import { PendingCreationRepository } from '../../typeorm/repository/PendingCreation'
|
||||||
import { UserRepository } from '../../typeorm/repository/User'
|
import { UserRepository } from '../../typeorm/repository/User'
|
||||||
import CreatePendingCreationArgs from '../arg/CreatePendingCreationArgs'
|
import CreatePendingCreationArgs from '../arg/CreatePendingCreationArgs'
|
||||||
|
import UpdatePendingCreationArgs from '../arg/UpdatePendingCreationArgs'
|
||||||
import moment from 'moment'
|
import moment from 'moment'
|
||||||
import { LoginPendingTasksAdmin } from '@entity/LoginPendingTasksAdmin'
|
import { LoginPendingTasksAdmin } from '@entity/LoginPendingTasksAdmin'
|
||||||
|
|
||||||
@ -30,6 +32,7 @@ export class AdminResolver {
|
|||||||
return adminUsers
|
return adminUsers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Authorized([RIGHTS.SEARCH_USERS])
|
||||||
@Mutation(() => [Number])
|
@Mutation(() => [Number])
|
||||||
async createPendingCreation(
|
async createPendingCreation(
|
||||||
@Args() { email, amount, memo, creationDate, moderator }: CreatePendingCreationArgs,
|
@Args() { email, amount, memo, creationDate, moderator }: CreatePendingCreationArgs,
|
||||||
@ -54,6 +57,52 @@ export class AdminResolver {
|
|||||||
return await getUserCreations(user.id)
|
return await getUserCreations(user.id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Authorized([RIGHTS.SEARCH_USERS])
|
||||||
|
@Mutation(() => UpdatePendingCreation)
|
||||||
|
async updatePendingCreation(
|
||||||
|
@Args() { id, email, amount, memo, creationDate, moderator }: UpdatePendingCreationArgs,
|
||||||
|
): Promise<UpdatePendingCreation> {
|
||||||
|
const userRepository = getCustomRepository(UserRepository)
|
||||||
|
const user = await userRepository.findByEmail(email)
|
||||||
|
|
||||||
|
const pendingCreationRepository = getCustomRepository(PendingCreationRepository)
|
||||||
|
const updatedCreation = await pendingCreationRepository.findOneOrFail({ id })
|
||||||
|
|
||||||
|
if (updatedCreation.userId !== user.id)
|
||||||
|
throw new Error('user of the pending creation and send user does not correspond')
|
||||||
|
|
||||||
|
updatedCreation.amount = BigInt(amount * 10000)
|
||||||
|
updatedCreation.memo = memo
|
||||||
|
updatedCreation.date = new Date(creationDate)
|
||||||
|
updatedCreation.moderator = moderator
|
||||||
|
|
||||||
|
await pendingCreationRepository.save(updatedCreation)
|
||||||
|
const result = new UpdatePendingCreation()
|
||||||
|
result.amount = parseInt(updatedCreation.amount.toString())
|
||||||
|
result.memo = updatedCreation.memo
|
||||||
|
result.date = updatedCreation.date
|
||||||
|
result.moderator = updatedCreation.moderator
|
||||||
|
result.creation = await getUserCreations(user.id)
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
// const creations = await getUserCreations(user.id)
|
||||||
|
// const creationDateObj = new Date(creationDate)
|
||||||
|
// if (isCreationValid(creations, amount, creationDateObj)) {
|
||||||
|
// const pendingCreationRepository = getCustomRepository(PendingCreationRepository)
|
||||||
|
// const loginPendingTaskAdmin = pendingCreationRepository.create()
|
||||||
|
// loginPendingTaskAdmin.userId = user.id
|
||||||
|
// loginPendingTaskAdmin.amount = BigInt(amount * 10000)
|
||||||
|
// loginPendingTaskAdmin.created = new Date()
|
||||||
|
// loginPendingTaskAdmin.date = creationDateObj
|
||||||
|
// loginPendingTaskAdmin.memo = memo
|
||||||
|
// loginPendingTaskAdmin.moderator = moderator
|
||||||
|
//
|
||||||
|
// pendingCreationRepository.save(loginPendingTaskAdmin)
|
||||||
|
// }
|
||||||
|
// return await getUserCreations(user.id)
|
||||||
|
}
|
||||||
|
|
||||||
@Query(() => [PendingCreation])
|
@Query(() => [PendingCreation])
|
||||||
async getPendingCreations(): Promise<PendingCreation[]> {
|
async getPendingCreations(): Promise<PendingCreation[]> {
|
||||||
const pendingCreationRepository = getCustomRepository(PendingCreationRepository)
|
const pendingCreationRepository = getCustomRepository(PendingCreationRepository)
|
||||||
|
|||||||
@ -207,6 +207,7 @@ export class UserResolver {
|
|||||||
const loginUserRepository = getCustomRepository(LoginUserRepository)
|
const loginUserRepository = getCustomRepository(LoginUserRepository)
|
||||||
const loginUser = await loginUserRepository.findByEmail(userEntity.email)
|
const loginUser = await loginUserRepository.findByEmail(userEntity.email)
|
||||||
const user = new User()
|
const user = new User()
|
||||||
|
user.id = userEntity.id
|
||||||
user.email = userEntity.email
|
user.email = userEntity.email
|
||||||
user.firstName = userEntity.firstName
|
user.firstName = userEntity.firstName
|
||||||
user.lastName = userEntity.lastName
|
user.lastName = userEntity.lastName
|
||||||
@ -276,6 +277,7 @@ export class UserResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const user = new User()
|
const user = new User()
|
||||||
|
user.id = userEntity.id
|
||||||
user.email = email
|
user.email = email
|
||||||
user.firstName = loginUser.firstName
|
user.firstName = loginUser.firstName
|
||||||
user.lastName = loginUser.lastName
|
user.lastName = loginUser.lastName
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user