diff --git a/frontend/src/components/Transaction.spec.js b/frontend/src/components/Transaction.spec.js
new file mode 100644
index 000000000..43dc44782
--- /dev/null
+++ b/frontend/src/components/Transaction.spec.js
@@ -0,0 +1,31 @@
+import { mount } from '@vue/test-utils'
+import Transaction from './Transaction'
+
+const localVue = global.localVue
+
+describe('Transaction', () => {
+ let wrapper
+
+ const mocks = {
+ $i18n: {
+ locale: 'en',
+ },
+ $t: jest.fn((t) => t),
+ $n: jest.fn((n) => n),
+ $d: jest.fn((d) => d),
+ }
+
+ const Wrapper = () => {
+ return mount(Transaction, { localVue, mocks })
+ }
+
+ describe('mount', () => {
+ beforeEach(() => {
+ wrapper = Wrapper()
+ })
+
+ it('renders the component', () => {
+ expect(wrapper.find('div.gdt-transaction-list-item').exists()).toBeTruthy()
+ })
+ })
+})
diff --git a/frontend/src/components/Transaction.vue b/frontend/src/components/Transaction.vue
new file mode 100644
index 000000000..03b559463
--- /dev/null
+++ b/frontend/src/components/Transaction.vue
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ i
+
+
+
+
+
+
+ {{ getLinesByType(gdtEntryType).description }}
+
+
+ {{ getLinesByType(gdtEntryType).descriptiontext }}
+
+
+
+
+
+
+ {{ $t('gdt.credit') }}
+
+
+ {{ getLinesByType(gdtEntryType).credittext }}
+
+
+
+
+
+
+ {{ $t('form.memo') }}
+
+
+ {{ comment }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/components/TransactionCollapse.spec.js b/frontend/src/components/TransactionCollapse.spec.js
new file mode 100644
index 000000000..f27c3ae66
--- /dev/null
+++ b/frontend/src/components/TransactionCollapse.spec.js
@@ -0,0 +1,152 @@
+import { mount } from '@vue/test-utils'
+import TransactionCollapse from './TransactionCollapse'
+
+const localVue = global.localVue
+
+describe('TransactionCollapse', () => {
+ let wrapper
+
+ const mocks = {
+ $t: jest.fn((t) => t),
+ $n: jest.fn((n) => n),
+ }
+
+ const Wrapper = (propsData) => {
+ return mount(TransactionCollapse, { localVue, mocks, propsData })
+ }
+
+ describe('mount with gdtEntryType: 1', () => {
+ beforeEach(() => {
+ const propsData = {
+ amount: 100,
+ gdt: 110,
+ factor: 22,
+ gdtEntryType: 1,
+ }
+
+ wrapper = Wrapper(propsData)
+ })
+
+ it('renders the component', () => {
+ expect(wrapper.find('div.gdt-transaction-collapse').exists()).toBeTruthy()
+ })
+
+ it('checks the prop gdtEntryType ', () => {
+ expect(wrapper.props().gdtEntryType).toBe(1)
+ })
+
+ it('renders the component collapse-header', () => {
+ expect(wrapper.find('.gdt-list-collapse-header-text')).toBeTruthy()
+ })
+
+ it('renders the component collapse-headline', () => {
+ expect(wrapper.find('#collapse-headline').text()).toBe('gdt.calculation')
+ })
+
+ it('renders the component collapse-first', () => {
+ expect(wrapper.find('#collapse-first').text()).toBe('gdt.factor')
+ })
+
+ it('renders the component collapse-second', () => {
+ expect(wrapper.find('#collapse-second').text()).toBe('gdt.formula')
+ })
+
+ it('renders the component collapse-firstMath', () => {
+ expect(wrapper.find('#collapse-firstMath').text()).toBe('22 GDT pro €')
+ })
+
+ it('renders the component collapse-secondMath', () => {
+ expect(wrapper.find('#collapse-secondMath').text()).toBe('100 € * 22 GDT / € = 110 GDT')
+ })
+ })
+
+ describe('mount with gdtEntryType: 7', () => {
+ beforeEach(() => {
+ const propsData = {
+ amount: 100,
+ gdt: 2200,
+ factor: 22,
+ gdtEntryType: 7,
+ }
+
+ wrapper = Wrapper(propsData)
+ })
+
+ it('renders the component', () => {
+ expect(wrapper.find('div.gdt-transaction-collapse').exists()).toBeTruthy()
+ })
+
+ it('checks the prop gdtEntryType ', () => {
+ expect(wrapper.props().gdtEntryType).toBe(7)
+ })
+
+ it('renders the component collapse-header', () => {
+ expect(wrapper.find('.gdt-list-collapse-header-text')).toBeTruthy()
+ })
+
+ it('renders the component collapse-headline', () => {
+ expect(wrapper.find('#collapse-headline').text()).toBe('gdt.conversion-gdt-euro')
+ })
+
+ it('renders the component collapse-first', () => {
+ expect(wrapper.find('#collapse-first').text()).toBe('gdt.raise')
+ })
+
+ it('renders the component collapse-second', () => {
+ expect(wrapper.find('#collapse-second').text()).toBe('gdt.conversion')
+ })
+
+ it('renders the component collapse-firstMath', () => {
+ expect(wrapper.find('#collapse-firstMath').text()).toBe('2200 %')
+ })
+
+ it('renders the component collapse-secondMath', () => {
+ expect(wrapper.find('#collapse-secondMath').text()).toBe('100 GDT * 2200 % = 2200 GDT')
+ })
+ })
+
+ describe('mount with gdtEntryType: 4', () => {
+ beforeEach(() => {
+ const propsData = {
+ amount: 100,
+ gdt: 2200,
+ factor: 22,
+ gdtEntryType: 4,
+ }
+
+ wrapper = Wrapper(propsData)
+ })
+
+ it('renders the component', () => {
+ expect(wrapper.find('div.gdt-transaction-collapse').exists()).toBeTruthy()
+ })
+
+ it('checks the prop gdtEntryType ', () => {
+ expect(wrapper.props().gdtEntryType).toBe(4)
+ })
+
+ it('renders the component collapse-header', () => {
+ expect(wrapper.find('.gdt-list-collapse-header-text')).toBeTruthy()
+ })
+
+ it('renders the component collapse-headline', () => {
+ expect(wrapper.find('#collapse-headline').text()).toBe('gdt.publisher')
+ })
+
+ it('renders the component collapse-first', () => {
+ expect(wrapper.find('#collapse-first').text()).toBe('')
+ })
+
+ it('renders the component collapse-second', () => {
+ expect(wrapper.find('#collapse-second').text()).toBe('')
+ })
+
+ it('renders the component collapse-firstMath', () => {
+ expect(wrapper.find('#collapse-firstMath').text()).toBe('')
+ })
+
+ it('renders the component collapse-secondMath', () => {
+ expect(wrapper.find('#collapse-secondMath').text()).toBe('')
+ })
+ })
+})
diff --git a/frontend/src/components/TransactionCollapse.vue b/frontend/src/components/TransactionCollapse.vue
new file mode 100644
index 000000000..854282a43
--- /dev/null
+++ b/frontend/src/components/TransactionCollapse.vue
@@ -0,0 +1,76 @@
+
+
+
+
+
+
{{ getLinesByType(gdtEntryType).first }}
+
{{ getLinesByType(gdtEntryType).second }}
+
+
+
{{ getLinesByType(gdtEntryType).firstMath }}
+
+ {{ getLinesByType(gdtEntryType).secondMath }}
+
+
+
+
+
+
diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json
index ae1822396..bc46aeac8 100644
--- a/frontend/src/locales/de.json
+++ b/frontend/src/locales/de.json
@@ -137,15 +137,6 @@
"send_gradido":"Gradido versenden",
"add_work":"neuer Gemeinschaftsbeitrag"
},
- "profil": {
- "activity": {
- "new":"Neue Gemeinschaftsstunden eintragen",
- "list":"Meine Gemeinschaftsstunden Liste"
- },
- "user-data": {
- "change-success": "Deine Daten wurden gespeichert."
- }
- },
"navbar" : {
"my-profil":"Mein Profil",
"settings":"Einstellungen",
@@ -183,8 +174,8 @@
"formula":"Berechungsformel",
"no-transactions":"Du hast zur Zeit keine Transaktionen",
"publisher":"Dein geworbenes Mitglied hat einen Beitrag bezahlt",
- "gdt-receive":"Aktion",
- "your-share":"Geworbenes Mitglied",
+ "action":"Aktion",
+ "recruited-member":"Geworbenes Mitglied",
"contribution":"Beitrag"
}
}
diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json
index 4bd04116d..7dcfd5dec 100644
--- a/frontend/src/locales/en.json
+++ b/frontend/src/locales/en.json
@@ -137,16 +137,6 @@
"send_gradido":"Send Gradido",
"add_work":"New Community Contribution"
},
- "profil": {
- "transactions":"transactions",
- "activity": {
- "new":"Register new community hours",
- "list":"My Community Hours List"
- },
- "user-data": {
- "change-success": "Your data has been saved."
- }
- },
"navbar" : {
"my-profil":"My profile",
"settings":"Settings",
@@ -184,8 +174,8 @@
"formula": "Calculation formula",
"no-transactions":"You currently have no transactions",
"publisher":"A member you referred has paid a contribution",
- "gdt-receive":"GDT receive",
- "your-share":"Your share",
+ "action":"Action",
+ "recruited-member":"Recruited Member",
"contribution":"Contribution"
}
}
diff --git a/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue b/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue
index 3bdc9f42c..1ad4ba13e 100644
--- a/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue
+++ b/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue
@@ -17,134 +17,14 @@
} in transactionsGdt"
:key="transactionId"
>
-
-
-
-
-
-
-
-
-
- i
-
-
-
-
-
-
-
-
-
{{ $t('gdt.gdt-receive') }}
-
{{ $t('gdt.credit') }}
-
-
-
{{ comment }}
-
{{ $n(gdt, 'decimal') }} GDT
-
-
-
-
-
-
{{ $t('gdt.your-share') }}
-
{{ $t('gdt.credit') }}
-
-
-
5%
-
{{ $n(amount, 'decimal') }} GDT
-
-
-
-
-
-
{{ $t('gdt.contribution') }}
-
{{ $t('gdt.credit') }}
-
-
-
{{ $n(amount, 'decimal') }} €
-
{{ $n(gdt, 'decimal') }} GDT
-
-
-
-
-
-
-
-
- {{ $t('form.memo') }}
-
-
- {{ comment }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
{{ $t('gdt.raise') }}
-
{{ $t('gdt.conversion') }}
-
-
-
{{ factor * 100 }} %
-
- {{ $n(amount, 'decimal') }} GDT * {{ factor * 100 }} % =
- {{ $n(gdt, 'decimal') }} GDT
-
-
-
-
-
-
-
-
-
-
-
-
-
{{ $t('gdt.factor') }}
-
{{ $t('gdt.formula') }}
-
-
-
{{ factor }} GDT pro €
-
- {{ $n(amount, 'decimal') }} € * {{ factor }} GDT / € =
- {{ $n(gdt, 'decimal') }} GDT
-
-
-
-
-
-
+
import { listGDTEntriesQuery } from '../../../graphql/queries'
import PaginationButtons from '../../../components/PaginationButtons'
-
-function iconByType(typeId) {
- switch (typeId) {
- case 1:
- case 2:
- case 3:
- case 5:
- case 6:
- return { icon: 'heart', classes: 'gradido-global-color-accent' }
- case 4:
- return { icon: 'person-check', classes: 'gradido-global-color-accent' }
- case 7:
- return { icon: 'gift', classes: 'gradido-global-color-accent' }
- }
-}
+import Transaction from '../../../components/Transaction.vue'
export default {
name: 'gdt-transaction-list',
components: {
PaginationButtons,
+ Transaction,
},
data() {
return {
@@ -223,18 +90,6 @@ export default {
this.$toasted.error(error.message)
})
},
- getIcon(givenType) {
- const type = iconByType(givenType)
- if (type)
- return {
- icon: type.icon,
- class: type.classes + ' m-mb-1 font2em',
- }
- this.throwError('no icon to given type: ' + givenType)
- },
- throwError(msg) {
- throw new Error(msg)
- },
showNext() {
this.currentPage++
this.updateGdt()