- Aggiunto Step: i 7 Requisiti degli invitati.
- Aggiornata la Lavagna (anche sul BOT). - Zoom solo 3 visibili.
This commit is contained in:
@@ -1,9 +1,14 @@
|
||||
.lista {
|
||||
.lista, .lista li {
|
||||
text-align: left;
|
||||
font-size: 0.75rem;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
|
||||
.lista-small li {
|
||||
text-align: left;
|
||||
font-size: 0.85rem;
|
||||
}
|
||||
|
||||
.step{
|
||||
font-size: 1.15rem;
|
||||
font-weight: bold;
|
||||
|
||||
@@ -20,16 +20,22 @@ export default class CGuidelines extends MixinBase {
|
||||
public $t: any
|
||||
public $q
|
||||
public msg: string = ''
|
||||
public myguideline: boolean = false
|
||||
|
||||
get static_data() {
|
||||
return static_data
|
||||
}
|
||||
|
||||
get accetta_guideline() {
|
||||
return tools.isBitActive(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES)
|
||||
public created() {
|
||||
this.aggiorna_guideline()
|
||||
}
|
||||
|
||||
set accetta_guideline(value) {
|
||||
public aggiorna_guideline() {
|
||||
this.myguideline = tools.isBitActive(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES)
|
||||
}
|
||||
|
||||
public changeval(value) {
|
||||
console.log('PRIMA saw_and_accepted', UserStore.state.my.profile.saw_and_accepted)
|
||||
if (value)
|
||||
UserStore.state.my.profile.saw_and_accepted = tools.SetBit(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES)
|
||||
else
|
||||
@@ -38,6 +44,9 @@ export default class CGuidelines extends MixinBase {
|
||||
const mydata = {
|
||||
'profile.saw_and_accepted': UserStore.state.my.profile.saw_and_accepted
|
||||
}
|
||||
this.aggiorna_guideline()
|
||||
|
||||
console.log('DOPO saw_and_accepted', UserStore.state.my.profile.saw_and_accepted)
|
||||
|
||||
tools.saveFieldToServer(this, 'users', UserStore.state.my._id, mydata)
|
||||
}
|
||||
|
||||
@@ -3,125 +3,179 @@
|
||||
|
||||
<CTitleBanner title="AYNI GIFT*ECOnomy"></CTitleBanner>
|
||||
<CImgText src="">
|
||||
<p class="cltexth3 text-green-8 q-ma-sm"><span class="boldhigh">Movimento di ECOnomia Solidale</span></p>
|
||||
<p class="cltexth3 text-green-8 q-ma-sm"><span
|
||||
class="boldhigh">Movimento di ECOnomia Solidale ~ AYNI GIFT*ECOnomy</span></p>
|
||||
<p>
|
||||
Ayni è un movimento di economia solidale. Si basa sul concetto del <strong>regalo</strong>: <strong>io
|
||||
regalo</strong> e ricevo in modo libero
|
||||
ed abbondante. È una struttura pensata e creata per permettere alle persone di aiutarsi e sostenersi fra di
|
||||
loro, in modo da realizzare i propri sogni. È un progetto serio che richiede, a chi ne fa parte, di
|
||||
<strong>Ayni</strong> è un movimento di economia solidale. Si basa sulla pratica del <strong>regalo</strong>,
|
||||
del <strong>donare come risorsa e come
|
||||
ricchezza! Dare e donare mi apre al ricevere, crea relazioni basate sull’aiuto e la gratitudine</strong>, non
|
||||
sul profitto.</p>
|
||||
<p>
|
||||
<strong>Ayni</strong> è pensata e creata per permettere alle persone di aiutarsi e sostenersi fra di loro, in
|
||||
modo da realizzare
|
||||
i propri sogni e i propri progetti di vita. È un progetto serio che richiede, a chi ne vuol far parte, di
|
||||
comprendere che questo non è un sistema per guadagnare o un classico fondo di investimento, ma un modo per
|
||||
recuperare quel fattore umano di aiuto reciproco attraverso il continuo sostegno dei nuovi membri supportati
|
||||
da chi ha già fatto esperienza in movimenti di Economia Solidale, che la civiltà moderna capitalista
|
||||
(occidentale) ci sta facendo perdere.</p>
|
||||
|
||||
recuperare quel fattore umano di aiuto reciproco attraverso il continuo sostegno e accompagnamento dei nuovi
|
||||
membri supportati da chi ha già fatto esperienza in questo e in altri movimenti di Economia Solidale, attraverso
|
||||
il fare Rete, creando così <strong>relazioni e esperienze di Valore, generando Ricchezza Reale</strong>.</p>
|
||||
<p class="text-center"><strong>Strumenti necessari per far parte di AYNI</strong></p>
|
||||
<ul class="lista">
|
||||
<li>Cellulare e/o computer</li>
|
||||
<li>App Telegram</li>
|
||||
<li>App Zoom (per Video Conferenze)</li>
|
||||
</ul>
|
||||
<p class="cltexth3 text-red q-ma-lg">Cosa devi fare per poter entrare in Ayni?</p>
|
||||
<p class="cltexth3 text-red q-ma-lg">Cosa devi fare per poter entrare in <strong>Ayni</strong>?</p>
|
||||
<p class="cltexth3 text-blue q-ma-lg">Fase 1: Accoglienza</p>
|
||||
<ul class="lista">
|
||||
<li>Qualcuno ti ha invitato e ti ha dato il link di accesso al sito <strong>AYNI GIFT*ECOnomy.</strong></li>
|
||||
<li>Entri nella chat Telegram <strong>PowerList</strong>, che ti supporterà nella ricerca degli invitati,
|
||||
attraverso
|
||||
l’esperienza e l’aiuto di chi ha già fatto il cammino.
|
||||
<li>Qualcuno ti ha invitato e ti ha dato il link di accesso al sito <strong>AYNI GIFT*ECOnomy.</strong> e ti sei
|
||||
iscritto.
|
||||
</li>
|
||||
<li>Quando avrai trovato i tuoi invitati, potrai a tua volta sostenere i nuovi arrivati in chat.</li>
|
||||
<li>Entri nella chat Telegram <strong>Ayni-BiblioBacheca</strong> che è una chat di informazioni in cui verranno
|
||||
postate
|
||||
giornalmente notizie e novità sul movimento.
|
||||
<li>Entri nella chat Telegram <strong>Ayni EMPOWER</strong>, luogo dove ci incontriamo, accogliamo i nuovi
|
||||
invitati, e ci aiutiamo a sostenere e ad espandere la nostra visione e il movimento.
|
||||
</li>
|
||||
<li>Nella chat Telegram <strong>Ayni Help & Support</strong> potrai entrare ogni volta che avrai domande o
|
||||
dubbi, troverai lo
|
||||
Staff di Ayni ad aiutarti.
|
||||
<li>
|
||||
Entri nel Canale Telegram <strong>AYNI BIBLIO</strong> che è un canale di informazioni in cui vengono postati
|
||||
comunicati,
|
||||
notizie e novità sul movimento.
|
||||
</li>
|
||||
<li>
|
||||
Infine abbiamo Telegram <strong>AYNI HELP</strong> dove puoi entrare ogni volta che dovessero sorgerti domande
|
||||
o dubbi,
|
||||
trovando un aiuto pratico a tua disposizione.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p class="cltexth3 text-blue q-ma-lg">Fase 2: Completamento dei requisiti richiesti</p>
|
||||
<ol class="lista">
|
||||
<li>Leggere le Linee Guida ed accettare tutte le condizioni richieste.</li>
|
||||
<li>Vedere i Video Introduttivi al Movimento.</li>
|
||||
<li>Assistere ad uno <strong>Zoom di Benvenuto</strong> in cui potrai parlare direttamente con gli
|
||||
Amministratori e porre
|
||||
tutte le tue domande.
|
||||
<li>Leggere ed accettare le nostre Linee Guida e Guardare i Video Introduttivi al Movimento.</li>
|
||||
<li>Assistere ad uno <strong>Zoom di Benvenuto</strong> (Video-Conferenza) in cui potrai conoscere il movimento, parlare
|
||||
direttamente con i membri dello Staff, risolvere e chiarire eventuali dubbi.
|
||||
</li>
|
||||
<li>Scrivere <strong>il tuo Sogno</strong> per il quale sei entrato in Ayni e che desideri realizzare.</li>
|
||||
<li>Attivare almeno <strong>2 metodi di pagamento</strong>, uno per il tuo paese di residenza ed uno per
|
||||
transazioni
|
||||
all’estero.<br>
|
||||
PayPal è obbiligatorio, il trasferimento e gratuito e si possono collegare carte e conti correnti.<br>
|
||||
Sono consigliati il Conto Revolut o N26 per le transazioni estere.
|
||||
<li>Scrivere <strong>il tuo Sogno</strong>: qual è la cosa o il progetto che vorresti realizzare e che il tuo
|
||||
Cuore desidera ardentemente?
|
||||
</li>
|
||||
<li>Trovare a tua volta <strong>almeno 2 invitati</strong> (<strong>consigliati 3</strong>) invitando più
|
||||
persone ad assistere agli Zoom di
|
||||
Benvenuto ed assisterli nella registrazione sul sito <strong>AYNI GIFT*ECOnomy</strong>.
|
||||
<li>Attivare almeno <strong>2 metodi di pagamento</strong>.
|
||||
<strong>PayPal</strong> è obbligatorio (occorrono 2 minuti per attivarlo).
|
||||
Ti consente trasferimenti gratuiti in area Euro e puoi collegarci carte e conti
|
||||
correnti. I tuoi dati sono al sicuro e non condivisi con il ricevente.
|
||||
Sono consigliati il conto <strong>Revolut</strong> o <strong>N26</strong> come seconda opzione e <strong>Western Union</strong>, Xoom o TransferWise nei casi di
|
||||
regali extraeuropei.
|
||||
</li>
|
||||
<li>Invitare, invitare, invitare. Accompagnare le persone ad un Zoom di Benvenuto e assisterli nella
|
||||
registrazione al sito. Il movimento è un organismo vivente di cui ora anche tu fai parte. Per ciò ti viene
|
||||
richiesto di coinvolgere attivamente almeno 2 persone, <strong>ne consigliamo 3 in su</strong>, non penso solo a
|
||||
me, ma anche agli altri che ne fanno parte, garantendo e <strong>sostenendo così la solidarietà</strong> dello stesso.
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<p class="cltexth3 text-blue q-ma-lg">Fase 3: Programmazione della Billettera</p>
|
||||
<p class="cltexth3 text-blue q-ma-lg">Fase 3: Programmazione e Attivazione della Billettera</p>
|
||||
|
||||
<p>Ti verrà comunicato con anticipo la data in cui entrerai nella tua Billettera, il nominativo del Sognatore
|
||||
a cui dovrai versare il tuo dono di 33€ ed i suoi estremi di pagamento.</p>
|
||||
<br>
|
||||
<p class="cltexth3 text-green-8 q-ma-lg"><span class="boldhigh">Ora il tuo viaggio comincia !!!</span></p>
|
||||
|
||||
<p class="text-center"><strong>Com’è composta strutturalmente una Billettera AYNI?</strong></p>
|
||||
<p>La sequenza dei passaggi in AYNI è programmata in anticipo, così da</p>
|
||||
<p>In AYNI La sequenza dei passaggi è programmata in anticipo, in modo da:</p>
|
||||
<ul class="lista">
|
||||
<li>garantire che tutto il processo si svolga nei 3 passi previsti</li>
|
||||
<li>fare in modo di realizzare il processo in maniera semplice e automatizzata.</li>
|
||||
<li>garantire che i 3 passi del processo si svolgano nei tempi e nella forma previsti.</li>
|
||||
<li>realizzare e concludere il processo in maniera semplice, godibile e semi-automatizzata.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<p class="cltexth4 text-blue q-ma-lg">I 3 passi</p>
|
||||
|
||||
<p>Dal momento in cui conosco il giorno della partenza della mia bigliettera, i seguenti passi da compiere
|
||||
saranno questi:</p>
|
||||
|
||||
<p class="step">Passo 1:</p>
|
||||
<p class="grass">Entro nella chat Telegram come Donatore:</p>
|
||||
<p>Il mio compito è fare il dono di 33€ al Sognatore.</p>
|
||||
<p class="step">Passo 2:</p>
|
||||
<p class="grass">Apro una chat Telegram e divento Mediatore:</p>
|
||||
<p>il mio compito è quello di assicurarmi che tutti i Donatori facciano il Dono al Sognatore.
|
||||
Il sistema invierà in automatico le istruzioni per fare il Dono, il Mediatore interverrà se ci saranno
|
||||
eventuali problematiche con i metodi di pagamento scelti.</p>
|
||||
<p class="step">Passo 3:</p>
|
||||
<p class="grass">Apro una chat Telegram e divento Sognatore:</p>
|
||||
<p>Il mio compito è quello di ricevere i Doni da tutti i Donatori, aprirmi all’abbondanza e celebrare.
|
||||
<p>La tua Billetera verrà programmata e tu entrerai in una chat coi tuoi compagni di viaggio. Allo stesso tempo,
|
||||
ti verrà comunicata la data in cui la billetera sarà attivata e in cui potrai donare i 33€ e il nominativo e i
|
||||
dati del Sognatore a cui fare il tuo dono.
|
||||
Conoscerai, inoltre, le date di ciascuno dei 3 passi.
|
||||
</p>
|
||||
<br>
|
||||
|
||||
<p style="font-size: 1rem;"><strong>Donatore</strong>: Colui che effettua il Dono di 33€.<br>
|
||||
<strong>Mediatore</strong>: E’ l’intermediario tra i Donatori e il Sognatore.<br>
|
||||
<strong>Sognatore</strong>: Colui che riceve i Doni.<br>
|
||||
<p class="clBorderImportant" style="border-color: grey">
|
||||
Le date di programmazione e dei passi sono intese come ‘<em>previsioni di attivazione e di completamento</em>’.
|
||||
Nel caso
|
||||
il flusso di persone e di invitati non consentisse di mantenere e realizzare quanto programmato nei tempi e
|
||||
forma previsti, le date verranno riprogrammate per permettere il completamento di tutti e non lasciare che il
|
||||
viaggio possa interrompersi.
|
||||
</p>
|
||||
|
||||
<p>Nel fare esperienza dei 3 passi incontreremo e transiteremo in 3 personaggi:</p>
|
||||
|
||||
<p style=""><strong>Donatore</strong>: Colui che effettua il Dono di 33€.<br>
|
||||
<strong>Mediatore</strong>: È il ponte, colui che mette in relazione Donatori e Sognatore.<br>
|
||||
<strong>Sognatore</strong>: Colui che manifesta il suo sogno ricevendo i Doni.<br>
|
||||
</p>
|
||||
|
||||
<CTitleBanner title="Visualizza in Anteprima I 3 Passi (clicca qui)" bgcolor="bg-green-5" canopen="true" :visible="false" imgpreview="statics/images/passo_1.jpg">
|
||||
<p>Dal momento in cui conosco il giorno della partenza della mia bigliettera, i passi da compiere
|
||||
saranno questi:</p>
|
||||
<div class="text-center">
|
||||
<q-img src="statics/images/passo_1.jpg" class="img"></q-img>
|
||||
</div>
|
||||
<p class="grass">Entro nella chat Telegram come Donatore:</p>
|
||||
<p>La chat è formata da 8 donatori e un mediatore.<br>
|
||||
Il mio compito è di regalare 33€ al Sognatore (il mediatore mi guiderà nel processo).<br>
|
||||
Il dono lo farò nella data di attivazione della billetera e del passo 1.</p>
|
||||
<div class="text-center">
|
||||
<q-img src="statics/images/passo_2.jpg" class="img"></q-img>
|
||||
</div>
|
||||
<p class="grass">Apro una chat Telegram e divento Mediatore:</p>
|
||||
<p>La chat è formata da 8 donatori (che aiuterò ad entrare in chat) e da me, il Mediatore.<br>
|
||||
|
||||
Il mio compito è quello di assicurarmi che tutti i Donatori facciano il Dono al Sognatore.
|
||||
Il sistema invierà in automatico le istruzioni per fare il Dono, il Mediatore (io) verificherà e accompagnerà
|
||||
il
|
||||
processo.<br>
|
||||
Il passo 2, di norma, è attivato 4 giorni dopo il passo 1.</p>
|
||||
<!--Contemporaneamente sono ancora attivo nella chat dove sono entrato nel passo 1 (stessa chat e stesse persone),
|
||||
dove ora i ruoli sono ora cambiati, ovvero ci sono 8 mediatori (di cui uno sono io) e un Sognatore (il sognatore a
|
||||
cui i donatori stanno facendo il dono).-->
|
||||
|
||||
<div class="text-center">
|
||||
<q-img src="statics/images/passo_3.jpg" class="img"></q-img>
|
||||
</div>
|
||||
<p class="grass">Divento Sognatore:</p>
|
||||
<p>La chat dove sono Sognatore è la stessa e con le stesse persone aperta nel passo 2 (dove io ero Mediatore) e
|
||||
anche qui cambiano i ruoli, ovvero ora ci sono 8 mediatori e io, il Sognatore.<br>
|
||||
Il mio compito è quello di aprirmi a ricevere i Doni da ciascun Donatore, completarmi e celebrare
|
||||
l’Abbondanza.
|
||||
<br>
|
||||
Il passo 3, di norma, è attivato 4 giorni dopo il passo 2.<br>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</CTitleBanner>
|
||||
|
||||
<p class="text-blue-10 q-ma-lg clBorderImportant text-center" style="font-size: 1.15rem;">La Chat Automatica
|
||||
<strong>AYNI BOT</strong> mi invierà
|
||||
tutte le istruzioni che dovrò compiere,
|
||||
al momento opportuno!</p>
|
||||
|
||||
|
||||
<p class="cltexth2 text-green-8 q-ma-lg"><span class="boldhigh">Bene... Ora mettiti comodo, il tuo viaggio è cominciato!</span>
|
||||
</p>
|
||||
|
||||
<div v-if="showconditions">
|
||||
<p> </p>
|
||||
<CTitleBanner title="Condizioni da Accettare:"></CTitleBanner>
|
||||
<ul class="lista">
|
||||
<CTitleBanner title="Condizioni da Accettare:" bgcolor="bg-red-5"></CTitleBanner>
|
||||
<ul class="lista-small">
|
||||
<li>dichiaro di aver letto e ben compreso le linee guida del movimento AYNI</li>
|
||||
|
||||
<li>dichiaro di aver ben compreso gli impegni che prendo iscrivendomi a AYNI (portare 2 persone, ragalo 33 €) e di
|
||||
<li>dichiaro di aver ben compreso gli impegni che prendo iscrivendomi a AYNI (portare 2 persone, ragalo 33 €)
|
||||
e di
|
||||
aver compreso che senza non verrò inserito in programmazione.
|
||||
</li>
|
||||
|
||||
<li>dichiaro di aver ben compreso che <strong>non è un fondo di investimento e che il mio regalo è a fondo perduto</strong>
|
||||
<li>dichiaro di aver ben compreso che <strong>non è un fondo di investimento e che il mio regalo è a fondo
|
||||
perduto</strong>
|
||||
</li>
|
||||
|
||||
<li>dichiaro di aver ben compreso che devo <strong>partecipare almeno ad uno ZOOM</strong> (Video-Conferenza On Line)</li>
|
||||
<li>dichiaro di aver ben compreso che devo <strong>partecipare almeno ad uno ZOOM</strong> (Video-Conferenza
|
||||
On Line)
|
||||
</li>
|
||||
|
||||
<li>dichiaro di aver ben compreso che per la mia sicurezza devo aprire un <strong>conto Paypal</strong> per consegnare il regalo.
|
||||
<li>dichiaro di aver ben compreso che per la mia sicurezza devo aprire un <strong>conto Paypal</strong> per
|
||||
consegnare il regalo.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<q-checkbox
|
||||
class="bg-grey-4"
|
||||
v-model="accetta_guideline"
|
||||
v-model="myguideline"
|
||||
color="primary"
|
||||
@input="changeval"
|
||||
:label="$t('steps.read_guidelines')">
|
||||
|
||||
</q-checkbox>
|
||||
|
||||
@@ -16,14 +16,11 @@ import { CRequisito } from '../CRequisito'
|
||||
import translate from '../../globalroutines/util'
|
||||
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'
|
||||
import { CMyRequirement } from '../CMyRequirement'
|
||||
|
||||
@Component({
|
||||
mixins: [validationMixin],
|
||||
validations,
|
||||
components: { CProfile, CTitleBanner, CMyFieldDb, CCopyBtn, CUserBadge, CLegenda, CRequisito }
|
||||
components: { CProfile, CTitleBanner, CMyFieldDb, CCopyBtn, CUserBadge, CLegenda, CRequisito, CMyRequirement }
|
||||
})
|
||||
|
||||
export default class CMyDashboard extends MixinUsers {
|
||||
@@ -45,122 +42,6 @@ export default class CMyDashboard extends MixinUsers {
|
||||
|
||||
@Prop({ required: true }) public username
|
||||
|
||||
|
||||
public arrrequisiti = [
|
||||
{
|
||||
icon: 'email',
|
||||
textlang: 'reg.verified_email',
|
||||
textadd(user) {
|
||||
return ''
|
||||
},
|
||||
isok(user) {
|
||||
if (user)
|
||||
return user.verified_email
|
||||
else
|
||||
return false
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
{
|
||||
icon: 'fab fa-telegram',
|
||||
textlang: 'reg.telegram',
|
||||
textadd(user) {
|
||||
return ''
|
||||
},
|
||||
isok(user) {
|
||||
if (user)
|
||||
if (user.profile)
|
||||
return user.profile.teleg_id > 0
|
||||
|
||||
return false
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
{
|
||||
icon: 'fas fa-file-signature',
|
||||
textlang: 'steps.linee_guida',
|
||||
textadd(user) {
|
||||
return ''
|
||||
},
|
||||
isok(user) {
|
||||
if (user)
|
||||
if (user.profile)
|
||||
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: '',
|
||||
},
|
||||
{
|
||||
icon: 'fas fa-heart',
|
||||
textlang: 'steps.dream',
|
||||
textadd(user) {
|
||||
return ''
|
||||
},
|
||||
isok(user) {
|
||||
if (user)
|
||||
if (user.profile.my_dream)
|
||||
return user.profile.my_dream.length > 20
|
||||
else
|
||||
return false
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
{
|
||||
icon: 'far fa-credit-card',
|
||||
textlang: 'steps.paymenttype',
|
||||
textadd(user) {
|
||||
return ''
|
||||
},
|
||||
isok(user) {
|
||||
let ispaypal = false
|
||||
if (user) {
|
||||
if (!!user.profile.paymenttypes) {
|
||||
if (user.profile.paymenttypes.includes('paypal')) {
|
||||
if (user.profile.email_paypal) {
|
||||
ispaypal = true
|
||||
}
|
||||
}
|
||||
if (!!user.profile)
|
||||
if (!!user.profile.paymenttypes) {
|
||||
const ris = (user.profile.paymenttypes.length >= 2) && ispaypal
|
||||
return ris
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return false
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
{
|
||||
icon: 'fas fa-users',
|
||||
textlang: 'dashboard.numinvitati',
|
||||
textadd(user) {
|
||||
return ' (' + user.numinvitatiattivi + ' / ' + user.numinvitati + ')'
|
||||
},
|
||||
isok(user) {
|
||||
if (user) {
|
||||
return user.numinvitatiattivi >= 2
|
||||
}
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
]
|
||||
|
||||
@Watch('UserStore.state.my.dashboard')
|
||||
public changedash() {
|
||||
console.log('changedash')
|
||||
@@ -209,85 +90,4 @@ export default class CMyDashboard extends MixinUsers {
|
||||
this.seluser = user
|
||||
}
|
||||
|
||||
public isextralist(user) {
|
||||
return !!user.cell_complete
|
||||
}
|
||||
|
||||
public ismyinvited_notreg(user) {
|
||||
return this.dashboard.downnotreg.find((rec) => rec.ind_order === user.ind_order)
|
||||
}
|
||||
|
||||
public ismydownline(user) {
|
||||
return this.dashboard.downline.find((rec) => rec.username === user.username)
|
||||
}
|
||||
|
||||
public async deleteUserFromExtraList(user) {
|
||||
|
||||
await tools.askConfirm(this.$q, translate('reg.cancella_invitato'), translate('reg.cancella_invitato') + ' ' + user.name + ' ' + user.surname + '?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.DELETE_EXTRALIST, 0, {
|
||||
param1: user,
|
||||
param2: true
|
||||
})
|
||||
}
|
||||
|
||||
public async deleteUserFromUsersList(user) {
|
||||
|
||||
await tools.askConfirm(this.$q, translate('reg.cancella_invitato'), translate('reg.cancella_invitato') + ' ' + user.name + ' ' + user.surname + '?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.DELETE_USERLIST, 0, {
|
||||
param1: user,
|
||||
param2: true
|
||||
})
|
||||
}
|
||||
|
||||
public async RegalaInvitato(user, aportador_solidario, notifBottxt) {
|
||||
let notiftxt = ''
|
||||
if (this.notifBot)
|
||||
notiftxt = notifBottxt
|
||||
|
||||
await tools.askConfirm(this.$q, translate('reg.regala_invitato'), translate('reg.regala_invitato') + ' ' + user.name + ' ' + user.surname + ' a ' + aportador_solidario + ' ?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.REGALA_INVITATO, 0, {
|
||||
param1: user,
|
||||
param2: aportador_solidario,
|
||||
param3: notiftxt
|
||||
})
|
||||
}
|
||||
|
||||
public errorMsg(cosa: string, item: any) {
|
||||
try {
|
||||
if (!item.$error) {
|
||||
return ''
|
||||
}
|
||||
|
||||
if (item.required !== undefined) {
|
||||
if (!item.required) {
|
||||
return this.$t('reg.err.required')
|
||||
}
|
||||
|
||||
} else if (cosa === 'aportador_solidario') {
|
||||
// console.log(item);
|
||||
if (!item.aportadorexist) {
|
||||
// console.log('!item.aportadorexist !')
|
||||
return this.$t('reg.err.aportador_regalare_not_exist')
|
||||
}
|
||||
}
|
||||
|
||||
return ''
|
||||
} catch (error) {
|
||||
// console.log("ERR : " + error);
|
||||
}
|
||||
}
|
||||
|
||||
get allowSubmit() {
|
||||
let error = this.$v.$error || this.$v.$invalid
|
||||
|
||||
error = error || (this.aportador_solidario === this.seluser.aportador_solidario)
|
||||
|
||||
return !error
|
||||
|
||||
}
|
||||
|
||||
get getnotifBotTxt() {
|
||||
return this.$t('dashboard.ricevuto_dono', {
|
||||
invitato: this.seluser.name + ' ' + this.seluser.surname,
|
||||
mittente: this.dashboard.myself.username
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,13 @@
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('pages.dashboard')" bgcolor="bg-info" clcolor="text-white"
|
||||
mystyle=" " myclass="myshad">
|
||||
|
||||
<div v-if="!!dashboard.myself.name">
|
||||
|
||||
|
||||
<CMyRequirement :myseluser="dashboard.myself" :mydashboard="dashboard">
|
||||
|
||||
</CMyRequirement>
|
||||
</div>
|
||||
|
||||
<CTitleBanner class="shadow-2" :title="$t('reg.aportador_solidario')" bgcolor="bg-accent"
|
||||
clcolor="text-white"
|
||||
@@ -111,6 +118,7 @@
|
||||
bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
<p class="q-ml-sm">Clicca sul nome dell'invitato per vedere lo stato dei suoi Requisiti.</p>
|
||||
<q-list bordered class="rounded-borders row justify-between">
|
||||
<CLegenda icon="fab fa-telegram" :text="`Telegram ` + $t('pages.statusreg.verified')"></CLegenda>
|
||||
<CLegenda icon="fas fa-video" :text="$t('pages.statusreg.seezoom')"></CLegenda>
|
||||
@@ -122,102 +130,17 @@
|
||||
<br>
|
||||
|
||||
<q-dialog v-model="showuserinfo">
|
||||
<q-card v-if="seluser" :style="`min-width: `+ tools.myheight_dialog() + `px;`">
|
||||
<q-toolbar class="bg-primary text-white">
|
||||
<q-card v-if="seluser" :style="`min-width: `+ tools.myheight_dialog() + `px;` ">
|
||||
<q-toolbar class="bg-primary text-white" style="min-height: 30px;">
|
||||
<q-toolbar-title>
|
||||
Info:
|
||||
{{$t('reg.requirement')}}
|
||||
</q-toolbar-title>
|
||||
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
||||
</q-toolbar>
|
||||
<q-card-section class="inset-shadow">
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="seluser.name + ` ` + seluser.surname"
|
||||
bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
<q-card-section class="inset-shadow" style="padding: 4px !important;">
|
||||
<CMyRequirement :myseluser="seluser" :mydashboard="dashboard" :notitle="false">
|
||||
|
||||
|
||||
<div v-if="!ismyinvited_notreg(seluser)" class="text-center">
|
||||
|
||||
<div v-if="!isextralist(seluser)">
|
||||
<div v-for="req of arrrequisiti">
|
||||
<CRequisito :icon="req.icon" :text="$t(req.textlang) + req.textadd(seluser)" :isok="req.isok(seluser)"
|
||||
:info="req.info"></CRequisito>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div v-if="ismydownline(seluser)">
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="$t('reg.regala_invitato')"
|
||||
bgcolor="bg-positive"
|
||||
clcolor="text-white"
|
||||
:visible="false"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<div class="column q-gutter-sm justify-center text-center">
|
||||
<q-input
|
||||
bg-color="lightblue"
|
||||
v-model="aportador_solidario"
|
||||
rounded outlined
|
||||
@blur="$v.aportador_solidario.$touch"
|
||||
:error="$v.aportador_solidario.$error"
|
||||
:error-message="errorMsg('aportador_solidario', $v.aportador_solidario)"
|
||||
maxlength="20"
|
||||
debounce="1000"
|
||||
|
||||
:label="$t('reg.username_regala_invitato')">
|
||||
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="person"/>
|
||||
</template>
|
||||
|
||||
</q-input>
|
||||
|
||||
<q-toggle v-model="notifBot" :label="$t('dashboard.sendnotification')"/>
|
||||
|
||||
<q-btn class="q-ma-sm" rounded color="positive" text-color="white" icon="fas fa-gift"
|
||||
:label="$t('reg.regala_invitato')"
|
||||
:disabled='!allowSubmit'
|
||||
@click="RegalaInvitato(seluser, aportador_solidario, getnotifBotTxt)"></q-btn>
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
|
||||
<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"
|
||||
:visible="false"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<q-btn rounded text-color="red" icon="delete"
|
||||
:label="$t('reg.cancella_invitato')"
|
||||
@click="deleteUserFromUsersList(seluser)"></q-btn>
|
||||
</CTitleBanner>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else>
|
||||
<div class="column justify-center q-gutter-sm q-pa-sm">
|
||||
|
||||
<CRequisito icon="fas fa-user" :text="$t('dashboard.notreg')" :isok="false"
|
||||
info=""></CRequisito>
|
||||
|
||||
<CTitleBanner class="shadow-2 rounded-borders text-center"
|
||||
:title="$t('reg.cancella_invitato')"
|
||||
bgcolor="bg-negative"
|
||||
clcolor="text-white"
|
||||
:visible="false"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
<q-btn rounded text-color="red" icon="delete" :label="$t('reg.cancella_invitato')"
|
||||
@click="deleteUserFromExtraList(seluser)"></q-btn>
|
||||
</CTitleBanner>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</CTitleBanner>
|
||||
</CMyRequirement>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
|
||||
0
src/components/CMyRequirement/CMyRequirement.scss
Normal file
0
src/components/CMyRequirement/CMyRequirement.scss
Normal file
293
src/components/CMyRequirement/CMyRequirement.ts
Normal file
293
src/components/CMyRequirement/CMyRequirement.ts
Normal file
@@ -0,0 +1,293 @@
|
||||
import { Component, Prop, Watch } from 'vue-property-decorator'
|
||||
|
||||
import { UserStore } from '../../store/Modules'
|
||||
import { DefaultUser } from '@src/store/Modules/UserStore'
|
||||
|
||||
import MixinUsers from '../../mixins/mixin-users'
|
||||
import { CProfile } from '../CProfile'
|
||||
import { CTitleBanner } from '../CTitleBanner'
|
||||
import { CMyFieldDb } from '../CMyFieldDb'
|
||||
import { CCopyBtn } from '../CCopyBtn'
|
||||
import { CUserBadge } from '../CUserBadge'
|
||||
import { CLegenda } from '../CLegenda'
|
||||
import { IDashboard, IUserProfile } from '../../model'
|
||||
import { IUserFields } from '../../model/UserStore'
|
||||
import { CRequisito } from '../CRequisito'
|
||||
import translate from '../../globalroutines/util'
|
||||
import { tools } from '../../store/Modules/tools'
|
||||
import { lists } from '../../store/Modules/lists'
|
||||
import { validations } from './CMyRequirement-validate'
|
||||
import { validationMixin } from 'vuelidate'
|
||||
import { shared_consts } from '../../common/shared_vuejs'
|
||||
|
||||
@Component({
|
||||
mixins: [validationMixin],
|
||||
validations,
|
||||
components: { CProfile, CTitleBanner, CMyFieldDb, CCopyBtn, CUserBadge, CLegenda, CRequisito }
|
||||
})
|
||||
|
||||
export default class CMyRequirement extends MixinUsers {
|
||||
@Prop({ required: true }) public myseluser
|
||||
@Prop({ required: true }) public mydashboard
|
||||
@Prop({ required: false, default: false }) public notitle
|
||||
public $t
|
||||
public $v
|
||||
public $q
|
||||
public notifBot: boolean = true
|
||||
public aportador_solidario: string = ''
|
||||
public seluser: IUserFields = DefaultUser
|
||||
public dashboard: IDashboard = {
|
||||
myself: DefaultUser,
|
||||
aportador: DefaultUser,
|
||||
numpeople_aportador: 0,
|
||||
downline: [],
|
||||
downnotreg: [],
|
||||
downbyuser: []
|
||||
}
|
||||
|
||||
@Watch('mydashboard')
|
||||
public changedash() {
|
||||
console.log('changedash')
|
||||
this.dashboard = this.mydashboard
|
||||
}
|
||||
|
||||
@Watch('myusersel')
|
||||
public changemyusersel() {
|
||||
console.log('myseluser')
|
||||
this.seluser = this.myseluser
|
||||
}
|
||||
|
||||
public arrrequisiti = [
|
||||
{
|
||||
icon: 'email',
|
||||
textlang: 'reg.verified_email',
|
||||
textadd(user) {
|
||||
return ''
|
||||
},
|
||||
isok(user) {
|
||||
if (user)
|
||||
return user.verified_email
|
||||
else
|
||||
return false
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
{
|
||||
icon: 'fab fa-telegram',
|
||||
textlang: 'reg.telegram',
|
||||
textadd(user) {
|
||||
return ''
|
||||
},
|
||||
isok(user) {
|
||||
if (user)
|
||||
if (user.profile)
|
||||
return user.profile.teleg_id > 0
|
||||
|
||||
return false
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
{
|
||||
icon: 'fas fa-file-signature',
|
||||
textlang: 'steps.linee_guida',
|
||||
textadd(user) {
|
||||
return ''
|
||||
},
|
||||
isok(user) {
|
||||
if (user)
|
||||
if (user.profile)
|
||||
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: '',
|
||||
},
|
||||
{
|
||||
icon: 'fas fa-video',
|
||||
textlang: 'steps.zoom',
|
||||
textadd(user) {
|
||||
return ''
|
||||
},
|
||||
isok(user) {
|
||||
if (user) {
|
||||
return user.profile.saw_zoom_presentation
|
||||
}
|
||||
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
{
|
||||
icon: 'fas fa-heart',
|
||||
textlang: 'steps.dream',
|
||||
textadd(user) {
|
||||
return ''
|
||||
},
|
||||
isok(user) {
|
||||
if (user)
|
||||
if (user.profile.my_dream)
|
||||
return user.profile.my_dream.length > 20
|
||||
else
|
||||
return false
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
{
|
||||
icon: 'far fa-credit-card',
|
||||
textlang: 'steps.paymenttype',
|
||||
textadd(user) {
|
||||
return ''
|
||||
},
|
||||
isok(user) {
|
||||
let ispaypal = false
|
||||
if (user) {
|
||||
if (!!user.profile.paymenttypes) {
|
||||
if (user.profile.paymenttypes.includes('paypal')) {
|
||||
if (user.profile.email_paypal) {
|
||||
ispaypal = true
|
||||
}
|
||||
}
|
||||
if (!!user.profile)
|
||||
if (!!user.profile.paymenttypes) {
|
||||
const ris = (user.profile.paymenttypes.length >= 1) && ispaypal
|
||||
return ris
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return false
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
{
|
||||
icon: 'fas fa-users',
|
||||
textlang: 'steps.sharemovement',
|
||||
textadd(user) {
|
||||
return ''
|
||||
},
|
||||
isok(user) {
|
||||
if (user) {
|
||||
return user.numinvitati >= 2
|
||||
}
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
{
|
||||
icon: 'fas fa-users',
|
||||
textlang: 'dashboard.inv_attivi',
|
||||
textadd(user) {
|
||||
return ' (' + user.numinvitatiattivi + ')'
|
||||
},
|
||||
isok(user) {
|
||||
if (user) {
|
||||
return user.numinvitatiattivi >= 2
|
||||
}
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
]
|
||||
|
||||
get mythis() {
|
||||
return this
|
||||
}
|
||||
|
||||
public created() {
|
||||
this.dashboard = this.mydashboard
|
||||
this.seluser = this.myseluser
|
||||
|
||||
}
|
||||
|
||||
public isextralist(user) {
|
||||
return !!user.cell_complete
|
||||
}
|
||||
|
||||
public ismyinvited_notreg(user) {
|
||||
return this.dashboard.downnotreg.find((rec) => rec.ind_order === user.ind_order)
|
||||
}
|
||||
|
||||
public ismydownline(user) {
|
||||
return this.dashboard.downline.find((rec) => rec.username === user.username)
|
||||
}
|
||||
|
||||
public async deleteUserFromExtraList(user) {
|
||||
|
||||
await tools.askConfirm(this.$q, translate('reg.cancella_invitato'), translate('reg.cancella_invitato') + ' ' + user.name + ' ' + user.surname + '?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.DELETE_EXTRALIST, 0, {
|
||||
param1: user,
|
||||
param2: true
|
||||
})
|
||||
}
|
||||
|
||||
public async deleteUserFromUsersList(user) {
|
||||
|
||||
await tools.askConfirm(this.$q, translate('reg.cancella_invitato'), translate('reg.cancella_invitato') + ' ' + user.name + ' ' + user.surname + '?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.DELETE_USERLIST, 0, {
|
||||
param1: user,
|
||||
param2: true
|
||||
})
|
||||
}
|
||||
|
||||
public async RegalaInvitato(user, aportador_solidario, notifBottxt) {
|
||||
let notiftxt = ''
|
||||
if (this.notifBot)
|
||||
notiftxt = notifBottxt
|
||||
|
||||
await tools.askConfirm(this.$q, translate('reg.regala_invitato'), translate('reg.regala_invitato') + ' ' + user.name + ' ' + user.surname + ' a ' + aportador_solidario + ' ?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.REGALA_INVITATO, 0, {
|
||||
param1: user,
|
||||
param2: aportador_solidario,
|
||||
param3: notiftxt
|
||||
})
|
||||
}
|
||||
|
||||
public errorMsg(cosa: string, item: any) {
|
||||
try {
|
||||
if (!item.$error) {
|
||||
return ''
|
||||
}
|
||||
|
||||
if (item.required !== undefined) {
|
||||
if (!item.required) {
|
||||
return this.$t('reg.err.required')
|
||||
}
|
||||
|
||||
} else if (cosa === 'aportador_solidario') {
|
||||
// console.log(item);
|
||||
if (!item.aportadorexist) {
|
||||
// console.log('!item.aportadorexist !')
|
||||
return this.$t('reg.err.aportador_regalare_not_exist')
|
||||
}
|
||||
}
|
||||
|
||||
return ''
|
||||
} catch (error) {
|
||||
// console.log("ERR : " + error);
|
||||
}
|
||||
}
|
||||
|
||||
get allowSubmit() {
|
||||
let error = this.$v.$error || this.$v.$invalid
|
||||
|
||||
error = error || (this.aportador_solidario === this.seluser.aportador_solidario)
|
||||
|
||||
return !error
|
||||
|
||||
}
|
||||
|
||||
get getnotifBotTxt() {
|
||||
return this.$t('dashboard.ricevuto_dono', {
|
||||
invitato: this.seluser.name + ' ' + this.seluser.surname,
|
||||
mittente: this.dashboard.myself.username
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
98
src/components/CMyRequirement/CMyRequirement.vue
Normal file
98
src/components/CMyRequirement/CMyRequirement.vue
Normal file
@@ -0,0 +1,98 @@
|
||||
<template>
|
||||
<div>
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="$t('reg.requirement') + ` - ` + seluser.name + ` ` + seluser.surname + ``"
|
||||
bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
|
||||
<div v-if="!ismyinvited_notreg(seluser)" class="text-center">
|
||||
|
||||
<div v-if="!isextralist(seluser)">
|
||||
<div v-for="(req, index) of arrrequisiti">
|
||||
<CRequisito :icon="req.icon" :text="(index + 1) + `. ` + $t(req.textlang) + req.textadd(seluser)" :isok="req.isok(seluser)"
|
||||
:info="req.info"></CRequisito>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div v-if="ismydownline(seluser)">
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="$t('reg.regala_invitato')"
|
||||
bgcolor="bg-positive"
|
||||
clcolor="text-white"
|
||||
:visible="false"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<div class="column q-gutter-sm justify-center text-center">
|
||||
<q-input
|
||||
bg-color="lightblue"
|
||||
v-model="aportador_solidario"
|
||||
rounded outlined
|
||||
@blur="$v.aportador_solidario.$touch"
|
||||
:error="$v.aportador_solidario.$error"
|
||||
:error-message="errorMsg('aportador_solidario', $v.aportador_solidario)"
|
||||
maxlength="20"
|
||||
debounce="1000"
|
||||
|
||||
:label="$t('reg.username_regala_invitato')">
|
||||
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="person"/>
|
||||
</template>
|
||||
|
||||
</q-input>
|
||||
|
||||
<q-toggle v-model="notifBot" :label="$t('dashboard.sendnotification')"/>
|
||||
|
||||
<q-btn class="q-ma-sm" rounded color="positive" text-color="white" icon="fas fa-gift"
|
||||
:label="$t('reg.regala_invitato')"
|
||||
:disabled='!allowSubmit'
|
||||
@click="RegalaInvitato(seluser, aportador_solidario, getnotifBotTxt)"></q-btn>
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
|
||||
<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"
|
||||
:visible="false"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<q-btn rounded text-color="red" icon="delete"
|
||||
:label="$t('reg.cancella_invitato')"
|
||||
@click="deleteUserFromUsersList(seluser)"></q-btn>
|
||||
</CTitleBanner>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else>
|
||||
<div class="column justify-center q-gutter-sm q-pa-sm">
|
||||
|
||||
<CRequisito icon="fas fa-user" :text="$t('dashboard.notreg')" :isok="false"
|
||||
info=""></CRequisito>
|
||||
|
||||
<CTitleBanner class="shadow-2 rounded-borders text-center"
|
||||
:title="$t('reg.cancella_invitato')"
|
||||
bgcolor="bg-negative"
|
||||
clcolor="text-white"
|
||||
:visible="false"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
<q-btn rounded text-color="red" icon="delete" :label="$t('reg.cancella_invitato')"
|
||||
@click="deleteUserFromExtraList(seluser)"></q-btn>
|
||||
</CTitleBanner>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CMyRequirement.ts">
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import './CMyRequirement.scss';
|
||||
</style>
|
||||
1
src/components/CMyRequirement/index.ts
Normal file
1
src/components/CMyRequirement/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export {default as CMyRequirement} from './CMyRequirement.vue'
|
||||
@@ -22,7 +22,7 @@ export default class CNextZoom extends MixinBase {
|
||||
public $t
|
||||
|
||||
get listacalzoom() {
|
||||
return GlobalStore.state.calzoom
|
||||
return GlobalStore.state.calzoom.slice(-3)
|
||||
}
|
||||
|
||||
get nextconf() {
|
||||
|
||||
@@ -25,6 +25,8 @@ import { static_data } from '../../db/static_data'
|
||||
})
|
||||
|
||||
export default class CSignIn extends Vue {
|
||||
@Prop({required: true}) public showregbutt: boolean
|
||||
|
||||
public $v
|
||||
public loading: boolean
|
||||
public $t: any
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
v-model="signin.password"
|
||||
type="password"
|
||||
rounded outlined dense
|
||||
v-on:keyup.enter="submit()"
|
||||
@blur="$v.signin.password.$touch"
|
||||
:error="$v.signin.password.$error"
|
||||
:error-message="`${errorMsg('password', $v.signin.password)}`"
|
||||
@@ -37,9 +38,6 @@
|
||||
</template>
|
||||
|
||||
</q-input>
|
||||
<div class="text-center" style="margin-bottom: 10px;">
|
||||
<a :href="getlinkforgetpwd()" style="color:gray;">{{$t('reg.forgetpassword')}}</a>
|
||||
</div>
|
||||
|
||||
|
||||
<!--<q-card class="flex flex-center">-->
|
||||
@@ -55,10 +53,15 @@
|
||||
:disable="$v.$error || iswaitingforRes">{{$t('login.enter')}}
|
||||
</q-btn>
|
||||
</div>
|
||||
<div v-if="static_data.functionality.ENABLE_REGISTRATION" align="center" style="margin-top:10px;">
|
||||
<div v-if="static_data.functionality.ENABLE_REGISTRATION && showregbutt" align="center" style="margin-top:10px;">
|
||||
<q-btn flat rounded size="md" color="primary" to="/signup" :label="$t('reg.submit')">
|
||||
</q-btn>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="text-center" style="margin-bottom: 10px;">
|
||||
<a :href="getlinkforgetpwd()" style="color:gray;">{{$t('reg.forgetpassword')}}</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -69,14 +69,17 @@ export default class CSignUpNotevole extends MixinBase {
|
||||
|
||||
this.signup.aportador_solidario = this.$route.params.invited
|
||||
|
||||
console.log('1) aportador_solidario', this.signup.aportador_solidario)
|
||||
|
||||
if (!this.signup.aportador_solidario)
|
||||
this.signup.aportador_solidario = tools.getCookie(tools.APORTADOR_SOLIDARIO, this.signup.aportador_solidario)
|
||||
|
||||
if (!this.signup.aportador_solidario) {
|
||||
if (!this.signup.aportador_solidario || this.signup.aportador_solidario === 'undefined') {
|
||||
this.signup.aportador_solidario = tools.APORTADOR_NONE
|
||||
}
|
||||
this.$v.signup.aportador_solidario.$touch()
|
||||
|
||||
console.log('this.signup.aportador_solidario', this.signup.aportador_solidario)
|
||||
}
|
||||
|
||||
// @Watch('signup.already_registered')
|
||||
|
||||
@@ -28,6 +28,7 @@ export default class CStatus extends MixinBase {
|
||||
public step = 0
|
||||
public steptodo = 0
|
||||
public NUMSTEP_OBBLIGATORI = 9
|
||||
public my_dream: string = ''
|
||||
|
||||
get numpayment() {
|
||||
if (UserStore.state.my.profile)
|
||||
@@ -143,7 +144,7 @@ export default class CStatus extends MixinBase {
|
||||
page: '/mydream',
|
||||
funccheck(index) {
|
||||
if (UserStore.state.my.profile.my_dream)
|
||||
if (UserStore.state.my.profile.my_dream.length > 20)
|
||||
if (UserStore.state.my.profile.my_dream.length > 10)
|
||||
return true
|
||||
|
||||
return false
|
||||
@@ -171,7 +172,7 @@ export default class CStatus extends MixinBase {
|
||||
}
|
||||
if (UserStore.state.my.profile)
|
||||
if (UserStore.state.my.profile.paymenttypes)
|
||||
return (UserStore.state.my.profile.paymenttypes.length >= 2) && ispaypal
|
||||
return (UserStore.state.my.profile.paymenttypes.length >= 1) && ispaypal
|
||||
|
||||
}
|
||||
return false
|
||||
@@ -190,6 +191,24 @@ export default class CStatus extends MixinBase {
|
||||
title: 'steps.sharemovement',
|
||||
descr: 'steps.sharemovement_long',
|
||||
page: '/sharemovement',
|
||||
funccheck(index) {
|
||||
if (UserStore.state.my.calcstat)
|
||||
return UserStore.state.my.calcstat.numinvitati >= 2
|
||||
},
|
||||
funccheck_error(index) {
|
||||
return true
|
||||
},
|
||||
funcok() {
|
||||
return ''
|
||||
},
|
||||
funcko() {
|
||||
return ''
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'dashboard.inv_attivi',
|
||||
descr: 'steps.inv_attivi_long',
|
||||
page: '',
|
||||
funccheck(index) {
|
||||
if (UserStore.state.my.calcstat)
|
||||
return UserStore.state.my.calcstat.numinvitati_attivi >= 2
|
||||
@@ -316,6 +335,19 @@ export default class CStatus extends MixinBase {
|
||||
public created() {
|
||||
this.setstep()
|
||||
this.setsteptodo()
|
||||
|
||||
this.my_dream = UserStore.state.my.profile.my_dream
|
||||
}
|
||||
|
||||
public change_mydream() {
|
||||
if (UserStore.state.my.profile.my_dream !== this.my_dream) {
|
||||
UserStore.state.my.profile.my_dream = this.my_dream
|
||||
|
||||
const mydata = {
|
||||
'profile.my_dream': UserStore.state.my.profile.my_dream
|
||||
}
|
||||
tools.saveFieldToServer(this, 'users', UserStore.state.my._id, mydata)
|
||||
}
|
||||
}
|
||||
|
||||
get TelegVerificato() {
|
||||
@@ -358,14 +390,14 @@ export default class CStatus extends MixinBase {
|
||||
return 0
|
||||
}
|
||||
|
||||
public gettextstep(step) {
|
||||
let tit = this.$t(step.title)
|
||||
public gettextstep(step, index) {
|
||||
let tit = (index + 1) + '. ' + 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)'
|
||||
tit += ' (' + this.getnuminvitati() + ' ' + this.$t('dashboard.downline') + ')'
|
||||
} else if (step.title === 'steps.paymenttype') {
|
||||
tit += this.paymenttext
|
||||
}
|
||||
@@ -458,7 +490,7 @@ export default class CStatus extends MixinBase {
|
||||
}
|
||||
if (UserStore.state.my.profile)
|
||||
if (UserStore.state.my.profile.paymenttypes)
|
||||
return (UserStore.state.my.profile.paymenttypes.length >= 2) && ispaypal
|
||||
return (UserStore.state.my.profile.paymenttypes.length >= 1) && ispaypal
|
||||
|
||||
}
|
||||
return false
|
||||
@@ -483,11 +515,11 @@ export default class CStatus extends MixinBase {
|
||||
}
|
||||
|
||||
get strpercstep() {
|
||||
return 'Completati ' + (this.getstep + 1) + ' passi su ' + this.NUMSTEP_OBBLIGATORI
|
||||
return 'Completati ' + (this.getstep) + ' passi su ' + this.NUMSTEP_OBBLIGATORI
|
||||
}
|
||||
|
||||
get stepcompleti() {
|
||||
return this.getstep + 1 === this.NUMSTEP_OBBLIGATORI
|
||||
return this.getstep === this.NUMSTEP_OBBLIGATORI
|
||||
}
|
||||
|
||||
public scrolltostep(mystep) {
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
:id="`step`+(index)"
|
||||
:key="mystep.title"
|
||||
:name="index"
|
||||
:title="gettextstep(mystep)"
|
||||
:title="gettextstep(mystep, index)"
|
||||
:icon="geticonstep(mystep)"
|
||||
:done-color="geticoncolor(mystep.title)"
|
||||
:done="mystep.funccheck(index)"
|
||||
@@ -160,6 +160,15 @@
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr)"></div>
|
||||
</div>
|
||||
<q-input v-model="my_dream" :label="$t('steps.dream')+' (min. 10 caratteri):'"
|
||||
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"
|
||||
@@ -167,6 +176,7 @@
|
||||
:type="tools.FieldType.string"
|
||||
>
|
||||
</CMyFieldDb>
|
||||
-->
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.chat_biblio'">
|
||||
<div v-if="mystep.descr">
|
||||
@@ -227,11 +237,9 @@
|
||||
<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-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)"></div>
|
||||
@@ -257,9 +265,23 @@
|
||||
|
||||
</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)"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.enter_prog'">
|
||||
|
||||
@@ -311,19 +333,19 @@
|
||||
<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>
|
||||
<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-badge color="white" text-color="green" :label="progressstep" class="wrap"
|
||||
<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" @click="scrolltostep(steptodo)"></q-btn>
|
||||
<q-btn round dense icon="arrow_forward" color="blue" @click="scrolltostep(steptodo)"></q-btn>
|
||||
</q-toolbar>
|
||||
</q-page-sticky>
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ export default class CTitleBanner extends Vue {
|
||||
@Prop({ required: false, default: '' }) public icon: string
|
||||
@Prop({ required: false, default: true }) public visible: boolean
|
||||
@Prop({ required: false, default: false }) public canopen: boolean
|
||||
@Prop({ required: false, default: '' }) public imgpreview: string
|
||||
|
||||
public myvisible: boolean = false
|
||||
|
||||
|
||||
@@ -22,6 +22,9 @@
|
||||
<div v-if="myvisible" class="rounded-borders">
|
||||
<slot></slot>
|
||||
</div>
|
||||
<div v-if="imgpreview" class="text-center cursor-pointer clBorderSteps" style="opacity: 0.5;" @click="myvisible = !myvisible">
|
||||
<q-img :src="imgpreview" class="img"></q-img>
|
||||
</div>
|
||||
</q-slide-transition>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
<!--<q-item-label caption lines="1">{{ user.email }}</q-item-label>-->
|
||||
</q-item-section>
|
||||
|
||||
|
||||
<q-item-section side>
|
||||
<div class="row q-gutter-xs justify-center items-center">
|
||||
<q-btn v-if="isextralist(user)" fab-mini
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
||||
|
||||
.step{
|
||||
font-size: 1.15rem;
|
||||
font-weight: bold;
|
||||
|
||||
@@ -21,16 +21,21 @@ export default class CVideoPromo extends MixinBase {
|
||||
public $t: any
|
||||
public $q
|
||||
public msg: string = ''
|
||||
public accetta_saw_video: boolean = false
|
||||
|
||||
get static_data() {
|
||||
return static_data
|
||||
}
|
||||
|
||||
get accetta_saw_video() {
|
||||
return tools.isBitActive(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI)
|
||||
public created() {
|
||||
this.aggiorna()
|
||||
}
|
||||
|
||||
set accetta_saw_video(value) {
|
||||
public aggiorna() {
|
||||
this.accetta_saw_video = tools.isBitActive(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI)
|
||||
}
|
||||
|
||||
public changeval(value) {
|
||||
if (value)
|
||||
UserStore.state.my.profile.saw_and_accepted = tools.SetBit(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI)
|
||||
else
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
clcolor="text-white"
|
||||
myclass="myshad" canopen="true" :visible="true">
|
||||
|
||||
<CVideo myvideokey="dbscY8jWDMM">
|
||||
<CVideo myvideokey="85zU-2A-Rxs">
|
||||
|
||||
</CVideo>
|
||||
</CTitleBanner>
|
||||
@@ -42,6 +42,7 @@
|
||||
<q-checkbox
|
||||
class="bg-grey-4"
|
||||
v-model="accetta_saw_video"
|
||||
@input="changeval"
|
||||
color="primary"
|
||||
:label="$t('steps.saw_video_intro')">
|
||||
|
||||
|
||||
@@ -154,10 +154,10 @@
|
||||
<!--<span class="text-white" v-if="Verificato"> {{$t('reg.verificato')}} </span>-->
|
||||
<!--<span class="text-white background-red" v-else> {{$t('reg.non_verificato')}} </span>-->
|
||||
|
||||
<div v-if="isLogged" id="user-actions" class="text-center">
|
||||
<q-btn round color="primary" icon="person" to="/profile"></q-btn>
|
||||
<div v-if="isLogged" id="user-actions" class="column justify-center q-gutter-sm q-ma-sm center-150" >
|
||||
<q-btn rounded color="primary" icon="person" to="/profile">{{$t('pages.profile')}}</q-btn>
|
||||
<!--<q-btn round color="warning" icon="lock"></q-btn>-->
|
||||
<q-btn round color="secondary" icon="exit_to_app" @click='logoutHandler'></q-btn>
|
||||
<q-btn rounded color="negative" icon="exit_to_app" @click='logoutHandler'>{{$t('login.exit')}}</q-btn>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -55,3 +55,4 @@ export * from './CLegenda'
|
||||
export * from './CRequisito'
|
||||
export * from './CGuidelines'
|
||||
export * from './CVideoPromo'
|
||||
export * from './CMyRequirement'
|
||||
|
||||
@@ -75,7 +75,7 @@ const msgglobal = {
|
||||
entra_zoom: 'Entra in Zoom',
|
||||
linee_guida: 'Accetto le Linee Guida',
|
||||
video_intro: 'Vedo il Video di AYNI',
|
||||
zoom: 'Partecipo agli Zoom (Video Conferenza)',
|
||||
zoom: 'Partecipo ad almeno 1 Zoom',
|
||||
zoom_si_partecipato: 'Hai partecipato ad almeno 1 Zoom',
|
||||
zoom_partecipa: 'Partecipato ad almeno 1 Zoom',
|
||||
zoom_no_partecipato: 'Attualmente non hai ancora partecipato ad uno Zoom (è un requisito per poter entrare)',
|
||||
@@ -84,14 +84,15 @@ const msgglobal = {
|
||||
sharemovement_devi_invitare_almeno_2: 'Ancora non hai invitato 2 persone',
|
||||
sharemovement_hai_invitato: 'Hai invitato almeno 2 persone',
|
||||
sharemovement_invitati_attivi_si: 'Hai almeno 2 persone invitate Attive',
|
||||
sharemovement_invitati_attivi_no: '<strong>Nota Bene:</strong>Le persone che hai invitato, per essere Attive, devono essere verificati Telegram ed aver <strong>partecipato ad almeno 1 Zoom</strong>',
|
||||
sharemovement: 'Condivido questo Movimento Economico Solidale',
|
||||
sharemovement_invitati_attivi_no: '<strong>Nota Bene:</strong>Le persone che hai invitato, per essere <strong>Attive</strong>, devono aver <strong>completato tutti i primi 7 Requisiti</strong> (vedi la tua <strong>Lavagna</strong> per capire cosa gli manca)',
|
||||
sharemovement: 'Invito almeno 2 persone',
|
||||
sharemovement_long: 'Condividi il Movimento AYNI con almeno 2 amici (<strong>consigliate 3 persone</strong>) e invitali a partecipare agli Zoom di Benvenuto per entrare a far parte di questa grande Famiglia 😄 .<br>',
|
||||
inv_attivi_long: '',
|
||||
enter_prog_status: '<strong>NOTA BENE:</strong> La Programmazione partirà appena possibile dopo che tutti si saranno registrati su questa piattaforma.<br>Comunicheremo noi le date in cui ognuno potrà partire ed effettuare così il proprio dono.<br>',
|
||||
enter_prog_completa_requisiti: 'Completa tutti i requisiti richiesti, per poter entrare in programmazione.',
|
||||
enter_prog_requisiti_ok: 'Hai completato tutti i requisiti per poter accedere alla Programmazione',
|
||||
enter_prog: 'Entro in Programmazione',
|
||||
enter_prog_long: 'Sottisfatti i requisiti richiesti entrerai in Programmazione, verrai aggiunto alla Bigliettera e nella chat di gruppo corrispondente.<br>',
|
||||
enter_prog_long: 'Soddisfatti i requisiti richiesti entrerai in Programmazione, verrai aggiunto alla Bigliettera e nella chat di gruppo corrispondente.<br>',
|
||||
collaborate: 'Collaborazione',
|
||||
collaborate_long: 'Continuo a collaborare con i miei compagni per arrivare al giorno della programmazione dove si attiverà la mia Bigliettera.',
|
||||
dream: 'Scrivo il mio Sogno',
|
||||
@@ -143,7 +144,7 @@ const msgglobal = {
|
||||
authentication: {
|
||||
telegram: {
|
||||
open: 'Clicca qui per aprire il BOT Telegram e segui le istruzioni',
|
||||
ifclose: 'Se non si apre cliccando sul bottone oppure l\'avevi eliminato, cerca \'AYNI BOT\' nella ricerca di Telegram e premi Start',
|
||||
ifclose: 'Se non si apre Telegram cliccando sul bottone oppure l\'avevi eliminato, vai su Telegram e cerca \'AYNI BOT\' dall\'icona della lente, poi premi Start e segui le istruzioni.',
|
||||
openbot: 'Apri \'AYNI BOT\' su Telegram',
|
||||
},
|
||||
login: {
|
||||
@@ -186,7 +187,8 @@ const msgglobal = {
|
||||
downline: 'Invitati',
|
||||
downnotreg: 'Invitati non Registrati',
|
||||
notreg: 'Non Registrato',
|
||||
numinvitati: 'Numero di Invitati',
|
||||
inv_attivi: 'Invitati con i 7 Requisiti',
|
||||
numinvitati: 'Almeno 2 Invitati',
|
||||
telefono_wa: 'Contatta su Whatsapp chi non si è registrato',
|
||||
sendnotification: 'Invia Notifica al Destinatario su Telegram BOT',
|
||||
ricevuto_dono: 'Hai ricevuto in Regalo un Invitato {invitato} da parte di {mittente} !'
|
||||
@@ -250,12 +252,13 @@ const msgglobal = {
|
||||
selected:'Selezionati',
|
||||
img: 'Immagine',
|
||||
date_reg: 'Data Reg.',
|
||||
requirement:'Requisiti',
|
||||
perm: 'Permessi',
|
||||
username: 'Username (Pseudonimo)',
|
||||
username_short: 'Username',
|
||||
name: 'Nome',
|
||||
surname: 'Cognome',
|
||||
username_login: 'Nome Utente o email',
|
||||
username_login: 'Username o email',
|
||||
password: 'Password',
|
||||
repeatPassword: 'Ripeti password',
|
||||
terms: "Accetto i termini della privacy",
|
||||
@@ -278,7 +281,7 @@ const msgglobal = {
|
||||
email_not_exist: 'l\'Email non è presente in archivio, verificare se è corretta',
|
||||
duplicate_email: 'l\'Email è già stata registrata',
|
||||
user_already_exist: 'La registrazione con questi dati (nome, cognome e cellulare) è stata già effettuata. Per accedere al sito, cliccare sul bottone LOGIN dalla HomePage.',
|
||||
user_extralist_not_found: 'Utente in archivio non trovato, inserire il Nome, Cognome e numero di cellulare inviato in precedenza',
|
||||
user_extralist_not_found: 'Utente in archivio non trovato, inserire il Nome, Cognome e numero di cellulare comunicato nella lista nel 2019. Se questa è una nuova registrazione, dovete registrarvi tramite il LINK di chi vi sta invitando.',
|
||||
user_not_this_aportador: 'Stai utilizzando un link di una persona diversa dal tuo invitato originale.',
|
||||
duplicate_username: 'L\'Username è stato già utilizzato',
|
||||
aportador_not_exist: 'L\'Username di chi ti ha invitato non è presente. Contattaci.',
|
||||
@@ -307,7 +310,8 @@ const msgglobal = {
|
||||
login: {
|
||||
page_title: 'Login',
|
||||
incorso: 'Login in corso',
|
||||
enter: 'Login',
|
||||
enter: 'Accedi',
|
||||
esci: 'Esci',
|
||||
errato: "Username o password errata. Riprovare",
|
||||
completato: 'Login effettuato!',
|
||||
needlogin: 'E\' necessario effettuare il login prima di continuare'
|
||||
@@ -671,6 +675,7 @@ const msgglobal = {
|
||||
manage_telegram: 'Gestori Telegram',
|
||||
img: 'File image',
|
||||
date_reg: 'Fecha Reg.',
|
||||
requirement:'Requisitos',
|
||||
perm: 'Permisos',
|
||||
username: 'Username (Apodo)',
|
||||
username_short: 'Username',
|
||||
@@ -720,6 +725,7 @@ const msgglobal = {
|
||||
page_title: 'Login',
|
||||
incorso: 'Login en curso',
|
||||
enter: 'Entra',
|
||||
esci: 'Salir',
|
||||
errato: "Nombre de usuario, correo o contraseña incorrectos. inténtelo de nuevo",
|
||||
completato: 'Login realizado!',
|
||||
needlogin: 'Debes iniciar sesión antes de continuar',
|
||||
@@ -1075,6 +1081,7 @@ const msgglobal = {
|
||||
manage_telegram: 'Gestori Telegram',
|
||||
img: 'Fichier image',
|
||||
date_reg: 'Date Inscript.',
|
||||
requirement:'Exigences',
|
||||
perm: 'Autorisations',
|
||||
username: 'Username (Surnom)',
|
||||
username_short: 'Username',
|
||||
@@ -1124,6 +1131,7 @@ const msgglobal = {
|
||||
page_title: 'Login',
|
||||
incorso: 'Connexion en cours',
|
||||
enter: 'Entrez',
|
||||
esci: 'Sortir',
|
||||
errato: "Nom d'utilisateur, email ou mot de passe incorrect. réessayer",
|
||||
completato: 'Connexion faite!',
|
||||
needlogin: 'Vous devez vous connecter avant de continuer',
|
||||
@@ -1482,6 +1490,7 @@ const msgglobal = {
|
||||
manage_telegram: 'Gestori Telegram',
|
||||
img: 'File Image',
|
||||
date_reg: 'Reg. Date',
|
||||
requirement:'Requirements',
|
||||
perm: 'Permissions',
|
||||
username_login: 'Username or email',
|
||||
username: 'Username (Pseudonym)',
|
||||
@@ -1530,6 +1539,7 @@ const msgglobal = {
|
||||
login: {
|
||||
incorso: 'Login...',
|
||||
enter: 'Login',
|
||||
esci: 'Logout',
|
||||
errato: "Username or password wrong. Please retry again",
|
||||
completato: 'Login successfully!',
|
||||
needlogin: 'You must login before continuing',
|
||||
@@ -1889,6 +1899,7 @@ const msgglobal = {
|
||||
manage_telegram: 'Gestori Telegram',
|
||||
img: 'File Image',
|
||||
date_reg: 'Reg. Date',
|
||||
requirement:'Requirements',
|
||||
perm: 'Permissions',
|
||||
username_login: 'Username or email',
|
||||
username: 'Username (Pseudonym)',
|
||||
@@ -1938,6 +1949,7 @@ const msgglobal = {
|
||||
page_title: 'Login',
|
||||
incorso: 'Login...',
|
||||
enter: 'Login',
|
||||
esci: 'Logout',
|
||||
errato: "Username or password wrong. Please retry again",
|
||||
completato: 'Login successfully!',
|
||||
needlogin: 'You must login before continuing',
|
||||
|
||||
@@ -703,8 +703,8 @@ namespace Actions {
|
||||
}
|
||||
|
||||
const usertosend = {
|
||||
username: authData.username,
|
||||
password: authData.password,
|
||||
username: authData.username.trim(),
|
||||
password: authData.password.trim(),
|
||||
lang: state.lang,
|
||||
subs: sub,
|
||||
options
|
||||
|
||||
@@ -1542,7 +1542,7 @@ export const tools = {
|
||||
},
|
||||
|
||||
showNegativeNotif(q: any, msg) {
|
||||
tools.showNotif(q, msg, { color: 'negative', icon: 'notifications' }, 8000)
|
||||
tools.showNotif(q, msg, { color: 'negative', icon: 'notifications' }, 10000)
|
||||
},
|
||||
|
||||
showNeutralNotif(q: any, msg) {
|
||||
@@ -3164,6 +3164,10 @@ export const tools = {
|
||||
return 'fa-flag-ro'
|
||||
else if (lang === 'CL')
|
||||
return 'fa-flag-cl'
|
||||
else if (lang === 'PL')
|
||||
return 'fa-flag-pl'
|
||||
else if (lang === 'EG')
|
||||
return 'fa-flag-eg'
|
||||
|
||||
return ''
|
||||
} catch (e) {
|
||||
@@ -3235,6 +3239,10 @@ export const tools = {
|
||||
return 'Romania'
|
||||
} else if (nat === 'CL') {
|
||||
return 'Chile'
|
||||
} else if (nat === 'PL') {
|
||||
return 'Poland'
|
||||
} else if (nat === 'EG') {
|
||||
return 'Egypt'
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
9
src/store/store-flag.d.ts
vendored
Normal file
9
src/store/store-flag.d.ts
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
// THIS FEATURE-FLAG FILE IS AUTOGENERATED,
|
||||
// REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING
|
||||
import "quasar/dist/types/feature-flag";
|
||||
|
||||
declare module "quasar/dist/types/feature-flag" {
|
||||
interface QuasarFeatureFlags {
|
||||
store: true;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
<template>
|
||||
<q-page padding class="signin">
|
||||
<CSignIn :mythis="mythis"
|
||||
:showregbutt="true"
|
||||
@loginOk="loginOk"
|
||||
@loginInCorso="loginInCorso"
|
||||
@checkErrors="checkErrors"
|
||||
|
||||
5
src/views/login/signin_noreg/signin_noreg.scss
Normal file
5
src/views/login/signin_noreg/signin_noreg.scss
Normal file
@@ -0,0 +1,5 @@
|
||||
.signin {
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
max-width: 450px;
|
||||
}
|
||||
39
src/views/login/signin_noreg/signin_noreg.ts
Normal file
39
src/views/login/signin_noreg/signin_noreg.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import Vue from 'vue'
|
||||
import { Component, Prop, Watch } from 'vue-property-decorator'
|
||||
import { CSignIn } from '../../../components/CSignIn'
|
||||
import { toolsext } from '../../../store/Modules/toolsext'
|
||||
import { UserStore } from '../../../store/Modules'
|
||||
import globalroutines from '../../../globalroutines/index'
|
||||
import { tools } from '../../../store/Modules/tools'
|
||||
|
||||
// import {Loading, QSpinnerFacebook, QSpinnerGears} from 'quasar'
|
||||
|
||||
@Component({
|
||||
components: { CSignIn }
|
||||
})
|
||||
|
||||
export default class Signin_noreg extends Vue {
|
||||
public $v
|
||||
public $q
|
||||
|
||||
public loginOk() {
|
||||
tools.loginOk(this, true)
|
||||
}
|
||||
|
||||
public loginInCorso() {
|
||||
tools.loginInCorso(this)
|
||||
}
|
||||
|
||||
public checkErrors(riscode) {
|
||||
tools.SignIncheckErrors(this, riscode, true)
|
||||
}
|
||||
|
||||
public showNotif(msgcode) {
|
||||
tools.showNotif(this.$q, this.$t(msgcode))
|
||||
}
|
||||
|
||||
get mythis() {
|
||||
return this
|
||||
}
|
||||
|
||||
}
|
||||
18
src/views/login/signin_noreg/signin_noreg.vue
Normal file
18
src/views/login/signin_noreg/signin_noreg.vue
Normal file
@@ -0,0 +1,18 @@
|
||||
<template>
|
||||
<q-page padding class="signin">
|
||||
<CSignIn :mythis="mythis"
|
||||
@loginOk="loginOk"
|
||||
@loginInCorso="loginInCorso"
|
||||
:showregbutt="false"
|
||||
@checkErrors="checkErrors"
|
||||
@showNotif="showNotif">
|
||||
</CSignIn>
|
||||
</q-page>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./signin_noreg.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './signin_noreg.scss';
|
||||
</style>
|
||||
Reference in New Issue
Block a user