From 173d8e86902639c0d2b2e9d73fc76acc34774ce1 Mon Sep 17 00:00:00 2001 From: ogerly Date: Tue, 31 Jan 2023 11:29:39 +0100 Subject: [PATCH 01/74] change text for gdd_per_link.choose-amount --- frontend/src/locales/de.json | 2 +- frontend/src/locales/en.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index a51b48e37..b4623dec5 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -164,7 +164,7 @@ "GDD": "GDD", "gddKonto": "GDD Konto", "gdd_per_link": { - "choose-amount": "Wähle einen Betrag aus, welchen du per Link versenden möchtest. Du kannst auch noch eine Nachricht eintragen. Beim Klick „Jetzt generieren“ wird ein Link erstellt, den du versenden kannst.", + "choose-amount": "Wähle einen Betrag aus, welchen du per Link versenden möchtest, und trage eine Nachricht ein. Die Nachricht ist Pflichtfeld.", "copy-link": "Link kopieren", "copy-link-with-text": "Link und Text kopieren", "created": "Der Link wurde erstellt!", diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index ce65ac9af..011a96de0 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -164,7 +164,7 @@ "GDD": "GDD", "gddKonto": "GDD Konto", "gdd_per_link": { - "choose-amount": "Select an amount that you would like to send via link. You can also enter a message. Click 'Generate now' to create a link that you can share.", + "choose-amount": "Select an amount you want to send via link and enter a message. The message is mandatory.", "copy-link": "Copy link", "copy-link-with-text": "Copy link and text", "created": "Link was created!", From d3b24621b21dd1a9b8ea65b9cb40a4a8ae20bccc Mon Sep 17 00:00:00 2001 From: ogerly Date: Wed, 1 Feb 2023 12:26:52 +0100 Subject: [PATCH 02/74] simple disabled function on submit send --- frontend/src/components/GddSend/TransactionForm.vue | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/GddSend/TransactionForm.vue b/frontend/src/components/GddSend/TransactionForm.vue index 5efa6012b..cb2850563 100644 --- a/frontend/src/components/GddSend/TransactionForm.vue +++ b/frontend/src/components/GddSend/TransactionForm.vue @@ -105,7 +105,7 @@ - + {{ $t('form.check_now') }} @@ -177,6 +177,17 @@ export default { }, }, computed: { + disabled() { + if ( + this.form.email.length > 5 && + parseInt(this.form.amount) <= parseInt(this.balance) && + this.form.memo.length > 5 && + this.form.memo.length <= 255 + ) { + return false + } + return true + }, isBalanceDisabled() { return this.balance <= 0 ? 'disabled' : false }, From 214fbe0a5c73cdec97d75d4e1d271cd42155fda9 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Thu, 2 Feb 2023 03:55:01 +0100 Subject: [PATCH 03/74] remove unused constructor --- backend/src/event/Event.ts | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/backend/src/event/Event.ts b/backend/src/event/Event.ts index 09a31d4e0..6a1233224 100644 --- a/backend/src/event/Event.ts +++ b/backend/src/event/Event.ts @@ -1,4 +1,3 @@ -import { EventProtocol } from '@entity/EventProtocol' import decimal from 'decimal.js-light' import { EventProtocolType } from './EventProtocolType' @@ -87,21 +86,6 @@ export class EventDeleteContributionLink extends EventBasicCt {} export class EventUpdateContributionLink extends EventBasicCt {} export class Event { - constructor() - constructor(event?: EventProtocol) { - if (event) { - this.id = event.id - this.type = event.type - this.createdAt = event.createdAt - this.userId = event.userId - this.xUserId = event.xUserId - this.xCommunityId = event.xCommunityId - this.transactionId = event.transactionId - this.contributionId = event.contributionId - this.amount = event.amount - } - } - public setEventBasic(): Event { this.type = EventProtocolType.BASIC this.createdAt = new Date() From 2c7e36d7e223b526dba0dd940c6737673d07315b Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Thu, 2 Feb 2023 03:55:26 +0100 Subject: [PATCH 04/74] fix nullable fields in database entity --- .../EventProtocol.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/database/entity/0050-add_messageId_to_event_protocol/EventProtocol.ts b/database/entity/0050-add_messageId_to_event_protocol/EventProtocol.ts index d4dbc526f..a61895502 100644 --- a/database/entity/0050-add_messageId_to_event_protocol/EventProtocol.ts +++ b/database/entity/0050-add_messageId_to_event_protocol/EventProtocol.ts @@ -17,16 +17,16 @@ export class EventProtocol extends BaseEntity { userId: number @Column({ name: 'x_user_id', unsigned: true, nullable: true }) - xUserId: number + xUserId: number | null @Column({ name: 'x_community_id', unsigned: true, nullable: true }) - xCommunityId: number + xCommunityId: number | null @Column({ name: 'transaction_id', unsigned: true, nullable: true }) - transactionId: number + transactionId: number | null @Column({ name: 'contribution_id', unsigned: true, nullable: true }) - contributionId: number + contributionId: number | null @Column({ type: 'decimal', @@ -35,8 +35,8 @@ export class EventProtocol extends BaseEntity { nullable: true, transformer: DecimalTransformer, }) - amount: Decimal + amount: Decimal | null @Column({ name: 'message_id', unsigned: true, nullable: true }) - messageId: number + messageId: number | null } From ab2535abea04e9126c296848d2351ceeaf653a4b Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Thu, 2 Feb 2023 03:55:47 +0100 Subject: [PATCH 05/74] simplify writeEvent --- backend/src/event/EventProtocolEmitter.ts | 48 ++++++------------- .../graphql/resolver/ContributionResolver.ts | 22 ++++----- .../graphql/resolver/TransactionResolver.ts | 8 ++-- backend/src/graphql/resolver/UserResolver.ts | 20 ++++---- 4 files changed, 34 insertions(+), 64 deletions(-) diff --git a/backend/src/event/EventProtocolEmitter.ts b/backend/src/event/EventProtocolEmitter.ts index b4b22bce1..e22e6218b 100644 --- a/backend/src/event/EventProtocolEmitter.ts +++ b/backend/src/event/EventProtocolEmitter.ts @@ -3,39 +3,21 @@ import { backendLogger as logger } from '@/server/logger' import { EventProtocol } from '@entity/EventProtocol' import CONFIG from '@/config' -class EventProtocolEmitter { - /* }extends EventEmitter { */ - private events: Event[] - - /* - public addEvent(event: Event) { - this.events.push(event) +export const writeEvent = async (event: Event): Promise => { + if (CONFIG.EVENT_PROTOCOL_DISABLED) { + logger.info('EventProtocol is disabled', CONFIG.EVENT_PROTOCOL_DISABLED) + return null } - public getEvents(): Event[] { - return this.events - } - */ - - public isDisabled() { - logger.info(`EventProtocol - isDisabled=${CONFIG.EVENT_PROTOCOL_DISABLED}`) - return CONFIG.EVENT_PROTOCOL_DISABLED === true - } - - public async writeEvent(event: Event): Promise { - if (!eventProtocol.isDisabled()) { - logger.info(`writeEvent(${JSON.stringify(event)})`) - const dbEvent = new EventProtocol() - dbEvent.type = event.type - dbEvent.createdAt = event.createdAt - dbEvent.userId = event.userId - if (event.xUserId) dbEvent.xUserId = event.xUserId - if (event.xCommunityId) dbEvent.xCommunityId = event.xCommunityId - if (event.contributionId) dbEvent.contributionId = event.contributionId - if (event.transactionId) dbEvent.transactionId = event.transactionId - if (event.amount) dbEvent.amount = event.amount - await dbEvent.save() - } - } + logger.info(`writeEvent(${JSON.stringify(event)})`) + const dbEvent = new EventProtocol() + dbEvent.type = event.type + dbEvent.createdAt = event.createdAt + dbEvent.userId = event.userId + dbEvent.xUserId = event.xUserId || null + dbEvent.xCommunityId = event.xCommunityId || null + dbEvent.contributionId = event.contributionId || null + dbEvent.transactionId = event.transactionId || null + dbEvent.amount = event.amount || null + return dbEvent.save() } -export const eventProtocol = new EventProtocolEmitter() diff --git a/backend/src/graphql/resolver/ContributionResolver.ts b/backend/src/graphql/resolver/ContributionResolver.ts index 0c758b52b..b5357709c 100644 --- a/backend/src/graphql/resolver/ContributionResolver.ts +++ b/backend/src/graphql/resolver/ContributionResolver.ts @@ -46,7 +46,7 @@ import { EventAdminContributionDelete, EventAdminContributionUpdate, } from '@/event/Event' -import { eventProtocol } from '@/event/EventProtocolEmitter' +import { writeEvent } from '@/event/EventProtocolEmitter' import { calculateDecay } from '@/util/decay' import { sendContributionConfirmedEmail, @@ -97,7 +97,7 @@ export class ContributionResolver { eventCreateContribution.userId = user.id eventCreateContribution.amount = amount eventCreateContribution.contributionId = contribution.id - await eventProtocol.writeEvent(event.setEventContributionCreate(eventCreateContribution)) + await writeEvent(event.setEventContributionCreate(eventCreateContribution)) return new UnconfirmedContribution(contribution, user, creations) } @@ -133,7 +133,7 @@ export class ContributionResolver { eventDeleteContribution.userId = user.id eventDeleteContribution.contributionId = contribution.id eventDeleteContribution.amount = contribution.amount - await eventProtocol.writeEvent(event.setEventContributionDelete(eventDeleteContribution)) + await writeEvent(event.setEventContributionDelete(eventDeleteContribution)) const res = await contribution.softRemove() return !!res @@ -279,7 +279,7 @@ export class ContributionResolver { eventUpdateContribution.userId = user.id eventUpdateContribution.contributionId = contributionId eventUpdateContribution.amount = amount - await eventProtocol.writeEvent(event.setEventContributionUpdate(eventUpdateContribution)) + await writeEvent(event.setEventContributionUpdate(eventUpdateContribution)) return new UnconfirmedContribution(contributionToUpdate, user, creations) } @@ -346,9 +346,7 @@ export class ContributionResolver { eventAdminCreateContribution.userId = moderator.id eventAdminCreateContribution.amount = amount eventAdminCreateContribution.contributionId = contribution.id - await eventProtocol.writeEvent( - event.setEventAdminContributionCreate(eventAdminCreateContribution), - ) + await writeEvent(event.setEventAdminContributionCreate(eventAdminCreateContribution)) return getUserCreation(emailContact.userId, clientTimezoneOffset) } @@ -458,9 +456,7 @@ export class ContributionResolver { eventAdminContributionUpdate.userId = user.id eventAdminContributionUpdate.amount = amount eventAdminContributionUpdate.contributionId = contributionToUpdate.id - await eventProtocol.writeEvent( - event.setEventAdminContributionUpdate(eventAdminContributionUpdate), - ) + await writeEvent(event.setEventAdminContributionUpdate(eventAdminContributionUpdate)) return result } @@ -538,9 +534,7 @@ export class ContributionResolver { eventAdminContributionDelete.userId = contribution.userId eventAdminContributionDelete.amount = contribution.amount eventAdminContributionDelete.contributionId = contribution.id - await eventProtocol.writeEvent( - event.setEventAdminContributionDelete(eventAdminContributionDelete), - ) + await writeEvent(event.setEventAdminContributionDelete(eventAdminContributionDelete)) sendContributionDeniedEmail({ firstName: user.firstName, lastName: user.lastName, @@ -668,7 +662,7 @@ export class ContributionResolver { eventContributionConfirm.userId = user.id eventContributionConfirm.amount = contribution.amount eventContributionConfirm.contributionId = contribution.id - await eventProtocol.writeEvent(event.setEventContributionConfirm(eventContributionConfirm)) + await writeEvent(event.setEventContributionConfirm(eventContributionConfirm)) } finally { releaseLock() } diff --git a/backend/src/graphql/resolver/TransactionResolver.ts b/backend/src/graphql/resolver/TransactionResolver.ts index 2f97596b2..b75782abf 100644 --- a/backend/src/graphql/resolver/TransactionResolver.ts +++ b/backend/src/graphql/resolver/TransactionResolver.ts @@ -30,7 +30,7 @@ import { sendTransactionReceivedEmail, } from '@/emails/sendEmailVariants' import { Event, EventTransactionReceive, EventTransactionSend } from '@/event/Event' -import { eventProtocol } from '@/event/EventProtocolEmitter' +import { writeEvent } from '@/event/EventProtocolEmitter' import { BalanceResolver } from './BalanceResolver' import { MEMO_MAX_CHARS, MEMO_MIN_CHARS } from './const/const' @@ -144,16 +144,14 @@ export const executeTransaction = async ( eventTransactionSend.xUserId = transactionSend.linkedUserId eventTransactionSend.transactionId = transactionSend.id eventTransactionSend.amount = transactionSend.amount.mul(-1) - await eventProtocol.writeEvent(new Event().setEventTransactionSend(eventTransactionSend)) + await writeEvent(new Event().setEventTransactionSend(eventTransactionSend)) const eventTransactionReceive = new EventTransactionReceive() eventTransactionReceive.userId = transactionReceive.userId eventTransactionReceive.xUserId = transactionReceive.linkedUserId eventTransactionReceive.transactionId = transactionReceive.id eventTransactionReceive.amount = transactionReceive.amount - await eventProtocol.writeEvent( - new Event().setEventTransactionReceive(eventTransactionReceive), - ) + await writeEvent(new Event().setEventTransactionReceive(eventTransactionReceive)) } catch (e) { await queryRunner.rollbackTransaction() logger.error(`Transaction was not successful: ${e}`) diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index 94b9265b3..aa56e81bc 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -48,7 +48,7 @@ import { klicktippNewsletterStateMiddleware } from '@/middleware/klicktippMiddle import { klicktippSignIn } from '@/apis/KlicktippController' import { RIGHTS } from '@/auth/RIGHTS' import { hasElopageBuys } from '@/util/hasElopageBuys' -import { eventProtocol } from '@/event/EventProtocolEmitter' +import { writeEvent } from '@/event/EventProtocolEmitter' import { Event, EventLogin, @@ -181,7 +181,7 @@ export class UserResolver { }) const ev = new EventLogin() ev.userId = user.id - eventProtocol.writeEvent(new Event().setEventLogin(ev)) + writeEvent(new Event().setEventLogin(ev)) logger.info(`successful Login: ${JSON.stringify(user, null, 2)}`) return user } @@ -253,9 +253,7 @@ export class UserResolver { }) const eventSendAccountMultiRegistrationEmail = new EventSendAccountMultiRegistrationEmail() eventSendAccountMultiRegistrationEmail.userId = foundUser.id - eventProtocol.writeEvent( - event.setEventSendConfirmationEmail(eventSendAccountMultiRegistrationEmail), - ) + writeEvent(event.setEventSendConfirmationEmail(eventSendAccountMultiRegistrationEmail)) logger.info( `sendAccountMultiRegistrationEmail by ${firstName} ${lastName} to ${foundUser.firstName} ${foundUser.lastName} <${email}>`, ) @@ -349,7 +347,7 @@ export class UserResolver { }) logger.info(`sendAccountActivationEmail of ${firstName}.${lastName} to ${email}`) eventSendConfirmEmail.userId = dbUser.id - eventProtocol.writeEvent(event.setEventSendConfirmationEmail(eventSendConfirmEmail)) + writeEvent(event.setEventSendConfirmationEmail(eventSendConfirmEmail)) if (!emailSent) { logger.debug(`Account confirmation link: ${activationLink}`) @@ -368,10 +366,10 @@ export class UserResolver { if (redeemCode) { eventRedeemRegister.userId = dbUser.id - await eventProtocol.writeEvent(event.setEventRedeemRegister(eventRedeemRegister)) + await writeEvent(event.setEventRedeemRegister(eventRedeemRegister)) } else { eventRegister.userId = dbUser.id - await eventProtocol.writeEvent(event.setEventRegister(eventRegister)) + await writeEvent(event.setEventRegister(eventRegister)) } return new User(dbUser) @@ -507,7 +505,7 @@ export class UserResolver { const eventActivateAccount = new EventActivateAccount() eventActivateAccount.userId = user.id - eventProtocol.writeEvent(event.setEventActivateAccount(eventActivateAccount)) + writeEvent(event.setEventActivateAccount(eventActivateAccount)) } catch (e) { await queryRunner.rollbackTransaction() logger.error('Error on writing User and UserContact data:' + e) @@ -874,9 +872,7 @@ export class UserResolver { const event = new Event() const eventSendConfirmationEmail = new EventSendConfirmationEmail() eventSendConfirmationEmail.userId = user.id - await eventProtocol.writeEvent( - event.setEventSendConfirmationEmail(eventSendConfirmationEmail), - ) + await writeEvent(event.setEventSendConfirmationEmail(eventSendConfirmationEmail)) } return true From f577e3258a1957e7312d16a8bdd5a60f97dc22d6 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Thu, 2 Feb 2023 04:04:05 +0100 Subject: [PATCH 06/74] also make older entity models nullable --- .../0043-add_event_protocol_table/EventProtocol.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/database/entity/0043-add_event_protocol_table/EventProtocol.ts b/database/entity/0043-add_event_protocol_table/EventProtocol.ts index 72470d2ed..c05651df2 100644 --- a/database/entity/0043-add_event_protocol_table/EventProtocol.ts +++ b/database/entity/0043-add_event_protocol_table/EventProtocol.ts @@ -14,19 +14,19 @@ export class EventProtocol extends BaseEntity { createdAt: Date @Column({ name: 'user_id', unsigned: true, nullable: false }) - userId: number + userId: number | null @Column({ name: 'x_user_id', unsigned: true, nullable: true }) - xUserId: number + xUserId: number | null @Column({ name: 'x_community_id', unsigned: true, nullable: true }) - xCommunityId: number + xCommunityId: number | null @Column({ name: 'transaction_id', unsigned: true, nullable: true }) - transactionId: number + transactionId: number | null @Column({ name: 'contribution_id', unsigned: true, nullable: true }) - contributionId: number + contributionId: number | null @Column({ type: 'decimal', @@ -35,5 +35,5 @@ export class EventProtocol extends BaseEntity { nullable: true, transformer: DecimalTransformer, }) - amount: Decimal + amount: Decimal | null } From 357588a6808a1d2309046d3906186e2683191998 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Thu, 2 Feb 2023 04:08:07 +0100 Subject: [PATCH 07/74] define type properly --- .../0043-add_event_protocol_table/EventProtocol.ts | 12 ++++++------ .../EventProtocol.ts | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/database/entity/0043-add_event_protocol_table/EventProtocol.ts b/database/entity/0043-add_event_protocol_table/EventProtocol.ts index c05651df2..72470d2ed 100644 --- a/database/entity/0043-add_event_protocol_table/EventProtocol.ts +++ b/database/entity/0043-add_event_protocol_table/EventProtocol.ts @@ -14,19 +14,19 @@ export class EventProtocol extends BaseEntity { createdAt: Date @Column({ name: 'user_id', unsigned: true, nullable: false }) - userId: number | null + userId: number @Column({ name: 'x_user_id', unsigned: true, nullable: true }) - xUserId: number | null + xUserId: number @Column({ name: 'x_community_id', unsigned: true, nullable: true }) - xCommunityId: number | null + xCommunityId: number @Column({ name: 'transaction_id', unsigned: true, nullable: true }) - transactionId: number | null + transactionId: number @Column({ name: 'contribution_id', unsigned: true, nullable: true }) - contributionId: number | null + contributionId: number @Column({ type: 'decimal', @@ -35,5 +35,5 @@ export class EventProtocol extends BaseEntity { nullable: true, transformer: DecimalTransformer, }) - amount: Decimal | null + amount: Decimal } diff --git a/database/entity/0050-add_messageId_to_event_protocol/EventProtocol.ts b/database/entity/0050-add_messageId_to_event_protocol/EventProtocol.ts index a61895502..e457cc0a3 100644 --- a/database/entity/0050-add_messageId_to_event_protocol/EventProtocol.ts +++ b/database/entity/0050-add_messageId_to_event_protocol/EventProtocol.ts @@ -16,16 +16,16 @@ export class EventProtocol extends BaseEntity { @Column({ name: 'user_id', unsigned: true, nullable: false }) userId: number - @Column({ name: 'x_user_id', unsigned: true, nullable: true }) + @Column({ name: 'x_user_id', type: 'int', unsigned: true, nullable: true }) xUserId: number | null - @Column({ name: 'x_community_id', unsigned: true, nullable: true }) + @Column({ name: 'x_community_id', type: 'int', unsigned: true, nullable: true }) xCommunityId: number | null - @Column({ name: 'transaction_id', unsigned: true, nullable: true }) + @Column({ name: 'transaction_id', type: 'int', unsigned: true, nullable: true }) transactionId: number | null - @Column({ name: 'contribution_id', unsigned: true, nullable: true }) + @Column({ name: 'contribution_id', type: 'int', unsigned: true, nullable: true }) contributionId: number | null @Column({ @@ -37,6 +37,6 @@ export class EventProtocol extends BaseEntity { }) amount: Decimal | null - @Column({ name: 'message_id', unsigned: true, nullable: true }) + @Column({ name: 'message_id', type: 'int', unsigned: true, nullable: true }) messageId: number | null } From 7288bfc7dc8e9c1fa6bee0d8549f70e3683991e4 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Thu, 2 Feb 2023 04:20:36 +0100 Subject: [PATCH 08/74] properly use logger --- backend/src/event/EventProtocolEmitter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/event/EventProtocolEmitter.ts b/backend/src/event/EventProtocolEmitter.ts index e22e6218b..9cde4939f 100644 --- a/backend/src/event/EventProtocolEmitter.ts +++ b/backend/src/event/EventProtocolEmitter.ts @@ -9,7 +9,7 @@ export const writeEvent = async (event: Event): Promise => return null } - logger.info(`writeEvent(${JSON.stringify(event)})`) + logger.info('writeEvent', event) const dbEvent = new EventProtocol() dbEvent.type = event.type dbEvent.createdAt = event.createdAt From 63b6e9491ace432adb9cfc9b4bb3d7f0d7a0af0b Mon Sep 17 00:00:00 2001 From: Alexander Friedland Date: Thu, 2 Feb 2023 10:33:51 +0100 Subject: [PATCH 09/74] Update frontend/src/locales/de.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Wolfgang Huß --- frontend/src/locales/de.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index b4623dec5..c00646e50 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -164,7 +164,7 @@ "GDD": "GDD", "gddKonto": "GDD Konto", "gdd_per_link": { - "choose-amount": "Wähle einen Betrag aus, welchen du per Link versenden möchtest, und trage eine Nachricht ein. Die Nachricht ist Pflichtfeld.", + "choose-amount": "Wähle einen Betrag aus, welchen du per Link versenden möchtest, und trage eine Nachricht ein. Die Nachricht ist ein Pflichtfeld.", "copy-link": "Link kopieren", "copy-link-with-text": "Link und Text kopieren", "created": "Der Link wurde erstellt!", From 4c4b058c7a7db220c874bbf1a9f504f5239ca084 Mon Sep 17 00:00:00 2001 From: ogerly Date: Thu, 2 Feb 2023 17:30:53 +0100 Subject: [PATCH 10/74] add show memo by before startblock --- frontend/src/components/DecayInformations/DecayInformation.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/components/DecayInformations/DecayInformation.vue b/frontend/src/components/DecayInformations/DecayInformation.vue index 16624fe17..a1379a9b4 100644 --- a/frontend/src/components/DecayInformations/DecayInformation.vue +++ b/frontend/src/components/DecayInformations/DecayInformation.vue @@ -1,5 +1,6 @@