Ultimo aggiornamento Nuova versione del Sito !
This commit is contained in:
@@ -10,7 +10,7 @@ import { CMyFieldDb } from '../CMyFieldDb'
|
||||
import { CCopyBtn } from '../CCopyBtn'
|
||||
import { CUserBadge } from '../CUserBadge'
|
||||
import { CLegenda } from '../CLegenda'
|
||||
import { IDashboard, IUserProfile } from '../../model'
|
||||
import { IDashboard, IDownline, IUserProfile } from '../../model'
|
||||
import { IUserFields } from '../../model/UserStore'
|
||||
import { CRequisito } from '../CRequisito'
|
||||
import translate from '../../globalroutines/util'
|
||||
@@ -52,6 +52,7 @@ export default class CMyDashboard extends MixinUsers {
|
||||
public shownuovoviaggio: boolean = false
|
||||
public notifBot: boolean = true
|
||||
public loading: boolean = false
|
||||
public loading_invitati: boolean = false
|
||||
public seluser: IUserFields = null
|
||||
public aportador_solidario: string = ''
|
||||
public invitante_username: string = ''
|
||||
@@ -64,9 +65,6 @@ export default class CMyDashboard extends MixinUsers {
|
||||
myself: DefaultUser,
|
||||
aportador: DefaultUser,
|
||||
numpeople_aportador: 0,
|
||||
downline: [],
|
||||
downnotreg: [],
|
||||
downbyuser: [],
|
||||
arrimbarchi: [],
|
||||
arrposizioni: [],
|
||||
navi_partenza: [],
|
||||
@@ -74,6 +72,12 @@ export default class CMyDashboard extends MixinUsers {
|
||||
arrusers: [],
|
||||
}
|
||||
|
||||
public downline: IDownline = {
|
||||
downline: [],
|
||||
downnotreg: [],
|
||||
downbyuser: []
|
||||
}
|
||||
|
||||
@Prop({ required: true }) public username
|
||||
|
||||
@Watch('UserStore.state.my.dashboard')
|
||||
@@ -98,6 +102,15 @@ export default class CMyDashboard extends MixinUsers {
|
||||
|
||||
public changetab(val) {
|
||||
tools.setCookie(tools.TABBED_DASHBOARD, val)
|
||||
if (this.tab === 'invitati') {
|
||||
if (this.downline.downline.length <= 0) {
|
||||
this.loading_invitati = true
|
||||
UserStore.actions.getDownline({ username: this.myusername }).then((ris) => {
|
||||
this.downline = ris
|
||||
this.loading_invitati = false
|
||||
})
|
||||
}
|
||||
}
|
||||
// console.log('setcook', val)
|
||||
}
|
||||
|
||||
@@ -123,21 +136,36 @@ export default class CMyDashboard extends MixinUsers {
|
||||
|
||||
this.loading = true
|
||||
|
||||
await UserStore.actions.getDashboard({ username: this.myusername }).then((ris) => {
|
||||
this.dashboard = ris
|
||||
UserStore.actions.getDashboard({ username: this.myusername })
|
||||
.then((ris) => {
|
||||
this.dashboard = ris
|
||||
|
||||
if (!!this.dashboard)
|
||||
this.invitante_username = this.dashboard.myself.username
|
||||
if (!!this.dashboard)
|
||||
this.invitante_username = this.dashboard.myself.username
|
||||
|
||||
this.myrigaattuale = this.dashboard.lastnave.riga
|
||||
this.mycolattuale = this.dashboard.lastnave.col
|
||||
this.myrigaattuale = this.dashboard.lastnave.riga
|
||||
this.mycolattuale = this.dashboard.lastnave.col
|
||||
|
||||
// console.log('this.invitante_username', this.invitante_username)
|
||||
this.loading = false
|
||||
})
|
||||
this.loading = false
|
||||
})
|
||||
.catch((e) => {
|
||||
this.loading = false
|
||||
})
|
||||
|
||||
if (this.tab === 'invitati') {
|
||||
this.loading_invitati = true
|
||||
UserStore.actions.getDownline({ username: this.myusername })
|
||||
.then((ris2) => {
|
||||
this.downline = ris2
|
||||
this.loading_invitati = false
|
||||
})
|
||||
.catch((e) => {
|
||||
this.loading_invitati = false
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
this.showuserinfo = false
|
||||
this.loading = false
|
||||
}
|
||||
|
||||
get getRefLink() {
|
||||
@@ -145,34 +173,42 @@ export default class CMyDashboard extends MixinUsers {
|
||||
}
|
||||
|
||||
get invitatinotreg() {
|
||||
if (this.dashboard)
|
||||
if (this.dashboard.downnotreg)
|
||||
return this.dashboard.downnotreg.length > 0
|
||||
if (this.downline)
|
||||
if (this.downline.downnotreg)
|
||||
return this.downline.downnotreg.length > 0
|
||||
return false
|
||||
}
|
||||
|
||||
public selectclick(user, showregalainv, ind_order_ingr, id_listaingr) {
|
||||
this.showuserinfo = true
|
||||
this.seluser = user
|
||||
this.showregalainv = showregalainv
|
||||
this.ind_order_ingr = ind_order_ingr
|
||||
this.id_listaingr = id_listaingr
|
||||
public selectclick(user, showregalainv, ind_order_ingr, id_listaingr, disabled) {
|
||||
if (!disabled) {
|
||||
this.showuserinfo = true
|
||||
this.seluser = user
|
||||
this.showregalainv = showregalainv
|
||||
this.ind_order_ingr = ind_order_ingr
|
||||
this.id_listaingr = id_listaingr
|
||||
}
|
||||
}
|
||||
|
||||
get Completato7Req() {
|
||||
// return tools.Is7ReqOk(this.dashboard.myself)
|
||||
return this.dashboard.myself.qualified
|
||||
if (!!this.dashboard.myself)
|
||||
return this.dashboard.myself.qualified
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
get Completato9Req() {
|
||||
// return tools.Is9ReqOk(this.dashboard.myself)
|
||||
if (!!this.dashboard)
|
||||
if (!!this.dashboard.myself)
|
||||
return this.dashboard.myself.qualified && (this.dashboard.myself.numinvitatiattivi >= 2)
|
||||
return false
|
||||
}
|
||||
|
||||
public HasNave() {
|
||||
return this.dashboard.arrposizioni.length > 0
|
||||
get HasNave() {
|
||||
if (!!this.dashboard.arrposizioni)
|
||||
return this.dashboard.arrposizioni.length > 0
|
||||
else
|
||||
return false
|
||||
}
|
||||
|
||||
public getnavePartenzaByRigaCol(riga, col) {
|
||||
@@ -187,10 +223,19 @@ export default class CMyDashboard extends MixinUsers {
|
||||
}
|
||||
|
||||
public datanave(mianave) {
|
||||
// const mynavepart = this.getnavePartenzaByRigaCol(tools.getRiganave(mianave.riga), tools.getColnave(mianave.col))
|
||||
if (!!mianave.nave_partenza) {
|
||||
if (!!mianave.nave_partenza.date_start)
|
||||
return tools.getstrDate(mianave.nave_partenza.date_start)
|
||||
}
|
||||
return ' --/-- '
|
||||
}
|
||||
|
||||
public datagiftchat(mianave) {
|
||||
// const mynavepart = this.getnavePartenzaByRigaCol(tools.getRiganave(mianave.riga), tools.getColnave(mianave.col))
|
||||
if (!!mianave.nave_partenza) {
|
||||
if (!!mianave.nave_partenza.date_gift_chat_open)
|
||||
return tools.getstrshortDate(mianave.nave_partenza.date_gift_chat_open)
|
||||
return tools.getstrDate(mianave.nave_partenza.date_gift_chat_open)
|
||||
}
|
||||
return ' --/-- '
|
||||
}
|
||||
@@ -223,7 +268,7 @@ export default class CMyDashboard extends MixinUsers {
|
||||
|
||||
public async NuovoImbarco(username, invitante_username) {
|
||||
|
||||
await tools.askConfirm(this.$q, translate('steps.nuovo_imbarco') , translate('dialog.continue') + ' ?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.AGGIUNGI_NUOVO_IMBARCO, 0, {
|
||||
await tools.askConfirm(this.$q, translate('steps.nuovo_imbarco'), translate('dialog.continue') + ' ?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.AGGIUNGI_NUOVO_IMBARCO, 0, {
|
||||
param1: { username, invitante_username }
|
||||
})
|
||||
this.shownuovoviaggio = false
|
||||
@@ -234,7 +279,7 @@ export default class CMyDashboard extends MixinUsers {
|
||||
}
|
||||
|
||||
public async cancellaImbarco(imbarco) {
|
||||
await tools.askConfirm(this.$q, translate('dashboard.attenzione'), translate('steps.vuoi_cancellare_imbarco') , translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.CANCELLA_IMBARCO, 0, {
|
||||
await tools.askConfirm(this.$q, translate('dashboard.attenzione'), translate('steps.vuoi_cancellare_imbarco'), translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.CANCELLA_IMBARCO, 0, {
|
||||
param1: { ind_order: imbarco.ind_order, username: imbarco.username },
|
||||
param2: { num_tess: imbarco.num_tess }
|
||||
})
|
||||
@@ -258,7 +303,7 @@ export default class CMyDashboard extends MixinUsers {
|
||||
if (invattivi > 2)
|
||||
invattivi = 2
|
||||
|
||||
return invattivi + '/' + inv
|
||||
return invattivi + '/' + inv
|
||||
}
|
||||
|
||||
public getinvit(index, myuser, posiz) {
|
||||
@@ -281,21 +326,25 @@ export default class CMyDashboard extends MixinUsers {
|
||||
|
||||
return { invattivi, inv }
|
||||
}
|
||||
|
||||
public getnuminv(index, myuser, posiz) {
|
||||
const ris = this.getinvit(index, myuser, posiz)
|
||||
|
||||
return ris.inv
|
||||
}
|
||||
|
||||
public getnuminvattivi(index, myuser, posiz) {
|
||||
const ris = this.getinvit(index, myuser, posiz)
|
||||
|
||||
return ris.invattivi
|
||||
}
|
||||
|
||||
public getnuminvperc(index, myuser, posiz) {
|
||||
const ris = this.getinvit(index, myuser, posiz)
|
||||
|
||||
return ris.invattivi / 2 * 100
|
||||
}
|
||||
|
||||
public getcolorinvitati(index, myuser, posiz) {
|
||||
|
||||
const ris = this.getinvit(index, myuser, posiz)
|
||||
@@ -352,7 +401,7 @@ export default class CMyDashboard extends MixinUsers {
|
||||
}
|
||||
|
||||
public imbarchipresenti() {
|
||||
let presente = false;
|
||||
let presente = false
|
||||
for (const rec of this.dashboard.arrimbarchi) {
|
||||
if (!rec.added)
|
||||
presente = true
|
||||
@@ -393,14 +442,37 @@ export default class CMyDashboard extends MixinUsers {
|
||||
}
|
||||
|
||||
get getstrinvitati() {
|
||||
if (this.dashboard.myself.numinvitati)
|
||||
return this.dashboard.myself.numinvitati + ` ` + this.$t('dashboard.downline')
|
||||
else
|
||||
if (!!this.dashboard && !!this.dashboard.myself)
|
||||
if (!!this.dashboard.myself.numinvitati)
|
||||
return this.dashboard.myself.numinvitati + ` ` + this.$t('dashboard.downline')
|
||||
|
||||
if (this.loading_invitati)
|
||||
return ` (...) ` + this.$t('dashboard.downline')
|
||||
else
|
||||
return this.$t('dashboard.downline')
|
||||
}
|
||||
|
||||
public getmyrigaattuale(rigamin) {
|
||||
public getmyrigaattuale(mianave) {
|
||||
const rigamin = tools.getRiganave(mianave.riga)
|
||||
const colmin = tools.getColnave(mianave.col)
|
||||
|
||||
let riga = this.myrigaattuale
|
||||
let col = this.mycolattuale
|
||||
|
||||
let colvera = colmin
|
||||
if (rigamin > 3) {
|
||||
for (let index = rigamin; index < riga - 1; index++){
|
||||
colvera = colvera * 2
|
||||
}
|
||||
} else {
|
||||
colvera = 7
|
||||
}
|
||||
|
||||
if (col <= colvera) {
|
||||
riga = riga - 1
|
||||
}
|
||||
|
||||
// console.log('[' + rigamin + '.' + colmin + ']', 'riga', riga, 'col', col, 'colvera', colvera)
|
||||
|
||||
if (riga < rigamin)
|
||||
riga = rigamin
|
||||
@@ -411,7 +483,7 @@ export default class CMyDashboard extends MixinUsers {
|
||||
}
|
||||
|
||||
public getval7(mianave) {
|
||||
let val = this.getmyrigaattuale(tools.getRiganave(mianave.riga))
|
||||
let val = this.getmyrigaattuale(mianave)
|
||||
return val - tools.getRiganave(mianave.riga) + 1
|
||||
}
|
||||
|
||||
@@ -436,7 +508,15 @@ export default class CMyDashboard extends MixinUsers {
|
||||
return val
|
||||
}
|
||||
|
||||
gettextcolor(mianave) {
|
||||
public gettextcolor(mianave) {
|
||||
return this.getval7(mianave) === 3 ? 'black' : 'white'
|
||||
}
|
||||
|
||||
public getifdisableInvitante(imbarco, index) {
|
||||
if ((index === 0) && (this.dashboard.arrposizioni.length <= 0)) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,28 +16,34 @@
|
||||
|
||||
</q-tabs>
|
||||
|
||||
<div v-if="loading" class="q-ma-md text-center" style="height: 100px;">
|
||||
<q-spinner-gears size="50px" color="primary"/>
|
||||
</div>
|
||||
|
||||
<q-tab-panels v-model="tab" animated>
|
||||
<q-tab-panel name="requisiti">
|
||||
<div v-if="!!dashboard.myself.name">
|
||||
|
||||
|
||||
<CMyRequirement :myseluser="dashboard.myself" :mydashboard="dashboard" @aggiorna="aggiorna"
|
||||
>
|
||||
|
||||
</CMyRequirement>
|
||||
<div v-if="loading" class="q-ma-md text-center" style="height: 50px;">
|
||||
<q-spinner-gears size="50px" color="primary"/>
|
||||
</div>
|
||||
|
||||
<div v-if="!!dashboard && !!dashboard.myself">
|
||||
<div v-if="!!dashboard.myself.name">
|
||||
|
||||
|
||||
<CMyRequirement :myseluser="dashboard.myself" :mydashboard="dashboard" :mydownline="downline"
|
||||
@aggiorna="aggiorna"
|
||||
>
|
||||
|
||||
</CMyRequirement>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="invitati">
|
||||
|
||||
<CTitleBanner class="shadow-2" :title="$t('reg.aportador_solidario')" bgcolor="bg-accent"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<CUserBadge v-if="!!dashboard.aportador" :user="dashboard.aportador" :index="0"
|
||||
:showregalainv="false"
|
||||
:numpeople="dashboard.numpeople_aportador"
|
||||
mycolor="accent" @myclick="selectclick">
|
||||
|
||||
</CUserBadge>
|
||||
@@ -52,34 +58,33 @@
|
||||
|
||||
<CUserBadge v-if="!!dashboard.myself" :user="dashboard.myself" :index="0"
|
||||
:showregalainv="false"
|
||||
:numpeople="dashboard.downline.length"
|
||||
@myclick="selectclick"
|
||||
mycolor="blue">
|
||||
|
||||
</CUserBadge>
|
||||
</CTitleBanner>
|
||||
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="invitati">
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="getstrinvitati" bgcolor="bg-positive"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<q-list bordered v-if="!!dashboard.downline && dashboard.downline.length > 0" class="rounded-borders">
|
||||
<div v-for="(user, index) in dashboard.downline" :key="index">
|
||||
<div v-if="loading_invitati" class="q-ma-md text-center" style="height: 50px;">
|
||||
<q-spinner-hourglass size="50px" color="primary"/>
|
||||
</div>
|
||||
|
||||
<q-list bordered v-if="!!downline.downline && downline.downline.length > 0" class="rounded-borders">
|
||||
<div v-for="(user, index) in downline.downline" :key="index">
|
||||
<CUserBadge :yourinvite="true" :user="user" mycolor="positive" :index="index"
|
||||
:showregalainv="false"
|
||||
:numpeople="dashboard.downbyuser[user.username].length"
|
||||
@myclick="selectclick"
|
||||
>
|
||||
|
||||
</CUserBadge>
|
||||
<div v-if="user.username !== dashboard.myself.username">
|
||||
<div style="margin-left:10px;" v-for="(user2, index2) in dashboard.downbyuser[user.username]"
|
||||
<div style="margin-left:10px;" v-for="(user2, index2) in downline.downbyuser[user.username]"
|
||||
:key="index2">
|
||||
<CUserBadge :yourinvite="false" :user="user2" mycolor="orange" :index="index2"
|
||||
:showregalainv="false"
|
||||
:numpeople="dashboard.downbyuser[user2.username].length"
|
||||
@myclick="selectclick"
|
||||
>
|
||||
|
||||
@@ -89,7 +94,9 @@
|
||||
</div>
|
||||
</q-list>
|
||||
<div v-else class="q-pa-sm text-center">
|
||||
{{ $t('dashboard.nessun_invitato')}}
|
||||
<div v-if="!loading_invitati">
|
||||
{{ $t('dashboard.nessun_invitato')}}
|
||||
</div>
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
|
||||
@@ -148,20 +155,24 @@
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="navi">
|
||||
|
||||
<div v-if="loading" class="q-ma-md text-center" style="height: 50px;">
|
||||
<q-spinner-gears size="50px" color="primary"/>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div v-if="!Completato9Req && !HasNave">
|
||||
<CTitleBanner icon="person" :canopen="true" class="q-pa-xs text-center"
|
||||
:title="$t('pages.posizione_in_programmazione')" bgcolor="bg-blue"
|
||||
clcolor="text-white" mystyle=" " myclass="myshad">
|
||||
<CRequisiti :statebool="Completato7Req"
|
||||
:msgTrue="$t('steps.enter_prog_requisiti_ok') + $t('steps.enter_prog_requisiti_ok')"
|
||||
:msgTrue="$t('steps.enter_prog_requisiti_ok') + $t('steps.enter_prog_msg')"
|
||||
:msgFalse="$t('steps.enter_prog_completa_requisiti')">
|
||||
</CRequisiti>
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="!!dashboard">
|
||||
<div v-if="!!dashboard && dashboard.myself">
|
||||
<div v-if="dashboard.myself.qualified">
|
||||
|
||||
<CTitleBanner class=""
|
||||
@@ -180,11 +191,8 @@
|
||||
<div class="col-2 ">
|
||||
{{ $t('dashboard.downline') }}
|
||||
</div>
|
||||
<!--<div class="col-2">
|
||||
{{ $t('dashboard.dono_da_effettuare') }}
|
||||
</div>-->
|
||||
<div class="col-2">
|
||||
{{ $t('reg.elimina') }}
|
||||
{{ $t('dialog.delete') }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -206,7 +214,7 @@
|
||||
:ind_order_ingr="mioimbarco.ind_order"
|
||||
:id_listaingr="mioimbarco._id"
|
||||
:index="index"
|
||||
:numpeople="0"
|
||||
:mydisabled="getifdisableInvitante(mioimbarco, index)"
|
||||
@myclick="selectclick">
|
||||
</CUserBadge>
|
||||
</div>
|
||||
@@ -253,7 +261,7 @@
|
||||
</q-btn>
|
||||
</div>
|
||||
|
||||
<div class="q-pa-xs text-center">
|
||||
<div v-if="!!dashboard.myself" class="q-pa-xs text-center">
|
||||
|
||||
<div v-if="!!dashboard.myself.name">
|
||||
<div v-if="!HasNave">
|
||||
@@ -282,7 +290,7 @@
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-slider
|
||||
:value="getmyrigaattuale(tools.getRiganave(mianave.riga))"
|
||||
:value="getmyrigaattuale(mianave)"
|
||||
:label-text-color="gettextcolor(mianave)"
|
||||
:label-value="getval7(mianave) + '/7'"
|
||||
:color="getcolorbyval(mianave)"
|
||||
@@ -296,6 +304,9 @@
|
||||
|
||||
</q-slider>
|
||||
</q-item-section>
|
||||
<q-item-section avatar>
|
||||
<q-icon color="blue" name="fas fa-flag-checkered"></q-icon>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</div>
|
||||
@@ -306,7 +317,7 @@
|
||||
|
||||
<q-card class="my-card-shadow yes_shadow">
|
||||
<q-img
|
||||
src="statics/images/nave.jpg"
|
||||
:src="`statics/images/nave${index+1}.jpg`"
|
||||
style="width: 100%"
|
||||
native-context-menu>
|
||||
<div class="absolute-bottom text-subtitle1 text-center text-sobig">
|
||||
@@ -317,14 +328,17 @@
|
||||
<div class="row justify-sm-start items-center rounded-borders">
|
||||
|
||||
<div class="row items-center justify-center q-ma-xs" style="width: 100%">
|
||||
<q-chip class="glossy q-ma-md" :color="getcolorbynave(mianave)" text-color="white"
|
||||
<q-chip class="glossy q-mx-md" :color="getcolorbynave(mianave)" text-color="white"
|
||||
icon="fas fa-ship">
|
||||
|
||||
{{ $t('dashboard.nave_in_partenza') + ' ' + datanave(mianave) }}
|
||||
{{ $t('dashboard.nave_in_partenza') + ' ' + datagiftchat(mianave) }}
|
||||
</q-chip>
|
||||
<q-chip v-if="datagiftchat(mianave) !== datanave(mianave)" class="glossy q-mx-md" color="blue" text-color="white"
|
||||
icon="fas fa-ship">
|
||||
{{ $t('dashboard.nave_in_chiusura') + ' ' + datanave(mianave) }}
|
||||
</q-chip>
|
||||
</div>
|
||||
|
||||
<div v-if="isprovvisoria(mianave)">
|
||||
<div v-if="isprovvisoria(mianave)" class="text-center centermydiv">
|
||||
<CRequisiti :statebool="true"
|
||||
:msgTrue="$t('dashboard.nave_provvisoria') + `<br><strong>` + $t('steps.enter_prog_msg') + `</strong>`"
|
||||
msgFalse="">
|
||||
@@ -368,7 +382,7 @@
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-slider
|
||||
:value="getmyrigaattuale(tools.getRiganave(mianave.riga))"
|
||||
:value="getmyrigaattuale(mianave)"
|
||||
:label-text-color="gettextcolor(mianave)"
|
||||
:label-value="getval7(mianave) + '/7'"
|
||||
:color="getcolorbyval(mianave)"
|
||||
@@ -381,6 +395,9 @@
|
||||
|
||||
</q-slider>
|
||||
</q-item-section>
|
||||
<q-item-section avatar>
|
||||
<q-icon color="blue" name="fas fa-flag-checkered"></q-icon>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item>
|
||||
<q-item-section avatar>
|
||||
@@ -420,6 +437,22 @@
|
||||
</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item v-if="mianave.num_tess % 2 !== 0">
|
||||
<q-item-section avatar>
|
||||
<q-icon size="sm" name="fas fa-user" color="blue"></q-icon>
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-item-label>
|
||||
<q-input v-model="mianave.invitante_username" :label="$t('dashboard.invitante')"
|
||||
rounded outlined
|
||||
readonly
|
||||
dense
|
||||
style="width: 100%; font-size:0.75rem;">
|
||||
</q-input>
|
||||
|
||||
</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</div>
|
||||
</div>
|
||||
@@ -461,7 +494,7 @@
|
||||
</q-tab-panels>
|
||||
</div>
|
||||
|
||||
<div v-if="!!dashboard">
|
||||
<div v-if="!!dashboard.myself">
|
||||
<div v-if="!!dashboard.myself.name">
|
||||
<div v-if="dashboard.myself.deleted">
|
||||
<span style="color: red;"> <h2><strong>UTENTE CANCELLATO (Nascosto: true) !</strong></h2></span>
|
||||
@@ -507,7 +540,7 @@
|
||||
</q-toolbar>
|
||||
<q-card-section class="inset-shadow" style="padding: 4px !important;">
|
||||
<CMyRequirement :id_listaingr="id_listaingr" :myseluser="seluser" :showregalainv="showregalainv"
|
||||
:mydashboard="dashboard" :notitle="false" @aggiorna="aggiorna"
|
||||
:mydashboard="dashboard" :mydownline="downline" :notitle="false" @aggiorna="aggiorna"
|
||||
:ind_order_ingr="ind_order_ingr">
|
||||
|
||||
</CMyRequirement>
|
||||
|
||||
@@ -10,7 +10,7 @@ import { CMyFieldDb } from '../CMyFieldDb'
|
||||
import { CCopyBtn } from '../CCopyBtn'
|
||||
import { CUserBadge } from '../CUserBadge'
|
||||
import { CLegenda } from '../CLegenda'
|
||||
import { IDashboard, IUserProfile } from '../../model'
|
||||
import { IDashboard, IDownline, IUserProfile } from '../../model'
|
||||
import { IUserFields } from '../../model/UserStore'
|
||||
import { CRequisito } from '../CRequisito'
|
||||
import translate from '../../globalroutines/util'
|
||||
@@ -31,6 +31,7 @@ export default class CMyRequirement extends MixinUsers {
|
||||
@Prop({ required: false, default: -1 }) public ind_order_ingr: number
|
||||
@Prop({ required: false, default: -1 }) public id_listaingr: number
|
||||
@Prop({ required: true }) public mydashboard
|
||||
@Prop({ required: true }) public mydownline
|
||||
@Prop({ required: false, default: false }) public notitle
|
||||
@Prop({ required: false, default: false }) public showregalainv
|
||||
public $t
|
||||
@@ -42,7 +43,10 @@ export default class CMyRequirement extends MixinUsers {
|
||||
public dashboard: IDashboard = {
|
||||
myself: DefaultUser,
|
||||
aportador: DefaultUser,
|
||||
numpeople_aportador: 0,
|
||||
numpeople_aportador: 0
|
||||
}
|
||||
|
||||
public downline: IDownline = {
|
||||
downline: [],
|
||||
downnotreg: [],
|
||||
downbyuser: []
|
||||
@@ -54,6 +58,12 @@ export default class CMyRequirement extends MixinUsers {
|
||||
this.dashboard = this.mydashboard
|
||||
}
|
||||
|
||||
@Watch('mydownline')
|
||||
public changedl() {
|
||||
console.log('changedl')
|
||||
this.downline = this.mydownline
|
||||
}
|
||||
|
||||
@Watch('myusersel')
|
||||
public changemyusersel() {
|
||||
console.log('myseluser')
|
||||
@@ -211,6 +221,7 @@ export default class CMyRequirement extends MixinUsers {
|
||||
|
||||
public created() {
|
||||
this.dashboard = this.mydashboard
|
||||
this.downline = this.mydownline
|
||||
this.seluser = this.myseluser
|
||||
|
||||
}
|
||||
@@ -219,8 +230,14 @@ export default class CMyRequirement extends MixinUsers {
|
||||
|
||||
await UserStore.actions.getDashboard({ username: this.dashboard.myself.username }).then((ris) => {
|
||||
this.dashboard = ris
|
||||
this.$emit('aggiorna')
|
||||
|
||||
UserStore.actions.getDownline({ username: this.dashboard.myself.username }).then((ris2) => {
|
||||
this.downline = ris2
|
||||
this.$emit('aggiorna')
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
public isextralist(user) {
|
||||
@@ -232,7 +249,7 @@ export default class CMyRequirement extends MixinUsers {
|
||||
}
|
||||
|
||||
public ismydownline(user) {
|
||||
return this.dashboard.downline.find((rec) => rec.username === user.username)
|
||||
return this.downline.downline.find((rec) => rec.username === user.username)
|
||||
}
|
||||
|
||||
public async deleteUserFromExtraList(user) {
|
||||
@@ -305,7 +322,9 @@ export default class CMyRequirement extends MixinUsers {
|
||||
get allowSubmit() {
|
||||
let error = this.$v.$error || this.$v.$invalid
|
||||
|
||||
error = error || (this.aportador_solidario === this.seluser.aportador_solidario)
|
||||
if (!this.showregalainv) {
|
||||
error = error || (this.aportador_solidario === this.seluser.aportador_solidario)
|
||||
}
|
||||
|
||||
return !error
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="q-ma-sm">
|
||||
<div :class="getcl" style="margin-left: auto; margin-right: auto;">
|
||||
<div :class="getcl + ' text-center'" style="margin-left: auto; margin-right: auto;">
|
||||
<div v-if="statebool" v-html="msgTrue"></div>
|
||||
<div v-else v-html="msgFalse"></div>
|
||||
</div>
|
||||
|
||||
@@ -250,8 +250,8 @@ export default class CStatus extends MixinBase {
|
||||
funcko() {
|
||||
return ''
|
||||
},
|
||||
},
|
||||
{
|
||||
}
|
||||
/*{
|
||||
title: 'steps.collaborate',
|
||||
descr: 'steps.collaborate_long',
|
||||
page: '/collaborate',
|
||||
@@ -318,7 +318,7 @@ export default class CStatus extends MixinBase {
|
||||
funcko() {
|
||||
return ''
|
||||
},
|
||||
},
|
||||
},*/
|
||||
]
|
||||
|
||||
public setstep() {
|
||||
|
||||
@@ -1,395 +1,398 @@
|
||||
<template>
|
||||
<div>
|
||||
<CTitleBanner class="text-center" :title="$t('home.guida_passopasso')" bgcolor="bg-primary" clcolor="text-white"
|
||||
mystyle="" myclass="myshad" :canopen="true">
|
||||
|
||||
|
||||
<q-stepper
|
||||
v-model="step"
|
||||
vertical
|
||||
header-nav
|
||||
done-color="green"
|
||||
active-color="blue"
|
||||
inactive-color="grey"
|
||||
animated
|
||||
>
|
||||
<!--
|
||||
<q-step
|
||||
id="step1"
|
||||
:name="1"
|
||||
:title="emailtext"
|
||||
icon="mail"
|
||||
:done="isEmailVerified"
|
||||
:error="!isEmailVerified"
|
||||
:error-icon="geterricon(true)"
|
||||
>
|
||||
<q-stepper-navigation v-if="isEmailVerified">
|
||||
<q-btn @click="step = 2" color="primary" :label="$t('dialog.avanti')"></q-btn>
|
||||
</q-stepper-navigation>
|
||||
|
||||
</q-step>
|
||||
<q-step
|
||||
id="step2"
|
||||
:name="2"
|
||||
:title="telegramtext"
|
||||
icon="fab fa-telegram"
|
||||
:done="TelegVerificato"
|
||||
:error="!TelegVerificato"
|
||||
:error-icon="geterricon(true)"
|
||||
>
|
||||
|
||||
<q-stepper-navigation>
|
||||
<q-btn v-if="TelegVerificato" @click="step = 3" color="primary" :label="$t('dialog.avanti')"></q-btn>
|
||||
<q-btn flat @click="step = 1" color="primary" :label="$t('dialog.indietro')" class="q-ml-sm"></q-btn>
|
||||
</q-stepper-navigation>
|
||||
</q-step>
|
||||
-->
|
||||
<q-step
|
||||
v-for="(mystep, index) in arrsteps"
|
||||
:id="`step`+(index)"
|
||||
:key="mystep.title"
|
||||
:name="index"
|
||||
:title="gettextstep(mystep, index)"
|
||||
:icon="geticonstep(mystep)"
|
||||
:done-color="geticoncolor(mystep.title)"
|
||||
:done="mystep.funccheck(index)"
|
||||
:error="getiferror(mystep.funccheck_error(index), mystep.funccheck(index))"
|
||||
:error-icon="geterricon(mystep.funccheck(index), mystep)"
|
||||
:error-color="geterrcolor(mystep)"
|
||||
>
|
||||
<div v-if="mystep.title === 'reg.email'">
|
||||
<CVerifyEmail>
|
||||
|
||||
</CVerifyEmail>
|
||||
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'reg.telegram'">
|
||||
<q-chip v-if="TelegVerificato" color="positive" text-color="white" icon="fab fa-telegram">
|
||||
{{ telegramtext }}
|
||||
</q-chip>
|
||||
<q-chip v-else color="negative" text-color="white" icon="email">
|
||||
{{ telegramtext }}
|
||||
</q-chip>
|
||||
|
||||
<CVerifyTelegram v-if="TelegCode || !TelegVerificato">
|
||||
|
||||
</CVerifyTelegram>
|
||||
<div v-else>
|
||||
<br>
|
||||
<q-btn color="primary" icon="fab fa-telegram"
|
||||
:label="$t('components.authentication.telegram.openbot', {botname: $t('ws.botname')})"
|
||||
type="a"
|
||||
:href="getLinkBotTelegram" target="_blank"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.linee_guida'">
|
||||
<CGuidelines :showconditions="true">
|
||||
|
||||
</CGuidelines>
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.video_intro'">
|
||||
<CVideoPromo :showconditions="true">
|
||||
|
||||
</CVideoPromo>
|
||||
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.paymenttype'">
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('steps.paymenttype_paypal')" bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
myclass="myshad" canopen="true" :visible="false">
|
||||
|
||||
<CVideo myvideokey="RqsWDlpnN3k">
|
||||
|
||||
</CVideo>
|
||||
|
||||
<q-btn class="q-ma-md" size="md" type="a" href="https://www.paypal.com/"
|
||||
target="_blank" rounded color="primary" icon="info"
|
||||
:label="$t('steps.paymenttype_paypal_link')">
|
||||
</q-btn>
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('steps.paymenttype_paypal_carta_conto')"
|
||||
bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
myclass="myshad" canopen="true" :visible="true">
|
||||
|
||||
<CVideo myvideokey="wRNBmQrsnes">
|
||||
|
||||
</CVideo>
|
||||
|
||||
</CTitleBanner>
|
||||
</CTitleBanner>
|
||||
|
||||
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('steps.paymenttype_revolut')" bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
myclass="myshad" canopen="true" :visible="false">
|
||||
|
||||
<CVideo myvideokey="nST5iHM2LbE">
|
||||
|
||||
</CVideo>
|
||||
|
||||
<q-btn class="q-ma-md" size="md" type="a" href="https://www.revolut.com/"
|
||||
target="_blank" rounded color="primary" icon="info"
|
||||
:label="$t('steps.paymenttype_revolut_link')">
|
||||
</q-btn>
|
||||
|
||||
</CTitleBanner>
|
||||
|
||||
<div>
|
||||
|
||||
<CRequisiti :statebool="RequisitoPayment" :msgTrue="$t('steps.paymenttype_long2')"
|
||||
:msgFalse="$t('steps.paymenttype_long2')">
|
||||
</CRequisiti>
|
||||
|
||||
<CMyFieldDb :title="$t('reg.paymenttype')"
|
||||
table="users"
|
||||
mykey="profile"
|
||||
mysubkey="paymenttypes"
|
||||
:type="tools.FieldType.multiselect"
|
||||
jointable="paymenttypes">
|
||||
</CMyFieldDb>
|
||||
|
||||
<CMyFieldDb v-if="isselectPaypal" :title="$t('reg.email_paypal')"
|
||||
table="users"
|
||||
mykey="profile"
|
||||
mysubkey="email_paypal"
|
||||
:type="tools.FieldType.string">
|
||||
</CMyFieldDb>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.dream'">
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
<q-input v-model="my_dream" :label="$t('steps.dream')+' (min. 10):'"
|
||||
type="textarea" debounce="1000"
|
||||
input-class="myinput-area-big"
|
||||
autogrow
|
||||
@input="change_mydream">
|
||||
|
||||
</q-input>
|
||||
|
||||
<!--
|
||||
<CMyFieldDb :title="$t('reg.my_dream')"
|
||||
table="users"
|
||||
mykey="profile"
|
||||
mysubkey="my_dream"
|
||||
:type="tools.FieldType.string"
|
||||
>
|
||||
</CMyFieldDb>
|
||||
-->
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.zoom'">
|
||||
|
||||
<CRequisiti :statebool="VistoZoom" :msgTrue="$t('steps.zoom_si_partecipato')"
|
||||
:msgFalse="$t('steps.zoom_no_partecipato')">
|
||||
</CRequisiti>
|
||||
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('steps.zoom_what')" bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
myclass="myshad" canopen="true" :visible="false">
|
||||
<div>
|
||||
<CVideo myvideokey="2yHhNktRDjg">
|
||||
|
||||
</CVideo>
|
||||
|
||||
<div v-if="toolsext.isLang('it')">
|
||||
<h3>ISTRUZIONI ZOOM Cloud Meeting</h3>
|
||||
|
||||
<ul style="text-align: left; font-size:0.75rem;">
|
||||
<li>1. Scarica l'app per: (<a
|
||||
href="https://play.google.com/store/apps/details?id=us.zoom.videomeetings"
|
||||
target="_blank">Android</a> o per
|
||||
<a href="https://apps.apple.com/us/app/zoom-cloud-meetings/id546505307" target="_blank">iPhone</a>
|
||||
o per
|
||||
<a href="https://zoom.us/support/download" target="_blank">PC Desktop</a>
|
||||
)
|
||||
</li>
|
||||
<li>2. Inserisci il tuo Nome e Cognome per essere riconosciuto</li>
|
||||
<li>3. Clicca "join meeting"</li>
|
||||
<li>4. Clicca "call in device" altrimenti non potrai sentire 🔊</li>
|
||||
<li>5. Clicca il microfono per Attivarlo o Silenziarlo.</li>
|
||||
</ul>
|
||||
|
||||
<div class="text-h6"><strong>In più avrai:</strong></div>
|
||||
<ul style="text-align: left; font-size:0.75rem;">
|
||||
<li>Tasto per togliere il video (📹) ❌</li>
|
||||
<li>Tasto 'Share': per condividere contenuti condivisi</li>
|
||||
<li>Tasto 'Partecipants' in cui sulla sinistra, in basso, troverai la CHAT.</li>
|
||||
<li>Tasto 'More': troverai Raise Hands per fare le domande.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div v-else>
|
||||
<h3>ZOOM INSTRUCTIONS</h3>
|
||||
|
||||
<ul style="text-align: left; font-size:0.75rem;">
|
||||
<li>1. Download the app (<a
|
||||
href="https://play.google.com/store/apps/details?id=us.zoom.videomeetings"
|
||||
target="_blank">store</a> or <a href="https://zoom.us/support/download"
|
||||
target="_blank">by PC</a>)
|
||||
</li>
|
||||
<li>2. Enter your first and last name to be recognized</li>
|
||||
<li>3. Click "join meeting"</li>
|
||||
<li>4. Click "call in device" otherwise you won't be able to hear 🔊</li>
|
||||
<li>5. Click the microphone to turn it on or mute it</li>
|
||||
</ul>
|
||||
|
||||
<div class="text-h6"><strong>More you will have:</strong></div>
|
||||
<ul style="text-align: left; font-size:0.75rem;">
|
||||
<li>Cancel button to remove the video (📹) ❌</li>
|
||||
<li>Share' button: to share shared content</li>
|
||||
<li>Participants' button where on the left, at the bottom, you will find the
|
||||
CHAT.
|
||||
</li>
|
||||
<li>Button 'More': you'll find Raise Hands to ask questions.</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.sharemovement'">
|
||||
|
||||
<!--<CRequisiti :statebool="getnuminvitati() >= 2" :msgTrue="$t('steps.sharemovement_hai_invitato')"
|
||||
:msgFalse="$t('steps.sharemovement_devi_invitare_almeno_2')">
|
||||
</CRequisiti>-->
|
||||
|
||||
<q-btn class="q-mb-md" rounded size="md" color="primary" to="/dashboard"
|
||||
:label="$t('pages.dashboard')"></q-btn>
|
||||
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-center q-ma-sm">
|
||||
<q-btn push
|
||||
rounded
|
||||
color="primary"
|
||||
size="md"
|
||||
:label="$t('pages.invita')"
|
||||
icon="fas fa-user-plus"
|
||||
to="/invite">
|
||||
</q-btn>
|
||||
</div>
|
||||
|
||||
|
||||
<CCopyBtn :title="$t('reg.reflink')" :texttocopy="getRefLink">
|
||||
|
||||
</CCopyBtn>
|
||||
|
||||
<CCopyBtn :title="$t('reg.linkzoom')" :texttocopy="tools.getLinkZoom()">
|
||||
|
||||
</CCopyBtn>
|
||||
|
||||
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'dashboard.inv_attivi'">
|
||||
|
||||
<CRequisiti v-if="getnuminvitati() > 0" :statebool="getnuminvitati_attivi() >= 2"
|
||||
:msgTrue="$t('steps.sharemovement_invitati_attivi_si')"
|
||||
:msgFalse="$t('steps.sharemovement_invitati_attivi_no')">
|
||||
</CRequisiti>
|
||||
|
||||
<q-btn class="q-mb-md" rounded size="md" color="primary" to="/dashboard"
|
||||
:label="$t('pages.dashboard')"></q-btn>
|
||||
|
||||
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.enter_prog'">
|
||||
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
|
||||
<CRequisiti :statebool="CompletatoRequisiti" :msgTrue="$t('steps.enter_prog_requisiti_ok') + $t('steps.enter_prog_requisiti_ok')"
|
||||
:msgFalse="$t('steps.enter_prog_completa_requisiti')">
|
||||
</CRequisiti>
|
||||
|
||||
|
||||
<CRequisiti v-if="Completato9Req" :statebool="Completato9Req"
|
||||
:msgTrue="$t('steps.enter_nave_9req_ok', {sitename: $t('pages.sitename')})"
|
||||
:msgFalse="$t('steps.enter_nave_9req_ko')">
|
||||
</CRequisiti>
|
||||
|
||||
<div v-if="CompletatoRequisiti">
|
||||
<q-btn class="q-mb-md" rounded size="md" color="primary" to="/dashboard"
|
||||
:label="$t('dashboard.entra_in_lavagna')"></q-btn>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else>
|
||||
<div v-if="mystep.page">
|
||||
<CMyInnerPage :path=mystep.page>
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
</CMyInnerPage>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<q-stepper-navigation>
|
||||
<q-btn v-if="index < getlaststep" @click="nextstep(index)"
|
||||
color="primary" :label="$t('dialog.avanti')" class="q-ml-sm"></q-btn>
|
||||
<q-btn flat @click="step = index - 1" color="primary" :label="$t('dialog.indietro')"
|
||||
class="q-ml-sm"></q-btn>
|
||||
</q-stepper-navigation>
|
||||
</q-step>
|
||||
|
||||
<!--<q-step-->
|
||||
<!--:name="getlaststep"-->
|
||||
<!--:title="$t('dialog.finish')"-->
|
||||
<!--icon="check-circle"-->
|
||||
<!--:done="step > getlaststep"-->
|
||||
<!-->-->
|
||||
|
||||
<!--<q-stepper-navigation>-->
|
||||
<!--<q-btn flat @click="step = getlaststep - 1" color="primary" :label="$t('dialog.indietro')" class="q-ml-sm"></q-btn>-->
|
||||
<!--</q-stepper-navigation>-->
|
||||
<!--</q-step>-->
|
||||
</q-stepper>
|
||||
</CTitleBanner>
|
||||
|
||||
<q-page-sticky expand position="top" v-if="!stepcompleti">
|
||||
<q-toolbar class="bg-yellow-7 glossy text-white">
|
||||
<q-toolbar-title @click="scrolltostep(steptodo)">
|
||||
<div class="flex flex-center q-mt-xs">
|
||||
<div class="flex flex-center">
|
||||
<q-badge color="white" text-color="grey-8" style="opacity: 0.9; font-size: 0.85rem;"
|
||||
:label="strpercstep"></q-badge>
|
||||
</div>
|
||||
<q-linear-progress size="lg" :value="percstep" color="green" class="q-pa-xs q-mb-xs bg-red">
|
||||
</q-linear-progress>
|
||||
</div>
|
||||
<div class="flex flex-center q-mb-xs">
|
||||
<q-badge color="white" text-color="blue" :label="progressstep" class="wrap"
|
||||
style="font-size: 0.85rem; height:20px; font-weight: bold;"></q-badge>
|
||||
</div>
|
||||
</q-toolbar-title>
|
||||
<q-btn round dense icon="arrow_forward" color="blue" @click="scrolltostep(steptodo)"></q-btn>
|
||||
</q-toolbar>
|
||||
</q-page-sticky>
|
||||
|
||||
<div>
|
||||
<div v-if="CompletatoRequisiti" class="centermydiv">
|
||||
<q-btn class="q-mb-md" rounded size="md" color="primary" to="/dashboard"
|
||||
:label="$t('dashboard.entra_in_lavagna')"></q-btn>
|
||||
</div>
|
||||
|
||||
<CTitleBanner class="text-center" :title="$t('home.guida_passopasso')" bgcolor="bg-primary" clcolor="text-white"
|
||||
mystyle="" myclass="myshad" :canopen="true">
|
||||
|
||||
<q-stepper
|
||||
v-model="step"
|
||||
vertical
|
||||
header-nav
|
||||
done-color="green"
|
||||
active-color="blue"
|
||||
inactive-color="grey"
|
||||
animated
|
||||
>
|
||||
<!--
|
||||
<q-step
|
||||
id="step1"
|
||||
:name="1"
|
||||
:title="emailtext"
|
||||
icon="mail"
|
||||
:done="isEmailVerified"
|
||||
:error="!isEmailVerified"
|
||||
:error-icon="geterricon(true)"
|
||||
>
|
||||
<q-stepper-navigation v-if="isEmailVerified">
|
||||
<q-btn @click="step = 2" color="primary" :label="$t('dialog.avanti')"></q-btn>
|
||||
</q-stepper-navigation>
|
||||
|
||||
</q-step>
|
||||
<q-step
|
||||
id="step2"
|
||||
:name="2"
|
||||
:title="telegramtext"
|
||||
icon="fab fa-telegram"
|
||||
:done="TelegVerificato"
|
||||
:error="!TelegVerificato"
|
||||
:error-icon="geterricon(true)"
|
||||
>
|
||||
|
||||
<q-stepper-navigation>
|
||||
<q-btn v-if="TelegVerificato" @click="step = 3" color="primary" :label="$t('dialog.avanti')"></q-btn>
|
||||
<q-btn flat @click="step = 1" color="primary" :label="$t('dialog.indietro')" class="q-ml-sm"></q-btn>
|
||||
</q-stepper-navigation>
|
||||
</q-step>
|
||||
-->
|
||||
<q-step
|
||||
v-for="(mystep, index) in arrsteps"
|
||||
:id="`step`+(index)"
|
||||
:key="mystep.title"
|
||||
:name="index"
|
||||
:title="gettextstep(mystep, index)"
|
||||
:icon="geticonstep(mystep)"
|
||||
:done-color="geticoncolor(mystep.title)"
|
||||
:done="mystep.funccheck(index)"
|
||||
:error="getiferror(mystep.funccheck_error(index), mystep.funccheck(index))"
|
||||
:error-icon="geterricon(mystep.funccheck(index), mystep)"
|
||||
:error-color="geterrcolor(mystep)"
|
||||
>
|
||||
<div v-if="mystep.title === 'reg.email'">
|
||||
<CVerifyEmail>
|
||||
|
||||
</CVerifyEmail>
|
||||
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'reg.telegram'">
|
||||
<q-chip v-if="TelegVerificato" color="positive" text-color="white" icon="fab fa-telegram">
|
||||
{{ telegramtext }}
|
||||
</q-chip>
|
||||
<q-chip v-else color="negative" text-color="white" icon="email">
|
||||
{{ telegramtext }}
|
||||
</q-chip>
|
||||
|
||||
<CVerifyTelegram v-if="TelegCode || !TelegVerificato">
|
||||
|
||||
</CVerifyTelegram>
|
||||
<div v-else>
|
||||
<br>
|
||||
<q-btn color="primary" icon="fab fa-telegram"
|
||||
:label="$t('components.authentication.telegram.openbot', {botname: $t('ws.botname')})"
|
||||
type="a"
|
||||
:href="getLinkBotTelegram" target="_blank"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.linee_guida'">
|
||||
<CGuidelines :showconditions="true">
|
||||
|
||||
</CGuidelines>
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.video_intro'">
|
||||
<CVideoPromo :showconditions="true">
|
||||
|
||||
</CVideoPromo>
|
||||
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.paymenttype'">
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('ws.sitename')})"></div>
|
||||
</div>
|
||||
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('steps.paymenttype_paypal')" bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
myclass="myshad" canopen="true" :visible="false">
|
||||
|
||||
<CVideo myvideokey="RqsWDlpnN3k">
|
||||
|
||||
</CVideo>
|
||||
|
||||
<q-btn class="q-ma-md" size="md" type="a" href="https://www.paypal.com/"
|
||||
target="_blank" rounded color="primary" icon="info"
|
||||
:label="$t('steps.paymenttype_paypal_link')">
|
||||
</q-btn>
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('steps.paymenttype_paypal_carta_conto')"
|
||||
bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
myclass="myshad" canopen="true" :visible="true">
|
||||
|
||||
<CVideo myvideokey="wRNBmQrsnes">
|
||||
|
||||
</CVideo>
|
||||
|
||||
</CTitleBanner>
|
||||
</CTitleBanner>
|
||||
|
||||
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('steps.paymenttype_revolut')" bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
myclass="myshad" canopen="true" :visible="false">
|
||||
|
||||
<CVideo myvideokey="nST5iHM2LbE">
|
||||
|
||||
</CVideo>
|
||||
|
||||
<q-btn class="q-ma-md" size="md" type="a" href="https://www.revolut.com/"
|
||||
target="_blank" rounded color="primary" icon="info"
|
||||
:label="$t('steps.paymenttype_revolut_link')">
|
||||
</q-btn>
|
||||
|
||||
</CTitleBanner>
|
||||
|
||||
<div>
|
||||
|
||||
<!--<CRequisiti :statebool="RequisitoPayment" :msgTrue="$t('steps.paymenttype_long2')"
|
||||
:msgFalse="$t('steps.paymenttype_long2')">
|
||||
</CRequisiti>-->
|
||||
|
||||
<CMyFieldDb :title="$t('reg.paymenttype')"
|
||||
table="users"
|
||||
mykey="profile"
|
||||
mysubkey="paymenttypes"
|
||||
:type="tools.FieldType.multiselect"
|
||||
jointable="paymenttypes">
|
||||
</CMyFieldDb>
|
||||
|
||||
<CMyFieldDb v-if="isselectPaypal" :title="$t('reg.email_paypal')"
|
||||
table="users"
|
||||
mykey="profile"
|
||||
mysubkey="email_paypal"
|
||||
:type="tools.FieldType.string">
|
||||
</CMyFieldDb>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.dream'">
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('ws.sitename')})"></div>
|
||||
</div>
|
||||
<q-input v-model="my_dream" :label="$t('steps.dream')+' (min. 10):'"
|
||||
type="textarea" debounce="1000"
|
||||
input-class="myinput-area-big"
|
||||
autogrow
|
||||
@input="change_mydream">
|
||||
|
||||
</q-input>
|
||||
|
||||
<!--
|
||||
<CMyFieldDb :title="$t('reg.my_dream')"
|
||||
table="users"
|
||||
mykey="profile"
|
||||
mysubkey="my_dream"
|
||||
:type="tools.FieldType.string"
|
||||
>
|
||||
</CMyFieldDb>
|
||||
-->
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.zoom'">
|
||||
|
||||
<CRequisiti :statebool="VistoZoom" :msgTrue="$t('steps.zoom_si_partecipato')"
|
||||
:msgFalse="$t('steps.zoom_no_partecipato')">
|
||||
</CRequisiti>
|
||||
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('ws.sitename')})"></div>
|
||||
</div>
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('steps.zoom_what')" bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
myclass="myshad" canopen="true" :visible="false">
|
||||
<div>
|
||||
<CVideo myvideokey="2yHhNktRDjg">
|
||||
|
||||
</CVideo>
|
||||
|
||||
<div v-if="toolsext.isLang('it')">
|
||||
<h3>ISTRUZIONI ZOOM Cloud Meeting</h3>
|
||||
|
||||
<ul style="text-align: left; font-size:0.75rem;">
|
||||
<li>1. Scarica l'app per: (<a
|
||||
href="https://play.google.com/store/apps/details?id=us.zoom.videomeetings"
|
||||
target="_blank">Android</a> o per
|
||||
<a href="https://apps.apple.com/us/app/zoom-cloud-meetings/id546505307" target="_blank">iPhone</a>
|
||||
o per
|
||||
<a href="https://zoom.us/support/download" target="_blank">PC Desktop</a>
|
||||
)
|
||||
</li>
|
||||
<li>2. Inserisci il tuo Nome e Cognome per essere riconosciuto</li>
|
||||
<li>3. Clicca "join meeting"</li>
|
||||
<li>4. Clicca "call in device" altrimenti non potrai sentire 🔊</li>
|
||||
<li>5. Clicca il microfono per Attivarlo o Silenziarlo.</li>
|
||||
</ul>
|
||||
|
||||
<div class="text-h6"><strong>In più avrai:</strong></div>
|
||||
<ul style="text-align: left; font-size:0.75rem;">
|
||||
<li>Tasto per togliere il video (📹) ❌</li>
|
||||
<li>Tasto 'Share': per condividere contenuti condivisi</li>
|
||||
<li>Tasto 'Partecipants' in cui sulla sinistra, in basso, troverai la CHAT.</li>
|
||||
<li>Tasto 'More': troverai Raise Hands per fare le domande.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div v-else>
|
||||
<h3>ZOOM INSTRUCTIONS</h3>
|
||||
|
||||
<ul style="text-align: left; font-size:0.75rem;">
|
||||
<li>1. Download the app (<a
|
||||
href="https://play.google.com/store/apps/details?id=us.zoom.videomeetings"
|
||||
target="_blank">store</a> or <a href="https://zoom.us/support/download"
|
||||
target="_blank">by PC</a>)
|
||||
</li>
|
||||
<li>2. Enter your first and last name to be recognized</li>
|
||||
<li>3. Click "join meeting"</li>
|
||||
<li>4. Click "call in device" otherwise you won't be able to hear 🔊</li>
|
||||
<li>5. Click the microphone to turn it on or mute it</li>
|
||||
</ul>
|
||||
|
||||
<div class="text-h6"><strong>More you will have:</strong></div>
|
||||
<ul style="text-align: left; font-size:0.75rem;">
|
||||
<li>Cancel button to remove the video (📹) ❌</li>
|
||||
<li>Share' button: to share shared content</li>
|
||||
<li>Participants' button where on the left, at the bottom, you will find the
|
||||
CHAT.
|
||||
</li>
|
||||
<li>Button 'More': you'll find Raise Hands to ask questions.</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.sharemovement'">
|
||||
|
||||
<!--<CRequisiti :statebool="getnuminvitati() >= 2" :msgTrue="$t('steps.sharemovement_hai_invitato')"
|
||||
:msgFalse="$t('steps.sharemovement_devi_invitare_almeno_2')">
|
||||
</CRequisiti>-->
|
||||
|
||||
<q-btn class="q-mb-md" rounded size="md" color="primary" to="/dashboard"
|
||||
:label="$t('pages.dashboard')"></q-btn>
|
||||
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('ws.sitename')})"></div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-center q-ma-sm">
|
||||
<q-btn push
|
||||
rounded
|
||||
color="primary"
|
||||
size="md"
|
||||
:label="$t('pages.invita')"
|
||||
icon="fas fa-user-plus"
|
||||
to="/invite">
|
||||
</q-btn>
|
||||
</div>
|
||||
|
||||
|
||||
<CCopyBtn :title="$t('reg.reflink')" :texttocopy="getRefLink">
|
||||
|
||||
</CCopyBtn>
|
||||
|
||||
<CCopyBtn :title="$t('reg.linkzoom')" :texttocopy="tools.getLinkZoom()">
|
||||
|
||||
</CCopyBtn>
|
||||
|
||||
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'dashboard.inv_attivi'">
|
||||
|
||||
<CRequisiti v-if="getnuminvitati() > 0" :statebool="getnuminvitati_attivi() >= 2"
|
||||
:msgTrue="$t('steps.sharemovement_invitati_attivi_si')"
|
||||
:msgFalse="$t('steps.sharemovement_invitati_attivi_no')">
|
||||
</CRequisiti>
|
||||
|
||||
<q-btn class="q-mb-md" rounded size="md" color="primary" to="/dashboard"
|
||||
:label="$t('pages.dashboard')"></q-btn>
|
||||
|
||||
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('ws.sitename')})"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.enter_prog'">
|
||||
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('ws.sitename')})"></div>
|
||||
</div>
|
||||
|
||||
<div v-if="CompletatoRequisiti && !Completato9Req">
|
||||
<CRequisiti :statebool="CompletatoRequisiti" :msgTrue="$t('steps.enter_prog_requisiti_ok')"
|
||||
:msgFalse="$t('steps.enter_prog_completa_requisiti')">
|
||||
</CRequisiti>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<CRequisiti v-if="Completato9Req" :statebool="Completato9Req"
|
||||
:msgTrue="$t('steps.enter_nave_9req_ok', {sitename: $t('ws.sitename')})"
|
||||
:msgFalse="$t('steps.enter_nave_9req_ko')">
|
||||
</CRequisiti>
|
||||
|
||||
</div>
|
||||
<div v-else>
|
||||
<div v-if="mystep.page">
|
||||
<CMyInnerPage :path=mystep.page>
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('ws.sitename')})"></div>
|
||||
</div>
|
||||
</CMyInnerPage>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<q-stepper-navigation>
|
||||
<q-btn v-if="index < getlaststep" @click="nextstep(index)"
|
||||
color="primary" :label="$t('dialog.avanti')" class="q-ml-sm"></q-btn>
|
||||
<q-btn flat @click="step = index - 1" color="primary" :label="$t('dialog.indietro')"
|
||||
class="q-ml-sm"></q-btn>
|
||||
</q-stepper-navigation>
|
||||
</q-step>
|
||||
|
||||
<!--<q-step-->
|
||||
<!--:name="getlaststep"-->
|
||||
<!--:title="$t('dialog.finish')"-->
|
||||
<!--icon="check-circle"-->
|
||||
<!--:done="step > getlaststep"-->
|
||||
<!-->-->
|
||||
|
||||
<!--<q-stepper-navigation>-->
|
||||
<!--<q-btn flat @click="step = getlaststep - 1" color="primary" :label="$t('dialog.indietro')" class="q-ml-sm"></q-btn>-->
|
||||
<!--</q-stepper-navigation>-->
|
||||
<!--</q-step>-->
|
||||
</q-stepper>
|
||||
|
||||
</CTitleBanner>
|
||||
|
||||
<q-page-sticky expand position="top" v-if="!stepcompleti">
|
||||
<q-toolbar class="bg-yellow-7 glossy text-white">
|
||||
<q-toolbar-title @click="scrolltostep(steptodo)">
|
||||
<div class="flex flex-center q-mt-xs">
|
||||
<div class="flex flex-center">
|
||||
<q-badge color="white" text-color="grey-8" style="opacity: 0.9; font-size: 0.85rem;"
|
||||
:label="strpercstep"></q-badge>
|
||||
</div>
|
||||
<q-linear-progress size="lg" :value="percstep" color="green" class="q-pa-xs q-mb-xs bg-red">
|
||||
</q-linear-progress>
|
||||
</div>
|
||||
<div class="flex flex-center q-mb-xs">
|
||||
<q-badge color="white" text-color="blue" :label="progressstep" class="wrap"
|
||||
style="font-size: 0.85rem; height:20px; font-weight: bold;"></q-badge>
|
||||
</div>
|
||||
</q-toolbar-title>
|
||||
<q-btn round dense icon="arrow_forward" color="blue" @click="scrolltostep(steptodo)"></q-btn>
|
||||
</q-toolbar>
|
||||
</q-page-sticky>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CStatus.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
@import './CStatus.scss';
|
||||
@import './CStatus.scss';
|
||||
</style>
|
||||
|
||||
@@ -21,8 +21,8 @@ export default class CUserBadge extends MixinBase {
|
||||
@Prop({ required: true }) public index: number
|
||||
@Prop({ required: false, default: false }) public yourinvite: boolean
|
||||
@Prop({ required: true }) public user: IUserFields
|
||||
@Prop({ required: true }) public numpeople: number
|
||||
@Prop({ required: true }) public mycolor: string
|
||||
@Prop({ required: false, default: false }) public mydisabled: string
|
||||
@Prop({ required: false, default: true }) public showsteps: boolean
|
||||
@Prop({ required: false, default: true }) public showregalainv: boolean
|
||||
@Prop({ required: false, default: -1 }) public ind_order_ingr: number
|
||||
@@ -51,11 +51,17 @@ export default class CUserBadge extends MixinBase {
|
||||
}
|
||||
|
||||
public getindorder(user) {
|
||||
/*if (!!user.username)
|
||||
return ' (' + user.ind_order + ')'
|
||||
else
|
||||
return ''
|
||||
*/
|
||||
if (!!user.index)
|
||||
return ' (n°' + user.index + ')'
|
||||
return ''
|
||||
}
|
||||
|
||||
public getquanti(user) {
|
||||
if (!!user.quanti) {
|
||||
if (user.quanti > 1) {
|
||||
return ' (' + user.quanti + ' ' + this.$t('reg.volte') + ')'
|
||||
}
|
||||
}
|
||||
return ''
|
||||
}
|
||||
|
||||
@@ -98,7 +104,7 @@ export default class CUserBadge extends MixinBase {
|
||||
}
|
||||
|
||||
public execclick(user) {
|
||||
this.$emit('myclick', user, this.showregalainv, this.ind_order_ingr, this.id_listaingr)
|
||||
this.$emit('myclick', user, this.showregalainv, this.ind_order_ingr, this.id_listaingr, this.mydisabled)
|
||||
}
|
||||
|
||||
public getnumreq(user) {
|
||||
@@ -126,7 +132,7 @@ export default class CUserBadge extends MixinBase {
|
||||
return (user.numinvitati / 2) * 100
|
||||
}
|
||||
|
||||
public getcolorpeople(user){
|
||||
public getcolorpeople(user) {
|
||||
if (user.numinvitati === 1)
|
||||
return 'blue'
|
||||
else if (user.numinvitati === 2)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div v-if="!!user">
|
||||
<div v-if="!!user" :disabled="mydisabled">
|
||||
<q-item class="q-my-sm q-pa-sm myuserbadge shadow-5" clickable v-ripple @click="execclick(user)">
|
||||
<q-item-section avatar v-if="showsteps">
|
||||
<div class="row" style="margin-left: 4px;">
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
<q-item-section>
|
||||
<q-item-label>{{ user.name }} {{ user.surname }} {{ getindorder(user) }}<br>
|
||||
<span class="text-grey">({{ getusername(user) }})</span>
|
||||
<span class="text-grey">({{ getusername(user) }}) {{ getquanti(user)}}</span>
|
||||
<br><!--<span v-if="isextralist(user)" class="notreg">{{ $t('dashboard.notreg') }}</span>-->
|
||||
</q-item-label>
|
||||
<!--<q-item-label caption lines="1">{{ user.email }}</q-item-label>-->
|
||||
|
||||
Reference in New Issue
Block a user