- Nuovi Passi da completare: Leggere le Linee Guida e accettare le condizioni

- Aggiunti i Video e confermare di averli visti
 - In "La tua Lavagna" sono stati aggiunti come requisiti: (Accetto le Linee Guida e Vedo il Video di AYNI)
 - Aggiunto bottone "Invita Persone": apre la pagina dove c'è il messaggio da inviare alle persone.
 - La nuova pagina di registrazione https://test.gifteconomy.app/signup/paoloar77, comprende ora il testo delle Linee Guida + i Video, ed in fondo i campi per registrarsi.
This commit is contained in:
Paolo Arena
2020-02-07 22:08:01 +01:00
parent b15edbe5d2
commit 7d8c130ce6
27 changed files with 714 additions and 321 deletions

View File

@@ -19,7 +19,7 @@ export default class CCopyBtn extends Vue {
}
public copytoclip() {
tools.copyStringToClipboard(this, this.texttocopy)
tools.copyStringToClipboard(this, this.texttocopy, true)
}
}

View File

@@ -190,7 +190,7 @@ export default class CGallery extends MixinBase {
public copytoclipboard(rec) {
const filename = this.getfullname(rec)
tools.copyStringToClipboard(this, filename)
tools.copyStringToClipboard(this, filename, true)
}
public async deleteFile(rec) {

View File

@@ -18,6 +18,7 @@ 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'
@Component({
mixins: [validationMixin],
@@ -76,15 +77,29 @@ export default class CMyDashboard extends MixinUsers {
info: '',
},
{
icon: 'fas fa-video',
textlang: 'steps.zoom_partecipa',
icon: 'fas fa-file-signature',
textlang: 'steps.linee_guida',
textadd(user) {
return ''
},
isok(user) {
if (user)
if (user.profile)
return user.profile.saw_zoom_presentation
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: '',

View File

@@ -57,6 +57,17 @@
</div>
</CTitleBanner>
<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>
<CTitleBanner v-if="invitatinotreg" class="shadow-2 rounded-borders" :title="$t('dashboard.downnotreg')"
bgcolor="bg-grey"
clcolor="text-white"
@@ -170,7 +181,8 @@
</div>
</CTitleBanner>
<CTitleBanner v-if="ismydownline(seluser) && (seluser.numinvitati <= 0)" class="shadow-2 rounded-borders text-center"
<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"

View File

@@ -56,7 +56,7 @@
</q-btn>
</div>
<div v-if="static_data.functionality.ENABLE_REGISTRATION" align="center" style="margin-top:10px;">
<q-btn flat rounded size="md" color="primary" to="/signup">{{$t('reg.submit')}}
<q-btn flat rounded size="md" color="primary" to="/signup" :label="$t('reg.submit')">
</q-btn>
</div>

View File

@@ -167,8 +167,7 @@
</div>
<div class="wrapper">
<q-btn rounded size="lg" color="positive" @click="submitOk" :disabled='!allowSubmit'>
{{$t('reg.submit')}}
<q-btn rounded size="lg" color="positive" @click="submitOk" :disabled='!allowSubmit' :label="$t('reg.submit')">
</q-btn>
</div>
</div>

View File

@@ -68,6 +68,10 @@ export default class CSignUpNotevole extends MixinBase {
this.$v.$reset()
this.signup.aportador_solidario = this.$route.params.invited
if (!this.signup.aportador_solidario)
this.signup.aportador_solidario = tools.getCookie(tools.APORTADOR_SOLIDARIO, this.signup.aportador_solidario)
if (!this.signup.aportador_solidario) {
this.signup.aportador_solidario = tools.APORTADOR_NONE
}

View File

@@ -202,8 +202,7 @@
<br>
<div class="text-center">
<q-btn rounded size="sm" color="positive" @click="showdisclaimer = true">
{{$t('privacy_policy')}}
<q-btn rounded size="sm" color="positive" @click="showdisclaimer = true" :label="$t('privacy_policy')">
</q-btn>
</div>
@@ -229,8 +228,7 @@
</div>
<div class="wrapper">
<q-btn rounded size="lg" color="positive" @click="submitOk" :disabled='!allowSubmit'>
{{$t('reg.submit')}}
<q-btn rounded size="lg" color="positive" @click="submitOk" :disabled='!allowSubmit' :label="$t('reg.submit')">
</q-btn>
</div>
</div>

View File

@@ -13,16 +13,21 @@ import { CVerifyEmail } from '../CVerifyTelegram'
import { CCopyBtn } from '../CCopyBtn'
import { CVideo } from '../CVideo'
import { CRequisiti } from '../CRequisiti'
import { shared_consts } from '../../common/shared_vuejs'
import { CGuidelines } from '../CGuidelines'
import { CVideoPromo } from '../CVideoPromo'
@Component({
components: { CTitleBanner, CMyFieldDb, CMyInnerPage, CVerifyTelegram, CVerifyEmail, CCopyBtn, CVideo, CRequisiti }
components: { CTitleBanner, CMyFieldDb, CMyInnerPage, CVerifyTelegram, CVerifyEmail, CCopyBtn, CVideo, CRequisiti, CGuidelines, CVideoPromo }
})
export default class CStatus extends MixinBase {
@Prop({ required: false, default: false }) public dense: boolean
public $v
public $t: any
public step = 1
public NUMSTEP_START = 3
public step = 0
public steptodo = 0
public NUMSTEP_OBBLIGATORI = 9
get numpayment() {
if (UserStore.state.my.profile)
@@ -33,15 +38,86 @@ export default class CStatus extends MixinBase {
}
public arrsteps = [
// {
// title: 'steps.chat_biblio',
// descr: 'steps.chat_biblio_long',
// page: '',
// funccheck(index) {
// return true
// },
// funccheck_error(index) {
// return false
// }
// },
{
title: 'steps.chat_biblio',
descr: 'steps.chat_biblio_long',
title: 'reg.email',
descr: '',
page: '',
icon: 'mail',
funccheck(index) {
return true
return UserStore.state.my.verified_email
},
funccheck_error(index) {
return false
return true
},
funcok() {
return 'pages.statusreg.verified'
},
funcko() {
return 'pages.statusreg.nonverified'
}
},
{
title: 'reg.telegram',
descr: '',
page: '',
icon: 'fab fa-telegram',
funccheck(index) {
return UserStore.state.my.profile.teleg_id > 0
},
funccheck_error(index) {
return true
},
funcok() {
return 'pages.statusreg.verified'
},
funcko() {
return 'pages.statusreg.nonverified'
},
},
{
title: 'steps.linee_guida',
descr: '',
page: '',
funccheck(index) {
return tools.isBitActive(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES)
},
funccheck_error(index) {
return true
},
funcok() {
return ''
},
funcko() {
return ''
}
},
{
title: 'steps.video_intro',
descr: '',
page: '',
funccheck(index) {
return tools.isBitActive(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI)
},
funccheck_error(index) {
return true
},
funcok() {
return ''
},
funcko() {
return ''
}
},
{
@@ -53,7 +129,13 @@ export default class CStatus extends MixinBase {
},
funccheck_error(index) {
return true
}
},
funcok() {
return ''
},
funcko() {
return ''
},
},
{
title: 'steps.dream',
@@ -69,6 +151,12 @@ export default class CStatus extends MixinBase {
funccheck_error(index) {
return true
},
funcok() {
return ''
},
funcko() {
return ''
},
},
{
title: 'steps.paymenttype',
@@ -91,6 +179,12 @@ export default class CStatus extends MixinBase {
funccheck_error(index) {
return true
},
funcok() {
return ''
},
funcko() {
return ''
},
},
{
title: 'steps.sharemovement',
@@ -103,6 +197,12 @@ export default class CStatus extends MixinBase {
funccheck_error(index) {
return true
},
funcok() {
return ''
},
funcko() {
return ''
},
},
{
title: 'steps.enter_prog',
@@ -114,6 +214,12 @@ export default class CStatus extends MixinBase {
funccheck_error(index) {
return false
},
funcok() {
return ''
},
funcko() {
return ''
},
},
{
title: 'steps.collaborate',
@@ -125,6 +231,12 @@ export default class CStatus extends MixinBase {
funccheck_error(index) {
return false
},
funcok() {
return ''
},
funcko() {
return ''
},
},
{
title: 'steps.dono',
@@ -136,6 +248,12 @@ export default class CStatus extends MixinBase {
funccheck_error(index) {
return false
},
funcok() {
return ''
},
funcko() {
return ''
},
},
{
title: 'steps.support',
@@ -147,6 +265,12 @@ export default class CStatus extends MixinBase {
funccheck_error(index) {
return false
},
funcok() {
return ''
},
funcko() {
return ''
},
},
{
title: 'steps.ricevo_dono',
@@ -158,45 +282,40 @@ export default class CStatus extends MixinBase {
funccheck_error(index) {
return false
},
funcok() {
return ''
},
funcko() {
return ''
},
},
/*
sharemovement: 'Condivido il movimento',
sharemovement_long: 'Condivido il movimento con almeno 2 amici e li guido alla registrazione e agli zoom',
enter_prog: 'entro in Programmazione',
enter_prog_long: 'entro in programmazione, e vengo aggiunto al Mandala, ed entro così nella chat corrispondente.',
collaborate: 'Collaborazione',
collaborate_long: 'Continuo a collaborare con il miei compagni, per arrivare al giorno della programmazione dove si attiverà il mio Mandala',
dono: 'Dono',
dono_long: 'Faccio il mio dono al proprietario della Bigliettera',
support: 'Sostengo il movimento',
support_long: 'Continuo a sostenere il movimento partecipando attivamente! Organizzando zoom e partecipando, sostenendo, informando, aiutando e diffondendo',
ricevo_dono: 'Ricevo il mio dono e CELEBRO',
ricevo_dono_long: 'Ricevo il mio dono e CELEBRO',
*/
]
public setstep() {
if (this.isEmailVerified) {
this.step = 2
if (this.TelegVerificato) {
this.step = 3
for (let indstep = 0; indstep < this.arrsteps.length; indstep++) {
if (this.arrsteps[indstep].funccheck(indstep)) {
this.step++
}
}
// if (this.numpayment > 0) {
// this.step = 4
// }
this.step = 0
for (let indstep = 0; indstep < this.arrsteps.length; indstep++) {
if (this.arrsteps[indstep].funccheck(indstep)) {
this.step++
} else {
return
}
}
// console.log('step', this.step)
}
public mounted() {
public setsteptodo() {
this.steptodo = 0
for (let indstep = 0; indstep < this.arrsteps.length; indstep++) {
if (this.arrsteps[indstep].funccheck(indstep)) {
this.steptodo++
} else {
return
}
}
}
public created() {
this.setstep()
this.setsteptodo()
}
get TelegVerificato() {
@@ -207,18 +326,11 @@ export default class CStatus extends MixinBase {
return UserStore.state.my.verified_email
}
get emailtext() {
if (this.isEmailVerified)
return `Email ` + this.$t('pages.statusreg.verified')
else
return `Email ` + this.$t('pages.statusreg.nonverified')
}
get telegramtext() {
if (this.TelegVerificato)
return `Telegram ` + this.$t('pages.statusreg.verified')
return this.$t('reg.telegram') + ' ' + this.$t('pages.statusreg.verified')
else
return `Telegram ` + this.$t('pages.statusreg.nonverified')
return this.$t('reg.telegram') + ' ' + this.$t('pages.statusreg.nonverified')
}
get paymenttext() {
@@ -226,7 +338,7 @@ export default class CStatus extends MixinBase {
}
get getlaststep() {
return this.arrsteps.length + this.NUMSTEP_START - 1
return this.arrsteps.length - 1
}
public getnuminvitati() {
@@ -240,7 +352,7 @@ export default class CStatus extends MixinBase {
public getnuminvitati_attivi() {
if (UserStore.state.my)
if (UserStore.state.my.calcstat)
// console.log('numinvitati', UserStore.state.my.calcstat)
// console.log('numinvitati', UserStore.state.my.calcstat)
return UserStore.state.my.calcstat.numinvitati_attivi
return 0
@@ -249,6 +361,9 @@ export default class CStatus extends MixinBase {
public gettextstep(step) {
let tit = this.$t(step.title)
if (step.funcok())
tit += ' ' + this.$t(step.funcok())
if (step.title === 'steps.sharemovement') {
tit += ' (' + this.getnuminvitati_attivi() + ' / ' + this.getnuminvitati() + ' invitati Attivi)'
} else if (step.title === 'steps.paymenttype') {
@@ -263,7 +378,7 @@ export default class CStatus extends MixinBase {
}
public copylink() {
tools.copyStringToClipboard(this, this.getRefLink)
tools.copyStringToClipboard(this, this.getRefLink, true)
}
public getiferror(checkerror, value) {
@@ -300,12 +415,12 @@ export default class CStatus extends MixinBase {
return 'https://t.me/joinchat/AL2qKExZKvenLgpVhOyefQ'
}
public geticonstep(title) {
if (title === 'steps.chat_biblio') {
return 'settings'
} else {
public geticonstep(mystep) {
if (!!mystep.icon)
return mystep.icon
else
return 'check-circle'
}
}
public geticoncolor(title) {
@@ -349,6 +464,48 @@ export default class CStatus extends MixinBase {
return false
}
get percstep() {
return (this.getstep / this.NUMSTEP_OBBLIGATORI)
}
get getstep() {
let mystep = 0
for (let indstep = 0; indstep < this.arrsteps.length; indstep++) {
if (this.arrsteps[indstep].funccheck(indstep)) {
mystep++
}
}
return mystep
}
get progressstep() {
return this.$t(this.arrsteps[this.steptodo].title)
}
get strpercstep() {
return 'Completati ' + (this.getstep + 1) + ' passi su ' + this.NUMSTEP_OBBLIGATORI
}
get stepcompleti() {
return this.getstep + 1 === this.NUMSTEP_OBBLIGATORI
}
public scrolltostep(mystep) {
this.step = mystep
if (mystep > 0 )
mystep -= 1
const element = document.getElementById('step' + mystep)
tools.scrollToElement(element)
}
public nextstep(index) {
this.step = index + 1
this.setsteptodo()
setTimeout(() => {
this.scrolltostep(this.step)
}, 500)
}
}

View File

@@ -1,44 +1,68 @@
<template>
<div>
<CTitleBanner class="text-center" title="Guida passo passo" bgcolor="bg-primary" clcolor="text-white"
<CTitleBanner class="text-center" :title="$t('home.guida_passopasso')" bgcolor="bg-primary" clcolor="text-white"
mystyle="" myclass="myshad" :canopen="true">
<div class="q-pa-xs">
<q-stepper
v-model="step"
vertical
header-nav
done-color="green"
active-color="blue"
inactive-color="grey"
animated
<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)"
: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))"
>
<q-step
:name="1"
:title="emailtext"
icon="mail"
:done="isEmailVerified"
:error="!isEmailVerified"
:error-icon="geterricon(true)"
>
<div v-if="mystep.title === 'reg.email'">
<CVerifyEmail>
</CVerifyEmail>
<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
:name="2"
:title="telegramtext"
icon="fab fa-telegram"
:done="TelegVerificato"
:error="!TelegVerificato"
:error-icon="geterricon(true)"
>
</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>
@@ -57,214 +81,252 @@
<br>
</div>
</div>
<div v-else-if="mystep.title === 'steps.linee_guida'">
<CGuidelines :showconditions="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"
:key="mystep.title"
:name="NUMSTEP_START + index"
:title="gettextstep(mystep)"
:icon="geticonstep(mystep.title)"
:done-color="geticoncolor(mystep.title)"
:done="mystep.funccheck(index)"
:error="getiferror(mystep.funccheck_error(index), mystep.funccheck(index))"
:error-icon="geterricon(mystep.funccheck(index))"
>
<div v-if="mystep.title === 'steps.paymenttype'">
<div v-if="mystep.descr">
<div v-html="$t(mystep.descr)"></div>
</div>
</CGuidelines>
</div>
<div v-else-if="mystep.title === 'steps.video_intro'">
<CVideoPromo :showconditions="true">
<CTitleBanner class="q-pa-xs" :title="$t('steps.paymenttype_paypal')" bgcolor="bg-primary"
clcolor="text-white"
myclass="myshad" canopen="true" :visible="false">
</CVideoPromo>
<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>
<CTitleBanner class="q-pa-xs" :title="$t('steps.paymenttype_revolut')" bgcolor="bg-primary"
clcolor="text-white"
myclass="myshad" canopen="true" :visible="false">
<CVideo myvideokey="">
</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>
<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.paymenttype'">
<div v-if="mystep.descr">
<div v-html="$t(mystep.descr)"></div>
</div>
<div v-else-if="mystep.title === 'steps.dream'">
<div v-if="mystep.descr">
<div v-html="$t(mystep.descr)"></div>
</div>
<CMyFieldDb :title="$t('reg.my_dream')"
<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>
<CMyFieldDb :title="$t('reg.paymenttype')"
table="users"
mykey="profile"
mysubkey="my_dream"
:type="tools.FieldType.string"
>
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 v-else-if="mystep.title === 'steps.chat_biblio'">
<div v-if="mystep.descr">
<div v-html="$t(mystep.descr)"></div>
</div>
<br><strong>Entra in Chat BiblioBacheca, cliccando qui:</strong>
<div class="landing__footer-icons row flex-center margin_buttons">
<a v-if="!!TelegramBiblio" :href="TelegramBiblio" target="_blank">
<i aria-hidden="true" class="q-icon fab fa-telegram icon_contact links"></i></a>
</div>
</div>
<div v-else-if="mystep.title === 'steps.zoom'">
</div>
<div v-else-if="mystep.title === 'steps.dream'">
<div v-if="mystep.descr">
<div v-html="$t(mystep.descr)"></div>
</div>
<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.chat_biblio'">
<div v-if="mystep.descr">
<div v-html="$t(mystep.descr)"></div>
</div>
<br><strong>Entra in Chat BiblioBacheca, cliccando qui:</strong>
<CRequisiti :statebool="VistoZoom" :msgTrue="$t('steps.zoom_si_partecipato')"
:msgFalse="$t('steps.zoom_no_partecipato')">
</CRequisiti>
<div class="landing__footer-icons row flex-center margin_buttons">
<a v-if="!!TelegramBiblio" :href="TelegramBiblio" target="_blank">
<i aria-hidden="true" class="q-icon fab fa-telegram icon_contact links"></i></a>
</div>
</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)"></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>
<h3>ISTRUZIONI ZOOM</h3>
<ul style="text-align: left; font-size:0.75rem;">
<li>1. Scarica l'app (<a href="https://play.google.com/store/apps/details?id=us.zoom.videomeetings"
target="_blank">store</a> o <a href="https://zoom.us/support/download"
target="_blank">da PC</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 v-if="mystep.descr">
<div v-html="$t(mystep.descr)"></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>
</CTitleBanner>
<h3>ISTRUZIONI ZOOM</h3>
</div>
<div v-else-if="mystep.title === 'steps.sharemovement'">
<ul style="text-align: left; font-size:0.75rem;">
<li>1. Scarica l'app (<a href="https://play.google.com/store/apps/details?id=us.zoom.videomeetings"
target="_blank">store</a> o <a href="https://zoom.us/support/download"
target="_blank">da PC</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>
<CRequisiti :statebool="getnuminvitati() >= 2" :msgTrue="$t('steps.sharemovement_hai_invitato')"
:msgFalse="$t('steps.sharemovement_devi_invitare_almeno_2')">
</CRequisiti>
<CRequisiti v-if="getnuminvitati() > 0" :statebool="getnuminvitati_attivi() >= 2"
:msgTrue="$t('steps.sharemovement_invitati_attivi_si')"
:msgFalse="$t('steps.sharemovement_invitati_attivi_no')">
</CRequisiti>
<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 v-if="mystep.descr">
<div v-html="$t(mystep.descr)"></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>
<q-btn class="q-mb-md" rounded size="md" color="primary" to="/dashboard"
:label="$t('pages.dashboard')"></q-btn>
</div>
<div v-else-if="mystep.title === 'steps.enter_prog'">
<div v-if="mystep.descr">
<div v-html="$t(mystep.descr)"></div>
</div>
<CRequisiti :statebool="CompletatoRequisiti" :msgTrue="$t('steps.enter_prog_requisiti_ok')"
:msgFalse="$t('steps.enter_prog_completa_requisiti')">
</CRequisiti>
<CRequisiti :statebool="CompletatoRequisiti" :msgTrue="$t('steps.enter_prog_status')"
:msgFalse="$t('steps.enter_prog_status')">
</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)"></div>
</div>
</CTitleBanner>
</CMyInnerPage>
</div>
<div v-else-if="mystep.title === 'steps.sharemovement'">
</div>
<CRequisiti :statebool="getnuminvitati() >= 2" :msgTrue="$t('steps.sharemovement_hai_invitato')"
:msgFalse="$t('steps.sharemovement_devi_invitare_almeno_2')">
</CRequisiti>
<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-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"-->
<!--&gt;-->
<div v-if="mystep.descr">
<div v-html="$t(mystep.descr)"></div>
</div>
<CCopyBtn :title="$t('reg.reflink')" :texttocopy="getRefLink">
</CCopyBtn>
<CCopyBtn :title="$t('reg.linkzoom')" :texttocopy="tools.getLinkZoom()">
</CCopyBtn>
<q-btn class="q-mb-md" rounded size="md" color="primary" to="/dashboard"
:label="$t('pages.dashboard')"></q-btn>
</div>
<div v-else-if="mystep.title === 'steps.enter_prog'">
<div v-if="mystep.descr">
<div v-html="$t(mystep.descr)"></div>
</div>
<CRequisiti :statebool="CompletatoRequisiti" :msgTrue="$t('steps.enter_prog_requisiti_ok')"
:msgFalse="$t('steps.enter_prog_completa_requisiti')">
</CRequisiti>
<CRequisiti :statebool="CompletatoRequisiti" :msgTrue="$t('steps.enter_prog_status')"
:msgFalse="$t('steps.enter_prog_status')">
</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)"></div>
</div>
</CMyInnerPage>
</div>
</div>
<q-stepper-navigation>
<q-btn v-if="NUMSTEP_START + index < getlaststep" @click="step = NUMSTEP_START + index + 1"
color="primary" :label="$t('dialog.avanti')" class="q-ml-sm"></q-btn>
<q-btn flat @click="step = NUMSTEP_START + 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"-->
<!--&gt;-->
<!--<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>
</div>
<!--<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-linear-progress size="20px" :value="percstep" color="green" class="q-pa-xs q-mb-xs bg-red">
<div class="absolute-center 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>
</div>
<div class="flex flex-center">
<q-badge color="white" text-color="green" :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" @click="scrolltostep(steptodo)"></q-btn>
</q-toolbar>
</q-page-sticky>
</div>
</template>

View File

@@ -11,13 +11,14 @@
<CCardState :mytext="$t('pages.statusreg.giainlista')" :isperc="true" :myval="datastat.num_reg_lista"
:myperc="perc_reg" :textadd="` / ` + datastat.num_tot_lista"></CCardState>
<div class="q-pa-xs ">
<CCardStat mytext="Partecipato in Zoom" :myval="datastat.num_part_zoom"></CCardStat>
<CCardStat mytext="Hanno scritto il Sogno" :myval="datastat.num_users_dream"></CCardStat>
<CCardStat v-if="emailnonverif" mytext="Email non Verificate" :myval="emailnonverif"
<CCardStat :mytext="$t('stat.accepted')" :myval="datastat.num_part_accepted"></CCardStat>
<CCardStat :mytext="$t('stat.zoom')" :myval="datastat.num_part_zoom"></CCardStat>
<CCardStat :mytext="$t('stat.dream')" :myval="datastat.num_users_dream"></CCardStat>
<CCardStat v-if="emailnonverif" :mytext="$t('stat.email_not_verif')" :myval="emailnonverif"
mycol="negative"></CCardStat>
<CCardStat v-if="telegnonattivi" mytext="Telegram Non Attivi" :myval="telegnonattivi"
<CCardStat v-if="telegnonattivi" :mytext="$t('stat.telegram_non_attivi')" :myval="telegnonattivi"
mycol="negative"></CCardStat>
<CCardStat v-if="datastat.num_teleg_pending > 0" mytext="Telegram Pendenti"
<CCardStat v-if="datastat.num_teleg_pending > 0" :mytext="$t('stat.telegram_pendenti')"
:myval="datastat.num_teleg_pending" mycol="negative"></CCardStat>
</div>

View File

@@ -34,9 +34,9 @@ export default class CTitleBanner extends Vue {
@Prop({ required: false, default: true }) public visible: boolean
@Prop({ required: false, default: false }) public canopen: boolean
public myvisible: boolean = true
public myvisible: boolean = false
public mounted() {
public created() {
this.myvisible = this.visible
}

View File

@@ -19,7 +19,7 @@
</q-banner>
<q-slide-transition>
<div v-show="myvisible" class="rounded-borders">
<div v-if="myvisible" class="rounded-borders">
<slot></slot>
</div>
</q-slide-transition>

View File

@@ -53,3 +53,5 @@ export * from './CUserBadge'
export * from './CMyDashboard'
export * from './CLegenda'
export * from './CRequisito'
export * from './CGuidelines'
export * from './CVideoPromo'