mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
dev meeting, bernd
This commit is contained in:
parent
04ed14775e
commit
a99de7f5d1
File diff suppressed because it is too large
Load Diff
@ -74,6 +74,6 @@
|
||||
"last 2 versions",
|
||||
"not ie <= 10"
|
||||
],
|
||||
"author": "Bernd Hückstädt - https://www.gradido.net/",
|
||||
"description": "Gradido Wallet"
|
||||
"author": "Gradido-Akademie - https://www.gradido.net/",
|
||||
"description": "Gradido, the Natural Economy of Life, is a way to worldwide prosperity and peace in harmony with nature. - Gradido, die Natürliche Ökonomie des lebens, ist ein Weg zu weltweitem Wohlstand und Frieden in Harmonie mit der Natur."
|
||||
}
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
<!--
|
||||
|
||||
=========================================================
|
||||
* Gradido Wallet - v0.0.1
|
||||
* Gradido Konto - v0.0.1
|
||||
=========================================================
|
||||
|
||||
* Product Page: https://www.gradido.net
|
||||
* Copyright 2020 Bernd Hückstädt - Gradido (https://www.gradido.net)
|
||||
* Copyright 2021 Gradido-Akademie - (https://www.gradido.net)
|
||||
|
||||
* Coded by www.gradido.net
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<link rel="icon" type="image/png" sizes="96x96" href="<%= webpackConfig.output.publicPath %>favicon.png">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||
|
||||
<title>Gradido Wallet</title>
|
||||
<title>Gradido Account</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
|
||||
<!-- Fonts -->
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div id="app" class="font-sans text-gray-800">
|
||||
<header class="">
|
||||
<header > <b-col class="text-right"><small>sprache wählen</small></b-col>
|
||||
</header>
|
||||
<div class="">
|
||||
<particles-bg type="custom" :config="config" :bg="true" />
|
||||
@ -54,7 +54,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
|
||||
|
||||
.btn-primary pim{
|
||||
background-color: #5A7B02;
|
||||
border-color: #5e72e4;
|
||||
|
||||
@ -6,18 +6,18 @@
|
||||
<navbar-toggle-button @click.native="showSidebar">
|
||||
|
||||
</navbar-toggle-button>
|
||||
<router-link class="navbar-brand" to="/overview">
|
||||
<img :src="logo" class="navbar-brand-img" alt="...">
|
||||
</router-link>
|
||||
|
||||
<div class="navbar-brand">
|
||||
<img :src="logo" class="navbar-brand-img" alt="...">
|
||||
</div>
|
||||
<b-row class="text-center"><b-col>{{$n($store.state.user.balance)}} GDD</b-col></b-row>
|
||||
<slot name="mobile-right">
|
||||
<ul class="nav align-items-center d-md-none">
|
||||
|
||||
<base-dropdown class="nav-item" menu-on-right tag="li" title-tag="a">
|
||||
<a slot="title-container" class="nav-link" href="#" role="button">
|
||||
<div class="media align-items-center">
|
||||
<span class="avatar avatar-sm rounded-circle">
|
||||
<img alt="Image placeholder" src="img/theme/team-1.jpg">
|
||||
<span class="avatar avatar-sm">
|
||||
<vue-qrcode :value="$store.state.email" type="image/png" ></vue-qrcode>
|
||||
</span>
|
||||
</div>
|
||||
</a>
|
||||
@ -34,11 +34,16 @@
|
||||
<i class="ni ni-settings-gear-65"></i>
|
||||
<span>{{ $t('site.navbar.settings') }}</span>
|
||||
</router-link>
|
||||
<router-link to="/transactions" class="dropdown-item text-lg text-muted">
|
||||
<i class="ni ni-calendar-grid-58"></i>
|
||||
<span>Transactions</span>
|
||||
</router-link>
|
||||
<!--
|
||||
<router-link to="/activity" class="dropdown-item text-lg text-muted">
|
||||
<i class="ni ni-calendar-grid-58"></i>
|
||||
<span>{{ $t('site.navbar.activity') }}</span>
|
||||
</router-link>
|
||||
|
||||
-->
|
||||
<div class="dropdown-divider"></div>
|
||||
<div @click="logout" class="dropdown-item text-lg text-muted" >
|
||||
<i class="ni ni-support-16"></i>
|
||||
@ -80,11 +85,13 @@
|
||||
</template>
|
||||
<script>
|
||||
import NavbarToggleButton from '@/components/NavbarToggleButton'
|
||||
import VueQrcode from 'vue-qrcode'
|
||||
|
||||
export default {
|
||||
name: 'sidebar',
|
||||
components: {
|
||||
NavbarToggleButton
|
||||
NavbarToggleButton,
|
||||
VueQrcode
|
||||
},
|
||||
props: {
|
||||
logo: {
|
||||
|
||||
@ -19,12 +19,16 @@ function loadLocaleMessages () {
|
||||
const numberFormats = {
|
||||
'en-US': {
|
||||
currency: {
|
||||
style: 'currency'
|
||||
style: 'currency',
|
||||
currency: "GDD",
|
||||
abbreviate: true
|
||||
}
|
||||
},
|
||||
'de-DE': {
|
||||
currency: {
|
||||
style: 'currency'
|
||||
style: 'currency',
|
||||
currency: "GDD",
|
||||
abbreviate: true
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -35,4 +39,8 @@ export default new VueI18n({
|
||||
fallbackLocale: 'en',
|
||||
messages: loadLocaleMessages(),
|
||||
numberFormats
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
@ -42,18 +42,18 @@
|
||||
"remember":"Passwort merken",
|
||||
"signin":"Anmelden",
|
||||
"forgot_pwd":"Passwort vergessen?",
|
||||
"new_wallet":"Neues Wallet erstellen"
|
||||
"new_wallet":"Neues Konto erstellen"
|
||||
},
|
||||
"signup": {
|
||||
"title": "Erstelle deine Gradido Wallet",
|
||||
"subtitle": "Werde ein teil der Gemeinschaft!",
|
||||
"title": "Erstelle dein Gradido-Konto",
|
||||
"subtitle": "Werde Teil der Gemeinschaft!",
|
||||
"strength":"Passwortsicherheit:",
|
||||
"strong":"stark",
|
||||
"agree":"habe ich gelesen und verstanden und stimme diesen zu."
|
||||
},
|
||||
"password": {
|
||||
"title": "Passwort zurücksetzen",
|
||||
"subtitle": "Wenn sie das Passwort vergessen haben oder ändern möchten.",
|
||||
"subtitle": "Wenn du dein Passwort vergessen hast, kannst du es hier zurücksetzen.",
|
||||
"reset_now": "jetzt zurücksetzen"
|
||||
},
|
||||
"thx": {
|
||||
|
||||
@ -43,10 +43,10 @@
|
||||
"remember":"Remember password",
|
||||
"signin":"Sign in",
|
||||
"forgot_pwd":"Forgot password?",
|
||||
"new_wallet":"Create new wallet"
|
||||
"new_wallet":"Create new account"
|
||||
},
|
||||
"signup": {
|
||||
"title": "Create your Gradido Wallet",
|
||||
"title": "Create your Gradido account",
|
||||
"subtitle": "Become a part of the community!",
|
||||
"strength":"password strength:",
|
||||
"strong":"strong",
|
||||
@ -54,7 +54,7 @@
|
||||
},
|
||||
"password": {
|
||||
"title": "reset password",
|
||||
"subtitle": "If you have forgotten the password or want to change it.",
|
||||
"subtitle": "If you have forgotten your password, you can reset it here.",
|
||||
"reset_now": "reset now"
|
||||
},
|
||||
"thx": {
|
||||
|
||||
@ -57,6 +57,10 @@ const routes = [
|
||||
{
|
||||
path: '/activity',
|
||||
component: () => import('../views/Pages/UserProfileActivity.vue')
|
||||
},
|
||||
{
|
||||
path: '/transactions',
|
||||
component: () => import('../views/Pages/UserProfileTransactionList.vue')
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@ -4,7 +4,6 @@ Vue.use(Vuex)
|
||||
import router from '../routes/router.js'
|
||||
import loginAPI from '../apis/loginAPI'
|
||||
import communityAPI from '../apis/communityAPI'
|
||||
import axios from 'axios'
|
||||
//import CONFIG from '../config'
|
||||
|
||||
export const store = new Vuex.Store({
|
||||
@ -68,11 +67,11 @@ export const store = new Vuex.Store({
|
||||
},
|
||||
user_balance: (state,balance) => {
|
||||
//console.log('mutation: user_balance')
|
||||
state.user.balance = (balance)/10000
|
||||
state.user.balance = (balance/10000)
|
||||
},
|
||||
user_balance_gdt: (state,balance) => {
|
||||
//console.log('mutation: user_balance_gdt')
|
||||
state.user.balance_gdt = (balance)/10000
|
||||
state.user.balance_gdt = (balance/10000)
|
||||
},
|
||||
transactions: (state,transactions) => {
|
||||
//console.log('mutation: transactions')
|
||||
@ -151,31 +150,34 @@ export const store = new Vuex.Store({
|
||||
ajaxCreate: async ({ dispatch, state }) => {
|
||||
//console.log('action: ajaxCreate')
|
||||
state.ajaxCreateData.amount = (state.ajaxCreateData.amount)*10000
|
||||
axios.post("http://localhost/transaction-send-coins/ajaxCreate", state.ajaxCreateData).then((result) => {
|
||||
//console.log("store ajaxCreate result", result)
|
||||
|
||||
if( result.success ){
|
||||
// TODO
|
||||
} else {
|
||||
//dispatch('logout')
|
||||
}
|
||||
}, (error) => {
|
||||
console.log(error);
|
||||
});
|
||||
const result = await communityAPI.create($cookies.get("gdd_session_id", email, amount, memo))
|
||||
console.log(result)
|
||||
//axios.post("http://localhost/transaction-send-coins/ajaxCreate", state.ajaxCreateData).then((result) => {
|
||||
// //console.log("store ajaxCreate result", result)
|
||||
//
|
||||
//if( result.success ){
|
||||
// // TODO
|
||||
//} else {
|
||||
// //dispatch('logout')
|
||||
//}
|
||||
//}, (error) => {
|
||||
// console.log(error);
|
||||
//});
|
||||
},
|
||||
ajaxListTransactions: async ({commit, dispatch, state}) => {
|
||||
// console.log('action: ajaxListTransactions', state.session_id)
|
||||
// const result = await communityAPI.transactions(state.session_id)
|
||||
},
|
||||
accountBalance: async ({ commit, dispatch, state }) => {
|
||||
// console.log('action: accountBalance')
|
||||
console.log('action: accountBalance')
|
||||
// console.log('action: dispatch', dispatch)
|
||||
// console.log('action: state.session_id', state.session_id)
|
||||
// console.log(" action: $cookies.get('gdd_session_id') ", $cookies.get("gdd_session_id") )
|
||||
// commit('session_id', $cookies.get("gdd_session_id"))
|
||||
// commit('email', $cookies.get("gdd_u"))
|
||||
const result = await communityAPI.balance($cookies.get("gdd_session_id"))
|
||||
// console.log("accountBalance result", result)
|
||||
console.log("accountBalance result", result)
|
||||
console.log("aresult.result.data.balance", result.result.data.balance)
|
||||
if(result.success) {
|
||||
commit('user_balance', result.result.data.balance)
|
||||
} else {
|
||||
|
||||
@ -1,44 +1,45 @@
|
||||
<template>
|
||||
<div>
|
||||
<base-header class="pb-6 pb-8 pt-5 pt-md-8 bg-transparent">
|
||||
<gdd-status />
|
||||
<br>
|
||||
<gdd-sent />
|
||||
<hr>
|
||||
<gdd-table />
|
||||
<hr>
|
||||
<div>
|
||||
<gdd-add-work-2 />
|
||||
</div>
|
||||
<br>
|
||||
<!--
|
||||
<div>
|
||||
<gdd-add-work />
|
||||
</div>
|
||||
<br>
|
||||
-->
|
||||
<div>
|
||||
<gdd-work-table />
|
||||
</div>
|
||||
</base-header>
|
||||
<hr>
|
||||
<base-header class="pb-6 pb-8 pt-5 pt-md-8 bg-transparent"></base-header>
|
||||
<b-container fluid class="mt--7">
|
||||
<gdd-status />
|
||||
<br>
|
||||
<gdd-send />
|
||||
<hr>
|
||||
<gdd-table />
|
||||
<!-- <hr>
|
||||
<div>
|
||||
<gdd-add-work-2 />
|
||||
</div>
|
||||
<br> -->
|
||||
<!--
|
||||
<div>
|
||||
<gdd-add-work />
|
||||
</div>
|
||||
<br>
|
||||
-->
|
||||
<!-- <div>
|
||||
<gdd-work-table />
|
||||
</div> -->
|
||||
|
||||
</b-container>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import GddStatus from './KontoOverview/GddStatus.vue';
|
||||
import GddSent from './KontoOverview/GddSent.vue';
|
||||
import GddSend from './KontoOverview/GddSend.vue';
|
||||
import GddTable from './KontoOverview/GddTable.vue';
|
||||
import GddAddWork2 from './KontoOverview/GddAddWork2.vue';
|
||||
import GddWorkTable from './KontoOverview/GddWorkTable.vue';
|
||||
// import GddAddWork2 from './KontoOverview/GddAddWork2.vue';
|
||||
// import GddWorkTable from './KontoOverview/GddWorkTable.vue';
|
||||
|
||||
export default {
|
||||
name: "Overview",
|
||||
components: {
|
||||
GddStatus,
|
||||
GddSent,
|
||||
GddSend,
|
||||
GddTable,
|
||||
GddAddWork2,
|
||||
GddWorkTable
|
||||
//GddAddWork2,
|
||||
//GddWorkTable
|
||||
},
|
||||
created() {
|
||||
this.$store.dispatch('accountBalance', $cookies.get("gdd_session_id"))
|
||||
@ -46,7 +47,10 @@
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.active { background-color: rgba(192, 192, 192, 0.568);}
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
204
frontend/src/views/KontoOverview/GddSend.vue
Normal file
204
frontend/src/views/KontoOverview/GddSend.vue
Normal file
@ -0,0 +1,204 @@
|
||||
<template>
|
||||
<div>
|
||||
<b-row>
|
||||
<b-col xl="12" md="12">
|
||||
|
||||
<b-alert variant="warning" show dismissible >
|
||||
<strong>Achtung!</strong> Bitte überprüfe alle deine Eingaben sehr genau. Du bist alleine Verantwortlich für deine Entscheidungen. Versendete Gradidos können nicht wieder zurück geholt werden.
|
||||
</b-alert>
|
||||
<b-card >
|
||||
<div v-if="scan">
|
||||
<b-row>
|
||||
<qrcode-capture @detect="onDetect" capture="user" ></qrcode-capture>
|
||||
</b-row>
|
||||
<b-row>
|
||||
<qrcode-stream @decode="onDecode" @detect="onDetect" ></qrcode-stream>
|
||||
<b-alert show variant="secondary">
|
||||
<span class="alert-text"><strong>QR Code Scanner</strong> - Scanne den QR Code deines Partners</span>
|
||||
</b-alert>
|
||||
<b-alert show variant="warning" >
|
||||
<span class="alert-text" @click="scan=false"><strong>abrechen!</strong></span>
|
||||
</b-alert>
|
||||
</b-row>
|
||||
|
||||
</div>
|
||||
<validation-observer v-slot="{handleSubmit}" ref="formValidator">
|
||||
<b-form role="form" @submit.prevent="handleSubmit(onSubmit)" @reset="onReset" v-if="show">
|
||||
<br>
|
||||
<qrcode-drop-zone id="input-0" v-model="form.img"></qrcode-drop-zone>
|
||||
<br>
|
||||
<div>
|
||||
<b-col class="text-left pl-6">
|
||||
Empfänger
|
||||
|
||||
</b-col>
|
||||
|
||||
<b-input-group
|
||||
id="input-group-1"
|
||||
label="Empfänger:"
|
||||
label-for="input-1"
|
||||
description="We'll never share your email with anyone else."
|
||||
size="lg"
|
||||
class="mb-3"
|
||||
>
|
||||
<b-input-group-prepend class="p-3">
|
||||
<b-icon icon="envelope" class="display-3"></b-icon>
|
||||
</b-input-group-prepend>
|
||||
<b-form-input
|
||||
id="input-1"
|
||||
v-model="form.email"
|
||||
type="email"
|
||||
placeholder="E-Mail"
|
||||
:rules="{required: true, email: true}"
|
||||
required
|
||||
style="font-size: xx-large; padding-left:20px"></b-form-input>
|
||||
</b-input-group>
|
||||
</div>
|
||||
<br>
|
||||
<div>
|
||||
<b-col class="text-left pl-6">
|
||||
Betrag
|
||||
|
||||
</b-col>
|
||||
<b-col v-if="($store.state.user.balance == form.amount)" class="text-right">
|
||||
<b-badge variant="primary">maximale anzahl GDD zum versenden erreicht!</b-badge>
|
||||
</b-col>
|
||||
<b-input-group id="input-group-2" label="Betrag:" label-for="input-2"
|
||||
size="lg"
|
||||
class="mb-3">
|
||||
<b-input-group-prepend>
|
||||
<div class="h3 pt-3 pr-3">GDD</div>
|
||||
|
||||
</b-input-group-prepend>
|
||||
<b-form-input
|
||||
id="input-2"
|
||||
v-model="form.amount"
|
||||
type="number"
|
||||
placeholder="0.01"
|
||||
step="0.01"
|
||||
min="0.01"
|
||||
:max="$store.state.user.balance"
|
||||
style="font-size: xx-large; padding-left:20px">
|
||||
</b-form-input>
|
||||
</b-input-group>
|
||||
<b-col class="text-left pl-6">
|
||||
Nachricht für den Empfänger
|
||||
</b-col>
|
||||
|
||||
<b-input-group>
|
||||
<b-input-group-prepend class="p-3">
|
||||
<b-icon icon="chat-right-text" class="display-3"></b-icon>
|
||||
</b-input-group-prepend>
|
||||
<b-form-textarea v-model="form.memo" class="pl-3"></b-form-textarea>
|
||||
</b-input-group>
|
||||
|
||||
</div>
|
||||
|
||||
<br>
|
||||
<b-row>
|
||||
<b-col> <b-button type="reset" variant="secondary">{{$t('form.cancel')}}</b-button></b-col>
|
||||
<b-col class="text-right"> <b-button type="submit" variant="success">{{$t('form.send_now')}}</b-button></b-col>
|
||||
</b-row>
|
||||
|
||||
|
||||
<br>
|
||||
</b-form>
|
||||
</validation-observer>
|
||||
</b-card>
|
||||
|
||||
</b-col>
|
||||
</b-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { QrcodeStream, QrcodeDropZone, QrcodeCapture } from 'vue-qrcode-reader'
|
||||
import { BIcon } from 'bootstrap-vue'
|
||||
|
||||
export default {
|
||||
name: 'GddSent',
|
||||
components: {
|
||||
QrcodeStream,
|
||||
QrcodeDropZone,
|
||||
QrcodeCapture,
|
||||
BIcon
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
scan: false,
|
||||
show: true,
|
||||
form: {
|
||||
img: '',
|
||||
email: '',
|
||||
amount: '',
|
||||
memo:''
|
||||
},
|
||||
sent: false,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
sendbutton(){
|
||||
this.sent = true
|
||||
},
|
||||
async onDecode (decodedString) {
|
||||
console.log('onDecode JSON.parse(decodedString)',JSON.parse(decodedString) )
|
||||
const arr = JSON.parse(decodedString)
|
||||
// console.log('arr',arr[0].email )
|
||||
this.modal.h4 = 'Scan erfolgreich'
|
||||
this.modal.p = arr
|
||||
this.form.email = arr[0].email
|
||||
this.form.amount1 = arr[0].amount
|
||||
// console.log('arr mail',arr.email)
|
||||
// console.log('arr mail',arr.amount)
|
||||
this.modals2 = true
|
||||
},
|
||||
async onDetect (promise) {
|
||||
try {
|
||||
const {
|
||||
imageData, // raw image data of image/frame
|
||||
content, // decoded String
|
||||
location // QR code coordinates
|
||||
} = await promise
|
||||
console.log('onDetect promise',promise)
|
||||
//console.log('JSON.parse(decodedString)',JSON.parse(promise) )
|
||||
const arr = JSON.parse(decodedString)
|
||||
console.log('arr',arr)
|
||||
|
||||
} catch (error) {
|
||||
// ...
|
||||
}
|
||||
},
|
||||
async onSubmit() {
|
||||
//event.preventDefault()
|
||||
//console.log("onSubmit", this.form)
|
||||
this.$store.state.ajaxCreateData.session_id = this.$cookies.get('gdd_session_id')
|
||||
this.$store.state.ajaxCreateData.email = this.form.email
|
||||
this.$store.state.ajaxCreateData.amount = this.form.amount
|
||||
this.$store.state.ajaxCreateData.memo = this.form.memo
|
||||
this.$store.state.ajaxCreateData.target_date = Date.now()
|
||||
|
||||
this.$store.dispatch('ajaxCreate')
|
||||
},
|
||||
onReset(event) {
|
||||
event.preventDefault()
|
||||
this.form.email = ''
|
||||
this.form.amount = ''
|
||||
this.show = false
|
||||
this.$nextTick(() => {
|
||||
this.show = true
|
||||
})
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
state() {
|
||||
return this.name.length >= 4
|
||||
},
|
||||
invalidFeedback() {
|
||||
if (this.name.length > 0) {
|
||||
return 'Geben Sie mindestens 4 Zeichen ein.'
|
||||
}
|
||||
return 'Bitte geben Sie eine GDD Adresse ein.'
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@ -4,16 +4,14 @@
|
||||
<b-col xl="6" md="6">
|
||||
<stats-card type="gradient-red"
|
||||
sub-title="balance_gdd"
|
||||
class="mb-4"
|
||||
style="font-size: -webkit-xxx-large">
|
||||
class="mb-4 h1">
|
||||
{{ $n($store.state.user.balance) }} GDD
|
||||
</stats-card>
|
||||
</b-col>
|
||||
<b-col xl="6" md="6">
|
||||
<stats-card type="gradient-orange"
|
||||
sub-title="balance_gdt"
|
||||
class="mb-4"
|
||||
style="font-size: -webkit-xxx-large">
|
||||
class="mb-4 h1">
|
||||
{{ $n($store.state.user.balance_gdt) }} GDT
|
||||
</stats-card>
|
||||
</b-col>
|
||||
|
||||
@ -2,13 +2,13 @@
|
||||
<div>
|
||||
|
||||
<b-list-group >
|
||||
<b-list-group-item v-for="item in filteredItems" :key="item.id">
|
||||
<b-list-group-item v-for="item in filteredItems" :key="item.id" style="background-color:#ebebeba3 !important;">
|
||||
<div class="d-flex w-100 justify-content-between" @click="toogle(item)" >
|
||||
<b-icon v-if="item.type === 'send'" icon="box-arrow-left" class="m-1" font-scale="2" style="color:red"></b-icon>
|
||||
<b-icon v-else icon="box-arrow-right" class="m-1" font-scale="2" style="color:green" ></b-icon>
|
||||
<h1 class="mb-1">{{ $n((item.balance)/10000) }} <small>GDD</small></h1>
|
||||
<h1 class="mb-1">{{ $n((item.balance/10000)) }} <small>GDD</small></h1>
|
||||
<h2 class="text-muted">{{item.name}}</h2>
|
||||
<b-button v-b-toggle="'a'+item.transaction_id" variant="primary"><b>i</b></b-button>
|
||||
<b-button v-b-toggle="'a'+item.transaction_id" variant="secondary"><b>i</b></b-button>
|
||||
</div>
|
||||
<b-collapse :id="'a'+item.transaction_id" class="mt-2">
|
||||
<b-card>
|
||||
@ -20,16 +20,16 @@
|
||||
<b-list-group-item> <b-badge class="mr-4" variant="primary" pill>gdd</b-badge>{{item.balance}}</b-list-group-item>
|
||||
<b-list-group-item> <b-badge class="mr-4" variant="primary" pill>memo</b-badge>{{item.memo}}</b-list-group-item>
|
||||
</b-list-group>
|
||||
<b-button v-b-toggle="'collapse-1-inner'+ item.transaction_id" size="sm">{{$t('transaction.more')}}</b-button>
|
||||
<b-button v-b-toggle="'collapse-1-inner'+ item.transaction_id" variant="secondary">{{$t('transaction.more')}}</b-button>
|
||||
<b-collapse :id="'collapse-1-inner'+ item.transaction_id" class="mt-2">
|
||||
<b-card>{{item}}</b-card>
|
||||
</b-collapse>
|
||||
</b-card>
|
||||
</b-collapse>
|
||||
</b-list-group-item>
|
||||
<b-list-group-item>
|
||||
<b-list-group-item v-show="this.$route.path == '/overview'">
|
||||
<b-alert v-if="count < 5" show variant="secondary" v-html="$t('transaction.show_part', {'count':count} )"></b-alert>
|
||||
<router-link else to="/activity" v-html="$t('transaction.show_all', {'count':count})"> </router-link>
|
||||
<router-link else to="/transactions" v-html="$t('transaction.show_all', {'count':count})"> </router-link>
|
||||
</b-list-group-item>
|
||||
|
||||
|
||||
@ -55,7 +55,11 @@ export default {
|
||||
created() {
|
||||
|
||||
axios.get("http://localhost/state-balances/ajaxListTransactions/"+ this.$store.state.session_id).then((result) => {
|
||||
//console.log("result",result)
|
||||
console.log("result",result)
|
||||
console.log("transactions.length",result.data.count)
|
||||
|
||||
console.log("this.$route.path", this.$route.path);
|
||||
|
||||
//console.log("result.state",result.data.state)
|
||||
//console.log("result.data.state == 'success'",result.data.state == "success")
|
||||
|
||||
@ -64,6 +68,7 @@ export default {
|
||||
//console.log("result.transactions",typeof(result.data.transactions))
|
||||
//commit('transactions', result.data.transactions)
|
||||
this.$store.state.user.balance_gdt = result.data.gdtSum
|
||||
|
||||
this.items = result.data.transactions
|
||||
this.count = result.data.count
|
||||
|
||||
|
||||
@ -47,7 +47,7 @@
|
||||
<b-row align-v="center" class="justify-content-xl-between">
|
||||
<b-col xl="6">
|
||||
<div class="copyright text-center text-xl-left text-muted">
|
||||
© {{year}} <a href="https://gradido.net/" class="font-weight-bold ml-1" target="_blank">Gradido Wallet</a>
|
||||
© {{year}} <a href="https://gradido.net/" class="font-weight-bold ml-1" target="_blank">Gradido-Akademie</a>
|
||||
</div>
|
||||
</b-col>
|
||||
<b-col xl="6" class="col-xl-6">
|
||||
|
||||
@ -42,5 +42,7 @@ import ContentFooter from './ContentFooter.vue';
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
|
||||
|
||||
.card { background-color:rgba(136, 130, 131, 0.3); }
|
||||
|
||||
</style>
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
<b-row align-v="center" class="justify-content-lg-between">
|
||||
<b-col lg="6">
|
||||
<div class="copyright text-center text-lg-left text-muted">
|
||||
© {{year}} <a href="#!" to="/login" class="font-weight-bold ml-1" >Gradido Wallet</a>
|
||||
© {{year}} <a href="#!" to="/login" class="font-weight-bold ml-1" >Gradido-Akademie</a>
|
||||
</div>
|
||||
</b-col>
|
||||
<b-col lg="6">
|
||||
|
||||
@ -8,6 +8,9 @@
|
||||
|
||||
<b-nav-text class="p-0 text-lg text-muted">{{ $t('sent')}}</b-nav-text>
|
||||
</b-nav-item>
|
||||
<b-nav-item href="#!" to="/transactions">
|
||||
<b-nav-text class="p-0 text-lg text-muted">Transaktionen</b-nav-text>
|
||||
</b-nav-item>
|
||||
<b-nav-item href="#!" to="/profile">
|
||||
|
||||
<b-nav-text class="p-0 text-lg text-muted">{{ $t('site.navbar.my-profil')}}</b-nav-text>
|
||||
@ -16,10 +19,12 @@
|
||||
|
||||
<b-nav-text class="p-0 text-lg text-muted">{{ $t('site.navbar.settings') }}</b-nav-text>
|
||||
</b-nav-item>
|
||||
<!--
|
||||
<b-nav-item href="#!" to="/activity">
|
||||
|
||||
<b-nav-text class="p-0 text-lg text-muted">{{ $t('site.navbar.activity') }}</b-nav-text>
|
||||
</b-nav-item>
|
||||
-->
|
||||
|
||||
</template>
|
||||
</side-bar>
|
||||
|
||||
@ -25,12 +25,13 @@
|
||||
title-classes="nav-link pr-0">
|
||||
<a href="#" class="pr-1" @click.prevent slot="title-container">
|
||||
<b-media no-body class="align-items-center">
|
||||
|
||||
<span class="pb-2 text-lg font-weight-bold">{{ $store.state.email }}</span>
|
||||
<b-media-body class="ml-2 d-none d-lg-block">
|
||||
<span class="avatar avatar-sm rounded-circle">
|
||||
<vue-qrcode :value="$store.state.email" />
|
||||
|
||||
|
||||
<span class="avatar ">
|
||||
<vue-qrcode :value="$store.state.email" type="image/png"></vue-qrcode>
|
||||
</span>
|
||||
<span class="mb-0 text-lg font-weight-bold">{{ $store.state.email }}</span>
|
||||
</b-media-body>
|
||||
</b-media>
|
||||
</a>
|
||||
@ -52,10 +53,12 @@
|
||||
<i class="ni ni-settings-gear-65"></i>
|
||||
<span>{{ $t('site.navbar.settings') }}</span>
|
||||
</b-dropdown-item>
|
||||
<!--
|
||||
<b-dropdown-item href="#!">
|
||||
<i class="ni ni-calendar-grid-58"></i>
|
||||
<span>{{ $t('site.navbar.activity') }}</span>
|
||||
</b-dropdown-item>
|
||||
-->
|
||||
<div class="dropdown-divider"></div>
|
||||
<b-dropdown-item href="#!" @click="logout">
|
||||
<i class="ni ni-user-run"></i>
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
<b-container class="mt--8 pb-5">
|
||||
<b-row class="justify-content-center">
|
||||
<b-col lg="5" md="7">
|
||||
<b-card no-body class="bg-secondary border-0 mb-0">
|
||||
<b-card no-body class="border-0 mb-0" style="background-color: #ebebeba3 !important;">
|
||||
<b-card-body class="px-lg-5 py-lg-5">
|
||||
|
||||
<div class="text-center text-muted mb-4">
|
||||
@ -47,7 +47,7 @@
|
||||
|
||||
<!-- <b-form-checkbox v-model="model.rememberMe">{{ $t('site.login.remember')}}</b-form-checkbox> -->
|
||||
<div class="text-center">
|
||||
<base-button type="primary" native-type="submit" class="my-4">{{ $t('site.login.signin')}}</base-button>
|
||||
<base-button type="secondary" native-type="submit" class="my-4">{{ $t('site.login.signin')}}</base-button>
|
||||
</div>
|
||||
</b-form>
|
||||
</validation-observer>
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
<b-container class="mt--8 pb-5">
|
||||
<b-row class="justify-content-center">
|
||||
<b-col lg="6" md="8" >
|
||||
<b-card no-body class="bg-secondary border-0">
|
||||
<b-card no-body class="border-0" style="background-color: #ebebeba3 !important;">
|
||||
<b-card-body class="px-lg-5 py-lg-5">
|
||||
<validation-observer v-slot="{handleSubmit}" ref="formValidator">
|
||||
<b-form role="form" @submit.prevent="handleSubmit(onSubmit)">
|
||||
@ -30,7 +30,7 @@
|
||||
</base-input>
|
||||
{{form}}
|
||||
<div class="text-center">
|
||||
<b-button type="submit" variant="primary" class="mt-4" :disabled="disable">{{ $t('site.password.reset_now')}}</b-button>
|
||||
<b-button type="submit" outline variant="secondary" class="mt-4" :disabled="disable">{{ $t('site.password.reset_now')}}</b-button>
|
||||
</div>
|
||||
</b-form>
|
||||
</validation-observer>
|
||||
@ -39,7 +39,7 @@
|
||||
</b-col>
|
||||
</b-row>
|
||||
<div class="text-center py-lg-4" >
|
||||
<b-button type="button" variant="success" class="mt-3" to="/Login">{{ $t('back')}}</b-button>
|
||||
<router-link to="/Login" class="mt-3">{{ $t('back')}}</router-link>
|
||||
</div>
|
||||
</b-container>
|
||||
</div>
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
<!-- Table -->
|
||||
<b-row class="justify-content-center">
|
||||
<b-col lg="6" md="8" >
|
||||
<b-card no-body class="bg-secondary border-0">
|
||||
<b-card no-body class="border-0" style="background-color: #ebebeba3 !important;">
|
||||
|
||||
<b-card-body class="px-lg-5 py-lg-5">
|
||||
<div class="text-center text-muted mb-4">
|
||||
@ -74,7 +74,7 @@
|
||||
</b-col>
|
||||
</b-row>
|
||||
<div class="text-center">
|
||||
<b-button type="submit" variant="primary" class="mt-4">{{ $t('signup')}}</b-button>
|
||||
<b-button type="submit" variant="secondary" class="mt-4">{{ $t('signup')}}</b-button>
|
||||
</div>
|
||||
</b-form>
|
||||
</validation-observer>
|
||||
@ -83,7 +83,7 @@
|
||||
</b-col>
|
||||
</b-row>
|
||||
<div class="text-center py-lg-4" >
|
||||
<b-button type="button" variant="success" class="mt-3" to="/Login">{{ $t('back')}}</b-button>
|
||||
<router-link to="/Login" class="mt-3">{{ $t('back')}}</router-link>
|
||||
</div>
|
||||
</b-container>
|
||||
</div>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<b-col lg="3" class="order-lg-2">
|
||||
<div class="card-profile-image">
|
||||
<a href="#">
|
||||
<vue-qrcode :value="$store.state.email" />
|
||||
<vue-qrcode :value="$store.state.email" type="image/png"> </vue-qrcode>
|
||||
</a>
|
||||
</div>
|
||||
</b-col>
|
||||
|
||||
@ -1,16 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="header pb-8 pt-5 pt-lg-8 d-flex align-items-center profile-header" style="max-height:200px">
|
||||
<b-container fluid>
|
||||
<b-container fluid class="d-flex align-items-center">
|
||||
<b-row >
|
||||
<b-col lg="7" md="10">
|
||||
<h1 class="display-2 text-white">{{this.$store.state.email}} </h1>
|
||||
|
||||
</b-col>
|
||||
</b-row>
|
||||
</b-container>
|
||||
</b-container>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@ -17,13 +17,12 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import BaseButton from '../../components/BaseButton.vue';
|
||||
|
||||
import UserCard from './UserProfile/UserCard.vue';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
UserCard,
|
||||
BaseButton
|
||||
UserCard
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
24
frontend/src/views/Pages/UserProfileTransactionList.vue
Normal file
24
frontend/src/views/Pages/UserProfileTransactionList.vue
Normal file
@ -0,0 +1,24 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="header pb-8 pt-5 pt-lg-8 d-flex align-items-center profile-header" style="max-height:200px"></div>
|
||||
<b-container fluid class="mt--6">
|
||||
<b-row>
|
||||
<b-col class="order-xl-1">
|
||||
|
||||
<gdd-table></gdd-table>
|
||||
</b-col>
|
||||
</b-row>
|
||||
</b-container>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import GddTable from '../../views/KontoOverview/GddTable.vue'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
GddTable
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
</style>
|
||||
@ -60,7 +60,7 @@ Dario, Gradido Server Admin\n\
|
||||
const static char EmailText_adminEmailVerification[] = { u8"\
|
||||
Hallo [first_name] [last_name],\n\
|
||||
\n\
|
||||
Der Admin hat soeben ein Gradido Konto für dich mit dieser E-Mail angelegt.\n\
|
||||
Der Admin hat soeben ein Gradido-Konto für dich mit dieser E-Mail angelegt.\n\
|
||||
Bitte klicke zur Bestätigung auf den Link: [link]\n\
|
||||
oder kopiere den obigen Link in Dein Browserfenster.\n\
|
||||
\n\
|
||||
@ -72,7 +72,7 @@ const static char EmailText_adminEmailVerificationResend[] = { u8"\
|
||||
Hallo [first_name] [last_name],\n\
|
||||
\n\
|
||||
Der Admin hat ein erneutes zusenden deiner Bestätigungsemail angefordert. \n\
|
||||
Du hast vor einer Weile ein Gradido Konto mit dieser E-Mail angelegt, aber es noch nicht bestätigt. \n\
|
||||
Du hast vor einer Weile ein Gradido-Konto mit dieser E-Mail angelegt, aber es noch nicht bestätigt. \n\
|
||||
\n\
|
||||
Bitte klicke zur Bestätigung auf den Link: [link]\n\
|
||||
oder kopiere den obigen Link in Dein Browserfenster.\n\
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user