- Aggiunto Step: i 7 Requisiti degli invitati.
- Aggiornata la Lavagna (anche sul BOT). - Zoom solo 3 visibili.
This commit is contained in:
@@ -1,12 +0,0 @@
|
||||
import { ISignupOptions } from 'model'
|
||||
import { email, minLength, required, sameAs } from 'vuelidate/lib/validators'
|
||||
// import { ValidationRuleset } from 'vuelidate'
|
||||
import { complexity, registeredemail, registereduser, aportadorexist } from '../../validation'
|
||||
|
||||
export const validations = {
|
||||
|
||||
aportador_solidario: {
|
||||
aportadorexist,
|
||||
required
|
||||
}
|
||||
}
|
||||
@@ -16,14 +16,11 @@ import { CRequisito } from '../CRequisito'
|
||||
import translate from '../../globalroutines/util'
|
||||
import { tools } from '../../store/Modules/tools'
|
||||
import { lists } from '../../store/Modules/lists'
|
||||
import { validations } from './CMyDashboard-validate'
|
||||
import { validationMixin } from 'vuelidate'
|
||||
import { shared_consts } from '../../common/shared_vuejs'
|
||||
import { CMyRequirement } from '../CMyRequirement'
|
||||
|
||||
@Component({
|
||||
mixins: [validationMixin],
|
||||
validations,
|
||||
components: { CProfile, CTitleBanner, CMyFieldDb, CCopyBtn, CUserBadge, CLegenda, CRequisito }
|
||||
components: { CProfile, CTitleBanner, CMyFieldDb, CCopyBtn, CUserBadge, CLegenda, CRequisito, CMyRequirement }
|
||||
})
|
||||
|
||||
export default class CMyDashboard extends MixinUsers {
|
||||
@@ -45,122 +42,6 @@ export default class CMyDashboard extends MixinUsers {
|
||||
|
||||
@Prop({ required: true }) public username
|
||||
|
||||
|
||||
public arrrequisiti = [
|
||||
{
|
||||
icon: 'email',
|
||||
textlang: 'reg.verified_email',
|
||||
textadd(user) {
|
||||
return ''
|
||||
},
|
||||
isok(user) {
|
||||
if (user)
|
||||
return user.verified_email
|
||||
else
|
||||
return false
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
{
|
||||
icon: 'fab fa-telegram',
|
||||
textlang: 'reg.telegram',
|
||||
textadd(user) {
|
||||
return ''
|
||||
},
|
||||
isok(user) {
|
||||
if (user)
|
||||
if (user.profile)
|
||||
return user.profile.teleg_id > 0
|
||||
|
||||
return false
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
{
|
||||
icon: 'fas fa-file-signature',
|
||||
textlang: 'steps.linee_guida',
|
||||
textadd(user) {
|
||||
return ''
|
||||
},
|
||||
isok(user) {
|
||||
if (user)
|
||||
if (user.profile)
|
||||
return tools.isBitActive(user.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES)
|
||||
return false
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
{
|
||||
icon: 'fas fa-tv',
|
||||
textlang: 'steps.video_intro',
|
||||
textadd(user) {
|
||||
return ''
|
||||
},
|
||||
isok(user) {
|
||||
if (user)
|
||||
if (user.profile)
|
||||
return tools.isBitActive(user.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI)
|
||||
return false
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
{
|
||||
icon: 'fas fa-heart',
|
||||
textlang: 'steps.dream',
|
||||
textadd(user) {
|
||||
return ''
|
||||
},
|
||||
isok(user) {
|
||||
if (user)
|
||||
if (user.profile.my_dream)
|
||||
return user.profile.my_dream.length > 20
|
||||
else
|
||||
return false
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
{
|
||||
icon: 'far fa-credit-card',
|
||||
textlang: 'steps.paymenttype',
|
||||
textadd(user) {
|
||||
return ''
|
||||
},
|
||||
isok(user) {
|
||||
let ispaypal = false
|
||||
if (user) {
|
||||
if (!!user.profile.paymenttypes) {
|
||||
if (user.profile.paymenttypes.includes('paypal')) {
|
||||
if (user.profile.email_paypal) {
|
||||
ispaypal = true
|
||||
}
|
||||
}
|
||||
if (!!user.profile)
|
||||
if (!!user.profile.paymenttypes) {
|
||||
const ris = (user.profile.paymenttypes.length >= 2) && ispaypal
|
||||
return ris
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return false
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
{
|
||||
icon: 'fas fa-users',
|
||||
textlang: 'dashboard.numinvitati',
|
||||
textadd(user) {
|
||||
return ' (' + user.numinvitatiattivi + ' / ' + user.numinvitati + ')'
|
||||
},
|
||||
isok(user) {
|
||||
if (user) {
|
||||
return user.numinvitatiattivi >= 2
|
||||
}
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
]
|
||||
|
||||
@Watch('UserStore.state.my.dashboard')
|
||||
public changedash() {
|
||||
console.log('changedash')
|
||||
@@ -209,85 +90,4 @@ export default class CMyDashboard extends MixinUsers {
|
||||
this.seluser = user
|
||||
}
|
||||
|
||||
public isextralist(user) {
|
||||
return !!user.cell_complete
|
||||
}
|
||||
|
||||
public ismyinvited_notreg(user) {
|
||||
return this.dashboard.downnotreg.find((rec) => rec.ind_order === user.ind_order)
|
||||
}
|
||||
|
||||
public ismydownline(user) {
|
||||
return this.dashboard.downline.find((rec) => rec.username === user.username)
|
||||
}
|
||||
|
||||
public async deleteUserFromExtraList(user) {
|
||||
|
||||
await tools.askConfirm(this.$q, translate('reg.cancella_invitato'), translate('reg.cancella_invitato') + ' ' + user.name + ' ' + user.surname + '?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.DELETE_EXTRALIST, 0, {
|
||||
param1: user,
|
||||
param2: true
|
||||
})
|
||||
}
|
||||
|
||||
public async deleteUserFromUsersList(user) {
|
||||
|
||||
await tools.askConfirm(this.$q, translate('reg.cancella_invitato'), translate('reg.cancella_invitato') + ' ' + user.name + ' ' + user.surname + '?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.DELETE_USERLIST, 0, {
|
||||
param1: user,
|
||||
param2: true
|
||||
})
|
||||
}
|
||||
|
||||
public async RegalaInvitato(user, aportador_solidario, notifBottxt) {
|
||||
let notiftxt = ''
|
||||
if (this.notifBot)
|
||||
notiftxt = notifBottxt
|
||||
|
||||
await tools.askConfirm(this.$q, translate('reg.regala_invitato'), translate('reg.regala_invitato') + ' ' + user.name + ' ' + user.surname + ' a ' + aportador_solidario + ' ?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.REGALA_INVITATO, 0, {
|
||||
param1: user,
|
||||
param2: aportador_solidario,
|
||||
param3: notiftxt
|
||||
})
|
||||
}
|
||||
|
||||
public errorMsg(cosa: string, item: any) {
|
||||
try {
|
||||
if (!item.$error) {
|
||||
return ''
|
||||
}
|
||||
|
||||
if (item.required !== undefined) {
|
||||
if (!item.required) {
|
||||
return this.$t('reg.err.required')
|
||||
}
|
||||
|
||||
} else if (cosa === 'aportador_solidario') {
|
||||
// console.log(item);
|
||||
if (!item.aportadorexist) {
|
||||
// console.log('!item.aportadorexist !')
|
||||
return this.$t('reg.err.aportador_regalare_not_exist')
|
||||
}
|
||||
}
|
||||
|
||||
return ''
|
||||
} catch (error) {
|
||||
// console.log("ERR : " + error);
|
||||
}
|
||||
}
|
||||
|
||||
get allowSubmit() {
|
||||
let error = this.$v.$error || this.$v.$invalid
|
||||
|
||||
error = error || (this.aportador_solidario === this.seluser.aportador_solidario)
|
||||
|
||||
return !error
|
||||
|
||||
}
|
||||
|
||||
get getnotifBotTxt() {
|
||||
return this.$t('dashboard.ricevuto_dono', {
|
||||
invitato: this.seluser.name + ' ' + this.seluser.surname,
|
||||
mittente: this.dashboard.myself.username
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,13 @@
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('pages.dashboard')" bgcolor="bg-info" clcolor="text-white"
|
||||
mystyle=" " myclass="myshad">
|
||||
|
||||
<div v-if="!!dashboard.myself.name">
|
||||
|
||||
|
||||
<CMyRequirement :myseluser="dashboard.myself" :mydashboard="dashboard">
|
||||
|
||||
</CMyRequirement>
|
||||
</div>
|
||||
|
||||
<CTitleBanner class="shadow-2" :title="$t('reg.aportador_solidario')" bgcolor="bg-accent"
|
||||
clcolor="text-white"
|
||||
@@ -111,6 +118,7 @@
|
||||
bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
<p class="q-ml-sm">Clicca sul nome dell'invitato per vedere lo stato dei suoi Requisiti.</p>
|
||||
<q-list bordered class="rounded-borders row justify-between">
|
||||
<CLegenda icon="fab fa-telegram" :text="`Telegram ` + $t('pages.statusreg.verified')"></CLegenda>
|
||||
<CLegenda icon="fas fa-video" :text="$t('pages.statusreg.seezoom')"></CLegenda>
|
||||
@@ -122,102 +130,17 @@
|
||||
<br>
|
||||
|
||||
<q-dialog v-model="showuserinfo">
|
||||
<q-card v-if="seluser" :style="`min-width: `+ tools.myheight_dialog() + `px;`">
|
||||
<q-toolbar class="bg-primary text-white">
|
||||
<q-card v-if="seluser" :style="`min-width: `+ tools.myheight_dialog() + `px;` ">
|
||||
<q-toolbar class="bg-primary text-white" style="min-height: 30px;">
|
||||
<q-toolbar-title>
|
||||
Info:
|
||||
{{$t('reg.requirement')}}
|
||||
</q-toolbar-title>
|
||||
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
||||
</q-toolbar>
|
||||
<q-card-section class="inset-shadow">
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="seluser.name + ` ` + seluser.surname"
|
||||
bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
<q-card-section class="inset-shadow" style="padding: 4px !important;">
|
||||
<CMyRequirement :myseluser="seluser" :mydashboard="dashboard" :notitle="false">
|
||||
|
||||
|
||||
<div v-if="!ismyinvited_notreg(seluser)" class="text-center">
|
||||
|
||||
<div v-if="!isextralist(seluser)">
|
||||
<div v-for="req of arrrequisiti">
|
||||
<CRequisito :icon="req.icon" :text="$t(req.textlang) + req.textadd(seluser)" :isok="req.isok(seluser)"
|
||||
:info="req.info"></CRequisito>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div v-if="ismydownline(seluser)">
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="$t('reg.regala_invitato')"
|
||||
bgcolor="bg-positive"
|
||||
clcolor="text-white"
|
||||
:visible="false"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<div class="column q-gutter-sm justify-center text-center">
|
||||
<q-input
|
||||
bg-color="lightblue"
|
||||
v-model="aportador_solidario"
|
||||
rounded outlined
|
||||
@blur="$v.aportador_solidario.$touch"
|
||||
:error="$v.aportador_solidario.$error"
|
||||
:error-message="errorMsg('aportador_solidario', $v.aportador_solidario)"
|
||||
maxlength="20"
|
||||
debounce="1000"
|
||||
|
||||
:label="$t('reg.username_regala_invitato')">
|
||||
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="person"/>
|
||||
</template>
|
||||
|
||||
</q-input>
|
||||
|
||||
<q-toggle v-model="notifBot" :label="$t('dashboard.sendnotification')"/>
|
||||
|
||||
<q-btn class="q-ma-sm" rounded color="positive" text-color="white" icon="fas fa-gift"
|
||||
:label="$t('reg.regala_invitato')"
|
||||
:disabled='!allowSubmit'
|
||||
@click="RegalaInvitato(seluser, aportador_solidario, getnotifBotTxt)"></q-btn>
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
|
||||
<CTitleBanner v-if="ismydownline(seluser) && (seluser.numinvitati <= 0)"
|
||||
class="shadow-2 rounded-borders text-center"
|
||||
:title="$t('reg.cancella_invitato')"
|
||||
bgcolor="bg-negative"
|
||||
clcolor="text-white"
|
||||
:visible="false"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<q-btn rounded text-color="red" icon="delete"
|
||||
:label="$t('reg.cancella_invitato')"
|
||||
@click="deleteUserFromUsersList(seluser)"></q-btn>
|
||||
</CTitleBanner>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else>
|
||||
<div class="column justify-center q-gutter-sm q-pa-sm">
|
||||
|
||||
<CRequisito icon="fas fa-user" :text="$t('dashboard.notreg')" :isok="false"
|
||||
info=""></CRequisito>
|
||||
|
||||
<CTitleBanner class="shadow-2 rounded-borders text-center"
|
||||
:title="$t('reg.cancella_invitato')"
|
||||
bgcolor="bg-negative"
|
||||
clcolor="text-white"
|
||||
:visible="false"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
<q-btn rounded text-color="red" icon="delete" :label="$t('reg.cancella_invitato')"
|
||||
@click="deleteUserFromExtraList(seluser)"></q-btn>
|
||||
</CTitleBanner>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</CTitleBanner>
|
||||
</CMyRequirement>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
|
||||
Reference in New Issue
Block a user