From 58f65831c597f8fec0db465f134f8d5539eeb5ab Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Thu, 6 May 2021 17:58:26 +0200 Subject: [PATCH] Update transactions when GddTable is rendered. Track count of transactions --- .../src/views/Layout/DashboardLayout_gdd.vue | 3 ++ frontend/src/views/Pages/AccountOverview.vue | 4 +++ .../views/Pages/AccountOverview/GddTable.vue | 30 ++++++------------- .../Pages/UserProfileTransactionList.vue | 13 +++++++- 4 files changed, 28 insertions(+), 22 deletions(-) diff --git a/frontend/src/views/Layout/DashboardLayout_gdd.vue b/frontend/src/views/Layout/DashboardLayout_gdd.vue index 41e2eacc5..ca47970f0 100755 --- a/frontend/src/views/Layout/DashboardLayout_gdd.vue +++ b/frontend/src/views/Layout/DashboardLayout_gdd.vue @@ -32,6 +32,7 @@ :balance="balance" :gdt-balance="GdtBalance" :transactions="transactions" + :transactionCount="transactionCount" @update-balance="updateBalance" @update-transactions="updateTransactions" > @@ -80,6 +81,7 @@ export default { GdtBalance: 0, transactions: [], bookedBalance: 0, + transactionCount: 0, } }, methods: { @@ -102,6 +104,7 @@ export default { this.transactions = result.result.data.transactions this.balance = Number(result.result.data.decay) this.bookedBalance = Number(result.result.data.balance) + this.transactionCount = result.result.data.count } else { // what to do when loading balance fails? } diff --git a/frontend/src/views/Pages/AccountOverview.vue b/frontend/src/views/Pages/AccountOverview.vue index a9bc7852a..75c3f1bdc 100644 --- a/frontend/src/views/Pages/AccountOverview.vue +++ b/frontend/src/views/Pages/AccountOverview.vue @@ -15,6 +15,8 @@ v-if="showTransactionList" :transactions="transactions" :max="5" + :timestamp="timestamp" + :transactionCount="transactionCount" @update-transactions="updateTransactions" /> @@ -30,6 +32,7 @@ export default { data() { return { showTransactionList: true, + timestamp: Date.now(), } }, props: { @@ -38,6 +41,7 @@ export default { transactions: { default: () => [], }, + transactionCount: { type: Number, default: 0 }, }, components: { GddStatus, diff --git a/frontend/src/views/Pages/AccountOverview/GddTable.vue b/frontend/src/views/Pages/AccountOverview/GddTable.vue index 84a049537..c60e4013b 100644 --- a/frontend/src/views/Pages/AccountOverview/GddTable.vue +++ b/frontend/src/views/Pages/AccountOverview/GddTable.vue @@ -95,7 +95,7 @@ @@ -108,37 +108,25 @@ export default { props: { transactions: { default: [] }, max: { type: Number, default: 25 }, + timestamp: { type: Number, default: 0 }, + transactionCount: { type: Number, default: 0 }, }, data() { return { form: [], fields: ['balance', 'date', 'memo', 'name', 'transaction_id', 'type', 'details'], items: [], - count: 0, } }, - created() { - this.$emit('change-transactions') - }, - computed: { - filteredItems() { - return this.ojectToArray(this.items).reverse() + watch: { + timestamp: { + immediate: true, + handler: 'updateTransactions', }, }, methods: { - ojectToArray(obj) { - let result = new Array(Object.keys(obj).length) - Object.entries(obj).forEach((entry) => { - const [key, value] = entry - result[key] = value - }) - return result - }, - rowClass(item, type) { - if (!item || type !== 'row') return - if (item.type === 'receive') return 'table-success' - if (item.type === 'send') return 'table-warning' - if (item.type === 'creation') return 'table-primary' + updateTransactions() { + this.$emit('update-transactions') }, }, } diff --git a/frontend/src/views/Pages/UserProfileTransactionList.vue b/frontend/src/views/Pages/UserProfileTransactionList.vue index 3610ea76b..21668fd06 100644 --- a/frontend/src/views/Pages/UserProfileTransactionList.vue +++ b/frontend/src/views/Pages/UserProfileTransactionList.vue @@ -7,7 +7,12 @@ - + @@ -27,6 +32,12 @@ export default { transactions: { default: [], }, + transactionCount: { type: Number, default: 0 }, + }, + data() { + return { + timestamp: Date.now(), + } }, methods: { updateTransactions() {