mirror of
https://github.com/IT4Change/gradido.git
synced 2026-02-06 01:46:07 +00:00
add gms switch and name type
This commit is contained in:
parent
fbfe9e2a9d
commit
03c566919c
@ -1,6 +1,7 @@
|
||||
import { IsBoolean, IsInt, IsString } from 'class-validator'
|
||||
import { IsBoolean, IsEnum, IsInt, IsString } from 'class-validator'
|
||||
import { ArgsType, Field, InputType, Int } from 'type-graphql'
|
||||
|
||||
import { GmsPublishNameType } from '@enum/GmsPublishNameType'
|
||||
import { Location } from '@model/Location'
|
||||
|
||||
import { isValidLocation } from '@/graphql/validator/Location'
|
||||
@ -48,9 +49,12 @@ export class UpdateUserInfosArgs {
|
||||
@IsBoolean()
|
||||
gmsAllowed?: boolean
|
||||
|
||||
@Field(() => Int, { nullable: true, defaultValue: 0 })
|
||||
@IsInt()
|
||||
gmsPublishName?: number | null
|
||||
@Field(() => GmsPublishNameType, {
|
||||
nullable: true,
|
||||
defaultValue: GmsPublishNameType.GMS_PUBLISH_NAME_ALIAS_OR_INITALS,
|
||||
})
|
||||
@IsEnum(GmsPublishNameType)
|
||||
gmsPublishName?: GmsPublishNameType | null
|
||||
|
||||
@Field(() => Location, { nullable: true })
|
||||
@isValidLocation()
|
||||
|
||||
@ -29,6 +29,8 @@ export class User {
|
||||
this.hasElopage = null
|
||||
this.hideAmountGDD = user.hideAmountGDD
|
||||
this.hideAmountGDT = user.hideAmountGDT
|
||||
this.gmsAllowed = user.gmsAllowed
|
||||
this.gmsPublishName = user.gmsPublishName
|
||||
}
|
||||
}
|
||||
|
||||
@ -74,6 +76,12 @@ export class User {
|
||||
@Field(() => Boolean)
|
||||
hideAmountGDT: boolean
|
||||
|
||||
@Field(() => Boolean)
|
||||
gmsAllowed: boolean
|
||||
|
||||
@Field(() => Int, { nullable: true })
|
||||
gmsPublishName: number | null
|
||||
|
||||
// This is not the users publisherId, but the one of the users who recommend him
|
||||
@Field(() => Int, { nullable: true })
|
||||
publisherId: number | null
|
||||
|
||||
@ -561,17 +561,6 @@ export class UserResolver {
|
||||
logger.info(
|
||||
`updateUserInfos(${firstName}, ${lastName}, ${alias}, ${language}, ***, ***, ${hideAmountGDD}, ${hideAmountGDT}, ${gmsAllowed}, ${gmsPublishName}, ${gmsLocation}, ${gmsPublishLocation})...`,
|
||||
)
|
||||
// check default arg settings
|
||||
if (gmsAllowed === null || gmsAllowed === undefined) {
|
||||
gmsAllowed = true
|
||||
}
|
||||
if (!gmsPublishName) {
|
||||
gmsPublishName = GmsPublishNameType.GMS_PUBLISH_NAME_ALIAS_OR_INITALS
|
||||
}
|
||||
if (!gmsPublishLocation) {
|
||||
gmsPublishLocation = GmsPublishLocationType.GMS_LOCATION_TYPE_RANDOM
|
||||
}
|
||||
|
||||
const user = getUser(context)
|
||||
// try {
|
||||
if (firstName) {
|
||||
@ -620,12 +609,18 @@ export class UserResolver {
|
||||
user.hideAmountGDT = hideAmountGDT
|
||||
}
|
||||
|
||||
user.gmsAllowed = gmsAllowed
|
||||
user.gmsPublishName = gmsPublishName
|
||||
if (gmsAllowed) {
|
||||
user.gmsAllowed = gmsAllowed
|
||||
}
|
||||
if (gmsPublishName) {
|
||||
user.gmsPublishName = gmsPublishName
|
||||
}
|
||||
if (gmsLocation) {
|
||||
user.location = Location2Point(gmsLocation)
|
||||
}
|
||||
user.gmsPublishLocation = gmsPublishLocation
|
||||
if (gmsPublishLocation) {
|
||||
user.gmsPublishLocation = gmsPublishLocation
|
||||
}
|
||||
// } catch (err) {
|
||||
// console.log('error:', err)
|
||||
// }
|
||||
|
||||
84
frontend/src/components/UserSettings/UserGMSNamingFormat.vue
Normal file
84
frontend/src/components/UserSettings/UserGMSNamingFormat.vue
Normal file
@ -0,0 +1,84 @@
|
||||
<template>
|
||||
<div class="user-gms-naming-format">
|
||||
<b-dropdown v-model="selectedOption">
|
||||
<template slot="button-content">{{ selectedOptionLabel }}</template>
|
||||
<b-dropdown-item
|
||||
v-for="option in dropdownOptions"
|
||||
@click.prevent="update(option)"
|
||||
:key="option.value"
|
||||
:value="option.value"
|
||||
>
|
||||
{{ option.label }}
|
||||
</b-dropdown-item>
|
||||
</b-dropdown>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { updateUserInfos } from '@/graphql/mutations'
|
||||
|
||||
export default {
|
||||
name: 'UserGMSNamingFormat',
|
||||
data() {
|
||||
return {
|
||||
selectedOption: this.$store.state.gmsPublishName ?? 'GMS_PUBLISH_NAME_ALIAS_OR_INITALS',
|
||||
dropdownOptions: [
|
||||
{
|
||||
label: this.$t('settings.GMS.publish-name.alias-or-initials'),
|
||||
value: 'GMS_PUBLISH_NAME_ALIAS_OR_INITALS',
|
||||
},
|
||||
{
|
||||
label: this.$t('settings.GMS.publish-name.initials'),
|
||||
value: 'GMS_PUBLISH_NAME_INITIALS',
|
||||
},
|
||||
{ label: this.$t('settings.GMS.publish-name.first'), value: 'GMS_PUBLISH_NAME_FIRST' },
|
||||
{
|
||||
label: this.$t('settings.GMS.publish-name.first-initial'),
|
||||
value: 'GMS_PUBLISH_NAME_FIRST_INITIAL',
|
||||
},
|
||||
{ label: this.$t('settings.GMS.publish-name.name-full'), value: 'GMS_PUBLISH_NAME_FULL' },
|
||||
],
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
selectedOptionLabel() {
|
||||
const selected = this.dropdownOptions.find((option) => option.value === this.selectedOption)
|
||||
return selected ? selected.label : 'Select Option'
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
async update(option) {
|
||||
try {
|
||||
await this.$apollo.mutate({
|
||||
mutation: updateUserInfos,
|
||||
variables: {
|
||||
gmsPublishName: option.value,
|
||||
},
|
||||
})
|
||||
this.toastSuccess(this.$t('settings.GMS.publish-name.updated'))
|
||||
this.selectedOption = option.value
|
||||
this.$store.commit('gmsPublishName', option.value)
|
||||
this.$emit('gmsPublishName', option.value)
|
||||
} catch (error) {
|
||||
this.toastError(error.message)
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
.user-gms-naming-format > div,
|
||||
.user-gms-naming-format ul.dropdown-menu {
|
||||
width: 100%;
|
||||
}
|
||||
.user-gms-naming-format > div > button {
|
||||
border-radius: 17px;
|
||||
height: 50px;
|
||||
text-align: left;
|
||||
}
|
||||
.user-gms-naming-format .dropdown-toggle::after {
|
||||
float: right;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
position: relative;
|
||||
}
|
||||
</style>
|
||||
45
frontend/src/components/UserSettings/UserGMSSwitch.vue
Normal file
45
frontend/src/components/UserSettings/UserGMSSwitch.vue
Normal file
@ -0,0 +1,45 @@
|
||||
<template>
|
||||
<div class="form-user-gms-switch">
|
||||
<b-form-checkbox
|
||||
test="BFormCheckbox"
|
||||
v-model="gmsState"
|
||||
name="check-button"
|
||||
switch
|
||||
@change="onSubmit"
|
||||
></b-form-checkbox>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { updateUserInfos } from '@/graphql/mutations'
|
||||
|
||||
export default {
|
||||
name: 'UserGMSSwitch',
|
||||
data() {
|
||||
return {
|
||||
gmsState: this.$store.state.gmsState,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async onSubmit() {
|
||||
this.$apollo
|
||||
.mutate({
|
||||
mutation: updateUserInfos,
|
||||
variables: {
|
||||
gmsAllowed: this.gmsState,
|
||||
},
|
||||
})
|
||||
.then(() => {
|
||||
this.$store.commit('gmsState', this.gmsState)
|
||||
this.$emit('gmsStateSwitch', this.gmsState)
|
||||
this.toastSuccess(
|
||||
this.gmsState ? this.$t('settings.GMS.enabled') : this.$t('settings.GMS.disabled'),
|
||||
)
|
||||
})
|
||||
.catch((error) => {
|
||||
this.gmsState = this.$store.state.gmsState
|
||||
this.toastError(error.message)
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
@ -35,7 +35,7 @@ export const updateUserInfos = gql`
|
||||
$hideAmountGDD: Boolean
|
||||
$hideAmountGDT: Boolean
|
||||
$gmsAllowed: Boolean
|
||||
$gmsPublishName: Int
|
||||
$gmsPublishName: GmsPublishNameType
|
||||
$gmsLocation: Location
|
||||
$gmsPublishLocation: Int
|
||||
) {
|
||||
@ -172,6 +172,8 @@ export const login = gql`
|
||||
klickTipp {
|
||||
newsletterState
|
||||
}
|
||||
gmsAllowed
|
||||
gmsPublishName
|
||||
hasElopage
|
||||
publisherId
|
||||
roles
|
||||
|
||||
@ -5,8 +5,10 @@
|
||||
"1000thanks": "1000 Dank, weil du bei uns bist!",
|
||||
"125": "125%",
|
||||
"85": "85%",
|
||||
"ExternServices": "Verknüpfte Dienste",
|
||||
"GDD": "GDD",
|
||||
"GDT": "GDT",
|
||||
"GMS": "Gradido Karte",
|
||||
"PersonalDetails": "Persönliche Angaben",
|
||||
"advanced-calculation": "Vorausberechnung",
|
||||
"asterisks": "****",
|
||||
@ -290,6 +292,20 @@
|
||||
},
|
||||
"settings": {
|
||||
"emailInfo": "Kann aktuell noch nicht geändert werden.",
|
||||
"GMS": {
|
||||
"disabled": "Daten werden nicht nach GMS exportiert",
|
||||
"enabled": "Daten werden nach GMS exportiert",
|
||||
"naming-format": "Namensformat im GMS",
|
||||
"publish-name": {
|
||||
"alias-or-initials": "Benutzername, falls vorhanden, oder die Initialen von Vorname und Nachname",
|
||||
"first": "nur Vornamen",
|
||||
"first-initial": "Vorname plus Anfangsbuchstabe des Nachnamens",
|
||||
"initials": "Initialen von Vor- und Nachname unabhängig von der Existenz des Benutzernamens",
|
||||
"name-full": "vollständiger Name: Vorname plus Nachname",
|
||||
"updated": "Namensformat für GMS aktualisiert"
|
||||
},
|
||||
"switch": "Erlaubnis Daten nach GMS zu exportieren."
|
||||
},
|
||||
"hideAmountGDD": "Dein GDD Betrag ist versteckt.",
|
||||
"hideAmountGDT": "Dein GDT Betrag ist versteckt.",
|
||||
"info": "Transaktionen können nun per Benutzername oder E-Mail-Adresse getätigt werden.",
|
||||
|
||||
@ -5,8 +5,10 @@
|
||||
"1000thanks": "1000 thanks for being with us!",
|
||||
"125": "125%",
|
||||
"85": "85%",
|
||||
"ExternServices": "Extern Services",
|
||||
"GDD": "GDD",
|
||||
"GDT": "GDT",
|
||||
"GMS": "Gradido Map",
|
||||
"PersonalDetails": "Personal details",
|
||||
"advanced-calculation": "Advanced calculation",
|
||||
"asterisks": "****",
|
||||
@ -290,6 +292,20 @@
|
||||
},
|
||||
"settings": {
|
||||
"emailInfo": "Cannot be changed at this time.",
|
||||
"GMS": {
|
||||
"disabled": "Data not exported to GMS",
|
||||
"enabled": "Data exported to GMS",
|
||||
"naming-format": "Format of name in GMS",
|
||||
"publish-name": {
|
||||
"alias-or-initials": "username if exists or Initials of firstname and lastname",
|
||||
"first": "firstname only",
|
||||
"first-initial": "firstname plus initial of lastname",
|
||||
"initials": "Initials of firstname and lastname independent if username exists",
|
||||
"name-full": "fullname: firstname plus lastname",
|
||||
"updated": "format of name for GMS updated"
|
||||
},
|
||||
"switch": "Allow data export to GMS"
|
||||
},
|
||||
"hideAmountGDD": "Your GDD amount is hidden.",
|
||||
"hideAmountGDT": "Your GDT amount is hidden.",
|
||||
"info": "Transactions can now be made by username or email address.",
|
||||
|
||||
@ -1,81 +1,113 @@
|
||||
<template>
|
||||
<div class="card bg-white gradido-border-radius appBoxShadow p-4 mt--3">
|
||||
<div class="h2">{{ $t('PersonalDetails') }}</div>
|
||||
<div class="my-4 text-small">
|
||||
{{ $t('settings.info') }}
|
||||
</div>
|
||||
|
||||
<b-row>
|
||||
<b-col cols="12" md="6" lg="6">
|
||||
<user-name />
|
||||
</b-col>
|
||||
<b-col cols="12" md="6" lg="6">
|
||||
<b-form-group :label="$t('form.email')" :description="$t('settings.emailInfo')">
|
||||
<b-form-input v-model="email" readonly></b-form-input>
|
||||
</b-form-group>
|
||||
</b-col>
|
||||
</b-row>
|
||||
|
||||
<hr />
|
||||
<b-form>
|
||||
<b-row class="mt-3">
|
||||
<b-col cols="12" md="6" lg="6">
|
||||
<label>{{ $t('form.firstname') }}</label>
|
||||
<b-form-input
|
||||
v-model="firstName"
|
||||
:placeholder="$t('settings.name.enterFirstname')"
|
||||
data-test="firstname"
|
||||
trim
|
||||
></b-form-input>
|
||||
</b-col>
|
||||
<b-col cols="12" md="6" lg="6">
|
||||
<label>{{ $t('form.lastname') }}</label>
|
||||
<b-form-input
|
||||
v-model="lastName"
|
||||
:placeholder="$t('settings.name.enterLastname')"
|
||||
data-test="lastname"
|
||||
trim
|
||||
></b-form-input>
|
||||
</b-col>
|
||||
</b-row>
|
||||
<div v-if="!isDisabled" class="mt-4 pt-4 text-center">
|
||||
<b-button
|
||||
type="submit"
|
||||
variant="primary"
|
||||
@click.prevent="onSubmit"
|
||||
data-test="submit-userdata"
|
||||
>
|
||||
{{ $t('form.save') }}
|
||||
</b-button>
|
||||
</div>
|
||||
</b-form>
|
||||
<hr />
|
||||
<b-row>
|
||||
<b-col cols="12" md="6" lg="6">{{ $t('language') }}</b-col>
|
||||
<b-col cols="12" md="6" lg="6" class="text-right">
|
||||
<user-language />
|
||||
</b-col>
|
||||
</b-row>
|
||||
|
||||
<hr />
|
||||
<div class="mt-5">{{ $t('form.password') }}</div>
|
||||
<user-password />
|
||||
<hr />
|
||||
<b-row class="mb-5">
|
||||
<b-col cols="12" md="6" lg="6">
|
||||
{{ $t('settings.newsletter.newsletter') }}
|
||||
<div class="text-small">
|
||||
{{
|
||||
newsletterState
|
||||
? $t('settings.newsletter.newsletterTrue')
|
||||
: $t('settings.newsletter.newsletterFalse')
|
||||
}}
|
||||
<b-tabs content-class="mt-3">
|
||||
<b-tab :title="$t('PersonalDetails')" active>
|
||||
<div class="h2">{{ $t('PersonalDetails') }}</div>
|
||||
<div class="my-4 text-small">
|
||||
{{ $t('settings.info') }}
|
||||
</div>
|
||||
</b-col>
|
||||
<b-col cols="12" md="6" lg="6" class="text-right">
|
||||
<user-newsletter />
|
||||
</b-col>
|
||||
</b-row>
|
||||
|
||||
<b-row>
|
||||
<b-col cols="12" md="6" lg="6">
|
||||
<user-name />
|
||||
</b-col>
|
||||
<b-col cols="12" md="6" lg="6">
|
||||
<b-form-group :label="$t('form.email')" :description="$t('settings.emailInfo')">
|
||||
<b-form-input v-model="email" readonly></b-form-input>
|
||||
</b-form-group>
|
||||
</b-col>
|
||||
</b-row>
|
||||
|
||||
<hr />
|
||||
<b-form>
|
||||
<b-row class="mt-3">
|
||||
<b-col cols="12" md="6" lg="6">
|
||||
<label>{{ $t('form.firstname') }}</label>
|
||||
<b-form-input
|
||||
v-model="firstName"
|
||||
:placeholder="$t('settings.name.enterFirstname')"
|
||||
data-test="firstname"
|
||||
trim
|
||||
></b-form-input>
|
||||
</b-col>
|
||||
<b-col cols="12" md="6" lg="6">
|
||||
<label>{{ $t('form.lastname') }}</label>
|
||||
<b-form-input
|
||||
v-model="lastName"
|
||||
:placeholder="$t('settings.name.enterLastname')"
|
||||
data-test="lastname"
|
||||
trim
|
||||
></b-form-input>
|
||||
</b-col>
|
||||
</b-row>
|
||||
<div v-if="!isDisabled" class="mt-4 pt-4 text-center">
|
||||
<b-button
|
||||
type="submit"
|
||||
variant="primary"
|
||||
@click.prevent="onSubmit"
|
||||
data-test="submit-userdata"
|
||||
>
|
||||
{{ $t('form.save') }}
|
||||
</b-button>
|
||||
</div>
|
||||
</b-form>
|
||||
<hr />
|
||||
<b-row>
|
||||
<b-col cols="12" md="6" lg="6">{{ $t('language') }}</b-col>
|
||||
<b-col cols="12" md="6" lg="6" class="text-right">
|
||||
<user-language />
|
||||
</b-col>
|
||||
</b-row>
|
||||
|
||||
<hr />
|
||||
<div class="mt-5">{{ $t('form.password') }}</div>
|
||||
<user-password />
|
||||
<hr />
|
||||
<b-row class="mb-5">
|
||||
<b-col cols="12" md="6" lg="6">
|
||||
{{ $t('settings.newsletter.newsletter') }}
|
||||
<div class="text-small">
|
||||
{{
|
||||
newsletterState
|
||||
? $t('settings.newsletter.newsletterTrue')
|
||||
: $t('settings.newsletter.newsletterFalse')
|
||||
}}
|
||||
</div>
|
||||
</b-col>
|
||||
<b-col cols="12" md="6" lg="6" class="text-right">
|
||||
<user-newsletter />
|
||||
</b-col>
|
||||
</b-row>
|
||||
</b-tab>
|
||||
<b-tab :title="$t('ExternServices')">
|
||||
<div class="h2">{{ $t('ExternServices') }}</div>
|
||||
<div class="h3">{{ $t('GMS') }}</div>
|
||||
<b-row class="mb-3">
|
||||
<b-col cols="12" md="6" lg="6">
|
||||
{{ $t('settings.GMS.switch') }}
|
||||
<div class="text-small">
|
||||
{{ gmsState ? $t('settings.GMS.enabled') : $t('settings.GMS.disabled') }}
|
||||
</div>
|
||||
</b-col>
|
||||
<b-col cols="12" md="6" lg="6" class="text-right">
|
||||
<user-g-m-s-switch @gmsStateSwitch="gmsStateSwitch" />
|
||||
</b-col>
|
||||
</b-row>
|
||||
<div v-if="gmsState">
|
||||
<b-row class="mb-2">
|
||||
<b-col cols="12" md="6" lg="6">
|
||||
{{ $t('settings.GMS.naming-format') }}
|
||||
</b-col>
|
||||
</b-row>
|
||||
<b-row :style="{ marginBottom: '200px' }">
|
||||
<b-col cols="24" md="12" lg="12">
|
||||
<user-g-m-s-naming-format />
|
||||
</b-col>
|
||||
</b-row>
|
||||
</div>
|
||||
</b-tab>
|
||||
</b-tabs>
|
||||
|
||||
<!-- TODO<b-row>
|
||||
<b-col cols="12" md="6" lg="6">{{ $t('settings.darkMode') }}</b-col>
|
||||
<b-col cols="12" md="6" lg="6" class="text-right">
|
||||
@ -85,6 +117,8 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import UserGMSSwitch from '@/components/UserSettings/UserGMSSwitch'
|
||||
import UserGMSNamingFormat from '@/components/UserSettings/UserGMSNamingFormat'
|
||||
import UserName from '@/components/UserSettings/UserName.vue'
|
||||
import UserPassword from '@/components/UserSettings/UserPassword'
|
||||
import UserLanguage from '@/components/LanguageSwitch2.vue'
|
||||
@ -94,6 +128,8 @@ import { updateUserInfos } from '@/graphql/mutations'
|
||||
export default {
|
||||
name: 'Profile',
|
||||
components: {
|
||||
UserGMSSwitch,
|
||||
UserGMSNamingFormat,
|
||||
UserName,
|
||||
UserPassword,
|
||||
UserLanguage,
|
||||
@ -106,7 +142,7 @@ export default {
|
||||
|
||||
data() {
|
||||
const { state } = this.$store
|
||||
const { darkMode, firstName, lastName, email, newsletterState } = state
|
||||
const { darkMode, firstName, lastName, email, newsletterState, gmsState } = state
|
||||
|
||||
return {
|
||||
darkMode,
|
||||
@ -115,6 +151,7 @@ export default {
|
||||
lastName,
|
||||
email,
|
||||
newsletterState,
|
||||
gmsState,
|
||||
mutation: '',
|
||||
variables: {},
|
||||
}
|
||||
@ -150,6 +187,9 @@ export default {
|
||||
this.toastSuccess(this.$t('settings.name.change-success'))
|
||||
} catch (error) {}
|
||||
},
|
||||
gmsStateSwitch(eventData) {
|
||||
this.gmsState = eventData
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -35,6 +35,12 @@ export const mutations = {
|
||||
newsletterState: (state, newsletterState) => {
|
||||
state.newsletterState = newsletterState
|
||||
},
|
||||
gmsState: (state, gmsState) => {
|
||||
state.gmsState = gmsState
|
||||
},
|
||||
gmsPublishName: (state, gmsPublishName) => {
|
||||
state.gmsPublishName = gmsPublishName
|
||||
},
|
||||
publisherId: (state, publisherId) => {
|
||||
let pubId = parseInt(publisherId)
|
||||
if (isNaN(pubId)) pubId = null
|
||||
@ -71,6 +77,8 @@ export const actions = {
|
||||
commit('firstName', data.firstName)
|
||||
commit('lastName', data.lastName)
|
||||
commit('newsletterState', data.klickTipp.newsletterState)
|
||||
commit('gmsState', data.gmsAllowed)
|
||||
commit('gmsPublishName', data.gmsPublishName)
|
||||
commit('hasElopage', data.hasElopage)
|
||||
commit('publisherId', data.publisherId)
|
||||
commit('roles', data.roles)
|
||||
@ -85,6 +93,8 @@ export const actions = {
|
||||
commit('firstName', '')
|
||||
commit('lastName', '')
|
||||
commit('newsletterState', null)
|
||||
commit('gmsState', null)
|
||||
commit('gmsPublishName', null)
|
||||
commit('hasElopage', false)
|
||||
commit('publisherId', null)
|
||||
commit('roles', null)
|
||||
@ -117,6 +127,8 @@ try {
|
||||
tokenTime: null,
|
||||
roles: [],
|
||||
newsletterState: null,
|
||||
gmsAllowed: null,
|
||||
gmsPublishName: null,
|
||||
hasElopage: false,
|
||||
publisherId: null,
|
||||
hideAmountGDD: null,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user