2) REGISTRARSI : A) TRAMITE TELEGRAM B) TRAMITE EMAIL.

This commit is contained in:
Surya Paolo
2022-12-08 10:09:33 +01:00
parent 944d121943
commit 56411a4539
15 changed files with 285 additions and 155 deletions

View File

@@ -50,6 +50,7 @@ export const shared_consts = {
CHECKTESTENV: 240,
BTN_REG: 250,
BTN_REG_BYBOT: 255,
REGISTRATION: 258,
BTN_LOGIN: 260,
FOOTER: 270,
},
@@ -1358,6 +1359,10 @@ export const shared_consts = {
value: 135,
label: 'Check App Running',
},
{
value: 258,
label: 'Registration',
},
{
value: 220,
label: 'CHART',

View File

@@ -28,6 +28,7 @@ import { CCheckIfIsLogged } from '@src/components/CCheckIfIsLogged'
import { CSelectFontSize } from '@src/components/CSelectFontSize'
import { CNotifAtTop } from '@src/components/CNotifAtTop'
import { CPresentazione } from '@src/components/CPresentazione'
import { CRegistration } from '@src/components/CRegistration'
import { CShareSocial } from '@src/components/CShareSocial'
import MixinMetaTags from '@/mixins/mixin-metatags'
@@ -45,7 +46,7 @@ export default defineComponent({
CSelectColor, CSelectFontSize, CImgPoster,
CCheckIfIsLogged, CStatusReg, CDashboard, CMainView, CNotifAtTop,
CPresentazione,
CTitleBanner, CShareSocial, CCheckAppRunning,
CTitleBanner, CShareSocial, CCheckAppRunning, CRegistration,
},
emits: ['selElemClick'],
props: {

View File

@@ -439,6 +439,10 @@
<div v-if="editOn" class="elemEdit">CheckAppRunning</div>
<CCheckAppRunning />
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.REGISTRATION">
<div v-if="editOn" class="elemEdit">Registrazione</div>
<CRegistration />
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.DASHBOARD">
<div v-if="editOn" class="elemEdit">CDashboard</div>
<CDashboard></CDashboard>
@@ -480,7 +484,7 @@
Msg di Controllo Verifica Email
</div>
<div class="q-pa-md q-gutter-md">
<div v-if="tools.isLogged() && !isVerified" class="text-verified">
<div v-if="tools.isLogged() && !tools.isVerified()" class="text-verified">
{{ $t('components.authentication.email_verification.link_sent') }}
</div>
</div>

View File

@@ -779,7 +779,6 @@
col.fieldtype === costanti.FieldType.multiselect_by_server
"
>
myvalue: {{myvalue}}
<CMySelect
:type_out="col.field_outtype"
:col="col"

View File

@@ -21,9 +21,20 @@ export default defineComponent({
const site = ref(globalStore.site)
function clickToRegister() {
if (site.value.confpages.enableRegByBot) {
$router.push('/bot')
} else {
$router.push('/signup')
}
}
return {
tools,
site,
clickToRegister,
}
},
})

View File

@@ -1,30 +1,40 @@
<template>
<div>
<div v-if="site.confpages.enableReg">
<div
v-if="site.confpages.enableReg && site.confpages.enableRegByBot"
style="margin-top: 10px; text-align: center"
v-if="site.confpages.enableRegMultiChoice"
class="row q-ma-sm centermydiv2 q-pa-sm justify-center align-center"
style=""
>
Se non sei ancora Registrato:<br />
<q-btn
type="a"
rounded
class="flex-item-btn"
icon="fab fa-telegram"
size="md"
color="primary"
href="/bot"
:label="$t('reg.submit')"
to="/bot"
:label="$t('reg.bytelegram')"
>
</q-btn>
<q-btn
rounded
class="flex-item-btn"
outline
icon="fas fa-envelope"
size="md"
color="black"
text-color="white"
to="/signup"
:label="$t('reg.byemail')"
>
</q-btn>
</div>
<div
v-else-if="site.confpages.enableReg"
style="margin-top: 10px; text-align: center"
>
Se non sei ancora Registrato:<br />
<div v-else style="margin-top: 10px; text-align: center">
Registrati<br />
<q-btn
rounded
size="md"
color="primary"
to="/signup"
@click="clickToRegister"
:label="$t('reg.submit')"
>
</q-btn>

View File

@@ -85,6 +85,8 @@ export default defineComponent({
const visubuttBOT = ref(false)
const isalreadyReg = ref(false)
const typePassword = ref('password')
const globalStore = useGlobalStore()
const site = computed(() => globalStore.site)
@@ -275,7 +277,7 @@ export default defineComponent({
if (tools.getAskToVerifyReg()) {
if (!signup.username || !signup.profile.teleg_id) {
tools.copyStringToClipboard($q, signup.aportador_solidario, true)
// tools.copyStringToClipboard($q, signup.aportador_solidario, true)
visubuttBOT.value = true
// window.location.href = tools.getLinkBotTelegram()
}
@@ -309,6 +311,11 @@ export default defineComponent({
}
function showPassword() {
//
typePassword.value = typePassword.value === 'password' ? 'text' : 'password'
}
created()
return {
@@ -331,6 +338,8 @@ export default defineComponent({
visubuttBOT,
isalreadyReg,
site,
showPassword,
typePassword,
}
},
})

View File

@@ -1,90 +1,119 @@
<template>
<div>
<div v-if="need_Telegram && tools.isLogged() && tools.getUsername()" class="text-center">
<q-banner
rounded
class="bg-green text-white"
style="text-align: center;"
<div
v-if="need_Telegram && tools.isLogged() && tools.getUsername()"
class="text-center"
>
<q-banner rounded class="bg-green text-white" style="text-align: center">
<span class="mybanner">
{{ tools.getUsername() }} sei già correttamente registrato ed hai accesso alla Piattaforma<br>
{{ tools.getUsername() }} sei già correttamente registrato ed hai
accesso alla Piattaforma<br />
</span>
</q-banner>
<div class="row q-ma-sm q-pa-sm justify-center">
<q-btn class="q-ma-sm" color="primary" icon="fas fa-home" label="Vai alla Home" to="/"></q-btn>
<q-btn
class="q-ma-sm"
color="primary"
icon="fas fa-home"
label="Vai alla Home"
to="/"
></q-btn>
<q-btn class="q-ma-sm" color="accent" icon="fas fa-sign" label="Voglio vedere la pagina di Registrazione" @click="visureg = true"></q-btn>
<br>
<q-btn
class="q-ma-sm"
color="accent"
icon="fas fa-sign"
label="Voglio vedere la pagina di Registrazione"
@click="visureg = true"
></q-btn>
<br />
</div>
</div>
<div v-if="!tools.isLogged() || visureg"
class="text-center">
<div v-if="!tools.isLogged() || visureg" class="text-center">
<div>
<div>
<logo></logo>
<logo mystyle="width: 60px !important; height: 60px !important; "></logo>
<q-btn class="q-ma-sm" color="positive" icon="fas fa-home" label="Se sei già Registrato CLICCA QUI" to="/"></q-btn>
<div v-if="need_Telegram" class="mybanner" v-html="t('pages.need_Telegram')"></div><br>
<div
v-if="need_Telegram"
class="mybanner"
v-html="t('pages.need_Telegram')"
></div>
<div v-if="!isalreadyReg && !(visubuttBOT && need_Telegram)">
<CTitleBanner :title="$t('pages.SignUp')"></CTitleBanner>
</div>
</div>
</div>
</div>
<div v-if="visubuttBOT && need_Telegram" class="q-gutter-md">
<q-banner
rounded
class="bg-green-5 text-white"
style="text-align: center;"
style="text-align: center"
>
<div class="q-ma-md">
<q-btn rounded color="primary" icon="fab fa-telegram" :label="$t('components.authentication.telegram.regbot', {botname: tools.getBotName() })"
<q-btn
rounded
color="primary"
icon="fab fa-telegram"
:label="
$t('components.authentication.telegram.regbot', {
botname: tools.getBotName(),
})
"
type="a"
:href="tools.getLinkBotTelegram(signup.aportador_solidario, regexpire)" target="_blank"></q-btn>
<br>
:href="
tools.getLinkBotTelegram(signup.aportador_solidario, regexpire)
"
target="_blank"
></q-btn>
<br />
</div>
</q-banner>
</div>
<div v-else-if="!isalreadyReg" class="q-gutter-sm q-mt-sm">
<div v-if="signup.username === 'undefined'">
<br>
Vai su <b>BOT RISO</b> Telegram ed imposta l'Username di Telegram.<br><br>
<q-btn rounded color="primary" icon="fab fa-telegram" label="Apri BOT"
<br />
Vai su <b>BOT RISO</b> Telegram ed imposta l'Username di Telegram.<br /><br />
<q-btn
rounded
color="primary"
icon="fab fa-telegram"
label="Apri BOT"
type="a"
:href="tools.getLinkBotTelegram(signup.aportador_solidario, regexpire)" target="_blank"></q-btn>
<br><br>
:href="
tools.getLinkBotTelegram(signup.aportador_solidario, regexpire)
"
target="_blank"
></q-btn>
<br /><br />
</div>
<div v-else>
<q-input
v-if="showaportador && signup.aportador_solidario !== tools.APORTADOR_NONE"
v-if="
showaportador &&
signup.aportador_solidario !== tools.APORTADOR_NONE
"
bg-color="lightblue"
:readonly="true"
v-model="signup.aportador_solidario"
rounded outlined
rounded
outlined
@blur="v$.aportador_solidario.$touch"
:error="v$.aportador_solidario.$error"
:error-message="tools.errorMsg('aportador_solidario', v$.aportador_solidario)"
:error-message="
tools.errorMsg('aportador_solidario', v$.aportador_solidario)
"
maxlength="20"
debounce="1000"
:label="$t('reg.aportador_solidario')">
:label="$t('reg.aportador_solidario')"
>
<template v-slot:prepend>
<q-icon name="person" />
</template>
</q-input>
<!--<q-input
@@ -104,119 +133,137 @@
</q-input> -->
<q-input
v-model="signup.email"
rounded
outlined
@update:model-value="changeemail()"
maxlength="50"
debounce="3000"
:rules="[myRuleEmail]"
lazy-rules
:label="$t('reg.email_reg')"
>
<template v-slot:prepend>
<q-icon name="email" />
</template>
</q-input>
<q-input
v-model="signup.username"
:readonly="tools.getAskToVerifyReg()"
rounded outlined
:readonly="tools.getAskToVerifyReg() && !site.confpages.enableRegMultiChoice"
rounded
outlined
@blur="v$.username.$touch"
@update:model-value="changeusername"
:error="v$.username.$error"
@keydown.space="(event) => event.preventDefault()"
maxlength="20"
debounce="1000"
:error-message="tools.errorMsg( 'username', v$.username) || (isalreadyReg ? 'L\'Username è gia stato registrato!' : '')"
:label="$t('reg.username_reg')">
:error-message="
tools.errorMsg('username', v$.username) ||
(isalreadyReg ? 'L\'Username è gia stato registrato!' : '')
"
:label="$t('reg.username_reg')"
>
<template v-slot:prepend>
<q-icon name="person" />
</template>
</q-input>
<q-input
v-model="signup.email"
rounded outlined
@update:model-value="changeemail()"
maxlength="50"
debounce="3000"
:rules="[ myRuleEmail ]"
lazy-rules
:label="$t('reg.email_reg')">
<template v-slot:prepend>
<q-icon name="email"/>
</template>
</q-input>
<div v-if="show_namesurname">
<q-input
v-model="signup.name"
rounded outlined
rounded
outlined
@blur="v$.name.$touch"
:error="v$.name.$error"
maxlength="30"
debounce="1000"
:error-message="tools.errorMsg('name', v$.name)"
:label="$t('reg.name')">
:label="$t('reg.name')"
>
<template v-slot:prepend>
<q-icon name="person" />
</template>
</q-input>
<q-input
v-model="signup.surname"
rounded outlined
rounded
outlined
:error="v$.surname.$error"
@blur="v$.surname.$touch"
maxlength="30"
debounce="1000"
:error-message="tools.errorMsg('surname', v$.surname)"
:label="$t('reg.surname')">
:label="$t('reg.surname_opt')"
>
<template v-slot:prepend>
<q-icon name="person" />
</template>
</q-input>
</div>
<q-input
v-model="signup.password"
type="password"
rounded outlined
:type="typePassword"
rounded
outlined
@blur="v$.password.$touch"
:error="v$.password.$error"
:error-message="`${tools.errorMsg('password', v$.password)}`"
maxlength="30"
debounce="1000"
:label="$t('reg.password_reg')">
:label="$t('reg.password_reg')"
>
<template v-slot:append>
<q-btn
:icon="typePassword === `password` ? `fas fa-eye-slash` : `fas fa-eye`"
@click="showPassword"
>
</q-btn>
</template>
<template v-slot:prepend>
<q-icon name="vpn_key" />
</template>
</q-input>
<q-input
v-model="signup.repeatPassword"
type="password"
:type="typePassword"
maxlength="30"
rounded outlined
rounded
outlined
@blur="v$.repeatPassword.$touch"
:error="v$.repeatPassword.$error"
:error-message="`${tools.errorMsg( 'repeatpassword', v$.repeatPassword)}`"
:label="$t('reg.repeatPassword')">
:error-message="`${tools.errorMsg(
'repeatpassword',
v$.repeatPassword
)}`"
:label="$t('reg.repeatPassword')"
>
<template v-slot:append>
<q-btn
:icon="typePassword === `password` ? `fas fa-eye-slash` : `fas fa-eye`"
@click="showPassword"
>
</q-btn>
</template>
<template v-slot:prepend>
<q-icon name="vpn_key" />
</template>
</q-input>
<q-input
v-if="shownationality"
v-model="countryname"
:readonly="true"
rounded outlined
rounded
outlined
debounce="1000"
:label="$t('reg.nationality')">
:label="$t('reg.nationality')"
>
<template v-slot:prepend>
<!--<vue-country-code
@onSelect="selectcountry"
@@ -226,7 +273,6 @@
</vue-country-code>-->
</template>
</q-input>
<!--<vue-tel-input
@@ -247,10 +293,14 @@
<q-dialog v-model="showpolicy">
<q-card class="dialog_card">
<q-toolbar class="bg-primary text-white">
<q-toolbar-title>
Privacy Policy
</q-toolbar-title>
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
<q-toolbar-title> Privacy Policy </q-toolbar-title>
<q-btn
flat
round
color="white"
icon="close"
v-close-popup
></q-btn>
</q-toolbar>
<q-card-section class="inset-shadow">
<PagePolicy
@@ -264,7 +314,6 @@
:lastdataupdate="site.policy.lastdataupdate"
:country="site.policy.country"
>
</PagePolicy>
</q-card-section>
</q-card>
@@ -276,39 +325,56 @@
@blur="v$.terms.$touch"
:error="v$.terms.$error"
:error-message="`${tools.errorMsg('terms', v$.terms)}`"
:label="$t('reg.terms')">
:label="$t('reg.terms')"
>
</q-checkbox>
<q-checkbox
v-if="showadultcheck"
v-model="iamadult"
color="secondary"
:label="$t('reg.onlyadult')">
:label="$t('reg.onlyadult')"
>
</q-checkbox>
<div v-if="showadultcheck">
<br>
<br />
</div>
<div class="wrapper">
<q-btn rounded size="lg" color="positive" @click="submitOk" :disabled='!allowSubmit()'
:label="$t('reg.submit')">
<div class="column">
<q-btn
rounded
size="lg"
color="positive"
@click="submitOk"
:disabled="!allowSubmit()"
:label="$t('reg.submit')"
>
</q-btn>
</div>
<br>
Già registrato?
<q-btn
class="q-ma-sm"
text-color="black"
color="white"
icon="fas fa-home"
label="Accedi"
to="/"
size="sm"
></q-btn>
<br /><br /><br />
</div>
</div>
<div v-else-if="isalreadyReg">
<q-banner class="bg-negative text-white text-h5" transition-show="jump-down">
<q-banner
class="bg-negative text-white text-h5"
transition-show="jump-down"
>
Utente già registrato con l'username {{ signup.username }}
</q-banner>
</div>
</div>
</div>
</template>

View File

@@ -17,7 +17,7 @@
}
#logoimg {
height: 150px;
height: 100px;
width: auto;
@media screen and (max-width: 600px) {
}

View File

@@ -72,12 +72,12 @@ h1 {
margin-left: auto;
margin-right: auto;
max-height: 250px;
max-width: 250px;
max-height: 200px;
max-width: 200px;
@media (max-width: 718px) {
max-height: 180px;
max-width: 180px;
max-height: 130px;
max-width: 130px;
}
}
@@ -104,6 +104,15 @@ $heightBtn: 100%;
//flex: 0 0 100%;
}
.flex-item-btn {
padding: 8px;
margin: 10px;
line-height: 20px;
font-weight: bold;
font-size: 2em;
text-align: center;
}
.fade-enter-active,
.fade-leave-active {
transition: opacity .2s;

View File

@@ -234,6 +234,7 @@ export interface IConfPages {
enableProj: boolean
enableTodos: boolean
enableRegByBot: boolean
enableRegMultiChoice: boolean
enabledRegNeedTelegram: boolean
showViewGroups: boolean
showViewCircuits: boolean

View File

@@ -573,6 +573,16 @@
:type="costanti.FieldType.boolean"
>
</CMyFieldDb>
<CMyFieldDb
table="sites"
:title="$t('confpages.enableRegMultiChoice')"
:id="mysite._id"
:rec="mysite"
mykey="confpages"
mysubkey="enableRegMultiChoice"
:type="costanti.FieldType.boolean"
>
</CMyFieldDb>
<CMyFieldDb
table="sites"
:title="$t('confpages.enabledRegNeedTelegram')"

View File

@@ -545,7 +545,7 @@ function getRoutesAd(site: ISites) {
separator: false
},
{
active: site.confpages && site.confpages.enableReg && !site.confpages.enabledRegNeedTelegram,
active: site.confpages && site.confpages.enableReg && (!site.confpages.enabledRegNeedTelegram || site.confpages.enableRegMultiChoice),
order: 1000,
path: '/signup',
materialIcon: 'how_to_reg',

View File

@@ -516,6 +516,7 @@ const msg_it = {
username_short: 'Username',
name: 'Nome',
surname: 'Cognome',
surname_opt: 'Cognome (facoltativo)',
username_login: 'Username o email',
password: 'Password',
password_reg: 'Scegli una nuova Password',
@@ -615,6 +616,8 @@ const msg_it = {
repeatpassword: 'ripetere la password',
},
byemail: 'Registrati con l\'Email',
bytelegram: 'Registrati con Telegram',
},
op: {
qualification: 'Qualifica',
@@ -1321,6 +1324,7 @@ const msg_it = {
enableProj: 'Mostra Project',
enableTodos: 'Mostra Todos',
enableRegByBot: 'Registratione By Bot',
enableRegMultiChoice: 'Registratione a Scelta tra Email e Telegram',
enabledRegNeedTelegram: 'Reg con Telegram',
showViewGroups: 'Bott. Gruppi',
showViewUsers: 'Bott. Users',

View File

@@ -163,6 +163,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
enableProj: false,
enableTodos: false,
enableRegByBot: false,
enableRegMultiChoice: false,
enabledRegNeedTelegram: false,
showButtHome: false,
showViewGroups: false,