- DashBoard, Profile, Order Menu

This commit is contained in:
Paolo Arena
2019-12-31 00:44:43 +01:00
parent 9e5bd85328
commit 4a20dca54a
20 changed files with 347 additions and 212 deletions

View File

@@ -8,7 +8,7 @@
borderless borderless
:label="label" :label="label"
:bg-color="bgcolor" :bg-color="bgcolor"
:disable="disable" :readonly="true"
:dense="dense" :dense="dense"
mask="####-##-## ##:##" mask="####-##-## ##:##"
debounce="500" debounce="500"

View File

@@ -41,6 +41,17 @@ export default class CMyFieldDb extends MixinBase {
// console.log('created', this.myvalue) // console.log('created', this.myvalue)
} }
public getclassCol(col) {
if (col) {
let mycl = (this.disable || col.disable) ? '' : 'colmodif '
mycl += (col.fieldtype === tools.FieldType.date) ? ' coldate flex flex-container ' : ''
return mycl
} else {
return ''
}
}
public visuValByType(val) { public visuValByType(val) {
if (this.col.fieldtype === tools.FieldType.date) { if (this.col.fieldtype === tools.FieldType.date) {
if (val === undefined) { if (val === undefined) {

View File

@@ -2,13 +2,13 @@
<div class="text-center"> <div class="text-center">
<div class="row items-center justify-center q-gutter-md q-ma-xs"> <div class="row items-center justify-center q-gutter-md q-ma-xs">
<div class="q-ma-xs"> <div class="q-ma-xs">
<q-field rounded outlined bg-color="orange-3" dense> <q-field rounded outlined bg-color="orange-3" dense style="min-width:110px;">
<template v-slot:control> <template v-slot:control>
<div class="self-center full-width no-outline" tabindex="0">{{title}}</div> <div class="self-center full-width no-outline text-center" tabindex="0">{{title}}</div>
</template> </template>
</q-field> </q-field>
</div> </div>
<div class="q-ma-sm q-pa-sm colmodif col-grow rounded-borders " style="border: 1px solid #bbb"> <div :class="getclassCol(col) + ` q-ma-sm q-pa-sm col-grow rounded-borders`" style="border: 1px solid #bbb">
<div v-if="type === tools.FieldType.date"> <div v-if="type === tools.FieldType.date">
<CDateTime <CDateTime
:label="col.label" :label="col.label"
@@ -33,12 +33,13 @@
<!-- Show Value --> <!-- Show Value -->
<div v-else-if="col.fieldtype === tools.FieldType.nationality"> <div v-else-if="col.fieldtype === tools.FieldType.nationality">
<q-input <q-input
input-class="cursor-pointer" input-class="cursor-pointer text-center"
:readonly="true" :readonly="true"
v-model="countryname" v-model="countryname"
rounded outlined rounded
dense
debounce="1000" debounce="1000"
:label="$t('reg.nationality')"> >
<div class="hidden"> <div class="hidden">
<vue-country-code <vue-country-code
@@ -81,7 +82,7 @@
</div> </div>
<q-popup-edit <q-popup-edit
v-if="canEdit && type !== tools.FieldType.boolean" v-if="(canEdit && type !== tools.FieldType.boolean) && !disable"
v-model="myvalue" v-model="myvalue"
:disable="col.disable" :disable="col.disable"
:title="col.title" :title="col.title"
@@ -96,6 +97,7 @@
</div> </div>
<div v-else-if="type === tools.FieldType.string"> <div v-else-if="type === tools.FieldType.string">
<q-input v-model="myvalue" <q-input v-model="myvalue"
autogrow autogrow
@keyup.enter.stop @keyup.enter.stop
autofocus> autofocus>
@@ -143,9 +145,9 @@
<q-input <q-input
v-model="countryname" v-model="countryname"
:readonly="true" :readonly="true"
rounded outlined rounded dense
debounce="1000" debounce="1000"
:label="$t('reg.nationality')"> :label="title">
<template v-slot:prepend> <template v-slot:prepend>
<div style="font-size: 1rem;"> <div style="font-size: 1rem;">

View File

@@ -139,9 +139,9 @@
<q-input <q-input
v-model="countryname" v-model="countryname"
:readonly="true" :readonly="true"
rounded outlined rounded dense
debounce="1000" debounce="1000"
:label="$t('reg.nationality')"> >
<template v-slot:prepend> <template v-slot:prepend>
<div style="font-size: 1rem;"> <div style="font-size: 1rem;">

View File

@@ -1,39 +1,43 @@
import { ISignupOptions } from 'model' import { ISignupOptions } from 'model'
import { email, minLength, required, sameAs } from 'vuelidate/lib/validators' import { email, minLength, required, sameAs } from 'vuelidate/lib/validators'
// import { ValidationRuleset } from 'vuelidate' // import { ValidationRuleset } from 'vuelidate'
import { complexity, registeredemail, registereduser } from '../../validation' import { complexity, registeredemail, registereduser, aportadorexist } from '../../validation'
export interface TSignup { signup: ISignupOptions, validationGroup: string[] } export interface TSignup { signup: ISignupOptions, validationGroup: string[] }
export const validations = { export const validations = {
signup: { signup: {
repeatPassword: { repeatPassword: {
required, required,
sameAsPassword: sameAs('password') sameAsPassword: sameAs('password')
}, },
password: { password: {
complexity, required,
required, minLength: minLength(8),
minLength: minLength(8) complexity
}, },
username: { username: {
registereduser, required,
required, minLength: minLength(6),
minLength: minLength(6) registereduser
}, },
name: { name: {
required required
}, },
surname: { surname: {
required required
}, },
email: { email: {
email, email,
registeredemail, registeredemail,
required required
}, },
terms: { terms: {
required required
} },
aportador_solidario: {
aportadorexist,
required
} }
}
} }

View File

@@ -31,12 +31,4 @@
border-radius: 32px; border-radius: 32px;
} }
.clAportador{
background-color: lightblue;
border-radius: 32px;
}
.q-field--readonly {
border: 1px solid rgba(0,0,0,0.2);
border-radius: 32px;
}

View File

@@ -17,6 +17,8 @@ import { serv_constants } from '@src/store/Modules/serv_constants'
import VueCountryCode from 'vue-country-code' import VueCountryCode from 'vue-country-code'
import { CTitleBanner } from '../CTitleBanner' import { CTitleBanner } from '../CTitleBanner'
import { registereduser } from '../../validation'
import MixinBase from '../../mixins/mixin-base'
Vue.use(VueCountryCode) Vue.use(VueCountryCode)
// import {Loading, QSpinnerFacebook, QSpinnerGears} from 'quasar' // import {Loading, QSpinnerFacebook, QSpinnerGears} from 'quasar'
@@ -28,7 +30,7 @@ Vue.use(VueCountryCode)
components: { Logo, CTitleBanner } components: { Logo, CTitleBanner }
}) })
export default class CSignUp extends Vue { export default class CSignUp extends MixinBase {
@Prop({ required: false, default: false }) public showadultcheck: boolean @Prop({ required: false, default: false }) public showadultcheck: boolean
@Prop({ required: false, default: false }) public showcell: boolean @Prop({ required: false, default: false }) public showcell: boolean
public $v public $v
@@ -48,17 +50,21 @@ export default class CSignUp extends Vue {
password: process.env.TEST_PASSWORD || '', password: process.env.TEST_PASSWORD || '',
repeatPassword: process.env.TEST_PASSWORD || '', repeatPassword: process.env.TEST_PASSWORD || '',
terms: !process.env.PROD, terms: !process.env.PROD,
profile: DefaultProfile profile: DefaultProfile,
aportador_solidario: ''
} }
public created() { public created() {
this.$v.$reset() this.$v.$reset()
this.signup.aportador_solidario = tools.getCookie(tools.APORTADOR_SOLIDARIO, this.$route.params.invited || process.env.TEST_APORTADOR) this.signup.aportador_solidario = this.$route.params.invited || process.env.TEST_APORTADOR
this.$v.signup.aportador_solidario.$touch()
} }
@Watch('$route.params.invited') @Watch('$route.params.invited')
public changeaportador() { public changeaportador() {
console.log('changeaportador', this.$route.params.invited)
if (!this.signup.aportador_solidario) if (!this.signup.aportador_solidario)
this.signup.aportador_solidario = this.$route.params.invited this.signup.aportador_solidario = this.$route.params.invited
} }
@@ -129,11 +135,27 @@ export default class CSignUp extends Vue {
} }
} }
if (!item.minLength) { return this.$t('reg.err.atleast') + ` ${item.$params.minLength.min} ` + this.$t('reg.err.char') } console.log('item', item)
if (!item.complexity) { return this.$t('reg.err.complexity') }
if (item.minLength !== undefined) {
if (!item.minLength) {
return this.$t('reg.err.atleast') + ` ${item.$params.minLength.min} ` + this.$t('reg.err.char')
}
}
if (item.complexity !== undefined) {
if (!item.complexity) {
return this.$t('reg.err.complexity')
}
}
// if (!item.maxLength) { return this.$t('reg.err.notmore') + ` ${item.$params.maxLength.max} ` + this.$t('reg.err.char') } // if (!item.maxLength) { return this.$t('reg.err.notmore') + ` ${item.$params.maxLength.max} ` + this.$t('reg.err.char') }
if (!item.required) { return this.$t('reg.err.required') } if (item.required !== undefined) {
if (!item.required) {
return this.$t('reg.err.required')
}
}
console.log(' ....avanti')
if (cosa === 'email') { if (cosa === 'email') {
// console.log("EMAIL " + item.isUnique); // console.log("EMAIL " + item.isUnique);
// console.log(item); // console.log(item);
@@ -141,11 +163,16 @@ export default class CSignUp extends Vue {
} else if (cosa === 'username') { } else if (cosa === 'username') {
// console.log(item); // console.log(item);
if (!item.isUnique) { return this.$t('reg.err.duplicate_username') } if (!item.isUnique) { return this.$t('reg.err.duplicate_username') }
} else if (cosa === 'aportador_solidario') {
// console.log(item);
if (!item.aportadorexist) {
console.log('!item.aportadorexist !')
return this.$t('reg.err.aportador_not_exist')
}
} else if ((cosa === 'name') || (cosa === 'surname')) { } else if ((cosa === 'name') || (cosa === 'surname')) {
// console.log(item); // console.log(item);
} }
return '' return ''
} catch (error) { } catch (error) {
// console.log("ERR : " + error); // console.log("ERR : " + error);
@@ -188,6 +215,9 @@ export default class CSignUp extends Vue {
return return
} }
this.signup.name = tools.CapitalizeAllWords(this.signup.name)
this.signup.surname = tools.CapitalizeAllWords(this.signup.surname)
this.$q.loading.show({ message: this.$t('reg.incorso') }) this.$q.loading.show({ message: this.$t('reg.incorso') })
console.log(this.signup) console.log(this.signup)
@@ -214,4 +244,8 @@ export default class CSignUp extends Vue {
this.countryname = name this.countryname = name
} }
public inputUsername(value){
this.signup.username = value.trim()
}
} }

View File

@@ -8,13 +8,18 @@
<!--Prova URL : {{env('PROVA_PAOLO')}}--> <!--Prova URL : {{env('PROVA_PAOLO')}}-->
<div class="q-gutter-xs"> <div class="q-gutter-sm">
<q-input <q-input
class="clAportador" bg-color="lightblue"
:readonly="true" :readonly="true"
v-model="signup.aportador_solidario" v-model="signup.aportador_solidario"
rounded outlined dense rounded outlined
@blur="$v.signup.aportador_solidario.$touch"
:error="$v.signup.aportador_solidario.$error"
:error-message="errorMsg('aportador_solidario', $v.signup.aportador_solidario)"
debounce="1000"
:label="$t('reg.aportador_solidario')"> :label="$t('reg.aportador_solidario')">
@@ -45,6 +50,7 @@
rounded outlined rounded outlined
@blur="$v.signup.username.$touch" @blur="$v.signup.username.$touch"
:error="$v.signup.username.$error" :error="$v.signup.username.$error"
@keydown.space="(event) => event.preventDefault()"
debounce="1000" debounce="1000"
:error-message="errorMsg('username', $v.signup.username)" :error-message="errorMsg('username', $v.signup.username)"
@@ -142,7 +148,7 @@
</q-input> </q-input>
<br> <div v-if="!tools.isMobile()"><br></div>
<vue-tel-input <vue-tel-input
v-if="showcell" v-if="showcell"

View File

@@ -1,109 +1,126 @@
<template> <template>
<div class="no-border" v-if="isfinishLoading"> <div class="no-border" v-if="isfinishLoading">
<q-list class="rounded-borders text-primary"> <q-list class="rounded-borders text-primary">
<template v-for="(parent, index) in getmenu"> <template v-for="(parent, index) in getmenu">
<!--<div class="q-list-header">{{replaceUnderlineToSpace(index)}}</div>--> <!--<div class="q-list-header">{{replaceUnderlineToSpace(index)}}</div>-->
<div v-for="myitemmenu in static_data.routes" v-if="myitemmenu.active"> <div v-for="myitemmenu in static_data.routes" v-if="myitemmenu.active">
<div v-if="!!myitemmenu.routes2 && myitemmenu.inmenu && tools.visumenu(myitemmenu)"> <div v-if="!!myitemmenu.routes2 && myitemmenu.inmenu && tools.visumenu(myitemmenu)">
<span v-if="myitemmenu.isseparator">
<q-separator></q-separator>
</span>
<span v-else>
<q-expansion-item
:header-inset-level="myitemmenu.level_parent"
:content-inset-level="myitemmenu.level_parent"
:label="tools.getLabelByItem(myitemmenu, mythis)"
:icon="myitemmenu.materialIcon"
expand-icon-class="my-menu-separat"
:header-class="getmymenuclass(myitemmenu)"
active-class="my-menu-active">
<div v-for="(child2, index) in myitemmenu.routes2" :key="index" v-if="child2.active">
<span v-if="child2.isseparator">
<q-separator></q-separator>
</span>
<span v-else>
<q-expansion-item <q-expansion-item
:header-inset-level="myitemmenu.level_parent" v-if="!child2.routes2"
:content-inset-level="myitemmenu.level_parent" :to="getroute(child2)"
:label="tools.getLabelByItem(myitemmenu, mythis)" :header-inset-level="child2.level_child"
:icon="myitemmenu.materialIcon" :duration="300"
expand-icon-class="my-menu-separat" :icon="child2.materialIcon"
:header-class="getmymenuclass(myitemmenu)" active-class="my-menu-active"
active-class="my-menu-active"> expand-icon-class="my-menu-icon-none"
class="item item-link drawer-closer cursor-pointer my-menu"
<div v-for="(child2, index) in myitemmenu.routes2" :key="index"> :label="tools.getLabelByItem(child2, mythis)">
<q-expansion-item v-if="!!child2.routes2 && child3.active"
v-for="(child3, index) in child2.routes2"
:key="index"
:to="getroute(child3)"
:header-inset-level="child3.level_child"
:duration="300"
:icon="child3.materialIcon"
:expand-icon="child3.icon"
expand-icon-class="my-menu-separat"
active-class="my-menu-active"
class="item item-link drawer-closer cursor-pointer my-menu"
:label="tools.getLabelByItem(child3, mythis)">
</q-expansion-item>
</q-expansion-item>
<q-expansion-item
v-else
:header-inset-level="child2.level_parent"
:content-inset-level="child2.level_parent"
:label="tools.getLabelByItem(child2, mythis)"
:icon="child2.materialIcon"
expand-icon-class="my-menu-separat"
:header-class="getmymenuclass(child2)"
active-class="my-menu-active">
<div v-for="(child3, index) in child2.routes2" :key="index" v-if="child3.active">
<q-expansion-item <q-expansion-item
v-if="!child2.routes2" :to="getroute(child3)"
:to="getroute(child2)" :header-inset-level="child3.level_child"
:header-inset-level="child2.level_child" :duration="300"
:duration="300" :icon="child3.materialIcon"
:icon="child2.materialIcon" active-class="my-menu-active"
active-class="my-menu-active" expand-icon-class="my-menu-icon-none"
expand-icon-class="my-menu-icon-none" class="item item-link drawer-closer cursor-pointer my-menu"
class="item item-link drawer-closer cursor-pointer my-menu" :label="tools.getLabelByItem(child3, mythis)">
:label="tools.getLabelByItem(child2, mythis)"> <q-expansion-item v-if="!!child3.routes2 && child3.active"
<q-expansion-item v-if="!!child2.routes2" v-for="(child3, index) in child2.routes2" v-for="(child4, index) in child3.routes2"
:key="index" :key="index"
:to="getroute(child3)" :to="getroute(child4)"
:header-inset-level="child3.level_child" :header-inset-level="child4.level_child"
:duration="300" :duration="300"
:icon="child3.materialIcon" :icon="child4.materialIcon"
:expand-icon="child3.icon" :expand-icon="child4.icon"
expand-icon-class="my-menu-separat" expand-icon-class="my-menu-separat"
active-class="my-menu-active" active-class="my-menu-active"
class="item item-link drawer-closer cursor-pointer my-menu" class="item item-link drawer-closer cursor-pointer my-menu"
:label="tools.getLabelByItem(child3, mythis)"> :label="tools.getLabelByItem(child4, mythis)">
</q-expansion-item> </q-expansion-item>
</q-expansion-item> </q-expansion-item>
<q-expansion-item
v-else
:header-inset-level="child2.level_parent"
:content-inset-level="child2.level_parent"
:label="tools.getLabelByItem(child2, mythis)"
:icon="child2.materialIcon"
expand-icon-class="my-menu-separat"
:header-class="getmymenuclass(child2)"
active-class="my-menu-active">
<div v-for="(child3, index) in child2.routes2" :key="index">
<q-expansion-item
:to="getroute(child3)"
:header-inset-level="child3.level_child"
:duration="300"
:icon="child3.materialIcon"
active-class="my-menu-active"
expand-icon-class="my-menu-icon-none"
class="item item-link drawer-closer cursor-pointer my-menu"
:label="tools.getLabelByItem(child3, mythis)">
<q-expansion-item v-if="!!child3.routes2" v-for="(child3, index) in child3.routes2"
:key="index"
:to="getroute(child3)"
:header-inset-level="child3.level_child"
:duration="300"
:icon="child3.materialIcon"
:expand-icon="child3.icon"
expand-icon-class="my-menu-separat"
active-class="my-menu-active"
class="item item-link drawer-closer cursor-pointer my-menu"
:label="tools.getLabelByItem(child3, mythis)">
</q-expansion-item>
</q-expansion-item>
</div>
</q-expansion-item>
</div> </div>
</q-expansion-item> </q-expansion-item>
</div> </span>
<div v-else> </div>
<div v-if="myitemmenu.inmenu && !myitemmenu.submenu && tools.visumenu(myitemmenu)"> </q-expansion-item>
<q-slide-transition :duration=200> </span>
<div v-show="true"> </div>
<q-expansion-item <div v-else>
:to="getroute(myitemmenu)" <div v-if="myitemmenu.inmenu && !myitemmenu.submenu && tools.visumenu(myitemmenu)">
:header-inset-level="myitemmenu.level_parent" <q-slide-transition :duration=200>
:content-inset-level="myitemmenu.level_parent" <div v-show="true">
:label="tools.getLabelByItem(myitemmenu, mythis)" <span v-if="myitemmenu.isseparator">
:icon="myitemmenu.materialIcon" <q-separator inset></q-separator>
expand-icon="none" </span>
header-class="my-menu" <span v-else>
active-class="my-menu-active"> <q-expansion-item
</q-expansion-item> :to="getroute(myitemmenu)"
</div> :header-inset-level="myitemmenu.level_parent"
</q-slide-transition> :content-inset-level="myitemmenu.level_parent"
</div> :label="tools.getLabelByItem(myitemmenu, mythis)"
</div> :icon="myitemmenu.materialIcon"
expand-icon="none"
header-class="my-menu"
active-class="my-menu-active">
</q-expansion-item>
</span>
</div> </div>
</template> </q-slide-transition>
</q-list> </div>
</div> </div>
</div>
</template>
</q-list>
</div>
</template> </template>
<script lang="ts" src="./menuOne.ts"> <script lang="ts" src="./menuOne.ts">
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import './menuOne.scss'; @import './menuOne.scss';
</style> </style>

View File

@@ -78,6 +78,10 @@ export default class MixinUsers extends Vue {
return UserStore.state.my.verified_email return UserStore.state.my.verified_email
} }
get MadeGift() {
return UserStore.state.my.made_gift
}
get Email() { get Email() {
return UserStore.state.my.email return UserStore.state.my.email
} }

View File

@@ -54,6 +54,7 @@ export interface IMyPage {
author_username?: string author_username?: string
title?: string title?: string
icon?: string icon?: string
order?: number
path?: string path?: string
keywords?: string keywords?: string
description?: string description?: string
@@ -171,11 +172,13 @@ export interface IMenuList {
export interface IListRoutes { export interface IListRoutes {
active?: boolean active?: boolean
order: number
path: string path: string
name: string name: string
materialIcon?: string materialIcon?: string
component?: Component component?: Component
reqauth?: boolean reqauth?: boolean
isseparator?: boolean
inmenu?: boolean inmenu?: boolean
solotitle?: boolean solotitle?: boolean
infooter?: boolean infooter?: boolean

View File

@@ -14,6 +14,7 @@ export interface IUserProfile {
cell?: string cell?: string
dateofbirth?: Date dateofbirth?: Date
sex?: ESexType sex?: ESexType
country_pay?: string
email_paypal?: string email_paypal?: string
username_telegram?: string username_telegram?: string
} }
@@ -28,9 +29,11 @@ export interface IUserFields {
ipaddr?: string ipaddr?: string
perm?: number perm?: number
verified_email?: boolean verified_email?: boolean
made_gift?: boolean
tokens?: IToken[] tokens?: IToken[]
lasttimeonline?: Date lasttimeonline?: Date
profile?: IUserProfile profile?: IUserProfile
downline?: IUserFields[]
} }
/* /*

View File

@@ -8,6 +8,7 @@ const msgglobal = {
showprevedit: 'Mostra Eventi Passati', showprevedit: 'Mostra Eventi Passati',
columns: 'Colonne', columns: 'Colonne',
tableslist: 'Tabelle', tableslist: 'Tabelle',
nodata: 'Nessun Dato'
}, },
otherpages: { otherpages: {
error404: 'error404', error404: 'error404',
@@ -37,6 +38,7 @@ const msgglobal = {
}, },
dialog: { dialog: {
close: 'Chiudi', close: 'Chiudi',
copyclipboard: 'Copiato negli appunti',
ok: 'Ok', ok: 'Ok',
yes: 'Si', yes: 'Si',
no: 'No', no: 'No',
@@ -109,19 +111,22 @@ const msgglobal = {
}, },
reg: { reg: {
aportador_solidario: 'Chi ti ha Invitato', aportador_solidario: 'Chi ti ha Invitato',
reflink: 'Link da condividere ai tuoi amici:',
page_title: 'Registrazione', page_title: 'Registrazione',
made_gift: 'Doné',
incorso: 'Registrazione in corso...', incorso: 'Registrazione in corso...',
richiesto: 'Campo Richiesto', richiesto: 'Campo Richiesto',
email: 'Email', email: 'Email',
intcode_cell: 'Prefisso Int.', intcode_cell: 'Prefisso Int.',
cell: 'Cellulare', cell: 'Cellulare Telegram',
nationality: 'Nazionalità', nationality: 'Nazionalità',
email_paypal: 'Email Paypal', email_paypal: 'Email Paypal',
country_pay: 'Paese di Destinazione Pagamenti',
username_telegram: 'Username Telegram', username_telegram: 'Username Telegram',
img: 'Immagine', img: 'Immagine',
date_reg: 'Data Reg.', date_reg: 'Data Reg.',
perm: 'Permessi', perm: 'Permessi',
username: 'Nome Utente', username: 'Username',
name: 'Nome', name: 'Nome',
surname: 'Cognome', surname: 'Cognome',
username_login: 'Nome Utente o email', username_login: 'Nome Utente o email',
@@ -145,6 +150,7 @@ const msgglobal = {
terms: 'Devi accettare le condizioni, per continuare.', terms: 'Devi accettare le condizioni, per continuare.',
duplicate_email: 'l\'Email è già stata registrata', duplicate_email: 'l\'Email è già stata registrata',
duplicate_username: 'L\'Username è stato già utilizzato', duplicate_username: 'L\'Username è stato già utilizzato',
aportador_not_exist: 'L\'Username di chi ti ha invitato non è presente. Contattaci.',
sameaspassword: 'Le password devono essere identiche', sameaspassword: 'Le password devono essere identiche',
}, },
tips: { tips: {
@@ -382,6 +388,7 @@ const msgglobal = {
editvalues: 'Cambiar valores', editvalues: 'Cambiar valores',
addrecord: 'Agregar fila', addrecord: 'Agregar fila',
showprevedit: 'Mostrar eventos pasados', showprevedit: 'Mostrar eventos pasados',
nodata: 'Sin datos',
columns: 'Columnas', columns: 'Columnas',
tableslist: 'Tablas' tableslist: 'Tablas'
}, },
@@ -410,6 +417,7 @@ const msgglobal = {
}, },
dialog: { dialog: {
close: 'Cerrar', close: 'Cerrar',
copyclipboard: 'Copiado al portapapeles',
ok: 'Vale', ok: 'Vale',
yes: 'Sí', yes: 'Sí',
no: 'No', no: 'No',
@@ -482,19 +490,22 @@ const msgglobal = {
}, },
reg: { reg: {
aportador_solidario: 'Aportador Solidario', aportador_solidario: 'Aportador Solidario',
reflink: 'Enlaces para compartir con tus amigos:',
page_title: 'Registro', page_title: 'Registro',
made_gift: 'Don',
incorso: 'Registro en curso...', incorso: 'Registro en curso...',
richiesto: 'Campo requerido', richiesto: 'Campo requerido',
email: 'Email', email: 'Email',
intcode_cell: 'Prefijo Int.', intcode_cell: 'Prefijo Int.',
cell: 'Móvil', cell: 'Móvil Telegram',
nationality: 'Nacionalidad', nationality: 'Nacionalidad',
email_paypal: 'Email Paypal', email_paypal: 'Email Paypal',
country_pay: 'País del Pagos de destino',
username_telegram: 'Usuario Telegram', username_telegram: 'Usuario Telegram',
img: 'File image', img: 'File image',
date_reg: 'Fecha Reg.', date_reg: 'Fecha Reg.',
perm: 'Permisos', perm: 'Permisos',
username: 'Nombre usuario', username: 'Username',
name: 'Nombre', name: 'Nombre',
surname: 'Apellido', surname: 'Apellido',
username_login: 'Nombre usuario o email', username_login: 'Nombre usuario o email',
@@ -518,6 +529,7 @@ const msgglobal = {
terms: 'Debes aceptar las condiciones, para continuar..', terms: 'Debes aceptar las condiciones, para continuar..',
duplicate_email: 'La email ya ha sido registrada', duplicate_email: 'La email ya ha sido registrada',
duplicate_username: 'El nombre de usuario ya ha sido utilizado', duplicate_username: 'El nombre de usuario ya ha sido utilizado',
aportador_not_exist: 'El nombre de usuario de la persona que lo invitó no está presente. Contactanos.',
sameaspassword: 'Las contraseñas deben ser idénticas', sameaspassword: 'Las contraseñas deben ser idénticas',
} }
}, },
@@ -746,6 +758,7 @@ const msgglobal = {
editvalues: 'Changer les valeurs', editvalues: 'Changer les valeurs',
addrecord: 'Ajouter une ligne', addrecord: 'Ajouter une ligne',
showprevedit: 'Afficher les événements passés', showprevedit: 'Afficher les événements passés',
nodata: 'Pas de données',
columns: 'Colonnes', columns: 'Colonnes',
tableslist: 'Tables', tableslist: 'Tables',
}, },
@@ -774,6 +787,7 @@ const msgglobal = {
}, },
dialog: { dialog: {
close: 'Fermer', close: 'Fermer',
copyclipboard: 'Copié dans le presse-papiers',
ok: 'Bien', ok: 'Bien',
yes: 'Oui', yes: 'Oui',
no: 'Non', no: 'Non',
@@ -846,13 +860,15 @@ const msgglobal = {
}, },
reg: { reg: {
aportador_solidario: 'Contributeur de solidarité', aportador_solidario: 'Contributeur de solidarité',
reflink: 'Liens à partager avec vos amis:',
incorso: 'Inscription en cours...', incorso: 'Inscription en cours...',
richiesto: 'Champ obligatoire', richiesto: 'Champ obligatoire',
email: 'Email', email: 'Email',
intcode_cell: 'Préfixe int.', intcode_cell: 'Préfixe int.',
cell: 'Téléphone', cell: 'Téléphone Telegram',
nationality: 'Nationalité', nationality: 'Nationalité',
email_paypal: 'Email Paypal', email_paypal: 'Email Paypal',
country_pay: 'Pays de destination Paiements',
username_telegram: 'Nom d\'utilisateur du Telegram', username_telegram: 'Nom d\'utilisateur du Telegram',
img: 'Fichier image', img: 'Fichier image',
date_reg: 'Date Inscript.', date_reg: 'Date Inscript.',
@@ -881,6 +897,7 @@ const msgglobal = {
terms: 'Vous devez accepter les conditions, pour continuer..', terms: 'Vous devez accepter les conditions, pour continuer..',
duplicate_email: 'L\'email a déjà été enregistré', duplicate_email: 'L\'email a déjà été enregistré',
duplicate_username: 'Le nom d\'utilisateur a déjà été utilisé', duplicate_username: 'Le nom d\'utilisateur a déjà été utilisé',
aportador_not_exist: 'Le nom d\'utilisateur de la personne qui vous a invité n\'est pas présent. Contactez-nous.',
sameaspassword: 'Les mots de passe doivent être identiques', sameaspassword: 'Les mots de passe doivent être identiques',
} }
}, },
@@ -1109,6 +1126,7 @@ const msgglobal = {
editvalues: 'Edit Values', editvalues: 'Edit Values',
addrecord: 'Add Row', addrecord: 'Add Row',
showprevedit: 'Show Past Events', showprevedit: 'Show Past Events',
nodata: 'No data',
columns: 'Columns', columns: 'Columns',
tableslist: 'Tables', tableslist: 'Tables',
}, },
@@ -1137,6 +1155,7 @@ const msgglobal = {
}, },
dialog: { dialog: {
close: 'Close', close: 'Close',
copyclipboard: 'Copied to clipboard',
ok: 'Ok', ok: 'Ok',
yes: 'Yes', yes: 'Yes',
no: 'No', no: 'No',
@@ -1209,13 +1228,16 @@ const msgglobal = {
}, },
reg: { reg: {
aportador_solidario: 'Solidarity Contributor', aportador_solidario: 'Solidarity Contributor',
reflink: 'Links to share to your friends:',
incorso: 'Registration please wait...', incorso: 'Registration please wait...',
made_gift: 'Donated',
richiesto: 'Field Required', richiesto: 'Field Required',
email: 'Email', email: 'Email',
intcode_cell: 'International Code', intcode_cell: 'International Code',
cell: 'Mobile Phone', cell: 'Mobile Telegram',
nationality: 'Nationality', nationality: 'Nationality',
email_paypal: 'Email Paypal', email_paypal: 'Email Paypal',
country_pay: 'Country of Destination Payments',
username_telegram: 'Username Telegram', username_telegram: 'Username Telegram',
img: 'File Image', img: 'File Image',
date_reg: 'Reg. Date', date_reg: 'Reg. Date',
@@ -1244,6 +1266,7 @@ const msgglobal = {
terms: 'You need to agree with the terms & conditions.', terms: 'You need to agree with the terms & conditions.',
duplicate_email: 'Email was already registered', duplicate_email: 'Email was already registered',
duplicate_username: 'Username is already taken', duplicate_username: 'Username is already taken',
aportador_not_exist: 'The username of the person who invited you is not present. Contact us.',
sameaspassword: 'Passwords must be identical', sameaspassword: 'Passwords must be identical',
} }
}, },
@@ -1471,6 +1494,7 @@ const msgglobal = {
editvalues: 'Edit Values', editvalues: 'Edit Values',
addrecord: 'Add Row', addrecord: 'Add Row',
showprevedit: 'Show Past Events', showprevedit: 'Show Past Events',
nodata: 'No data',
columns: 'Columns', columns: 'Columns',
tableslist: 'Tables', tableslist: 'Tables',
}, },
@@ -1499,6 +1523,7 @@ const msgglobal = {
}, },
dialog: { dialog: {
close: 'Close', close: 'Close',
copyclipboard: 'Copied to clipboard',
ok: 'Ok', ok: 'Ok',
yes: 'Yes', yes: 'Yes',
no: 'No', no: 'No',
@@ -1571,14 +1596,17 @@ const msgglobal = {
}, },
reg: { reg: {
aportador_solidario: 'Solidarity Contributor', aportador_solidario: 'Solidarity Contributor',
reflink: 'Links to share to your friends:',
page_title: 'Registration', page_title: 'Registration',
made_gift: 'Donated',
incorso: 'Registration please wait...', incorso: 'Registration please wait...',
richiesto: 'Field Required', richiesto: 'Field Required',
email: 'Email', email: 'Email',
intcode_cell: 'International Code', intcode_cell: 'International Code',
cell: 'Mobile Phone', cell: 'Mobile Telegram',
nationality: 'Nationality', nationality: 'Nationality',
email_paypal: 'Email Paypal', email_paypal: 'Email Paypal',
country_pay: 'Country of Destination Payments',
username_telegram: 'Username Telegram', username_telegram: 'Username Telegram',
img: 'File Image', img: 'File Image',
date_reg: 'Reg. Date', date_reg: 'Reg. Date',
@@ -1607,6 +1635,7 @@ const msgglobal = {
terms: 'You need to agree with the terms & conditions.', terms: 'You need to agree with the terms & conditions.',
duplicate_email: 'Email was already registered', duplicate_email: 'Email was already registered',
duplicate_username: 'Username is already taken', duplicate_username: 'Username is already taken',
aportador_not_exist: 'The username of the person who invited you is not present in the archive. Verify that it is correct.',
sameaspassword: 'Passwords must be identical', sameaspassword: 'Passwords must be identical',
} }
}, },

View File

@@ -837,6 +837,7 @@ namespace Actions {
if (page.active) { if (page.active) {
arrpagesroute.push({ arrpagesroute.push({
active: true, active: true,
order: page.order,
path: '/' + page.path, path: '/' + page.path,
name: undefined, name: undefined,
text: page.title, text: page.title,
@@ -852,6 +853,7 @@ namespace Actions {
const last = { const last = {
active: true, active: true,
order: 10000,
path: '*', path: '*',
materialIcon: 'fas fa-calendar-plus', materialIcon: 'fas fa-calendar-plus',
name: 'otherpages.error404def', name: 'otherpages.error404def',
@@ -860,7 +862,10 @@ namespace Actions {
infooter: false infooter: false
} }
static_data.routes = [...static_data.routes, ...arrpagesroute, last] static_data.routes = [...static_data.baseroutes, ...arrpagesroute, last]
// Sort array
static_data.routes = static_data.routes.sort((a, b) => a.order - b.order)
router.addRoutes([...arrpagesroute, last]) router.addRoutes([...arrpagesroute, last])
} }

View File

@@ -20,7 +20,7 @@ import { shared_consts } from '../../common/shared_vuejs'
const bcrypt = require('bcryptjs') const bcrypt = require('bcryptjs')
const DefaultUser: IUserFields = { export const DefaultUser: IUserFields = {
_id: '', _id: '',
email: '', email: '',
username: '', username: '',
@@ -29,9 +29,11 @@ const DefaultUser: IUserFields = {
password: '', password: '',
tokens: [], tokens: [],
verified_email: false, verified_email: false,
made_gift: false,
profile: { profile: {
img: '' img: ''
} },
downline: []
} }
export const DefaultProfile: IUserProfile = { export const DefaultProfile: IUserProfile = {
@@ -41,6 +43,7 @@ export const DefaultProfile: IUserProfile = {
cell: '', cell: '',
dateofbirth: new Date(), dateofbirth: new Date(),
sex: 0, sex: 0,
country_pay: '',
email_paypal: '', email_paypal: '',
username_telegram: '' username_telegram: ''
} }
@@ -166,6 +169,12 @@ namespace Getters {
return '' return ''
} }
}, 'getImgByUsername') }, 'getImgByUsername')
const getRefLink = b.read((mystate: IUserState) => (): string => {
// console.log('myrec', myrec)
return tools.getUrlSite() + '/signup/' + mystate.my.username
}, 'getRefLink')
export const getters = { export const getters = {
get isUserInvalid() { get isUserInvalid() {
@@ -207,6 +216,9 @@ namespace Getters {
get getUsersList() { get getUsersList() {
return getUsersList() return getUsersList()
}, },
get getRefLink() {
return getRefLink()
},
} }
} }
@@ -263,6 +275,7 @@ namespace Mutations {
localStorage.setItem(tools.localStorage.expirationDate, expirationDate.toString()) localStorage.setItem(tools.localStorage.expirationDate, expirationDate.toString())
localStorage.setItem(tools.localStorage.isLogged, String(true)) localStorage.setItem(tools.localStorage.isLogged, String(true))
localStorage.setItem(tools.localStorage.verified_email, String(myuser.verified_email)) localStorage.setItem(tools.localStorage.verified_email, String(myuser.verified_email))
localStorage.setItem(tools.localStorage.made_gift, String(myuser.made_gift))
localStorage.setItem(tools.localStorage.wasAlreadySubOnDb, String(GlobalStore.state.wasAlreadySubOnDb)) localStorage.setItem(tools.localStorage.wasAlreadySubOnDb, String(GlobalStore.state.wasAlreadySubOnDb))
} }
@@ -323,6 +336,7 @@ namespace Mutations {
mystate.my.surname = '' mystate.my.surname = ''
resetArrToken(mystate.my.tokens) resetArrToken(mystate.my.tokens)
mystate.my.verified_email = false mystate.my.verified_email = false
mystate.my.made_gift = false
mystate.categorySel = 'personal' mystate.categorySel = 'personal'
mystate.servercode = 0 mystate.servercode = 0
@@ -482,7 +496,7 @@ namespace Actions {
// mutations.setServerCode(myres); // mutations.setServerCode(myres);
return res return res
}).catch((error) => { }).catch((error) => {
return { numtot: 0, numadded: 0, numalreadyexisted: 0} return { numtot: 0, numadded: 0, numalreadyexisted: 0 }
}) })
} }
@@ -518,18 +532,18 @@ namespace Actions {
return bcrypt.hash(authData.password, bcrypt.genSaltSync(12)) return bcrypt.hash(authData.password, bcrypt.genSaltSync(12))
.then((hashedPassword: string) => { .then((hashedPassword: string) => {
/* /*
const usertosend = { const usertosend = {
lang: mylang, lang: mylang,
email: authData.email, email: authData.email,
password: String(hashedPassword), password: String(hashedPassword),
username: authData.username, username: authData.username,
name: authData.name, name: authData.name,
surname: authData.surname surname: authData.surname
} }
console.log(usertosend) console.log(usertosend)
*/ */
authData.lang = mylang authData.lang = mylang
authData.password = String(hashedPassword) authData.password = String(hashedPassword)
@@ -689,6 +703,7 @@ namespace Actions {
localStorage.removeItem(tools.localStorage.isLogged) localStorage.removeItem(tools.localStorage.isLogged)
// localStorage.removeItem(rescodes.localStorage.leftDrawerOpen) // localStorage.removeItem(rescodes.localStorage.leftDrawerOpen)
localStorage.removeItem(tools.localStorage.verified_email) localStorage.removeItem(tools.localStorage.verified_email)
localStorage.removeItem(tools.localStorage.made_gift)
localStorage.removeItem(tools.localStorage.categorySel) localStorage.removeItem(tools.localStorage.categorySel)
localStorage.removeItem(tools.localStorage.wasAlreadySubOnDb) localStorage.removeItem(tools.localStorage.wasAlreadySubOnDb)
@@ -775,6 +790,7 @@ namespace Actions {
const name = String(localStorage.getItem(tools.localStorage.name)) const name = String(localStorage.getItem(tools.localStorage.name))
const surname = String(localStorage.getItem(tools.localStorage.surname)) const surname = String(localStorage.getItem(tools.localStorage.surname))
const verified_email = localStorage.getItem(tools.localStorage.verified_email) === 'true' const verified_email = localStorage.getItem(tools.localStorage.verified_email) === 'true'
const made_gift = localStorage.getItem(tools.localStorage.made_gift) === 'true'
const perm = parseInt(localStorage.getItem(tools.localStorage.perm), 10) const perm = parseInt(localStorage.getItem(tools.localStorage.perm), 10)
const img = String(localStorage.getItem(tools.localStorage.img)) const img = String(localStorage.getItem(tools.localStorage.img))
@@ -790,6 +806,7 @@ namespace Actions {
name, name,
surname, surname,
verified_email, verified_email,
made_gift,
perm, perm,
profile: { img } profile: { img }
}) })
@@ -809,6 +826,22 @@ namespace Actions {
} }
} }
async function getDashboard(context, paramquery) {
return await Api.SendReq('/dashboard', 'POST', paramquery)
.then((res) => {
if (res.status === 200) {
return res.data.dashboard
}
}).catch((error) => {
return {
aportador: {},
downline: []
}
})
}
/* /*
async function refreshUserInfos(){ async function refreshUserInfos(){
let {token, refresh_token} = JWT.fetch(); let {token, refresh_token} = JWT.fetch();
@@ -837,6 +870,7 @@ namespace Actions {
importemail: b.dispatch(importemail), importemail: b.dispatch(importemail),
newsletterload: b.dispatch(newsletterload), newsletterload: b.dispatch(newsletterload),
newsletter_setactivate: b.dispatch(newsletter_setactivate), newsletter_setactivate: b.dispatch(newsletter_setactivate),
getDashboard: b.dispatch(getDashboard),
} }
} }

View File

@@ -77,8 +77,10 @@ export const colgallery = [
export const colmypage = [ export const colmypage = [
AddCol({ name: 'title', label_trans: 'pages.title' }), AddCol({ name: 'title', label_trans: 'pages.title' }),
AddCol({ name: 'lang', label_trans: 'pages.lang' }),
AddCol({ name: 'path', label_trans: 'pages.path' }), AddCol({ name: 'path', label_trans: 'pages.path' }),
AddCol({ name: 'icon', label_trans: 'pages.icon' }), AddCol({ name: 'icon', label_trans: 'pages.icon' }),
AddCol({ name: 'order', label_trans: 'pages.order', fieldtype: tools.FieldType.number }),
AddCol({ name: 'keywords', label_trans: 'pages.keywords' }), AddCol({ name: 'keywords', label_trans: 'pages.keywords' }),
AddCol({ name: 'description', label_trans: 'pages.description' }), AddCol({ name: 'description', label_trans: 'pages.description' }),
AddCol({ name: 'heightimg', label_trans: 'pages.heightimg', fieldtype: tools.FieldType.number }), AddCol({ name: 'heightimg', label_trans: 'pages.heightimg', fieldtype: tools.FieldType.number }),
@@ -378,11 +380,13 @@ export const fieldsTable = {
AddCol({ name: 'name', label_trans: 'reg.name' }), AddCol({ name: 'name', label_trans: 'reg.name' }),
AddCol({ name: 'surname', label_trans: 'reg.surname' }), AddCol({ name: 'surname', label_trans: 'reg.surname' }),
AddCol({ name: 'email', label_trans: 'reg.email' }), AddCol({ name: 'email', label_trans: 'reg.email' }),
AddCol({ name: 'made_gift', label_trans: 'reg.made_gift', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'profile.nationality', field: 'profile', subfield: 'nationality', label_trans: 'reg.nationality', fieldtype: tools.FieldType.nationality }), AddCol({ name: 'profile.nationality', field: 'profile', subfield: 'nationality', label_trans: 'reg.nationality', fieldtype: tools.FieldType.nationality }),
AddCol({ name: 'profile.intcode_cell', field: 'profile', subfield: 'intcode_cell', label_trans: 'reg.intcode_cell', fieldtype: tools.FieldType.intcode }), AddCol({ name: 'profile.intcode_cell', field: 'profile', subfield: 'intcode_cell', label_trans: 'reg.intcode_cell', fieldtype: tools.FieldType.intcode }),
AddCol({ name: 'profile.iso2_cell', field: 'profile', subfield: 'iso2_cell', label_trans: 'reg.iso2_cell' }), AddCol({ name: 'profile.iso2_cell', field: 'profile', subfield: 'iso2_cell', label_trans: 'reg.iso2_cell' }),
AddCol({ name: 'profile.cell', field: 'profile', subfield: 'cell', label_trans: 'reg.cell', fieldtype: tools.FieldType.intcode }), AddCol({ name: 'profile.cell', field: 'profile', subfield: 'cell', label_trans: 'reg.cell', fieldtype: tools.FieldType.intcode }),
AddCol({ name: 'profile.email_paypal', field: 'profile', subfield: 'email_paypal', label_trans: 'reg.email_paypal' }), AddCol({ name: 'profile.email_paypal', field: 'profile', subfield: 'email_paypal', label_trans: 'reg.email_paypal' }),
AddCol({ name: 'profile.country_pay', field: 'profile', subfield: 'country_pay', label_trans: 'reg.country_pay', fieldtype: tools.FieldType.nationality }),
AddCol({ name: 'profile.username_telegram', field: 'profile', subfield: 'username_telegram', label_trans: 'reg.username_telegram' }), AddCol({ name: 'profile.username_telegram', field: 'profile', subfield: 'username_telegram', label_trans: 'reg.username_telegram' }),
AddCol({ name: 'profile.img', field: 'profile', subfield: 'img', label_trans: 'reg.img', sortable: false }), AddCol({ name: 'profile.img', field: 'profile', subfield: 'img', label_trans: 'reg.img', sortable: false }),
AddCol({ name: 'date_reg', label_trans: 'reg.date_reg', fieldtype: tools.FieldType.date }), AddCol({ name: 'date_reg', label_trans: 'reg.date_reg', fieldtype: tools.FieldType.date }),

View File

@@ -104,6 +104,7 @@ export const tools = {
localStorage: { localStorage: {
verified_email: 'vf', verified_email: 'vf',
made_gift: 'mg',
wasAlreadySubOnDb: 'sb', wasAlreadySubOnDb: 'sb',
categorySel: 'cs', categorySel: 'cs',
isLogged: 'ilog', isLogged: 'ilog',
@@ -1387,8 +1388,13 @@ export const tools = {
}, },
visumenu(elem) { // : IListRoutes visumenu(elem) { // : IListRoutes
return (elem.onlyAdmin && UserStore.state.isAdmin) || (elem.onlyManager && UserStore.state.isManager) let visu = ((elem.onlyAdmin && UserStore.state.isAdmin) || (elem.onlyManager && UserStore.state.isManager)
|| ((!elem.onlyAdmin) && (!elem.onlyManager)) || ((!elem.onlyAdmin) && (!elem.onlyManager))) && elem.active
if (elem.meta && elem.meta.requiresAuth) {
visu = visu && tools.isLoggedToSystem()
}
return visu
}, },
executefunc(myself: any, table, func: number, par: IParamDialog) { executefunc(myself: any, table, func: number, par: IParamDialog) {
@@ -2522,6 +2528,12 @@ export const tools = {
} }
, ,
getUrlSite() {
const url = window.location.href
const arr = url.split('/')
return arr[0] + '//' + arr[2]
},
SignIncheckErrors(mythis, riscode, ispageLogin ?: boolean) { SignIncheckErrors(mythis, riscode, ispageLogin ?: boolean) {
// console.log('SignIncheckErrors: ', riscode) // console.log('SignIncheckErrors: ', riscode)
try { try {
@@ -2874,6 +2886,17 @@ export const tools = {
isChristmasHoliday() { isChristmasHoliday() {
const now = new Date() const now = new Date()
return ((now.getMonth() === 11 && now.getDate() > 20) || (now.getMonth() === 0 && now.getDate() < 8)) return ((now.getMonth() === 11 && now.getDate() > 20) || (now.getMonth() === 0 && now.getDate() < 8))
},
CapitalizeAllWords(str) {
const splitStr = str.toLowerCase().split(' ')
for (var i = 0; i < splitStr.length; i++) {
// You do not need to check if i is larger than splitStr length, as your for does that for you
// Assign it back to the array
splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1)
}
// Directly return the joined string
return splitStr.join(' ')
} }
// getLocale() { // getLocale() {

View File

@@ -1,4 +1,5 @@
export { duplicate } from './duplicate' export { duplicate } from './duplicate'
export { registereduser } from './registereduser' export { registereduser } from './registereduser'
export { aportadorexist } from './aportadorexist'
export { registeredemail } from './registeredemail' export { registeredemail } from './registeredemail'
export { complexity } from './complexity' export { complexity } from './complexity'

View File

@@ -1,37 +0,0 @@
import { ISignupOptions } from 'model'
import { email, minLength, required, sameAs } from 'vuelidate/lib/validators'
// import { ValidationRuleset } from 'vuelidate'
import { complexity, registeredemail, registereduser } from '../../../validation'
export interface TSignup { signup: ISignupOptions, validationGroup: string[] }
export const validations = {
signup: {
repeatPassword: {
required,
sameAsPassword: sameAs('password')
},
password: {
complexity,
required
},
username: {
registereduser,
required
},
name: {
required
},
surname: {
required
},
email: {
email,
registeredemail,
required
},
terms: {
required
}
}
}

View File

@@ -20,8 +20,8 @@ export default class Signup extends Vue {
} }
public created() { public created() {
if (!tools.getCookie(tools.APORTADOR_SOLIDARIO, '')) // if (!tools.getCookie(tools.APORTADOR_SOLIDARIO, ''))
tools.setCookie(tools.APORTADOR_SOLIDARIO, this.$route.params.invited) // tools.setCookie(tools.APORTADOR_SOLIDARIO, this.$route.params.invited)
} }
} }