Merge branch 'master' into eslint-plugin-type-graphql-fixes

This commit is contained in:
Ulf Gebhardt 2023-03-10 12:12:59 +01:00 committed by GitHub
commit b4e324ce0a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 127 additions and 77 deletions

View File

@ -4,8 +4,28 @@ All notable changes to this project will be documented in this file. Dates are d
Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
#### [1.19.1](https://github.com/gradido/gradido/compare/1.19.0...1.19.1)
- fix(frontend): admin question clickable [`#2810`](https://github.com/gradido/gradido/pull/2810)
- refactor(frontend): change b-img to b-icon send [`#2809`](https://github.com/gradido/gradido/pull/2809)
- fix(admin): update openCreation in case of tab open. [`#2806`](https://github.com/gradido/gradido/pull/2806)
- fix(admin): english language for contributions in admin [`#2804`](https://github.com/gradido/gradido/pull/2804)
- refactor(admin): event buttons for myself turned off in open contributions [`#2760`](https://github.com/gradido/gradido/pull/2760)
- fix(admin): contribution page [`#2794`](https://github.com/gradido/gradido/pull/2794)
- fix(frontend): info.svg [`#2798`](https://github.com/gradido/gradido/pull/2798)
- fix(backend): add relation messages to database query [`#2795`](https://github.com/gradido/gradido/pull/2795)
- fix(admin): header and menu [`#2793`](https://github.com/gradido/gradido/pull/2793)
- fix(frontend): send gdd - change first submit button text to 'Check Now' [`#2774`](https://github.com/gradido/gradido/pull/2774)
- refactor(frontend): creations generated by link NL [`#2771`](https://github.com/gradido/gradido/pull/2771)
- refactor(frontend): creations generated by link (FR) + (NL) [`#2770`](https://github.com/gradido/gradido/pull/2770)
- refactor(frontend): update German locales [`#2765`](https://github.com/gradido/gradido/pull/2765)
- refactor(backend): use find contributions helper for list contributions [`#2762`](https://github.com/gradido/gradido/pull/2762)
#### [1.19.0](https://github.com/gradido/gradido/compare/1.18.2...1.19.0) #### [1.19.0](https://github.com/gradido/gradido/compare/1.18.2...1.19.0)
> 7 March 2023
- chore(release): version 1.19.0 [`#2786`](https://github.com/gradido/gradido/pull/2786)
- fix(frontend): change contribution design [`#2731`](https://github.com/gradido/gradido/pull/2731) - fix(frontend): change contribution design [`#2731`](https://github.com/gradido/gradido/pull/2731)
- refactor(frontend): commnity navbar- & unauthenticated b-gradido styles [`#2732`](https://github.com/gradido/gradido/pull/2732) - refactor(frontend): commnity navbar- & unauthenticated b-gradido styles [`#2732`](https://github.com/gradido/gradido/pull/2732)
- fix(database): change downwards migration to delete entries with last_announced_at IS NULL [`#2767`](https://github.com/gradido/gradido/pull/2767) - fix(database): change downwards migration to delete entries with last_announced_at IS NULL [`#2767`](https://github.com/gradido/gradido/pull/2767)

View File

@ -3,7 +3,7 @@
"description": "Administraion Interface for Gradido", "description": "Administraion Interface for Gradido",
"main": "index.js", "main": "index.js",
"author": "Moriz Wahl", "author": "Moriz Wahl",
"version": "1.19.0", "version": "1.19.1",
"license": "Apache-2.0", "license": "Apache-2.0",
"private": false, "private": false,
"scripts": { "scripts": {

View File

@ -10,6 +10,7 @@ describe('ContributionMessagesList', () => {
const propsData = { const propsData = {
contributionId: 42, contributionId: 42,
contributionState: 'PENDING',
} }
const mocks = { const mocks = {

View File

@ -1,18 +1,19 @@
<template> <template>
<div class="contribution-messages-list"> <div class="contribution-messages-list">
<b-container> <b-container>
{{ messages.lenght }}
<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 :message="message" /> <contribution-messages-list-item :message="message" />
</div> </div>
</b-container> </b-container>
<div v-if="contributionState === 'PENDING' || contributionState === 'IN_PROGRESS'">
<contribution-messages-formular <contribution-messages-formular
:contributionId="contributionId" :contributionId="contributionId"
@get-list-contribution-messages="getListContributionMessages" @get-list-contribution-messages="getListContributionMessages"
@update-state="updateState" @update-state="updateState"
/> />
</div> </div>
</div>
</template> </template>
<script> <script>
import ContributionMessagesListItem from './slots/ContributionMessagesListItem' import ContributionMessagesListItem from './slots/ContributionMessagesListItem'
@ -30,6 +31,10 @@ export default {
type: Number, type: Number,
required: true, required: true,
}, },
contributionState: {
type: String,
required: true,
},
}, },
data() { data() {
return { return {

View File

@ -13,6 +13,7 @@
<b-icon :icon="getStatusIcon(row.item.state)"></b-icon> <b-icon :icon="getStatusIcon(row.item.state)"></b-icon>
</template> </template>
<template #cell(bookmark)="row"> <template #cell(bookmark)="row">
<div v-if="!myself(row.item)">
<b-button <b-button
variant="danger" variant="danger"
size="md" size="md"
@ -21,9 +22,10 @@
> >
<b-icon icon="trash" variant="light"></b-icon> <b-icon icon="trash" variant="light"></b-icon>
</b-button> </b-button>
</div>
</template> </template>
<template #cell(editCreation)="row"> <template #cell(editCreation)="row">
<div v-if="$store.state.moderator.id !== row.item.userId"> <div v-if="!myself(row.item)">
<b-button <b-button
v-if="row.item.moderator" v-if="row.item.moderator"
variant="info" variant="info"
@ -36,30 +38,26 @@
<b-button v-else @click="rowToggleDetails(row, 0)"> <b-button v-else @click="rowToggleDetails(row, 0)">
<b-icon icon="chat-dots"></b-icon> <b-icon icon="chat-dots"></b-icon>
<b-icon <b-icon
v-if="row.item.state === 'PENDING' && row.item.messageCount > 0" v-if="row.item.state === 'PENDING' && row.item.messagesCount > 0"
icon="exclamation-circle-fill" icon="exclamation-circle-fill"
variant="warning" variant="warning"
></b-icon> ></b-icon>
<b-icon <b-icon
v-if="row.item.state === 'IN_PROGRESS' && row.item.messageCount > 0" v-if="row.item.state === 'IN_PROGRESS' && row.item.messagesCount > 0"
icon="question-diamond" icon="question-diamond"
variant="light" variant="warning"
class="pl-1"
></b-icon> ></b-icon>
</b-button> </b-button>
</div> </div>
</template> </template>
<template #cell(reActive)>
<b-button variant="warning" size="md" class="mr-2">
<b-icon icon="arrow-up" variant="light"></b-icon>
</b-button>
</template>
<template #cell(chatCreation)="row"> <template #cell(chatCreation)="row">
<b-button v-if="row.item.messagesCount > 0" @click="rowToggleDetails(row, 0)"> <b-button v-if="row.item.messagesCount > 0" @click="rowToggleDetails(row, 0)">
<b-icon icon="chat-dots"></b-icon> <b-icon icon="chat-dots"></b-icon>
</b-button> </b-button>
</template> </template>
<template #cell(deny)="row"> <template #cell(deny)="row">
<div v-if="$store.state.moderator.id !== row.item.userId"> <div v-if="!myself(row.item)">
<b-button <b-button
variant="warning" variant="warning"
size="md" size="md"
@ -71,7 +69,7 @@
</div> </div>
</template> </template>
<template #cell(confirm)="row"> <template #cell(confirm)="row">
<div v-if="$store.state.moderator.id !== row.item.userId"> <div v-if="!myself(row.item)">
<b-button <b-button
variant="success" variant="success"
size="md" size="md"
@ -104,6 +102,7 @@
<div v-else> <div v-else>
<contribution-messages-list <contribution-messages-list
:contributionId="row.item.id" :contributionId="row.item.id"
:contributionState="row.item.state"
@update-state="updateState" @update-state="updateState"
@update-user-data="updateUserData" @update-user-data="updateUserData"
/> />
@ -158,13 +157,22 @@ export default {
} }
}, },
methods: { methods: {
myself(item) {
return (
`${item.firstName} ${item.lastName}` ===
`${this.$store.state.moderator.firstName} ${this.$store.state.moderator.lastName}`
)
},
getStatusIcon(status) { getStatusIcon(status) {
return iconMap[status] ? iconMap[status] : 'default-icon' return iconMap[status] ? iconMap[status] : 'default-icon'
}, },
rowClass(item, type) { rowClass(item, type) {
if (!item || type !== 'row') return if (!item || type !== 'row') return
if (item.state === 'CONFIRMED') return 'table-success' if (item.state === 'CONFIRMED') return 'table-success'
if (item.state === 'DENIED') return 'table-info' if (item.state === 'DENIED') return 'table-warning'
if (item.state === 'DELETED') return 'table-danger'
if (item.state === 'IN_PROGRESS') return 'table-primary'
if (item.state === 'PENDING') return 'table-primary'
}, },
updateCreationData(data) { updateCreationData(data) {
const row = data.row const row = data.row

View File

@ -63,7 +63,6 @@
"deleted_user": "Alle gelöschten Nutzer", "deleted_user": "Alle gelöschten Nutzer",
"delete_user": "Nutzer löschen", "delete_user": "Nutzer löschen",
"deny": "Ablehnen", "deny": "Ablehnen",
"edit": "Bearbeiten",
"enabled": "aktiviert", "enabled": "aktiviert",
"error": "Fehler", "error": "Fehler",
"expired": "abgelaufen", "expired": "abgelaufen",
@ -101,7 +100,6 @@
"message": { "message": {
"request": "Die Anfrage wurde gesendet." "request": "Die Anfrage wurde gesendet."
}, },
"mod": "Mod",
"moderator": "Moderator", "moderator": "Moderator",
"name": "Name", "name": "Name",
"navbar": { "navbar": {

View File

@ -34,12 +34,12 @@
"all": "All", "all": "All",
"confirms": "Confirmed", "confirms": "Confirmed",
"deleted": "Deleted", "deleted": "Deleted",
"denied": "Denied", "denied": "Rejected",
"open": "Open" "open": "Open"
}, },
"created": "Confirmed", "created": "Created for",
"createdAt": "Created", "createdAt": "Created at",
"creation": "Creation", "creation": "Amount",
"creationList": "Creation list", "creationList": "Creation list",
"creation_form": { "creation_form": {
"creation_for": "Active Basic Income for", "creation_for": "Active Basic Income for",
@ -53,7 +53,7 @@
"toasted": "Open creation ({value} GDD) for {email} has been saved and is ready for confirmation.", "toasted": "Open creation ({value} GDD) for {email} has been saved and is ready for confirmation.",
"toasted_created": "Creation has been successfully saved", "toasted_created": "Creation has been successfully saved",
"toasted_delete": "Open creation has been deleted", "toasted_delete": "Open creation has been deleted",
"toasted_denied": "Open creation has been denied", "toasted_denied": "Open creation has been rejected",
"toasted_update": "Open creation {value} GDD) for {email} has been changed and is ready for confirmation.", "toasted_update": "Open creation {value} GDD) for {email} has been changed and is ready for confirmation.",
"update_creation": "Creation update" "update_creation": "Creation update"
}, },
@ -63,7 +63,6 @@
"deleted_user": "All deleted user", "deleted_user": "All deleted user",
"delete_user": "Delete user", "delete_user": "Delete user",
"deny": "Reject", "deny": "Reject",
"edit": "Edit",
"enabled": "enabled", "enabled": "enabled",
"error": "Error", "error": "Error",
"expired": "expired", "expired": "expired",
@ -87,7 +86,7 @@
"transactionlist": { "transactionlist": {
"confirmed": "When was it confirmed by a moderator / admin.", "confirmed": "When was it confirmed by a moderator / admin.",
"periods": "For what period was it submitted by the member.", "periods": "For what period was it submitted by the member.",
"state": "[PENDING = submitted, DELETED = deleted, IN_PROGRESS = in dialogue with moderator, DENIED = denied, CONFIRMED = confirmed]", "state": "[PENDING = submitted, DELETED = deleted, IN_PROGRESS = in dialogue with moderator, DENIED = rejected, CONFIRMED = confirmed]",
"submitted": "When was it submitted by the member" "submitted": "When was it submitted by the member"
} }
}, },
@ -101,7 +100,6 @@
"message": { "message": {
"request": "Request has been sent." "request": "Request has been sent."
}, },
"mod": "Mod",
"moderator": "Moderator", "moderator": "Moderator",
"name": "Name", "name": "Name",
"navbar": { "navbar": {

View File

@ -5,25 +5,37 @@
<b-tabs v-model="tabIndex" content-class="mt-3" fill> <b-tabs v-model="tabIndex" content-class="mt-3" fill>
<b-tab active :title-link-attributes="{ 'data-test': 'open' }"> <b-tab active :title-link-attributes="{ 'data-test': 'open' }">
<template #title> <template #title>
<b-icon icon="bell-fill" variant="primary"></b-icon>
{{ $t('contributions.open') }} {{ $t('contributions.open') }}
<b-badge v-if="$store.state.openCreations > 0" variant="danger"> <b-badge v-if="$store.state.openCreations > 0" variant="danger">
{{ $store.state.openCreations }} {{ $store.state.openCreations }}
</b-badge> </b-badge>
</template> </template>
</b-tab> </b-tab>
<b-tab <b-tab :title-link-attributes="{ 'data-test': 'confirmed' }">
:title="$t('contributions.confirms')" <template #title>
:title-link-attributes="{ 'data-test': 'confirmed' }" <b-icon icon="check" variant="success"></b-icon>
/> {{ $t('contributions.confirms') }}
<b-tab </template>
:title="$t('contributions.denied')" </b-tab>
:title-link-attributes="{ 'data-test': 'denied' }" <b-tab :title-link-attributes="{ 'data-test': 'denied' }">
/> <template #title>
<b-tab <b-icon icon="x-circle" variant="warning"></b-icon>
:title="$t('contributions.deleted')" {{ $t('contributions.denied') }}
:title-link-attributes="{ 'data-test': 'deleted' }" </template>
/> </b-tab>
<b-tab :title="$t('contributions.all')" :title-link-attributes="{ 'data-test': 'all' }" /> <b-tab :title-link-attributes="{ 'data-test': 'deleted' }">
<template #title>
<b-icon icon="trash" variant="danger"></b-icon>
{{ $t('contributions.deleted') }}
</template>
</b-tab>
<b-tab :title-link-attributes="{ 'data-test': 'all' }">
<template #title>
<b-icon icon="list"></b-icon>
{{ $t('contributions.all') }}
</template>
</b-tab>
</b-tabs> </b-tabs>
</div> </div>
<open-creations-table <open-creations-table
@ -172,6 +184,9 @@ export default {
this.items.find((obj) => obj.id === id).messagesCount++ this.items.find((obj) => obj.id === id).messagesCount++
this.items.find((obj) => obj.id === id).state = 'IN_PROGRESS' this.items.find((obj) => obj.id === id).state = 'IN_PROGRESS'
}, },
formatDateOrDash(value) {
return value ? this.$d(new Date(value), 'short') : '—'
},
}, },
computed: { computed: {
fields() { fields() {
@ -180,7 +195,6 @@ export default {
// open contributions // open contributions
{ key: 'bookmark', label: this.$t('delete') }, { key: 'bookmark', label: this.$t('delete') },
{ key: 'deny', label: this.$t('deny') }, { key: 'deny', label: this.$t('deny') },
{ key: 'email', label: this.$t('e_mail') },
{ key: 'firstName', label: this.$t('firstname') }, { key: 'firstName', label: this.$t('firstname') },
{ key: 'lastName', label: this.$t('lastname') }, { key: 'lastName', label: this.$t('lastname') },
{ {
@ -195,11 +209,11 @@ export default {
key: 'contributionDate', key: 'contributionDate',
label: this.$t('created'), label: this.$t('created'),
formatter: (value) => { formatter: (value) => {
return this.$d(new Date(value), 'short') return this.formatDateOrDash(value)
}, },
}, },
{ key: 'moderator', label: this.$t('moderator') }, { key: 'moderator', label: this.$t('moderator') },
{ key: 'editCreation', label: this.$t('edit') }, { key: 'editCreation', label: this.$t('chat') },
{ key: 'confirm', label: this.$t('save') }, { key: 'confirm', label: this.$t('save') },
], ],
[ [
@ -218,28 +232,28 @@ export default {
key: 'contributionDate', key: 'contributionDate',
label: this.$t('created'), label: this.$t('created'),
formatter: (value) => { formatter: (value) => {
return this.$d(new Date(value), 'short') return this.formatDateOrDash(value)
}, },
}, },
{ {
key: 'createdAt', key: 'createdAt',
label: this.$t('createdAt'), label: this.$t('createdAt'),
formatter: (value) => { formatter: (value) => {
return this.$d(new Date(value), 'short') return this.formatDateOrDash(value)
}, },
}, },
{ {
key: 'confirmedAt', key: 'confirmedAt',
label: this.$t('contributions.confirms'), label: this.$t('contributions.confirms'),
formatter: (value) => { formatter: (value) => {
return this.$d(new Date(value), 'short') return this.formatDateOrDash(value)
}, },
}, },
{ key: 'confirmedBy', label: this.$t('moderator') },
{ key: 'chatCreation', label: this.$t('chat') }, { key: 'chatCreation', label: this.$t('chat') },
], ],
[ [
// denied contributions // denied contributions
{ key: 'reActive', label: 'reActive' },
{ key: 'firstName', label: this.$t('firstname') }, { key: 'firstName', label: this.$t('firstname') },
{ key: 'lastName', label: this.$t('lastname') }, { key: 'lastName', label: this.$t('lastname') },
{ {
@ -254,29 +268,28 @@ export default {
key: 'contributionDate', key: 'contributionDate',
label: this.$t('created'), label: this.$t('created'),
formatter: (value) => { formatter: (value) => {
return this.$d(new Date(value), 'short') return this.formatDateOrDash(value)
}, },
}, },
{ {
key: 'createdAt', key: 'createdAt',
label: this.$t('createdAt'), label: this.$t('createdAt'),
formatter: (value) => { formatter: (value) => {
return this.$d(new Date(value), 'short') return this.formatDateOrDash(value)
}, },
}, },
{ {
key: 'deniedAt', key: 'deniedAt',
label: this.$t('contributions.denied'), label: this.$t('contributions.denied'),
formatter: (value) => { formatter: (value) => {
return this.$d(new Date(value), 'short') return this.formatDateOrDash(value)
}, },
}, },
{ key: 'deniedBy', label: this.$t('mod') }, { key: 'deniedBy', label: this.$t('moderator') },
{ key: 'chatCreation', label: this.$t('chat') }, { key: 'chatCreation', label: this.$t('chat') },
], ],
[ [
// deleted contributions // deleted contributions
{ key: 'reActive', label: 'reActive' },
{ key: 'firstName', label: this.$t('firstname') }, { key: 'firstName', label: this.$t('firstname') },
{ key: 'lastName', label: this.$t('lastname') }, { key: 'lastName', label: this.$t('lastname') },
{ {
@ -291,29 +304,29 @@ export default {
key: 'contributionDate', key: 'contributionDate',
label: this.$t('created'), label: this.$t('created'),
formatter: (value) => { formatter: (value) => {
return this.$d(new Date(value), 'short') return this.formatDateOrDash(value)
}, },
}, },
{ {
key: 'createdAt', key: 'createdAt',
label: this.$t('createdAt'), label: this.$t('createdAt'),
formatter: (value) => { formatter: (value) => {
return this.$d(new Date(value), 'short') return this.formatDateOrDash(value)
}, },
}, },
{ {
key: 'deletedAt', key: 'deletedAt',
label: this.$t('contributions.deleted'), label: this.$t('contributions.deleted'),
formatter: (value) => { formatter: (value) => {
return this.$d(new Date(value), 'short') return this.formatDateOrDash(value)
}, },
}, },
{ key: 'deletedBy', label: this.$t('mod') }, { key: 'deletedBy', label: this.$t('moderator') },
{ key: 'chatCreation', label: this.$t('chat') }, { key: 'chatCreation', label: this.$t('chat') },
], ],
[ [
// all contributions // all contributions
{ key: 'state', label: 'state' }, { key: 'state', label: this.$t('status') },
{ key: 'firstName', label: this.$t('firstname') }, { key: 'firstName', label: this.$t('firstname') },
{ key: 'lastName', label: this.$t('lastname') }, { key: 'lastName', label: this.$t('lastname') },
{ {
@ -328,24 +341,24 @@ export default {
key: 'contributionDate', key: 'contributionDate',
label: this.$t('created'), label: this.$t('created'),
formatter: (value) => { formatter: (value) => {
return this.$d(new Date(value), 'short') return this.formatDateOrDash(value)
}, },
}, },
{ {
key: 'createdAt', key: 'createdAt',
label: this.$t('createdAt'), label: this.$t('createdAt'),
formatter: (value) => { formatter: (value) => {
return this.$d(new Date(value), 'short') return this.formatDateOrDash(value)
}, },
}, },
{ {
key: 'confirmedAt', key: 'confirmedAt',
label: this.$t('contributions.confirms'), label: this.$t('contributions.confirms'),
formatter: (value) => { formatter: (value) => {
return this.$d(new Date(value), 'short') return this.formatDateOrDash(value)
}, },
}, },
{ key: 'confirmedBy', label: this.$t('mod') }, { key: 'confirmedBy', label: this.$t('moderator') },
{ key: 'chatCreation', label: this.$t('chat') }, { key: 'chatCreation', label: this.$t('chat') },
], ],
][this.tabIndex] ][this.tabIndex]
@ -397,6 +410,9 @@ export default {
update({ adminListAllContributions }) { update({ adminListAllContributions }) {
this.rows = adminListAllContributions.contributionCount this.rows = adminListAllContributions.contributionCount
this.items = adminListAllContributions.contributionList this.items = adminListAllContributions.contributionList
if (this.statusFilter === FILTER_TAB_MAP[0]) {
this.$store.commit('setOpenCreations', adminListAllContributions.contributionCount)
}
}, },
error({ message }) { error({ message }) {
this.toastError(message) this.toastError(message)

View File

@ -1,6 +1,6 @@
{ {
"name": "gradido-backend", "name": "gradido-backend",
"version": "1.19.0", "version": "1.19.1",
"description": "Gradido unified backend providing an API-Service for Gradido Transactions", "description": "Gradido unified backend providing an API-Service for Gradido Transactions",
"main": "src/index.ts", "main": "src/index.ts",
"repository": "https://github.com/gradido/gradido/backend", "repository": "https://github.com/gradido/gradido/backend",

View File

@ -1,6 +1,6 @@
{ {
"name": "gradido-database", "name": "gradido-database",
"version": "1.19.0", "version": "1.19.1",
"description": "Gradido Database Tool to execute database migrations", "description": "Gradido Database Tool to execute database migrations",
"main": "src/index.ts", "main": "src/index.ts",
"repository": "https://github.com/gradido/gradido/database", "repository": "https://github.com/gradido/gradido/database",

View File

@ -1,6 +1,6 @@
{ {
"name": "bootstrap-vue-gradido-wallet", "name": "bootstrap-vue-gradido-wallet",
"version": "1.19.0", "version": "1.19.1",
"private": true, "private": true,
"scripts": { "scripts": {
"start": "node run/server.js", "start": "node run/server.js",

View File

@ -25,7 +25,11 @@
</div> </div>
<div class="mt-3 font-weight-bold">{{ $t('contributionText') }}</div> <div class="mt-3 font-weight-bold">{{ $t('contributionText') }}</div>
<div class="mb-3 text-break word-break">{{ memo }}</div> <div class="mb-3 text-break word-break">{{ memo }}</div>
<div v-if="state === 'IN_PROGRESS' && !allContribution" class="text-205"> <div
v-if="state === 'IN_PROGRESS'"
class="text-205 pointer hover-font-bold"
@click="visible = !visible"
>
{{ $t('contribution.alert.answerQuestion') }} {{ $t('contribution.alert.answerQuestion') }}
</div> </div>
</b-col> </b-col>

View File

@ -13,7 +13,7 @@
<span class="ml-2">{{ $t('navigation.overview') }}</span> <span class="ml-2">{{ $t('navigation.overview') }}</span>
</b-nav-item> </b-nav-item>
<b-nav-item to="/send" class="mb-3" active-class="activeRoute"> <b-nav-item to="/send" class="mb-3" active-class="activeRoute">
<b-img src="/img/svg/send.svg" height="20" class="svg-icon" /> <b-icon icon="cash" aria-hidden="true"></b-icon>
<span class="ml-2">{{ $t('navigation.send') }}</span> <span class="ml-2">{{ $t('navigation.send') }}</span>
</b-nav-item> </b-nav-item>
<b-nav-item to="/transactions" class="mb-3" active-class="activeRoute"> <b-nav-item to="/transactions" class="mb-3" active-class="activeRoute">

View File

@ -1,6 +1,6 @@
{ {
"name": "gradido", "name": "gradido",
"version": "1.19.0", "version": "1.19.1",
"description": "Gradido", "description": "Gradido",
"main": "index.js", "main": "index.js",
"repository": "git@github.com:gradido/gradido.git", "repository": "git@github.com:gradido/gradido.git",