Registrazione: scegliere se Telegram o Email

This commit is contained in:
Surya Paolo
2022-12-12 18:25:19 +01:00
parent ac01af43cb
commit 97b0a72bb0
54 changed files with 463 additions and 1042 deletions

View File

@@ -20,6 +20,11 @@ export default defineComponent({
const $router = useRouter()
const site = ref(globalStore.site)
const chooseReg = ref(false)
const noInvited = ref(false)
const start = ref(false)
const slide= ref('start')
function clickToRegister() {
@@ -35,6 +40,10 @@ export default defineComponent({
tools,
site,
clickToRegister,
chooseReg,
start,
noInvited,
slide,
}
},
})

View File

@@ -1,44 +1,164 @@
<template>
<div v-if="site.confpages.enableReg">
<div
v-if="site.confpages.enableRegMultiChoice"
class="row q-ma-sm centermydiv2 q-pa-sm justify-center align-center"
style=""
>
<div
v-if="site.confpages.enableReg"
class="row q-ma-sm centermydiv2 q-pa-sm justify-center align-center"
>
<div v-if="!start">
<q-btn
rounded
class="flex-item-btn"
icon="fab fa-telegram"
size="md"
glossy
icon="fas fa-user-plus"
size="lg"
color="primary"
to="/bot"
:label="$t('reg.bytelegram')"
>
</q-btn>
<q-btn
rounded
class="flex-item-btn"
outline
icon="fas fa-envelope"
size="md"
:color="$q.dark.isActive ? `black` : `white`"
:text-color="$q.dark.isActive ? `white` : `black`"
to="/signup"
:label="$t('reg.byemail')"
>
</q-btn>
</div>
<div v-else style="margin-top: 10px; text-align: center">
Registrati<br />
<q-btn
rounded
size="md"
color="primary"
@click="clickToRegister"
@click="start = true"
:label="$t('reg.submit')"
>
</q-btn>
</div>
<q-carousel
v-if="start"
v-model="slide"
transition-prev="scale"
transition-next="scale"
animated
control-color="white"
navigation
padding
arrows
height="400px"
class="bg-primary text-white shadow-1 rounded-borders"
>
<q-carousel-slide name="start" class="column no-wrap flex-center">
<q-icon name="fas fa-user" size="56px" />
<div class="q-mt-md text-center">
<span class="text-h6"> {{ $t('reg.invitante') }}</span>
<q-card class="dialog_card q-mb-lg">
<q-card-section class="column q-ma-sm q-pa-sm q-col-gutter-sm">
<q-btn
rounded
glossy
size="lg"
color="positive"
@click="
slide = 'second';
noInvited = false;
chooseReg = true;
"
:label="$t('dialog.yes')"
>
</q-btn>
<q-btn
rounded
glossy
size="lg"
color="negative"
@click="
slide = 'second';
noInvited = true;
chooseReg = false;
"
:label="$t('dialog.no')"
>
</q-btn>
</q-card-section>
</q-card>
</div>
</q-carousel-slide>
<q-carousel-slide name="second">
<div v-if="noInvited" class="text-h7">
<div class="text-center text-bold text-h6">
Se ancora non sei stato invitato:
</div>
<br />
1 👉🏻 Entra nel canale Telegram "Progetto RISO" cliccando qui:<br />
<div class="text-center">
<q-btn
type="a"
rounded
icon="fab fa-telegram"
color="positive"
href="https://t.me/+pZ40VpmL1NhkZjE0"
target="_blank"
label="Progetto RISO"
>
</q-btn>
</div>
<br />
2 👉🏻 sul post del canale fissato in alto, troverai tutte le info sul
progetto e su come entrare nel gruppo della tua provincia.<br />
Potrai cosi richiedere il link una volta entrato nella chat di
gruppo.<br />
</div>
<div v-else-if="chooseReg">
<div class="text-center">
<q-icon name="fas fa-user" size="23px" />
<span class="text-h6"> {{ $t('reg.page_title') }}</span>
<q-card class="q-mt-sm dialog_card q-mb-sm">
<q-card-section>
<div
v-if="site.confpages.enableRegMultiChoice"
style=""
class="row q-ma-sm centermydiv2 q-pa-sm justify-center"
>
<span class="text-black text-h7"
>Chiedi alla persona che ti ha invitato su RISO il suo
Username e poi :</span
><br />
<div class="row items-center">
<div>
<p class="text-bold text-center">
<span style="font-size: 1.5rem">👇🏻 </span>
<span class="text-black">Consigliato </span>
<span style="font-size: 1.5rem"> 👇🏻 </span>
</p>
<q-btn
rounded
class="flex-item-btn"
icon="fab fa-telegram"
size="md"
color="primary"
to="/bot"
:label="$t('reg.bytelegram')"
>
</q-btn>
</div>
</div>
<span class="text-black"
>oppure se non riesci ad installare Telegram: </span
><br />
<q-btn
rounded
class="flex-item-btn"
outline
icon="fas fa-envelope"
size="md"
:color="$q.dark.isActive ? `black` : `white`"
:text-color="$q.dark.isActive ? `white` : `black`"
to="/signup"
:label="$t('reg.byemail')"
>
</q-btn>
</div>
<div v-else style="margin-top: 10px; text-align: center">
Registrati<br />
<q-btn
rounded
size="md"
color="primary"
@click="clickToRegister"
:label="$t('reg.submit')"
>
</q-btn>
</div>
</q-card-section>
</q-card>
</div>
</div>
</q-carousel-slide>
</q-carousel>
</div>
</template>

View File

@@ -64,14 +64,14 @@
</div>
<div
v-if="site.confpages.enableReg && showregbutt && site.confpages.enableRegByBot"
v-if="site.confpages && site.confpages.enableReg && showregbutt && site.confpages.enableRegByBot"
style="margin-top:10px; text-align: center;">
Se non sei ancora Registrato:<br>
<q-btn type="a" rounded size="md" color="primary" href="/bot" :label="$t('reg.submit')">
</q-btn>
</div>
<div
v-else-if="site.confpages.enableReg && showregbutt"
v-else-if="site.confpages && site.confpages.enableReg && showregbutt"
style="margin-top:10px; text-align: center;">
Se non sei ancora Registrato:<br>
<q-btn rounded size="md" color="primary" to="/signup" :label="$t('reg.submit')">

View File

@@ -87,6 +87,8 @@ export default defineComponent({
const typePassword = ref('password')
const ap_iniziale = ref('')
const globalStore = useGlobalStore()
const site = computed(() => globalStore.site)
@@ -130,10 +132,10 @@ export default defineComponent({
if (props.show_namesurname) {
valid.name = {
required,
}
valid.surname = {
required,
}
}
@@ -173,6 +175,10 @@ export default defineComponent({
error = true
}
if (tools.getAskToVerifyReg()) {
error = error || !signup.aportador_solidario
}
return !error
}
@@ -253,6 +259,8 @@ export default defineComponent({
console.log('$route.params', $route.params)
ap_iniziale.value = !!$route.params.invited ? $route.params.invited.toString() : ''
signup.aportador_solidario = !!$route.params.invited ? $route.params.invited.toString() : ''
signup.username = !!$route.params.usernameteleg ? $route.params.usernameteleg.toString() : ''
signup.regexpire = !!$route.params.regexpire ? $route.params.regexpire.toString() : props.regexpire
@@ -269,7 +277,9 @@ export default defineComponent({
signup.aportador_solidario = tools.getCookie(tools.APORTADOR_SOLIDARIO, signup.aportador_solidario)
if (!signup.aportador_solidario || signup.aportador_solidario === 'undefined') {
signup.aportador_solidario = tools.APORTADOR_NONE
if (!tools.getAskToVerifyReg()) {
signup.aportador_solidario = tools.APORTADOR_NONE
}
}
console.log('signup.aportador_solidario', signup.aportador_solidario)
@@ -340,6 +350,7 @@ export default defineComponent({
site,
showPassword,
typePassword,
ap_iniziale,
}
},
})

View File

@@ -98,7 +98,7 @@
signup.aportador_solidario !== tools.APORTADOR_NONE
"
bg-color="lightblue"
:readonly="true"
:readonly="!!ap_iniziale"
v-model="signup.aportador_solidario"
rounded
outlined
@@ -181,7 +181,7 @@
maxlength="30"
debounce="1000"
:error-message="tools.errorMsg('name', v$.name)"
:label="$t('reg.name')"
:label="$t('reg.name_opt')"
>
<template v-slot:prepend>
<q-icon name="person" />

View File

@@ -60,6 +60,7 @@ export default defineComponent({
num_teleg_pending: 0,
lastsreg: [],
lastsonline: [],
lastssharedlink: [],
diffusorilist: [],
checkuser: { verified_email: false }
})
@@ -82,6 +83,9 @@ export default defineComponent({
const lastsonline = computed(() => {
return datastat.value.lastsonline
})
const lastssharedlink = computed(() => {
return datastat.value.lastssharedlink
})
const diffusorilist = computed(() => {
return datastat.value.diffusorilist
})
@@ -201,6 +205,7 @@ export default defineComponent({
emailnonverif,
lastsreg,
lastsonline,
lastssharedlink,
diffusorilist,
datastat,
tools,

View File

@@ -12,7 +12,7 @@
>
<div class="flex flex-center">
<CElemStat
:title="$t('pages.statusreg.reg')"
:title="$t('statusreg.reg')"
icon="fas fa-users"
:value_today="datastat.num_reg_today"
:mytextval="datastat.num_reg"
@@ -22,7 +22,7 @@
</CElemStat>
<CElemStat
:title="$t('pages.statusreg.online_today')"
:title="$t('statusreg.online_today')"
icon="fas fa-wifi"
:mytextval="datastat.online_today"
classColor="text-green"
@@ -30,7 +30,7 @@
>
</CElemStat>
<!--<CCardState :mytext="$t('pages.statusreg.autorizzare')" :myval="datastat.num_autorizzare"
<!--<CCardState :mytext="$t('statusreg.autorizzare')" :myval="datastat.num_autorizzare"
mycolor="yellow" :myperc="(datastat.num_autorizzare / datastat.num_teleg_attivo) * 100"></CCardState>
-->
@@ -56,17 +56,17 @@
<q-tabs v-model="mytab" class="text-blue">
<q-tab
name="reg"
:label="$t('pages.statusreg.newreg')"
:label="$t('statusreg.newreg')"
icon="fas fa-user-plus"
/>
<q-tab
name="online"
:label="$t('pages.statusreg.onlineusers')"
:label="$t('statusreg.onlineusers')"
icon="fas fa-wifi"
/>
<q-tab
name="diffusori"
:label="$t('pages.statusreg.diffusori')"
:label="$t('statusreg.diffusori')"
icon="fas fa-medal"
/>
</q-tabs>
@@ -209,6 +209,58 @@
</q-list>
</div>
</q-tab-panel>
<q-tab-panel name="sharedlink">
<div class="q-pa-md" style="max-width: 300px">
<div class="text-center text-bold text-h6">Registrati con questi invitanti:</div>
<div class="text-center">Cliccare sulla persona per procedere alla registrazione
</div>
<q-list bordered>
<transition-group
name="fade"
mode="out-in"
appear
enter-active-class="animazione fadeIn"
leave-active-class="animazione fadeOut"
>
<q-item
v-for="(user, index) in lastssharedlink"
:key="index"
class="animated chip_shadow q-ma-sm"
clickable
v-ripple
@click="gotoPage(`/signup/${user.username}`)"
>
<q-item-section avatar>
<q-avatar round size="48px">
<img :src="userStore.getImgByProfile(user)" />
<q-badge
v-if="tools.isUserOnline(user)"
align="top"
floating
color="green"
>online</q-badge
>
</q-avatar>
</q-item-section>
<q-item-section class="">
<q-item-label overline>
<div class="index_diffusore">{{ index + 1 }}°</div>
</q-item-label>
<q-item-label>
{{ tools.getNameToShow(user) }}</q-item-label
>
<q-item-label caption>{{
tools.getUserNameOnlyIfToShow(user)
}}</q-item-label>
</q-item-section>
<q-item-section side
><span class="text-h6 q-mr-sm"></span></q-item-section
>
</q-item>
</transition-group>
</q-list>
</div>
</q-tab-panel>
</q-tab-panels>
</div>

View File

@@ -25,7 +25,7 @@
<div class="row q-gutter-xs justify-center items-center">
<div>
<CCardState
:mytext="$t('pages.statusreg.req')" :myval="getnumreq(user)" :myperc="getnumperc(user)" size="50px" size_mob="40px" fontsize="0.85rem"
:mytext="$t('statusreg.req')" :myval="getnumreq(user)" :myperc="getnumperc(user)" size="50px" size_mob="40px" fontsize="0.85rem"
myclass="my-card-small-stat" :mycolor="getcolor(user)"></CCardState>
</div>
@@ -33,7 +33,7 @@ myclass="my-card-small-stat" :mycolor="getcolor(user)"></CCardState>
<q-icon v-if="!isextralist(user)" size="sm" name="fas fa-video" :color="getzoomcolor(user)"></q-icon>-->
<div>
<CCardState
:mytext="$t('pages.statusreg.people')" :myval="getnumpeople(user)" :myperc="getnumpercpeople(user)" size="50px" size_mob="40px" fontsize="0.85rem"
:mytext="$t('statusreg.people')" :myval="getnumpeople(user)" :myperc="getnumpercpeople(user)" size="50px" size_mob="40px" fontsize="0.85rem"
myclass="my-card-small-stat" :mycolor="getcolorpeople(user)"></CCardState>
</div>
<div>

View File

@@ -1,10 +1,10 @@
<template>
<div class="text-center q-gutter-sm q-ma-sm clBorderWarning">
<q-chip v-if="tools.isEmailVerified()" color="positive" text-color="white" icon="email">
{{ `Email ` + $t('pages.statusreg.verified') }}
{{ `Email ` + $t('statusreg.verified') }}
</q-chip>
<q-chip v-else color="negative" text-color="white" icon="email">
{{ `Email ` + $t('pages.statusreg.nonverified') }}
{{ `Email ` + $t('statusreg.nonverified') }}
</q-chip>
<div v-if="!tools.isEmailVerified()" v-html="$t('components.authentication.email_verification.link_sent', {botname: tools.getBotName() })">