mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Merge branch 'master' of github.com:gradido/gradido
This commit is contained in:
commit
a68cad4b87
18
.github/workflows/push.yml
vendored
18
.github/workflows/push.yml
vendored
@ -1,18 +0,0 @@
|
|||||||
name: on-push
|
|
||||||
on: push
|
|
||||||
jobs:
|
|
||||||
test:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Build the stack
|
|
||||||
run: |
|
|
||||||
git submodule update --init --recursive
|
|
||||||
docker-compose up -d
|
|
||||||
- name: Test
|
|
||||||
env:
|
|
||||||
GN_INSTANCE_FOLDER: /tmp/gradio-node-instance
|
|
||||||
GN_CONTAINER_NAME: gradido-node-build
|
|
||||||
run: docker run gradido-node-test
|
|
||||||
timeout-minutes: 2
|
|
||||||
|
|
||||||
116
.github/workflows/test.yml
vendored
116
.github/workflows/test.yml
vendored
@ -4,34 +4,13 @@ name: gradido test CI
|
|||||||
on: [push]
|
on: [push]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
##############################################################################
|
|
||||||
# JOB: PREPARE #####################################################
|
|
||||||
##############################################################################
|
|
||||||
#prepare:
|
|
||||||
# name: Prepare
|
|
||||||
# runs-on: ubuntu-latest
|
|
||||||
# # needs: [nothing]
|
|
||||||
# steps:
|
|
||||||
# ##########################################################################
|
|
||||||
# # CHECKOUT CODE ##########################################################
|
|
||||||
# ##########################################################################
|
|
||||||
# - name: Checkout code
|
|
||||||
# uses: actions/checkout@v2
|
|
||||||
# ##########################################################################
|
|
||||||
# # TODO: DO STUFF ??? #####################################################
|
|
||||||
# ##########################################################################
|
|
||||||
# - name: Check translation files
|
|
||||||
# run: |
|
|
||||||
# scripts/translations/sort.sh
|
|
||||||
# scripts/translations/missing-keys.sh
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# JOB: DOCKER BUILD TEST FRONTEND ############################################
|
# JOB: DOCKER BUILD TEST FRONTEND ############################################
|
||||||
##############################################################################
|
##############################################################################
|
||||||
build_test_frontend:
|
build_test_frontend:
|
||||||
name: Docker Build Test - Frontend
|
name: Docker Build Test - Frontend
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
#needs: [nothing] # [prepare]
|
#needs: [nothing]
|
||||||
steps:
|
steps:
|
||||||
##########################################################################
|
##########################################################################
|
||||||
# CHECKOUT CODE ##########################################################
|
# CHECKOUT CODE ##########################################################
|
||||||
@ -39,7 +18,7 @@ jobs:
|
|||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
##########################################################################
|
##########################################################################
|
||||||
# NEO4J ##################################################################
|
# FRONTEND ###############################################################
|
||||||
##########################################################################
|
##########################################################################
|
||||||
- name: Frontend | Build `test` image
|
- name: Frontend | Build `test` image
|
||||||
run: |
|
run: |
|
||||||
@ -78,30 +57,58 @@ jobs:
|
|||||||
# path: /tmp/backend.tar
|
# path: /tmp/backend.tar
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# JOB: DOCKER BUILD TEST WEBAPP ##############################################
|
# JOB: DOCKER BUILD TEST LOGIN SERVER ########################################
|
||||||
##############################################################################
|
##############################################################################
|
||||||
#build_test_webapp:
|
build_test_login_server:
|
||||||
# name: Docker Build Test - WebApp
|
name: Docker Build Test - Login Server
|
||||||
# runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
# needs: [prepare]
|
#needs: [nothing]
|
||||||
# steps:
|
steps:
|
||||||
# ##########################################################################
|
##########################################################################
|
||||||
# # CHECKOUT CODE ##########################################################
|
# CHECKOUT CODE ##########################################################
|
||||||
# ##########################################################################
|
##########################################################################
|
||||||
# - name: Checkout code
|
- name: Checkout code
|
||||||
# uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
# ##########################################################################
|
with:
|
||||||
# # BUILD WEBAPP DOCKER IMAGE (build) ######################################
|
submodules: recursive
|
||||||
# ##########################################################################
|
##########################################################################
|
||||||
# - name: webapp | Build `test` image
|
# BUILD LOGIN SERVER DOCKER IMAGE (build) ################################
|
||||||
# run: |
|
##########################################################################
|
||||||
# docker build --target test -t "ocelotsocialnetwork/webapp:test" webapp/
|
- name: login server | Build `test` image
|
||||||
# docker save "ocelotsocialnetwork/webapp:test" > /tmp/webapp.tar
|
run: |
|
||||||
# - name: Upload Artifact
|
docker build --target login_server_debug -t "gradido/loginserver:test" -f ./login_server/Dockerfile.debug login_server/
|
||||||
# uses: actions/upload-artifact@v2
|
docker save "gradido/loginserver:test" > /tmp/loginserver.tar
|
||||||
# with:
|
- name: Upload Artifact
|
||||||
# name: docker-webapp-test
|
uses: actions/upload-artifact@v2
|
||||||
# path: /tmp/webapp.tar
|
with:
|
||||||
|
name: docker-loginserver-test
|
||||||
|
path: /tmp/loginserver.tar
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# JOB: DOCKER BUILD TEST COMMUNITY SERVER ####################################
|
||||||
|
##############################################################################
|
||||||
|
build_test_community_server:
|
||||||
|
name: Docker Build Test - Community Server
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
#needs: [nothing]
|
||||||
|
steps:
|
||||||
|
##########################################################################
|
||||||
|
# CHECKOUT CODE ##########################################################
|
||||||
|
##########################################################################
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
##########################################################################
|
||||||
|
# BUILD COMMUNITY SERVER DOCKER IMAGE (build) ############################
|
||||||
|
##########################################################################
|
||||||
|
- name: community server | Build `test` image
|
||||||
|
run: |
|
||||||
|
docker build -t "gradido/communityserver:test" -f ./community_server/Dockerfile ./
|
||||||
|
docker save "gradido/communityserver:test" > /tmp/communityserver.tar
|
||||||
|
- name: Upload Artifact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: docker-communityserver-test
|
||||||
|
path: /tmp/communityserver.tar
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# JOB: LINT FRONTEND #########################################################
|
# JOB: LINT FRONTEND #########################################################
|
||||||
@ -241,4 +248,19 @@ jobs:
|
|||||||
# run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps webapp
|
# run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps webapp
|
||||||
# - name: webapp | Unit tests
|
# - name: webapp | Unit tests
|
||||||
# #run: docker run --rm ocelotsocialnetwork/webapp:build yarn run test
|
# #run: docker run --rm ocelotsocialnetwork/webapp:build yarn run test
|
||||||
# run: docker-compose exec -T webapp yarn test
|
# run: docker-compose exec -T webapp yarn test
|
||||||
|
|
||||||
|
#test:
|
||||||
|
# runs-on: ubuntu-latest
|
||||||
|
# steps:
|
||||||
|
# - uses: actions/checkout@v2
|
||||||
|
# - name: Build the stack
|
||||||
|
# run: |
|
||||||
|
# git submodule update --init --recursive
|
||||||
|
# docker-compose up -d
|
||||||
|
# - name: Test
|
||||||
|
# env:
|
||||||
|
# GN_INSTANCE_FOLDER: /tmp/gradio-node-instance
|
||||||
|
# GN_CONTAINER_NAME: gradido-node-build
|
||||||
|
# run: docker run gradido-node-test
|
||||||
|
# timeout-minutes: 2
|
||||||
11
.gitmodules
vendored
11
.gitmodules
vendored
@ -2,12 +2,12 @@
|
|||||||
path = gn
|
path = gn
|
||||||
url = https://github.com/gradido/gn.git
|
url = https://github.com/gradido/gn.git
|
||||||
branch = master
|
branch = master
|
||||||
[submodule "mithril_client"]
|
#[submodule "mithril_client"]
|
||||||
path = community_server/mithril_client
|
# path = community_server/mithril_client
|
||||||
url = git@github.com:gradido/gradido_mithrilJS_client.git
|
# url = https://github.com/gradido/gradido_mithrilJS_client.git
|
||||||
[submodule "src/protobuf"]
|
[submodule "src/protobuf"]
|
||||||
path = community_server/src/protobuf
|
path = community_server/src/protobuf
|
||||||
url = git@github.com:gradido/gradido_protocol.git
|
url = https://github.com/gradido/gradido_protocol.git
|
||||||
[submodule "dependencies/tinf"]
|
[submodule "dependencies/tinf"]
|
||||||
path = login_server/dependencies/tinf
|
path = login_server/dependencies/tinf
|
||||||
url = https://github.com/jibsen/tinf.git
|
url = https://github.com/jibsen/tinf.git
|
||||||
@ -22,5 +22,4 @@
|
|||||||
url = https://github.com/gradido/iroha-ed25519.git
|
url = https://github.com/gradido/iroha-ed25519.git
|
||||||
[submodule "dependencies/spirit-po"]
|
[submodule "dependencies/spirit-po"]
|
||||||
path = login_server/dependencies/spirit-po
|
path = login_server/dependencies/spirit-po
|
||||||
url = https://github.com/cbeck88/spirit-po.git
|
url = https://github.com/cbeck88/spirit-po.git
|
||||||
|
|
||||||
21
CHANGELOG.md
21
CHANGELOG.md
@ -4,4 +4,25 @@ 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).
|
||||||
|
|
||||||
|
#### [0.9.2](https://github.com/gradido/gradido/compare/0.9.1...0.9.2)
|
||||||
|
|
||||||
|
- Reload after login fixed [`#50`](https://github.com/gradido/gradido/pull/50)
|
||||||
|
- Monorepo login server [`#48`](https://github.com/gradido/gradido/pull/48)
|
||||||
|
- Stage0 [`#3`](https://github.com/gradido/gradido/pull/3)
|
||||||
|
- Add auto-sign Transaction functionality [`5592275`](https://github.com/gradido/gradido/commit/55922753a7ffd9552be132501d744da491c409b5)
|
||||||
|
- read in login the real client ip X-Real-IP from nginx forwarded not from community server [`512d307`](https://github.com/gradido/gradido/commit/512d307a19b955bb6e26ae8b274def354829b50f)
|
||||||
|
- move check if all passwords allow direct into pwdValidation so it will work with every code which ask for password [`e2c38c1`](https://github.com/gradido/gradido/commit/e2c38c1a0fc25a4a2bc922c4bbc44d86b6d00d8b)
|
||||||
|
|
||||||
#### 0.9.1
|
#### 0.9.1
|
||||||
|
|
||||||
|
> 13 March 2021
|
||||||
|
|
||||||
|
- Login gbb [`#12`](https://github.com/gradido/gradido/pull/12)
|
||||||
|
- Admin prework axios json [`#10`](https://github.com/gradido/gradido/pull/10)
|
||||||
|
- Merge pull request #1 from gradido/master [`#8`](https://github.com/gradido/gradido/pull/8)
|
||||||
|
- [WIP] 2 create a dockerfile for the frontend application [`#6`](https://github.com/gradido/gradido/pull/6)
|
||||||
|
- Master - first step [`#1`](https://github.com/gradido/gradido/pull/1)
|
||||||
|
- Add docker compose [`#7`](https://github.com/gradido/gradido/pull/7)
|
||||||
|
- style 404 side :) [`c7bdf89`](https://github.com/gradido/gradido/commit/c7bdf8978594b932615e48f9bb1c19d3c3bf3fcf)
|
||||||
|
- publish workflow test [`df6f66f`](https://github.com/gradido/gradido/commit/df6f66ffe70baa9ed3f70b460a6c0c14011bb944)
|
||||||
|
- many translations. translation structure [`bf68547`](https://github.com/gradido/gradido/commit/bf685479767d19c246c4d6abe3577dc3cb666346)
|
||||||
|
|||||||
@ -1 +0,0 @@
|
|||||||
Subproject commit f0b1d113cee2a76e9dbb098b315f4acaf38410d0
|
|
||||||
@ -35,6 +35,15 @@ class StateBalance extends Entity
|
|||||||
|
|
||||||
protected $_virtual = ['decay'];
|
protected $_virtual = ['decay'];
|
||||||
|
|
||||||
|
private function convertToTimestamp($dateOrTime)
|
||||||
|
{
|
||||||
|
if(method_exists($dateOrTime, 'getTimestamp')) {
|
||||||
|
return $dateOrTime->getTimestamp();
|
||||||
|
} else {
|
||||||
|
return $dateOrTime->i18nFormat(Time::UNIX_TIMESTAMP_FORMAT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected function _getDecay()
|
protected function _getDecay()
|
||||||
{
|
{
|
||||||
// decay factor in seconds per year
|
// decay factor in seconds per year
|
||||||
@ -44,7 +53,7 @@ class StateBalance extends Entity
|
|||||||
// SELECT TIMESTAMPDIFF(SECOND, modified, CURDATE()) AS age_in_seconds from state_balances
|
// SELECT TIMESTAMPDIFF(SECOND, modified, CURDATE()) AS age_in_seconds from state_balances
|
||||||
// decay_for_duration = decay_factor^seconds
|
// decay_for_duration = decay_factor^seconds
|
||||||
// decay = gradido_cent * decay_for_duration
|
// decay = gradido_cent * decay_for_duration
|
||||||
$decay_duration = intval(Time::now()->getTimestamp() - $this->record_date->getTimestamp());
|
$decay_duration = $this->decayDuration(Time::now());
|
||||||
if($decay_duration === 0) {
|
if($decay_duration === 0) {
|
||||||
return $this->amount;
|
return $this->amount;
|
||||||
}
|
}
|
||||||
@ -53,7 +62,8 @@ class StateBalance extends Entity
|
|||||||
}
|
}
|
||||||
public function partDecay($target_date)
|
public function partDecay($target_date)
|
||||||
{
|
{
|
||||||
$decay_duration = intval($target_date->getTimestamp() - $this->record_date->getTimestamp());
|
if($target_date == null) return 0;
|
||||||
|
$decay_duration = $this->decayDuration($target_date);
|
||||||
if($decay_duration <= 0) {
|
if($decay_duration <= 0) {
|
||||||
return $this->amount;
|
return $this->amount;
|
||||||
}
|
}
|
||||||
@ -61,7 +71,8 @@ class StateBalance extends Entity
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function decayDuration($target_date)
|
public function decayDuration($target_date)
|
||||||
{
|
{
|
||||||
return intval($target_date->getTimestamp() - $this->record_date->getTimestamp());
|
if($this->record_date == null) return 0;
|
||||||
|
return intval($this->convertToTimestamp($target_date) - $this->record_date->getTimestamp());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
namespace Model\Transactions;
|
namespace Model\Transactions;
|
||||||
|
|
||||||
use Cake\ORM\TableRegistry;
|
use Cake\ORM\TableRegistry;
|
||||||
|
use Cake\I18n\Date;
|
||||||
|
|
||||||
class TransactionBody extends TransactionBase {
|
class TransactionBody extends TransactionBase {
|
||||||
private $mProtoTransactionBody = null;
|
private $mProtoTransactionBody = null;
|
||||||
@ -75,6 +76,7 @@ class TransactionBody extends TransactionBase {
|
|||||||
|
|
||||||
$transactionEntity->transaction_type_id = $this->transactionTypeId;
|
$transactionEntity->transaction_type_id = $this->transactionTypeId;
|
||||||
$transactionEntity->memo = $this->getMemo();
|
$transactionEntity->memo = $this->getMemo();
|
||||||
|
$transactionEntity->received = new Date();
|
||||||
|
|
||||||
if ($transactionsTable->save($transactionEntity)) {
|
if ($transactionsTable->save($transactionEntity)) {
|
||||||
// success
|
// success
|
||||||
|
|||||||
@ -5,7 +5,8 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
extends: ['plugin:vue/essential'],
|
extends: ['plugin:vue/essential'],
|
||||||
rules: {
|
rules: {
|
||||||
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
// TODO no console!
|
||||||
|
'no-console': 'off',
|
||||||
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
|
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
|
||||||
},
|
},
|
||||||
parserOptions: {
|
parserOptions: {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "bootstrap-vue-gradido-wallet",
|
"name": "bootstrap-vue-gradido-wallet",
|
||||||
"version": "0.9.1",
|
"version": "0.9.2",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node server.js",
|
"start": "node server.js",
|
||||||
|
|||||||
@ -4,8 +4,7 @@
|
|||||||
</header>
|
</header>
|
||||||
<div class="">
|
<div class="">
|
||||||
<particles-bg type="custom" :config="config" :bg="true" />
|
<particles-bg type="custom" :config="config" :bg="true" />
|
||||||
<router-view />
|
<router-view />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -19,17 +18,17 @@ export default {
|
|||||||
components: {
|
components: {
|
||||||
ParticlesBg
|
ParticlesBg
|
||||||
},
|
},
|
||||||
created () {
|
created () {
|
||||||
//console.log("this.$cookies.get('gdd_session_id') ", this.$cookies.get('gdd_session_id') )
|
console.log('%cWillkommen bei Gradido %cgreen text', 'font-weight:bold', 'color: green')
|
||||||
console.log(" $cookies.isKey('gdd_session_id') ", this.$cookies.isKey("gdd_session_id") )
|
if ( $cookies.isKey("gdd_session_id") == true) {
|
||||||
if ( this.$cookies.isKey('gdd_session_id') ) {
|
console.log('%cHey %c'+$cookies.get("gdd_u")+'', 'font-weight:bold', 'color: orange')
|
||||||
//this.$store.state.email = this.$cookies.get('gdd_u')
|
this.$store.commit('session_id', $cookies.get("gdd_session_id"))
|
||||||
console.log("login to kontooverview")
|
this.$store.commit('email', $cookies.get("gdd_u"))
|
||||||
this.$router.push('/KontoOverview')
|
this.$router.push("overview")
|
||||||
}else {
|
}else {
|
||||||
console.log("login to LOGIN")
|
console.log("app.vue to Logout")
|
||||||
this.$router.push("/Login")
|
this.$store.dispatch('logout')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -52,7 +51,7 @@ export default {
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
.btn {
|
.btn-primary pim{
|
||||||
background-color: #5A7B02;
|
background-color: #5A7B02;
|
||||||
border-color: #5e72e4;
|
border-color: #5e72e4;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<bread-crumb list-classes="breadcrumb-links breadcrumb-dark">
|
<bread-crumb list-classes="breadcrumb-links breadcrumb-dark">
|
||||||
<BreadCrumbItem>
|
<BreadCrumbItem>
|
||||||
<router-link to="/">
|
<router-link to="/overview">
|
||||||
<i class="fas fa-home"></i>
|
<i class="fas fa-home"></i>
|
||||||
</router-link>
|
</router-link>
|
||||||
</BreadCrumbItem>
|
</BreadCrumbItem>
|
||||||
|
|||||||
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
<template slot="footer">
|
<template slot="footer">
|
||||||
<base-button type="white">Ok</base-button>
|
<base-button type="white">Ok</base-button>
|
||||||
<base-button type="link" class="text-white ml-auto" @click="$store.state.modals = false">abbrechen</base-button>
|
<base-button type="link" class="ml-auto" @click="$store.state.modals = false">abbrechen</base-button>
|
||||||
</template>
|
</template>
|
||||||
</modal>
|
</modal>
|
||||||
|
|
||||||
|
|||||||
@ -6,12 +6,12 @@
|
|||||||
<navbar-toggle-button @click.native="showSidebar">
|
<navbar-toggle-button @click.native="showSidebar">
|
||||||
|
|
||||||
</navbar-toggle-button>
|
</navbar-toggle-button>
|
||||||
<router-link class="navbar-brand" to="/">
|
<router-link class="navbar-brand" to="/overview">
|
||||||
<img :src="logo" class="navbar-brand-img" alt="...">
|
<img :src="logo" class="navbar-brand-img" alt="...">
|
||||||
</router-link>
|
</router-link>
|
||||||
|
|
||||||
<slot name="mobile-right">
|
<slot name="mobile-right">
|
||||||
<ul class="nav align-items-center d-md-none">
|
<ul class="nav align-items-center d-md-none">
|
||||||
|
|
||||||
<base-dropdown class="nav-item" menu-on-right tag="li" title-tag="a">
|
<base-dropdown class="nav-item" menu-on-right tag="li" title-tag="a">
|
||||||
<a slot="title-container" class="nav-link" href="#" role="button">
|
<a slot="title-container" class="nav-link" href="#" role="button">
|
||||||
@ -22,7 +22,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<router-link to="/KontoOverview" class="dropdown-item text-lg text-muted">
|
<router-link to="/overview" class="dropdown-item text-lg text-muted">
|
||||||
<i class="ni ni-single-02"></i>
|
<i class="ni ni-single-02"></i>
|
||||||
<span>{{ $t('site.overview.account_overview')}}</span>
|
<span>{{ $t('site.overview.account_overview')}}</span>
|
||||||
</router-link>
|
</router-link>
|
||||||
@ -40,10 +40,10 @@
|
|||||||
</router-link>
|
</router-link>
|
||||||
|
|
||||||
<div class="dropdown-divider"></div>
|
<div class="dropdown-divider"></div>
|
||||||
<router-link @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>
|
||||||
<span>{{ $t('logout') }}</span>
|
{{ $t('logout') }}
|
||||||
</router-link>
|
</div>
|
||||||
</base-dropdown>
|
</base-dropdown>
|
||||||
</ul>
|
</ul>
|
||||||
</slot>
|
</slot>
|
||||||
@ -53,7 +53,7 @@
|
|||||||
<div class="navbar-collapse-header d-md-none">
|
<div class="navbar-collapse-header d-md-none">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-6 collapse-brand">
|
<div class="col-6 collapse-brand">
|
||||||
<router-link to="/">
|
<router-link to="/overview">
|
||||||
<img :src="logo">
|
<img :src="logo">
|
||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
@ -62,26 +62,20 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ul class="navbar-nav">
|
<ul class="navbar-nav">
|
||||||
<slot name="links">
|
<slot name="links">
|
||||||
</slot>
|
</slot>
|
||||||
</ul>
|
</ul>
|
||||||
|
<hr class="my-3">
|
||||||
<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 bg-light" href="#!" @click="logout">
|
<a class="nav-link text-lg bg-light" href="#!" @click="logout">
|
||||||
{{ $t('logout') }}
|
{{ $t('logout') }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@ -96,7 +90,7 @@
|
|||||||
logo: {
|
logo: {
|
||||||
type: String,
|
type: String,
|
||||||
default: 'img/brand/green.png',
|
default: 'img/brand/green.png',
|
||||||
description: 'Sidebar app logo'
|
description: 'Gradido Sidebar app logo'
|
||||||
},
|
},
|
||||||
autoClose: {
|
autoClose: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
@ -116,17 +110,9 @@
|
|||||||
showSidebar() {
|
showSidebar() {
|
||||||
this.$sidebar.displaySidebar(true)
|
this.$sidebar.displaySidebar(true)
|
||||||
},
|
},
|
||||||
setLocale(locale) {
|
logout(){
|
||||||
this.$i18n.locale = locale
|
this.$store.dispatch('logout')
|
||||||
//this.$router.push({
|
}
|
||||||
// params: { lang: locale }
|
|
||||||
//})
|
|
||||||
//this.hideDropdown()
|
|
||||||
},
|
|
||||||
logout(){
|
|
||||||
//console.log("DashboardNavbar.vue user logout() : ")
|
|
||||||
this.$store.dispatch('logout')
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
if (this.$sidebar.showSidebar) {
|
if (this.$sidebar.showSidebar) {
|
||||||
|
|||||||
@ -29,6 +29,7 @@ import { messages } from 'vee-validate/dist/locale/en.json';
|
|||||||
import VueQrcodeReader from "vue-qrcode-reader";
|
import VueQrcodeReader from "vue-qrcode-reader";
|
||||||
import VueQrcode from "vue-qrcode";
|
import VueQrcode from "vue-qrcode";
|
||||||
|
|
||||||
|
import VueFlatPickr from 'vue-flatpickr-component';
|
||||||
|
|
||||||
import VueGoodTablePlugin from 'vue-good-table';
|
import VueGoodTablePlugin from 'vue-good-table';
|
||||||
// import the styles
|
// import the styles
|
||||||
@ -54,6 +55,7 @@ export default {
|
|||||||
Vue.use(VueMoment);
|
Vue.use(VueMoment);
|
||||||
Vue.use(VueQrcodeReader);
|
Vue.use(VueQrcodeReader);
|
||||||
Vue.use(VueQrcode);
|
Vue.use(VueQrcode);
|
||||||
|
Vue.use(VueFlatPickr);
|
||||||
configure({
|
configure({
|
||||||
classes: {
|
classes: {
|
||||||
valid: 'is-valid',
|
valid: 'is-valid',
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import DashboardLayout from '@/views/Layout/DashboardLayout.vue'
|
|||||||
import AuthLayoutGDD from '@/views/Layout/AuthLayout_gdd.vue'
|
import AuthLayoutGDD from '@/views/Layout/AuthLayout_gdd.vue'
|
||||||
import AuthLayout from '@/views/Layout/AuthLayout.vue'
|
import AuthLayout from '@/views/Layout/AuthLayout.vue'
|
||||||
|
|
||||||
import NotFound from '@/views/NotFoundPage.vue'
|
// import NotFound from '@/views/NotFoundPage.vue'
|
||||||
|
|
||||||
|
|
||||||
const routes = [
|
const routes = [
|
||||||
@ -31,11 +31,11 @@ const routes = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/',
|
path: '/',
|
||||||
redirect: 'KontoOverview',
|
redirect: 'overview',
|
||||||
component: DashboardLayout,
|
component: DashboardLayout,
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: '/KontoOverview',
|
path: '/overview',
|
||||||
component: () => import('../views/KontoOverview.vue'),
|
component: () => import('../views/KontoOverview.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
requiresAuth: true
|
requiresAuth: true
|
||||||
@ -70,15 +70,6 @@ const routes = [
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/',
|
|
||||||
redirect: 'login',
|
|
||||||
component: AuthLayout,
|
|
||||||
children: [
|
|
||||||
|
|
||||||
{ path: '*', component: NotFound }
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import router from '../routes/router.js'
|
|||||||
import loginAPI from '../apis/loginAPI'
|
import loginAPI from '../apis/loginAPI'
|
||||||
import communityAPI from '../apis/communityAPI'
|
import communityAPI from '../apis/communityAPI'
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
|
//import CONFIG from '../config'
|
||||||
|
|
||||||
|
|
||||||
export const store = new Vuex.Store({
|
export const store = new Vuex.Store({
|
||||||
@ -25,7 +26,14 @@ export const store = new Vuex.Store({
|
|||||||
auto_sign: true
|
auto_sign: true
|
||||||
},
|
},
|
||||||
transactions: [],
|
transactions: [],
|
||||||
modals: false
|
modals: false,
|
||||||
|
optionAxios: {
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
|
'Access-Control-Allow-Origin': '*',
|
||||||
|
'Access-Control-Allow-Credentials': 'true'
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
// Retrieve a state variable
|
// Retrieve a state variable
|
||||||
getters: {
|
getters: {
|
||||||
@ -59,20 +67,33 @@ export const store = new Vuex.Store({
|
|||||||
// Asyncronous actions - used for api calls
|
// Asyncronous actions - used for api calls
|
||||||
actions: {
|
actions: {
|
||||||
login: async ({ dispatch, commit }, data) => {
|
login: async ({ dispatch, commit }, data) => {
|
||||||
console.log('action: login')
|
// console.log('action: login')
|
||||||
|
|
||||||
|
//axios.post("http://localhost/login_api/unsecureLogin/",
|
||||||
|
// {"email": data.email, "password":data.password }).then((result) => {
|
||||||
|
// console.log("store login result", result)
|
||||||
|
|
||||||
const result = await loginAPI.login(data.email,data.password)
|
const result = await loginAPI.login(data.email,data.password)
|
||||||
console.log('result',result)
|
// console.log('result.data.state',result.data.state)
|
||||||
console.log('result.success',result.success)
|
// console.log('result.data.session_id',result.data.session_id)
|
||||||
if( result.success ){
|
|
||||||
|
|
||||||
|
if( result.success){
|
||||||
commit('session_id', result.result.data.session_id)
|
commit('session_id', result.result.data.session_id)
|
||||||
commit('email', data.email)
|
commit('email', data.email)
|
||||||
$cookies.set('gdd_session_id', result.result.data.session_id);
|
$cookies.set('gdd_session_id', result.result.data.session_id);
|
||||||
$cookies.set('gdd_u', data.email);
|
$cookies.set('gdd_u', data.email);
|
||||||
router.push('/KontoOverview')
|
router.push('/overview')
|
||||||
} else {
|
} else {
|
||||||
// Register failed, we perform a logout
|
// Register failed, we perform a logout
|
||||||
|
// console.log('action login to logout start')
|
||||||
dispatch('logout')
|
dispatch('logout')
|
||||||
}
|
}
|
||||||
|
//}, (error) => {
|
||||||
|
// console.log(error);
|
||||||
|
//});
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
passwordReset: async (data) => {
|
passwordReset: async (data) => {
|
||||||
console.log("<<<<<<<<<<< PASSWORT RESET TODO >>>>>>>>>>>", data.email)
|
console.log("<<<<<<<<<<< PASSWORT RESET TODO >>>>>>>>>>>", data.email)
|
||||||
@ -81,16 +102,17 @@ export const store = new Vuex.Store({
|
|||||||
// http://localhost/transaction-creations/ajaxCreate
|
// http://localhost/transaction-creations/ajaxCreate
|
||||||
},
|
},
|
||||||
createUser: async ({ commit, dispatch }, data) => {
|
createUser: async ({ commit, dispatch }, data) => {
|
||||||
console.log('action: createUser')
|
// console.log('action: createUser')
|
||||||
const result = await loginAPI.create(data.email,data.first_name,data.last_name,data.password)
|
const result = await loginAPI.create(data.email,data.first_name,data.last_name,data.password)
|
||||||
if( result.success ){
|
if( result.success ){
|
||||||
commit('session_id', result.result.data.session_id)
|
commit('session_id', result.result.data.session_id)
|
||||||
commit('email', data.email)
|
commit('email', data.email)
|
||||||
$cookies.set('gdd_session_id', result.result.data.session_id);
|
$cookies.set('gdd_session_id', result.result.data.session_id);
|
||||||
$cookies.set('gdd_u', data.email);
|
$cookies.set('gdd_u', data.email);
|
||||||
router.push('/KontoOverview')
|
router.push('/overview')
|
||||||
} else {
|
} else {
|
||||||
// Register failed, we perform a logout
|
// Register failed, we perform a logout
|
||||||
|
// console.log('action createUser to logout start')
|
||||||
dispatch('logout')
|
dispatch('logout')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -112,7 +134,7 @@ export const store = new Vuex.Store({
|
|||||||
//console.log('action: ajaxCreate')
|
//console.log('action: ajaxCreate')
|
||||||
state.ajaxCreateData.amount = (state.ajaxCreateData.amount)*10000
|
state.ajaxCreateData.amount = (state.ajaxCreateData.amount)*10000
|
||||||
axios.post("http://localhost/transaction-send-coins/ajaxCreate", state.ajaxCreateData).then((result) => {
|
axios.post("http://localhost/transaction-send-coins/ajaxCreate", state.ajaxCreateData).then((result) => {
|
||||||
console.log("store ajaxCreate result", result)
|
//console.log("store ajaxCreate result", result)
|
||||||
|
|
||||||
if( result.success ){
|
if( result.success ){
|
||||||
// TODO
|
// TODO
|
||||||
@ -128,12 +150,18 @@ export const store = new Vuex.Store({
|
|||||||
// const result = await communityAPI.transactions(state.session_id)
|
// const result = await communityAPI.transactions(state.session_id)
|
||||||
},
|
},
|
||||||
accountBalance: async ({ commit, dispatch, state }) => {
|
accountBalance: async ({ commit, dispatch, state }) => {
|
||||||
//console.log('action: accountBalance')
|
// console.log('action: accountBalance')
|
||||||
const result = await communityAPI.balance(state.session_id)
|
// console.log('action: dispatch', dispatch)
|
||||||
//console.log(result)
|
// 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)
|
||||||
if(result.success) {
|
if(result.success) {
|
||||||
commit('user_balance', result.result.data.balance)
|
commit('user_balance', result.result.data.balance)
|
||||||
} else {
|
} else {
|
||||||
|
console.log('action accountBalance to logout start')
|
||||||
dispatch('logout')
|
dispatch('logout')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -65,7 +65,7 @@
|
|||||||
<b-row align-v="center" slot="header">
|
<b-row align-v="center" slot="header">
|
||||||
<b-col>
|
<b-col>
|
||||||
<h6 class="text-light text-uppercase ls-1 mb-1">Charts</h6>
|
<h6 class="text-light text-uppercase ls-1 mb-1">Charts</h6>
|
||||||
<h5 class="h3 text-white mb-0">Geschöpft</h5>
|
<h5 class="h3 mb-0">Geschöpft</h5>
|
||||||
</b-col>
|
</b-col>
|
||||||
<b-col>
|
<b-col>
|
||||||
<b-nav class="nav-pills justify-content-end">
|
<b-nav class="nav-pills justify-content-end">
|
||||||
@ -226,7 +226,7 @@
|
|||||||
import AdminUserCreation from './AdminOverview/AdminUserCreation';
|
import AdminUserCreation from './AdminOverview/AdminUserCreation';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
LineChart,
|
LineChart,
|
||||||
|
|||||||
@ -68,7 +68,7 @@
|
|||||||
<b-row align-v="center" slot="header">
|
<b-row align-v="center" slot="header">
|
||||||
<b-col>
|
<b-col>
|
||||||
<h6 class="text-light text-uppercase ls-1 mb-1">Overview</h6>
|
<h6 class="text-light text-uppercase ls-1 mb-1">Overview</h6>
|
||||||
<h5 class="h3 text-white mb-0">Sales value</h5>
|
<h5 class="h3 mb-0">Sales value</h5>
|
||||||
</b-col>
|
</b-col>
|
||||||
<b-col>
|
<b-col>
|
||||||
<b-nav class="nav-pills justify-content-end">
|
<b-nav class="nav-pills justify-content-end">
|
||||||
|
|||||||
@ -6,41 +6,43 @@
|
|||||||
<gdd-sent />
|
<gdd-sent />
|
||||||
<hr>
|
<hr>
|
||||||
<gdd-table />
|
<gdd-table />
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<div>
|
<div>
|
||||||
<gdd-add-work />
|
<gdd-add-work-2 />
|
||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
|
<!--
|
||||||
<!--
|
<div>
|
||||||
|
<gdd-add-work />
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
-->
|
||||||
<div>
|
<div>
|
||||||
<gdd-work-table />
|
<gdd-work-table />
|
||||||
</div>
|
</div>
|
||||||
-->
|
|
||||||
</base-header>
|
</base-header>
|
||||||
<hr>
|
<hr>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import GddStatus from './KontoOverview/GddStatus.vue';
|
import GddStatus from './KontoOverview/GddStatus.vue';
|
||||||
import GddSent from './KontoOverview/GddSent.vue';
|
import GddSent from './KontoOverview/GddSent.vue';
|
||||||
import GddTable from './KontoOverview/GddTable.vue';
|
import GddTable from './KontoOverview/GddTable.vue';
|
||||||
import GddAddWork from './KontoOverview/GddAddWork.vue';
|
import GddAddWork2 from './KontoOverview/GddAddWork2.vue';
|
||||||
// import GddWorkTable from './KontoOverview/GddWorkTable.vue';
|
import GddWorkTable from './KontoOverview/GddWorkTable.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Overview",
|
name: "Overview",
|
||||||
components: {
|
components: {
|
||||||
GddStatus,
|
GddStatus,
|
||||||
GddSent,
|
GddSent,
|
||||||
GddTable,
|
GddTable,
|
||||||
GddAddWork
|
GddAddWork2,
|
||||||
//GddWorkTable
|
GddWorkTable
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.$store.dispatch('accountBalance')
|
this.$store.dispatch('accountBalance', $cookies.get("gdd_session_id"))
|
||||||
},
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -70,6 +70,15 @@
|
|||||||
<base-input label="Beitrag">
|
<base-input label="Beitrag">
|
||||||
<textarea class="form-control form-control-lg" rows="3" v-model="form.text" ></textarea>
|
<textarea class="form-control form-control-lg" rows="3" v-model="form.text" ></textarea>
|
||||||
</base-input>
|
</base-input>
|
||||||
|
<b-row class="form-group">
|
||||||
|
<label class="col-md-2 col-form-label form-control-label form-control-lg">Tätigkeit</label>
|
||||||
|
<b-col md="8">
|
||||||
|
<base-input placeholder="Tätigkeit" v-model="form.location" class="form-control-lg"></base-input>
|
||||||
|
</b-col>
|
||||||
|
<b-col md="2">
|
||||||
|
<base-input placeholder="Stunden" v-model="form.location" class="form-control-lg"></base-input>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
|||||||
240
frontend/src/views/KontoOverview/GddAddWork2.vue
Normal file
240
frontend/src/views/KontoOverview/GddAddWork2.vue
Normal file
@ -0,0 +1,240 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<b-tabs content-class="mt-3" fill>
|
||||||
|
<b-tab :title="names.thisMonth" active>
|
||||||
|
|
||||||
|
<b-row>
|
||||||
|
<b-col cols="3">
|
||||||
|
|
||||||
|
<base-input label="Arbeitstunden" >
|
||||||
|
<b-form-input type="number" placeholder="23" />
|
||||||
|
</base-input>
|
||||||
|
<base-input label="Datum / Zeitraum" >
|
||||||
|
<flat-pickr class="form-control" v-model="date" :config="config"></flat-pickr>
|
||||||
|
</base-input>
|
||||||
|
</b-col>
|
||||||
|
<b-col cols="9">
|
||||||
|
<base-input label="Arbeitsreport">
|
||||||
|
<textarea class="form-control" rows="5" @focus="textFocus"></textarea>
|
||||||
|
</base-input>
|
||||||
|
</b-col>
|
||||||
|
|
||||||
|
</b-row>
|
||||||
|
<b-row>
|
||||||
|
<b-col><button class="btn btn-info text-right" @click.prevent="newWorkForm">weiteren Report hinzufügen</button></b-col>
|
||||||
|
<b-col>
|
||||||
|
<div class="text-right">
|
||||||
|
<button class="btn btn-info text-right" @click.prevent="submitForm2">save new Report</button>
|
||||||
|
</div>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
</b-tab>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<b-tab :title="names.lastMonth">
|
||||||
|
<b-row>
|
||||||
|
<b-col cols="3">
|
||||||
|
|
||||||
|
<base-input label="Arbeitstunden" >
|
||||||
|
<b-form-input type="number" placeholder="23" />
|
||||||
|
</base-input>
|
||||||
|
<base-input label="Datum / Zeitraum" >
|
||||||
|
<flat-pickr class="form-control" v-model="date" :config="lastConfig"></flat-pickr>
|
||||||
|
</base-input>
|
||||||
|
</b-col>
|
||||||
|
<b-col cols="9">
|
||||||
|
<base-input label="Arbeitsreport">
|
||||||
|
<textarea class="form-control" rows="5" @focus="textFocus"></textarea>
|
||||||
|
</base-input>
|
||||||
|
</b-col>
|
||||||
|
|
||||||
|
</b-row>
|
||||||
|
<b-row>
|
||||||
|
<b-col><button class="btn btn-warning text-right" @click.prevent="newWorkForm">+ weiteren Report hinzufügen</button></b-col>
|
||||||
|
<b-col>
|
||||||
|
<div class="text-right">
|
||||||
|
<button class="btn btn-info text-right" @click.prevent="submitForm2">save new Report</button>
|
||||||
|
</div>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<hr>
|
||||||
|
<pre>Selected date is - {{date}}</pre>
|
||||||
|
<p>{{days.lastMonth}} Days in {{names.lastMonth}} </p>
|
||||||
|
|
||||||
|
<p>Du hast diesen Monat
|
||||||
|
{{stundenSumme>0 ? 'schon ' : 'noch keine' }}
|
||||||
|
{{stundenSumme>0 ? ''+ stundenSumme : '' }}
|
||||||
|
Stunden eingetragen</p>
|
||||||
|
|
||||||
|
</b-tab>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<b-tab :title="names.beforLastMonth">
|
||||||
|
|
||||||
|
<b-row>
|
||||||
|
<b-col cols="3">
|
||||||
|
|
||||||
|
<base-input label="Arbeitstunden" >
|
||||||
|
<b-form-input type="number" placeholder="23" />
|
||||||
|
</base-input>
|
||||||
|
<base-input label="Datum / Zeitraum" >
|
||||||
|
<flat-pickr class="form-control" v-model="date" :config="beforLastConfig"></flat-pickr>
|
||||||
|
</base-input>
|
||||||
|
</b-col>
|
||||||
|
<b-col cols="9">
|
||||||
|
<base-input label="Arbeitsreport">
|
||||||
|
<textarea class="form-control" rows="5" @focus="textFocus"></textarea>
|
||||||
|
</base-input>
|
||||||
|
</b-col>
|
||||||
|
|
||||||
|
</b-row>
|
||||||
|
<b-row>
|
||||||
|
<b-col><button class="btn btn-warning text-right" @click.prevent="newWorkForm">+ weiteren Report hinzufügen</button></b-col>
|
||||||
|
<b-col>
|
||||||
|
<div class="text-right">
|
||||||
|
<button class="btn btn-info text-right" @click.prevent="submitForm3">save new Report</button>
|
||||||
|
</div>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<hr>
|
||||||
|
<pre>Selected date is - {{date}}</pre>
|
||||||
|
<p>{{days.beforLastMonth}} Days in {{names.beforLastMonth}} </p>
|
||||||
|
<p>Du hast noch keine Einträge </p>
|
||||||
|
|
||||||
|
|
||||||
|
</b-tab>
|
||||||
|
|
||||||
|
</b-tabs>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import flatPickr from "vue-flatpickr-component"
|
||||||
|
import "flatpickr/dist/flatpickr.css"
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'GDDAddWork2',
|
||||||
|
components: {flatPickr},
|
||||||
|
data(){
|
||||||
|
return {
|
||||||
|
date: null,
|
||||||
|
config: {
|
||||||
|
altInput: false,
|
||||||
|
dateFormat: "d-m-Y",
|
||||||
|
minDate: this.$moment().startOf('month').format("DD.MM.YYYY"),
|
||||||
|
maxDate: this.$moment().format("DD.MM.YYYY"),
|
||||||
|
mode: 'range'
|
||||||
|
|
||||||
|
},
|
||||||
|
lastConfig:{
|
||||||
|
altInput: false,
|
||||||
|
dateFormat: "d-m-Y",
|
||||||
|
minDate: this.$moment().month(this.$moment().month()-1).startOf('month').format("DD.MM.YYYY"),
|
||||||
|
maxDate: this.$moment().month(this.$moment().month()-1).endOf('month').format("DD.MM.YYYY"),
|
||||||
|
mode: 'range'
|
||||||
|
},
|
||||||
|
beforLastConfig:{
|
||||||
|
altInput: false,
|
||||||
|
dateFormat: "d-m-Y",
|
||||||
|
minDate: this.$moment().month(this.$moment().month()-2).startOf('month').format("DD.MM.YYYY"),
|
||||||
|
maxDate: this.$moment().month(this.$moment().month()-2).endOf('month').format("DD.MM.YYYY"),
|
||||||
|
mode: 'range'
|
||||||
|
},
|
||||||
|
index: 0,
|
||||||
|
form:[],
|
||||||
|
stundenSumme: 0,
|
||||||
|
messages: [],
|
||||||
|
submitted:false,
|
||||||
|
days: {
|
||||||
|
thisMonth: this.$moment().month(this.$moment().month()).daysInMonth(),
|
||||||
|
lastMonth: this.$moment().month(this.$moment().month()-1).daysInMonth(),
|
||||||
|
beforLastMonth: this.$moment().month(this.$moment().month()-2).daysInMonth(),
|
||||||
|
},
|
||||||
|
names: {
|
||||||
|
thisMonth: this.$moment().month(this.$moment().month()).format('MMMM'),
|
||||||
|
lastMonth: this.$moment().month(this.$moment().month()-1).format('MMMM'),
|
||||||
|
beforLastMonth: this.$moment().month(this.$moment().month()-2).format('MMMM')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
$form: function(){
|
||||||
|
stunden(this.form)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getTR(m,i){
|
||||||
|
console.log(m+"-"+i)
|
||||||
|
},
|
||||||
|
stunden(hour, i, mon) {
|
||||||
|
let n = 0
|
||||||
|
console.log("stunden(form)=>", hour)
|
||||||
|
console.log("stunden(i)=>", i)
|
||||||
|
console.log("stunden(mon)=>", mon)
|
||||||
|
|
||||||
|
|
||||||
|
console.log("this.stundenSumme start=> ", this.stundenSumme)
|
||||||
|
this.stundenSumme = 0
|
||||||
|
console.log("arr.length => ", this.form.length)
|
||||||
|
for (n; n < this.form.length; n++){
|
||||||
|
console.log(">arr[n]=> ",this.form[n])
|
||||||
|
if (this.form[n] > 0) {
|
||||||
|
this.stundenSumme += parseInt(this.form[n]) ;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
this.messages.push({
|
||||||
|
id: this.index,
|
||||||
|
MonthsNumber: mon,
|
||||||
|
DaysNumber: i,
|
||||||
|
HoursNumber: hour,
|
||||||
|
DestinationText: '',
|
||||||
|
TextDecoded: ''
|
||||||
|
});
|
||||||
|
this.index++
|
||||||
|
console.log("this.stundenSumme ende=> ", this.stundenSumme)
|
||||||
|
},
|
||||||
|
addNewMessage: function(){
|
||||||
|
this.messages.push({
|
||||||
|
DaysNumber: '',
|
||||||
|
TextDecoded: ''
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
deleteNewMessage: function(event) {
|
||||||
|
console.log("deleteNewMessage:event) => ", event)
|
||||||
|
//console.log("deleteNewMessage:this.events.splice(this.event) => ", this.events.splice(this.event))
|
||||||
|
this.form.splice(event, null);
|
||||||
|
this.messages.splice(index, 1);
|
||||||
|
this.index--
|
||||||
|
},
|
||||||
|
submitForm: function(e) {
|
||||||
|
console.log(this.messages);
|
||||||
|
|
||||||
|
this.messages = [{ DaysNumber: '', TextDecoded: '' }];
|
||||||
|
this.submitted = true;
|
||||||
|
},
|
||||||
|
submitForm2() {
|
||||||
|
console.log("submitForm2 TODO")
|
||||||
|
},
|
||||||
|
submitForm3() {
|
||||||
|
console.log("submitForm3 TODO")
|
||||||
|
},
|
||||||
|
textFocus(){
|
||||||
|
console.log("textFocus TODO")
|
||||||
|
},
|
||||||
|
newWorkForm(){
|
||||||
|
console.log("newWorkForm TODO")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
@ -13,12 +13,10 @@
|
|||||||
</b-row>
|
</b-row>
|
||||||
<b-row>
|
<b-row>
|
||||||
<qrcode-stream @decode="onDecode" @detect="onDetect" ></qrcode-stream>
|
<qrcode-stream @decode="onDecode" @detect="onDetect" ></qrcode-stream>
|
||||||
<b-alert show variant="secondary">
|
<b-alert show variant="secondary">
|
||||||
|
|
||||||
<span class="alert-text"><strong>QR Code Scanner</strong> - Scanne den QR Code deines Partners</span>
|
<span class="alert-text"><strong>QR Code Scanner</strong> - Scanne den QR Code deines Partners</span>
|
||||||
</b-alert>
|
</b-alert>
|
||||||
<b-alert show variant="warning" >
|
<b-alert show variant="warning" >
|
||||||
|
|
||||||
<span class="alert-text" @click="scan=false"><strong>abrechen!</strong></span>
|
<span class="alert-text" @click="scan=false"><strong>abrechen!</strong></span>
|
||||||
</b-alert>
|
</b-alert>
|
||||||
</b-row>
|
</b-row>
|
||||||
@ -38,10 +36,8 @@
|
|||||||
size="lg"
|
size="lg"
|
||||||
class="mb-3"
|
class="mb-3"
|
||||||
>
|
>
|
||||||
<b-input-group-prepend>
|
<b-input-group-prepend>
|
||||||
|
<img src="img/icons/gradido/qr-scan-pure.png" width="80" height="auto" @click="scan=true"/>
|
||||||
<img src="img/icons/gradido/qr-scan-pure.png" width="80" height="auto" @click="scan=true"/>
|
|
||||||
|
|
||||||
</b-input-group-prepend>
|
</b-input-group-prepend>
|
||||||
<b-form-input
|
<b-form-input
|
||||||
id="input-1"
|
id="input-1"
|
||||||
@ -75,17 +71,13 @@
|
|||||||
</b-form-input>
|
</b-form-input>
|
||||||
|
|
||||||
<b-input-group-prepend>
|
<b-input-group-prepend>
|
||||||
|
|
||||||
<div class="h1">GDD</div>
|
<div class="h1">GDD</div>
|
||||||
|
|
||||||
</b-input-group-prepend>
|
</b-input-group-prepend>
|
||||||
|
|
||||||
</b-input-group>
|
</b-input-group>
|
||||||
<b-input-group>
|
<b-input-group>
|
||||||
<b-input-group-prepend>
|
<b-input-group-prepend>
|
||||||
|
<b-icon icon="chat-right-text" class="display-1"></b-icon>
|
||||||
<b-icon icon="chat-right-text" class="display-1"></b-icon>
|
|
||||||
|
|
||||||
</b-input-group-prepend>
|
</b-input-group-prepend>
|
||||||
<b-form-textarea v-model="form.memo"></b-form-textarea>
|
<b-form-textarea v-model="form.memo"></b-form-textarea>
|
||||||
</b-input-group>
|
</b-input-group>
|
||||||
@ -97,7 +89,6 @@
|
|||||||
<br>
|
<br>
|
||||||
</b-form>
|
</b-form>
|
||||||
</validation-observer>
|
</validation-observer>
|
||||||
|
|
||||||
</b-card>
|
</b-card>
|
||||||
</b-collapse>
|
</b-collapse>
|
||||||
</b-col>
|
</b-col>
|
||||||
@ -133,14 +124,13 @@ export default {
|
|||||||
async onDecode (decodedString) {
|
async onDecode (decodedString) {
|
||||||
console.log('onDecode JSON.parse(decodedString)',JSON.parse(decodedString) )
|
console.log('onDecode JSON.parse(decodedString)',JSON.parse(decodedString) )
|
||||||
const arr = JSON.parse(decodedString)
|
const arr = JSON.parse(decodedString)
|
||||||
console.log('arr',arr[0].email )
|
// console.log('arr',arr[0].email )
|
||||||
this.modal.h4 = 'Scan erfolgreich'
|
this.modal.h4 = 'Scan erfolgreich'
|
||||||
this.modal.p = arr
|
this.modal.p = arr
|
||||||
this.form.email = arr[0].email
|
this.form.email = arr[0].email
|
||||||
this.form.amount1 = arr[0].amount
|
this.form.amount1 = arr[0].amount
|
||||||
console.log('arr mail',arr.email)
|
// console.log('arr mail',arr.email)
|
||||||
console.log('arr mail',arr.amount)
|
// console.log('arr mail',arr.amount)
|
||||||
|
|
||||||
this.modals2 = true
|
this.modals2 = true
|
||||||
},
|
},
|
||||||
async onDetect (promise) {
|
async onDetect (promise) {
|
||||||
|
|||||||
@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'GddTable',
|
name: 'GddTable',
|
||||||
data(){
|
data(){
|
||||||
@ -57,13 +57,12 @@ export default {
|
|||||||
axios.get("http://localhost/state-balances/ajaxListTransactions/"+ this.$store.state.session_id).then((result) => {
|
axios.get("http://localhost/state-balances/ajaxListTransactions/"+ this.$store.state.session_id).then((result) => {
|
||||||
//console.log("result",result)
|
//console.log("result",result)
|
||||||
//console.log("result.state",result.data.state)
|
//console.log("result.state",result.data.state)
|
||||||
//
|
|
||||||
//console.log("result.data.state == 'success'",result.data.state == "success")
|
//console.log("result.data.state == 'success'",result.data.state == "success")
|
||||||
|
|
||||||
//console.log("result.count",result.data.count)
|
//console.log("result.count",result.data.count)
|
||||||
// console.log("result.gdtSum",result.data.gdtSum)
|
//console.log("result.gdtSum",result.data.gdtSum)
|
||||||
console.log("result.transactions",typeof(result.data.transactions))
|
//console.log("result.transactions",typeof(result.data.transactions))
|
||||||
//commit('transactions', result.data.transactions)
|
//commit('transactions', result.data.transactions)
|
||||||
this.$store.state.user.balance_gdt = result.data.gdtSum
|
this.$store.state.user.balance_gdt = result.data.gdtSum
|
||||||
this.items = result.data.transactions
|
this.items = result.data.transactions
|
||||||
this.count = result.data.count
|
this.count = result.data.count
|
||||||
@ -76,7 +75,7 @@ export default {
|
|||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
filteredItems(a) {
|
filteredItems(a) {
|
||||||
console.log("filteredItems date",a.items)
|
// console.log("filteredItems date",a.items)
|
||||||
return a.items
|
return a.items
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,20 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<b-list-group >
|
<b-list-group >
|
||||||
<b-list-group-item v-for="item in items" :key="item.id">
|
<b-list-group-item v-for="item in items" :key="item.id">
|
||||||
<div class="d-flex w-100 justify-content-between" @click="toogle(item)" >
|
<div class="d-flex w-100 justify-content-between" @click="toogle(item)" >
|
||||||
<b-icon v-if="item.status == 'submitted'" icon="clock-history" class="m-1" font-scale="2" style="color:orange"></b-icon>
|
<b-icon v-if="item.status == 'submitted'" icon="clock-history" class="m-1" font-scale="2" style="color:orange"></b-icon>
|
||||||
<b-icon v-else icon="check2-all" class="m-1" font-scale="2" style="color:green" ></b-icon>
|
<b-icon v-else icon="check2-all" class="m-1" font-scale="2" style="color:green" ></b-icon>
|
||||||
<h2 class="text-muted"><small>{{item.datel}}</small> - {{item.text}}</h2>
|
<h2 class="text-muted"><small>{{item.datel}}</small> - {{item.text}}</h2>
|
||||||
</div>
|
</div>
|
||||||
</b-list-group-item>
|
</b-list-group-item>
|
||||||
</b-list-group>
|
</b-list-group>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'GddWorkTable',
|
name: 'GddWorkTable',
|
||||||
data(){
|
data(){
|
||||||
@ -22,8 +20,8 @@ export default {
|
|||||||
form: [],
|
form: [],
|
||||||
items: [
|
items: [
|
||||||
{ id: 1, text: 'Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum ', datel: '12.12.2020 14:04', status: 'submitted' },
|
{ id: 1, text: 'Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum ', datel: '12.12.2020 14:04', status: 'submitted' },
|
||||||
{ id: 2, text: 'Larsen Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum ', datel: '22.06.2020 22:23', status: 'submitted' },
|
{ id: 2, text: 'Larsen Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum ', datel: '22.06.2020 22:23', status: 'submitted' },
|
||||||
{ id: 3, text: 'Geneva Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum ', datel: '15.04.2020 12:55', status: 'confirmed' },
|
{ id: 3, text: 'Geneva Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum ', datel: '15.04.2020 12:55', status: 'confirmed' },
|
||||||
{ id: 4, text: 'Community Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum ', datel: '10.03.2020 18:20', status: 'confirmed'}
|
{ id: 4, text: 'Community Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum ', datel: '10.03.2020 18:20', status: 'confirmed'}
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
@ -37,10 +35,7 @@ export default {
|
|||||||
},
|
},
|
||||||
toogle(item) {
|
toogle(item) {
|
||||||
const temp = '<b-collapse visible v-bind:id="item.id">xxx <small class="text-muted">porta</small></b-collapse>'
|
const temp = '<b-collapse visible v-bind:id="item.id">xxx <small class="text-muted">porta</small></b-collapse>'
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -10,7 +10,7 @@
|
|||||||
<b-col xl="5" lg="6" md="6" class="px-5">
|
<b-col xl="5" lg="6" md="6" class="px-5">
|
||||||
<h1 class="text-light">Landing Gradido</h1>
|
<h1 class="text-light">Landing Gradido</h1>
|
||||||
<br>
|
<br>
|
||||||
<router-link to="/KontoOverview" class="font-weight-bold text-white mt-5"> LoginUser</router-link>
|
<router-link to="/overview" class="font-weight-bold text-white mt-5"> LoginUser</router-link>
|
||||||
<br><br>
|
<br><br>
|
||||||
<router-link to="/AdminOverview" class="font-weight-bold text-white mt-5"> Login Admin</router-link>
|
<router-link to="/AdminOverview" class="font-weight-bold text-white mt-5"> Login Admin</router-link>
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
<sidebar-item
|
<sidebar-item
|
||||||
:link="{
|
:link="{
|
||||||
name: 'Kontoübersicht',
|
name: 'Kontoübersicht',
|
||||||
path: 'KontoOverview',
|
path: '/overview',
|
||||||
icon: 'ni ni-tv-2 text-primary',
|
icon: 'ni ni-tv-2 text-primary',
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
expand="lg"
|
expand="lg"
|
||||||
>
|
>
|
||||||
<div slot="brand" class="navbar-wrapper">
|
<div slot="brand" class="navbar-wrapper">
|
||||||
<b-navbar-brand to="/">
|
<b-navbar-brand to="/overview">
|
||||||
<img src="img/brand/white.png">
|
<img src="img/brand/white.png">
|
||||||
</b-navbar-brand>
|
</b-navbar-brand>
|
||||||
</div>
|
</div>
|
||||||
@ -17,7 +17,7 @@
|
|||||||
<div class="navbar-collapse-header">
|
<div class="navbar-collapse-header">
|
||||||
<b-row>
|
<b-row>
|
||||||
<b-col cols="6" class="collapse-brand">
|
<b-col cols="6" class="collapse-brand">
|
||||||
<router-link to="/">
|
<router-link to="/overview">
|
||||||
<img src="img/brand/green.png">
|
<img src="img/brand/green.png">
|
||||||
</router-link>
|
</router-link>
|
||||||
</b-col>
|
</b-col>
|
||||||
|
|||||||
@ -13,17 +13,17 @@
|
|||||||
</div>
|
</div>
|
||||||
</b-col>
|
</b-col>
|
||||||
<b-col xl="6" class="col-xl-6">
|
<b-col xl="6" class="col-xl-6">
|
||||||
<b-nav class="nav-footer justify-content-center justify-content-xl-end">
|
<b-nav class="nav-footer justify-content-center justify-content-lg-end">
|
||||||
<b-nav-item ref="https://www.creative-tim.com" target="_blank">
|
<b-nav-item ref="https://gradido.net/" target="_blank">
|
||||||
Gradido
|
Gradido
|
||||||
</b-nav-item>
|
</b-nav-item>
|
||||||
<b-nav-item href="https://www.creative-tim.com/presentation" target="_blank">
|
<b-nav-item href="https://gradido.net/" target="_blank">
|
||||||
{{$t('imprint')}}
|
{{$t('imprint')}}
|
||||||
</b-nav-item>
|
</b-nav-item>
|
||||||
<b-nav-item href="http://blog.creative-tim.com" target="_blank">
|
<b-nav-item href="https://gradido.net/" target="_blank">
|
||||||
{{$t('privacy_policy')}}
|
{{$t('privacy_policy')}}
|
||||||
</b-nav-item>
|
</b-nav-item>
|
||||||
<b-nav-item href="https://www.creative-tim.com/license" target="_blank">
|
<b-nav-item href="https://gradido.net/" target="_blank">
|
||||||
{{$t('license')}}
|
{{$t('license')}}
|
||||||
</b-nav-item>
|
</b-nav-item>
|
||||||
</b-nav>
|
</b-nav>
|
||||||
@ -41,25 +41,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { BaseNav } from '@/components';
|
|
||||||
import { ZoomCenterTransition } from 'vue2-transitions';
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
|
||||||
//BaseNav,
|
|
||||||
//ZoomCenterTransition
|
|
||||||
},
|
|
||||||
props: {
|
|
||||||
backgroundColor: {
|
|
||||||
type: String,
|
|
||||||
default: 'black'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
showMenu: false,
|
|
||||||
menuTransitionDuration: 250,
|
|
||||||
pageTransitionDuration: 200,
|
|
||||||
year: new Date().getFullYear(),
|
year: new Date().getFullYear(),
|
||||||
pageClass: 'login-page'
|
pageClass: 'login-page'
|
||||||
};
|
};
|
||||||
@ -76,80 +61,10 @@
|
|||||||
// params: { lang: locale }
|
// params: { lang: locale }
|
||||||
//})
|
//})
|
||||||
//this.hideDropdown()
|
//this.hideDropdown()
|
||||||
},
|
|
||||||
toggleNavbar() {
|
|
||||||
document.body.classList.toggle('nav-open');
|
|
||||||
this.showMenu = !this.showMenu;
|
|
||||||
},
|
|
||||||
closeMenu() {
|
|
||||||
document.body.classList.remove('nav-open');
|
|
||||||
this.showMenu = false;
|
|
||||||
},
|
|
||||||
setBackgroundColor() {
|
|
||||||
document.body.classList.add('bg-default');
|
|
||||||
},
|
|
||||||
removeBackgroundColor() {
|
|
||||||
document.body.classList.remove('bg-default');
|
|
||||||
},
|
|
||||||
updateBackground() {
|
|
||||||
if (!this.$route.meta.noBodyBackground) {
|
|
||||||
this.setBackgroundColor();
|
|
||||||
} else {
|
|
||||||
this.removeBackgroundColor()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
beforeDestroy() {
|
|
||||||
this.removeBackgroundColor();
|
|
||||||
},
|
|
||||||
beforeRouteUpdate(to, from, next) {
|
|
||||||
// Close the mobile menu first then transition to next page
|
|
||||||
if (this.showMenu) {
|
|
||||||
this.closeMenu();
|
|
||||||
setTimeout(() => {
|
|
||||||
next();
|
|
||||||
}, this.menuTransitionDuration);
|
|
||||||
} else {
|
|
||||||
next();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
$route: {
|
|
||||||
immediate: true,
|
|
||||||
handler: function () {
|
|
||||||
this.updateBackground()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
$scaleSize: 0.8;
|
|
||||||
@keyframes zoomIn8 {
|
|
||||||
from {
|
|
||||||
opacity: 0;
|
|
||||||
transform: scale3d($scaleSize, $scaleSize, $scaleSize);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.main-content .zoomIn {
|
|
||||||
animation-name: zoomIn8;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes zoomOut8 {
|
|
||||||
from {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
to {
|
|
||||||
opacity: 0;
|
|
||||||
transform: scale3d($scaleSize, $scaleSize, $scaleSize);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.main-content .zoomOut {
|
|
||||||
animation-name: zoomOut8;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
<side-bar>
|
<side-bar>
|
||||||
<template slot="links" >
|
<template slot="links" >
|
||||||
|
|
||||||
<b-nav-item href="#!" to="/KontoOverview">
|
<b-nav-item href="#!" to="/overview">
|
||||||
|
|
||||||
<b-nav-text class="p-0 text-lg text-muted">Senden</b-nav-text>
|
<b-nav-text class="p-0 text-lg text-muted">Senden</b-nav-text>
|
||||||
</b-nav-item>
|
</b-nav-item>
|
||||||
@ -58,7 +58,7 @@
|
|||||||
|
|
||||||
import DashboardNavbar from './DashboardNavbar.vue';
|
import DashboardNavbar from './DashboardNavbar.vue';
|
||||||
import ContentFooter from './ContentFooter.vue';
|
import ContentFooter from './ContentFooter.vue';
|
||||||
import DashboardContent from './Content.vue';
|
// import DashboardContent from './Content.vue';
|
||||||
import { FadeTransition } from 'vue2-transitions';
|
import { FadeTransition } from 'vue2-transitions';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -74,11 +74,7 @@
|
|||||||
if (isWindows) {
|
if (isWindows) {
|
||||||
initScrollbar('sidenav');
|
initScrollbar('sidenav');
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
logout(){
|
|
||||||
//console.log("DashboardLayout.vue user logout() : ")
|
|
||||||
this.$store.dispatch('logout')
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.initScrollbar()
|
this.initScrollbar()
|
||||||
|
|||||||
@ -4,7 +4,9 @@
|
|||||||
class="navbar-top navbar-expand"
|
class="navbar-top navbar-expand"
|
||||||
:class="{'navbar-dark': type === 'default'}"
|
:class="{'navbar-dark': type === 'default'}"
|
||||||
>
|
>
|
||||||
<a href="#" aria-current="page" class="h4 mb-0 text-white text-uppercase d-none d-lg-inline-block active router-link-active"> {{$route.name}} </a>
|
<a href="#" aria-current="page" class="h4 mb-0 text-uppercase d-none d-lg-inline-block active router-link-active">
|
||||||
|
{{$route.name}}
|
||||||
|
</a>
|
||||||
<!-- Navbar links -->
|
<!-- Navbar links -->
|
||||||
<b-navbar-nav class="align-items-center ml-md-auto">
|
<b-navbar-nav class="align-items-center ml-md-auto">
|
||||||
<!-- This item dont have <b-nav-item> because item have data-action/data-target on tag <a>, wich we cant add -->
|
<!-- This item dont have <b-nav-item> because item have data-action/data-target on tag <a>, wich we cant add -->
|
||||||
@ -15,32 +17,20 @@
|
|||||||
</li>
|
</li>
|
||||||
</b-navbar-nav>
|
</b-navbar-nav>
|
||||||
<b-navbar-nav class="align-items-center ml-auto ml-md-0">
|
<b-navbar-nav class="align-items-center ml-auto ml-md-0">
|
||||||
<!-- <b-form class="navbar-search form-inline mr-sm-3"
|
|
||||||
:class="{'navbar-search-dark': type === 'default', 'navbar-search-light': type === 'light'}"
|
|
||||||
id="navbar-search-main">
|
|
||||||
<b-form-group class="mb-0">
|
|
||||||
<b-input-group class="input-group-alternative input-group-merge">
|
|
||||||
<b-form-input placeholder="Search" type="text"> </b-form-input>
|
|
||||||
|
|
||||||
<div class="input-group-append">
|
|
||||||
<span class="input-group-text"><i class="fas fa-search"></i></span>
|
|
||||||
</div>
|
|
||||||
</b-input-group>
|
|
||||||
</b-form-group>
|
|
||||||
</b-form> -->
|
|
||||||
<base-dropdown menu-on-right
|
<base-dropdown menu-on-right
|
||||||
class="nav-item"
|
class="nav-item"
|
||||||
tag="li"
|
tag="li"
|
||||||
title-tag="a"
|
title-tag="a"
|
||||||
title-classes="nav-link pr-0">
|
title-classes="nav-link pr-0">
|
||||||
<a href="#" class="nav-link pr-0" @click.prevent slot="title-container">
|
<a href="#" class="pr-1" @click.prevent slot="title-container">
|
||||||
<b-media no-body class="align-items-center">
|
<b-media no-body class="align-items-center">
|
||||||
|
|
||||||
<span class="avatar avatar-sm rounded-circle">
|
|
||||||
<vue-qrcode :value="$store.state.email" />
|
|
||||||
</span>
|
|
||||||
<b-media-body class="ml-2 d-none d-lg-block">
|
<b-media-body class="ml-2 d-none d-lg-block">
|
||||||
<span class="mb-0 text-lg font-weight-bold">{{this.$store.state.email}}</span>
|
<span class="avatar avatar-sm rounded-circle">
|
||||||
|
<vue-qrcode :value="$store.state.email" />
|
||||||
|
</span>
|
||||||
|
<span class="mb-0 text-lg font-weight-bold">{{ $store.state.email }}</span>
|
||||||
</b-media-body>
|
</b-media-body>
|
||||||
</b-media>
|
</b-media>
|
||||||
</a>
|
</a>
|
||||||
@ -50,7 +40,7 @@
|
|||||||
<b-dropdown-header class="noti-title">
|
<b-dropdown-header class="noti-title">
|
||||||
<h6 class="text-overflow m-0"> {{ $t('welcome') }}</h6>
|
<h6 class="text-overflow m-0"> {{ $t('welcome') }}</h6>
|
||||||
</b-dropdown-header>
|
</b-dropdown-header>
|
||||||
<b-dropdown-item href="#!" to="/KontoOverview">
|
<b-dropdown-item href="#!" to="/overview">
|
||||||
<i class="ni ni-single-02"></i>
|
<i class="ni ni-single-02"></i>
|
||||||
<span>{{ $t('site.overview.account_overview')}}</span>
|
<span>{{ $t('site.overview.account_overview')}}</span>
|
||||||
</b-dropdown-item>
|
</b-dropdown-item>
|
||||||
@ -78,13 +68,13 @@
|
|||||||
</base-nav>
|
</base-nav>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { CollapseTransition } from 'vue2-transitions';
|
import { CollapseTransition } from 'vue2-transitions'
|
||||||
import { BaseNav } from '@/components';
|
import { BaseNav } from '@/components'
|
||||||
import VueQrcode from 'vue-qrcode'
|
import VueQrcode from 'vue-qrcode'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
CollapseTransition,
|
//CollapseTransition,
|
||||||
BaseNav,
|
BaseNav,
|
||||||
VueQrcode
|
VueQrcode
|
||||||
},
|
},
|
||||||
|
|||||||
@ -348,7 +348,7 @@
|
|||||||
<div class="pr-md-5">
|
<div class="pr-md-5">
|
||||||
<h1 class="text-light"> {{ $t('site.landing1.explore') }}</h1>
|
<h1 class="text-light"> {{ $t('site.landing1.explore') }}</h1>
|
||||||
<p class="text-light">{{ $t('site.landing1.text') }}</p>
|
<p class="text-light">{{ $t('site.landing1.text') }}</p>
|
||||||
<router-link to="/user" class="font-weight-bold text-warning mt-5">{{ $t('site.landing1.link') }}</router-link>
|
<router-link to="/overview" class="font-weight-bold text-warning mt-5">{{ $t('site.landing1.link') }}</router-link>
|
||||||
</div>
|
</div>
|
||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
@ -363,7 +363,7 @@ export default {
|
|||||||
name: 'not-found',
|
name: 'not-found',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
anime:{
|
anime:{
|
||||||
targets: '.row svg',
|
targets: '.row svg',
|
||||||
translateY: 10,
|
translateY: 10,
|
||||||
autoplay: true,
|
autoplay: true,
|
||||||
@ -371,7 +371,7 @@ export default {
|
|||||||
easing: 'easeInOutSine',
|
easing: 'easeInOutSine',
|
||||||
direction: 'alternate'
|
direction: 'alternate'
|
||||||
},
|
},
|
||||||
anime:{
|
anime2:{
|
||||||
targets: '#zero',
|
targets: '#zero',
|
||||||
translateX: 10,
|
translateX: 10,
|
||||||
autoplay: true,
|
autoplay: true,
|
||||||
|
|||||||
@ -6,8 +6,8 @@
|
|||||||
<div class="text-center mb-7">
|
<div class="text-center mb-7">
|
||||||
<b-row class="justify-content-center">
|
<b-row class="justify-content-center">
|
||||||
<b-col xl="5" lg="6" md="8" class="px-5">
|
<b-col xl="5" lg="6" md="8" class="px-5">
|
||||||
<h1 class="text-white">Gradido Wallet</h1>
|
<h1>Gradido Wallet</h1>
|
||||||
<p class="text-lead text-white">{{ $t('site.login.community')}}</p>
|
<p class="text-lead">{{ $t('site.login.community')}}</p>
|
||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -5,8 +5,8 @@
|
|||||||
<div class="header-body text-center mb-7">
|
<div class="header-body text-center mb-7">
|
||||||
<b-row class="justify-content-center">
|
<b-row class="justify-content-center">
|
||||||
<b-col xl="5" lg="6" md="8" class="px-5">
|
<b-col xl="5" lg="6" md="8" class="px-5">
|
||||||
<h1 class="text-white">{{ $t('site.password.title')}}</h1>
|
<h1 >{{ $t('site.password.title')}}</h1>
|
||||||
<p class="text-lead text-white">{{ $t('site.password.subtitle')}}</p>
|
<p class="text-lead">{{ $t('site.password.subtitle')}}</p>
|
||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -6,8 +6,8 @@
|
|||||||
<div class="header-body text-center mb-7">
|
<div class="header-body text-center mb-7">
|
||||||
<b-row class="justify-content-center">
|
<b-row class="justify-content-center">
|
||||||
<b-col xl="5" lg="6" md="8" class="px-5">
|
<b-col xl="5" lg="6" md="8" class="px-5">
|
||||||
<h1 class="text-white">{{ $t('site.signup.title')}}</h1>
|
<h1 >{{ $t('site.signup.title')}}</h1>
|
||||||
<p class="text-lead text-white">{{ $t('site.signup.subtitle')}}</p>
|
<p class="text-lead">{{ $t('site.signup.subtitle')}}</p>
|
||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "gradido",
|
"name": "gradido",
|
||||||
"version": "0.9.1",
|
"version": "0.9.2",
|
||||||
"description": "Gradido",
|
"description": "Gradido",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"repository": "git@github.com:gradido/gradido.git",
|
"repository": "git@github.com:gradido/gradido.git",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user