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() })">

View File

@@ -1200,7 +1200,6 @@ h3 {
}
.text-normal {
font-family: 'Open Sans', Arial, sans-serif;
font-size: 1rem;

View File

@@ -91,27 +91,6 @@ const msg_website_it = {
projectsShared: 'Condivisi da me',
myprojects: 'Privati',
favproj: 'Favoriti',
statusreg: {
reg: 'Partecipanti',
verifieds: 'Verificati',
online_today: 'On Line Oggi',
autorizzati: 'Autorizzati',
autorizzare: 'In attesa di Abilitazione',
passeggeri: 'Passeggeri Navi',
giainlista: 'Gia in Lista',
newreg: 'Registrati',
onlineusers: 'OnLine',
diffusori: 'Diffusori',
nationality: 'Nazionalità',
nationality_born: 'Nazione di Nascita',
verified: 'Verificata',
nonverified: 'Non Verificata',
req7: 'Con 5 passi entri nella lista d\'Imbarco',
req9: 'Con 7 passi aiuti {sitename} a Crescere!',
req: 'Passi',
people: 'Inv.',
peoplelegend: 'Numero d\'Invitati',
},
admin_ecommerce: 'ECommerce',
ecommerce: 'Prodotti',
ecommerce_menu: 'ECommerce1',

View File

@@ -33,6 +33,7 @@ export interface INotData {
arr_nations?: string
lastsreg?: IUserFields[]
lastsonline?: IUserFields[]
lastssharedlink?: IUserFields[]
diffusorilist?: IUserFields[]
checkuser?: ICheckUser | any
numreg_untilday?: number

View File

@@ -927,7 +927,21 @@ const msg_enUs = {
},
otherfilters: {
name: 'Altri Filtri'
}
},
statusreg: {
reg: 'Participants',
passeggeri: 'Passengers Ships',
giainlista: 'Already in the List',
newreg: 'New registrations:',
nationality: 'Nationality',
verified: 'Verified',
nonverified: 'Not Verified',
req7: 'With 5 steps you enter the boarding list.',
req9: 'With 7 steps help {sitename} to grow!',
req: 'Steps',
people: 'Gue.',
peoplelegend: 'Number of guests',
},
},
};

View File

@@ -438,7 +438,7 @@ const msg_it = {
invitato_regalato: 'Invitato Regalato',
invitante_regalato: 'Invitante Regalato',
legenda: 'Legenda',
aportador_solidario: 'Chi ti ha Invitato',
aportador_solidario: 'Username di chi ti ha Invitato',
verified_by_aportador: 'Verificato',
notAsk_ToVerify: 'No Verif. Reg',
trust_modified: 'Fiducia Modificata',
@@ -454,6 +454,8 @@ const msg_it = {
reflink: 'Link da condividere ai tuoi invitati:',
linkzoom: 'Link per entrare in Zoom:',
page_title: 'Registrazione',
invitante: 'Sei stato invitato da qualcuno?',
invited_i_know: '',
made_gift: 'Dono',
note: 'Note',
detailsPage: 'Pagina Dettagliata sul Gruppo',
@@ -488,7 +490,7 @@ const msg_it = {
teleg_id_old: 'OLD Tel ID',
teleg_auth: 'Codice Autorizzazione',
click_per_copiare: 'Cliccaci sopra per copiarlo sugli appunti',
invitante: 'Username di chi ti ha invitato',
invitante: 'Ti ha invitato qualcuno a far parte di RISO?',
link_reg: 'Clicca per copiare il link da condividere agli Amici',
link_reg_and_msg: 'Condividi Link ad Amici',
copia_messaggio: 'Copia Messaggio',
@@ -515,6 +517,7 @@ const msg_it = {
username_pseudonimo: 'Username (Pseudonimo)',
username_short: 'Username',
name: 'Nome',
name_opt: 'Nome (Facoltativo)',
surname: 'Cognome',
surname_opt: 'Cognome (facoltativo)',
username_login: 'Username o email',
@@ -617,8 +620,8 @@ const msg_it = {
repeatpassword: 'ripetere la password',
},
byemail: 'Registrati con l\'Email',
bytelegram: 'Registrati con Telegram',
byemail: 'Registrati con l\'Email',
},
op: {
qualification: 'Qualifica',
@@ -1337,7 +1340,30 @@ const msg_it = {
showViewProfile: 'Bott. Profile',
enablePwa: 'PWA',
}
},
statusreg: {
reg: 'Partecipanti',
verifieds: 'Verificati',
online_today: 'On Line Oggi',
autorizzati: 'Autorizzati',
autorizzare: 'In attesa di Abilitazione',
passeggeri: 'Passeggeri Navi',
giainlista: 'Gia in Lista',
newreg: 'Registrati',
onlineusers: 'OnLine',
diffusori: 'Diffusori',
sharedlink: 'Diffusori',
nationality: 'Nazionalità',
nationality_born: 'Nazione di Nascita',
verified: 'Verificata',
nonverified: 'Non Verificata',
req7: 'Con 5 passi entri nella lista d\'Imbarco',
req9: 'Con 7 passi aiuti {sitename} a Crescere!',
req: 'Passi',
people: 'Inv.',
peoplelegend: 'Numero d\'Invitati',
},
},
};

View File

@@ -31,6 +31,8 @@ export default defineComponent({
created()
return {}
return {
tools,
}
},
})

View File

@@ -1,6 +1,6 @@
<template>
<q-page padding class="signup">
<CSignUp :showcell="false" :showaportador="false" :show_namesurname="true" :need_Telegram="false">
<CSignUp :showcell="false" :showaportador="tools.getAskToVerifyReg()" :show_namesurname="true" :need_Telegram="false">
</CSignUp>
</q-page>