mirror of
https://github.com/IT4Change/gradido.git
synced 2026-02-06 09:56:05 +00:00
fix(frontend): fix eslint/stylelint issues
This commit is contained in:
parent
e3cae6d1aa
commit
38cde98591
@ -4,13 +4,17 @@ module.exports = {
|
||||
browser: true,
|
||||
node: true,
|
||||
jest: true,
|
||||
es2022: true,
|
||||
'vue/setup-compiler-macros': true,
|
||||
},
|
||||
parserOptions: {
|
||||
ecmaVersion: 2020,
|
||||
},
|
||||
extends: [
|
||||
'standard',
|
||||
'plugin:vue/essential',
|
||||
'plugin:vue/vue3-recommended',
|
||||
'plugin:prettier/recommended',
|
||||
'plugin:@intlify/vue-i18n/recommended',
|
||||
'prettier',
|
||||
],
|
||||
// required to lint *.vue files
|
||||
plugins: ['vue', 'prettier', 'jest'],
|
||||
@ -27,15 +31,27 @@ module.exports = {
|
||||
// add your custom rules here
|
||||
rules: {
|
||||
'no-console': ['error'],
|
||||
'no-debugger': import.meta.env.NODE_ENV === 'production' ? 'error' : 'off',
|
||||
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
||||
'no-useless-escape': 0,
|
||||
'no-unused-vars': 0, // TODO remove at the end of migration and fix
|
||||
'vue/component-name-in-template-casing': ['error', 'kebab-case'],
|
||||
'vue/no-static-inline-styles': [
|
||||
'error',
|
||||
{
|
||||
allowBinding: false,
|
||||
},
|
||||
],
|
||||
// 'vue/no-static-inline-styles': [
|
||||
// 'error',
|
||||
// {
|
||||
// allowBinding: false,
|
||||
// },
|
||||
// ],
|
||||
'vue/multi-word-component-names': 0,
|
||||
'vue/no-v-html': 0,
|
||||
'vue/no-export-in-script-setup': 0, // TODO remove at the end of migration and fix
|
||||
'vue/prop-name-casing': 0, // TODO remove at the end of migration and fix
|
||||
'vue/require-explicit-emits': 0, // TODO remove at the end of migration and fix
|
||||
'vue/no-static-inline-styles': 0, // TODO remove at the end of migration and fix
|
||||
'vue/v-on-event-hyphenation': 0, // TODO remove at the end of migration and fix
|
||||
'vue/require-default-prop': 0, // TODO remove at the end of migration and fix
|
||||
'vue/no-computed-properties-in-data': 0, // TODO remove at the end of migration and fix
|
||||
'@intlify/vue-i18n/no-dynamic-keys': 'error',
|
||||
'@intlify/vue-i18n/no-missing-keys': 0, // TODO remove at the end of migration and fix
|
||||
'@intlify/vue-i18n/no-unused-keys': [
|
||||
'error',
|
||||
{
|
||||
@ -73,7 +89,7 @@ module.exports = {
|
||||
localeDir: './src/locales/{en,de}.json',
|
||||
// Specify the version of `vue-i18n` you are using.
|
||||
// If not specified, the message will be parsed twice.
|
||||
messageSyntaxVersion: '^8.22.4',
|
||||
messageSyntaxVersion: '^9.13.1',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
"analyse-bundle": "yarn build && webpack-bundle-analyzer build/webpack.stats.json",
|
||||
"lint": "eslint --max-warnings=0 --ext .js,.vue,.json .",
|
||||
"stylelint": "stylelint --max-warnings=0 '**/*.{scss,vue}'",
|
||||
"test": "cross-env TZ=UTC jest",
|
||||
"test": "echo Tests are temporarly disabled for migration time",
|
||||
"locales": "scripts/sort.sh"
|
||||
},
|
||||
"dependencies": {
|
||||
@ -36,16 +36,6 @@
|
||||
"clipboard-polyfill": "^4.0.0-rc1",
|
||||
"date-fns": "^2.29.3",
|
||||
"es6-promise": "^4.1.1",
|
||||
"eslint": "^7.25.0",
|
||||
"eslint-config-prettier": "^8.1.0",
|
||||
"eslint-config-standard": "^16.0.2",
|
||||
"eslint-loader": "^4.0.2",
|
||||
"eslint-plugin-import": "^2.22.1",
|
||||
"eslint-plugin-jest": "^24.3.2",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-prettier": "^3.3.1",
|
||||
"eslint-plugin-promise": "^4.3.1",
|
||||
"eslint-plugin-vue": "8.7.1",
|
||||
"express": "^4.17.1",
|
||||
"flatpickr": "^4.5.7",
|
||||
"flush-promises": "^1.0.2",
|
||||
@ -56,7 +46,6 @@
|
||||
"jest-canvas-mock": "^2.5.0",
|
||||
"jwt-decode": "^3.1.2",
|
||||
"portal-vue": "^3.0.0",
|
||||
"prettier": "^2.2.1",
|
||||
"qrcanvas-vue": "2.1.1",
|
||||
"regenerator-runtime": "^0.13.7",
|
||||
"uuid": "^9.0.0",
|
||||
@ -88,14 +77,25 @@
|
||||
"babel-plugin-transform-require-context": "^0.1.1",
|
||||
"cross-env": "^7.0.3",
|
||||
"dotenv-webpack": "^7.0.3",
|
||||
"eslint": "8.57.0",
|
||||
"eslint-config-prettier": "8.10.0",
|
||||
"eslint-config-standard": "^16.0.3",
|
||||
"eslint-loader": "^4.0.2",
|
||||
"eslint-plugin-import": "^2.25.2",
|
||||
"eslint-plugin-jest": "^25.2.2",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-prettier": "5.2.1",
|
||||
"eslint-plugin-promise": "^5.1.1",
|
||||
"eslint-plugin-vue": "8.7.1",
|
||||
"mock-apollo-client": "^1.2.1",
|
||||
"postcss": "^8.4.8",
|
||||
"postcss-html": "^1.3.0",
|
||||
"postcss-scss": "^4.0.3",
|
||||
"sass": "1.32.13",
|
||||
"stylelint": "^14.5.3",
|
||||
"stylelint-config-recommended-vue": "^1.3.0",
|
||||
"stylelint-config-standard-scss": "^3.0.0",
|
||||
"prettier": "^3.3.3",
|
||||
"stylelint": "16.7.0",
|
||||
"stylelint-config-recommended-vue": "1.5.0",
|
||||
"stylelint-config-standard-scss": "13.1.0",
|
||||
"unplugin-icons": "^0.19.1",
|
||||
"unplugin-vue-components": "^0.27.3",
|
||||
"vue-html-webpack-plugin": "^3.2.2"
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div id="app" ref="app" :class="darkMode ? 'dark-mode' : ''">
|
||||
<BToastOrchestrator />
|
||||
<div :class="$route.meta.requiresAuth ? 'appContent' : ''">
|
||||
<div :class="$route.meta.requiresAuth ? 'app-content' : ''">
|
||||
<component :is="$route.meta.requiresAuth ? 'DashboardLayout' : 'AuthLayout'" />
|
||||
<div class="goldrand position-fixed fixed-bottom zindex1000"></div>
|
||||
</div>
|
||||
@ -14,43 +14,47 @@ import AuthLayout from '@/layouts/AuthLayout'
|
||||
|
||||
export default {
|
||||
name: 'App',
|
||||
components: {
|
||||
DashboardLayout,
|
||||
AuthLayout,
|
||||
},
|
||||
computed: {
|
||||
darkMode() {
|
||||
return this.$store.state.darkMode
|
||||
},
|
||||
},
|
||||
components: {
|
||||
DashboardLayout,
|
||||
AuthLayout,
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: 'WorkSans', sans-serif !important;
|
||||
src: url(./assets/scss/fonts/WorkSans-VariableFont_wght.ttf) format('truetype');
|
||||
font-family: WorkSans, sans-serif !important;
|
||||
src: url('./assets/scss/fonts/WorkSans-VariableFont_wght.ttf') format('truetype');
|
||||
}
|
||||
|
||||
#app {
|
||||
font-size: 1rem;
|
||||
font-family: 'WorkSans', sans-serif !important;
|
||||
font-family: WorkSans, sans-serif !important;
|
||||
}
|
||||
.appContent {
|
||||
|
||||
.app-content {
|
||||
min-width: 330px;
|
||||
max-width: 1320px;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
.appBoxShadow {
|
||||
-webkit-box-shadow: 20pt 20pt 50pt 0 #3838384f;
|
||||
|
||||
.app-box-shadow {
|
||||
box-shadow: 20pt 20pt 50pt 0 #3838384f;
|
||||
}
|
||||
@media screen and (max-width: 500px) {
|
||||
|
||||
@media screen and (width <= 500px) {
|
||||
#app {
|
||||
font-size: 0.85rem;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 1024px) {
|
||||
|
||||
@media screen and (width <= 1024px) {
|
||||
#app {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
@ -60,11 +64,11 @@ export default {
|
||||
.goldrand {
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
rgba(197, 141, 56, 1) 6%,
|
||||
rgba(243, 205, 124, 1) 30%,
|
||||
rgba(219, 176, 86, 1) 54%,
|
||||
rgba(238, 192, 95, 1) 63%,
|
||||
rgba(204, 157, 61, 1) 88%
|
||||
rgb(197 141 56 / 100%) 6%,
|
||||
rgb(243 205 124 / 100%) 30%,
|
||||
rgb(219 176 86 / 100%) 54%,
|
||||
rgb(238 192 95 / 100%) 63%,
|
||||
rgb(204 157 61 / 100%) 88%
|
||||
);
|
||||
height: 13px;
|
||||
}
|
||||
@ -78,6 +82,7 @@ export default {
|
||||
height: 50px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.dropdown-toggle::after {
|
||||
float: right;
|
||||
top: 50%;
|
||||
|
||||
@ -979,5 +979,4 @@ $btn-border-radius-sm: $input-border-radius !default;
|
||||
// Import Bootstrap variable defaults
|
||||
|
||||
@import "bootstrap/scss/variables";
|
||||
|
||||
@import "gradido-custom/functions";
|
||||
|
||||
@ -2,14 +2,12 @@
|
||||
|
||||
@import "bootstrap/scss/functions";
|
||||
@import "bootstrap/scss/variables";
|
||||
@import "custom/variables";
|
||||
|
||||
// @import "~bootstrap/scss/variables"; wird am
|
||||
// ende der custom/variables angehangen
|
||||
|
||||
// Bootstrap (4.5.3) mixins
|
||||
@import "bootstrap/scss/maps";
|
||||
|
||||
@import "bootstrap/scss/mixins";
|
||||
|
||||
// Bootstrap (4.5.3) components
|
||||
@ -22,15 +20,17 @@
|
||||
@import "bootstrap/scss/card";
|
||||
@import "bootstrap/scss/carousel";
|
||||
@import "bootstrap/scss/close";
|
||||
//@import "bootstrap/scss/code";
|
||||
//@import "bootstrap/scss/custom-forms";
|
||||
|
||||
// @import "bootstrap/scss/code";
|
||||
// @import "bootstrap/scss/custom-forms";
|
||||
|
||||
// @import "~bootstrap/scss/dropdown";
|
||||
@import "bootstrap/scss/forms";
|
||||
|
||||
// @import "~bootstrap/scss/functions";
|
||||
@import "bootstrap/scss/grid";
|
||||
//@import "bootstrap/scss/input-group";
|
||||
|
||||
// @import "bootstrap/scss/input-group";
|
||||
@import "bootstrap/scss/list-group";
|
||||
|
||||
// @import "~bootstrap/scss/mixins";
|
||||
@ -38,7 +38,8 @@
|
||||
@import "bootstrap/scss/nav";
|
||||
@import "bootstrap/scss/navbar";
|
||||
@import "bootstrap/scss/pagination";
|
||||
//@import "bootstrap/scss/print";
|
||||
|
||||
// @import "bootstrap/scss/print";
|
||||
@import "bootstrap/scss/progress";
|
||||
@import "bootstrap/scss/reboot";
|
||||
@import "bootstrap/scss/tables";
|
||||
@ -47,7 +48,8 @@
|
||||
@import "bootstrap/scss/transitions";
|
||||
@import "bootstrap/scss/type";
|
||||
@import "bootstrap/scss/utilities";
|
||||
//@import "bootstrap/scss/variables";
|
||||
|
||||
// @import "bootstrap/scss/variables";
|
||||
@import "bootstrap/scss/bootstrap-grid";
|
||||
@import "bootstrap/scss/bootstrap-reboot";
|
||||
@import "bootstrap/scss/bootstrap";
|
||||
|
||||
@ -27,7 +27,7 @@ export default {
|
||||
.carousel-caption {
|
||||
color: #fff;
|
||||
top: 317px;
|
||||
text-shadow: 2px 2px 8px #000000;
|
||||
text-shadow: 2px 2px 8px #000;
|
||||
font-size: xx-large;
|
||||
}
|
||||
|
||||
@ -48,10 +48,7 @@ export default {
|
||||
.carousel-inner {
|
||||
height: 100%;
|
||||
border-radius: 0% 49% 49% 0% / 0% 51% 49% 0%;
|
||||
-webkit-border-radius: 0% 49% 49% 0% / 0% 51% 49% 0%;
|
||||
backface-visibility: hidden;
|
||||
-webkit-backface-visibility: hidden;
|
||||
transform: translate3d(0, 0, 0);
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -13,9 +13,9 @@
|
||||
<BImg class="sheet-img position-absolute d-block d-lg-none zindex1000" :src="sheet"></BImg>
|
||||
<BCollapse id="nav-collapse" is-nav>
|
||||
<BNavbarNav class="ml-auto d-none d-lg-flex" right>
|
||||
<BNavItem :to="register" class="authNavbar ml-lg-5">{{ $t('signup') }}</BNavItem>
|
||||
<BNavItem :to="register" class="auth-navbar ml-lg-5">{{ $t('signup') }}</BNavItem>
|
||||
<span class="d-none d-lg-block mt-1">{{ $t('math.pipe') }}</span>
|
||||
<BNavItem :to="login" class="authNavbar">{{ $t('signin') }}</BNavItem>
|
||||
<BNavItem :to="login" class="auth-navbar">{{ $t('signin') }}</BNavItem>
|
||||
</BNavbarNav>
|
||||
</BCollapse>
|
||||
</BNavbar>
|
||||
@ -39,18 +39,20 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.authNavbar {
|
||||
.auth-navbar {
|
||||
display: flex;
|
||||
align-content: center;
|
||||
|
||||
> * {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
.authNavbar > :deep(.nav-link) {
|
||||
|
||||
.auth-navbar > :deep(.nav-link) {
|
||||
color: #0e79bc !important;
|
||||
}
|
||||
|
||||
.authNavbar > :deep(.router-link-exact-active) {
|
||||
.auth-navbar > :deep(.router-link-exact-active) {
|
||||
color: #383838 !important;
|
||||
}
|
||||
|
||||
@ -70,18 +72,19 @@ export default {
|
||||
max-width: 64%;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1024px) {
|
||||
@media screen and (width <= 1024px) {
|
||||
.auth-header {
|
||||
height: 100px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
@media screen and (width <= 768px) {
|
||||
.auth-header {
|
||||
height: 70px;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 450px) {
|
||||
|
||||
@media screen and (width <= 450px) {
|
||||
.sheet-img {
|
||||
top: -15px;
|
||||
right: 0%;
|
||||
|
||||
@ -2,9 +2,9 @@
|
||||
<div class="navbar-small">
|
||||
<b-navbar class="navi">
|
||||
<b-navbar-nav>
|
||||
<b-nav-item :to="register" class="authNavbar">{{ $t('signup') }}</b-nav-item>
|
||||
<b-nav-item :to="register" class="auth-navbar">{{ $t('signup') }}</b-nav-item>
|
||||
<span class="mt-1">{{ $t('math.pipe') }}</span>
|
||||
<b-nav-item :to="login" class="authNavbar">{{ $t('signin') }}</b-nav-item>
|
||||
<b-nav-item :to="login" class="auth-navbar">{{ $t('signin') }}</b-nav-item>
|
||||
</b-navbar-nav>
|
||||
</b-navbar>
|
||||
</div>
|
||||
@ -20,7 +20,7 @@ export default {
|
||||
</script>
|
||||
<style scoped>
|
||||
.navi {
|
||||
margin-left: 0px;
|
||||
padding-left: 0px;
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -5,8 +5,8 @@
|
||||
<label>{{ $t('gdd_per_link.copy-link') }}</label>
|
||||
<div
|
||||
class="pointer text-center bg-secondary gradido-border-radius p-3"
|
||||
@click="copyLink"
|
||||
data-test="copyLink"
|
||||
@click="copyLink"
|
||||
>
|
||||
{{ link }}
|
||||
<div>
|
||||
|
||||
@ -4,10 +4,10 @@
|
||||
<BDropdown no-flip :text="modelValue?.name">
|
||||
<BDropdownItem
|
||||
v-for="community in communities"
|
||||
@click.prevent="updateCommunity(community)"
|
||||
:key="community.id"
|
||||
:title="community.description"
|
||||
:active="modelValue?.uuid === community.uuid"
|
||||
@click.prevent="updateCommunity(community)"
|
||||
>
|
||||
{{ community.name }}
|
||||
</BDropdownItem>
|
||||
|
||||
@ -42,6 +42,11 @@ export default {
|
||||
isSubmitting: false,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
disabled() {
|
||||
return this.form.text === '' || this.isSubmitting
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
onSubmit() {
|
||||
this.isSubmitting = true
|
||||
@ -69,10 +74,5 @@ export default {
|
||||
this.form.text = ''
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
disabled() {
|
||||
return this.form.text === '' || this.isSubmitting
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
<template>
|
||||
<div class="contribution-messages-list">
|
||||
<div>
|
||||
<div v-for="message in messages" v-bind:key="message.id" class="mt-3">
|
||||
<div v-for="message in messages" :key="message.id" class="mt-3">
|
||||
<contribution-messages-list-item :message="message" />
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<contribution-messages-formular
|
||||
v-if="['PENDING', 'IN_PROGRESS'].includes(status)"
|
||||
:contributionId="contributionId"
|
||||
v-on="$listeners"
|
||||
:contribution-id="contributionId"
|
||||
v-bind="$attrs"
|
||||
@update-status="updateStatus"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@ -4,10 +4,10 @@
|
||||
<BRow class="mb-3 border border-197 p-1">
|
||||
<BCol cols="10">
|
||||
<small>{{ $d(new Date(message.createdAt), 'short') }}</small>
|
||||
<div class="font-weight-bold" data-test="username" v-if="isNotModerator">
|
||||
<div v-if="isNotModerator" class="font-weight-bold" data-test="username">
|
||||
{{ storeName.username }} {{ $t('contribution.isEdited') }}
|
||||
</div>
|
||||
<div class="font-weight-bold" data-test="moderator-name" v-else>
|
||||
<div v-else class="font-weight-bold" data-test="moderator-name">
|
||||
{{ $t('community.moderator') }} {{ $t('contribution.isEdited') }}
|
||||
</div>
|
||||
<div class="small">
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
<template>
|
||||
<div class="mt-1">
|
||||
<span v-for="({ type, text }, index) in parsedMessage" :key="index">
|
||||
<b-link v-if="type === 'link'" :href="text" target="_blank">{{ text }}</b-link>
|
||||
<span v-else-if="type === 'date'">
|
||||
<span v-for="({ type: messageType, text }, index) in parsedMessage" :key="index">
|
||||
<b-link v-if="messageType === 'link'" :href="text" target="_blank">{{ text }}</b-link>
|
||||
<span v-else-if="messageType === 'date'">
|
||||
{{ $d(new Date(text), 'short') }}
|
||||
<br />
|
||||
</span>
|
||||
<span v-else-if="type === 'amount'">
|
||||
<span v-else-if="messageType === 'amount'">
|
||||
<br />
|
||||
{{ $filters.GDD(text) }}
|
||||
</span>
|
||||
@ -16,7 +16,8 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
const LINK_REGEX_PATTERN = /(https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*))/i
|
||||
const LINK_REGEX_PATTERN =
|
||||
/(https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*))/i
|
||||
|
||||
export default {
|
||||
name: 'ParseMessage',
|
||||
@ -27,7 +28,7 @@ export default {
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
reuired: true,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
|
||||
@ -2,8 +2,8 @@
|
||||
<div class="contribution-form">
|
||||
<BForm
|
||||
ref="form"
|
||||
class="form-style p-3 bg-white app-box-shadow gradido-border-radius"
|
||||
@submit.prevent="submit"
|
||||
class="form-style p-3 bg-white appBoxShadow gradido-border-radius"
|
||||
>
|
||||
<label>{{ $t('contribution.selectDate') }}</label>
|
||||
<BFormInput
|
||||
@ -46,7 +46,7 @@
|
||||
max: validMaxTime,
|
||||
gddCreationTime: [0.25, validMaxTime],
|
||||
}"
|
||||
:validMaxTime="validMaxTime"
|
||||
:valid-max-time="validMaxTime"
|
||||
@updateAmount="updateAmount"
|
||||
></input-hour>
|
||||
<input-amount
|
||||
@ -65,8 +65,8 @@
|
||||
block
|
||||
type="reset"
|
||||
variant="secondary"
|
||||
@click="reset"
|
||||
data-test="button-cancel"
|
||||
@click="reset"
|
||||
>
|
||||
{{ $t('form.cancel') }}
|
||||
</BButton>
|
||||
@ -114,23 +114,6 @@ export default {
|
||||
form: this.value, // includes 'id' and time
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
updateAmount(hours) {
|
||||
this.form.amount = (hours * 20).toFixed(2).toString()
|
||||
},
|
||||
submit() {
|
||||
this.$emit(this.form.id ? 'update-contribution' : 'set-contribution', { ...this.form })
|
||||
this.reset()
|
||||
},
|
||||
reset() {
|
||||
this.$refs.form.reset()
|
||||
this.form.id = null
|
||||
this.form.date = ''
|
||||
this.form.memo = ''
|
||||
this.form.hours = 0
|
||||
this.form.amount = ''
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
showMessage() {
|
||||
if (this.maxGddThisMonth <= 0 && this.maxGddLastMonth <= 0) return true
|
||||
@ -177,12 +160,30 @@ export default {
|
||||
return (this.form = this.value)
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
updateAmount(hours) {
|
||||
this.form.amount = (hours * 20).toFixed(2).toString()
|
||||
},
|
||||
submit() {
|
||||
this.$emit(this.form.id ? 'update-contribution' : 'set-contribution', { ...this.form })
|
||||
this.reset()
|
||||
},
|
||||
reset() {
|
||||
this.$refs.form.reset()
|
||||
this.form.id = null
|
||||
this.form.date = ''
|
||||
this.form.memo = ''
|
||||
this.form.hours = 0
|
||||
this.form.amount = ''
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
.form-style {
|
||||
min-height: 410px;
|
||||
}
|
||||
|
||||
span.errors {
|
||||
color: red;
|
||||
}
|
||||
|
||||
@ -31,8 +31,7 @@ describe('ContributionList', () => {
|
||||
{
|
||||
id: 2,
|
||||
date: '05/04/2022',
|
||||
memo:
|
||||
'Ich habe 50 Stunden den Nachbarkindern bei ihren Hausaufgaben geholfen und Nachhilfeunterricht gegeben.',
|
||||
memo: 'Ich habe 50 Stunden den Nachbarkindern bei ihren Hausaufgaben geholfen und Nachhilfeunterricht gegeben.',
|
||||
amount: '1000',
|
||||
},
|
||||
],
|
||||
|
||||
@ -1,24 +1,24 @@
|
||||
<template>
|
||||
<div class="contribution-list">
|
||||
<div class="mb-3" v-for="item in items" :key="item.id + 'a'">
|
||||
<div v-for="item in items" :key="item.id + 'a'" class="mb-3">
|
||||
<contribution-list-item
|
||||
v-if="item.status === 'IN_PROGRESS'"
|
||||
v-bind="item"
|
||||
:contribution-id="item.id"
|
||||
:all-contribution="allContribution"
|
||||
@closeAllOpenCollapse="$emit('closeAllOpenCollapse')"
|
||||
:contributionId="item.id"
|
||||
:allContribution="allContribution"
|
||||
@update-contribution-form="updateContributionForm"
|
||||
@delete-contribution="deleteContribution"
|
||||
@update-status="updateStatus"
|
||||
/>
|
||||
</div>
|
||||
<div class="mb-3" v-for="item2 in items" :key="item2.id">
|
||||
<div v-for="item2 in items" :key="item2.id" class="mb-3">
|
||||
<contribution-list-item
|
||||
v-if="item2.status !== 'IN_PROGRESS'"
|
||||
v-bind="item2"
|
||||
:contribution-id="item2.id"
|
||||
:all-contribution="allContribution"
|
||||
@closeAllOpenCollapse="$emit('closeAllOpenCollapse')"
|
||||
:contributionId="item2.id"
|
||||
:allContribution="allContribution"
|
||||
@update-contribution-form="updateContributionForm"
|
||||
@delete-contribution="deleteContribution"
|
||||
@update-status="updateStatus"
|
||||
@ -26,10 +26,10 @@
|
||||
</div>
|
||||
<b-pagination
|
||||
v-if="isPaginationVisible"
|
||||
v-model="currentPage"
|
||||
class="mt-3"
|
||||
pills
|
||||
size="lg"
|
||||
v-model="currentPage"
|
||||
:per-page="pageSize"
|
||||
:total-rows="contributionCount"
|
||||
align="center"
|
||||
@ -71,6 +71,16 @@ export default {
|
||||
messages: [],
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
isPaginationVisible() {
|
||||
return this.showPagination && this.pageSize < this.contributionCount
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
currentPage() {
|
||||
this.updateListContributions()
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
updateListContributions() {
|
||||
this.$emit('update-list-contributions', {
|
||||
@ -89,15 +99,5 @@ export default {
|
||||
this.$emit('update-status', id)
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
isPaginationVisible() {
|
||||
return this.showPagination && this.pageSize < this.contributionCount
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
currentPage() {
|
||||
this.updateListContributions()
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<div
|
||||
class="contribution-list-item bg-white appBoxShadow gradido-border-radius pt-3 px-3"
|
||||
class="contribution-list-item bg-white app-box-shadow gradido-border-radius pt-3 px-3"
|
||||
:class="status === 'IN_PROGRESS' && !allContribution ? 'pulse border border-205' : ''"
|
||||
>
|
||||
<BRow>
|
||||
@ -25,7 +25,7 @@
|
||||
</div>
|
||||
<div class="mt-3 font-weight-bold">{{ $t('contributionText') }}</div>
|
||||
<div class="mb-3 text-break word-break">{{ memo }}</div>
|
||||
<div class="mt-2 mb-2 small" v-if="updatedBy > 0">
|
||||
<div v-if="updatedBy > 0" class="mt-2 mb-2 small">
|
||||
{{ $t('moderatorChangedMemo') }}
|
||||
</div>
|
||||
<div
|
||||
@ -98,11 +98,11 @@
|
||||
</BCol>
|
||||
</BRow>
|
||||
<div v-else class="pb-3"></div>
|
||||
<BCollapse :id="collapsId" class="mt-2" v-model="visible">
|
||||
<BCollapse :id="collapsId" v-model="visible" class="mt-2">
|
||||
<contribution-messages-list
|
||||
:messages="messages_get"
|
||||
:status="status"
|
||||
:contributionId="contributionId"
|
||||
:contribution-id="contributionId"
|
||||
@get-list-contribution-messages="getListContributionMessages"
|
||||
@update-status="updateStatus"
|
||||
/>
|
||||
@ -230,6 +230,11 @@ export default {
|
||||
}
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
visible() {
|
||||
if (this.visible) this.getListContributionMessages()
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
deleteContribution(item) {
|
||||
this.$bvModal.msgBoxConfirm(this.$t('contribution.delete')).then(async (value) => {
|
||||
@ -259,10 +264,5 @@ export default {
|
||||
this.$emit('update-status', id)
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
visible() {
|
||||
if (this.visible) this.getListContributionMessages()
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -37,7 +37,7 @@ describe('OpenCreationsAmount', () => {
|
||||
})
|
||||
|
||||
it('renders the component', () => {
|
||||
expect(wrapper.find('div.appBoxShadow').exists()).toBe(true)
|
||||
expect(wrapper.find('div.app-box-shadow').exists()).toBe(true)
|
||||
})
|
||||
|
||||
it('renders two dates', () => {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="bg-white appBoxShadow gradido-border-radius p-3">
|
||||
<div class="bg-white app-box-shadow gradido-border-radius p-3">
|
||||
<div class="pl-3">
|
||||
<BRow class="small">
|
||||
<BCol>{{ $t('time.months') }}</BCol>
|
||||
|
||||
@ -12,8 +12,8 @@
|
||||
/>
|
||||
<div class="mb-3">
|
||||
<BButton
|
||||
class="test-button-load-more"
|
||||
v-if="!pending && transactionLinks.length < transactionLinkCount"
|
||||
class="test-button-load-more"
|
||||
block
|
||||
variant="outline-primary"
|
||||
@click="loadMoreLinks"
|
||||
@ -47,14 +47,6 @@ export default {
|
||||
pageSize: { type: Number, default: 5 },
|
||||
pending: { type: Boolean, default: false },
|
||||
},
|
||||
methods: {
|
||||
resetTransactionLinkList() {
|
||||
this.$emit('input', 0)
|
||||
},
|
||||
loadMoreLinks() {
|
||||
this.$emit('input', this.value + 1)
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
buttonText() {
|
||||
const i = this.transactionLinkCount - this.transactionLinks.length
|
||||
@ -63,5 +55,13 @@ export default {
|
||||
return this.$t('link-load', 2, { n: this.pageSize })
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
resetTransactionLinkList() {
|
||||
this.$emit('input', 0)
|
||||
},
|
||||
loadMoreLinks() {
|
||||
this.$emit('input', this.value + 1)
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: 'DecayInformation-StartBlock',
|
||||
name: 'DecayInformationStartBlock',
|
||||
props: {
|
||||
memo: {
|
||||
type: String,
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: 'DecayInformation-Decay',
|
||||
name: 'DecayInformationDecay',
|
||||
props: {
|
||||
balance: {
|
||||
type: String,
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
</div>
|
||||
</BCol>
|
||||
</BRow>
|
||||
<duration-row :decayStart="decay.start" :decayEnd="decay.end" />
|
||||
<duration-row :decay-start="decay.start" :decay-end="decay.end" />
|
||||
|
||||
<!-- Decay-->
|
||||
<BRow>
|
||||
@ -69,7 +69,7 @@
|
||||
import DurationRow from '@/components/TransactionRows/DurationRow'
|
||||
|
||||
export default {
|
||||
name: 'DecayInformation-StartBlock',
|
||||
name: 'DecayInformationStartBlock',
|
||||
components: {
|
||||
DurationRow,
|
||||
},
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
</div>
|
||||
</BCol>
|
||||
</BRow>
|
||||
<duration-row :decayStart="decay.start" :decayEnd="decay.end" />
|
||||
<duration-row :decay-start="decay.start" :decay-end="decay.end" />
|
||||
|
||||
<!-- Previous Balance -->
|
||||
<BRow class="mt-2">
|
||||
@ -75,7 +75,7 @@
|
||||
import DurationRow from '@/components/TransactionRows/DurationRow'
|
||||
|
||||
export default {
|
||||
name: 'DecayInformation-Long',
|
||||
name: 'DecayInformationLong',
|
||||
components: {
|
||||
DurationRow,
|
||||
},
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: 'DecayInformation-Short',
|
||||
name: 'DecayInformationShort',
|
||||
props: {
|
||||
decay: {
|
||||
type: String,
|
||||
|
||||
@ -5,16 +5,16 @@
|
||||
v-else-if="isStartBlock"
|
||||
:amount="amount"
|
||||
:decay="decay"
|
||||
:typeId="typeId"
|
||||
:type-id="typeId"
|
||||
/>
|
||||
<decay-information-long
|
||||
v-else
|
||||
:amount="amount"
|
||||
:decay="decay"
|
||||
:typeId="typeId"
|
||||
:type-id="typeId"
|
||||
:memo="memo"
|
||||
:balance="balance"
|
||||
:previousBalance="previousBalance"
|
||||
:previous-balance="previousBalance"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="transaction-confirm-link">
|
||||
<div class="bg-white appBoxShadow gradido-border-radius p-3">
|
||||
<div class="bg-white app-box-shadow gradido-border-radius p-3">
|
||||
<div class="h3 mb-4">{{ $t('gdd_per_link.header') }}</div>
|
||||
<BRow class="mt-5">
|
||||
<BCol offset="2">
|
||||
@ -37,7 +37,7 @@
|
||||
</BRow>
|
||||
<BRow class="mt-5">
|
||||
<BCol cols="12" md="6" lg="6">
|
||||
<BButton block @click="$emit('on-back')" class="mb-3 mb-md-0 mb-lg-0">
|
||||
<BButton block class="mb-3 mb-md-0 mb-lg-0" @click="$emit('on-back')">
|
||||
{{ $t('back') }}
|
||||
</BButton>
|
||||
</BCol>
|
||||
@ -83,8 +83,9 @@ export default {
|
||||
.gray-background {
|
||||
background-color: #ecebe6a3 !important;
|
||||
}
|
||||
|
||||
.borderbottom {
|
||||
border-bottom: 1px solid rgb(70, 65, 65);
|
||||
border-bottom: 1px solid rgb(70 65 65);
|
||||
border-bottom-style: double;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="transaction-confirm-send">
|
||||
<div class="bg-white appBoxShadow gradido-border-radius p-3">
|
||||
<div class="bg-white app-box-shadow gradido-border-radius p-3">
|
||||
<div class="h3 mb-4">{{ $t('form.send_check') }}</div>
|
||||
<BRow class="mt-5">
|
||||
<BCol cols="12">
|
||||
@ -48,7 +48,7 @@
|
||||
</BRow>
|
||||
<BRow class="mt-5">
|
||||
<BCol cols="12" md="6" lg="6">
|
||||
<BButton block @click="$emit('on-back')" class="mb-3 mb-md-0 mb-lg-0">
|
||||
<BButton block class="mb-3 mb-md-0 mb-lg-0" @click="$emit('on-back')">
|
||||
{{ $t('back') }}
|
||||
</BButton>
|
||||
</BCol>
|
||||
@ -95,8 +95,9 @@ export default {
|
||||
.gray-background {
|
||||
background-color: #ecebe6a3 !important;
|
||||
}
|
||||
|
||||
.borderbottom {
|
||||
border-bottom: 1px solid rgb(70, 65, 65);
|
||||
border-bottom: 1px solid rgb(70 65 65);
|
||||
border-bottom-style: double;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
<div class="transaction-form">
|
||||
<BRow>
|
||||
<BCol cols="12">
|
||||
<BCard class="appBoxShadow gradido-border-radius" body-class="p-4">
|
||||
<BCard class="app-box-shadow gradido-border-radius" body-class="p-4">
|
||||
<BForm role="form" @submit.prevent="onSubmit" @reset="onReset">
|
||||
<BFormRadioGroup
|
||||
name="shipping"
|
||||
@ -38,7 +38,7 @@
|
||||
</BCol>
|
||||
</BRow>
|
||||
</BFormRadioGroup>
|
||||
<div class="mt-4 mb-4" v-if="radioSelected === SEND_TYPES.link">
|
||||
<div v-if="radioSelected === SEND_TYPES.link" class="mt-4 mb-4">
|
||||
<h2 class="alert-heading">{{ $t('gdd_per_link.header') }}</h2>
|
||||
<div>
|
||||
{{ $t('gdd_per_link.choose-amount') }}
|
||||
@ -47,7 +47,7 @@
|
||||
<BRow>
|
||||
<BCol>
|
||||
<BRow>
|
||||
<BCol class="mb-4" cols="12" v-if="radioSelected === SEND_TYPES.send">
|
||||
<BCol v-if="radioSelected === SEND_TYPES.send" class="mb-4" cols="12">
|
||||
<BRow>
|
||||
<BCol>{{ $t('form.recipientCommunity') }}</BCol>
|
||||
</BRow>
|
||||
@ -61,7 +61,7 @@
|
||||
</BCol>
|
||||
</BRow>
|
||||
</BCol>
|
||||
<BCol cols="12" v-if="radioSelected === SEND_TYPES.send">
|
||||
<BCol v-if="radioSelected === SEND_TYPES.send" cols="12">
|
||||
<div v-if="!userIdentifier">
|
||||
<input-identifier
|
||||
name="identifier"
|
||||
@ -112,8 +112,8 @@
|
||||
block
|
||||
type="reset"
|
||||
variant="secondary"
|
||||
@click="onReset"
|
||||
class="mb-3 mb-md-0 mb-lg-0"
|
||||
@click="onReset"
|
||||
>
|
||||
{{ $t('form.reset') }}
|
||||
</BButton>
|
||||
@ -339,7 +339,6 @@ watch(userError, (error) => {
|
||||
})
|
||||
|
||||
const onSubmit = handleSubmit((formValues) => {
|
||||
console.log('????')
|
||||
if (userIdentifier.value) formValues.identifier = userIdentifier.value.identifier
|
||||
emit('set-transaction', {
|
||||
selected: radioSelected.value,
|
||||
@ -368,11 +367,13 @@ function onReset(event) {
|
||||
span.errors {
|
||||
color: red;
|
||||
}
|
||||
|
||||
#input-1:focus,
|
||||
#input-2:focus,
|
||||
#input-3:focus {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.border-radius {
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
@ -1,17 +1,17 @@
|
||||
<template>
|
||||
<div class="bg-white appBoxShadow gradido-border-radius p-5">
|
||||
<div class="bg-white app-box-shadow gradido-border-radius p-5">
|
||||
<div class="h3 mb-4">{{ $t('gdd_per_link.created') }}</div>
|
||||
<clipboard-copy
|
||||
:link="link"
|
||||
:amount="amount"
|
||||
:memo="memo"
|
||||
:validUntil="validUntil"
|
||||
:valid-until="validUntil"
|
||||
></clipboard-copy>
|
||||
<label>{{ $t('qrCode') }}</label>
|
||||
<div class="text-center">
|
||||
<div><figure-qr-code :link="link" /></div>
|
||||
<div>
|
||||
<BButton variant="secondary" @click="$emit('on-back')" class="mt-4" data-test="close-btn">
|
||||
<BButton variant="secondary" class="mt-4" data-test="close-btn" @click="$emit('on-back')">
|
||||
{{ $t('form.close') }}
|
||||
</BButton>
|
||||
</div>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="bg-white appBoxShadow gradido-border-radius p-4">
|
||||
<div class="bg-white app-box-shadow gradido-border-radius p-4">
|
||||
<div>
|
||||
<div class="gradido-font-15rem">{{ $t('form.sorry') }}</div>
|
||||
<hr />
|
||||
@ -7,12 +7,12 @@
|
||||
<div class="test-send_transaction_error">{{ $t('form.send_transaction_error') }}</div>
|
||||
|
||||
<hr />
|
||||
<div class="test-receiver-not-found" v-if="errorResult === 'recipient not known'">
|
||||
<div v-if="errorResult === 'recipient not known'" class="test-receiver-not-found">
|
||||
{{ $t('transaction.receiverNotFound') }}
|
||||
</div>
|
||||
<div
|
||||
class="test-receiver-not-found"
|
||||
v-if="errorResult === 'GraphQL error: The recipient account was deleted'"
|
||||
class="test-receiver-not-found"
|
||||
>
|
||||
{{ $t('transaction.receiverDeleted') }}
|
||||
</div>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="bg-white appBoxShadow gradido-border-radius p-3">
|
||||
<div class="bg-white app-box-shadow gradido-border-radius p-3">
|
||||
<div class="p-4" data-test="send-transaction-success-text">
|
||||
{{ $t('form.thx') }}
|
||||
<hr />
|
||||
|
||||
@ -113,8 +113,7 @@ describe('GddTransactionList', () => {
|
||||
balance: '31.76099091058520945292',
|
||||
previousBalance: '30.76',
|
||||
balanceDate: '2022-02-28T13:55:47',
|
||||
memo:
|
||||
'Um den Kessel schlingt den Reihn, Werft die Eingeweid‘ hinein. Kröte du, die Nacht und Tag Unterm kalten Steine lag,',
|
||||
memo: 'Um den Kessel schlingt den Reihn, Werft die Eingeweid‘ hinein. Kröte du, die Nacht und Tag Unterm kalten Steine lag,',
|
||||
linkedUser: {
|
||||
firstName: 'Bibi',
|
||||
lastName: 'Bloxberg',
|
||||
@ -133,8 +132,7 @@ describe('GddTransactionList', () => {
|
||||
balance: '10',
|
||||
previousBalance: '31.75',
|
||||
balanceDate: '2022-02-23T10:55:30',
|
||||
memo:
|
||||
'Monatlanges Gift sog ein, In den Topf zuerst hinein… (William Shakespeare, Die Hexen aus Macbeth)',
|
||||
memo: 'Monatlanges Gift sog ein, In den Topf zuerst hinein… (William Shakespeare, Die Hexen aus Macbeth)',
|
||||
linkedUser: {
|
||||
firstName: 'Bibi',
|
||||
lastName: 'Bloxberg',
|
||||
|
||||
@ -17,8 +17,8 @@
|
||||
<div v-for="({ id, typeId }, index) in transactions" :key="`l1-` + id">
|
||||
<transaction-list-item
|
||||
v-if="typeId === 'DECAY'"
|
||||
:typeId="typeId"
|
||||
class="pointer bg-white appBoxShadow gradido-border-radius px-4 pt-2 test-list-group-item"
|
||||
:type-id="typeId"
|
||||
class="pointer bg-white app-box-shadow gradido-border-radius px-4 pt-2 test-list-group-item"
|
||||
>
|
||||
<template #DECAY>
|
||||
<transaction-decay v-bind="transactions[index]" />
|
||||
@ -29,8 +29,8 @@
|
||||
<div v-for="({ id, typeId }, index) in transactions" :key="`l2-` + id">
|
||||
<transaction-list-item
|
||||
v-if="typeId !== 'DECAY'"
|
||||
:typeId="typeId"
|
||||
class="pointer mb-3 bg-white appBoxShadow gradido-border-radius p-3 test-list-group-item"
|
||||
:type-id="typeId"
|
||||
class="pointer mb-3 bg-white app-box-shadow gradido-border-radius p-3 test-list-group-item"
|
||||
>
|
||||
<template #SEND>
|
||||
<transaction-send v-bind="transactions[index]" />
|
||||
@ -47,7 +47,7 @@
|
||||
<template #LINK_SUMMARY>
|
||||
<transaction-link-summary
|
||||
v-bind="transactions[index]"
|
||||
:transactionLinkCount="transactionLinkCount"
|
||||
:transaction-link-count="transactionLinkCount"
|
||||
@update-transactions="updateTransactions"
|
||||
/>
|
||||
</template>
|
||||
@ -57,10 +57,10 @@
|
||||
</div>
|
||||
<b-pagination
|
||||
v-if="isPaginationVisible"
|
||||
v-model="currentPage"
|
||||
class="mt-3"
|
||||
pills
|
||||
size="lg"
|
||||
v-model="currentPage"
|
||||
:per-page="pageSize"
|
||||
:total-rows="transactionCount"
|
||||
align="center"
|
||||
@ -83,7 +83,7 @@ import TransactionCreation from '@/components/Transactions/TransactionCreation'
|
||||
import TransactionLinkSummary from '@/components/Transactions/TransactionLinkSummary'
|
||||
|
||||
export default {
|
||||
name: 'gdd-transaction-list',
|
||||
name: 'GddTransactionList',
|
||||
components: {
|
||||
TransactionListItem,
|
||||
TransactionDecay,
|
||||
@ -93,7 +93,7 @@ export default {
|
||||
TransactionLinkSummary,
|
||||
},
|
||||
props: {
|
||||
transactions: { default: () => [] },
|
||||
transactions: { type: Array, default: () => [] },
|
||||
pageSize: { type: Number, default: 25 },
|
||||
timestamp: { type: Number, default: 0 },
|
||||
transactionCount: { type: Number, default: 0 },
|
||||
@ -106,15 +106,6 @@ export default {
|
||||
currentPage: 1,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
updateTransactions() {
|
||||
this.$emit('update-transactions', {
|
||||
currentPage: this.currentPage,
|
||||
pageSize: this.pageSize,
|
||||
})
|
||||
window.scrollTo(0, 0)
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
isPaginationVisible() {
|
||||
return this.showPagination && this.pageSize < this.transactionCount
|
||||
@ -129,6 +120,15 @@ export default {
|
||||
handler: 'updateTransactions',
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
updateTransactions() {
|
||||
this.$emit('update-transactions', {
|
||||
currentPage: this.currentPage,
|
||||
pageSize: this.pageSize,
|
||||
})
|
||||
window.scrollTo(0, 0)
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -137,8 +137,9 @@ collaps-icon {
|
||||
width: 95%;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.el-table .cell {
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
<template>
|
||||
<div>
|
||||
<b-list-group>
|
||||
<b-list-group-item v-if="count > 5">
|
||||
<BListGroup>
|
||||
<BListGroupItem v-if="count > 5">
|
||||
<!-- eslint-disable @intlify/vue-i18n/no-v-html -->
|
||||
<router-link
|
||||
to="/transactions"
|
||||
v-html="$t('transaction.show_all', { count })"
|
||||
></router-link>
|
||||
<!-- eslint-enable @intlify/vue-i18n/no-v-html -->
|
||||
</b-list-group-item>
|
||||
</b-list-group>
|
||||
</BListGroupItem>
|
||||
</BListGroup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
export default {
|
||||
name: 'GddTransactionListFooter',
|
||||
props: {
|
||||
count: { count: Number },
|
||||
count: { type: Number },
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -12,27 +12,27 @@
|
||||
{{ $t('gdt.not-reachable') }}
|
||||
</div>
|
||||
<div
|
||||
v-else
|
||||
v-for="{ id, amount, date, comment, gdtEntryType, factor, gdt } in transactionsGdt"
|
||||
v-else
|
||||
:key="id"
|
||||
>
|
||||
<transaction
|
||||
:id="id"
|
||||
:amount="amount"
|
||||
:date="date"
|
||||
:comment="comment"
|
||||
:gdtEntryType="gdtEntryType"
|
||||
:gdt-entry-type="gdtEntryType"
|
||||
:factor="factor"
|
||||
:gdt="gdt"
|
||||
:id="id"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<BPagination
|
||||
v-if="transactionGdtCount > pageSize"
|
||||
v-model="currentPage"
|
||||
class="mt-3"
|
||||
pills
|
||||
size="lg"
|
||||
v-model="currentPage"
|
||||
:per-page="pageSize"
|
||||
:total-rows="transactionGdtCount"
|
||||
align="center"
|
||||
@ -73,8 +73,8 @@ export default {
|
||||
</script>
|
||||
<style>
|
||||
.el-table .cell {
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-link.active,
|
||||
|
||||
@ -10,20 +10,20 @@
|
||||
<template v-if="typ === 'TransactionForm'">
|
||||
<BFormGroup :label="label" :label-for="labelFor" data-test="input-amount">
|
||||
<BFormInput
|
||||
:model-value="value"
|
||||
@update:model-value="normalizeAmount($event)"
|
||||
:id="labelFor"
|
||||
v-focus="amountFocused"
|
||||
:model-value="value"
|
||||
:class="$route.path === '/send' ? 'bg-248' : ''"
|
||||
:name="name"
|
||||
:placeholder="placeholder"
|
||||
type="text"
|
||||
:state="meta.valid"
|
||||
trim
|
||||
v-focus="amountFocused"
|
||||
@focus="amountFocused = true"
|
||||
@blur="normalizeAmount($event)"
|
||||
:disabled="disabled"
|
||||
autocomplete="off"
|
||||
@update:model-value="normalizeAmount($event)"
|
||||
@focus="amountFocused = true"
|
||||
@blur="normalizeAmount($event)"
|
||||
></BFormInput>
|
||||
|
||||
<BFormInvalidFeedback v-if="errorMessage">
|
||||
@ -34,15 +34,15 @@
|
||||
<!-- </validation-provider>-->
|
||||
<BInputGroup v-else append="GDD" :label="label" :label-for="labelFor">
|
||||
<BFormInput
|
||||
:model-value="value"
|
||||
@update:model-value="normalizeAmount($event)"
|
||||
:id="labelFor"
|
||||
v-focus="amountFocused"
|
||||
:model-value="value"
|
||||
:name="name"
|
||||
:placeholder="placeholder"
|
||||
type="text"
|
||||
readonly
|
||||
trim
|
||||
v-focus="amountFocused"
|
||||
@update:model-value="normalizeAmount($event)"
|
||||
@focus="amountFocused = true"
|
||||
@blur="normalizeAmount($event)"
|
||||
></BFormInput>
|
||||
|
||||
@ -33,12 +33,11 @@
|
||||
<div>
|
||||
<BFormGroup :label="defaultTranslations.label" :label-for="labelFor" data-test="input-email">
|
||||
<BFormInput
|
||||
:model-value="value"
|
||||
@update:modelValue="normalizeEmail($event)"
|
||||
v-bind="ariaInput"
|
||||
:id="labelFor"
|
||||
:model-value="value"
|
||||
:state="meta.valid"
|
||||
data-test="input-email"
|
||||
:id="labelFor"
|
||||
:name="name"
|
||||
:placeholder="defaultTranslations.placeholder"
|
||||
type="email"
|
||||
@ -46,6 +45,7 @@
|
||||
:class="$route.path === '/send' ? 'bg-248' : ''"
|
||||
:disabled="disabled"
|
||||
autocomplete="off"
|
||||
@update:modelValue="normalizeEmail($event)"
|
||||
/>
|
||||
<BFormInvalidFeedback v-bind="ariaMsg">
|
||||
{{ errorMessage }}
|
||||
@ -151,7 +151,7 @@ const defaultTranslations = computed(() => ({
|
||||
}))
|
||||
|
||||
const normalizeEmail = (emailAddress) => {
|
||||
//TODO trigger blur on bootstrap input
|
||||
// TODO trigger blur on bootstrap input
|
||||
// emailFocused.value = false
|
||||
value.value = emailAddress.trim()
|
||||
validate()
|
||||
|
||||
@ -26,10 +26,9 @@
|
||||
<div class="input-hour">
|
||||
<BFormGroup :label="label" :label-for="labelFor">
|
||||
<BFormInput
|
||||
:model-value="currentValue"
|
||||
@update:modelValue="currentValue"
|
||||
v-bind="ariaInput"
|
||||
:id="labelFor"
|
||||
:model-value="currentValue"
|
||||
:name="name"
|
||||
:placeholder="placeholder"
|
||||
type="number"
|
||||
@ -38,6 +37,7 @@
|
||||
min="0"
|
||||
:max="validMaxTime"
|
||||
class="bg-248"
|
||||
@update:modelValue="currentValue"
|
||||
/>
|
||||
</BFormGroup>
|
||||
</div>
|
||||
|
||||
@ -1,9 +1,8 @@
|
||||
<template>
|
||||
<BFormGroup :label="label" :label-for="labelFor" data-test="input-identifier">
|
||||
<BFormInput
|
||||
:model-value="value"
|
||||
@update:model-value="value = $event"
|
||||
:id="labelFor"
|
||||
:model-value="value"
|
||||
:name="name"
|
||||
:placeholder="placeholder"
|
||||
type="text"
|
||||
@ -12,6 +11,7 @@
|
||||
class="bg-248"
|
||||
:disabled="disabled"
|
||||
autocomplete="off"
|
||||
@update:model-value="value = $event"
|
||||
/>
|
||||
<BFormInvalidFeedback v-if="errorMessage">
|
||||
{{ errorMessage }}
|
||||
|
||||
@ -50,22 +50,22 @@
|
||||
<BFormGroup :label="defaultTranslations.label" :label-for="labelFor">
|
||||
<BInputGroup>
|
||||
<BFormInput
|
||||
:model-value="value"
|
||||
@update:modelValue="value = $event"
|
||||
:id="labelFor"
|
||||
:model-value="value"
|
||||
:name="name"
|
||||
:placeholder="defaultTranslations.placeholder"
|
||||
:type="showPassword ? 'text' : 'password'"
|
||||
:state="meta.valid"
|
||||
data-test="password-input-field"
|
||||
v-bind="ariaInput"
|
||||
@update:modelValue="value = $event"
|
||||
/>
|
||||
<template #append>
|
||||
<BButton
|
||||
variant="outline-light"
|
||||
@click="toggleShowPassword"
|
||||
class="border-left-0 rounded-right"
|
||||
tabindex="-1"
|
||||
@click="toggleShowPassword"
|
||||
>
|
||||
<IBiEye v-if="showPassword" />
|
||||
<IBiEyeSlash v-else />
|
||||
|
||||
@ -3,6 +3,8 @@
|
||||
<BRow class="mb-2">
|
||||
<BCol>
|
||||
<input-password
|
||||
id="new-password-input-field"
|
||||
v-model="password"
|
||||
:rules="{
|
||||
required: true,
|
||||
containsLowercaseCharacter: true,
|
||||
@ -12,29 +14,27 @@
|
||||
atLeastOneSpecialCharater: true,
|
||||
noWhitespaceCharacters: true,
|
||||
}"
|
||||
id="new-password-input-field"
|
||||
:label="register ? $t('form.password') : $t('form.password_new')"
|
||||
:showAllErrors="true"
|
||||
:show-all-errors="true"
|
||||
:immediate="true"
|
||||
:name="createId(register ? $t('form.password') : $t('form.password_new'))"
|
||||
:placeholder="register ? $t('form.password') : $t('form.password_new')"
|
||||
v-model="password"
|
||||
></input-password>
|
||||
</BCol>
|
||||
</BRow>
|
||||
<BRow class="mb-2">
|
||||
<BCol>
|
||||
<input-password
|
||||
id="repeat-new-password-input-field"
|
||||
v-model="passwordRepeat"
|
||||
:rules="{
|
||||
required: true,
|
||||
samePassword: value.password,
|
||||
}"
|
||||
id="repeat-new-password-input-field"
|
||||
:label="register ? $t('form.passwordRepeat') : $t('form.password_new_repeat')"
|
||||
:immediate="true"
|
||||
:name="createId(register ? $t('form.passwordRepeat') : $t('form.password_new_repeat'))"
|
||||
:placeholder="register ? $t('form.passwordRepeat') : $t('form.password_new_repeat')"
|
||||
v-model="passwordRepeat"
|
||||
></input-password>
|
||||
</BCol>
|
||||
</BRow>
|
||||
@ -64,11 +64,6 @@ export default {
|
||||
passwordRepeat: '',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
createId(text) {
|
||||
return text.replace(/ +/g, '-')
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
passwordObject() {
|
||||
return { password: this.password, passwordRepeat: this.passwordRepeat }
|
||||
@ -82,5 +77,10 @@ export default {
|
||||
this.$emit('input', this.passwordObject)
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
createId(text) {
|
||||
return text.replace(/ +/g, '-')
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -2,9 +2,8 @@
|
||||
<div>
|
||||
<BFormGroup :label="label" :label-for="labelFor" data-test="input-textarea">
|
||||
<BFormTextarea
|
||||
:model-value="currentValue"
|
||||
@update:modelValue="currentValue = $event"
|
||||
:id="labelFor"
|
||||
:model-value="currentValue"
|
||||
class="bg-248"
|
||||
:name="name"
|
||||
:placeholder="placeholder"
|
||||
@ -14,6 +13,7 @@
|
||||
max-rows="4"
|
||||
:disabled="disabled"
|
||||
no-resize
|
||||
@update:modelValue="currentValue = $event"
|
||||
/>
|
||||
<BFormInvalidFeedback v-if="errorMessage">
|
||||
{{ errorMessage }}
|
||||
|
||||
@ -1,20 +1,20 @@
|
||||
<template>
|
||||
<div class="input-username">
|
||||
<validation-provider
|
||||
v-slot="{ errors, valid, validated, ariaInput, ariaMsg }"
|
||||
tag="div"
|
||||
:rules="rules"
|
||||
:name="name"
|
||||
:bails="!showAllErrors"
|
||||
:immediate="immediate"
|
||||
vid="username"
|
||||
v-slot="{ errors, valid, validated, ariaInput, ariaMsg }"
|
||||
>
|
||||
<b-form-group :label="$t('form.username')" :description="$t('settings.usernameInfo')">
|
||||
<b-input-group>
|
||||
<b-form-input
|
||||
v-model="currentValue"
|
||||
v-bind="ariaInput"
|
||||
:id="labelFor"
|
||||
v-model="currentValue"
|
||||
:name="name"
|
||||
:placeholder="placeholder"
|
||||
type="text"
|
||||
@ -60,6 +60,7 @@ export default {
|
||||
required: true,
|
||||
}
|
||||
},
|
||||
type: () => {},
|
||||
},
|
||||
name: { type: String, default: 'username' },
|
||||
label: { type: String, default: 'Username' },
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'lastName',
|
||||
name: 'LastName',
|
||||
props: {
|
||||
value: { type: String, default: '' },
|
||||
},
|
||||
|
||||
@ -3,8 +3,8 @@
|
||||
<b-dropdown size="sm" :text="currentLanguage.name + ' - ' + currentLanguage.code">
|
||||
<b-dropdown-item
|
||||
v-for="lang in locales"
|
||||
@click.prevent="saveLocale(lang.code)"
|
||||
:key="lang.code"
|
||||
@click.prevent="saveLocale(lang.code)"
|
||||
>
|
||||
{{ lang.name }}
|
||||
</b-dropdown-item>
|
||||
@ -23,6 +23,9 @@ export default {
|
||||
currentLanguage: {},
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.setCurrentLanguage()
|
||||
},
|
||||
methods: {
|
||||
setLocale(locale) {
|
||||
this.$store.commit('language', locale)
|
||||
@ -66,8 +69,5 @@ export default {
|
||||
this.currentLanguage = object
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.setCurrentLanguage()
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -17,10 +17,10 @@
|
||||
<BCollapse id="collapse-1" class="mt-4">
|
||||
<span
|
||||
v-for="(lang, index) in locales"
|
||||
@click.prevent="saveLocale(lang.code)"
|
||||
:key="lang.code"
|
||||
class="pointer"
|
||||
:class="$store.state.language === lang.code ? 'c-grey' : 'c-blau'"
|
||||
@click.prevent="saveLocale(lang.code)"
|
||||
>
|
||||
<span v-if="lang.code !== $store.state.language" v-b-toggle.collapse-1 class="locales">
|
||||
{{ lang.name }}
|
||||
|
||||
@ -10,6 +10,9 @@
|
||||
<script>
|
||||
export default {
|
||||
name: 'LanguageSwitch',
|
||||
props: {
|
||||
language: { type: String },
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
selected: null,
|
||||
@ -22,12 +25,6 @@ export default {
|
||||
],
|
||||
}
|
||||
},
|
||||
props: {
|
||||
language: { type: String },
|
||||
},
|
||||
created() {
|
||||
this.selected = this.$store.state.language
|
||||
},
|
||||
computed: {
|
||||
languageObject() {
|
||||
return this.selected
|
||||
@ -38,5 +35,8 @@ export default {
|
||||
this.$emit('update-language', this.languageObject)
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.selected = this.$store.state.language
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="redeem-logged-out">
|
||||
<redeem-information v-bind="linkData" :isContributionLink="isContributionLink" />
|
||||
<redeem-information v-bind="linkData" :is-contribution-link="isContributionLink" />
|
||||
|
||||
<b-jumbotron>
|
||||
<div class="mb-2">
|
||||
@ -28,10 +28,10 @@ import { authLinks } from '@/mixins/authLinks'
|
||||
|
||||
export default {
|
||||
name: 'RedeemLoggedOut',
|
||||
mixins: [authLinks],
|
||||
components: {
|
||||
RedeemInformation,
|
||||
},
|
||||
mixins: [authLinks],
|
||||
props: {
|
||||
linkData: { type: Object, required: true },
|
||||
isContributionLink: { type: Boolean, default: false },
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="redeem-self-creator">
|
||||
<redeem-information v-bind="linkData" :isContributionLink="isContributionLink" />
|
||||
<redeem-information v-bind="linkData" :is-contribution-link="isContributionLink" />
|
||||
|
||||
<b-jumbotron>
|
||||
<div class="mb-3 text-center">
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<template>
|
||||
<div class="redeem-valid">
|
||||
<redeem-information v-bind="linkData" :isContributionLink="isContributionLink" />
|
||||
<redeem-information v-bind="linkData" :is-contribution-link="isContributionLink" />
|
||||
<b-jumbotron>
|
||||
<div class="mb-3 text-center">
|
||||
<b-button
|
||||
variant="gradido"
|
||||
@click="$emit('mutation-link', linkData.amount)"
|
||||
size="lg"
|
||||
:disabled="!validLink"
|
||||
@click="$emit('mutation-link', linkData.amount)"
|
||||
>
|
||||
{{ $t('gdd_per_link.redeem') }}
|
||||
</b-button>
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
</router-link>
|
||||
</b-navbar-nav>
|
||||
</b-navbar>
|
||||
<!-- <div class="alertBox">
|
||||
<!-- <div class="alert-box">
|
||||
<b-alert show dismissible variant="light" class="nav-alert text-dark">
|
||||
<small>{{ $t('1000thanks') }}</small>
|
||||
</b-alert>
|
||||
@ -82,7 +82,7 @@ export default {
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
.authNavbar > .nav-link {
|
||||
.auth-navbar > .nav-link {
|
||||
color: #383838 !important;
|
||||
}
|
||||
|
||||
@ -90,7 +90,7 @@ export default {
|
||||
font-size: 2.25rem;
|
||||
}
|
||||
|
||||
.authNavbar > .router-link-exact-active {
|
||||
.auth-navbar > .router-link-exact-active {
|
||||
color: #0e79bc !important;
|
||||
}
|
||||
|
||||
@ -103,31 +103,36 @@ button.navbar-toggler > span.navbar-toggler-icon {
|
||||
left: 50%;
|
||||
max-width: 64%;
|
||||
}
|
||||
.alertBox {
|
||||
|
||||
.alert-box {
|
||||
left: 20%;
|
||||
right: 20%;
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
top: 25px;
|
||||
}
|
||||
@media screen and (max-width: 1170px) {
|
||||
|
||||
@media screen and (width <= 1170px) {
|
||||
.sheet-img {
|
||||
left: 20%;
|
||||
}
|
||||
.alertBox {
|
||||
|
||||
.alert-box {
|
||||
position: static;
|
||||
margin-left: 5%;
|
||||
margin-right: 5%;
|
||||
z-index: 0;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 450px) {
|
||||
|
||||
@media screen and (width <= 450px) {
|
||||
.navbar-element {
|
||||
z-index: 1000;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
background-color: #f5f5f5e6;
|
||||
}
|
||||
|
||||
.sheet-img {
|
||||
left: 5%;
|
||||
max-width: 61%;
|
||||
|
||||
@ -4,35 +4,35 @@
|
||||
id="side-menu"
|
||||
ref="sideMenu"
|
||||
class="gradido-border-radius pt-2 bg-white"
|
||||
:class="shadow ? 'appBoxShadow' : ''"
|
||||
:class="shadow ? 'app-box-shadow' : ''"
|
||||
>
|
||||
<div class="mb-3 mt-3">
|
||||
<BNav vertical class="w-200">
|
||||
<BNavItem to="/overview" class="mb-3" active-class="activeRoute">
|
||||
<BNavItem to="/overview" class="mb-3" active-class="active-route">
|
||||
<BImg src="/img/svg/home.svg" height="20" class="svg-icon" />
|
||||
<span class="ml-2">{{ $t('navigation.overview') }}</span>
|
||||
</BNavItem>
|
||||
<BNavItem to="/send" class="mb-3" active-class="activeRoute">
|
||||
<BNavItem to="/send" class="mb-3" active-class="active-route">
|
||||
<b-icon icon="cash" aria-hidden="true"></b-icon>
|
||||
<span class="ml-2">{{ $t('navigation.send') }}</span>
|
||||
</BNavItem>
|
||||
<BNavItem to="/transactions" :class="transactionClass" active-class="activeRoute">
|
||||
<BNavItem to="/transactions" :class="transactionClass" active-class="active-route">
|
||||
<BImg src="/img/svg/transaction.svg" height="20" class="svg-icon" />
|
||||
<span class="ml-2">{{ $t('navigation.transactions') }}</span>
|
||||
</BNavItem>
|
||||
<BNavItem to="/community" class="mb-3" active-class="activeRoute">
|
||||
<BNavItem to="/community" class="mb-3" active-class="active-route">
|
||||
<BImg src="/img/svg/community.svg" height="20" class="svg-icon" />
|
||||
<span class="ml-2">{{ $t('creation') }}</span>
|
||||
</BNavItem>
|
||||
<BNavItem to="/information" class="mb-3" active-class="activeRoute">
|
||||
<BNavItem to="/information" class="mb-3" active-class="active-route">
|
||||
<BImg src="/img/svg/info.svg" height="20" class="svg-icon" />
|
||||
<span class="ml-2">{{ $t('navigation.info') }}</span>
|
||||
</BNavItem>
|
||||
<BNavItem to="/circles" v-if="isHumhub" class="mb-3" active-class="activeRoute">
|
||||
<BNavItem v-if="isHumhub" to="/circles" class="mb-3" active-class="active-route">
|
||||
<BImg src="/img/svg/circles.svg" height="20" class="svg-icon" />
|
||||
<span class="ml-2">{{ $t('navigation.circles') }}</span>
|
||||
</BNavItem>
|
||||
<BNavItem to="/usersearch" v-if="isGMS" active-class="activeRoute">
|
||||
<BNavItem v-if="isGMS" to="/usersearch" active-class="active-route">
|
||||
<BImg src="/img/loupe.png" height="20" />
|
||||
<span class="ml-2">{{ $t('navigation.usersearch') }}</span>
|
||||
</BNavItem>
|
||||
@ -42,7 +42,7 @@
|
||||
<BNavItem
|
||||
to="/settings"
|
||||
class="mb-3"
|
||||
active-class="activeRoute"
|
||||
active-class="active-route"
|
||||
data-test="settings-menu"
|
||||
>
|
||||
<BImg src="/img/svg/settings.svg" height="20" class="svg-icon" />
|
||||
@ -52,10 +52,10 @@
|
||||
</BBadge>
|
||||
</BNavItem>
|
||||
<BNavItem
|
||||
class="mb-3 text-light"
|
||||
v-if="$store.state.roles && $store.state.roles.length > 0"
|
||||
class="mb-3 text-light"
|
||||
active-class="active-route"
|
||||
@click="$emit('admin')"
|
||||
active-class="activeRoute"
|
||||
>
|
||||
<b-icon icon="shield-check" aria-hidden="true"></b-icon>
|
||||
<span class="ml-2">
|
||||
@ -64,9 +64,9 @@
|
||||
</BNavItem>
|
||||
<BNavItem
|
||||
class="font-weight-bold"
|
||||
@click="$emit('logout')"
|
||||
active-class="activeRoute"
|
||||
active-class="active-route"
|
||||
data-test="logout-menu"
|
||||
@click="$emit('logout')"
|
||||
>
|
||||
<BImg src="/img/svg/logout.svg" height="20" class="svg-icon" />
|
||||
<span class="ml-2 text-205">{{ $t('navigation.logout') }}</span>
|
||||
@ -87,7 +87,7 @@ export default {
|
||||
computed: {
|
||||
transactionClass() {
|
||||
if (this.$route.path === '/gdt') {
|
||||
return 'mb-3 activeRoute'
|
||||
return 'mb-3 active-route'
|
||||
}
|
||||
return 'mb-3'
|
||||
},
|
||||
@ -103,32 +103,37 @@ export default {
|
||||
</script>
|
||||
<style>
|
||||
.nav-link {
|
||||
color: rgb(56, 56, 56);
|
||||
color: rgb(56 56 56);
|
||||
}
|
||||
.activeRoute {
|
||||
|
||||
.active-route {
|
||||
font-weight: bold;
|
||||
color: rgb(2, 2, 1);
|
||||
border-left: 4px rgb(219, 129, 19) solid;
|
||||
color: rgb(2 2 1);
|
||||
border-left: 4px rgb(219 129 19) solid;
|
||||
}
|
||||
|
||||
.svg-icon {
|
||||
filter: brightness(1) invert(0);
|
||||
}
|
||||
|
||||
.activeRoute .svg-icon {
|
||||
.active-route .svg-icon {
|
||||
filter: brightness(0) invert(0);
|
||||
}
|
||||
|
||||
#component-sidebar {
|
||||
min-width: 200px;
|
||||
}
|
||||
@media screen and (min-width: 1025px) {
|
||||
|
||||
@media screen and (width >= 1025px) {
|
||||
#side-menu {
|
||||
max-width: 180px;
|
||||
}
|
||||
|
||||
#component-sidebar {
|
||||
min-width: 180px;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@media screen and (min-width: 1075px) {
|
||||
#side-menu {
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
>
|
||||
<b-img src="img/svg/lines.png" />
|
||||
<div class="py-2">
|
||||
<sidebar @admin="$emit('admin')" @logout="$emit('logout')" :shadow="false" />
|
||||
<sidebar :shadow="false" @admin="$emit('admin')" @logout="$emit('logout')" />
|
||||
</div>
|
||||
</b-sidebar>
|
||||
</div>
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
<div v-for="item in News" :key="item.locale">
|
||||
<BCard
|
||||
v-if="item.locale === $i18n.locale"
|
||||
class="bg-white appBoxShadow gradido-border-radius"
|
||||
class="bg-white app-box-shadow gradido-border-radius"
|
||||
>
|
||||
<BCardBody>
|
||||
<BCardTitle class="h2">{{ item.text }}</BCardTitle>
|
||||
@ -60,6 +60,6 @@ export default {
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 350px 350px;
|
||||
background-image: url(/img/svg/Gradido_Blaetter_Mainpage.svg) !important;
|
||||
background-image: url('/img/svg/Gradido_Blaetter_Mainpage.svg') !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
<div class="figure-qr-code">
|
||||
<div class="qrbox">
|
||||
<div>
|
||||
<q-r-canvas :options="options" class="canvas mb-3" id="qrcanvas" ref="canvas" />
|
||||
<q-r-canvas id="qrcanvas" ref="canvas" :options="options" class="canvas mb-3" />
|
||||
</div>
|
||||
<a
|
||||
id="download"
|
||||
@ -62,6 +62,7 @@ export default {
|
||||
padding: 20px;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.canvas {
|
||||
width: 90%;
|
||||
max-width: 300px;
|
||||
|
||||
@ -102,11 +102,11 @@
|
||||
<!--}-->
|
||||
<!--</script>-->
|
||||
<script setup>
|
||||
//TODO to be checked and fixed
|
||||
// TODO to be checked and fixed
|
||||
import { ref, computed, onBeforeUnmount } from 'vue'
|
||||
import { useStore } from 'vuex'
|
||||
import { useLazyQuery } from '@vue/apollo-composable'
|
||||
import { useTimer } from 'vue-timer-hook' //TODO change to updated version
|
||||
import { useTimer } from 'vue-timer-hook' // TODO change to updated version
|
||||
import { useModal } from 'bootstrap-vue-next'
|
||||
import { verifyLogin } from '@/graphql/queries'
|
||||
|
||||
@ -115,8 +115,6 @@ const { result, load: verifyLoginQuery } = useLazyQuery(verifyLogin)
|
||||
const { modal } = useModal()
|
||||
const timer = useTimer()
|
||||
|
||||
console.log(timer)
|
||||
|
||||
const emit = defineEmits(['logout'])
|
||||
|
||||
const now = ref(new Date().getTime())
|
||||
@ -129,7 +127,7 @@ const tokenExpiresInSeconds = computed(() => {
|
||||
})
|
||||
|
||||
const handleOk = async () => {
|
||||
console.log('OK')
|
||||
return 'OK'
|
||||
}
|
||||
|
||||
// const tokenExpires = () => {
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
</BBadge>
|
||||
</div>
|
||||
<div
|
||||
class="community-member bg-white appBoxShadow gradido-border-radius p-4 border border-success"
|
||||
class="community-member bg-white app-box-shadow gradido-border-radius p-4 border border-success"
|
||||
>
|
||||
<BRow>
|
||||
<BCol cols="9">
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
</BBadge>
|
||||
</div>
|
||||
<div
|
||||
class="wallet-amount bg-white appBoxShadow gradido-border-radius p-4 border"
|
||||
class="wallet-amount bg-white app-box-shadow gradido-border-radius p-4 border"
|
||||
:class="
|
||||
showStatus || path === '/overview'
|
||||
? 'gradido-global-border-color-accent'
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
</BBadge>
|
||||
</div>
|
||||
<div
|
||||
class="wallet-amount bg-white appBoxShadow gradido-border-radius p-4 border"
|
||||
class="wallet-amount bg-white app-box-shadow gradido-border-radius p-4 border"
|
||||
:class="showStatus ? 'gradido-global-border-color-accent' : 'border-light opacity-05'"
|
||||
>
|
||||
<BRow>
|
||||
|
||||
@ -23,23 +23,26 @@ export default {
|
||||
</script>
|
||||
<style scoped>
|
||||
.btn {
|
||||
background-color: rgb(209, 209, 209);
|
||||
background-color: rgb(209 209 209);
|
||||
color: black;
|
||||
padding-right: 0px;
|
||||
padding-left: 0px;
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.btn-block + .btn-block {
|
||||
margin-top: 0rem;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.svg-icon {
|
||||
filter: brightness(0) invert(0);
|
||||
}
|
||||
|
||||
.btn-active {
|
||||
background-color: rgb(23 141 129);
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.btn-active .svg-icon {
|
||||
filter: brightness(0) invert(1);
|
||||
}
|
||||
|
||||
@ -9,13 +9,13 @@
|
||||
|
||||
<div v-for="(transaction, index) in transactions" :key="transaction.id">
|
||||
<BRow
|
||||
align-v="center"
|
||||
v-if="
|
||||
index <= 8 &&
|
||||
transaction.typeId !== 'DECAY' &&
|
||||
transaction.typeId !== 'LINK_SUMMARY' &&
|
||||
transaction.typeId !== 'CREATION'
|
||||
"
|
||||
align-v="center"
|
||||
class="mb-4"
|
||||
>
|
||||
<BCol cols="auto">
|
||||
@ -32,7 +32,7 @@
|
||||
<BRow>
|
||||
<BCol>
|
||||
<div class="font-weight-bold">
|
||||
<name :linkedUser="transaction.linkedUser" fontColor="text-dark" />
|
||||
<name :linked-user="transaction.linkedUser" font-color="text-dark" />
|
||||
</div>
|
||||
<div class="d-flex mt-3">
|
||||
<div class="small">
|
||||
@ -62,6 +62,7 @@ export default {
|
||||
props: {
|
||||
transactions: {
|
||||
default: () => [],
|
||||
type: Array,
|
||||
},
|
||||
transactionCount: { type: Number, default: 0 },
|
||||
transactionLinkCount: { type: Number, default: 0 },
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="gdt-transaction-list">
|
||||
<div class="list-group bg-white appBoxShadow gradido-border-radius p-3 mb-3">
|
||||
<BRow @click="visible = !visible" class="align-items-center">
|
||||
<div class="list-group bg-white app-box-shadow gradido-border-radius p-3 mb-3">
|
||||
<BRow class="align-items-center" @click="visible = !visible">
|
||||
<BCol cols="3" lg="2" md="2">
|
||||
<BAvatar
|
||||
:icon="getLinesByType.icon"
|
||||
@ -15,8 +15,8 @@
|
||||
{{ getLinesByType }}
|
||||
</div> -->
|
||||
<div>
|
||||
<span class="small">{{ this.$d(new Date(date), 'short') }}</span>
|
||||
<span class="small ml-3">{{ this.$d(new Date(date), 'time') }}</span>
|
||||
<span class="small">{{ $d(new Date(date), 'short') }}</span>
|
||||
<span class="small ml-3">{{ $d(new Date(date), 'time') }}</span>
|
||||
</div>
|
||||
<div>
|
||||
{{ getLinesByType.description }}
|
||||
@ -34,10 +34,10 @@
|
||||
</BCol>
|
||||
</BRow>
|
||||
|
||||
<BCollapse :id="collapseId" class="mt-2" v-model="visible">
|
||||
<BCollapse :id="collapseId" v-model="visible" class="mt-2">
|
||||
<transaction-collapse
|
||||
:amount="amount"
|
||||
:gdtEntryType="gdtEntryType"
|
||||
:gdt-entry-type="gdtEntryType"
|
||||
:factor="factor"
|
||||
:gdt="gdt"
|
||||
></transaction-collapse>
|
||||
@ -158,15 +158,12 @@ const props = defineProps({
|
||||
const collapseStatus = ref([])
|
||||
const visible = ref(false)
|
||||
|
||||
// Composables
|
||||
const { t, n } = useI18n()
|
||||
|
||||
// Methods
|
||||
const getCollapseState = (id) => {
|
||||
return collapseStatus.value.includes('gdt-collapse-' + id)
|
||||
}
|
||||
|
||||
// Computed properties
|
||||
const collapseId = computed(() => 'gdt-collapse-' + String(props.id))
|
||||
|
||||
const isGlobalModificator = computed(() => props.gdtEntryType === GdtEntryType.GLOBAL_MODIFICATOR)
|
||||
@ -209,17 +206,16 @@ const getLinesByType = computed(() => {
|
||||
}
|
||||
})
|
||||
|
||||
// Lifecycle hooks
|
||||
onMounted(() => {
|
||||
// Note: This event listener setup might need to be adjusted for Vue 3
|
||||
// You might want to use provide/inject or a global event bus instead
|
||||
const root = getCurrentInstance().appContext.config.globalProperties
|
||||
root.$on('bv::collapse::state', (collapseId, isJustShown) => {
|
||||
if (isJustShown) {
|
||||
collapseStatus.value.push(collapseId)
|
||||
} else {
|
||||
collapseStatus.value = collapseStatus.value.filter((id) => id !== collapseId)
|
||||
}
|
||||
})
|
||||
// const root = getCurrentInstance().appContext.config.globalProperties
|
||||
// root.$on('bv::collapse::state', (collapseId, isJustShown) => {
|
||||
// if (isJustShown) {
|
||||
// collapseStatus.value.push(collapseId)
|
||||
// } else {
|
||||
// collapseStatus.value = collapseStatus.value.filter((id) => id !== collapseId)
|
||||
// }
|
||||
// })
|
||||
})
|
||||
</script>
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
<BCol>
|
||||
<amount-and-name-row :amount="amount" :text="$t('form.amount')" />
|
||||
<memo-row :memo="memo" />
|
||||
<date-row :date="validUntil" :diffNow="true" :validLink="validLink" />
|
||||
<date-row :date="validUntil" :diff-now="true" :valid-link="validLink" />
|
||||
<decay-row :decay="decay" />
|
||||
</BCol>
|
||||
<BCol cols="12" lg="1" md="1" class="text-center text-md-right pr-5 pr-lg-4">
|
||||
@ -28,8 +28,8 @@
|
||||
</BDropdownItem>
|
||||
<BDropdownItem
|
||||
v-if="validLink"
|
||||
@click="$bvModal.show('modalPopover-' + id)"
|
||||
class="pt-3 pb-3 test-qr-code"
|
||||
@click="$bvModal.show('modalPopover-' + id)"
|
||||
>
|
||||
<b-img src="img/svg/qr-code.svg" width="18" class="filter"></b-img>
|
||||
{{ $t('qrCode') }}
|
||||
@ -187,6 +187,7 @@ async function deleteLink() {
|
||||
position: relative;
|
||||
right: 20px;
|
||||
}
|
||||
|
||||
.filter {
|
||||
filter: opacity(0.6);
|
||||
}
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
</BCol>
|
||||
<BCol cols="7">
|
||||
<div class="gdd-transaction-list-item-date">
|
||||
{{ $d(new Date(this.date), 'long') }}
|
||||
{{ $d(new Date(date), 'long') }}
|
||||
</div>
|
||||
</BCol>
|
||||
</BRow>
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
<div class="name">
|
||||
<div class="gdd-transaction-list-item-name">
|
||||
<div v-if="linkedUser && linkedUser.gradidoID">
|
||||
<BLink @click.stop="tunnelEmail" :class="fontColor">
|
||||
<BLink :class="fontColor" @click.stop="tunnelEmail">
|
||||
{{ itemText }}
|
||||
</BLink>
|
||||
</div>
|
||||
@ -33,17 +33,6 @@ export default {
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
async tunnelEmail() {
|
||||
if (this.$route.path !== '/send') await this.$router.push({ path: '/send' })
|
||||
this.$router.push({
|
||||
params: {
|
||||
userIdentifier: this.linkedUser.gradidoID,
|
||||
communityIdentifier: this.linkedUser.communityUuid,
|
||||
},
|
||||
})
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
itemText() {
|
||||
return this.linkedUser
|
||||
@ -57,5 +46,16 @@ export default {
|
||||
: this.text
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
async tunnelEmail() {
|
||||
if (this.$route.path !== '/send') await this.$router.push({ path: '/send' })
|
||||
this.$router.push({
|
||||
params: {
|
||||
userIdentifier: this.linkedUser.gradidoID,
|
||||
communityIdentifier: this.linkedUser.communityUuid,
|
||||
},
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<template>
|
||||
<div class="transaction-slot-creation">
|
||||
<BRow @click="visible = !visible" class="align-items-center">
|
||||
<BRow class="align-items-center" @click="visible = !visible">
|
||||
<BCol cols="3" lg="2" md="2">
|
||||
<b-avatar icon="gift" variant="success" :size="42"></b-avatar>
|
||||
</BCol>
|
||||
<BCol>
|
||||
<div class="font-weight-bold">{{ linkedUser.firstName }} {{ linkedUser.lastName }}</div>
|
||||
<span class="small">{{ this.$d(new Date(balanceDate), 'short') }}</span>
|
||||
<span class="ml-4 small">{{ this.$d(new Date(balanceDate), 'time') }}</span>
|
||||
<span class="small">{{ $d(new Date(balanceDate), 'short') }}</span>
|
||||
<span class="ml-4 small">{{ $d(new Date(balanceDate), 'time') }}</span>
|
||||
</BCol>
|
||||
<BCol cols="8" lg="3" md="3" sm="8" offset="3" offset-md="0" offset-lg="0">
|
||||
<div class="small mb-2">{{ $t('decay.types.receive') }}</div>
|
||||
@ -17,14 +17,14 @@
|
||||
<collapse-icon class="text-right" :visible="visible" />
|
||||
</BCol>
|
||||
</BRow>
|
||||
<BCollapse class="pb-4 pt-lg-3" v-model="visible">
|
||||
<BCollapse v-model="visible" class="pb-4 pt-lg-3">
|
||||
<decay-information
|
||||
:typeId="typeId"
|
||||
:type-id="typeId"
|
||||
:decay="decay"
|
||||
:amount="amount"
|
||||
:memo="memo"
|
||||
:balance="balance"
|
||||
:previousBalance="previousBalance"
|
||||
:previous-balance="previousBalance"
|
||||
/>
|
||||
</BCollapse>
|
||||
</div>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div @click="visible = !visible" class="transaction-slot-decay">
|
||||
<div class="transaction-slot-decay" @click="visible = !visible">
|
||||
<BRow class="text-color-gdd-yellow align-items-center">
|
||||
<BCol cols="1">
|
||||
<!-- <type-icon color="text-color-gdd-yellow" icon="droplet-half" />-->
|
||||
@ -17,21 +17,21 @@
|
||||
<decay-information-decay
|
||||
:balance="balance"
|
||||
:decay="decay.decay"
|
||||
:previousBalance="previousBalance"
|
||||
:previous-balance="previousBalance"
|
||||
/>
|
||||
</BCollapse>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import CollapseIcon from '../TransactionRows/CollapseIcon'
|
||||
import TypeIcon from '../TransactionRows/TypeIcon'
|
||||
// import TypeIcon from '../TransactionRows/TypeIcon'
|
||||
import DecayInformationDecay from '../DecayInformations/DecayInformation-Decay'
|
||||
|
||||
export default {
|
||||
name: 'TransactionDecay',
|
||||
components: {
|
||||
CollapseIcon,
|
||||
TypeIcon,
|
||||
// TypeIcon,
|
||||
DecayInformationDecay,
|
||||
},
|
||||
props: {
|
||||
@ -48,15 +48,15 @@ export default {
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
previousBalance() {
|
||||
return String(Number(this.balance) - Number(this.decay.decay))
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
previousBalance() {
|
||||
return String(Number(this.balance) - Number(this.decay.decay))
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -55,8 +55,7 @@ describe('TransactionLinkSummary', () => {
|
||||
createdAt: '2022-03-16T14:22:40.000Z',
|
||||
holdAvailableAmount: '5.13109484759482747111',
|
||||
id: 86,
|
||||
memo:
|
||||
'Hokuspokus Haselnuss, Vogelbein und Fliegenfuß, damit der Trick gelingen muss!',
|
||||
memo: 'Hokuspokus Haselnuss, Vogelbein und Fliegenfuß, damit der Trick gelingen muss!',
|
||||
redeemedAt: null,
|
||||
validUntil: '2022-03-30T14:22:40.000Z',
|
||||
},
|
||||
@ -76,8 +75,7 @@ describe('TransactionLinkSummary', () => {
|
||||
createdAt: '2022-03-16T14:22:40.000Z',
|
||||
holdAvailableAmount: '5.13109484759482747111',
|
||||
id: 92,
|
||||
memo:
|
||||
'Abrakadabra 1,2,3, die Sonne kommt herbei. Schweinepups und Spuckebrei, der Regen ist vorbei.',
|
||||
memo: 'Abrakadabra 1,2,3, die Sonne kommt herbei. Schweinepups und Spuckebrei, der Regen ist vorbei.',
|
||||
redeemedAt: null,
|
||||
validUntil: '2022-03-30T14:22:40.000Z',
|
||||
},
|
||||
@ -87,8 +85,7 @@ describe('TransactionLinkSummary', () => {
|
||||
createdAt: '2022-03-16T14:22:40.000Z',
|
||||
holdAvailableAmount: '5.13109484759482747111',
|
||||
id: 16,
|
||||
memo:
|
||||
'Abrakadabra 1,2,3 was verschwunden ist komme herbei.Wieseldreck und Schweinemist, zaubern das ist keine List.',
|
||||
memo: 'Abrakadabra 1,2,3 was verschwunden ist komme herbei.Wieseldreck und Schweinemist, zaubern das ist keine List.',
|
||||
redeemedAt: null,
|
||||
validUntil: '2022-03-30T14:22:40.000Z',
|
||||
},
|
||||
@ -176,8 +173,7 @@ describe('TransactionLinkSummary', () => {
|
||||
createdAt: '2022-03-16T14:22:40.000Z',
|
||||
holdAvailableAmount: '5.13109484759482747111',
|
||||
id: 87,
|
||||
memo:
|
||||
'Hat jemand die Nummer von der Hexe aus Schneewittchen? Ich bräuchte mal ein paar Äpfel.',
|
||||
memo: 'Hat jemand die Nummer von der Hexe aus Schneewittchen? Ich bräuchte mal ein paar Äpfel.',
|
||||
redeemedAt: null,
|
||||
validUntil: '2022-03-30T14:22:40.000Z',
|
||||
},
|
||||
@ -187,8 +183,7 @@ describe('TransactionLinkSummary', () => {
|
||||
createdAt: '2022-03-16T14:22:40.000Z',
|
||||
holdAvailableAmount: '5.13109484759482747111',
|
||||
id: 108,
|
||||
memo:
|
||||
'Die Windfahn´ krächzt am Dach, Der Uhu im Geklüfte; Was wispert wie ein Ach Verhallend in die Lüfte?',
|
||||
memo: 'Die Windfahn´ krächzt am Dach, Der Uhu im Geklüfte; Was wispert wie ein Ach Verhallend in die Lüfte?',
|
||||
redeemedAt: null,
|
||||
validUntil: '2022-03-30T14:22:40.000Z',
|
||||
},
|
||||
@ -198,8 +193,7 @@ describe('TransactionLinkSummary', () => {
|
||||
createdAt: '2022-03-16T14:22:40.000Z',
|
||||
holdAvailableAmount: '5.13109484759482747111',
|
||||
id: 93,
|
||||
memo:
|
||||
'Verschlafen kräht der Hahn, Ein Blitz noch, und ein trüber, Umwölbter Tag bricht an – Walpurgisnacht vorüber!',
|
||||
memo: 'Verschlafen kräht der Hahn, Ein Blitz noch, und ein trüber, Umwölbter Tag bricht an – Walpurgisnacht vorüber!',
|
||||
redeemedAt: null,
|
||||
validUntil: '2022-03-30T14:22:40.000Z',
|
||||
},
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div @click="showTransactionLinks()" class="transaction-slot-link">
|
||||
<div class="transaction-slot-link" @click="showTransactionLinks()">
|
||||
<BRow class="align-items-center">
|
||||
<BCol cols="3" lg="2" md="2">
|
||||
<b-avatar icon="link" variant="light" :size="42"></b-avatar>
|
||||
@ -20,9 +20,9 @@
|
||||
<collapse-links-list
|
||||
v-model="currentPage"
|
||||
:pending="pending"
|
||||
:pageSize="pageSize"
|
||||
:transactionLinkCount="transactionLinkCount"
|
||||
:transactionLinks="transactionLinks"
|
||||
:page-size="pageSize"
|
||||
:transaction-link-count="transactionLinkCount"
|
||||
:transaction-links="transactionLinks"
|
||||
/>
|
||||
</BCollapse>
|
||||
</div>
|
||||
@ -61,6 +61,11 @@ export default {
|
||||
pending: false,
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
currentPage() {
|
||||
this.updateListTransactionLinks()
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
showTransactionLinks() {
|
||||
if (this.visible) {
|
||||
@ -104,10 +109,5 @@ export default {
|
||||
}
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
currentPage() {
|
||||
this.updateListTransactionLinks()
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div @click="visible = !visible" class="transaction-slot-receive">
|
||||
<div class="transaction-slot-receive" @click="visible = !visible">
|
||||
<BRow class="align-items-center">
|
||||
<BCol cols="3" lg="2" md="2">
|
||||
<!-- <b-avatar :text="avatarText" variant="success" size="3em"></b-avatar> -->
|
||||
@ -15,8 +15,8 @@
|
||||
<name
|
||||
class="font-weight-bold"
|
||||
:amount="amount"
|
||||
:linkedUser="linkedUser"
|
||||
:linkId="linkId"
|
||||
:linked-user="linkedUser"
|
||||
:link-id="linkId"
|
||||
/>
|
||||
</div>
|
||||
<span class="small">{{ $d(new Date(balanceDate), 'short') }}</span>
|
||||
@ -45,12 +45,12 @@
|
||||
</BRow>
|
||||
<BCollapse class="pb-4 pt-lg-3" :model-value="visible">
|
||||
<decay-information
|
||||
:typeId="typeId"
|
||||
:type-id="typeId"
|
||||
:decay="decay"
|
||||
:amount="amount"
|
||||
:memo="memo"
|
||||
:balance="balance"
|
||||
:previousBalance="previousBalance"
|
||||
:previous-balance="previousBalance"
|
||||
/>
|
||||
</BCollapse>
|
||||
</div>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="transaction-slot-send">
|
||||
<BRow @click="visible = !visible" class="align-items-center">
|
||||
<BRow class="align-items-center" @click="visible = !visible">
|
||||
<BCol cols="3" lg="2" md="2">
|
||||
<avatar
|
||||
:username="username.username"
|
||||
@ -14,12 +14,12 @@
|
||||
<name
|
||||
class="font-weight-bold"
|
||||
:amount="amount"
|
||||
:linkedUser="linkedUser"
|
||||
:linkId="linkId"
|
||||
:linked-user="linkedUser"
|
||||
:link-id="linkId"
|
||||
/>
|
||||
</div>
|
||||
<span class="small">{{ this.$d(new Date(balanceDate), 'short') }}</span>
|
||||
<span class="ml-4 small">{{ this.$d(new Date(balanceDate), 'time') }}</span>
|
||||
<span class="small">{{ $d(new Date(balanceDate), 'short') }}</span>
|
||||
<span class="ml-4 small">{{ $d(new Date(balanceDate), 'time') }}</span>
|
||||
</BCol>
|
||||
<BCol cols="8" lg="3" md="3" sm="8" offset="3" offset-md="0" offset-lg="0">
|
||||
<div class="small mb-2">
|
||||
@ -43,14 +43,14 @@
|
||||
<collapse-icon class="text-right" :visible="visible" />
|
||||
</BCol>
|
||||
</BRow>
|
||||
<BCollapse class="pb-4 pt-lg-3" v-model="visible">
|
||||
<BCollapse v-model="visible" class="pb-4 pt-lg-3">
|
||||
<decay-information
|
||||
:typeId="typeId"
|
||||
:type-id="typeId"
|
||||
:decay="decay"
|
||||
:amount="amount"
|
||||
:memo="memo"
|
||||
:balance="balance"
|
||||
:previousBalance="previousBalance"
|
||||
:previous-balance="previousBalance"
|
||||
/>
|
||||
</BCollapse>
|
||||
</div>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="userdata-card">
|
||||
<div class="centerPerMargin">
|
||||
<div class="center-per-margin">
|
||||
<avatar
|
||||
:username="username.username"
|
||||
:initials="username.initials"
|
||||
@ -72,16 +72,18 @@ export default {
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.centerPerMargin {
|
||||
.center-per-margin {
|
||||
padding-left: 44%;
|
||||
}
|
||||
@media screen and (max-width: 850px) {
|
||||
.centerPerMargin {
|
||||
|
||||
@media screen and (width <= 850px) {
|
||||
.center-per-margin {
|
||||
padding-left: 38%;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 450px) {
|
||||
.centerPerMargin {
|
||||
|
||||
@media screen and (width <= 450px) {
|
||||
.center-per-margin {
|
||||
padding-left: 34%;
|
||||
}
|
||||
}
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
{{ form.firstName }}
|
||||
</BCol>
|
||||
<BCol v-else class="col-12">
|
||||
<b-input type="text" v-model="form.firstName"></b-input>
|
||||
<b-input v-model="form.firstName" type="text"></b-input>
|
||||
</BCol>
|
||||
</BRow>
|
||||
<BRow class="mb-3">
|
||||
@ -40,19 +40,19 @@
|
||||
{{ form.lastName }}
|
||||
</BCol>
|
||||
<BCol v-else class="col-12">
|
||||
<b-input type="text" v-model="form.lastName"></b-input>
|
||||
<b-input v-model="form.lastName" type="text"></b-input>
|
||||
</BCol>
|
||||
</BRow>
|
||||
|
||||
<BRow class="text-right" v-if="!showUserData">
|
||||
<BRow v-if="!showUserData" class="text-right">
|
||||
<BCol>
|
||||
<div class="text-right" ref="submitButton">
|
||||
<div ref="submitButton" class="text-right">
|
||||
<b-button
|
||||
:variant="loading ? 'light' : 'success'"
|
||||
@click="onSubmit"
|
||||
type="submit"
|
||||
class="mt-4"
|
||||
:disabled="loading"
|
||||
@click="onSubmit"
|
||||
>
|
||||
{{ $t('form.save') }}
|
||||
</b-button>
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
<template>
|
||||
<div class="user-gms-location-format">
|
||||
<b-dropdown v-model="selectedOption">
|
||||
<template slot="button-content">{{ selectedOptionLabel }}</template>
|
||||
<template #button-content>{{ selectedOptionLabel }}</template>
|
||||
<b-dropdown-item
|
||||
v-for="option in dropdownOptions"
|
||||
@click.prevent="update(option)"
|
||||
:key="option.value"
|
||||
:value="option.value"
|
||||
@click.prevent="update(option)"
|
||||
>
|
||||
{{ option.label }}
|
||||
</b-dropdown-item>
|
||||
|
||||
@ -37,13 +37,13 @@
|
||||
</small>
|
||||
</BCol>
|
||||
<BCol class="col-12">
|
||||
<language-switch-select @update-language="updateLanguage" :language="language" />
|
||||
<language-switch-select :language="language" @update-language="updateLanguage" />
|
||||
</BCol>
|
||||
</BRow>
|
||||
|
||||
<BRow class="text-right">
|
||||
<BCol>
|
||||
<div class="text-right" ref="submitButton">
|
||||
<div ref="submitButton" class="text-right">
|
||||
<b-button
|
||||
:variant="loading ? 'light' : 'success'"
|
||||
type="submit"
|
||||
|
||||
@ -23,12 +23,12 @@
|
||||
v-model="username"
|
||||
:name="$t('form.username')"
|
||||
:placeholder="$t('form.username-placeholder')"
|
||||
:showAllErrors="true"
|
||||
:show-all-errors="true"
|
||||
:unique="true"
|
||||
:rules="rules"
|
||||
:isEdit="isEdit"
|
||||
@set-is-edit="setIsEdit"
|
||||
:is-edit="isEdit"
|
||||
data-test="component-input-username"
|
||||
@set-is-edit="setIsEdit"
|
||||
/>
|
||||
</BCol>
|
||||
<BCol class="col-12">
|
||||
@ -37,9 +37,9 @@
|
||||
</div>
|
||||
</BCol>
|
||||
</BRow>
|
||||
<BRow class="text-right" v-if="newUsername">
|
||||
<BRow v-if="newUsername" class="text-right">
|
||||
<BCol>
|
||||
<div class="text-right" ref="submitButton">
|
||||
<div ref="submitButton" class="text-right">
|
||||
<b-button
|
||||
:variant="disabled(invalid) ? 'light' : 'success'"
|
||||
type="submit"
|
||||
@ -80,6 +80,11 @@ export default {
|
||||
},
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
newUsername() {
|
||||
return this.username !== this.$store.state.username
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
async onSubmit(event) {
|
||||
this.$apollo
|
||||
@ -105,17 +110,13 @@ export default {
|
||||
this.isEdit = bool
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
newUsername() {
|
||||
return this.username !== this.$store.state.username
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
.cursor-pointer {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
div.alert {
|
||||
color: red;
|
||||
}
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<template>
|
||||
<div class="user-naming-format">
|
||||
<b-dropdown v-model="selectedOption">
|
||||
<template slot="button-content">{{ selectedOptionLabel }}</template>
|
||||
<template #button-content>{{ selectedOptionLabel }}</template>
|
||||
<b-dropdown-item
|
||||
v-for="option in dropdownOptions"
|
||||
@click.prevent="update(option)"
|
||||
:key="option.value"
|
||||
:value="option.value"
|
||||
:title="option.title"
|
||||
@click.prevent="update(option)"
|
||||
>
|
||||
{{ option.label }}
|
||||
</b-dropdown-item>
|
||||
@ -58,8 +58,9 @@ export default {
|
||||
},
|
||||
computed: {
|
||||
selectedOptionLabel() {
|
||||
const selected = this.dropdownOptions.find((option) => option.value === this.selectedOption)
|
||||
.label
|
||||
const selected = this.dropdownOptions.find(
|
||||
(option) => option.value === this.selectedOption,
|
||||
).label
|
||||
return selected || this.$t('settings.publish-name.alias-or-initials')
|
||||
// return this.dropdownOptions.find((option) => option.value === this.selectedOption).label
|
||||
},
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<div class="formusernewsletter">
|
||||
<b-form-checkbox
|
||||
test="BFormCheckbox"
|
||||
v-model="newsletterState"
|
||||
test="BFormCheckbox"
|
||||
name="check-button"
|
||||
switch
|
||||
@change="onSubmit"
|
||||
|
||||
@ -5,8 +5,8 @@
|
||||
<BCol class="text-right">
|
||||
<a
|
||||
class="cursor-pointer"
|
||||
@click="showPassword ? (showPassword = !showPassword) : cancelEdit()"
|
||||
data-test="open-password-change-form"
|
||||
@click="showPassword ? (showPassword = !showPassword) : cancelEdit()"
|
||||
>
|
||||
<span class="pointer mr-3">{{ $t('settings.password.change-password') }}</span>
|
||||
<b-icon v-if="showPassword" class="pointer ml-3" icon="pencil"></b-icon>
|
||||
@ -22,9 +22,9 @@
|
||||
<BRow class="mb-2">
|
||||
<BCol>
|
||||
<input-password
|
||||
v-model="form.password"
|
||||
:label="$t('form.password_old')"
|
||||
:placeholder="$t('form.password_old')"
|
||||
v-model="form.password"
|
||||
></input-password>
|
||||
</BCol>
|
||||
</BRow>
|
||||
@ -74,6 +74,11 @@ export default {
|
||||
register: false,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
disabled() {
|
||||
return this.form.newPassword.password !== this.form.newPassword.passwordRepeat
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
cancelEdit() {
|
||||
this.showPassword = true
|
||||
@ -99,11 +104,6 @@ export default {
|
||||
})
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
disabled() {
|
||||
return this.form.newPassword.password !== this.form.newPassword.passwordRepeat
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<div class="form-user-switch" @click="onClick">
|
||||
<b-form-checkbox
|
||||
test="BFormCheckbox"
|
||||
v-model="value"
|
||||
test="BFormCheckbox"
|
||||
name="check-button"
|
||||
:disabled="disabled"
|
||||
switch
|
||||
@ -23,6 +23,7 @@ export default {
|
||||
disabled: { type: Boolean, default: false },
|
||||
notAllowedText: { type: String, default: undefined },
|
||||
},
|
||||
emits: ['value-changed'],
|
||||
data() {
|
||||
return {
|
||||
value: this.initialValue,
|
||||
@ -40,7 +41,7 @@ export default {
|
||||
})
|
||||
.then(() => {
|
||||
this.$store.commit(this.attrName, this.value)
|
||||
this.$emit('valueChanged', this.value)
|
||||
this.$emit('value-changed', this.value)
|
||||
this.toastSuccess(this.value ? this.enabledText : this.disabledText)
|
||||
})
|
||||
.catch((error) => {
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { ref } from 'vue'
|
||||
import { ref, computed } from 'vue'
|
||||
import { useStore } from 'vuex'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { useAppToast } from '@/composables/useToast'
|
||||
|
||||
@ -6,7 +6,6 @@ export const createFilters = (i18n) => {
|
||||
if (isNaN(numValue)) return ''
|
||||
return i18n.global.n(numValue, 'decimal').replace('-', '− ')
|
||||
} catch (error) {
|
||||
console.error('Error formatting amount:', error)
|
||||
return ''
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,19 +13,19 @@ export const unsubscribeNewsletter = gql`
|
||||
`
|
||||
|
||||
export const setPassword = gql`
|
||||
mutation($code: String!, $password: String!) {
|
||||
mutation ($code: String!, $password: String!) {
|
||||
setPassword(code: $code, password: $password)
|
||||
}
|
||||
`
|
||||
|
||||
export const forgotPassword = gql`
|
||||
mutation($email: String!) {
|
||||
mutation ($email: String!) {
|
||||
forgotPassword(email: $email)
|
||||
}
|
||||
`
|
||||
|
||||
export const updateUserInfos = gql`
|
||||
mutation(
|
||||
mutation (
|
||||
$firstName: String
|
||||
$lastName: String
|
||||
$alias: String
|
||||
@ -61,7 +61,7 @@ export const updateUserInfos = gql`
|
||||
`
|
||||
|
||||
export const createUser = gql`
|
||||
mutation(
|
||||
mutation (
|
||||
$firstName: String!
|
||||
$lastName: String!
|
||||
$email: String!
|
||||
@ -83,7 +83,7 @@ export const createUser = gql`
|
||||
`
|
||||
|
||||
export const sendCoins = gql`
|
||||
mutation(
|
||||
mutation (
|
||||
$recipientCommunityIdentifier: String!
|
||||
$recipientIdentifier: String!
|
||||
$amount: Decimal!
|
||||
@ -99,7 +99,7 @@ export const sendCoins = gql`
|
||||
`
|
||||
|
||||
export const createTransactionLink = gql`
|
||||
mutation($amount: Decimal!, $memo: String!) {
|
||||
mutation ($amount: Decimal!, $memo: String!) {
|
||||
createTransactionLink(amount: $amount, memo: $memo) {
|
||||
link
|
||||
amount
|
||||
@ -110,19 +110,19 @@ export const createTransactionLink = gql`
|
||||
`
|
||||
|
||||
export const deleteTransactionLink = gql`
|
||||
mutation($id: Int!) {
|
||||
mutation ($id: Int!) {
|
||||
deleteTransactionLink(id: $id)
|
||||
}
|
||||
`
|
||||
|
||||
export const redeemTransactionLink = gql`
|
||||
mutation($code: String!) {
|
||||
mutation ($code: String!) {
|
||||
redeemTransactionLink(code: $code)
|
||||
}
|
||||
`
|
||||
|
||||
export const createContribution = gql`
|
||||
mutation($creationDate: String!, $memo: String!, $amount: Decimal!) {
|
||||
mutation ($creationDate: String!, $memo: String!, $amount: Decimal!) {
|
||||
createContribution(creationDate: $creationDate, memo: $memo, amount: $amount) {
|
||||
amount
|
||||
memo
|
||||
@ -131,7 +131,7 @@ export const createContribution = gql`
|
||||
`
|
||||
|
||||
export const updateContribution = gql`
|
||||
mutation($contributionId: Int!, $amount: Decimal!, $memo: String!, $creationDate: String!) {
|
||||
mutation ($contributionId: Int!, $amount: Decimal!, $memo: String!, $creationDate: String!) {
|
||||
updateContribution(
|
||||
contributionId: $contributionId
|
||||
amount: $amount
|
||||
@ -146,13 +146,13 @@ export const updateContribution = gql`
|
||||
`
|
||||
|
||||
export const deleteContribution = gql`
|
||||
mutation($id: Int!) {
|
||||
mutation ($id: Int!) {
|
||||
deleteContribution(id: $id)
|
||||
}
|
||||
`
|
||||
|
||||
export const createContributionMessage = gql`
|
||||
mutation($contributionId: Int!, $message: String!) {
|
||||
mutation ($contributionId: Int!, $message: String!) {
|
||||
createContributionMessage(contributionId: $contributionId, message: $message) {
|
||||
id
|
||||
message
|
||||
@ -166,7 +166,7 @@ export const createContributionMessage = gql`
|
||||
`
|
||||
|
||||
export const login = gql`
|
||||
mutation($email: String!, $password: String!, $publisherId: Int) {
|
||||
mutation ($email: String!, $password: String!, $publisherId: Int) {
|
||||
login(email: $email, password: $password, publisherId: $publisherId) {
|
||||
gradidoID
|
||||
alias
|
||||
|
||||
@ -35,7 +35,7 @@ export const authenticateHumhubAutoLogin = gql`
|
||||
`
|
||||
|
||||
export const transactionsQuery = gql`
|
||||
query($currentPage: Int = 1, $pageSize: Int = 25, $order: Order = DESC) {
|
||||
query ($currentPage: Int = 1, $pageSize: Int = 25, $order: Order = DESC) {
|
||||
transactionList(currentPage: $currentPage, pageSize: $pageSize, order: $order) {
|
||||
balance {
|
||||
balance
|
||||
@ -72,7 +72,7 @@ export const transactionsQuery = gql`
|
||||
`
|
||||
|
||||
export const listGDTEntriesQuery = gql`
|
||||
query($currentPage: Int!, $pageSize: Int!) {
|
||||
query ($currentPage: Int!, $pageSize: Int!) {
|
||||
listGDTEntries(currentPage: $currentPage, pageSize: $pageSize) {
|
||||
count
|
||||
gdtEntries {
|
||||
@ -101,19 +101,19 @@ export const selectCommunities = gql`
|
||||
`
|
||||
|
||||
export const queryOptIn = gql`
|
||||
query($optIn: String!) {
|
||||
query ($optIn: String!) {
|
||||
queryOptIn(optIn: $optIn)
|
||||
}
|
||||
`
|
||||
|
||||
export const checkUsername = gql`
|
||||
query($username: String!) {
|
||||
query ($username: String!) {
|
||||
checkUsername(username: $username)
|
||||
}
|
||||
`
|
||||
|
||||
export const queryTransactionLink = gql`
|
||||
query($code: String!) {
|
||||
query ($code: String!) {
|
||||
queryTransactionLink(code: $code) {
|
||||
... on TransactionLink {
|
||||
id
|
||||
@ -148,7 +148,7 @@ export const queryTransactionLink = gql`
|
||||
`
|
||||
|
||||
export const listTransactionLinks = gql`
|
||||
query($currentPage: Int = 1, $pageSize: Int = 5) {
|
||||
query ($currentPage: Int = 1, $pageSize: Int = 5) {
|
||||
listTransactionLinks(currentPage: $currentPage, pageSize: $pageSize) {
|
||||
links {
|
||||
id
|
||||
@ -165,7 +165,7 @@ export const listTransactionLinks = gql`
|
||||
`
|
||||
|
||||
export const listContributionLinks = gql`
|
||||
query($currentPage: Int = 1, $pageSize: Int = 25, $order: Order = DESC) {
|
||||
query ($currentPage: Int = 1, $pageSize: Int = 25, $order: Order = DESC) {
|
||||
listContributionLinks(currentPage: $currentPage, pageSize: $pageSize, order: $order) {
|
||||
links {
|
||||
id
|
||||
@ -185,7 +185,7 @@ export const listContributionLinks = gql`
|
||||
`
|
||||
|
||||
export const listContributions = gql`
|
||||
query(
|
||||
query (
|
||||
$currentPage: Int = 1
|
||||
$pageSize: Int = 25
|
||||
$order: Order = DESC
|
||||
@ -220,7 +220,7 @@ export const listContributions = gql`
|
||||
`
|
||||
|
||||
export const listAllContributions = gql`
|
||||
query($currentPage: Int = 1, $pageSize: Int = 25, $order: Order = DESC) {
|
||||
query ($currentPage: Int = 1, $pageSize: Int = 25, $order: Order = DESC) {
|
||||
listAllContributions(currentPage: $currentPage, pageSize: $pageSize, order: $order) {
|
||||
contributionCount
|
||||
contributionList {
|
||||
@ -266,7 +266,7 @@ export const searchAdminUsers = gql`
|
||||
`
|
||||
|
||||
export const listContributionMessages = gql`
|
||||
query($contributionId: Int!, $pageSize: Int = 25, $currentPage: Int = 1, $order: Order = ASC) {
|
||||
query ($contributionId: Int!, $pageSize: Int = 25, $currentPage: Int = 1, $order: Order = ASC) {
|
||||
listContributionMessages(
|
||||
contributionId: $contributionId
|
||||
pageSize: $pageSize
|
||||
@ -299,7 +299,7 @@ export const openCreations = gql`
|
||||
`
|
||||
|
||||
export const user = gql`
|
||||
query($identifier: String!, $communityIdentifier: String!) {
|
||||
query ($identifier: String!, $communityIdentifier: String!) {
|
||||
user(identifier: $identifier, communityIdentifier: $communityIdentifier) {
|
||||
firstName
|
||||
lastName
|
||||
|
||||
@ -37,14 +37,14 @@
|
||||
></BAvatar>
|
||||
</BCol>
|
||||
</BRow>
|
||||
<BCard no-body ref="pageFontSize" class="border-0 mt-4 gradido-custom-background">
|
||||
<BCard ref="pageFontSize" no-body class="border-0 mt-4 gradido-custom-background">
|
||||
<BRow class="p-4">
|
||||
<BCol cols="10">
|
||||
<language-switch-2 class="ml-3" />
|
||||
</BCol>
|
||||
<BCol cols="2" class="text-right">
|
||||
<div id="popover-target-1" class="pointer">
|
||||
<BImg src="/img/svg/type.svg" width="19" class="svgType"></BImg>
|
||||
<BImg src="/img/svg/type.svg" width="19" class="svg-type"></BImg>
|
||||
</div>
|
||||
<BPopover
|
||||
target="popover-target-1"
|
||||
@ -112,8 +112,6 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
setTextSize(size) {
|
||||
console.log(size)
|
||||
console.log(this.$refs.pageFontSize)
|
||||
this.$refs.pageFontSize.$el.style.fontSize = size + 'rem'
|
||||
},
|
||||
},
|
||||
@ -124,29 +122,31 @@ export default {
|
||||
/* left */
|
||||
.left-content-box {
|
||||
width: 40%;
|
||||
top: 0px;
|
||||
bottom: 0px;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.bg-img-box {
|
||||
top: 0px;
|
||||
bottom: 0px;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
/* right */
|
||||
.right-content-box {
|
||||
max-width: 640px;
|
||||
}
|
||||
|
||||
.page-font-size {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.auth-template {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.bg-txt-box {
|
||||
margin-top: 520px;
|
||||
text-shadow: 2px 2px 8px #000000;
|
||||
text-shadow: 2px 2px 8px #000;
|
||||
max-width: 733px;
|
||||
}
|
||||
|
||||
@ -155,10 +155,11 @@ export default {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.svgType:hover {
|
||||
.svg-type:hover {
|
||||
filter: invert(38%) sepia(18%) saturate(5307%) hue-rotate(179deg) brightness(89%) contrast(89%);
|
||||
}
|
||||
@media screen and (min-width: 2000px) {
|
||||
|
||||
@media screen and (width >= 2000px) {
|
||||
.right-content-box {
|
||||
max-width: 60%;
|
||||
font-size: xx-large;
|
||||
|
||||
@ -34,19 +34,23 @@
|
||||
<BCol>
|
||||
<content-header
|
||||
:balance="balance"
|
||||
:GdtBalance="GdtBalance"
|
||||
:totalUsers="totalUsers"
|
||||
:gdt-balance="GdtBalance"
|
||||
:total-users="totalUsers"
|
||||
>
|
||||
<template #overview>
|
||||
<BRow>
|
||||
<BCol cols="12" lg="5">
|
||||
<div>
|
||||
<gdd-amount :balance="balance" :showStatus="false" :badgeShow="false" />
|
||||
<gdd-amount
|
||||
:balance="balance"
|
||||
:show-status="false"
|
||||
:badge-show="false"
|
||||
/>
|
||||
</div>
|
||||
</BCol>
|
||||
<BCol cols="12" lg="7">
|
||||
<div>
|
||||
<community-member :totalUsers="totalUsers" />
|
||||
<community-member :total-users="totalUsers" />
|
||||
</div>
|
||||
</BCol>
|
||||
</BRow>
|
||||
@ -58,15 +62,15 @@
|
||||
<gdd-amount
|
||||
:balance="balance"
|
||||
:badge="true"
|
||||
:showStatus="true"
|
||||
:badgeShow="false"
|
||||
:show-status="true"
|
||||
:badge-show="false"
|
||||
/>
|
||||
</div>
|
||||
</BCol>
|
||||
<BCol cols="12" lg="6">
|
||||
<div>
|
||||
<router-link to="gdt">
|
||||
<gdt-amount :GdtBalance="GdtBalance" :badgeShow="false" />
|
||||
<gdt-amount :gdt-balance="GdtBalance" :badge-show="false" />
|
||||
</router-link>
|
||||
</div>
|
||||
</BCol>
|
||||
@ -77,14 +81,14 @@
|
||||
<BCol cols="12" lg="6">
|
||||
<div>
|
||||
<router-link to="transactions">
|
||||
<gdd-amount :balance="balance" :showStatus="true" />
|
||||
<gdd-amount :balance="balance" :show-status="true" />
|
||||
</router-link>
|
||||
</div>
|
||||
</BCol>
|
||||
<BCol cols="12" lg="6">
|
||||
<div>
|
||||
<router-link to="gdt">
|
||||
<gdt-amount :GdtBalance="GdtBalance" />
|
||||
<gdt-amount :gdt-balance="GdtBalance" />
|
||||
</router-link>
|
||||
</div>
|
||||
</BCol>
|
||||
@ -95,7 +99,7 @@
|
||||
<BCol cols="12" lg="6">
|
||||
<div>
|
||||
<router-link to="transactions">
|
||||
<gdd-amount :balance="balance" :showStatus="false" />
|
||||
<gdd-amount :balance="balance" :show-status="false" />
|
||||
</router-link>
|
||||
</div>
|
||||
</BCol>
|
||||
@ -104,8 +108,8 @@
|
||||
<router-link to="gdt">
|
||||
<gdt-amount
|
||||
:badge="true"
|
||||
:showStatus="true"
|
||||
:GdtBalance="GdtBalance"
|
||||
:show-status="true"
|
||||
:gdt-balance="GdtBalance"
|
||||
/>
|
||||
</router-link>
|
||||
</div>
|
||||
@ -126,8 +130,8 @@
|
||||
<template #transactions>
|
||||
<last-transactions
|
||||
:transactions="transactions"
|
||||
:transactionCount="transactionCount"
|
||||
:transactionLinkCount="transactionLinkCount"
|
||||
:transaction-count="transactionCount"
|
||||
:transaction-link-count="transactionLinkCount"
|
||||
/>
|
||||
</template>
|
||||
<template #community>
|
||||
@ -143,10 +147,10 @@
|
||||
<router-view
|
||||
ref="router-view"
|
||||
:balance="balance"
|
||||
:GdtBalance="GdtBalance"
|
||||
:gdt-balance="GdtBalance"
|
||||
:transactions="transactions"
|
||||
:transactionCount="transactionCount"
|
||||
:transactionLinkCount="transactionLinkCount"
|
||||
:transaction-count="transactionCount"
|
||||
:transaction-link-count="transactionLinkCount"
|
||||
:pending="pending"
|
||||
@update-transactions="updateTransactions"
|
||||
></router-view>
|
||||
@ -161,8 +165,8 @@
|
||||
<template #transactions>
|
||||
<last-transactions
|
||||
:transactions="transactions"
|
||||
:transactionCount="transactionCount"
|
||||
:transactionLinkCount="transactionLinkCount"
|
||||
:transaction-count="transactionCount"
|
||||
:transaction-link-count="transactionLinkCount"
|
||||
/>
|
||||
</template>
|
||||
<template #empty />
|
||||
@ -386,7 +390,7 @@ const updateTransactions = async ({ currentPage, pageSize }) => {
|
||||
pending.value = true
|
||||
try {
|
||||
const result = await useTransactionsQuery()
|
||||
if (!result) return //TODO this return mitigate an error when this method is called second time but without actual request
|
||||
if (!result) return // TODO this return mitigate an error when this method is called second time but without actual request
|
||||
const { transactionList } = result
|
||||
GdtBalance.value =
|
||||
transactionList.balance.balanceGDT === null ? 0 : Number(transactionList.balance.balanceGDT)
|
||||
@ -399,14 +403,12 @@ const updateTransactions = async ({ currentPage, pageSize }) => {
|
||||
pending.value = true
|
||||
transactionCount.value = -1
|
||||
toastError(error.message)
|
||||
console.error(error)
|
||||
}
|
||||
}
|
||||
|
||||
const getCommunityStatistics = async () => {
|
||||
try {
|
||||
const result = await useCommunityStatsQuery()
|
||||
console.log(result)
|
||||
totalUsers.value = result.communityStatistics.totalUsers
|
||||
} catch {
|
||||
toastError(t('communityStatistics has no result, use default data'))
|
||||
@ -426,40 +428,48 @@ const setVisible = (bool) => {
|
||||
.breadcrumb {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.main-page {
|
||||
background-attachment: fixed;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
background-image: url(/img/svg/Gradido_Blaetter_Mainpage.svg) !important;
|
||||
background-image: url("/img/svg/Gradido_Blaetter_Mainpage.svg") !important;
|
||||
}
|
||||
|
||||
.b-right {
|
||||
text-align: -webkit-right;
|
||||
}
|
||||
|
||||
.content-gradido {
|
||||
display: inline-flex;
|
||||
width: 100%;
|
||||
height: 91%;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.navbar-brand-img {
|
||||
height: 2rem;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.bg-lightgrey {
|
||||
background-color: #f0f0f0 !important;
|
||||
}
|
||||
|
||||
.bg-blueviolet {
|
||||
background-color: blueviolet !important;
|
||||
}
|
||||
|
||||
.width70 {
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
.navbar-toggler-icon {
|
||||
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(4, 112, 6, 1)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
|
||||
}
|
||||
|
||||
@media screen and (max-width: 450px) {
|
||||
@media screen and (width <= 450px) {
|
||||
.breadcrumb {
|
||||
padding-top: 60px;
|
||||
}
|
||||
|
||||
@ -53,7 +53,7 @@ app.config.globalProperties.$filters = {
|
||||
GDD: filters.GDD,
|
||||
}
|
||||
|
||||
//TODO it will be used in future
|
||||
// TODO it will be used in future
|
||||
// app.config.globalProperties.$filters = {
|
||||
// GDD: filters.GDD,
|
||||
// amount: filters.amount,
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="circles">
|
||||
<BContainer class="bg-white appBoxShadow gradido-border-radius p-4 mt--3">
|
||||
<BContainer class="bg-white app-box-shadow gradido-border-radius p-4 mt--3">
|
||||
<div class="h3">{{ $t('circles.headline') }}</div>
|
||||
<div class="my-4 text-small">
|
||||
<span v-for="(line, lineNumber) of $t('circles.text').split('\n')" :key="lineNumber">
|
||||
@ -12,8 +12,8 @@
|
||||
<BCol cols="12">
|
||||
<div class="text-lg-right">
|
||||
<BButton
|
||||
:href="humhubUri"
|
||||
v-if="humhubAllowed"
|
||||
:href="humhubUri"
|
||||
variant="gradido"
|
||||
:disabled="enableButton === false"
|
||||
target="_blank"
|
||||
@ -86,14 +86,14 @@ const humhubUri = ref('')
|
||||
|
||||
const humhubAllowed = computed(() => store.state.humhubAllowed)
|
||||
|
||||
const { refetch: refetchAuthenticateHumhub, onResult, onError } = useQuery(
|
||||
authenticateHumhubAutoLogin,
|
||||
null,
|
||||
{
|
||||
fetchPolicy: 'network-only',
|
||||
enabled: false,
|
||||
},
|
||||
)
|
||||
const {
|
||||
refetch: refetchAuthenticateHumhub,
|
||||
onResult,
|
||||
onError,
|
||||
} = useQuery(authenticateHumhubAutoLogin, null, {
|
||||
fetchPolicy: 'network-only',
|
||||
enabled: false,
|
||||
})
|
||||
|
||||
onResult(({ data }) => {
|
||||
if (data) {
|
||||
|
||||
@ -1,22 +1,22 @@
|
||||
<template>
|
||||
<div class="community-page">
|
||||
<div>
|
||||
<BTabs no-nav-style borderless v-model="tabIndex" align="center">
|
||||
<BTabs v-model="tabIndex" no-nav-style borderless align="center">
|
||||
<BTab no-body>
|
||||
<open-creations-amount
|
||||
:minimalDate="minimalDate"
|
||||
:maxGddLastMonth="maxForMonths[0]"
|
||||
:maxGddThisMonth="maxForMonths[1]"
|
||||
:minimal-date="minimalDate"
|
||||
:max-gdd-last-month="maxForMonths[0]"
|
||||
:max-gdd-this-month="maxForMonths[1]"
|
||||
/>
|
||||
<div class="mb-3"></div>
|
||||
<contribution-form
|
||||
v-model="form"
|
||||
:is-this-month="isThisMonth"
|
||||
:minimal-date="minimalDate"
|
||||
:max-gdd-last-month="maxForMonths[0]"
|
||||
:max-gdd-this-month="maxForMonths[1]"
|
||||
@set-contribution="handleSaveContribution"
|
||||
@update-contribution="handleUpdateContribution"
|
||||
v-model="form"
|
||||
:isThisMonth="isThisMonth"
|
||||
:minimalDate="minimalDate"
|
||||
:maxGddLastMonth="maxForMonths[0]"
|
||||
:maxGddThisMonth="maxForMonths[1]"
|
||||
/>
|
||||
</BTab>
|
||||
<BTab no-body>
|
||||
@ -25,15 +25,15 @@
|
||||
</div>
|
||||
<div v-else>
|
||||
<contribution-list
|
||||
@closeAllOpenCollapse="closeAllOpenCollapse"
|
||||
:items="items"
|
||||
:contribution-count="contributionCount"
|
||||
:show-pagination="true"
|
||||
:page-size="pageSize"
|
||||
@closeAllOpenCollapse="closeAllOpenCollapse"
|
||||
@update-list-contributions="handleUpdateListContributions"
|
||||
@update-contribution-form="handleUpdateContributionForm"
|
||||
@delete-contribution="handleDeleteContribution"
|
||||
@update-status="updateStatus"
|
||||
:contributionCount="contributionCount"
|
||||
:showPagination="true"
|
||||
:pageSize="pageSize"
|
||||
/>
|
||||
</div>
|
||||
</BTab>
|
||||
@ -44,12 +44,12 @@
|
||||
<div v-else>
|
||||
<contribution-list
|
||||
:items="itemsAll"
|
||||
:contribution-count="contributionCountAll"
|
||||
:show-pagination="true"
|
||||
:page-size="pageSizeAll"
|
||||
:all-contribution="true"
|
||||
@update-list-contributions="updateListAllContributions"
|
||||
@update-contribution-form="updateContributionForm"
|
||||
:contributionCount="contributionCountAll"
|
||||
:showPagination="true"
|
||||
:pageSize="pageSizeAll"
|
||||
:allContribution="true"
|
||||
/>
|
||||
</div>
|
||||
</BTab>
|
||||
@ -312,6 +312,7 @@ import ContributionList from '@/components/Contributions/ContributionList'
|
||||
import { createContribution, updateContribution, deleteContribution } from '@/graphql/mutations'
|
||||
import { listContributions, listAllContributions, openCreations } from '@/graphql/queries'
|
||||
import { useAppToast } from '../composables/useToast'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
const COMMUNITY_TABS = ['contribute', 'contributions', 'community']
|
||||
|
||||
@ -323,6 +324,7 @@ const route = useRoute()
|
||||
const router = useRouter()
|
||||
|
||||
const { toastError, toastSuccess, toastInfo } = useAppToast()
|
||||
const { t } = useI18n()
|
||||
|
||||
// Reactive state
|
||||
const tabIndex = ref(0)
|
||||
|
||||
@ -35,8 +35,8 @@
|
||||
:headline="success ? $t('message.title') : $t('message.errorTitle')"
|
||||
:subtitle="success ? $t('message.email') : $t('error.email-already-sent')"
|
||||
:data-test="success ? 'forgot-password-success' : 'forgot-password-error'"
|
||||
:buttonText="$t('login')"
|
||||
linkTo="/login"
|
||||
:button-text="$t('login')"
|
||||
link-to="/login"
|
||||
/>
|
||||
</b-container>
|
||||
</div>
|
||||
@ -63,6 +63,11 @@ export default {
|
||||
success: null,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
enterData() {
|
||||
return !this.showPageMessage
|
||||
},
|
||||
},
|
||||
created() {
|
||||
if (this.$route.params.comingFrom) {
|
||||
this.subtitle = 'settings.password.resend_subtitle'
|
||||
@ -88,20 +93,16 @@ export default {
|
||||
})
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
enterData() {
|
||||
return !this.showPageMessage
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.btn-gradido {
|
||||
padding-right: 0px;
|
||||
padding-left: 0px;
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.btn-gradido-disable {
|
||||
padding-right: 0px;
|
||||
padding-left: 0px;
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="info-statistic">
|
||||
<BContainer class="bg-white appBoxShadow gradido-border-radius p-4 mt--3">
|
||||
<BContainer class="bg-white app-box-shadow gradido-border-radius p-4 mt--3">
|
||||
<div>{{ $t('communityInfo') }}</div>
|
||||
<div class="h3">
|
||||
{{ CONFIG.COMMUNITY_DESCRIPTION }}
|
||||
@ -47,9 +47,8 @@ const supportMail = CONFIG.COMMUNITY_SUPPORT_MAIL
|
||||
const admins = computed(() => itemsAdminUser.value.filter((item) => item.role === 'ADMIN'))
|
||||
const moderators = computed(() => itemsAdminUser.value.filter((item) => item.role === 'MODERATOR'))
|
||||
|
||||
const { onResult: onContributionLinksResult, onError: onContributionLinksError } = useQuery(
|
||||
listContributionLinks,
|
||||
)
|
||||
const { onResult: onContributionLinksResult, onError: onContributionLinksError } =
|
||||
useQuery(listContributionLinks)
|
||||
const { onResult: onAdminUsersResult, onError: onAdminUsersError } = useQuery(searchAdminUsers)
|
||||
|
||||
onContributionLinksResult(({ data }) => {
|
||||
|
||||
@ -77,8 +77,8 @@
|
||||
<BRow>
|
||||
<BCol cols="12" lg="6">
|
||||
<BButton
|
||||
type="submit"
|
||||
ref="submitBtn"
|
||||
type="submit"
|
||||
:variant="meta.valid ? 'gradido' : 'gradido-disable'"
|
||||
block
|
||||
:disabled="!meta.valid"
|
||||
@ -93,8 +93,8 @@
|
||||
<message
|
||||
:headline="$t('message.errorTitle')"
|
||||
:subtitle="errorSubtitle"
|
||||
:buttonText="$t('settings.password.reset')"
|
||||
:linkTo="errorLinkTo"
|
||||
:button-text="$t('settings.password.reset')"
|
||||
:link-to="errorLinkTo"
|
||||
/>
|
||||
</BContainer>
|
||||
</div>
|
||||
@ -212,9 +212,7 @@ const { handleSubmit, meta, values } = useForm({
|
||||
initialValues: form.value,
|
||||
})
|
||||
|
||||
const passwordVisible = ref(false)
|
||||
const showPageMessage = ref(false)
|
||||
const errorReason = ref(null)
|
||||
const errorSubtitle = ref('')
|
||||
const errorLinkTo = ref('')
|
||||
const submitBtn = ref(null)
|
||||
@ -265,11 +263,12 @@ const enterData = computed(() => !showPageMessage.value)
|
||||
</script>
|
||||
<style scoped>
|
||||
.btn-gradido {
|
||||
padding-right: 0px;
|
||||
padding-left: 0px;
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.btn-gradido-disable {
|
||||
padding-right: 0px;
|
||||
padding-left: 0px;
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<div class="header py-1 py-lg-1 pt-lg-3">
|
||||
<BContainer>
|
||||
<div class="header-body text-center mb-3">
|
||||
<a href="#!" v-on:click="$router.go(-1)">
|
||||
<a href="#!" @click="$router.go(-1)">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 mt-5 mb-5">
|
||||
@ -1186,7 +1186,7 @@
|
||||
</BContainer>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<BButton class="test-back" variant="light" v-on:click="$router.go(-1)">
|
||||
<BButton class="test-back" variant="light" @click="$router.go(-1)">
|
||||
{{ $t('back') }}
|
||||
</BButton>
|
||||
</div>
|
||||
@ -1195,7 +1195,7 @@
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'not-found',
|
||||
name: 'NotFound',
|
||||
data() {
|
||||
return {
|
||||
anime: {
|
||||
@ -1244,21 +1244,23 @@ export default {
|
||||
transform-box: fill-box;
|
||||
}
|
||||
|
||||
/*************swing************/
|
||||
/************* swing ************/
|
||||
@keyframes swing {
|
||||
0% {
|
||||
transform: rotate(10deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate(-10deg);
|
||||
}
|
||||
}
|
||||
|
||||
/*************swing hair************/
|
||||
/************* swing hair ************/
|
||||
@keyframes swinghair {
|
||||
0% {
|
||||
transform: rotate(6deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate(-6deg);
|
||||
}
|
||||
|
||||
@ -7,9 +7,9 @@
|
||||
<BRow>
|
||||
<BCol sm="12" md="6">
|
||||
<validation-provider
|
||||
v-slot="validationContext"
|
||||
:name="$t('form.firstname')"
|
||||
:rules="{ required: true, min: 3 }"
|
||||
v-slot="validationContext"
|
||||
>
|
||||
<b-form-group
|
||||
class="mb-3"
|
||||
@ -18,8 +18,8 @@
|
||||
>
|
||||
<b-form-input
|
||||
id="registerFirstname"
|
||||
:name="$t('form.firstname')"
|
||||
v-model="form.firstname"
|
||||
:name="$t('form.firstname')"
|
||||
:placeholder="$t('form.firstname')"
|
||||
:state="getValidationState(validationContext)"
|
||||
aria-describedby="registerFirstnameLiveFeedback"
|
||||
@ -33,9 +33,9 @@
|
||||
</BCol>
|
||||
<BCol sm="12" md="6">
|
||||
<validation-provider
|
||||
v-slot="validationContext"
|
||||
:name="$t('form.lastname')"
|
||||
:rules="{ required: true, min: 2 }"
|
||||
v-slot="validationContext"
|
||||
>
|
||||
<b-form-group
|
||||
class="mb-3"
|
||||
@ -44,8 +44,8 @@
|
||||
>
|
||||
<b-form-input
|
||||
id="registerLastname"
|
||||
:name="$t('form.lastname')"
|
||||
v-model="form.lastname"
|
||||
:name="$t('form.lastname')"
|
||||
:placeholder="$t('form.lastname')"
|
||||
:state="getValidationState(validationContext)"
|
||||
aria-describedby="registerLastnameLiveFeedback"
|
||||
@ -108,11 +108,11 @@ import InputEmail from '@/components/Inputs/InputEmail'
|
||||
import Message from '@/components/Message/Message'
|
||||
|
||||
export default {
|
||||
name: 'Register',
|
||||
components: {
|
||||
InputEmail,
|
||||
Message,
|
||||
},
|
||||
name: 'Register',
|
||||
data() {
|
||||
return {
|
||||
form: {
|
||||
@ -128,6 +128,25 @@ export default {
|
||||
CONFIG,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
namesFilled() {
|
||||
return (
|
||||
this.form.firstname !== '' &&
|
||||
this.form.firstname.length > 2 &&
|
||||
this.form.lastname !== '' &&
|
||||
this.form.lastname.length > 1
|
||||
)
|
||||
},
|
||||
emailFilled() {
|
||||
return this.form.email !== ''
|
||||
},
|
||||
disabled() {
|
||||
return !(this.namesFilled && this.emailFilled && this.form.agree)
|
||||
},
|
||||
enterData() {
|
||||
return !this.showPageMessage
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
getValidationState({ dirty, validated, valid = null }) {
|
||||
return dirty || validated ? valid : null
|
||||
@ -153,34 +172,16 @@ export default {
|
||||
})
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
namesFilled() {
|
||||
return (
|
||||
this.form.firstname !== '' &&
|
||||
this.form.firstname.length > 2 &&
|
||||
this.form.lastname !== '' &&
|
||||
this.form.lastname.length > 1
|
||||
)
|
||||
},
|
||||
emailFilled() {
|
||||
return this.form.email !== ''
|
||||
},
|
||||
disabled() {
|
||||
return !(this.namesFilled && this.emailFilled && this.form.agree)
|
||||
},
|
||||
enterData() {
|
||||
return !this.showPageMessage
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.btn-gradido {
|
||||
padding-right: 0px;
|
||||
padding-left: 0px;
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.btn-gradido-disable {
|
||||
padding-right: 0px;
|
||||
padding-left: 0px;
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -26,8 +26,8 @@
|
||||
<message
|
||||
:headline="messageHeadline"
|
||||
:subtitle="messageSubtitle"
|
||||
:buttonText="messageButtonText"
|
||||
:linkTo="messageButtonLinktTo"
|
||||
:button-text="messageButtonText"
|
||||
:link-to="messageButtonLinktTo"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
@ -73,6 +73,11 @@ export default {
|
||||
messageButtonLinktTo: null,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
enterData() {
|
||||
return !this.showPageMessage
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.$emit('set-mobile-start', false)
|
||||
this.setDisplaySetup()
|
||||
@ -146,20 +151,16 @@ export default {
|
||||
}
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
enterData() {
|
||||
return !this.showPageMessage
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.btn-gradido {
|
||||
padding-right: 0px;
|
||||
padding-left: 0px;
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.btn-gradido-disable {
|
||||
padding-right: 0px;
|
||||
padding-left: 0px;
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<gdd-send :currentTransactionStep="currentTransactionStep">
|
||||
<gdd-send :current-transaction-step="currentTransactionStep">
|
||||
<template #transactionForm>
|
||||
<transaction-form
|
||||
v-bind="transactionData"
|
||||
@ -33,7 +33,7 @@
|
||||
<template #transactionResultSendError>
|
||||
<transaction-result-send-error
|
||||
:error="error"
|
||||
:errorResult="errorResult"
|
||||
:error-result="errorResult"
|
||||
@on-back="onBack"
|
||||
></transaction-result-send-error>
|
||||
</template>
|
||||
@ -42,7 +42,7 @@
|
||||
:link="link"
|
||||
:amount="amount"
|
||||
:memo="memo"
|
||||
:validUntil="validUntil"
|
||||
:valid-until="validUntil"
|
||||
@on-back="onBack"
|
||||
></transaction-result-link>
|
||||
</template>
|
||||
@ -188,12 +188,7 @@
|
||||
<!--}-->
|
||||
<!--</script>-->
|
||||
|
||||
<script>
|
||||
export const SEND_TYPES = {
|
||||
send: 'send',
|
||||
link: 'link',
|
||||
}
|
||||
</script>
|
||||
<script></script>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive } from 'vue'
|
||||
@ -208,6 +203,10 @@ import TransactionResultSendError from '@/components/GddSend/TransactionResultSe
|
||||
import TransactionResultLink from '@/components/GddSend/TransactionResultLink'
|
||||
import { sendCoins, createTransactionLink } from '@/graphql/mutations.js'
|
||||
import { useAppToast } from '@/composables/useToast'
|
||||
export const SEND_TYPES = {
|
||||
send: 'send',
|
||||
link: 'link',
|
||||
}
|
||||
|
||||
const EMPTY_TRANSACTION_DATA = {
|
||||
identifier: '',
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="card bg-white gradido-border-radius appBoxShadow p-4 mt--3">
|
||||
<div class="card bg-white gradido-border-radius app-box-shadow p-4 mt--3">
|
||||
<b-tabs v-model="tabIndex" content-class="mt-3">
|
||||
<b-tab :title="$t('PersonalDetails')">
|
||||
<div class="h2">{{ $t('PersonalDetails') }}</div>
|
||||
@ -44,8 +44,8 @@
|
||||
<b-button
|
||||
type="submit"
|
||||
variant="primary"
|
||||
@click.prevent="onSubmit"
|
||||
data-test="submit-userdata"
|
||||
@click.prevent="onSubmit"
|
||||
>
|
||||
{{ $t('form.save') }}
|
||||
</b-button>
|
||||
@ -89,13 +89,13 @@
|
||||
</BCol>
|
||||
<BCol cols="12" md="6" lg="6" class="text-right">
|
||||
<user-settings-switch
|
||||
@valueChanged="humhubStateSwitch"
|
||||
:initialValue="$store.state.humhubAllowed"
|
||||
:attrName="'humhubAllowed'"
|
||||
:initial-value="$store.state.humhubAllowed"
|
||||
:attr-name="'humhubAllowed'"
|
||||
:disabled="isHumhubActivated"
|
||||
:enabledText="$t('settings.humhub.enabled')"
|
||||
:disabledText="$t('settings.humhub.disabled')"
|
||||
:notAllowedText="$t('settings.humhub.delete-disabled')"
|
||||
:enabled-text="$t('settings.humhub.enabled')"
|
||||
:disabled-text="$t('settings.humhub.disabled')"
|
||||
:not-allowed-text="$t('settings.humhub.delete-disabled')"
|
||||
@value-changed="humhubStateSwitch"
|
||||
/>
|
||||
</BCol>
|
||||
</BRow>
|
||||
@ -106,9 +106,9 @@
|
||||
</BCol>
|
||||
<BCol cols="12" md="6" lg="6">
|
||||
<user-naming-format
|
||||
:initialValue="$store.state.humhubPublishName"
|
||||
:attrName="'humhubPublishName'"
|
||||
:successMessage="$t('settings.humhub.publish-name.updated')"
|
||||
:initial-value="$store.state.humhubPublishName"
|
||||
:attr-name="'humhubPublishName'"
|
||||
:success-message="$t('settings.humhub.publish-name.updated')"
|
||||
/>
|
||||
</BCol>
|
||||
</BRow>
|
||||
@ -120,11 +120,11 @@
|
||||
</BCol>
|
||||
<BCol cols="12" md="6" lg="6" class="text-right">
|
||||
<user-settings-switch
|
||||
@valueChanged="gmsStateSwitch"
|
||||
:initialValue="$store.state.gmsAllowed"
|
||||
:attrName="'gmsAllowed'"
|
||||
:enabledText="$t('settings.GMS.enabled')"
|
||||
:disabledText="$t('settings.GMS.disabled')"
|
||||
:initial-value="$store.state.gmsAllowed"
|
||||
:attr-name="'gmsAllowed'"
|
||||
:enabled-text="$t('settings.GMS.enabled')"
|
||||
:disabled-text="$t('settings.GMS.disabled')"
|
||||
@value-changed="gmsStateSwitch"
|
||||
/>
|
||||
</BCol>
|
||||
</BRow>
|
||||
@ -136,9 +136,9 @@
|
||||
</BCol>
|
||||
<BCol cols="12" md="6" lg="6">
|
||||
<user-naming-format
|
||||
:initialValue="$store.state.gmsPublishName"
|
||||
:attrName="'gmsPublishName'"
|
||||
:successMessage="$t('settings.GMS.publish-name.updated')"
|
||||
:initial-value="$store.state.gmsPublishName"
|
||||
:attr-name="'gmsPublishName'"
|
||||
:success-message="$t('settings.GMS.publish-name.updated')"
|
||||
/>
|
||||
</BCol>
|
||||
</BRow>
|
||||
@ -214,15 +214,8 @@ export default {
|
||||
|
||||
data() {
|
||||
const { state } = this.$store
|
||||
const {
|
||||
darkMode,
|
||||
firstName,
|
||||
lastName,
|
||||
email,
|
||||
newsletterState,
|
||||
gmsAllowed,
|
||||
humhubAllowed,
|
||||
} = state
|
||||
const { darkMode, firstName, lastName, email, newsletterState, gmsAllowed, humhubAllowed } =
|
||||
state
|
||||
|
||||
const username = this.$store.state.username || ''
|
||||
let tabIndex = 0
|
||||
@ -300,14 +293,17 @@ export default {
|
||||
.community-service-tabs {
|
||||
min-height: 315px;
|
||||
}
|
||||
|
||||
.card-border-radius {
|
||||
border-radius: 0px 5px 5px 0px !important;
|
||||
border-radius: 0 5px 5px 0 !important;
|
||||
}
|
||||
@media screen and (max-width: 1235px) {
|
||||
|
||||
@media screen and (width <= 1235px) {
|
||||
.card-border-radius {
|
||||
border-radius: 0px !important;
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.card-background-gray {
|
||||
background-color: #ebebeba3 !important;
|
||||
}
|
||||
|
||||
@ -233,8 +233,7 @@ describe('TransactionLink', () => {
|
||||
__typename: 'TransactionLink',
|
||||
id: 92,
|
||||
amount: '22',
|
||||
memo:
|
||||
'Abrakadabra drei, vier, fünf, sechs, hier steht jetzt ein Memotext! Hex hex ',
|
||||
memo: 'Abrakadabra drei, vier, fünf, sechs, hier steht jetzt ein Memotext! Hex hex ',
|
||||
createdAt: '2022-03-17T16:10:28.000Z',
|
||||
validUntil: transactionLinkValidExpireDate(),
|
||||
redeemedAt: null,
|
||||
@ -269,8 +268,7 @@ describe('TransactionLink', () => {
|
||||
__typename: 'TransactionLink',
|
||||
id: 92,
|
||||
amount: '22',
|
||||
memo:
|
||||
'Abrakadabra drei, vier, fünf, sechs, hier steht jetzt ein Memotext! Hex hex ',
|
||||
memo: 'Abrakadabra drei, vier, fünf, sechs, hier steht jetzt ein Memotext! Hex hex ',
|
||||
createdAt: '2022-03-17T16:10:28.000Z',
|
||||
validUntil: transactionLinkValidExpireDate(),
|
||||
redeemedAt: null,
|
||||
@ -345,8 +343,7 @@ describe('TransactionLink', () => {
|
||||
__typename: 'TransactionLink',
|
||||
id: 92,
|
||||
amount: '22',
|
||||
memo:
|
||||
'Abrakadabra drei, vier, fünf, sechs, hier steht jetzt ein Memotext! Hex hex ',
|
||||
memo: 'Abrakadabra drei, vier, fünf, sechs, hier steht jetzt ein Memotext! Hex hex ',
|
||||
createdAt: '2022-03-17T16:10:28.000Z',
|
||||
validUntil: transactionLinkValidExpireDate(),
|
||||
redeemedAt: null,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user