mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Merge branch 'master' into stage2
This commit is contained in:
commit
b63cf744fe
@ -33,6 +33,14 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ./logs:/var/log/grd_login
|
- ./logs:/var/log/grd_login
|
||||||
- conan:/root/.conan
|
- conan:/root/.conan
|
||||||
|
|
||||||
|
#########################################################
|
||||||
|
## COMMUNITY SERVER (cakephp with php-fpm) ##############
|
||||||
|
#########################################################
|
||||||
|
community-server:
|
||||||
|
volumes:
|
||||||
|
- ./community_server
|
||||||
|
|
||||||
|
|
||||||
#########################################################
|
#########################################################
|
||||||
## NGINX ################################################
|
## NGINX ################################################
|
||||||
|
|||||||
BIN
docu/menu-struktur.pdf
Normal file
BIN
docu/menu-struktur.pdf
Normal file
Binary file not shown.
29
docu/userstorry_button.txt
Normal file
29
docu/userstorry_button.txt
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
## Gradido Button
|
||||||
|
|
||||||
|
Erklärung:
|
||||||
|
Es soll eine einfache Möglichkeit geben, dass ein User einen anderen User Gradidos überweisen kann.
|
||||||
|
Es gibt drei Varianten wie dies möglich sein soll.
|
||||||
|
|
||||||
|
- per Link - der link verweist auf das Überweisungsformular in der Gradido App.
|
||||||
|
|
||||||
|
- Button - der Button hat denselben Link
|
||||||
|
|
||||||
|
- QR-Code - der QR code ist derselbe link
|
||||||
|
|
||||||
|
## Aufbau des Links
|
||||||
|
|
||||||
|
- der link muss
|
||||||
|
- den Hinweis auf den Community-Server ( community.com )
|
||||||
|
- Und den Usernamen beinhalten. (u/username)
|
||||||
|
!!! wichtig ist das der link eine Menschenlesbare Form hat
|
||||||
|
|
||||||
|
z.b. https://community.com/u/username
|
||||||
|
|
||||||
|
## Wichtig
|
||||||
|
|
||||||
|
Dies sollte im Profil an einer zentralen Stelle schnell für den User ersichtlich sein und nutzbar.
|
||||||
|
Kopierhilfe, Button per HTML code generieren lassen.
|
||||||
|
Der Link soll z.b. auch auf einer Visitenkarte lesbar und so kurz wie möglich sein.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -2,4 +2,5 @@ LOGIN_API_URL=http://localhost/login_api/
|
|||||||
COMMUNITY_API_STATE_BALANCE_URL=http://localhost/state-balances/
|
COMMUNITY_API_STATE_BALANCE_URL=http://localhost/state-balances/
|
||||||
COMMUNITY_API_TRANSACTION_CREATION_URL=http://localhost/transaction-creations/
|
COMMUNITY_API_TRANSACTION_CREATION_URL=http://localhost/transaction-creations/
|
||||||
COMMUNITY_API_TRANSACTION_SEND_COINS=http://localhost/api
|
COMMUNITY_API_TRANSACTION_SEND_COINS=http://localhost/api
|
||||||
VUE_PATH=/vue
|
VUE_PATH=/vue
|
||||||
|
APP_VERSION=0
|
||||||
4
frontend/.gitignore
vendored
4
frontend/.gitignore
vendored
@ -19,4 +19,8 @@ package-lock.json
|
|||||||
*.njsproj
|
*.njsproj
|
||||||
*.sln
|
*.sln
|
||||||
|
|
||||||
|
# coverage folder
|
||||||
|
|
||||||
|
coverage/
|
||||||
|
|
||||||
*~
|
*~
|
||||||
@ -1,13 +1,13 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
verbose: true,
|
verbose: true,
|
||||||
//collectCoverageFrom: ['**/*.{js,vue}', '!**/node_modules/**', '!**/?(*.)+(spec|test).js?(x)'],
|
collectCoverageFrom: ['src/**/*.{js,vue}', '!**/node_modules/**', '!**/?(*.)+(spec|test).js?(x)'],
|
||||||
moduleFileExtensions: [
|
moduleFileExtensions: [
|
||||||
'js',
|
'js',
|
||||||
//'jsx',
|
//'jsx',
|
||||||
'json',
|
'json',
|
||||||
'vue',
|
'vue',
|
||||||
],
|
],
|
||||||
coverageReporters: ['lcov'],
|
// coverageReporters: ['lcov', 'text'],
|
||||||
moduleNameMapper: {
|
moduleNameMapper: {
|
||||||
'^@/(.*)$': '<rootDir>/src/$1',
|
'^@/(.*)$': '<rootDir>/src/$1',
|
||||||
'\\.(css|less)$': 'identity-obj-proxy',
|
'\\.(css|less)$': 'identity-obj-proxy',
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
"lint": "eslint --ext .js,.vue .",
|
"lint": "eslint --ext .js,.vue .",
|
||||||
"dev": "yarn run serve",
|
"dev": "yarn run serve",
|
||||||
"i18n:report": "vue-cli-service i18n:report --src './src/**/*.?(js|vue)' --locales './src/locales/**/*.json'",
|
"i18n:report": "vue-cli-service i18n:report --src './src/**/*.?(js|vue)' --locales './src/locales/**/*.json'",
|
||||||
"test": "jest"
|
"test": "jest --coverage"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/core": "^7.13.13",
|
"@babel/core": "^7.13.13",
|
||||||
|
|||||||
@ -40,11 +40,11 @@
|
|||||||
<span>Transactions</span>
|
<span>Transactions</span>
|
||||||
</router-link>
|
</router-link>
|
||||||
<!--
|
<!--
|
||||||
<router-link to="/activity" class="dropdown-item text-lg text-muted">
|
<router-link to="/activity" class="dropdown-item text-lg text-muted">
|
||||||
<i class="ni ni-calendar-grid-58"></i>
|
<i class="ni ni-calendar-grid-58"></i>
|
||||||
<span>{{ $t('site.navbar.activity') }}</span>
|
<span>{{ $t('site.navbar.activity') }}</span>
|
||||||
</router-link>
|
</router-link>
|
||||||
-->
|
-->
|
||||||
<div class="dropdown-divider"></div>
|
<div class="dropdown-divider"></div>
|
||||||
<div @click="logout" class="dropdown-item text-lg text-muted">
|
<div @click="logout" class="dropdown-item text-lg text-muted">
|
||||||
<i class="ni ni-support-16"></i>
|
<i class="ni ni-support-16"></i>
|
||||||
@ -75,6 +75,17 @@
|
|||||||
<slot name="links"></slot>
|
<slot name="links"></slot>
|
||||||
</ul>
|
</ul>
|
||||||
<hr class="my-3" />
|
<hr class="my-3" />
|
||||||
|
<ul class="navbar-nav mb-md-3">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a
|
||||||
|
:href="`https://elopage.com/s/gradido/sign_in?locale=${$i18n.locale}`"
|
||||||
|
class="nav-link text-lg"
|
||||||
|
>
|
||||||
|
{{ $t('site.sidebar.members_area') }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<hr class="my-3" />
|
||||||
<ul class="navbar-nav mb-md-3">
|
<ul class="navbar-nav mb-md-3">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link text-lg" href="#!" @click="logout">
|
<a class="nav-link text-lg" href="#!" @click="logout">
|
||||||
|
|||||||
@ -7,6 +7,7 @@ const environment = {
|
|||||||
NODE_ENV: process.env.NODE_ENV,
|
NODE_ENV: process.env.NODE_ENV,
|
||||||
DEBUG: process.env.NODE_ENV !== 'production' || false,
|
DEBUG: process.env.NODE_ENV !== 'production' || false,
|
||||||
PRODUCTION: process.env.NODE_ENV === 'production' || false,
|
PRODUCTION: process.env.NODE_ENV === 'production' || false,
|
||||||
|
APP_VERSION: process.env.APP_VERSION || require('../../package.json').version,
|
||||||
}
|
}
|
||||||
|
|
||||||
const server = {
|
const server = {
|
||||||
|
|||||||
@ -1,13 +1,14 @@
|
|||||||
{
|
{
|
||||||
"message": "hallo gradido !!",
|
"message": "hallo gradido !!",
|
||||||
"welcome":"Willkommen!",
|
"welcome":"Willkommen!",
|
||||||
|
"community": "Gemeinschaft",
|
||||||
"logout":"Abmelden",
|
"logout":"Abmelden",
|
||||||
"login":"Login",
|
"login":"Login",
|
||||||
"signup": "Registrieren",
|
"signup": "Registrieren",
|
||||||
"imprint":"Impressum",
|
"imprint":"Impressum",
|
||||||
"privacy_policy":"Datenschutzerklärung",
|
"privacy_policy":"Datenschutzerklärung",
|
||||||
"back":"Zurück",
|
"back":"Zurück",
|
||||||
"sent":"Senden",
|
"send":"Senden",
|
||||||
"transactions":"Transaktionen",
|
"transactions":"Transaktionen",
|
||||||
"language":"Language",
|
"language":"Language",
|
||||||
"languages":{
|
"languages":{
|
||||||
@ -15,7 +16,11 @@
|
|||||||
"en": "English"
|
"en": "English"
|
||||||
},
|
},
|
||||||
"form": {
|
"form": {
|
||||||
|
"attention": "<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.",
|
||||||
"cancel":"Abbrechen",
|
"cancel":"Abbrechen",
|
||||||
|
"close":"schließen",
|
||||||
|
"receiver":"Empfänger",
|
||||||
|
"sender":"Absender",
|
||||||
"firstname":"Vorname",
|
"firstname":"Vorname",
|
||||||
"lastname":"Nachname",
|
"lastname":"Nachname",
|
||||||
"email":"eMail",
|
"email":"eMail",
|
||||||
@ -23,13 +28,19 @@
|
|||||||
"password":"Passwort",
|
"password":"Passwort",
|
||||||
"password_repeat":"Passwort wiederholen",
|
"password_repeat":"Passwort wiederholen",
|
||||||
"amount":"Betrag",
|
"amount":"Betrag",
|
||||||
"memo":"Info",
|
"memo":"Nachricht für den Empfänger",
|
||||||
"message":"Nachricht",
|
"message":"Nachricht",
|
||||||
"date":"Datum",
|
"date":"Datum",
|
||||||
"from":"von",
|
"from":"von",
|
||||||
"to":"bis",
|
"to":"bis",
|
||||||
"at":"am",
|
"at":"am",
|
||||||
"send_now":"Jetzt versenden"
|
"time":"Zeit",
|
||||||
|
"send_now":"Jetzt versenden",
|
||||||
|
"scann_code":"<strong>QR Code Scanner</strong> - Scanne den QR Code deines Partners",
|
||||||
|
"max_gdd_info":"maximale anzahl GDD zum versenden erreicht!",
|
||||||
|
"send_check":"Bestätige deine Zahlung. Prüfe bitte nochmal alle Daten!",
|
||||||
|
"thx":"Danke!",
|
||||||
|
"send_success":"Deine Zahlung wurde erfolgreich versendet."
|
||||||
},
|
},
|
||||||
"transaction":{
|
"transaction":{
|
||||||
"show_part": "Die letzten <strong>{count}</strong> Transaktionen",
|
"show_part": "Die letzten <strong>{count}</strong> Transaktionen",
|
||||||
@ -61,10 +72,18 @@
|
|||||||
"subtitle": "Wir haben dir eine eMail gesendet."
|
"subtitle": "Wir haben dir eine eMail gesendet."
|
||||||
},
|
},
|
||||||
"overview":{
|
"overview":{
|
||||||
"account_overview":"Kontoübersicht",
|
"account_overview":"Kontoübersicht",
|
||||||
"since_last_month": "seid letzten Monat",
|
"since_last_month": "seid letzten Monat",
|
||||||
"send_gradido":"Gradido versenden",
|
"send_gradido":"Gradido versenden",
|
||||||
"add_work":"neuer Gemeinschaftsbeitrag"
|
"add_work":"neuer Gemeinschaftsbeitrag"
|
||||||
|
},
|
||||||
|
"profil": {
|
||||||
|
"transactions":"transactions",
|
||||||
|
"activity": {
|
||||||
|
"chart":"Gemeinschaftsstunden Chart",
|
||||||
|
"new":"Neue Gemeinschaftsstunden eintragen",
|
||||||
|
"list":"Meine Gemeinschaftsstunden Liste"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"navbar" : {
|
"navbar" : {
|
||||||
"my-profil":"Mein Profil",
|
"my-profil":"Mein Profil",
|
||||||
@ -72,24 +91,19 @@
|
|||||||
"activity":"Aktivität",
|
"activity":"Aktivität",
|
||||||
"support":"Support"
|
"support":"Support"
|
||||||
},
|
},
|
||||||
"sidebar" : {
|
|
||||||
"community":"Gemeinschaft",
|
|
||||||
"members_area":"Mitgliederbereich",
|
|
||||||
"membership":"Mitgliedschaft",
|
|
||||||
"language":"Sprachen"
|
|
||||||
},
|
|
||||||
"landing1" : {
|
|
||||||
"explore": "Erkunden Sie Gradido",
|
|
||||||
"text": "Gesundes Geld für eine gesunde Welt — Das Gradido-Modell kann weltweiten Wohlstand und Frieden schaffen",
|
|
||||||
"link": "Seiten erkunden"
|
|
||||||
},
|
|
||||||
"404" : {
|
"404" : {
|
||||||
"ooops" : "Ooops!",
|
"ooops" : "Ooops!",
|
||||||
"text" : "Seite nicht gefunden. Aber keine Sorge, wir haben noch viele andere Seiten zum Erkunden",
|
"text" : "Seite nicht gefunden. Aber keine Sorge, wir haben noch viele andere Seiten zum Erkunden",
|
||||||
"back" : "Zurück zur Übersicht!"
|
"back" : "Zurück zur Übersicht!"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nav": {
|
"communitys":{
|
||||||
"features": "Neuigkeiten"
|
"form":{
|
||||||
|
"hours":"Stunden",
|
||||||
|
"date_period":"Datum / Zeitraum",
|
||||||
|
"more_hours":"weitere Stunden",
|
||||||
|
"submit":"Einreichen",
|
||||||
|
"hours_report":"Stundenbericht"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,13 +1,14 @@
|
|||||||
{
|
{
|
||||||
"message": "hello gradido !!",
|
"message": "hello gradido !!",
|
||||||
"welcome":"Welcome!",
|
"welcome":"Welcome!",
|
||||||
|
"community": "Gemeinschaft",
|
||||||
"logout":"Logout",
|
"logout":"Logout",
|
||||||
"login":"Login",
|
"login":"Login",
|
||||||
"signup": "Sign up",
|
"signup": "Sign up",
|
||||||
"imprint":"Legal notice",
|
"imprint":"Legal notice",
|
||||||
"privacy_policy":"Privacy policy",
|
"privacy_policy":"Privacy policy",
|
||||||
"back":"Back",
|
"back":"Back",
|
||||||
"sent":"Send",
|
"send":"Send",
|
||||||
"transactions":"Transactions",
|
"transactions":"Transactions",
|
||||||
"language":"Sprache",
|
"language":"Sprache",
|
||||||
"languages":{
|
"languages":{
|
||||||
@ -15,7 +16,11 @@
|
|||||||
"en": "English"
|
"en": "English"
|
||||||
},
|
},
|
||||||
"form": {
|
"form": {
|
||||||
|
"attention": "Achtung! 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.",
|
||||||
"cancel":"Cancel",
|
"cancel":"Cancel",
|
||||||
|
"close":"Close",
|
||||||
|
"receiver":"Receiver",
|
||||||
|
"sender":"Sender",
|
||||||
"firstname":"Firstname",
|
"firstname":"Firstname",
|
||||||
"lastname":"Lastname",
|
"lastname":"Lastname",
|
||||||
"email":"Email",
|
"email":"Email",
|
||||||
@ -23,14 +28,19 @@
|
|||||||
"password":"Password",
|
"password":"Password",
|
||||||
"password_repeat":"Repeat password",
|
"password_repeat":"Repeat password",
|
||||||
"amount":"Amount",
|
"amount":"Amount",
|
||||||
"memo":"Memo",
|
"memo":"Message for the recipient",
|
||||||
"message":"Message",
|
"message":"Message",
|
||||||
"date":"Date",
|
"date":"Date",
|
||||||
"from":"from",
|
"from":"from",
|
||||||
"to":"to",
|
"to":"to",
|
||||||
"at":"at",
|
"at":"at",
|
||||||
"time":"Time",
|
"time":"Time",
|
||||||
"send_now":"Send now"
|
"send_now":"Send now",
|
||||||
|
"scann_code":"<strong>QR Code Scanner</strong> - Scanne den QR Code deines Partners",
|
||||||
|
"max_gdd_info":"maximale anzahl GDD zum versenden erreicht!",
|
||||||
|
"send_check":"Bestätige deine Zahlung. Prüfe bitte nochmal alle Daten!",
|
||||||
|
"thx":"THX",
|
||||||
|
"send_success":"Deine Zahlung wurde erfolgreich versendet."
|
||||||
},
|
},
|
||||||
"transaction":{
|
"transaction":{
|
||||||
"show_part": "The last <strong>{count}</strong> transactions",
|
"show_part": "The last <strong>{count}</strong> transactions",
|
||||||
@ -67,30 +77,33 @@
|
|||||||
"send_gradido":"Send Gradido",
|
"send_gradido":"Send Gradido",
|
||||||
"add_work":"New Community Contribution"
|
"add_work":"New Community Contribution"
|
||||||
},
|
},
|
||||||
|
"profil": {
|
||||||
|
"transactions":"transactions",
|
||||||
|
"activity": {
|
||||||
|
"chart":"Community Hours Chart",
|
||||||
|
"new":"Register new community hours",
|
||||||
|
"list":"My Community Hours List"
|
||||||
|
}
|
||||||
|
},
|
||||||
"navbar" : {
|
"navbar" : {
|
||||||
"my-profil":"My profile",
|
"my-profil":"My profile",
|
||||||
"settings":"Settings",
|
"settings":"Settings",
|
||||||
"activity":"Activity",
|
"activity":"Activity",
|
||||||
"support":"Support"
|
"support":"Support"
|
||||||
},
|
},
|
||||||
"sidebar" : {
|
|
||||||
"community":"Community",
|
|
||||||
"members_area":"Members area",
|
|
||||||
"membership":"Membership",
|
|
||||||
"language":"Languages"
|
|
||||||
},
|
|
||||||
"landing1" : {
|
|
||||||
"explore":"Explore Gradido",
|
|
||||||
"text":"Healthy money for a healthy world — the Gradido model can create global prosperity and peace",
|
|
||||||
"link":"Explore pages"
|
|
||||||
},
|
|
||||||
"404" : {
|
"404" : {
|
||||||
"ooops" : "Ooops!",
|
"ooops" : "Ooops!",
|
||||||
"text" : "Page not found. Do not worry though, we have plenty of other pages to explore",
|
"text" : "Page not found. Do not worry though, we have plenty of other pages to explore",
|
||||||
"back" : "Back to dashboard!"
|
"back" : "Back to dashboard!"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nav": {
|
"communitys":{
|
||||||
"features": "Features"
|
"form":{
|
||||||
|
"hours":"hours",
|
||||||
|
"date_period":"Date / Period",
|
||||||
|
"more_hours":"more hours",
|
||||||
|
"submit":"submit",
|
||||||
|
"hours_report":"Hourly report"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import NotFound from '@/views/NotFoundPage.vue'
|
|||||||
|
|
||||||
const routes = [
|
const routes = [
|
||||||
{
|
{
|
||||||
path: '/',
|
path: '/login',
|
||||||
redirect: 'login',
|
redirect: 'login',
|
||||||
component: AuthLayoutGDD,
|
component: AuthLayoutGDD,
|
||||||
children: [
|
children: [
|
||||||
@ -33,7 +33,7 @@ const routes = [
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/',
|
path: '/overview',
|
||||||
redirect: 'overview',
|
redirect: 'overview',
|
||||||
component: DashboardLayout,
|
component: DashboardLayout,
|
||||||
children: [
|
children: [
|
||||||
|
|||||||
@ -126,7 +126,7 @@ export const store = new Vuex.Store({
|
|||||||
if (result.success) {
|
if (result.success) {
|
||||||
commit('user_balance', result.result.data.balance)
|
commit('user_balance', result.result.data.balance)
|
||||||
} else {
|
} else {
|
||||||
dispatch('logout')
|
//dispatch('logout')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
<b-tab :title="names.thisMonth" active>
|
<b-tab :title="names.thisMonth" active>
|
||||||
<b-row>
|
<b-row>
|
||||||
<b-col lg="3">
|
<b-col lg="3">
|
||||||
<base-input label="Stunden">
|
<base-input :label="$t('communitys.form.hours')">
|
||||||
<b-form-input
|
<b-form-input
|
||||||
type="number"
|
type="number"
|
||||||
size="lg"
|
size="lg"
|
||||||
@ -12,7 +12,7 @@
|
|||||||
style="font-size: xx-large; padding-left: 5px"
|
style="font-size: xx-large; padding-left: 5px"
|
||||||
/>
|
/>
|
||||||
</base-input>
|
</base-input>
|
||||||
<base-input label="Datum / Zeitraum">
|
<base-input :label="$t('communitys.form.date_period')">
|
||||||
<flat-pickr
|
<flat-pickr
|
||||||
class="form-control"
|
class="form-control"
|
||||||
v-model="date"
|
v-model="date"
|
||||||
@ -22,7 +22,7 @@
|
|||||||
</base-input>
|
</base-input>
|
||||||
</b-col>
|
</b-col>
|
||||||
<b-col lg="9">
|
<b-col lg="9">
|
||||||
<base-input label="Arbeitsreport">
|
<base-input :label="$t('communitys.form.hours_report')">
|
||||||
<textarea
|
<textarea
|
||||||
class="form-control"
|
class="form-control"
|
||||||
rows="5"
|
rows="5"
|
||||||
@ -37,10 +37,14 @@
|
|||||||
</b-row>
|
</b-row>
|
||||||
<b-row>
|
<b-row>
|
||||||
<b-col md="6">
|
<b-col md="6">
|
||||||
<b-button @click.prevent="newWorkForm" variant="warning">+ weitere Stunden</b-button>
|
<b-button @click.prevent="newWorkForm" variant="warning">
|
||||||
|
+ {{ $t('communitys.form.more_hours') }}
|
||||||
|
</b-button>
|
||||||
</b-col>
|
</b-col>
|
||||||
<b-col md="6" class="text-right">
|
<b-col md="6" class="text-right">
|
||||||
<b-button variant="success" @click.prevent="submitForm2">Einreichen, absenden</b-button>
|
<b-button variant="success" @click.prevent="submitForm2">
|
||||||
|
{{ $t('communitys.form.submit') }}
|
||||||
|
</b-button>
|
||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
</b-tab>
|
</b-tab>
|
||||||
|
|||||||
@ -2,22 +2,17 @@
|
|||||||
<div>
|
<div>
|
||||||
<b-row v-show="row_form">
|
<b-row v-show="row_form">
|
||||||
<b-col xl="12" md="12">
|
<b-col xl="12" md="12">
|
||||||
<b-alert variant="warning" show dismissible>
|
<b-alert variant="warning" show dismissible v-html="$t('form.attention')"></b-alert>
|
||||||
<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 class="p-0 p-md-3" style="background-color: #ebebeba3 !important">
|
<b-card class="p-0 p-md-3" style="background-color: #ebebeba3 !important">
|
||||||
<b-alert show variant="secondary">
|
<b-alert show variant="secondary">
|
||||||
<span class="alert-text">
|
<span class="alert-text" v-html="$t('form.scann_code')"></span>
|
||||||
<strong>QR Code Scanner</strong>
|
|
||||||
- Scanne den QR Code deines Partners
|
|
||||||
</span>
|
|
||||||
<b-col v-show="!scan" lg="12" class="text-right">
|
<b-col v-show="!scan" lg="12" class="text-right">
|
||||||
<img src="/img/icons/gradido/qr-scan-pure.png" height="50" @click="scan = true" />
|
<img src="/img/icons/gradido/qr-scan-pure.png" height="50" @click="scan = true" />
|
||||||
</b-col>
|
</b-col>
|
||||||
<b-alert v-show="scan" show variant="warning">
|
<b-alert v-show="scan" show variant="warning">
|
||||||
<span class="alert-text" @click="scan = false"><strong>schließen!</strong></span>
|
<span class="alert-text" @click="scan = false">
|
||||||
|
<strong>{{ $t('form.cancel') }}</strong>
|
||||||
|
</span>
|
||||||
</b-alert>
|
</b-alert>
|
||||||
<div v-if="scan">
|
<div v-if="scan">
|
||||||
<!-- <b-row>
|
<!-- <b-row>
|
||||||
@ -30,10 +25,7 @@
|
|||||||
<b-row>
|
<b-row>
|
||||||
<b-col lg="8">
|
<b-col lg="8">
|
||||||
<b-alert show variant="secondary">
|
<b-alert show variant="secondary">
|
||||||
<span class="alert-text">
|
<span class="alert-text" v-html="$t('form.scann_code')"></span>
|
||||||
<strong>QR Code Scanner</strong>
|
|
||||||
- Scanne den QR Code deines Partners
|
|
||||||
</span>
|
|
||||||
</b-alert>
|
</b-alert>
|
||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
@ -54,7 +46,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<b-col class="text-left p-3 p-sm-1">Empfänger</b-col>
|
<b-col class="text-left p-3 p-sm-1">{{ $t('form.receiver') }}</b-col>
|
||||||
|
|
||||||
<b-input-group
|
<b-input-group
|
||||||
id="input-group-1"
|
id="input-group-1"
|
||||||
@ -80,9 +72,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<b-col class="text-left p-3 p-sm-1">Betrag</b-col>
|
<b-col class="text-left p-3 p-sm-1">{{ $t('form.amount') }}</b-col>
|
||||||
<b-col v-if="$store.state.user.balance == form.amount" class="text-right">
|
<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-badge variant="primary">{{ $t('form.max_gdd_info') }}</b-badge>
|
||||||
</b-col>
|
</b-col>
|
||||||
<b-input-group
|
<b-input-group
|
||||||
id="input-group-2"
|
id="input-group-2"
|
||||||
@ -105,7 +97,7 @@
|
|||||||
style="font-size: xx-large; padding-left: 20px"
|
style="font-size: xx-large; padding-left: 20px"
|
||||||
></b-form-input>
|
></b-form-input>
|
||||||
</b-input-group>
|
</b-input-group>
|
||||||
<b-col class="text-left p-3 p-sm-1">Nachricht für den Empfänger</b-col>
|
<b-col class="text-left p-3 p-sm-1">{{ $t('form.memo') }}</b-col>
|
||||||
|
|
||||||
<b-input-group>
|
<b-input-group>
|
||||||
<b-input-group-prepend class="p-3 d-none d-md-block">
|
<b-input-group-prepend class="p-3 d-none d-md-block">
|
||||||
@ -142,34 +134,37 @@
|
|||||||
</b-row>
|
</b-row>
|
||||||
<b-row v-show="row_check">
|
<b-row v-show="row_check">
|
||||||
<b-col>
|
<b-col>
|
||||||
<div class="display-4 p-4">Bestätige deine Zahlung. Prüfe bitte nochmal alle Daten!</div>
|
<div class="display-4 p-4">{{ $t('form.send_check') }}</div>
|
||||||
|
|
||||||
<b-list-group>
|
<b-list-group>
|
||||||
<b-list-group-item active>Meine Zahlung</b-list-group-item>
|
|
||||||
<b-list-group-item class="d-flex justify-content-between align-items-center">
|
<b-list-group-item class="d-flex justify-content-between align-items-center">
|
||||||
{{ ajaxCreateData.email }}
|
{{ $store.state.ajaxCreateData.email }}
|
||||||
<b-badge variant="primary" pill>Empfänger</b-badge>
|
<b-badge variant="primary" pill>{{ $t('form.receiver') }}</b-badge>
|
||||||
</b-list-group-item>
|
</b-list-group-item>
|
||||||
|
|
||||||
<b-list-group-item class="d-flex justify-content-between align-items-center">
|
<b-list-group-item class="d-flex justify-content-between align-items-center">
|
||||||
{{ ajaxCreateData.amount }} GDD
|
{{ $store.state.ajaxCreateData.amount }} GDD
|
||||||
<b-badge variant="primary" pill>Betrag</b-badge>
|
<b-badge variant="primary" pill>{{ $t('form.amount') }}</b-badge>
|
||||||
</b-list-group-item>
|
</b-list-group-item>
|
||||||
|
|
||||||
<b-list-group-item class="d-flex justify-content-between align-items-center">
|
<b-list-group-item class="d-flex justify-content-between align-items-center">
|
||||||
{{ ajaxCreateData.memo }}
|
{{ $store.state.ajaxCreateData.memo }}
|
||||||
<b-badge variant="primary" pill>Nachricht</b-badge>
|
<b-badge variant="primary" pill>{{ $t('form.message') }}</b-badge>
|
||||||
</b-list-group-item>
|
</b-list-group-item>
|
||||||
<b-list-group-item class="d-flex justify-content-between align-items-center">
|
<b-list-group-item class="d-flex justify-content-between align-items-center">
|
||||||
{{ $moment(ajaxCreateData.target_date).format('DD.MM.YYYY - HH:mm:ss') }}
|
{{ $moment($store.state.ajaxCreateData.target_date).format('DD.MM.YYYY - HH:mm:ss') }}
|
||||||
<b-badge variant="primary" pill>Datum</b-badge>
|
<b-badge variant="primary" pill>{{ $t('form.date') }}</b-badge>
|
||||||
</b-list-group-item>
|
</b-list-group-item>
|
||||||
</b-list-group>
|
</b-list-group>
|
||||||
<hr />
|
<hr />
|
||||||
<b-row>
|
<b-row>
|
||||||
<b-col><b-button @click="onReset">abbrechen</b-button></b-col>
|
<b-col>
|
||||||
|
<b-button @click="onReset">{{ $t('form.cancel') }}</b-button>
|
||||||
|
</b-col>
|
||||||
<b-col class="text-right">
|
<b-col class="text-right">
|
||||||
<b-button variant="success" @click="sendTransaction">jetzt versenden</b-button>
|
<b-button variant="success" @click="sendTransaction">
|
||||||
|
{{ $t('form.send_now') }}
|
||||||
|
</b-button>
|
||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
</b-col>
|
</b-col>
|
||||||
@ -177,12 +172,12 @@
|
|||||||
<b-row v-show="row_thx">
|
<b-row v-show="row_thx">
|
||||||
<b-col>
|
<b-col>
|
||||||
<div class="display-1 p-4">
|
<div class="display-1 p-4">
|
||||||
Danke
|
{{ $t('form.thx') }}
|
||||||
<hr />
|
<hr />
|
||||||
Deine Zahlung wurde erfolgreich versendet.
|
{{ $t('form.send_success') }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<b-button variant="success" @click="onReset">schließen</b-button>
|
<b-button variant="success" @click="onReset">{{ $t('form.close') }}</b-button>
|
||||||
<hr />
|
<hr />
|
||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
@ -229,6 +224,7 @@ export default {
|
|||||||
computed: {},
|
computed: {},
|
||||||
methods: {
|
methods: {
|
||||||
async onDecode(decodedString) {
|
async onDecode(decodedString) {
|
||||||
|
//console.log('onDecode JSON.parse(decodedString)', JSON.parse(decodedString))
|
||||||
const arr = JSON.parse(decodedString)
|
const arr = JSON.parse(decodedString)
|
||||||
this.form.email = arr[0].email
|
this.form.email = arr[0].email
|
||||||
this.form.amount = arr[0].amount
|
this.form.amount = arr[0].amount
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
:key="item.id"
|
:key="item.id"
|
||||||
style="background-color: #ebebeba3 !important"
|
style="background-color: #ebebeba3 !important"
|
||||||
>
|
>
|
||||||
<div class="d-flex w-100 justify-content-between" @click="toogle(item)">
|
<div class="d-flex w-100 justify-content-between">
|
||||||
<b-icon
|
<b-icon
|
||||||
v-if="item.type === 'send'"
|
v-if="item.type === 'send'"
|
||||||
icon="box-arrow-left"
|
icon="box-arrow-left"
|
||||||
@ -33,10 +33,15 @@
|
|||||||
<b-collapse :id="'a' + item.transaction_id" class="mt-2">
|
<b-collapse :id="'a' + item.transaction_id" class="mt-2">
|
||||||
<b-card>
|
<b-card>
|
||||||
<b-list-group>
|
<b-list-group>
|
||||||
<b-list-group-item>
|
<b-list-group-item v-if="item.type === 'send'">
|
||||||
<b-badge class="mr-4" variant="primary" pill>name</b-badge>
|
<b-badge class="mr-4" variant="primary" pill>{{ $t('form.receiver') }}</b-badge>
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
</b-list-group-item>
|
</b-list-group-item>
|
||||||
|
<b-list-group-item v-else>
|
||||||
|
<b-badge class="mr-4" variant="primary" pill>{{ $t('form.sender') }}</b-badge>
|
||||||
|
{{ item.name }}
|
||||||
|
</b-list-group-item>
|
||||||
|
|
||||||
<b-list-group-item>
|
<b-list-group-item>
|
||||||
<b-badge class="mr-4" variant="primary" pill>type</b-badge>
|
<b-badge class="mr-4" variant="primary" pill>type</b-badge>
|
||||||
{{ item.type }}
|
{{ item.type }}
|
||||||
@ -46,7 +51,7 @@
|
|||||||
{{ item.transaction_id }}
|
{{ item.transaction_id }}
|
||||||
</b-list-group-item>
|
</b-list-group-item>
|
||||||
<b-list-group-item>
|
<b-list-group-item>
|
||||||
<b-badge class="mr-4" variant="primary" pill>date</b-badge>
|
<b-badge class="mr-4" variant="primary" pill>{{ $t('form.date') }}</b-badge>
|
||||||
{{ item.date }}
|
{{ item.date }}
|
||||||
</b-list-group-item>
|
</b-list-group-item>
|
||||||
<b-list-group-item>
|
<b-list-group-item>
|
||||||
@ -54,7 +59,7 @@
|
|||||||
{{ item.balance }}
|
{{ item.balance }}
|
||||||
</b-list-group-item>
|
</b-list-group-item>
|
||||||
<b-list-group-item>
|
<b-list-group-item>
|
||||||
<b-badge class="mr-4" variant="primary" pill>memo</b-badge>
|
<b-badge class="mr-4" variant="primary" pill>{{ $t('form.memo') }}</b-badge>
|
||||||
{{ item.memo }}
|
{{ item.memo }}
|
||||||
</b-list-group-item>
|
</b-list-group-item>
|
||||||
</b-list-group>
|
</b-list-group>
|
||||||
@ -134,10 +139,6 @@ export default {
|
|||||||
if (item.type === 'send') return 'table-warning'
|
if (item.type === 'send') return 'table-warning'
|
||||||
if (item.type === 'creation') return 'table-primary'
|
if (item.type === 'creation') return 'table-primary'
|
||||||
},
|
},
|
||||||
toogle(item) {
|
|
||||||
const temp =
|
|
||||||
'<b-collapse visible v-bind:id="item.id">xxx <small class="text-muted">porta</small></b-collapse>'
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -5,6 +5,10 @@
|
|||||||
<div class="copyright text-center text-lg-center text-muted">
|
<div class="copyright text-center text-lg-center text-muted">
|
||||||
© {{ year }}
|
© {{ year }}
|
||||||
<a href="#/Login" class="font-weight-bold ml-1">Gradido-Akademie</a>
|
<a href="#/Login" class="font-weight-bold ml-1">Gradido-Akademie</a>
|
||||||
|
|
|
||||||
|
<a href="https://github.com/gradido/gradido/releases/latest" target="_blank">
|
||||||
|
App Verion {{ version }}
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
@ -20,19 +24,25 @@
|
|||||||
<b-nav-item :href="`https://gradido.net/${$i18n.locale}/datenschutz/`" target="_blank">
|
<b-nav-item :href="`https://gradido.net/${$i18n.locale}/datenschutz/`" target="_blank">
|
||||||
{{ $t('privacy_policy') }}
|
{{ $t('privacy_policy') }}
|
||||||
</b-nav-item>
|
</b-nav-item>
|
||||||
<!--<b-nav-item href="#!" to="/explorer" >
|
<b-nav-item
|
||||||
GDD-Explorer
|
:href="`https://elopage.com/s/gradido/sign_in?locale=${$i18n.locale}`"
|
||||||
</b-nav-item> -->
|
target="_blank"
|
||||||
|
>
|
||||||
|
{{ $t('site.sidebar.members_area') }}
|
||||||
|
</b-nav-item>
|
||||||
</b-nav>
|
</b-nav>
|
||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
</footer>
|
</footer>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
import CONFIG from '../../config'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
year: new Date().getFullYear(),
|
year: new Date().getFullYear(),
|
||||||
|
version: CONFIG.APP_VERSION,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
144
frontend/src/views/Layout/DashboardLayout_gdd.spec.js
Normal file
144
frontend/src/views/Layout/DashboardLayout_gdd.spec.js
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
import { mount, RouterLinkStub } from '@vue/test-utils'
|
||||||
|
import VueRouter from 'vue-router'
|
||||||
|
import Vuex from 'vuex'
|
||||||
|
import flushPromises from 'flush-promises'
|
||||||
|
import routes from '../../routes/routes'
|
||||||
|
import DashboardLayoutGdd from './DashboardLayout_gdd'
|
||||||
|
|
||||||
|
jest.useFakeTimers()
|
||||||
|
|
||||||
|
const localVue = global.localVue
|
||||||
|
|
||||||
|
const router = new VueRouter({ routes })
|
||||||
|
|
||||||
|
const transitionStub = () => ({
|
||||||
|
render(h) {
|
||||||
|
return this.$options._renderChildren
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('DashboardLayoutGdd', () => {
|
||||||
|
let wrapper
|
||||||
|
|
||||||
|
let mocks = {
|
||||||
|
$i18n: {
|
||||||
|
locale: 'en',
|
||||||
|
},
|
||||||
|
$t: jest.fn((t) => t),
|
||||||
|
$n: jest.fn(),
|
||||||
|
}
|
||||||
|
|
||||||
|
let state = {
|
||||||
|
user: {
|
||||||
|
name: 'Peter Lustig',
|
||||||
|
balance: 2546,
|
||||||
|
balance_gdt: 20,
|
||||||
|
},
|
||||||
|
email: 'peter.lustig@example.org',
|
||||||
|
}
|
||||||
|
|
||||||
|
let stubs = {
|
||||||
|
RouterLink: RouterLinkStub,
|
||||||
|
FadeTransition: transitionStub(),
|
||||||
|
}
|
||||||
|
|
||||||
|
let store = new Vuex.Store({
|
||||||
|
state,
|
||||||
|
})
|
||||||
|
|
||||||
|
const Wrapper = () => {
|
||||||
|
return mount(DashboardLayoutGdd, { localVue, mocks, router, store, stubs })
|
||||||
|
}
|
||||||
|
|
||||||
|
describe('mount', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
wrapper = Wrapper()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('has a sidebar', () => {
|
||||||
|
expect(wrapper.find('nav#sidenav-main').exists()).toBeTruthy()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('has a notifications component', () => {
|
||||||
|
expect(wrapper.find('div.notifications').exists()).toBeTruthy()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('has a main content div', () => {
|
||||||
|
expect(wrapper.find('div.main-content').exists()).toBeTruthy()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('has a footer inside the main content', () => {
|
||||||
|
expect(wrapper.find('div.main-content').find('footer.footer').exists()).toBeTruthy()
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('navigation bar', () => {
|
||||||
|
let navbar
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
navbar = wrapper.findAll('ul.navbar-nav').at(0)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('has five items in the navbar', () => {
|
||||||
|
expect(navbar.findAll('ul > li')).toHaveLength(5)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('has first item "send" in navbar', () => {
|
||||||
|
expect(navbar.findAll('ul > li').at(0).text()).toEqual('sent')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('has first item "send" linked to overview in navbar', () => {
|
||||||
|
navbar.findAll('ul > li').at(0).trigger('click')
|
||||||
|
expect(wrapper.findComponent(RouterLinkStub).props().to).toBe('/overview')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('has second item "transactions" in navbar', () => {
|
||||||
|
expect(navbar.findAll('ul > li').at(1).text()).toEqual('transactions')
|
||||||
|
})
|
||||||
|
|
||||||
|
// to do: get this working!
|
||||||
|
it.skip('has second item "transactions" linked to transactions in navbar', async () => {
|
||||||
|
navbar.findAll('ul > li > a').at(1).trigger('click')
|
||||||
|
await flushPromises()
|
||||||
|
await jest.runAllTimers()
|
||||||
|
await flushPromises()
|
||||||
|
expect(wrapper.findComponent(RouterLinkStub).props().to).toBe('/transactions')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('has third item "My profile" in navbar', () => {
|
||||||
|
expect(navbar.findAll('ul > li').at(2).text()).toEqual('site.navbar.my-profil')
|
||||||
|
})
|
||||||
|
|
||||||
|
it.skip('has third item "My profile" linked to profile in navbar', async () => {
|
||||||
|
navbar.findAll('ul > li > a').at(2).trigger('click')
|
||||||
|
await flushPromises()
|
||||||
|
await jest.runAllTimers()
|
||||||
|
await flushPromises()
|
||||||
|
expect(wrapper.findComponent(RouterLinkStub).props().to).toBe('/profile')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('has fourth item "Settigs" in navbar', () => {
|
||||||
|
expect(navbar.findAll('ul > li').at(3).text()).toEqual('site.navbar.settings')
|
||||||
|
})
|
||||||
|
|
||||||
|
it.skip('has fourth item "Settings" linked to profileedit in navbar', async () => {
|
||||||
|
navbar.findAll('ul > li > a').at(3).trigger('click')
|
||||||
|
await flushPromises()
|
||||||
|
await jest.runAllTimers()
|
||||||
|
await flushPromises()
|
||||||
|
expect(wrapper.findComponent(RouterLinkStub).props().to).toBe('/profileedit')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('has fifth item "Activity" in navbar', () => {
|
||||||
|
expect(navbar.findAll('ul > li').at(4).text()).toEqual('site.navbar.activity')
|
||||||
|
})
|
||||||
|
|
||||||
|
it.skip('has fourth item "Activity" linked to activity in navbar', async () => {
|
||||||
|
navbar.findAll('ul > li > a').at(4).trigger('click')
|
||||||
|
await flushPromises()
|
||||||
|
await jest.runAllTimers()
|
||||||
|
await flushPromises()
|
||||||
|
expect(wrapper.findComponent(RouterLinkStub).props().to).toBe('/activity')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
@ -4,7 +4,7 @@
|
|||||||
<side-bar>
|
<side-bar>
|
||||||
<template slot="links">
|
<template slot="links">
|
||||||
<b-nav-item href="#!" to="/overview">
|
<b-nav-item href="#!" to="/overview">
|
||||||
<b-nav-text class="p-0 text-lg text-muted">{{ $t('sent') }}</b-nav-text>
|
<b-nav-text class="p-0 text-lg text-muted">{{ $t('send') }}</b-nav-text>
|
||||||
</b-nav-item>
|
</b-nav-item>
|
||||||
<b-nav-item href="#!" to="/transactions">
|
<b-nav-item href="#!" to="/transactions">
|
||||||
<b-nav-text class="p-0 text-lg text-muted">{{ $t('transactions') }}</b-nav-text>
|
<b-nav-text class="p-0 text-lg text-muted">{{ $t('transactions') }}</b-nav-text>
|
||||||
@ -15,7 +15,6 @@
|
|||||||
<b-nav-item href="#!" to="/profileedit">
|
<b-nav-item href="#!" to="/profileedit">
|
||||||
<b-nav-text class="p-0 text-lg text-muted">{{ $t('site.navbar.settings') }}</b-nav-text>
|
<b-nav-text class="p-0 text-lg text-muted">{{ $t('site.navbar.settings') }}</b-nav-text>
|
||||||
</b-nav-item>
|
</b-nav-item>
|
||||||
|
|
||||||
<b-nav-item href="#!" to="/activity">
|
<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-text class="p-0 text-lg text-muted">{{ $t('site.navbar.activity') }}</b-nav-text>
|
||||||
</b-nav-item>
|
</b-nav-item>
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
<div class="header pb-7 pt-5"></div>
|
<div class="header pb-7 pt-5"></div>
|
||||||
|
|
||||||
<b-container fluid class="mt--6">
|
<b-container fluid class="mt--6">
|
||||||
<div class="display-4 mb-3">Gemeinschaftsstunden Chart</div>
|
<div class="display-4 mb-3">{{ $t('site.profil.activity.chart') }}</div>
|
||||||
<b-row>
|
<b-row>
|
||||||
<b-col>
|
<b-col>
|
||||||
<div class="chart">
|
<div class="chart">
|
||||||
@ -12,7 +12,7 @@
|
|||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
<hr />
|
<hr />
|
||||||
<div class="display-4 mt-6">Neue Gemeinschaftsstunden eintragen</div>
|
<div class="display-4 mt-6">{{ $t('site.profil.activity.new') }}</div>
|
||||||
<b-row>
|
<b-row>
|
||||||
<b-col>
|
<b-col>
|
||||||
<gdd-add-work-2 />
|
<gdd-add-work-2 />
|
||||||
@ -20,10 +20,10 @@
|
|||||||
</b-row>
|
</b-row>
|
||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
<div class="display-4 mb-3">Meine Gemeinschaftsstunden Liste</div>
|
<div class="display-4 mb-3">{{ $t('site.profil.activity.list') }}</div>
|
||||||
<b-row>
|
<b-row>
|
||||||
<b-col class="mb-5">
|
<b-col class="mb-5">
|
||||||
community
|
{{ $t('community') }}
|
||||||
<gdd-work-table></gdd-work-table>
|
<gdd-work-table></gdd-work-table>
|
||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
|
|||||||
@ -9,6 +9,13 @@ import { messages } from 'vee-validate/dist/locale/en.json'
|
|||||||
import BaseInput from '@/components/Inputs/BaseInput.vue'
|
import BaseInput from '@/components/Inputs/BaseInput.vue'
|
||||||
import BaseButton from '@/components/BaseButton.vue'
|
import BaseButton from '@/components/BaseButton.vue'
|
||||||
import RegeneratorRuntime from 'regenerator-runtime'
|
import RegeneratorRuntime from 'regenerator-runtime'
|
||||||
|
import Notifications from '@/components/NotificationPlugin'
|
||||||
|
import SideBar from '@/components/SidebarPlugin'
|
||||||
|
import VueRouter from 'vue-router'
|
||||||
|
import BaseDropdown from '@/components/BaseDropdown.vue'
|
||||||
|
import VueQrcode from 'vue-qrcode'
|
||||||
|
|
||||||
|
import clickOutside from '@/directives/click-ouside.js'
|
||||||
|
|
||||||
global.localVue = createLocalVue()
|
global.localVue = createLocalVue()
|
||||||
|
|
||||||
@ -24,7 +31,14 @@ global.localVue.use(BootstrapVue)
|
|||||||
global.localVue.use(Vuex)
|
global.localVue.use(Vuex)
|
||||||
global.localVue.use(IconsPlugin)
|
global.localVue.use(IconsPlugin)
|
||||||
global.localVue.use(RegeneratorRuntime)
|
global.localVue.use(RegeneratorRuntime)
|
||||||
|
global.localVue.use(Notifications)
|
||||||
|
global.localVue.use(SideBar)
|
||||||
|
global.localVue.use(VueRouter)
|
||||||
|
global.localVue.use(VueQrcode)
|
||||||
global.localVue.component(BaseInput.name, BaseInput)
|
global.localVue.component(BaseInput.name, BaseInput)
|
||||||
global.localVue.component('validation-provider', ValidationProvider)
|
global.localVue.component('validation-provider', ValidationProvider)
|
||||||
global.localVue.component('validation-observer', ValidationObserver)
|
global.localVue.component('validation-observer', ValidationObserver)
|
||||||
global.localVue.component(BaseButton.name, BaseButton)
|
global.localVue.component(BaseButton.name, BaseButton)
|
||||||
|
global.localVue.component(BaseDropdown.name, BaseDropdown)
|
||||||
|
|
||||||
|
global.localVue.directive('click-outside', clickOutside)
|
||||||
|
|||||||
@ -221,7 +221,7 @@ Poco::JSON::Object* JsonCreateTransaction::groupMemberUpdate(Poco::Dynamic::Var
|
|||||||
return stateError("groupMemberUpdate not allowed with mysql blockchain");
|
return stateError("groupMemberUpdate not allowed with mysql blockchain");
|
||||||
}
|
}
|
||||||
if (mTargetGroup.isNull()) {
|
if (mTargetGroup.isNull()) {
|
||||||
return stateError("target_group not found");
|
return stateError("group not found");
|
||||||
}
|
}
|
||||||
auto transaction = model::gradido::Transaction::createGroupMemberUpdate(mSession->getNewUser(), mTargetGroup);
|
auto transaction = model::gradido::Transaction::createGroupMemberUpdate(mSession->getNewUser(), mTargetGroup);
|
||||||
if (mAutoSign) {
|
if (mAutoSign) {
|
||||||
@ -293,7 +293,7 @@ bool JsonCreateTransaction::getTargetGroup(Poco::Dynamic::Var params)
|
|||||||
Poco::JSON::Object::Ptr paramJsonObject = params.extract<Poco::JSON::Object::Ptr>();
|
Poco::JSON::Object::Ptr paramJsonObject = params.extract<Poco::JSON::Object::Ptr>();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
auto target_group = paramJsonObject->get("target_group");
|
auto target_group = paramJsonObject->get("group");
|
||||||
if (!target_group.isEmpty()) {
|
if (!target_group.isEmpty()) {
|
||||||
target_group.convert(target_group_alias);
|
target_group.convert(target_group_alias);
|
||||||
auto groups = controller::Group::load(target_group_alias);
|
auto groups = controller::Group::load(target_group_alias);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user