- Nave
- Requirements - Send Msg to Passeggeri
This commit is contained in:
@@ -1,26 +1,25 @@
|
||||
import moment from 'moment';
|
||||
import 'moment/locale/fr';
|
||||
import moment from 'moment'
|
||||
import 'moment/locale/fr'
|
||||
moment.locale('fr')
|
||||
|
||||
const monthsStrings = ['Janvier','Fevrier','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'];
|
||||
|
||||
const monthsStrings = ['Janvier', 'Fevrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre']
|
||||
|
||||
export class DateMoving {
|
||||
public date: moment.Moment;
|
||||
public hour: string;
|
||||
public number: number;
|
||||
public month: string;
|
||||
public year: number;
|
||||
public date: moment.Moment
|
||||
public hour: string
|
||||
public number: number
|
||||
public month: string
|
||||
public year: number
|
||||
|
||||
constructor(time: number) {
|
||||
this.date = moment(time * 1000);
|
||||
this.hour = `${this.date.format('HH:mm')}`;
|
||||
this.number = this.date.date();
|
||||
this.year = this.date.year();
|
||||
this.month = monthsStrings[this.date.month()];
|
||||
this.date = moment(time * 1000)
|
||||
this.hour = `${this.date.format('HH:mm')}`
|
||||
this.number = this.date.date()
|
||||
this.year = this.date.year()
|
||||
this.month = monthsStrings[this.date.month()]
|
||||
}
|
||||
|
||||
fullString() {
|
||||
return this.date.format('Do MMMM YYYY, HH:mm');
|
||||
public fullString() {
|
||||
return this.date.format('Do MMMM YYYY, HH:mm')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,18 @@
|
||||
export const shared_consts = {
|
||||
|
||||
Accepted: {
|
||||
CHECK_READ_GUIDELINES: 1,
|
||||
CHECK_SEE_VIDEO_PRINCIPI: 2,
|
||||
CHECK_READ_GUIDELINES: {
|
||||
value: 1,
|
||||
label: 'steps.linee_guida',
|
||||
icon: 'fas fa-user-shield',
|
||||
color: 'red'
|
||||
},
|
||||
CHECK_SEE_VIDEO_PRINCIPI: {
|
||||
value: 2,
|
||||
label: 'steps.video_intro',
|
||||
icon: 'fas fa-tools',
|
||||
color: 'green'
|
||||
},
|
||||
},
|
||||
|
||||
ALL_SAW_AND_ACCEPTED: 3,
|
||||
|
||||
@@ -11,3 +11,24 @@
|
||||
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.my-card-small-stat {
|
||||
width: 100%;
|
||||
max-width: 60px;
|
||||
min-width: 40px;
|
||||
@media (max-width: 718px) {
|
||||
// PER VERSIONE MOBILE
|
||||
max-width: 50px;
|
||||
min-width: 40px;
|
||||
}
|
||||
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
|
||||
.text-h5-short {
|
||||
line-height: 1.25rem !important;
|
||||
@media (max-width: 718px) {
|
||||
line-height: 1rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,12 +16,17 @@ export default class CCardState extends MixinBase {
|
||||
@Prop({ required: false, default: '' }) public imgsrc
|
||||
@Prop({ required: false, default: false }) public isperc
|
||||
@Prop({ required: false, default: '' }) public textadd
|
||||
@Prop({ required: false, default: 'green' }) public color
|
||||
@Prop({ required: false, default: 'green' }) public mycolor
|
||||
@Prop({ required: false, default: '150px' }) public size
|
||||
@Prop({ required: false, default: '130px' }) public size_mob
|
||||
@Prop({ required: false, default: '1rem' }) public fontsize
|
||||
@Prop({ required: false, default: '' }) public mystyle
|
||||
@Prop({ required: false, default: 'my-card-stat' }) public myclass
|
||||
|
||||
get getsize() {
|
||||
if (tools.isMobile())
|
||||
return '130px'
|
||||
return this.size_mob
|
||||
else
|
||||
return '150px'
|
||||
return this.size
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<template>
|
||||
<q-card class="my-card-stat text-center">
|
||||
<q-card :class="myclass +` text-center`" :style="mystyle">
|
||||
<q-circular-progress
|
||||
show-value
|
||||
font-size="1rem"
|
||||
:font-size="fontsize"
|
||||
:value="myperc"
|
||||
:size="getsize"
|
||||
:thickness="0.25"
|
||||
:color="color"
|
||||
:color="mycolor"
|
||||
track-color="grey-3"
|
||||
class="q-ma-sm animated"
|
||||
class="animated"
|
||||
>
|
||||
|
||||
<q-avatar v-if="imgsrc" size="60px">
|
||||
@@ -18,7 +18,7 @@
|
||||
<div>
|
||||
{{ mytext }}
|
||||
</div>
|
||||
<div class="mlvalue text-h5 text-blue boldhigh"> {{ myval }} {{ textadd }}
|
||||
<div class="mlvalue text-h5 text-blue boldhigh text-h5-short"> {{ myval }} {{ textadd }}
|
||||
</div>
|
||||
<div v-if="isperc" class="cltexth4">
|
||||
({{ myperc.toFixed(1) }} %)
|
||||
|
||||
@@ -557,7 +557,7 @@ export default class CGridTableRec extends Vue {
|
||||
this.colclicksel = null
|
||||
}
|
||||
|
||||
console.log('this.rowclicksel', this.rowclicksel)
|
||||
// console.log('this.rowclicksel', this.rowclicksel)
|
||||
}
|
||||
|
||||
get getusernamesel() {
|
||||
|
||||
@@ -31,15 +31,15 @@ export default class CGuidelines extends MixinBase {
|
||||
}
|
||||
|
||||
public aggiorna_guideline() {
|
||||
this.myguideline = tools.isBitActive(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES)
|
||||
this.myguideline = tools.isBitActive(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES.value)
|
||||
}
|
||||
|
||||
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)
|
||||
UserStore.state.my.profile.saw_and_accepted = tools.SetBit(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES.value)
|
||||
else
|
||||
UserStore.state.my.profile.saw_and_accepted = tools.UnSetBit(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES)
|
||||
UserStore.state.my.profile.saw_and_accepted = tools.UnSetBit(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES.value)
|
||||
|
||||
const mydata = {
|
||||
'profile.saw_and_accepted': UserStore.state.my.profile.saw_and_accepted
|
||||
|
||||
@@ -64,16 +64,9 @@
|
||||
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 e Attivazione della Billettera</p>
|
||||
<p class="cltexth3 text-blue q-ma-lg">Fase 3: Lista d'imbarco e partenza della Nave</p>
|
||||
|
||||
<p>In AYNI La sequenza dei passaggi è programmata in anticipo, in modo da:</p>
|
||||
<ul class="lista">
|
||||
@@ -81,17 +74,16 @@
|
||||
<li>realizzare e concludere il processo in maniera semplice, godibile e semi-automatizzata.</li>
|
||||
</ul>
|
||||
|
||||
<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
|
||||
<p>La tua Nave verrà programmata e tu entrerai in una chat coi tuoi compagni di viaggio. Allo stesso tempo,
|
||||
ti verrà comunicata la data in cui la tua Nave salperà, cioè quando 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>
|
||||
|
||||
<p class="clBorderImportant" style="border-color: deepskyblue">
|
||||
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
|
||||
tempi e forma previsti, le date verranno riprogrammate per permettere il completamento di tutti e non lasciare
|
||||
che il
|
||||
viaggio possa interrompersi.
|
||||
</p>
|
||||
|
||||
@@ -104,7 +96,7 @@
|
||||
|
||||
<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
|
||||
<p>Dal momento in cui conosco il giorno della partenza della mia Nave, i passi da compiere
|
||||
saranno questi:</p>
|
||||
<div class="text-center">
|
||||
<q-img src="statics/images/passo_1.jpg" class="img"></q-img>
|
||||
@@ -215,16 +207,9 @@
|
||||
Union</strong>, Xoom o TransferWise en casos de
|
||||
regalos extra-europeos.
|
||||
</li>
|
||||
<li>
|
||||
Invitar, invitar, invitar. Acompañar a la gente a un Zoom de Bienvenida y ayudarlos en el
|
||||
registro del sitio. El movimiento es un organismo vivo del que ahora formas parte. Es por eso que usted es
|
||||
se requiere involucrar activamente al menos a 2 personas, <strong> recomendamos 3 up</strong>, no lo creo.
|
||||
sólo a mí, sino también a los otros que forman parte de ella, garantizando y apoyando así la
|
||||
<strong>solidaridad</strong> de lo mismo.
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<p class="cltexth3 text-blue q-ma-lg">Paso 3: Programación y activación de la Billettera</p>.
|
||||
<p class="cltexth3 text-blue q-ma-lg">Paso 3: Programación y activación de la Nave</p>.
|
||||
|
||||
<p>En AYNI La secuencia de pasos está programada de antemano, de modo que:</p>
|
||||
<ul class="lista">
|
||||
@@ -232,11 +217,9 @@
|
||||
<li>hacer y terminar el proceso de una manera simple, agradable y semi-automática.</li>
|
||||
</ul>
|
||||
|
||||
<p>Tu Billetera será programada y entrarás en un chat con tus compañeros de viaje. Al mismo tiempo,
|
||||
se le informará de la fecha en la que se activará la billetera y en la que podrá donar los 33 € y el
|
||||
nombre y el
|
||||
<p>Su nave será programada y entrará en un chat con sus compañeros de viaje. Al mismo tiempo,
|
||||
se le informará de la fecha en la que su barco zarpará, es decir, cuando podrá donar los 33€ y el nombre y el
|
||||
los datos del Soñador para darle su regalo.
|
||||
También sabrás las fechas de cada uno de los 3 pasos.
|
||||
</p>
|
||||
|
||||
<p class="clBorderImportant" style="border-color: deepskyblue">
|
||||
@@ -370,16 +353,8 @@
|
||||
Union</strong>, Xoom ou TransferWise em casos de
|
||||
presentes extra-europeus.
|
||||
</li>
|
||||
<li>Convidar, convidar, convidar. Acompanhe as pessoas a um Zoom de Boas-vindas e ajude-as no
|
||||
registo no site. O movimento é um organismo vivo do qual você agora faz parte. É por isso que você é
|
||||
necessário para envolver ativamente pelo menos 2 pessoas, <strong> recomendamos 3 a mais</strong>, eu não
|
||||
acho.
|
||||
apenas para mim, mas também para os outros que fazem parte dela, garantindo e <strong>sustentando o
|
||||
solidariedade</strong>
|
||||
do mesmo.
|
||||
</li>
|
||||
</ol>
|
||||
<p class="cltexth3 text-blue q-ma-lg">Passo 3: Programação e ativação do Billettera</p>.
|
||||
<p class="cltexth3 text-blue q-ma-lg">Passo 3: Programação e ativação do Navio</p>.
|
||||
|
||||
<p>Em AYNI A sequência de passos é programada com antecedência, de modo que:</p>
|
||||
<ul class="lista">
|
||||
@@ -387,10 +362,9 @@
|
||||
<li>Fazer e terminar o processo de uma forma simples, agradável e semi-automática.</li>
|
||||
</ul>
|
||||
|
||||
<p>Sua Billetera será programada e você entrará em uma conversa com seus companheiros de viagem. Ao mesmo tempo,
|
||||
você será informado da data em que o boleto será ativado e em que você pode doar os 33 € e o nome e a
|
||||
<p>Sua nave será programada e você entrará em uma conversa com seus colegas passageiros. Ao mesmo tempo,
|
||||
você será informado da data em que seu navio navegará, ou seja, quando você poderá doar os 33 euros e o nome e
|
||||
dados do Sonhador para dar o seu presente.
|
||||
Você também saberá as datas de cada um dos 3 passos.
|
||||
</p>
|
||||
|
||||
<p class="clBorderImportant" style="border-color: deepskyblue">
|
||||
@@ -520,17 +494,8 @@
|
||||
Union</strong>, Xoom ou TransferWise en cas de
|
||||
les cadeaux extra-européens.
|
||||
</li>
|
||||
<li>Invitez, invitez, invitez. Accompagner les personnes à un Zoom de bienvenue et les aider à
|
||||
l'enregistrement du site. Le mouvement est un organisme vivant dont vous faites maintenant partie. C'est
|
||||
pourquoi vous êtes
|
||||
Il faut qu'au moins 2 personnes participent activement, <strong> nous recommandons 3 personnes </strong>, je
|
||||
ne pense pas.
|
||||
seulement à moi, mais aussi aux autres qui en font partie, garantissant et <strong>soutenant ainsi la
|
||||
solidarité</strong>
|
||||
de la même manière.
|
||||
</li>
|
||||
</ol>
|
||||
<p class="cltexth3 text-blue q-ma-lg">Etape 3: Programmation et activation de la Billettera</p>.
|
||||
<p class="cltexth3 text-blue q-ma-lg">Etape 3: Programmation et activation de la Navire</p>.
|
||||
|
||||
<p>En AYNI La séquence des étapes est programmée à l'avance, de sorte que:</p>
|
||||
<ul class="lista">
|
||||
@@ -538,11 +503,11 @@
|
||||
<li>faire et terminer le processus de manière simple, agréable et semi-automatique.</li>
|
||||
</ul>
|
||||
|
||||
<p>Votre Billetera sera programmée et vous entrerez en conversation avec vos compagnons de voyage. Dans le même
|
||||
temps, vous serez informé de la date à laquelle la billetera sera activée et à laquelle vous pourrez faire don
|
||||
des
|
||||
33€ et du nom et de la les données du rêveur à qui vous pouvez faire un cadeau.
|
||||
Vous connaîtrez également les dates de chacune des 3 étapes.
|
||||
<p>Votre navire sera programmé et vous entrerez en conversation avec vos compagnons de voyage. Dans le même
|
||||
temps,
|
||||
vous serez informé de la date à laquelle votre navire naviguera, c'est-à-dire de la date à laquelle vous
|
||||
pourrez faire don des 33€ et du nom et de la
|
||||
les données du rêveur à qui vous pouvez faire un cadeau.
|
||||
</p>
|
||||
|
||||
<p class="clBorderImportant" style="border-color: deepskyblue">
|
||||
@@ -673,16 +638,9 @@
|
||||
Union</strong>, Xoom or TransferWise in cases of
|
||||
extra-European gifts.
|
||||
</li>
|
||||
<li>Invite, invite, invite. Accompany people to a Welcome Zoom and assist them in the
|
||||
site registration. The movement is a living organism of which you are now part. That is why you are
|
||||
required to actively involve at least 2 people, <strong> we recommend 3 up</strong>, I don't think so.
|
||||
only to me, but also to the others who are part of it, guaranteeing and <strong>supporting
|
||||
solidarity</strong>.
|
||||
of the same.
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<p class="cltexth3 text-blue q-ma-lg">Step 3: Programming and Activation of the Billettera</p>
|
||||
<p class="cltexth3 text-blue q-ma-lg">Step 3: Programming and Activation of the Ship</p>
|
||||
|
||||
<p>In AYNI The sequence of steps is programmed in advance, so that:</p>
|
||||
<ul class="lista">
|
||||
@@ -690,12 +648,10 @@
|
||||
<li>make and finish the process in a simple, enjoyable and semi-automated way.</li>
|
||||
</ul>
|
||||
|
||||
<p>Your Billetera will be programmed and you'll enter a chat with your fellow travellers. At the same time,
|
||||
you will be informed of the date on which the billetera will be activated and on which you can donate the
|
||||
33€
|
||||
<p>Your Ship will be programmed and you will enter a chat with your fellow passengers. At the same time,
|
||||
you will be informed of the date on which your ship will sail, i.e. when you will be able to donate the 33€
|
||||
and the name and the
|
||||
data of the Dreamer to give your gift to.
|
||||
You will also know the dates of each of the 3 steps.
|
||||
</p>
|
||||
|
||||
<p class="clBorderImportant" style="border-color: deepskyblue">
|
||||
@@ -758,29 +714,31 @@
|
||||
</CImgText>
|
||||
</div>
|
||||
|
||||
<div v-if="showconditions">
|
||||
<div>
|
||||
<p> </p>
|
||||
<div v-if="toolsext.isLang('it')">
|
||||
<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, regalo 33
|
||||
€) e di aver compreso che senza non verrò inserito in programmazione.
|
||||
<li>dichiaro di aver ben compreso l'impegno che prendo iscrivendomi a AYNI (facendo un regalo di 33 €)
|
||||
e di aver compreso che senza non potrò proseguire il mio viaggio.
|
||||
</li>
|
||||
|
||||
<li>dichiaro di aver ben compreso che <strong>non è un fondo di investimento e che il mio regalo è a fondo
|
||||
perduto</strong>
|
||||
<li>Potrò avvalermi del diritto di recesso, entro 14 giorni dall'invio del dono, qualora non volessi più
|
||||
continuare il mio viaggio.
|
||||
</li>
|
||||
|
||||
<li>dichiaro di aver ben compreso che <strong>non è un fondo di investimento e che il mio regalo, scaduti i 14
|
||||
giorni del diritto di recesso, è a fondo perduto</strong>
|
||||
</li>
|
||||
|
||||
<li>dichiaro di aver ben compreso che devo <strong>partecipare almeno ad uno ZOOM</strong>
|
||||
(Video-Conferenza
|
||||
On Line)
|
||||
(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.
|
||||
per consegnare il regalo.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -804,6 +762,11 @@
|
||||
<li>Declaro haber entendido bien que por mi seguridad tengo que abrir una <strong>cuenta de
|
||||
Paypal</strong> para entregar el regalo.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Puedo ejercer mi derecho de retirada dentro de los 14 días siguientes al envío del regalo si no deseo
|
||||
continuar mi viaje.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -826,6 +789,11 @@
|
||||
<li>Eu declaro que compreendi bem que para minha segurança tenho que abrir uma <strong>conta Paypal</strong>.
|
||||
para entregar o presente.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Posso exercer o meu direito de retirada no prazo de 14 dias após o envio do presente se não quiser mais
|
||||
continuar a minha viagem.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div v-else-if="toolsext.isLang('fr')">
|
||||
@@ -848,6 +816,11 @@
|
||||
<li>Je déclare avoir bien compris que pour ma sécurité, je dois ouvrir un compte <strong>paypal</strong>.
|
||||
pour livrer le cadeau.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Je peux exercer mon droit de rétractation dans les 14 jours suivant l'envoi du cadeau si je ne souhaite plus
|
||||
poursuivre mon voyage.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -861,8 +834,8 @@
|
||||
33 €) and to have understood that without it I will not be included in the programming.
|
||||
</li>
|
||||
|
||||
<li>I declare that I have well understood that <strong>is not an investment fund and that my gift is deep
|
||||
lost</strong>
|
||||
<li>I declare that I have well understood that <strong>is not an investment fund and that my gift is
|
||||
non-refundable</strong>
|
||||
</li>
|
||||
|
||||
<li>I declare that I have well understood that I must <strong>participate at least in one ZOOM</strong>
|
||||
@@ -870,20 +843,26 @@
|
||||
</li>
|
||||
|
||||
<li>I declare to have well understood that for my safety I have to open a <strong>paypal</strong> account
|
||||
for
|
||||
deliver the gift.
|
||||
for deliver the gift.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
I can exercise my right of withdrawal within 14 days of sending the gift if I no longer wish to continue my
|
||||
trip.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<q-checkbox
|
||||
class="bg-grey-4"
|
||||
v-model="myguideline"
|
||||
color="primary"
|
||||
@input="changeval"
|
||||
:label="$t('steps.read_guidelines')">
|
||||
<div v-if="showconditions">
|
||||
<q-checkbox
|
||||
class="bg-grey-4"
|
||||
v-model="myguideline"
|
||||
color="primary"
|
||||
@input="changeval"
|
||||
:label="$t('steps.read_guidelines')">
|
||||
|
||||
</q-checkbox>
|
||||
</q-checkbox>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="row q-ml-sm q-pa-xs items-center">
|
||||
<q-icon size="sm" :name="icon" color="green"></q-icon>
|
||||
<q-chip dense color="blue" text-color="white" class="q-ml-md">{{text}}</q-chip>
|
||||
<q-icon v-if="icon" size="lg" :name="icon" color="green"></q-icon>
|
||||
<q-chip dense color="blue" text-color="white" class="q-ml-sm">{{text}}</q-chip>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -16,6 +16,7 @@ export default class CLineChart extends Vue {
|
||||
@Prop({ required: false, default: false }) public sum: boolean
|
||||
@Prop({ required: false, default: '' }) public title: string
|
||||
@Prop({ required: false, default: null }) public mycolors
|
||||
@Prop({ required: false, default: 0 }) public offset
|
||||
|
||||
get tools() {
|
||||
return tools
|
||||
@@ -33,6 +34,8 @@ export default class CLineChart extends Vue {
|
||||
this.mydatafixed = {}
|
||||
|
||||
let somma = 0
|
||||
if (this.sum)
|
||||
somma = this.offset
|
||||
|
||||
for (const rec of this.mydata) {
|
||||
if (this.sum) {
|
||||
@@ -48,4 +51,8 @@ export default class CLineChart extends Vue {
|
||||
return this.mydatafixed
|
||||
}
|
||||
|
||||
get getoffset() {
|
||||
return this.offset
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<line-chart :width="tools.getwidthscale(mythis, 350, 400)+`px`" :title="title" :data="getmydata" :round="0" :colors="mycolors"></line-chart>
|
||||
<line-chart :width="tools.getwidthscale(mythis, 350, 400)+`px`" :title="title" :data="getmydata" :offset="getoffset" :round="0" :colors="mycolors"></line-chart>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -18,9 +18,12 @@ import { tools } from '../../store/Modules/tools'
|
||||
import { lists } from '../../store/Modules/lists'
|
||||
import { shared_consts } from '../../common/shared_vuejs'
|
||||
import { CMyRequirement } from '../CMyRequirement'
|
||||
import { CRequisiti } from '../CRequisiti'
|
||||
import { CCardState } from '../CCardState'
|
||||
import { CMyNave } from '../CMyNave'
|
||||
|
||||
@Component({
|
||||
components: { CProfile, CTitleBanner, CMyFieldDb, CCopyBtn, CUserBadge, CLegenda, CRequisito, CMyRequirement }
|
||||
components: { CProfile, CTitleBanner, CMyFieldDb, CCopyBtn, CUserBadge, CLegenda, CRequisito, CMyRequirement, CRequisiti, CCardState, CMyNave }
|
||||
})
|
||||
|
||||
export default class CMyDashboard extends MixinUsers {
|
||||
@@ -37,7 +40,8 @@ export default class CMyDashboard extends MixinUsers {
|
||||
numpeople_aportador: 0,
|
||||
downline: [],
|
||||
downnotreg: [],
|
||||
downbyuser: []
|
||||
downbyuser: [],
|
||||
arrnavi: []
|
||||
}
|
||||
|
||||
@Prop({ required: true }) public username
|
||||
@@ -70,7 +74,7 @@ export default class CMyDashboard extends MixinUsers {
|
||||
this.myusername = this.username
|
||||
|
||||
await UserStore.actions.getDashboard({ username: this.myusername }).then((ris) => {
|
||||
this.dashboard = UserStore.state.my.dashboard
|
||||
this.dashboard = ris
|
||||
})
|
||||
}
|
||||
|
||||
@@ -90,4 +94,19 @@ export default class CMyDashboard extends MixinUsers {
|
||||
this.seluser = user
|
||||
}
|
||||
|
||||
get Completato7Req() {
|
||||
// return tools.Is7ReqOk(this.dashboard.myself)
|
||||
return this.dashboard.myself.qualified
|
||||
}
|
||||
get Completato9Req() {
|
||||
// return tools.Is9ReqOk(this.dashboard.myself)
|
||||
return this.dashboard.myself.qualified && (this.dashboard.myself.numinvitatiattivi >= 2)
|
||||
}
|
||||
|
||||
public HasNave() {
|
||||
return this.dashboard.arrnavi.length > 0
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,39 @@
|
||||
<template>
|
||||
<div class="q-ma-xs q-gutter-xs q-pa-xs" v-if="myusername !== ''">
|
||||
<div class="q-my-xs q-gutter-xs q-py-xs" v-if="myusername !== ''">
|
||||
<CTitleBanner class="q-pa-xs text-center" :title="$t('pages.statoattuale')" bgcolor="bg-red" clcolor="text-white"
|
||||
mystyle=" " myclass="myshad">
|
||||
<div v-if="!!dashboard.myself.name">
|
||||
|
||||
<div v-if="!Completato9Req">
|
||||
<CTitleBanner icon="person" :canopen="true" class="q-pa-xs text-center"
|
||||
:title="$t('pages.posizione_in_programmazione')" bgcolor="bg-blue"
|
||||
clcolor="text-white" mystyle=" " myclass="myshad">
|
||||
<CRequisiti :statebool="Completato7Req" :msgTrue="$t('steps.enter_prog_requisiti_ok')"
|
||||
:msgFalse="$t('steps.enter_prog_completa_requisiti')">
|
||||
</CRequisiti>
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
|
||||
<CTitleBanner icon="fas fa-gift" :canopen="true" class="q-pa-xs text-center"
|
||||
:title="$t('pages.posizione_in_nave')" bgcolor="bg-green"
|
||||
clcolor="text-white" mystyle=" " myclass="myshad">
|
||||
|
||||
<div v-if="!HasNave">
|
||||
<CRequisiti :statebool="Completato9Req" :msgTrue="$t('steps.enter_nave_9req_ok')"
|
||||
:color_ko="true"
|
||||
:msgFalse="$t('steps.enter_nave_9req_ko')">
|
||||
</CRequisiti>
|
||||
</div>
|
||||
|
||||
<CMyNave v-for="(mianave, index) in dashboard.arrnavi" :naveprop="mianave" :key="index"
|
||||
:navi_partenzaprop="dashboard.navi_partenza">
|
||||
|
||||
</CMyNave>
|
||||
</CTitleBanner>
|
||||
|
||||
</div>
|
||||
|
||||
</CTitleBanner>
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('pages.dashboard')" bgcolor="bg-info" clcolor="text-white"
|
||||
mystyle=" " myclass="myshad">
|
||||
|
||||
@@ -75,7 +109,7 @@
|
||||
</q-btn>
|
||||
</div>
|
||||
|
||||
<CTitleBanner v-if="invitatinotreg" class="shadow-2 rounded-borders" :title="$t('dashboard.downnotreg')"
|
||||
<!--<CTitleBanner v-if="invitatinotreg" class="shadow-2 rounded-borders" :title="$t('dashboard.downnotreg')"
|
||||
bgcolor="bg-grey"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
@@ -88,7 +122,7 @@
|
||||
</CUserBadge>
|
||||
</div>
|
||||
</q-list>
|
||||
</CTitleBanner>
|
||||
</CTitleBanner>-->
|
||||
|
||||
</CTitleBanner>
|
||||
|
||||
@@ -119,12 +153,35 @@
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
<p class="q-ml-sm">{{ $t('dashboard.legenda_title')}}</p>
|
||||
<q-list bordered class="rounded-borders row justify-between">
|
||||
<CLegenda icon="fab fa-telegram" :text="`Telegram ` + $t('pages.statusreg.verified')"></CLegenda>
|
||||
<q-list bordered class="rounded-borders justify-center q-pa-sm">
|
||||
<div class="row items-center q-pa-xs">
|
||||
<CCardState :mytext="$t('pages.statusreg.req')" :myval="7" :myperc="(7 / 9) * 100" size="50px" size_mob="40px"
|
||||
fontsize="0.75rem" myclass="my-card-small-stat" mycolor="orange">
|
||||
</CCardState>
|
||||
<div class="bg-blue text-white clBorderxs q-ml-sm">{{$t('pages.statusreg.req7')}}</div>
|
||||
</div>
|
||||
<div class="row items-center q-pa-xs">
|
||||
<CCardState :mytext="$t('pages.statusreg.req')" :myval="9" :myperc="100" size="50px" size_mob="40px"
|
||||
fontsize="0.75rem" myclass="my-card-small-stat" mycolor="green"></CCardState>
|
||||
<div class="bg-blue text-white clBorderxs q-ml-sm">{{$t('pages.statusreg.req9')}}</div>
|
||||
</div>
|
||||
<div class="row items-center q-pa-xs">
|
||||
<CCardState :mytext="$t('pages.statusreg.people')" :myval="2" :myperc="100" size="50px" size_mob="40px"
|
||||
fontsize="0.75rem" myclass="my-card-small-stat" mycolor="green"></CCardState>
|
||||
<div class="bg-blue text-white clBorderxs q-ml-sm">{{$t('pages.statusreg.peoplelegend')}}</div>
|
||||
</div>
|
||||
<!--<CLegenda icon="fab fa-telegram" :text="`Telegram ` + $t('pages.statusreg.verified')"></CLegenda>
|
||||
<CLegenda icon="fas fa-video" :text="$t('stat.zoom')"></CLegenda>
|
||||
<CLegenda icon="fas fa-user-friends" :text="$t('dashboard.numinvitati')"></CLegenda>
|
||||
<CLegenda icon="fab fa-whatsapp" :text="$t('dashboard.telefono_wa')"></CLegenda>
|
||||
|
||||
<CLegenda icon="fas fa-user-friends" :text="$t('dashboard.numinvitati')"></CLegenda>-->
|
||||
<div class="row items-center q-pa-xs q-ml-sm">
|
||||
<q-btn
|
||||
fab-mini
|
||||
icon="fab fa-whatsapp"
|
||||
color="white" text-color="green"
|
||||
size="sm">
|
||||
</q-btn>
|
||||
<div class="bg-blue text-white clBorderxs q-ml-sm">{{$t('dashboard.telefono_wa')}}</div>
|
||||
</div>
|
||||
</q-list>
|
||||
</CTitleBanner>
|
||||
<br>
|
||||
|
||||
@@ -11,10 +11,11 @@ import { IColGridTable } from '../../model'
|
||||
import { CMySelect } from '../CMySelect'
|
||||
import { GlobalStore, UserStore } from '../../store/Modules'
|
||||
import { CMyChipList } from '../CMyChipList'
|
||||
import { CMyToggleList } from '../CMyToggleList'
|
||||
|
||||
@Component({
|
||||
name: 'CMyFieldDb',
|
||||
components: { CMyEditor, CMySelect, CMyChipList }
|
||||
components: { CMyEditor, CMySelect, CMyChipList, CMyToggleList }
|
||||
})
|
||||
|
||||
export default class CMyFieldDb extends MixinBase {
|
||||
|
||||
@@ -197,6 +197,15 @@
|
||||
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.multiselect">
|
||||
<CMyToggleList :label="col.title"
|
||||
:options="db_fieldsTable.getTableJoinByName(col.jointable)"
|
||||
:value.sync="myvalue"
|
||||
:optval="db_fieldsTable.getKeyByTable(col.jointable)"
|
||||
:optlab="db_fieldsTable.getLabelByTable(col.jointable)"
|
||||
:isarray="true">
|
||||
</CMyToggleList>
|
||||
|
||||
<!--
|
||||
<q-select
|
||||
v-model="myvalue"
|
||||
rounded
|
||||
@@ -214,6 +223,7 @@
|
||||
>
|
||||
|
||||
</q-select>
|
||||
-->
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.multioption">
|
||||
</div>
|
||||
|
||||
73
src/components/CMyNave/CMyNave.scss
Normal file
73
src/components/CMyNave/CMyNave.scss
Normal file
@@ -0,0 +1,73 @@
|
||||
.donatore, .mediatore, .sognatore {
|
||||
padding: 4px;
|
||||
margin: 4px;
|
||||
color: white;
|
||||
font-size: 1.25rem;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
.donatore {
|
||||
background-color: #2ba0fd;
|
||||
}
|
||||
|
||||
.mediatore {
|
||||
background-color: red;
|
||||
}
|
||||
|
||||
.sognatore {
|
||||
background-color: green;
|
||||
}
|
||||
|
||||
.cont_donatore, .cont_sognatore, .cont_mediatore, .cont_tragitto, .cont_pos, .cont_intestaz, .cont_pos_intest, .cont_intestaz_small {
|
||||
border: solid 2px #4198ef;
|
||||
padding: 4px;
|
||||
margin: 4px;
|
||||
font-size: 1rem;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
.you {
|
||||
background-color: yellow;
|
||||
}
|
||||
|
||||
.cont_tragitto{
|
||||
color: blue;
|
||||
}
|
||||
|
||||
.cont_pos, .cont_pos_intest{
|
||||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
border-radius: 64px !important;
|
||||
color: red;
|
||||
}
|
||||
|
||||
.cont_pos_intest {
|
||||
width: 37px;
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
||||
.extra{
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.passo{
|
||||
font-weight: bold;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.gift{
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
.cont_intestaz, .cont_intestaz_small{
|
||||
font-size: 0.75rem;
|
||||
margin: 4px;
|
||||
border-radius: 16px !important;
|
||||
|
||||
}
|
||||
|
||||
.cont_intestaz_small{
|
||||
margin: 0;
|
||||
margin-top: 4px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
255
src/components/CMyNave/CMyNave.ts
Normal file
255
src/components/CMyNave/CMyNave.ts
Normal file
@@ -0,0 +1,255 @@
|
||||
import Vue from 'vue'
|
||||
import { Component, Prop, Watch } from 'vue-property-decorator'
|
||||
|
||||
import { tools } from '../../store/Modules/tools'
|
||||
import { toolsext } from '@src/store/Modules/toolsext'
|
||||
import MixinBase from '@src/mixins/mixin-base'
|
||||
import MixinNave from '../../mixins/mixin-nave'
|
||||
import { CTitleBanner } from '../CTitleBanner'
|
||||
import { UserStore } from '../../store/Modules'
|
||||
import { lists } from '../../store/Modules/lists'
|
||||
import translate from '../../globalroutines/util'
|
||||
|
||||
@Component({
|
||||
components: { CTitleBanner },
|
||||
})
|
||||
|
||||
export default class CMyNave extends MixinNave {
|
||||
@Prop({ required: true }) public naveprop
|
||||
@Prop({ required: true }) public navi_partenzaprop: any[]
|
||||
public navi_partenza: any[]
|
||||
public $t
|
||||
public link_chat: string = ''
|
||||
public cosa: string = 'tragitto'
|
||||
public nave: any = null
|
||||
public numpercorso = 7
|
||||
public riga: number = 1
|
||||
public col: number = 1
|
||||
public rigadoni: number = 1
|
||||
public coldoni: number = 1
|
||||
public mediatore: any = {}
|
||||
|
||||
public tragitto = [
|
||||
{
|
||||
ind: 7,
|
||||
color: 'purple',
|
||||
title_lang: 'dashboard.sognatore',
|
||||
extracl: ''
|
||||
},
|
||||
{
|
||||
ind: 6,
|
||||
color: 'indigo',
|
||||
title_lang: 'dashboard.pos6',
|
||||
extracl: 'extra'
|
||||
},
|
||||
{
|
||||
ind: 5,
|
||||
color: 'blue',
|
||||
title_lang: 'dashboard.pos5',
|
||||
extracl: 'extra'
|
||||
},
|
||||
{
|
||||
ind: 4,
|
||||
color: 'green',
|
||||
title_lang: 'dashboard.mediatore',
|
||||
extracl: ''
|
||||
},
|
||||
{
|
||||
ind: 3,
|
||||
color: 'yellow',
|
||||
title_lang: 'dashboard.pos3',
|
||||
extracl: 'extra'
|
||||
},
|
||||
{
|
||||
ind: 2,
|
||||
color: 'orange',
|
||||
title_lang: 'dashboard.pos2',
|
||||
extracl: 'extra'
|
||||
},
|
||||
{
|
||||
ind: 1,
|
||||
color: 'red',
|
||||
title_lang: 'dashboard.donatore',
|
||||
extracl: ''
|
||||
},
|
||||
]
|
||||
|
||||
public mounted() {
|
||||
this.nave = this.naveprop
|
||||
this.navi_partenza = this.navi_partenzaprop
|
||||
|
||||
this.riga = tools.getValDb('riga', false, 1)
|
||||
this.col = tools.getValDb('col', false, 1)
|
||||
this.rigadoni = tools.getValDb('rigadoni', false, 1)
|
||||
this.coldoni = tools.getValDb('coldoni', false, 1)
|
||||
|
||||
this.mediatore = this.getmediatore()
|
||||
|
||||
if (!!this.mediatore) {
|
||||
this.link_chat = this.mediatore.link_chat
|
||||
}
|
||||
}
|
||||
|
||||
public getNavePartByInd(ind) {
|
||||
if (!!this.navi_partenza[ind])
|
||||
return this.navi_partenza[ind].date_start
|
||||
else
|
||||
return ' --/--/-- '
|
||||
}
|
||||
|
||||
public getRiganave(riga) {
|
||||
let ris = riga - 3
|
||||
if (ris <= 1)
|
||||
ris = 1
|
||||
return ris
|
||||
}
|
||||
|
||||
public getColnave(col) {
|
||||
let ris = Math.floor(col / (2 * 4))
|
||||
if (ris <= 1)
|
||||
ris = 1
|
||||
return ris
|
||||
}
|
||||
|
||||
public sonoMediatore() {
|
||||
if (!!this.nave) {
|
||||
if (!!this.nave.rec.donatore.recmediatore)
|
||||
return this.nave.rec.donatore.recmediatore.ind_order === this.nave.ind_order
|
||||
else {
|
||||
if (!!this.nave.rec.mediatore.recmediatore)
|
||||
return this.nave.rec.mediatore.recmediatore.ind_order === this.nave.ind_order
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
public sonoDonatore() {
|
||||
if (!!this.nave) {
|
||||
for (const rec of this.nave.rec.donatore.arrdonatori) {
|
||||
if (!!rec) {
|
||||
if (rec.ind_order === this.nave.ind_order)
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
public getmediatore() {
|
||||
return this.nave.rec.donatore.recmediatore
|
||||
}
|
||||
|
||||
public change_link_chat() {
|
||||
const recmed = this.getmediatore()
|
||||
if (recmed.link_chat !== this.link_chat) {
|
||||
recmed.link_chat = this.link_chat
|
||||
|
||||
const mydata = {
|
||||
link_chat: recmed.link_chat
|
||||
}
|
||||
tools.saveFieldToServer(this, 'navi', recmed._id, mydata)
|
||||
}
|
||||
}
|
||||
|
||||
get linkchatopen() {
|
||||
return this.link_chat
|
||||
}
|
||||
|
||||
public sonoSognatore() {
|
||||
return this.nave.rec.donatore.recsognatore.ind_order === this.nave.ind_order
|
||||
}
|
||||
|
||||
public getclassSelect(rec) {
|
||||
if (rec.ind_order === this.nave.ind_order)
|
||||
return ' you'
|
||||
}
|
||||
|
||||
public gettitlenave(ind) {
|
||||
if (ind === 1)
|
||||
return this.getRiganave(this.nave.riga) + '.' + this.getColnave(this.nave.col)
|
||||
else
|
||||
return (this.getrigaNaveByInd(ind)) + '.x'
|
||||
}
|
||||
|
||||
public getdatanave(rec) {
|
||||
if (this.sonoDonatore()) {
|
||||
if (rec.ind === 1) {
|
||||
return tools.getstrshortDate(this.nave.date_start) // Donatore
|
||||
}
|
||||
}
|
||||
if (this.sonoMediatore()) {
|
||||
if (rec.ind === 4) {
|
||||
return tools.getstrshortDate(this.nave.date_start) // Mediatore
|
||||
}
|
||||
}
|
||||
|
||||
return this.getNavePartByInd(rec.ind)
|
||||
}
|
||||
|
||||
public getrigaNaveByInd(ind) {
|
||||
return this.getRiganave(this.nave.riga + ind - 1)
|
||||
}
|
||||
|
||||
public NaveeseguitabyInd(riga) {
|
||||
return (this.riga >= riga)
|
||||
}
|
||||
|
||||
public getclpos(rec) {
|
||||
if (this.NaveeseguitabyInd(this.getrigaNaveByInd(rec.ind))) {
|
||||
return 'you'
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
}
|
||||
|
||||
public geticon(rec) {
|
||||
|
||||
if (this.rigadoni >= this.getrigaNaveByInd(rec.ind)) {
|
||||
return 'fas fa-gift'
|
||||
}
|
||||
}
|
||||
|
||||
public async InviaMsgANave(msgobj, navemediatore) {
|
||||
|
||||
let msgtitle = translate('dashboard.controlla_donatori')
|
||||
if (msgobj.inviareale) {
|
||||
msgtitle = translate('dashboard.invia_link_chat')
|
||||
}
|
||||
|
||||
await tools.askConfirm(this.$q, msgtitle, translate('dashboard.inviare_msg_donatori') + ' ' + '?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.INVIA_MSG_A_DONATORI, 0, {
|
||||
param1: msgobj,
|
||||
param2: navemediatore
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
public async InviaMsgADonatori(msgobj) {
|
||||
|
||||
const navemediatore = {
|
||||
id: this.mediatore._id,
|
||||
riga: this.mediatore.riga,
|
||||
col: this.mediatore.col
|
||||
}
|
||||
|
||||
this.InviaMsgANave(msgobj, navemediatore)
|
||||
}
|
||||
|
||||
get linkchatesiste() {
|
||||
if (!!this.linkchatopen)
|
||||
return this.linkchatopen.length > 10
|
||||
return false
|
||||
}
|
||||
|
||||
public InviaLinkChatADonatori(inviareale) {
|
||||
|
||||
const msgobj = {
|
||||
tipomsg: tools.TipoMsg.SEND_LINK_CHAT_DONATORI,
|
||||
msgpar1: this.linkchatopen,
|
||||
inviareale,
|
||||
}
|
||||
|
||||
this.InviaMsgADonatori(msgobj)
|
||||
}
|
||||
|
||||
}
|
||||
177
src/components/CMyNave/CMyNave.vue
Normal file
177
src/components/CMyNave/CMyNave.vue
Normal file
@@ -0,0 +1,177 @@
|
||||
<template>
|
||||
<div>
|
||||
<CTitleBanner v-if="nave" class="q-pa-xs"
|
||||
:title="$t('pages.nave') + ` ` + getRiganave(nave.riga) + `.`+getColnave(nave.col) + ` ` + $t('dashboard.nave_in_partenza') + ` ` + tools.getstrDate(nave.date_start)"
|
||||
bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
mystyle="" myclass="myshad" canopen="true">
|
||||
|
||||
|
||||
<div v-if="nave" class="flex flex-center column justify-center">
|
||||
<div class="">
|
||||
<!--IndPrimario: {{ nave.indprimario }} - IndOrder: {{ nave.ind_order }} -->
|
||||
</div>
|
||||
|
||||
<q-tabs
|
||||
v-model="cosa"
|
||||
dense
|
||||
class="text-blue"
|
||||
active-color="primary"
|
||||
indicator-color="primary"
|
||||
align="justify"
|
||||
narrow-indicator
|
||||
>
|
||||
<q-tab name="tragitto" label="Tragitto"></q-tab>
|
||||
<q-tab name="donatore" label="Donatore"></q-tab>
|
||||
<q-tab name="mediatore" label="Mediatore"></q-tab>
|
||||
<q-tab name="spiegazione" label="Spiegazione"></q-tab>
|
||||
</q-tabs>
|
||||
|
||||
|
||||
<q-tab-panels v-model="cosa" animated>
|
||||
<q-tab-panel name="spiegazione">
|
||||
|
||||
<div v-if="sonoMediatore()">
|
||||
<div class="text-left" v-html="$t('dashboard.sonomediatore')"></div>
|
||||
|
||||
<q-input v-model="link_chat" :label="$t('dashboard.link_chat')"
|
||||
debounce="1000"
|
||||
input-class="myinput-area"
|
||||
@input="change_link_chat">
|
||||
|
||||
</q-input>
|
||||
|
||||
<div class="">
|
||||
<div class="row justify-center centermydiv q-gutter-sm" style="max-width: 420px;">
|
||||
<q-btn rounded text-color="secondary" icon="fab fa-telegram"
|
||||
:label="$t('dashboard.controlla_donatori')"
|
||||
@click="InviaLinkChatADonatori(false)"></q-btn>
|
||||
|
||||
<q-btn rounded text-color="primary" icon="fab fa-telegram"
|
||||
:disable="!linkchatesiste"
|
||||
:label="$t('dashboard.invia_link_chat')"
|
||||
@click="InviaLinkChatADonatori(true)"></q-btn>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else-if="sonoDonatore()">
|
||||
<div v-html="$t('dashboard.sonosognatore')">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="tragitto">
|
||||
<div class="row justify-between">
|
||||
<div class="cont_pos_intest">N</div>
|
||||
|
||||
<div class="cont_intestaz q-mx-sm"> Nome<br>dei Passaggi</div>
|
||||
|
||||
<div class="cont_intestaz">Nave</div>
|
||||
<div class="cont_intestaz">Data<br>Partenza</div>
|
||||
<div class="cont_intestaz_small">Doni<br>Inviati</div>
|
||||
</div>
|
||||
|
||||
<div v-for="rec in tragitto" :key="rec.ind">
|
||||
<div :class="`row items-center ` + rec.extracl">
|
||||
<div :class="`cont_pos ` + getclpos(rec)">
|
||||
{{ rec.ind }}
|
||||
</div>
|
||||
<div v-if="rec.title_lang" class="passo">
|
||||
<div :class="rec.extracl">
|
||||
<q-chip class="glossy" :color="rec.color" text-color="white">
|
||||
{{ $t(rec.title_lang) }}
|
||||
</q-chip>
|
||||
</div>
|
||||
</div>
|
||||
<div class="">
|
||||
<q-chip class="glossy" :color="rec.color" text-color="white">
|
||||
{{ gettitlenave(rec.ind) }}
|
||||
</q-chip>
|
||||
</div>
|
||||
<div class="">
|
||||
<q-chip class="glossy" :color="rec.color" text-color="white">
|
||||
{{ getdatanave(rec) }}
|
||||
</q-chip>
|
||||
</div>
|
||||
<q-icon color="green" inverted size="sm" :name="geticon(rec)" class="gift"></q-icon>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="q-ma-md q-butter-sm" v-if="!!linkchatopen">
|
||||
Per entrare nella Gift Chat, clicca qui:<br>
|
||||
<div class="q-ma-md">
|
||||
<q-btn rounded color="primary" icon="fab fa-telegram" :label="$t('dashboard.entra_in_gift_chat')"
|
||||
type="a"
|
||||
:href="linkchatopen" target="_blank"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="donatore">
|
||||
|
||||
<div v-if="nave.rec.donatore.recsognatori">
|
||||
<div class="sognatore">SOGNATORI:</div>
|
||||
<div v-for="(sognatore, index) in nave.rec.donatore.recsognatori" :key="10+index">
|
||||
<div v-if="sognatore" :class="`cont_sognatore ` + getclassSelect(sognatore)">
|
||||
A{{3 - index}} - {{ sognatore.name }} {{ sognatore.surname }} ({{sognatore.username }})
|
||||
</div>
|
||||
</div>
|
||||
<div class="">
|
||||
<div class="mediatore">MEDIATORE:</div>
|
||||
<div :class="`cont_mediatore ` + getclassSelect(nave.rec.donatore.recmediatore)">
|
||||
{{ nave.rec.donatore.recmediatore.name }} {{ nave.rec.donatore.recmediatore.surname }} ({{
|
||||
nave.rec.donatore.recmediatore.username }})
|
||||
</div>
|
||||
</div>
|
||||
<div class="donatore">DONATORI:</div>
|
||||
<div v-for="(donatore, index) in nave.rec.donatore.arrdonatori" :key="index">
|
||||
<div v-if="donatore" :class="`cont_donatore ` + getclassSelect(donatore)">
|
||||
D{{index + 1}} - {{ donatore.name }} {{ donatore.surname }} ({{ donatore.username }}) {{
|
||||
donatore.riga}}.{{donatore.col}}<br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="mediatore">
|
||||
|
||||
<div v-if="nave.rec.mediatore.recsognatori">
|
||||
<div class="sognatore">SOGNATORI:</div>
|
||||
<div v-for="(sognatore, index) in nave.rec.mediatore.recsognatori" :key="10+index">
|
||||
<div v-if="sognatore" :class="`cont_sognatore ` + getclassSelect(sognatore)">
|
||||
A{{3 - index}} - {{ sognatore.name }} {{ sognatore.surname }} ({{sognatore.username }})
|
||||
</div>
|
||||
</div>
|
||||
<div class="">
|
||||
<div class="mediatore">MEDIATORE:</div>
|
||||
<div :class="`cont_mediatore ` + getclassSelect(nave.rec.mediatore.recmediatore)">
|
||||
{{ nave.rec.mediatore.recmediatore.name }} {{ nave.rec.mediatore.recmediatore.surname }} ({{
|
||||
nave.rec.mediatore.recmediatore.username }})
|
||||
</div>
|
||||
</div>
|
||||
<div class="donatore">DONATORI:</div>
|
||||
<div v-for="(donatore, index) in nave.rec.mediatore.arrdonatori" :key="index">
|
||||
<div v-if="donatore" :class="`cont_donatore ` + getclassSelect(donatore)">
|
||||
D{{index + 1}} - {{ donatore.name }} {{ donatore.surname }} ({{ donatore.username }}) {{
|
||||
donatore.riga}}.{{donatore.col}}<br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</q-tab-panel>
|
||||
</q-tab-panels>
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CMyNave.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './CMyNave.scss';
|
||||
</style>
|
||||
1
src/components/CMyNave/index.ts
Normal file
1
src/components/CMyNave/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export {default as CMyNave} from './CMyNave.vue'
|
||||
@@ -96,7 +96,7 @@ export default class CMyRequirement extends MixinUsers {
|
||||
isok(user) {
|
||||
if (user)
|
||||
if (user.profile)
|
||||
return tools.isBitActive(user.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES)
|
||||
return tools.isBitActive(user.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES.value)
|
||||
return false
|
||||
},
|
||||
info: '',
|
||||
@@ -110,7 +110,7 @@ export default class CMyRequirement extends MixinUsers {
|
||||
isok(user) {
|
||||
if (user)
|
||||
if (user.profile)
|
||||
return tools.isBitActive(user.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI)
|
||||
return tools.isBitActive(user.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI.value)
|
||||
return false
|
||||
},
|
||||
info: '',
|
||||
@@ -171,6 +171,9 @@ export default class CMyRequirement extends MixinUsers {
|
||||
},
|
||||
info: '',
|
||||
},
|
||||
]
|
||||
|
||||
public arrrequisiti_liberi = [
|
||||
{
|
||||
icon: 'fas fa-users',
|
||||
textlang: 'steps.sharemovement',
|
||||
@@ -298,4 +301,11 @@ export default class CMyRequirement extends MixinUsers {
|
||||
return mycl
|
||||
}
|
||||
|
||||
public geticonerror(mybool) {
|
||||
if (mybool)
|
||||
return 'fas fa-exclamation-triangle'
|
||||
else
|
||||
return ''
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
<template>
|
||||
<div>
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="$t('reg.requirement') + ` - ` + seluser.name + ` ` + seluser.surname + ``"
|
||||
<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="myclassreq">
|
||||
<div :class="myclassreq">
|
||||
|
||||
<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)"
|
||||
<CRequisito :icon="req.icon" :text="(index + 1) + `. ` + $t(req.textlang) + req.textadd(seluser)"
|
||||
:icon_error="geticonerror(true)"
|
||||
:no_check="false"
|
||||
:isok="req.isok(seluser)"
|
||||
:info="req.info"></CRequisito>
|
||||
</div>
|
||||
|
||||
@@ -68,7 +72,28 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else>
|
||||
<CTitleBanner class="shadow-2 rounded-borders"
|
||||
:title="$t('steps.sharemovement') + ` - ` + seluser.name + ` ` + seluser.surname + ``"
|
||||
bgcolor="bg-secondary"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<div :class="myclassreq">
|
||||
|
||||
<div v-if="!isextralist(seluser)">
|
||||
<div v-for="(req, index) of arrrequisiti_liberi">
|
||||
<CRequisito :icon="req.icon" :text="$t(req.textlang) + req.textadd(seluser)"
|
||||
:icon_error="geticonerror(false)"
|
||||
:no_check="true"
|
||||
:isok="req.isok(seluser)"
|
||||
:info="req.info"></CRequisito>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
<!--<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"
|
||||
@@ -85,7 +110,7 @@
|
||||
</CTitleBanner>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
|
||||
</CTitleBanner>
|
||||
|
||||
@@ -16,6 +16,7 @@ export default class CMyToggleList extends Vue {
|
||||
@Prop({ required: false, default: '' }) public myclass
|
||||
@Prop({ required: true, default: '' }) public optlab
|
||||
@Prop({ required: true, default: '' }) public optval
|
||||
@Prop({ required: false, default: false }) public isarray
|
||||
|
||||
public myvalue = ''
|
||||
public myarrvalues = []
|
||||
@@ -26,7 +27,13 @@ export default class CMyToggleList extends Vue {
|
||||
|
||||
public changeval(newval) {
|
||||
// Update value
|
||||
const totale = this.myarrvalues.filter((rec) => rec.valbool).reduce((sum, rec) => sum + rec.value, 0)
|
||||
let totale = null
|
||||
if (this.isarray) {
|
||||
totale = this.myarrvalues.filter((rec) => rec.valbool).map((a) => a.value)
|
||||
} else {
|
||||
totale = this.myarrvalues.filter((rec) => rec.valbool).reduce((sum, rec) => sum + rec.value, 0)
|
||||
}
|
||||
console.log('totale', totale)
|
||||
this.myvalue = totale
|
||||
|
||||
// Refresh value
|
||||
@@ -36,15 +43,33 @@ export default class CMyToggleList extends Vue {
|
||||
public mounted() {
|
||||
this.myarrvalues = []
|
||||
|
||||
// console.table(this.options)
|
||||
this.options.forEach((rec) => {
|
||||
const mydata = {
|
||||
label: this.$t(rec[this.optlab]),
|
||||
value: rec[this.optval],
|
||||
valbool: tools.isBitActive(this.value, rec[this.optval])
|
||||
}
|
||||
this.myarrvalues.push(mydata)
|
||||
})
|
||||
// console.log('value', this.value)
|
||||
// console.log('optval', this.optval)
|
||||
// console.log('optlab', this.optlab)
|
||||
|
||||
if (this.isarray) {
|
||||
// console.table(this.options)
|
||||
this.options.forEach((rec) => {
|
||||
console.log('rec: ', rec)
|
||||
const mydata = {
|
||||
label: this.$t(rec[this.optlab]),
|
||||
value: rec[this.optval],
|
||||
valbool: this.value.includes(rec[this.optval])
|
||||
}
|
||||
console.log('mydata ', mydata)
|
||||
this.myarrvalues.push(mydata)
|
||||
})
|
||||
|
||||
} else {
|
||||
// console.table(this.options)
|
||||
this.options.forEach((rec) => {
|
||||
const mydata = {
|
||||
label: this.$t(rec[this.optlab]),
|
||||
value: rec[this.optval],
|
||||
valbool: tools.isBitActive(this.value, rec[this.optval])
|
||||
}
|
||||
this.myarrvalues.push(mydata)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ export default class CNextZoom extends MixinBase {
|
||||
const mydate = GlobalStore.state.calzoom.slice(-1)[0].date_start
|
||||
const mydate_end = GlobalStore.state.calzoom.slice(-1)[0].date_end
|
||||
const datenow = tools.getDateNow()
|
||||
console.log('date.getDateDiff(datenow, mydate, \'minutes\')', date.getDateDiff(datenow, mydate, 'minutes'))
|
||||
// console.log('date.getDateDiff(datenow, mydate, \'minutes\')', date.getDateDiff(datenow, mydate, 'minutes'))
|
||||
// if begin is in the past, take the day now
|
||||
if ((date.getDateDiff(datenow, mydate, 'minutes') > -10) && (date.getDateDiff(datenow, mydate_end, 'minutes') < 0)) {
|
||||
return true
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
.requisiti_on, .requisiti_off{
|
||||
.requisiti_on, .requisiti_off, .requisiti_off_ko{
|
||||
margin: 4px;
|
||||
border-radius: 3rem;
|
||||
padding: 8px;
|
||||
padding-left: 14px;
|
||||
padding-right: 14px;
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.requisiti_on {
|
||||
@@ -12,3 +15,7 @@
|
||||
border: solid 3px #ef0901;
|
||||
}
|
||||
|
||||
.requisiti_off_ko {
|
||||
border: solid 3px blue;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,11 +9,16 @@ export default class CRequisiti extends Vue {
|
||||
@Prop({ required: true }) public statebool: boolean
|
||||
@Prop({ required: true }) public msgTrue: string
|
||||
@Prop({ required: true }) public msgFalse: string
|
||||
@Prop({ required: false, default: false }) public color_ko: boolean
|
||||
|
||||
get getcl() {
|
||||
if (this.statebool)
|
||||
return 'requisiti_on'
|
||||
else
|
||||
return 'requisiti_off'
|
||||
else {
|
||||
if (this.color_ko)
|
||||
return 'requisiti_off_ko'
|
||||
else
|
||||
return 'requisiti_off'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="q-ma-md">
|
||||
<div class="q-ma-sm">
|
||||
<div :class="getcl">
|
||||
<div v-if="statebool" v-html="msgTrue"></div>
|
||||
<div v-else v-html="msgFalse"></div>
|
||||
|
||||
@@ -11,12 +11,17 @@ import MixinBase from '@src/mixins/mixin-base'
|
||||
|
||||
export default class CRequisito extends MixinBase {
|
||||
@Prop({ required: true }) public icon: string
|
||||
@Prop({ required: false, default: 'fas fa-exclamation-triangle' }) public icon_error: string
|
||||
@Prop({ required: true }) public text: string
|
||||
@Prop({ required: true }) public isok: boolean
|
||||
@Prop({ required: false, default: false }) public no_check: boolean
|
||||
@Prop({ required: true }) public info: string
|
||||
|
||||
get checkifok() {
|
||||
return this.isok ? 'green' : 'red'
|
||||
if (this.no_check)
|
||||
return 'blue'
|
||||
else
|
||||
return this.isok ? 'green' : 'red'
|
||||
}
|
||||
|
||||
get getris() {
|
||||
@@ -24,6 +29,6 @@ export default class CRequisito extends MixinBase {
|
||||
}
|
||||
|
||||
get iconris() {
|
||||
return (this.isok) ? 'fas fa-check' : 'fas fa-exclamation-triangle'
|
||||
return (this.isok) ? 'fas fa-check' : this.icon_error
|
||||
}
|
||||
}
|
||||
|
||||
0
src/components/CSigninNoreg/CSigninNoreg.scss
Normal file
0
src/components/CSigninNoreg/CSigninNoreg.scss
Normal file
36
src/components/CSigninNoreg/CSigninNoreg.ts
Normal file
36
src/components/CSigninNoreg/CSigninNoreg.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import Vue from 'vue'
|
||||
import { Component, Prop, Watch } from 'vue-property-decorator'
|
||||
import { CSignIn } from '../../components/CSignIn'
|
||||
import { tools } from '../../store/Modules/tools'
|
||||
|
||||
@Component({
|
||||
components: { CSignIn }
|
||||
})
|
||||
|
||||
export default class CSigninNoreg extends Vue {
|
||||
@Prop({ required: true }) public showregbutt: boolean
|
||||
public $v
|
||||
public $q
|
||||
public $t
|
||||
|
||||
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/components/CSigninNoreg/CSigninNoreg.vue
Normal file
18
src/components/CSigninNoreg/CSigninNoreg.vue
Normal file
@@ -0,0 +1,18 @@
|
||||
<template>
|
||||
<div>
|
||||
<CSignIn :mythis="mythis"
|
||||
@loginOk="loginOk"
|
||||
@loginInCorso="loginInCorso"
|
||||
:showregbutt="false"
|
||||
@checkErrors="checkErrors"
|
||||
@showNotif="showNotif">
|
||||
</CSignIn>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CSigninNoreg.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './CSigninNoreg.scss';
|
||||
</style>
|
||||
1
src/components/CSigninNoreg/index.ts
Normal file
1
src/components/CSigninNoreg/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export {default as CSigninNoreg} from './CSigninNoreg.vue'
|
||||
@@ -18,7 +18,18 @@ import { CGuidelines } from '../CGuidelines'
|
||||
import { CVideoPromo } from '../CVideoPromo'
|
||||
|
||||
@Component({
|
||||
components: { CTitleBanner, CMyFieldDb, CMyInnerPage, CVerifyTelegram, CVerifyEmail, CCopyBtn, CVideo, CRequisiti, CGuidelines, CVideoPromo }
|
||||
components: {
|
||||
CTitleBanner,
|
||||
CMyFieldDb,
|
||||
CMyInnerPage,
|
||||
CVerifyTelegram,
|
||||
CVerifyEmail,
|
||||
CCopyBtn,
|
||||
CVideo,
|
||||
CRequisiti,
|
||||
CGuidelines,
|
||||
CVideoPromo
|
||||
}
|
||||
})
|
||||
|
||||
export default class CStatus extends MixinBase {
|
||||
@@ -27,7 +38,7 @@ export default class CStatus extends MixinBase {
|
||||
public $t: any
|
||||
public step = 0
|
||||
public steptodo = 0
|
||||
public NUMSTEP_OBBLIGATORI = 9
|
||||
public NUMSTEP_OBBLIGATORI = 7
|
||||
public my_dream: string = ''
|
||||
|
||||
get numpayment() {
|
||||
@@ -92,7 +103,7 @@ export default class CStatus extends MixinBase {
|
||||
descr: '',
|
||||
page: '',
|
||||
funccheck(index) {
|
||||
return tools.isBitActive(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES)
|
||||
return tools.isBitActive(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES.value)
|
||||
},
|
||||
funccheck_error(index) {
|
||||
return true
|
||||
@@ -109,7 +120,7 @@ export default class CStatus extends MixinBase {
|
||||
descr: '',
|
||||
page: '',
|
||||
funccheck(index) {
|
||||
return tools.isBitActive(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI)
|
||||
return tools.isBitActive(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI.value)
|
||||
},
|
||||
funccheck_error(index) {
|
||||
return true
|
||||
@@ -228,10 +239,10 @@ export default class CStatus extends MixinBase {
|
||||
descr: 'steps.enter_prog_long',
|
||||
page: '/enter_prog',
|
||||
funccheck(index) {
|
||||
return false
|
||||
return true
|
||||
},
|
||||
funccheck_error(index) {
|
||||
return false
|
||||
return true
|
||||
},
|
||||
funcok() {
|
||||
return ''
|
||||
@@ -421,8 +432,20 @@ export default class CStatus extends MixinBase {
|
||||
}
|
||||
}
|
||||
|
||||
public geterricon(value) {
|
||||
return 'fas fa-exclamation-triangle'
|
||||
public geterrcolor(mystep) {
|
||||
if ((mystep.title === 'steps.sharemovement') || (mystep.title === 'dashboard.inv_attivi')) {
|
||||
return 'blue'
|
||||
} else {
|
||||
return 'red'
|
||||
}
|
||||
}
|
||||
|
||||
public geterricon(value, mystep) {
|
||||
if ((mystep.title === 'steps.sharemovement') || (mystep.title === 'dashboard.inv_attivi')) {
|
||||
return 'fas fa-user'
|
||||
} else {
|
||||
return 'fas fa-exclamation-triangle'
|
||||
}
|
||||
}
|
||||
|
||||
get listasel() {
|
||||
@@ -456,6 +479,10 @@ export default class CStatus extends MixinBase {
|
||||
}
|
||||
|
||||
public geticoncolor(title) {
|
||||
if (title === 'steps.enter_prog') {
|
||||
return this.CompletatoRequisiti ? 'blue' : (this.Completato9Req ? 'green' : 'blue')
|
||||
}
|
||||
|
||||
if (title === 'steps.chat_biblio') {
|
||||
return 'blue'
|
||||
} else {
|
||||
@@ -478,7 +505,21 @@ export default class CStatus extends MixinBase {
|
||||
}
|
||||
|
||||
get CompletatoRequisiti() {
|
||||
return this.VistoZoom && this.getnuminvitati_attivi() >= 2 && this.RequisitoPayment
|
||||
try {
|
||||
return this.VistoZoom && this.RequisitoPayment &&
|
||||
this.TelegVerificato &&
|
||||
(UserStore.state.my.profile.my_dream.length >= 10) &&
|
||||
tools.isBitActive(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI.value) &&
|
||||
tools.isBitActive(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES.value)
|
||||
}catch (e) {
|
||||
return false
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
get Completato9Req() {
|
||||
// return tools.Is9ReqOk(this.dashboard.myself)
|
||||
return this.CompletatoRequisiti && (this.getnuminvitati_attivi() >= 2)
|
||||
}
|
||||
|
||||
get RequisitoPayment() {
|
||||
@@ -519,12 +560,12 @@ export default class CStatus extends MixinBase {
|
||||
}
|
||||
|
||||
get stepcompleti() {
|
||||
return this.getstep === this.NUMSTEP_OBBLIGATORI
|
||||
return this.getstep >= this.NUMSTEP_OBBLIGATORI
|
||||
}
|
||||
|
||||
public scrolltostep(mystep) {
|
||||
this.step = mystep
|
||||
if (mystep > 0 )
|
||||
if (mystep > 0)
|
||||
mystep -= 1
|
||||
const element = document.getElementById('step' + mystep)
|
||||
tools.scrollToElement(element)
|
||||
|
||||
@@ -54,7 +54,8 @@
|
||||
:done-color="geticoncolor(mystep.title)"
|
||||
:done="mystep.funccheck(index)"
|
||||
:error="getiferror(mystep.funccheck_error(index), mystep.funccheck(index))"
|
||||
:error-icon="geterricon(mystep.funccheck(index))"
|
||||
:error-icon="geterricon(mystep.funccheck(index), mystep)"
|
||||
:error-color="geterrcolor(mystep)"
|
||||
>
|
||||
<div v-if="mystep.title === 'reg.email'">
|
||||
<CVerifyEmail>
|
||||
@@ -138,6 +139,10 @@
|
||||
|
||||
<div>
|
||||
|
||||
<CRequisiti :statebool="RequisitoPayment" :msgTrue="$t('steps.paymenttype_long2')"
|
||||
:msgFalse="$t('steps.paymenttype_long2')">
|
||||
</CRequisiti>
|
||||
|
||||
<CMyFieldDb :title="$t('reg.paymenttype')"
|
||||
table="users"
|
||||
mykey="profile"
|
||||
@@ -259,9 +264,9 @@
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.sharemovement'">
|
||||
|
||||
<CRequisiti :statebool="getnuminvitati() >= 2" :msgTrue="$t('steps.sharemovement_hai_invitato')"
|
||||
<!--<CRequisiti :statebool="getnuminvitati() >= 2" :msgTrue="$t('steps.sharemovement_hai_invitato')"
|
||||
:msgFalse="$t('steps.sharemovement_devi_invitare_almeno_2')">
|
||||
</CRequisiti>
|
||||
</CRequisiti>-->
|
||||
|
||||
<q-btn class="q-mb-md" rounded size="md" color="primary" to="/dashboard"
|
||||
:label="$t('pages.dashboard')"></q-btn>
|
||||
@@ -318,8 +323,9 @@
|
||||
:msgFalse="$t('steps.enter_prog_completa_requisiti')">
|
||||
</CRequisiti>
|
||||
|
||||
<CRequisiti :statebool="CompletatoRequisiti" :msgTrue="$t('steps.enter_prog_status')"
|
||||
:msgFalse="$t('steps.enter_prog_status')">
|
||||
|
||||
<CRequisiti v-if="Completato9Req" :statebool="Completato9Req" :msgTrue="$t('steps.enter_nave_9req_ok')"
|
||||
:msgFalse="$t('steps.enter_nave_9req_ko')">
|
||||
</CRequisiti>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -100,7 +100,7 @@ export default class CStatusReg extends MixinBase {
|
||||
UserStore.state.my.verified_email = true
|
||||
this.riaggiorna()
|
||||
}
|
||||
if (UserStore.state.my.profile) {
|
||||
if (UserStore.state.my.profile && this.datastat.checkuser.profile) {
|
||||
if ((UserStore.state.my.profile.teleg_id <= 0 && this.datastat.checkuser.profile.teleg_id > 0) ||
|
||||
(UserStore.state.my.profile.teleg_id !== this.datastat.checkuser.profile.teleg_id > 0)) {
|
||||
UserStore.state.my.profile.teleg_id = this.datastat.checkuser.profile.teleg_id
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<CCardState :mytext="$t('pages.statusreg.reg')" :myval="datastat.num_reg" :myperc="100"></CCardState>
|
||||
<CCardState :mytext="$t('stat.requisiti')" :isperc="true" :myval="datastat.num_requisiti"
|
||||
:myperc="calcperc(datastat.num_requisiti, datastat.num_reg) "
|
||||
color="blue"
|
||||
mycolor="blue"
|
||||
:textadd="` / ` + datastat.num_reg"></CCardState>
|
||||
|
||||
<!--<CCardState :mytext="$t('pages.statusreg.giainlista')" :isperc="true" :myval="datastat.num_reg_lista"-->
|
||||
@@ -22,7 +22,7 @@
|
||||
<CCardStat :mytext="$t('stat.dream')" :myval="datastat.num_users_dream"></CCardStat>
|
||||
<CCardStat :mytext="$t('stat.modalita_pagamento')" :myval="datastat.num_modalita_pagamento"></CCardStat>
|
||||
<CCardStat :mytext="$t('stat.requisiti')" :myval="datastat.num_requisiti"></CCardStat>
|
||||
<CCardStat :mytext="$t('stat.qualificati')" :myval="datastat.num_qualificati"></CCardStat>
|
||||
<!--<CCardStat :mytext="$t('stat.qualificati')" :myval="datastat.num_qualificati"></CCardStat>-->
|
||||
<CCardStat v-if="emailnonverif" :mytext="$t('stat.email_not_verif')" :myval="emailnonverif"
|
||||
mycol="negative"></CCardStat>
|
||||
<CCardStat v-if="telegnonattivi" :mytext="$t('stat.telegram_non_attivi')" :myval="telegnonattivi"
|
||||
@@ -37,6 +37,7 @@
|
||||
appear
|
||||
enter-active-class="animazione fadeIn"
|
||||
leave-active-class="animazione fadeOut">
|
||||
|
||||
<q-item v-for="(user, index) in lastsreg" :key="user.username" class="q-mb-xs animated" v-ripple>
|
||||
|
||||
<q-item-section avatar>
|
||||
@@ -72,7 +73,7 @@
|
||||
<CLineChart :mydata="datastat.reg_daily" :title="$t('stat.reg_daily')">
|
||||
|
||||
</CLineChart>
|
||||
<CLineChart :mydata="datastat.reg_daily" :title="$t('stat.reg_total')" :sum="true"
|
||||
<CLineChart :mydata="datastat.reg_daily" :title="$t('stat.reg_total')" :offset="datastat.numreg_untilday" :sum="true"
|
||||
:mycolors="['#0b0', '#666']">
|
||||
|
||||
</CLineChart>
|
||||
|
||||
@@ -8,10 +8,13 @@ import { validationMixin } from 'vuelidate'
|
||||
|
||||
import MixinBase from '../../mixins/mixin-base'
|
||||
import { IUserFields } from '../../model'
|
||||
import { shared_consts } from '../../common/shared_vuejs'
|
||||
import { tools } from '../../store/Modules/tools'
|
||||
import { CCardState } from '../CCardState'
|
||||
|
||||
@Component({
|
||||
name: 'CUserBadge',
|
||||
components: { }
|
||||
components: { CCardState }
|
||||
})
|
||||
|
||||
export default class CUserBadge extends MixinBase {
|
||||
@@ -69,15 +72,15 @@ export default class CUserBadge extends MixinBase {
|
||||
if (this.isextralist(user))
|
||||
return 'grey'
|
||||
else
|
||||
return (this.getnumpeople() >= 2) ? 'green' : 'grey'
|
||||
return (this.getnumpeople(user) >= 2) ? 'green' : 'grey'
|
||||
}
|
||||
|
||||
public isextralist(user) {
|
||||
return !!user.cell_complete
|
||||
}
|
||||
|
||||
public getnumpeople() {
|
||||
return this.numpeople
|
||||
public getnumpeople(user) {
|
||||
return user.numinvitati
|
||||
}
|
||||
|
||||
public getusername(user) {
|
||||
@@ -92,4 +95,52 @@ export default class CUserBadge extends MixinBase {
|
||||
this.$emit('myclick', user)
|
||||
}
|
||||
|
||||
public getnumreq(user) {
|
||||
let val = tools.getnumrequisiti(user)
|
||||
|
||||
if (val === 7) {
|
||||
val += user.numinvitati >= 2 ? 1 : 0
|
||||
val += user.numinvitatiattivi >= 2 ? 1 : 0
|
||||
}
|
||||
|
||||
return val
|
||||
}
|
||||
|
||||
public getnumperc(user) {
|
||||
let perc = (this.getnumreq(user) / 9) * 100
|
||||
|
||||
// console.log('numperc', perc)
|
||||
return perc
|
||||
}
|
||||
|
||||
public getnumpercpeople(user) {
|
||||
if (user.numinvitati > 2)
|
||||
return 100
|
||||
else
|
||||
return (user.numinvitati / 2) * 100
|
||||
}
|
||||
|
||||
public getcolorpeople(user){
|
||||
if (user.numinvitati === 1)
|
||||
return 'blue'
|
||||
else if (user.numinvitati === 2)
|
||||
return 'green'
|
||||
else if (user.numinvitati > 2)
|
||||
return 'green'
|
||||
|
||||
}
|
||||
|
||||
public getcolor(user) {
|
||||
let mycol = this.getnumreq(user) === 7 ? 'orange' : 'red'
|
||||
|
||||
if (user.numinvitati >= 2) {
|
||||
mycol = 'blue'
|
||||
}
|
||||
if (user.numinvitatiattivi >= 2) {
|
||||
mycol = 'green'
|
||||
}
|
||||
|
||||
return mycol
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<q-item-section>
|
||||
<q-item-label>{{ user.name }} {{ user.surname }} {{ getindorder(user) }}<br>
|
||||
<span class="text-grey">({{ getusername(user) }})</span>
|
||||
<br><span v-if="isextralist(user)" class="notreg">{{ $t('dashboard.notreg') }}</span>
|
||||
<br><!--<span v-if="isextralist(user)" class="notreg">{{ $t('dashboard.notreg') }}</span>-->
|
||||
</q-item-label>
|
||||
<!--<q-item-label caption lines="1">{{ user.email }}</q-item-label>-->
|
||||
</q-item-section>
|
||||
@@ -23,18 +23,24 @@
|
||||
|
||||
<q-item-section side>
|
||||
<div class="row q-gutter-xs justify-center items-center">
|
||||
<q-btn v-if="isextralist(user)" fab-mini
|
||||
icon="fab fa-whatsapp"
|
||||
color="green" type="a"
|
||||
size="sm"
|
||||
:href="tools.getHttpForWhatsapp(user.cell_complete)" target="__blank">
|
||||
</q-btn>
|
||||
<q-icon v-if="!isextralist(user)" size="sm" name="fab fa-telegram" :color="getstatecolor(user)"></q-icon>
|
||||
<q-icon v-if="!isextralist(user)" size="sm" name="fas fa-video" :color="getzoomcolor(user)"></q-icon>
|
||||
<q-avatar :text-color="mycolor" size="md">
|
||||
{{ getnumpeople() }}
|
||||
</q-avatar>
|
||||
<q-icon size="xs" name="fas fa-user-friends" :color="get2peoplecolor(user)"></q-icon>
|
||||
<div>
|
||||
<CCardState :mytext="$t('pages.statusreg.req')" :myval="getnumreq(user)" :myperc="getnumperc(user)" size="50px" size_mob="40px" fontsize="0.75rem" myclass="my-card-small-stat" :mycolor="getcolor(user)"></CCardState>
|
||||
</div>
|
||||
|
||||
<!--<q-icon v-if="!isextralist(user)" size="sm" name="fab fa-telegram" :color="getstatecolor(user)"></q-icon>
|
||||
<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.75rem" myclass="my-card-small-stat" :mycolor="getcolorpeople(user)"></CCardState>
|
||||
</div>
|
||||
<div>
|
||||
<q-btn
|
||||
fab-mini
|
||||
icon="fab fa-whatsapp"
|
||||
color="white" text-color="green" type="a"
|
||||
size="sm"
|
||||
:href="tools.getHttpForWhatsapp(user.profile.cell)" target="__blank">
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
|
||||
@@ -32,14 +32,14 @@ export default class CVideoPromo extends MixinBase {
|
||||
}
|
||||
|
||||
public aggiorna() {
|
||||
this.accetta_saw_video = tools.isBitActive(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI)
|
||||
this.accetta_saw_video = tools.isBitActive(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI.value)
|
||||
}
|
||||
|
||||
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)
|
||||
UserStore.state.my.profile.saw_and_accepted = tools.SetBit(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI.value)
|
||||
else
|
||||
UserStore.state.my.profile.saw_and_accepted = tools.UnSetBit(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI)
|
||||
UserStore.state.my.profile.saw_and_accepted = tools.UnSetBit(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI.value)
|
||||
|
||||
const mydata = {
|
||||
'profile.saw_and_accepted': UserStore.state.my.profile.saw_and_accepted
|
||||
|
||||
@@ -13,17 +13,17 @@ import { toolsext } from '@src/store/Modules/toolsext'
|
||||
|
||||
import Quasar, { Screen } from 'quasar'
|
||||
import { static_data } from '../../db/static_data'
|
||||
import globalroutines from '../../globalroutines'
|
||||
|
||||
import MixinUsers from '../../mixins/mixin-users'
|
||||
import { CMyAvatar } from '../CMyAvatar'
|
||||
import { CSigninNoreg } from '../CSigninNoreg'
|
||||
|
||||
@Component({
|
||||
name: 'Header',
|
||||
mixins: [MixinUsers],
|
||||
components: {
|
||||
drawer,
|
||||
messagePopover, CSignIn, CMyAvatar
|
||||
messagePopover, CSigninNoreg, CMyAvatar
|
||||
}
|
||||
})
|
||||
|
||||
@@ -345,22 +345,6 @@ export default class Header extends Vue {
|
||||
return UserStore.state.my.verified_email
|
||||
}
|
||||
|
||||
public loginOk() {
|
||||
tools.loginOk(this, true)
|
||||
}
|
||||
|
||||
public loginInCorso() {
|
||||
tools.loginInCorso(this)
|
||||
}
|
||||
|
||||
public checkErrors(riscode) {
|
||||
tools.SignIncheckErrors(this, riscode)
|
||||
}
|
||||
|
||||
public showNotif(msgcode) {
|
||||
tools.showNotif(this.$q, this.$t(msgcode))
|
||||
}
|
||||
|
||||
get mythis() {
|
||||
return this
|
||||
}
|
||||
|
||||
@@ -1,192 +1,188 @@
|
||||
<template>
|
||||
<div>
|
||||
<q-header reveal elevated :class="getClassColorHeader">
|
||||
<q-toolbar
|
||||
color="primary"
|
||||
:glossy="$q.theme === 'mat'"
|
||||
:inverted="$q.theme === 'ios'"
|
||||
class="toolbar">
|
||||
<div>
|
||||
<q-header reveal elevated :class="getClassColorHeader">
|
||||
<q-toolbar
|
||||
color="primary"
|
||||
:glossy="$q.theme === 'mat'"
|
||||
:inverted="$q.theme === 'ios'"
|
||||
class="toolbar">
|
||||
|
||||
<q-btn
|
||||
flat
|
||||
dense
|
||||
round
|
||||
@click="leftDrawerOpen = !leftDrawerOpen"
|
||||
aria-label="Menu">
|
||||
<q-icon name="menu"/>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
flat
|
||||
dense
|
||||
round
|
||||
@click="leftDrawerOpen = !leftDrawerOpen"
|
||||
aria-label="Menu">
|
||||
<q-icon name="menu"/>
|
||||
</q-btn>
|
||||
|
||||
|
||||
<div v-if="$q.platform.is.desktop">
|
||||
<!--I'm only rendered on desktop!-->
|
||||
</div>
|
||||
<div v-if="$q.platform.is.desktop">
|
||||
<!--I'm only rendered on desktop!-->
|
||||
</div>
|
||||
|
||||
<div v-if="$q.platform.is.mobile">
|
||||
<!--I'm only rendered on mobile!-->
|
||||
</div>
|
||||
<div v-if="$q.platform.is.mobile">
|
||||
<!--I'm only rendered on mobile!-->
|
||||
</div>
|
||||
|
||||
<div v-if="$q.platform.is.electron">
|
||||
<!--I'm only rendered on Electron!-->
|
||||
</div>
|
||||
<div v-if="$q.platform.is.electron">
|
||||
<!--I'm only rendered on Electron!-->
|
||||
</div>
|
||||
|
||||
<q-btn ripple
|
||||
size="md"
|
||||
id="newvers" v-if="isNewVersionAvailable" color="secondary" rounded icon="refresh"
|
||||
class="btnNewVersShow" @click="RefreshApp" :label="$t('notification.newVersionAvailable')"/>
|
||||
<q-btn ripple
|
||||
size="md"
|
||||
id="newvers" v-if="isNewVersionAvailable" color="secondary" rounded icon="refresh"
|
||||
class="btnNewVersShow" @click="RefreshApp" :label="$t('notification.newVersionAvailable')"/>
|
||||
|
||||
|
||||
<q-toolbar-title class="row items-center">
|
||||
<q-avatar>
|
||||
<img :src="imglogo" height="27" alt="Immagine Logo">
|
||||
</q-avatar>
|
||||
<div class="q-mx-sm">{{getappname}}</div>
|
||||
<div slot="subtitle">{{$t('msg.myDescriz')}} {{ getAppVersion() }}</div>
|
||||
</q-toolbar-title>
|
||||
<q-toolbar-title class="row items-center">
|
||||
<q-avatar>
|
||||
<img :src="imglogo" height="27" alt="Immagine Logo">
|
||||
</q-avatar>
|
||||
<div class="q-mx-sm">{{getappname}}</div>
|
||||
<div slot="subtitle">{{$t('msg.myDescriz')}} {{ getAppVersion() }}</div>
|
||||
</q-toolbar-title>
|
||||
|
||||
|
||||
<!--
|
||||
<div v-if="isAdmin">
|
||||
<q-btn flat dense round aria-label="">
|
||||
<q-icon :class="clCloudUpload" nametranslate="cloud_upload"></q-icon>
|
||||
</q-btn>
|
||||
<!--
|
||||
<div v-if="isAdmin">
|
||||
<q-btn flat dense round aria-label="">
|
||||
<q-icon :class="clCloudUpload" nametranslate="cloud_upload"></q-icon>
|
||||
</q-btn>
|
||||
|
||||
<q-btn flat dense round aria-label="">
|
||||
<q-icon :class="clCloudUp_Indexeddb" nametranslate="arrow_upward"></q-icon>
|
||||
</q-btn>
|
||||
<q-btn flat dense round aria-label="">
|
||||
<q-icon :class="clCloudUp_Indexeddb" nametranslate="arrow_upward"></q-icon>
|
||||
</q-btn>
|
||||
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
-->
|
||||
|
||||
<q-btn
|
||||
v-if="!isonline && static_data.functionality.SHOW_IF_IS_SERVER_CONNECTION"
|
||||
flat
|
||||
dense
|
||||
round
|
||||
@click=""
|
||||
aria-label="Connection"
|
||||
>
|
||||
<q-icon :name="iconConn" :class="clIconConn"></q-icon>
|
||||
<q-icon v-if="isUserNotAuth" name="device_unknown"></q-icon>
|
||||
</q-btn>
|
||||
|
||||
|
||||
<q-btn-dropdown
|
||||
stretch
|
||||
v-if="static_data.lang_available.length > 1"
|
||||
flat
|
||||
:label="langshort"
|
||||
auto-close
|
||||
>
|
||||
<q-list bordered>
|
||||
<q-item clickable v-ripple
|
||||
|
||||
v-for="langrec in static_data.lang_available" :key="langrec.value"
|
||||
@click="lang = langrec.value">
|
||||
<q-item-section avatar>
|
||||
<img :src="langrec.image" class="flagimg" alt="flag">
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
{{langrec.label}}
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-btn-dropdown>
|
||||
|
||||
<div v-if="static_data.functionality.SHOW_MESSAGES">
|
||||
<message-popover></message-popover>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
<div class="right-itens">
|
||||
<label>{{ $t('msg.hello') }}</label> <span v-model="prova"></span> !
|
||||
</div>-->
|
||||
|
||||
<!-- BUTTON USER BAR -->
|
||||
|
||||
<q-btn class="q-mx-xs" v-if="static_data.functionality.SHOW_USER_MENU && !isLogged" dense flat round
|
||||
icon="menu"
|
||||
@click="rightDrawerOpen = !rightDrawerOpen">
|
||||
</q-btn>
|
||||
<q-btn class="q-mx-xs" v-if="static_data.functionality.SHOW_USER_MENU && isLogged" round dense flat
|
||||
@click="rightDrawerOpen = !rightDrawerOpen">
|
||||
<CMyAvatar :myimg="getMyImg"></CMyAvatar>
|
||||
</q-btn>
|
||||
|
||||
</q-toolbar>
|
||||
|
||||
</q-header>
|
||||
|
||||
<q-drawer side="left"
|
||||
bordered
|
||||
show-if-above
|
||||
:breakpoint="500"
|
||||
v-model="leftDrawerOpen"
|
||||
:content-class="['bg-grey-1', 'q-pa-sm']"
|
||||
:content-style="{padding: '0px'}"
|
||||
<q-btn
|
||||
v-if="!isonline && static_data.functionality.SHOW_IF_IS_SERVER_CONNECTION"
|
||||
flat
|
||||
dense
|
||||
round
|
||||
@click=""
|
||||
aria-label="Connection"
|
||||
>
|
||||
<drawer :clBase="clBase"></drawer>
|
||||
<q-icon :name="iconConn" :class="clIconConn"></q-icon>
|
||||
<q-icon v-if="isUserNotAuth" name="device_unknown"></q-icon>
|
||||
</q-btn>
|
||||
|
||||
</q-drawer>
|
||||
|
||||
<!-- USER BAR -->
|
||||
<q-drawer v-if="static_data.functionality.SHOW_USER_MENU" v-model="rightDrawerOpen" side="right" elevated>
|
||||
<div id="profile">
|
||||
<q-img class="absolute-top" src="../../statics/images/landing_first_section.png"
|
||||
style="height: 150px" alt="section page">
|
||||
</q-img>
|
||||
<div class="absolute-top bg-transparent text-black center_img" style="margin-top: 10px;">
|
||||
<q-btn-dropdown
|
||||
stretch
|
||||
v-if="static_data.lang_available.length > 1"
|
||||
flat
|
||||
:label="langshort"
|
||||
auto-close
|
||||
>
|
||||
<q-list bordered>
|
||||
<q-item clickable v-ripple
|
||||
|
||||
<CMyAvatar :myimg="getMyImg"></CMyAvatar>
|
||||
v-for="langrec in static_data.lang_available" :key="langrec.value"
|
||||
@click="lang = langrec.value">
|
||||
<q-item-section avatar>
|
||||
<img :src="langrec.image" class="flagimg" alt="flag">
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
{{langrec.label}}
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-btn-dropdown>
|
||||
|
||||
<q-btn class="absolute-top-right" style="margin-right: 10px; color: white;"
|
||||
dense flat round icon="close" @click="rightDrawerOpen = !rightDrawerOpen">
|
||||
</q-btn>
|
||||
<div v-if="isLogged" class="text-weight-bold text-user">{{ Username }} - {{ myName }} <span
|
||||
v-if="isAdmin"> [Admin]</span><span v-if="isManager"> [Manager]</span></div>
|
||||
<div v-else class="text-user text-italic bg-red">
|
||||
{{ $t('user.loggati') }}
|
||||
</div>
|
||||
<div v-if="static_data.functionality.SHOW_MESSAGES">
|
||||
<message-popover></message-popover>
|
||||
</div>
|
||||
|
||||
<div v-if="isLogged && !isEmailVerified" class="text-verified">{{
|
||||
$t('components.authentication.email_verification.verify_email') }}
|
||||
</div>
|
||||
<!--
|
||||
<div class="right-itens">
|
||||
<label>{{ $t('msg.hello') }}</label> <span v-model="prova"></span> !
|
||||
</div>-->
|
||||
|
||||
<!--<span class="text-white" v-if="Verificato"> {{$t('reg.verificato')}} </span>-->
|
||||
<!--<span class="text-white background-red" v-else> {{$t('reg.non_verificato')}} </span>-->
|
||||
<!-- BUTTON USER BAR -->
|
||||
|
||||
<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 rounded color="negative" icon="exit_to_app" @click='logoutHandler'>{{$t('login.esci')}}</q-btn>
|
||||
</div>
|
||||
<q-btn class="q-mx-xs" v-if="static_data.functionality.SHOW_USER_MENU && !isLogged" dense flat round
|
||||
icon="menu"
|
||||
@click="rightDrawerOpen = !rightDrawerOpen">
|
||||
</q-btn>
|
||||
<q-btn class="q-mx-xs" v-if="static_data.functionality.SHOW_USER_MENU && isLogged" round dense flat
|
||||
@click="rightDrawerOpen = !rightDrawerOpen">
|
||||
<CMyAvatar :myimg="getMyImg"></CMyAvatar>
|
||||
</q-btn>
|
||||
|
||||
</div>
|
||||
<div style="margin-top:120px;"></div>
|
||||
<div v-show="!isLogged">
|
||||
<div class="q-ma-md" style="">
|
||||
<CSignIn :mythis="mythis"
|
||||
:showregbutt="static_data.functionality.SHOW_REG_BUTTON"
|
||||
@loginOk="loginOk"
|
||||
@loginInCorso="loginInCorso"
|
||||
@checkErrors="checkErrors"
|
||||
@showNotif="showNotif">
|
||||
</CSignIn>
|
||||
</div>
|
||||
</div>
|
||||
</q-toolbar>
|
||||
|
||||
</div>
|
||||
<div v-if="isLogged" class="q-mt-lg"><br><br></div>
|
||||
</q-header>
|
||||
|
||||
<slot></slot>
|
||||
<q-drawer side="left"
|
||||
bordered
|
||||
show-if-above
|
||||
:breakpoint="500"
|
||||
v-model="leftDrawerOpen"
|
||||
:content-class="['bg-grey-1', 'q-pa-sm']"
|
||||
:content-style="{padding: '0px'}"
|
||||
>
|
||||
<drawer :clBase="clBase"></drawer>
|
||||
|
||||
</q-drawer>
|
||||
</div>
|
||||
</q-drawer>
|
||||
|
||||
<!-- USER BAR -->
|
||||
<q-drawer v-if="static_data.functionality.SHOW_USER_MENU" v-model="rightDrawerOpen" side="right" elevated>
|
||||
<div id="profile">
|
||||
<q-img class="absolute-top" src="../../statics/images/landing_first_section.png"
|
||||
style="height: 150px" alt="section page">
|
||||
</q-img>
|
||||
<div class="absolute-top bg-transparent text-black center_img" style="margin-top: 10px;">
|
||||
|
||||
<CMyAvatar :myimg="getMyImg"></CMyAvatar>
|
||||
|
||||
<q-btn class="absolute-top-right" style="margin-right: 10px; color: white;"
|
||||
dense flat round icon="close" @click="rightDrawerOpen = !rightDrawerOpen">
|
||||
</q-btn>
|
||||
<div v-if="isLogged" class="text-weight-bold text-user">{{ Username }} - {{ myName }} <span
|
||||
v-if="isAdmin"> [Admin]</span><span v-if="isManager"> [Manager]</span></div>
|
||||
<div v-else class="text-user text-italic bg-red">
|
||||
{{ $t('user.loggati') }}
|
||||
</div>
|
||||
|
||||
<div v-if="isLogged && !isEmailVerified" class="text-verified">{{
|
||||
$t('components.authentication.email_verification.verify_email') }}
|
||||
</div>
|
||||
|
||||
<!--<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="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 rounded color="negative" icon="exit_to_app" @click='logoutHandler'>{{$t('login.esci')}}</q-btn>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div style="margin-top:120px;"></div>
|
||||
<div v-show="!isLogged">
|
||||
<div class="q-ma-md" style="">
|
||||
<CSigninNoreg :showregbutt="static_data.functionality.SHOW_REG_BUTTON">
|
||||
|
||||
</CSigninNoreg>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-if="isLogged" class="q-mt-lg"><br><br></div>
|
||||
|
||||
<slot></slot>
|
||||
|
||||
</q-drawer>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./Header.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './Header.scss';
|
||||
@import './Header.scss';
|
||||
</style>
|
||||
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
|
||||
<p>Ultimo aggiornamento: {{lastdataupdate}}</p>
|
||||
</div>
|
||||
<div v-if="toolsext.isLang('fr')">
|
||||
<div v-else-if="toolsext.isLang('fr')">
|
||||
<p class="text-subtitle1">Politique de confidentialité de {{url}}</p>
|
||||
<p class="text-subtitle1">Information sur le traitement des données personnelles conformément à l'article 13 du
|
||||
Code civil italien Règlement (UE) n° 2016/679.</p>
|
||||
|
||||
@@ -56,3 +56,5 @@ export * from './CRequisito'
|
||||
export * from './CGuidelines'
|
||||
export * from './CVideoPromo'
|
||||
export * from './CMyRequirement'
|
||||
export * from './CSigninNoreg'
|
||||
export * from './CMyNave'
|
||||
|
||||
19
src/mixins/mixin-nave.ts
Normal file
19
src/mixins/mixin-nave.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import Vue from 'vue'
|
||||
import { GlobalStore, UserStore, MessageStore } from '../store/Modules'
|
||||
|
||||
import Component from 'vue-class-component'
|
||||
import { func_tools } from '../store/Modules/toolsext'
|
||||
import { tools } from '../store/Modules/tools'
|
||||
import { IMessage } from '@src/model'
|
||||
import MixinBase from './mixin-base'
|
||||
|
||||
// You can declare a mixin as the same style as components.
|
||||
@Component
|
||||
export default class MixinNave extends MixinBase {
|
||||
public CHISONO_DONATORE: number = 0
|
||||
public CHISONO_MEDIATORE: number = 3
|
||||
public CHISONO_SOGNATORE: number = 6
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -22,6 +22,7 @@ export interface INotData {
|
||||
arr_nations?: string
|
||||
lastsreg?: IUserFields[]
|
||||
checkuser?: ICheckUser | any
|
||||
numreg_untilday?: number
|
||||
reg_daily?: string
|
||||
}
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ export interface IDashboard {
|
||||
downline: any[],
|
||||
downnotreg: any[],
|
||||
downbyuser: any[]
|
||||
arrnavi?: any[]
|
||||
}
|
||||
|
||||
export interface ICalcStat {
|
||||
@@ -64,6 +65,9 @@ export interface IUserFields {
|
||||
downline?: IUserFields[]
|
||||
calcstat?: ICalcStat
|
||||
dashboard?: IDashboard
|
||||
qualified?: boolean
|
||||
numinvitati?: number
|
||||
numinvitatiattivi?: number
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -31,30 +31,30 @@
|
||||
<div class="row">
|
||||
<CMyFieldDb title="Altezza Logo"
|
||||
mykey="HEIGHT_LOGO"
|
||||
serv="true"
|
||||
:serv="true"
|
||||
:type="tools.FieldType.number">
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb title="Titolo Discipline"
|
||||
mykey="DISC_TITLE"
|
||||
serv="true"
|
||||
:serv="true"
|
||||
:type="tools.FieldType.string">
|
||||
</CMyFieldDb>
|
||||
</div>
|
||||
<CMyFieldDb title="Testo Promozione"
|
||||
mykey="TEXT_PROMO"
|
||||
serv="true"
|
||||
:serv="true"
|
||||
:type="tools.FieldType.html">
|
||||
</CMyFieldDb>
|
||||
|
||||
<div class="row">
|
||||
<CMyFieldDb title="Numero di Eventi da mostrare"
|
||||
mykey="SHOW_LAST_N_EV"
|
||||
serv="true"
|
||||
:serv="true"
|
||||
:type="tools.FieldType.number">
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb title="Testo dopo gli Eventi"
|
||||
mykey="TEXT_AFTER_EV"
|
||||
serv="true"
|
||||
:serv="true"
|
||||
:type="tools.FieldType.html">
|
||||
</CMyFieldDb>
|
||||
</div>
|
||||
@@ -78,17 +78,17 @@
|
||||
</div>
|
||||
<CMyFieldDb title="Firma"
|
||||
mykey="TEXT_SIGN"
|
||||
serv="true"
|
||||
:serv="true"
|
||||
:type="tools.FieldType.html">
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb title="Testo Disclaimer"
|
||||
mykey="TEXT_DISCLAIMER"
|
||||
serv="true"
|
||||
:serv="true"
|
||||
:type="tools.FieldType.html">
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb title="Testo a piè pagina"
|
||||
mykey="TEXT_DISC_BOTTOM"
|
||||
serv="true"
|
||||
:serv="true"
|
||||
:type="tools.FieldType.html">
|
||||
</CMyFieldDb>
|
||||
|
||||
@@ -101,32 +101,32 @@
|
||||
|
||||
<CMyFieldDb title="Email da cui Inviare la Newsletter"
|
||||
mykey="EMAIL_FROM"
|
||||
serv="true"
|
||||
:serv="true"
|
||||
:type="tools.FieldType.string">
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb title="Email di Reply"
|
||||
mykey="EMAIL_REPLY"
|
||||
serv="true"
|
||||
:serv="true"
|
||||
:type="tools.FieldType.string">
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb title="Password email"
|
||||
mykey="PWD_FROM"
|
||||
serv="true"
|
||||
:serv="true"
|
||||
:type="tools.FieldType.password">
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb title="Servizio SMTP Email ('gmail' per inviare email da Gmail)"
|
||||
mykey="EMAIL_SERVICE_SEND"
|
||||
serv="true"
|
||||
:serv="true"
|
||||
:type="tools.FieldType.string">
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb title="Porta SMTP"
|
||||
mykey="EMAIL_PORT"
|
||||
serv="true"
|
||||
:serv="true"
|
||||
:type="tools.FieldType.number">
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb title="Millisecondi di pausa tra una email e l'altra"
|
||||
mykey="MSEC_PAUSE_SEND"
|
||||
serv="true"
|
||||
:serv="true"
|
||||
:type="tools.FieldType.number">
|
||||
</CMyFieldDb>
|
||||
</div>
|
||||
@@ -136,7 +136,7 @@
|
||||
|
||||
<CMyFieldDb title="Messaggio dopo che l'utente ha Prenotato un Evento"
|
||||
mykey="MSG_REPLY_AFTER_BOOKING"
|
||||
serv="true"
|
||||
:serv="true"
|
||||
:type="tools.FieldType.string">
|
||||
</CMyFieldDb>
|
||||
|
||||
@@ -172,7 +172,7 @@
|
||||
<div class="text-center">
|
||||
<CMyFieldDb title="Email di Test"
|
||||
mykey="EMAIL_TEST"
|
||||
serv="true"
|
||||
:serv="true"
|
||||
:type="tools.FieldType.string">
|
||||
</CMyFieldDb>
|
||||
<q-btn :loading="myloading" rounded outline @click="sendNewsletterTest(false)"
|
||||
@@ -192,7 +192,7 @@
|
||||
<div class="q-pa-xs q-ma-md q-gutter-md">
|
||||
<CMyFieldDb title="Template Email da Inviare"
|
||||
mykey="TEMPLEMAIL_ID"
|
||||
serv="true"
|
||||
:serv="true"
|
||||
:type="tools.FieldType.select"
|
||||
jointable="templemail">
|
||||
</CMyFieldDb>
|
||||
|
||||
@@ -60,7 +60,7 @@ const msg_enUs = {
|
||||
saw_video_intro: 'I declare I\'ve seen at least video "4. How can I be part of AYNI"',
|
||||
chat_biblio: 'Enter AYNI-LIBRARY Chat',
|
||||
chat_biblio_long: 'You need to enter this Chat to get the latest news and stay in touch with us',
|
||||
paymenttype: 'Methods of Payment',
|
||||
paymenttype: 'Methods of Payment (Mandatory Paypal)',
|
||||
paymenttype_long: 'Choose <strong>at least 2 Payment Methods</strong>, to exchange gifts.<br><br>The <strong>payment methods are: <ul><li><strong>Paypal</strong> (in AYNI it is <strong>obligatory</strong>) because it is a very popular system throughout Europe (the transfer is free of charge) and you can connect prepaid cards, credit cards and bank account <strong>WITHOUT COMMISSIONS</strong>. In this way you won\'t have to share your card or c/c numbers but only the email you used during the registration on Paypal. Available the app for your mobile phone.</li><li><strong>Revolut</strong>: the Revolut Prepaid Card with English IBAN (outside EU) completely free, more free and easy to use. Available the app for mobile.</li>',
|
||||
paymenttype_paypal: 'How to open a Paypal account (in 2 minutes)',
|
||||
paymenttype_paypal_carta_conto: 'How to associate a Credit/Debit Card or Bank Account on PayPal',
|
||||
@@ -76,24 +76,25 @@ const msg_enUs = {
|
||||
zoom_no_partecipato: 'You have not yet participated in a Zoom (it is a requirement to enter)',
|
||||
zoom_long: 'You are required to participate in at least 1 Zoom, but it is recommended that you take part in the movement more actively.<br><br><strong>By participating in Zooms the AYNI Staff will record attendance and you will be enabled.</strong>',
|
||||
zoom_what: 'Tutorial how to install Zoom',
|
||||
sharemovement_devi_invitare_almeno_2: 'You still haven\'t invited 2 people',
|
||||
sharemovement_hai_invitato: 'You invited at least 2 people',
|
||||
// sharemovement_devi_invitare_almeno_2: 'You still haven\'t invited 2 people',
|
||||
// sharemovement_hai_invitato: 'You invited at least 2 people',
|
||||
sharemovement_invitati_attivi_si: 'You have at least 2 people invited Active',
|
||||
sharemovement_invitati_attivi_no: '<strong>Note:</strong>The people you invited, in order to be <strong>Active</strong>, must have <strong>completed all the first 7 Requirements</strong> (see your <strong>Lavagna</strong> to see what they are missing).',
|
||||
sharemovement: 'Invitation at least 2 people',
|
||||
sharemovement_long: 'Share the AYNI Movement with at least 2 friends (<strong>advis 3 people</strong>) and invite them to participate in the Welcome Zooms to become part of this great Family 😄 .<br>.',
|
||||
sharemovement_long: 'Share the AYNI Movement and invite them to participate in the Welcome Zooms to become part of this great Family 😄 .<br>.',
|
||||
inv_attivi_long: '',
|
||||
enter_prog_status: '<strong>PLEASE NOTE:</strong> The Programming will start as soon as possible after everyone registers on this platform.<br>We will communicate the dates when everyone can leave and make their own gift.<br>',
|
||||
enter_prog_completa_requisiti: 'Complete all the requirements to be able to enter the programming.',
|
||||
enter_prog_requisiti_ok: 'You have completed all the requirements to be able to access Programming',
|
||||
enter_prog_completa_requisiti: 'Complete all the requirements to enter the boarding list.',
|
||||
enter_prog_requisiti_ok: 'You have completed all 7 requirements to enter the boarding list.<br>You will receive a message in the next few days as soon as your ship is ready!',
|
||||
enter_nave_9req_ok: 'CONGRATULATIONS! You have completed ALL 9 steps guide! Thank you for helping AYNI to Expand! <br>You will be able to leave very soon with your Journey, making your gift and continuing towards the Dreamer.',
|
||||
enter_nave_9req_ko: 'Remember that you can help the Movement grow and expand by sharing our journey with everyone!',
|
||||
enter_prog: 'I\'m going in Programming',
|
||||
enter_prog_long: 'Satisfied the requirements you will enter the Program, you will be added to the Ticket and the corresponding group chat.<br>',
|
||||
collaborate: 'Collaboration',
|
||||
collaborate_long: 'I continue to work with my companions to get to the day of the programming where my ticket will be activated.',
|
||||
collaborate_long: 'I continue to work with my companions to get to the day when my ship will sail.',
|
||||
dream: 'I write my dream',
|
||||
dream_long: 'Write here the Dream for which you entered Ayni and which you wish to realize.<br>It will be shared with all the others to dream together !',
|
||||
dono: 'Gift',
|
||||
dono_long: 'I make my gift on the departure date of my Ticket',
|
||||
dono_long: 'I make my gift on the departure date of my Ship',
|
||||
support: 'Support the movement',
|
||||
support_long: 'I support the movement by bringing energy, participating and organizing Zoom, helping and informing newcomers and continuing to spread Ayni\'s vision.',
|
||||
ricevo_dono: 'I receive my gift and CELEBRATE',
|
||||
@@ -185,12 +186,13 @@ const msg_enUs = {
|
||||
notreg: 'Not Registered',
|
||||
inv_attivi: 'Invited with the 7 Requirements',
|
||||
numinvitati: 'At least 2 guests',
|
||||
telefono_wa: 'Contact on Whatsapp who has not registered',
|
||||
telefono_wa: 'Contact on Whatsapp',
|
||||
sendnotification: 'Send Notification to the Recipient on Telegram BOT',
|
||||
ricevuto_dono: 'You received a Gift Invitation {invitato} from {mittente} !',
|
||||
nessun_invitante: 'No Inviting',
|
||||
nessun_invitato: 'No_invited',
|
||||
legenda_title: 'Click on the name of the guest to see the status of his Requirements.'
|
||||
legenda_title: 'Click on the name of the guest to see the status of his Requirements.',
|
||||
nave_in_partenza: 'in Partenza il',
|
||||
},
|
||||
reg: {
|
||||
registered: 'Registrato',
|
||||
|
||||
@@ -60,7 +60,7 @@ const msg_es = {
|
||||
saw_video_intro: 'Declaro que he visto al menos el vídeo "4. ¿Cómo puedo ser parte de AYNI?"',
|
||||
chat_biblio: 'Entra en el chat de la AYNI-BIBLIO',
|
||||
chat_biblio_long: 'Necesitas entrar en este chat para obtener las últimas noticias y mantenerte en contacto con nosotros.',
|
||||
paymenttype: 'Métodos de pago',
|
||||
paymenttype: 'Métodos de pago (Obligatorio Paypal)',
|
||||
paymenttype_long: 'Elija <strong>al menos 2 métodos de pago</strong>, para intercambiar regalos.<br><br>Los <strong>métodos de pago son: <ul><li><strong>Paypal</strong> (en AYNI es <strong>obligatorio</strong>) porque es un sistema muy popular en toda Europa (la transferencia es gratuita) y se pueden conectar tarjetas de prepago, tarjetas de crédito y cuenta bancaria <strong> SIN COMISIONES</strong>. De esta manera no tendrás que compartir tu tarjeta o números de c/c, sino sólo el correo electrónico que usaste durante el registro en Paypal. Disponible la aplicación para tu teléfono móvil.</li><strong>Revolut</strong>: la Tarjeta Prepagada Revolut con IBAN inglés (fuera de la UE) completamente gratis, más gratis y fácil de usar. Disponible la aplicación para móvil.</li>',
|
||||
paymenttype_paypal: 'Cómo abrir una cuenta de Paypal (en 2 minutos)',
|
||||
paymenttype_paypal_carta_conto: 'Cómo asociar una tarjeta de crédito/débito o una cuenta bancaria en PayPal',
|
||||
@@ -76,24 +76,25 @@ const msg_es = {
|
||||
zoom_no_partecipato: "Aún no ha participado en un Zoom (es un requisito para entrar)",
|
||||
zoom_long: "Se requiere que participe en al menos 1 Zoom, pero se recomienda participar en el movimiento de una manera más activa.<br><br><strong>Al participar en los Zooms el personal de AYNI registrará la asistencia y usted estará habilitado.</strong>",
|
||||
zoom_what: "Tutoriales de cómo instalar Zoom",
|
||||
sharemovement_devi_invitare_almeno_2: 'Todavía no has invitado a dos personas',
|
||||
sharemovement_hai_invitato: 'Invitaste al menos a dos personas',
|
||||
// sharemovement_devi_invitare_almeno_2: 'Todavía no has invitado a dos personas',
|
||||
// sharemovement_hai_invitato: 'Invitaste al menos a dos personas',
|
||||
sharemovement_invitati_attivi_si: 'Tienes al menos 2 personas invitadas Activo',
|
||||
sharemovement_invitati_attivi_no: '<strong>Nota:</strong>Las personas que invitaste, para ser <strong>Activo</strong>, deben haber <strong>completado todos los primeros 7 Requisitos</strong> (ver tu <strong>Lavagna</strong> para ver lo que les falta)',
|
||||
sharemovement: 'Invitar al menos a 2 personas',
|
||||
sharemovement_long: 'Comparte el Movimiento AYNI con al menos 2 amigos (<fuerte> aconseja a 3 personas</fuerte>) e invítalos a participar en los Zooms de Bienvenida para formar parte de esta gran Familia 😄 .<br>',
|
||||
sharemovement_long: 'Continúo trabajando con mis compañeros para llegar al día en que mi barco zarpe.<br>',
|
||||
inv_attivi_long: '',
|
||||
enter_prog_status: '<strong>NOTE:</strong> La programación comenzará lo antes posible después de que todos se registren en esta plataforma.<br>Comunicaremos las fechas en las que todos pueden irse y hacer su propio regalo.<br>',
|
||||
enter_prog_completa_requisiti: 'Voy a entrar en Programación',
|
||||
enter_prog_requisiti_ok: 'Ha completado todos los requisitos para poder acceder a la programación',
|
||||
enter_prog: 'Voy a entrar en Programación',
|
||||
enter_prog_completa_requisiti: 'Complete todos los requisitos para entrar en la lista de embarque.',
|
||||
enter_prog_requisiti_ok: 'Ha completado los 7 requisitos para entrar en la lista de embarque.<br>¡Recibirá un mensaje en los próximos días tan pronto como su nave esté lista!',
|
||||
enter_nave_9req_ok: '¡FELICIDADES! ¡Has completado los 9 pasos de la Guía! ¡Gracias por ayudar a AYNI a expandirse! <br>Podrás salir muy pronto con tu viaje, haciendo tu regalo y continuando hacia el Soñador.',
|
||||
enter_nave_9req_ko: 'Recuerda que puedes ayudar a que el Movimiento crezca y se expanda compartiendo nuestro viaje con todos!',
|
||||
enter_prog: 'Voy a entrar en Lista Programación',
|
||||
enter_prog_long: 'Si se cumplen los requisitos, entrará en el Programa, se le añadirá al Ticket y al correspondiente chat de grupo.<br>',
|
||||
collaborate: 'Colaboración',
|
||||
collaborate_long: 'Sigo trabajando con mis compañeros para llegar al día de la programación donde mi boleto será activado.',
|
||||
dream: 'Escribo mi sueño',
|
||||
dream_long: 'Escribe aquí el sueño por el que entraste en Ayni y que deseas realizar. ¡Será compartido con todos los demás para soñar juntos!',
|
||||
dono: 'Regalo',
|
||||
dono_long: 'Hago mi regalo en la fecha de salida de mi billete',
|
||||
dono_long: 'Hago mi regalo en la fecha de salida de mi nave',
|
||||
support: 'Apoyo el movimiento',
|
||||
support_long: 'Apoyo el movimiento aportando energía, participando y organizando Zoom, ayudando e informando a los recién llegados y continuando difundiendo la visión de Ayni.',
|
||||
ricevo_dono: 'Recibo mi regalo y CELEBRO',
|
||||
@@ -184,12 +185,13 @@ const msg_es = {
|
||||
notreg: 'No Registrado',
|
||||
inv_attivi: 'Invitado con los 7 requisitos',
|
||||
numinvitati: 'Al menos 2 invitados',
|
||||
telefono_wa: 'Contacto en Whatsapp que no se ha registrado',
|
||||
telefono_wa: 'Contacto en Whatsapp',
|
||||
sendnotification: 'Enviar notificación al destinatario del telegrama BOT',
|
||||
ricevuto_dono: 'Usted recibió una invitación de regalo de {invitato} de {mittente} !',
|
||||
nessun_invitante: 'No invitando',
|
||||
nessun_invitato: 'No_invitado',
|
||||
legenda_title: 'Haga clic en el nombre del huésped para ver el estado de sus requisitos',
|
||||
nave_in_partenza: 'in Partenza il',
|
||||
},
|
||||
reg: {
|
||||
registered: 'Registrato',
|
||||
|
||||
@@ -60,7 +60,7 @@ const msg_fr = {
|
||||
saw_video_intro: 'Je déclare avoir vu au moins la vidéo "4. Comment puis-je faire partie de AYNI"',
|
||||
chat_biblio: 'Entrez le Chat AYNI-BIBLIO',
|
||||
chat_biblio_long: 'Vous devez entrer dans ce Chat pour obtenir les dernières nouvelles et rester en contact avec nous',
|
||||
paymenttype: 'Méthodes de paiement',
|
||||
paymenttype: 'Méthodes de paiement (Obligatoire Paypal)',
|
||||
paymenttype_long: 'Choisissez <strong>au moins 2 modes de paiement</strong>, pour échanger des cadeaux.<br><br>Les modes de paiement <strong>sont : <ul><li><strong>Paypal</strong> (en AYNI c\'est <strong>obligatoire</strong>) car c\'est un système très populaire dans toute l\'Europe (le transfert est gratuit) et vous pouvez connecter des cartes prépayées, des cartes de crédit et un compte bancaire <strong> SANS COMMISSIONS</strong>. De cette façon, vous n\'aurez pas à partager vos numéros de carte ou de c/c mais seulement l\'email que vous avez utilisé lors de l\'inscription sur Paypal. Disponible l\'application pour votre téléphone portable.</li><strong>Revolut</strong> : la carte prépayée Revolut avec IBAN anglais (hors UE) complètement gratuite, plus gratuite et facile à utiliser. Disponible l\'application pour mobile.</li>',
|
||||
paymenttype_paypal: 'Comment ouvrir un compte Paypal (en 2 minutes)Comment ouvrir un compte Paypal (en 2 minutes)',
|
||||
paymenttype_paypal_carta_conto: "Comment associer une carte de crédit/débit ou un compte bancaire sur PayPal",
|
||||
@@ -76,24 +76,25 @@ const msg_fr = {
|
||||
zoom_no_partecipato: "Vous n'avez pas encore participé à un Zoom (il est obligatoire d'entrer)",
|
||||
zoom_long: "Vous devez participer à au moins un Zoom, mais il est recommandé de participer au mouvement de manière plus active. <br><br><strong>En participant aux Zooms, le personnel de l'AYNI enregistrera votre présence et vous serez activé. </strong>",
|
||||
zoom_what: "Tutoriels d'installation de Zoom",
|
||||
sharemovement_devi_invitare_almeno_2: 'Vous n\'avez toujours pas invité 2 personnes',
|
||||
sharemovement_hai_invitato: 'Vous avez invité au moins deux personnes',
|
||||
// sharemovement_devi_invitare_almeno_2: 'Vous n\'avez toujours pas invité 2 personnes',
|
||||
// sharemovement_hai_invitato: 'Vous avez invité au moins deux personnes',
|
||||
sharemovement_invitati_attivi_si: 'Vous avez au moins 2 personnes invitées Active',
|
||||
sharemovement_invitati_attivi_no: '<strong>Note:</strong>Les personnes que vous avez invitées, pour être <strong>Actif</strong>, doivent avoir <strong>complété les 7 premières exigences</strong> (voir votre <strong>Lavagna</strong> pour voir ce qu\'il leur manque)',
|
||||
sharemovement: 'Invitation au moins 2 personnes',
|
||||
sharemovement_long: 'Partagez le mouvement AYNI avec au moins 2 amis (<fort>conseillez 3 personnes</strong>) et invitez-les à participer aux zooms de bienvenue pour faire partie de cette grande famille 😄 .<br>.',
|
||||
sharemovement_long: 'Partagez le mouvement AYNI et invitez-les à participer aux zooms de bienvenue pour faire partie de cette grande famille 😄 .<br>.',
|
||||
inv_attivi_long: '',
|
||||
enter_prog_status: '<strong>Veuillez noter:</strong> La programmation commencera dès que possible après que tout le monde se sera inscrit sur cette plateforme.<br>Nous communiquerons les dates où chacun pourra partir et faire son propre cadeau.<br>',
|
||||
enter_prog_completa_requisiti: 'Remplissez toutes les conditions pour pouvoir entrer dans la programmation.',
|
||||
enter_prog_requisiti_ok: 'Vous avez rempli toutes les conditions pour pouvoir accéder à la programmation',
|
||||
enter_prog: 'Je vais dans la Programmation',
|
||||
enter_prog_completa_requisiti: 'Remplissez toutes les conditions pour figurer sur la liste d\'embarquement.',
|
||||
enter_prog_requisiti_ok: 'Vous avez rempli les 7 conditions pour figurer sur la liste d\'embarquement.<br>Vous recevrez un message dans les prochains jours dès que votre bateau sera prêt !',
|
||||
enter_nave_9req_ok: 'FÉLICITATIONS ! Vous avez suivi les 9 étapes du guide ! Merci d\'avoir aidé AYNI à se développer ! <br> Vous pourrez bientôt partir avec votre Voyage, en faisant votre don et en continuant vers le Rêveur.',
|
||||
enter_nave_9req_ko: 'N\'oubliez pas que vous pouvez aider le Mouvement à grandir et à s\'étendre en partageant notre voyage avec tout le monde !',
|
||||
enter_prog: 'Je vais dans la Liste des Programmation',
|
||||
enter_prog_long: 'Si vous remplissez les conditions requises pour entrer dans le programme, vous serez ajouté au billet et au chat de groupe correspondant<br>',
|
||||
collaborate: 'Collaboration',
|
||||
collaborate_long: 'Je continue à travailler avec mes compagnons pour me rendre le jour de la programmation où mon billet sera activé.',
|
||||
collaborate_long: 'Je continue à travailler avec mes compagnons pour arriver au jour où mon navire prendra la mer.',
|
||||
dream: 'J\'écris mon rêve',
|
||||
dream_long: 'Ecrivez ici le Rêve pour lequel vous êtes entré à Ayni et que vous souhaitez réaliser.<br>Il sera partagé avec tous les autres pour rêver ensemble !',
|
||||
dono: 'Cadeau',
|
||||
dono_long: 'Je fais mon cadeau à la date de départ de mon billet',
|
||||
dono_long: 'Je fais mon cadeau à la date de départ de mon nef',
|
||||
support: 'Je soutiens le mouvement',
|
||||
support_long: 'Je soutiens le mouvement en apportant de l\'énergie, en participant et en organisant Zoom, en aidant et en informant les nouveaux arrivants et en continuant à diffuser la vision d\'Ayni.',
|
||||
ricevo_dono: 'Je reçois mon cadeau et je CÉLÈBRE',
|
||||
@@ -183,12 +184,13 @@ const msg_fr = {
|
||||
notreg: 'Non enregistré',
|
||||
inv_attivi: 'Invité avec les 7 exigences',
|
||||
numinvitati: 'Au moins 2 invités',
|
||||
telefono_wa: 'Contact sur Whatsapp qui n\'est pas enregistré',
|
||||
telefono_wa: 'Contact sur Whatsapp',
|
||||
sendnotification: 'Envoyer la notification au destinataire par télégramme BOT',
|
||||
ricevuto_dono: 'Vous avez reçu une invitation-cadeau de {invitato} de {mittente} !',
|
||||
nessun_invitante: 'Pas d\'invitation',
|
||||
nessun_invitato: 'Non_invité',
|
||||
legenda_title: 'Cliquez sur le nom de l\'invité pour voir l\'état de ses besoins',
|
||||
nave_in_partenza: 'in Partenza il',
|
||||
},
|
||||
reg: {
|
||||
registered: 'Registrato',
|
||||
|
||||
@@ -18,6 +18,7 @@ const msg_it = {
|
||||
list: 'Lista',
|
||||
},
|
||||
otherpages: {
|
||||
update: 'Aggiornamento in Corso...',
|
||||
error404: 'error404',
|
||||
error404def: 'error404def',
|
||||
admin: {
|
||||
@@ -70,8 +71,9 @@ const msg_it = {
|
||||
saw_video_intro: 'Dichiaro di aver visto almeno il Video \'4. Come faccio a far parte di AYNI\'',
|
||||
chat_biblio: 'Entra nella Chat AYNI BiblioBacheca',
|
||||
chat_biblio_long: 'Occorre entrare in questa Chat per ricevere le ultime notizie e rimanere in contatto con noi',
|
||||
paymenttype: 'Modalità di Pagamento',
|
||||
paymenttype_long: 'Scegli <strong>almeno 2 Modalità di Pagamento</strong>, per scambiarsi i doni.<br><br>I <strong>metodi di Pagamento sono: <ul><li><strong>Paypal</strong> (in AYNI è <strong>obbligatoria</strong>) perchè è un sistema molto diffuso in tutta Europa (il trasferimento e gratuito) e si possono collegare le carte prepagate, le carte di credito e il conto corrente <strong>SENZA COMMISSIONI</strong>. In questo modo non dovrai condividere i numeri delle tue carte o del c/c ma solo la mail che avrai usato in fase di iscrizione su Paypal. Disponibile l\'app per il cellulare.</li><li><strong>Revolut</strong>: la Carta Prepagata Revolut con IBAN Inglese (fuori UE) completamente gratuita, più libera e semplice da utilizzare. Disponibile l\'app per il cellulare.</li>',
|
||||
paymenttype: 'Modalità di Pagamento (Paypal)',
|
||||
paymenttype_long: 'I <strong>metodi di Pagamento sono: <ul><li><strong>Paypal</strong> (in AYNI è <strong>obbligatoria</strong>) perchè è un sistema molto diffuso in tutta Europa (il trasferimento e gratuito) e si possono collegare le carte prepagate, le carte di credito e il conto corrente <strong>SENZA COMMISSIONI</strong>. In questo modo non dovrai condividere i numeri delle tue carte o del c/c ma solo la mail che avrai usato in fase di iscrizione su Paypal. Disponibile l\'app per il cellulare.</li><li><strong>Revolut</strong>: la Carta Prepagata Revolut con IBAN Inglese (fuori UE) completamente gratuita, più libera e semplice da utilizzare. Disponibile l\'app per il cellulare.</li>',
|
||||
paymenttype_long2: 'E\' obbligatorio avere Paypal<br> Si consiglia di avere a disposizione <strong>almeno 2 Modalità di Pagamento</strong>, per scambiarsi i doni.',
|
||||
paymenttype_paypal: 'Come Aprire un conto Paypal (in 2 minuti)',
|
||||
paymenttype_paypal_carta_conto: 'Come associare una carta di Credito/Debito o un Conto Bancario su PayPal',
|
||||
paymenttype_paypal_link: 'Apri il Conto con Paypal',
|
||||
@@ -86,30 +88,32 @@ const msg_it = {
|
||||
zoom_no_partecipato: 'Attualmente non hai ancora partecipato ad uno Zoom (è un requisito per poter entrare)',
|
||||
zoom_long: 'Si richiede di partecipare ad almeno 1 Zoom, ma è consigliato prendere parte al movimento in maniera più attiva.<br><br><strong>Partecipando agli Zoom lo Staff di AYNI registrerà le presenze e verrai così abilitato.</strong>',
|
||||
zoom_what: 'Tutorial come installare Zoom',
|
||||
sharemovement_devi_invitare_almeno_2: 'Ancora non hai invitato 2 persone',
|
||||
sharemovement_hai_invitato: 'Hai invitato almeno 2 persone',
|
||||
// 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 <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>',
|
||||
sharemovement: 'Condivido il Movimento',
|
||||
sharemovement_long: 'Condividi il Movimento AYNI 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: 'Soddisfatti i requisiti richiesti entrerai in Programmazione, verrai aggiunto alla Bigliettera e nella chat di gruppo corrispondente.<br>',
|
||||
enter_prog_completa_requisiti: 'Completa tutti i requisiti richiesti, per poter entrare nella Lista d\'imbarco.',
|
||||
enter_prog_requisiti_ok: 'Hai completato tutti i 7 requisiti per entrare nella Lista d\'Imbarco.<br>Riceverai un messaggio nei prossimi giorni appena la tua Nave sarà pronta!',
|
||||
enter_nave_9req_ok: 'COMPLIMENTI! Hai Completato TUTTI i 9 Passi della Guida! Grazie per Aiutare AYNI ad Espandersi!<br>Potrai molto presto partire con il tuo Viaggio, facendo il tuo dono e proseguendo verso il Sognatore',
|
||||
enter_nave_9req_ko: 'Ricorda che puoi Aiutare a far Crescere ed Espandere il Movimento, Condividendo con chiunque questo nostro viaggio!',
|
||||
enter_prog: 'Entro nella Lista d\'Imbarco',
|
||||
enter_prog_long: 'Ricorda che puoi Aiutare a far Crescere ed Espandere il Movimento, Condividendo con chiunque questo nostro viaggio!<br>',
|
||||
collaborate: 'Collaborazione',
|
||||
collaborate_long: 'Continuo a collaborare con i miei compagni per arrivare al giorno della programmazione dove si attiverà la mia Bigliettera.',
|
||||
collaborate_long: 'Continuo a collaborare con i miei compagni per arrivare al giorno in cui salperà la mia Nave.',
|
||||
dream: 'Scrivo il mio Sogno',
|
||||
dream_long: 'Scrivi qui il Sogno per il quale sei entrato in Ayni e che desideri realizzare.<br>Sarà condiviso a quello di tutti gli altri per sognare insieme !',
|
||||
dono: 'Dono',
|
||||
dono_long: 'Faccio il mio dono nella data di partenza della mia Bigliettera',
|
||||
dono_long: 'Faccio il mio dono nella data di partenza della mia Nave',
|
||||
support: 'Sostengo il movimento',
|
||||
support_long: 'Sostengo il movimento portando Energia, partecipando e organizzando Zoom, aiutando e informando i nuovi arrivati continuando a diffondere la visione di Ayni',
|
||||
ricevo_dono: 'Ricevo il mio dono e CELEBRO',
|
||||
ricevo_dono_long: 'Evviva!!!<br><strong>QUESTO MOVIMENTO È REALE E POSSIBILE SE LO FACCIAMO FUNZIONARE TUTTI INSIEME !</strong>',
|
||||
},
|
||||
dialog: {
|
||||
continue: 'Continuare',
|
||||
close: 'Chiudi',
|
||||
copyclipboard: 'Copiato negli appunti',
|
||||
ok: 'Ok',
|
||||
@@ -194,12 +198,37 @@ const msg_it = {
|
||||
notreg: 'Non Registrato',
|
||||
inv_attivi: 'Invitati con i 7 Requisiti',
|
||||
numinvitati: 'Almeno 2 Invitati',
|
||||
telefono_wa: 'Contatta su Whatsapp chi non si è registrato',
|
||||
telefono_wa: 'Contatta su Whatsapp',
|
||||
sendnotification: 'Invia Notifica al Destinatario su Telegram BOT',
|
||||
ricevuto_dono: 'Hai ricevuto in Regalo un Invitato {invitato} da parte di {mittente} !',
|
||||
nessun_invitante: 'Nessun Invitante',
|
||||
nessun_invitato: 'Nessun Invitato',
|
||||
legenda_title: 'Clicca sul nome dell\'invitato per vedere lo stato dei suoi Requisiti.'
|
||||
legenda_title: 'Clicca sul nome dell\'invitato per vedere lo stato dei suoi Requisiti.',
|
||||
nave_in_partenza: 'in Partenza il',
|
||||
sonomediatore: 'Quando diventi Meditore vieni contattato da un <strong>TUTOR</strong>, con lui devi:<br><ol class="lista">' +
|
||||
'<li>Aprire la tua <strong>Gift Chat</strong> (tu come proprietario e il Tutor ' +
|
||||
'come amministratore) con questo nome: <strong>gg/mm - NAVE numero.numero 🎁AYNI</strong><br>(Esempio: <strong>10/03 - NAVE 2.1 🎁 AYNI</strong>)</li>' +
|
||||
'<li>Clicca sul nome della chat in alto -> Modifica -> Amministratori -> "Aggiungi Amministratore", seleziona il Tutor nell’elenco.</li>' +
|
||||
'<li>Devi configurare la chat in modo che chi entra vede anche i post precedenti (clicca sul nome della chat in alto, clicca su modifica, ' +
|
||||
'cambia la "cronologia per i nuovi membri" da nascosta a visibile</li>' +
|
||||
'<li>Per trovare il <strong>link della Chat appena creata</strong>: clicca sul nome della chat in alto, clicca sulla Matita -> "Tipo di Gruppo" -> "invita nel gruppo tramite link", clicca su "copia link" e incollalo qui sotto, sulla casella <strong>"Link Gift Chat"</strong></li>' +
|
||||
'<li>Invia il Link della Gift Chat a tutti i Donatori, cliccando sul bottone qui sotto.</li></ol>',
|
||||
sonosognatore: '<ol class="lista"><li>Quando sei in questa posizione, verrai invitato ad entrare in una <strong>Gift Chat</strong> (Telegram) e qui troverai anche gli altri 7 Donatori, il Mediatore, il Sognatore e un rappresentante dello Staff.</li>' +
|
||||
'<li>Effettuerai il tuo dono <strong>ESATTAMENTE il giorno indicato</strong> e nella modalità di pagamento che troverai scritto qui. La somma è di 33€.<br></ol>',
|
||||
link_chat: 'Link della Gift Chat Telegram',
|
||||
donatori:'Donatori',
|
||||
donatore:'Donatore',
|
||||
mediatore:'Mediatore',
|
||||
sognatore:'Sognatore',
|
||||
pos2: 'Interm. 2',
|
||||
pos3: 'Interm. 3',
|
||||
pos5: 'Interm. 5',
|
||||
pos6: 'Interm. 6',
|
||||
entra_in_gift_chat: 'Entra in Gift Chat',
|
||||
controlla_donatori: 'Controlla Donatori',
|
||||
invia_link_chat: 'Invia il Link della Gift Chat ai Donatori',
|
||||
inviare_msg_donatori: '5) Inviare messaggio ai Donatori',
|
||||
msg_donatori_ok: 'Inviato messaggio ai Donatori',
|
||||
},
|
||||
reg: {
|
||||
registered: 'Registrato',
|
||||
@@ -217,6 +246,10 @@ const msg_it = {
|
||||
nuove_registrazioni: 'Se questa è una NUOVA registrazione, dovete contattare la persona che vi ha INVITATO, che vi lascerà il LINK CORRETTO per fare la Registrazione sotto di lui/lei',
|
||||
you: 'Tu',
|
||||
cancella_invitato: 'Elimina Invitato',
|
||||
cancella_account: 'Elimina Profilo',
|
||||
cancellami: 'Sei sicuro di voler Eliminare completamente la tua Registrazione su AYNI, uscendo così dal movimento? Non potrai piu\' accedere al sito tramite i tuoi dati, Perderai la tua POSIZIONE e i Tuoi Invitati verranno REGALATI a chi ti ha invitato.',
|
||||
cancellami_2: 'ULTIMO AVVISO! Vuoi uscire Definitivamente da AYNI ?',
|
||||
account_cancellato: 'Il tuo Profilo è stato cancellato correttamente',
|
||||
regala_invitato: 'Regala Invitato',
|
||||
messaggio_invito: 'Messaggio di Invito',
|
||||
messaggio_invito_msg: 'Invia questo messaggio a tutti coloro a cui vuoi condividere questo Movimento !',
|
||||
|
||||
@@ -70,7 +70,7 @@ const msg_pt = {
|
||||
saw_video_intro: 'Declaro ter visto pelo menos o vídeo "4. Como posso fazer parte do AYNI"',
|
||||
chat_biblio: 'Entre no AYNI-BIBLIO Chat',
|
||||
chat_biblio_long: 'Você precisa entrar neste Chat para receber as últimas notícias e ficar em contato conosco.',
|
||||
paymenttype: 'Formas de Pagamento',
|
||||
paymenttype: 'Formas de Pagamento (Obrigatório Paypal)',
|
||||
paymenttype_long: 'Escolha <strong> pelo menos 2 Métodos de pagamento</strong>, para trocar presentes.<br>As formas de pagamento são: <ul><li><strong>Paypal</strong> (em AYNI é <strong>obrigatório</strong>) porque é um sistema muito popular em toda a Europa (a transferência é gratuita) e você pode conectar cartões pré-pagos, cartões de crédito e conta bancária <strong> SEM COMISSÕES</strong>. Desta forma não terá de partilhar o seu cartão ou números de c/c, mas apenas o e-mail que utilizou durante o registo no Paypal. Disponível o aplicativo para o seu celular.</li><br><li><strong>Revolut</strong>: o Revolut Prepaid Card com IBAN inglês (fora da UE) completamente gratuito, mais gratuito e fácil de usar. Disponível o aplicativo para mobile.</li>',
|
||||
paymenttype_paypal: 'Como abrir uma conta Paypal (em 2 minutos)',
|
||||
paymenttype_paypal_carta_conto: 'Como associar um cartão de crédito/débito ou conta bancária no PayPal',
|
||||
@@ -86,24 +86,25 @@ const msg_pt = {
|
||||
zoom_no_partecipato: 'Você ainda não participou de um Zoom (é um requisito para entrar)',
|
||||
zoom_long: 'É necessário participar em pelo menos 1 Zoom, mas é recomendável participar mais activamente no movimento.<br><br><strong> Ao participar nos Zooms o staff da AYNI registará a assistência e você estará habilitado.</strong>',
|
||||
zoom_what: 'Tutorial de como instalar o Zoom',
|
||||
sharemovement_devi_invitare_almeno_2: 'Você ainda não convidou 2 pessoas',
|
||||
sharemovement_hai_invitato: 'Você convidou pelo menos 2 pessoas',
|
||||
// sharemovement_devi_invitare_almeno_2: 'Você ainda não convidou 2 pessoas',
|
||||
// sharemovement_hai_invitato: 'Você convidou pelo menos 2 pessoas',
|
||||
sharemovement_invitati_attivi_si: 'Você tem pelo menos 2 pessoas convidadas Ativo',
|
||||
sharemovement_invitati_attivi_no: '<strong>Nota:</strong>As pessoas que convidaste, para serem <strong>Active</strong>, têm de ter <strong>concluído todos os primeiros 7 Requisitos</strong> (ver o teu <strong>Lavagna</strong> para ver o que lhes falta)',
|
||||
sharemovement: 'Convite a pelo menos 2 pessoas',
|
||||
sharemovement_long: 'Partilhe o Movimento AYNI com pelo menos 2 amigos (<strong>advis 3 pessoas</strong>) e convide-os a participar nos Zooms de Boas-vindas para fazer parte desta grande Família 😄 .<br>',
|
||||
sharemovement_long: 'Partilhe o Movimento AYNI e convide-os a participar nos Zooms de Boas-vindas para fazer parte desta grande Família 😄 .<br>',
|
||||
inv_attivi_long: '',
|
||||
enter_prog_status: '<strong>PLEASE NOTE:</strong> A Programação começará assim que possível depois de todos se registarem nesta plataforma.<br> Comunicaremos as datas em que todos podem sair e fazer o seu próprio presente.<br>',
|
||||
enter_prog_completa_requisiti: 'Completar todos os requisitos para poder entrar na programação.',
|
||||
enter_prog_requisiti_ok: 'Você completou todos os requisitos para poder acessar a Programação',
|
||||
enter_prog: 'Vou em Programação',
|
||||
enter_prog_completa_requisiti: 'Preencher todos os requisitos para entrar na lista de embarque.',
|
||||
enter_prog_requisiti_ok: 'O usuário completou todos os 7 requisitos para entrar na lista de embarque.<br>Você receberá uma mensagem nos próximos dias, assim que o seu navio estiver pronto!',
|
||||
enter_nave_9req_ok: 'PARABÉNS! Você completou TODOS os 9 passos do Guia! Obrigado por ajudar a AYNI a Expandir! <br>Você poderá partir muito em breve com a sua Jornada, fazendo o seu presente e continuando para o Sonhador.',
|
||||
enter_nave_9req_ko: 'Lembre-se que você pode ajudar o Movimento a crescer e expandir, compartilhando nossa jornada com todos!',
|
||||
enter_prog: 'Vou em Lista Programação',
|
||||
enter_prog_long: 'Satisfeito os requisitos para entrar no Programa, você será adicionado ao Ticket e ao chat do grupo correspondente.<br>',
|
||||
collaborate: 'Colaboração',
|
||||
collaborate_long: 'Continuo a trabalhar com os meus companheiros para chegar ao dia da programação onde o meu bilhete vai ser activado.',
|
||||
collaborate_long: 'Continuo a trabalhar com os meus companheiros para chegar ao dia em que o meu navio vai zarpar.',
|
||||
dream: 'Eu escrevo o meu sonho',
|
||||
dream_long: 'Escreva aqui o Sonho pelo qual você entrou no Ayni e que deseja realizar.<br>Será compartilhado com todos os outros para sonharem juntos !',
|
||||
dono: 'Presente',
|
||||
dono_long: 'Eu faço o meu presente na data de partida do meu bilhete',
|
||||
dono_long: 'Eu faço o meu presente na data de partida do meu navio',
|
||||
support: 'Eu apoio o movimento',
|
||||
support_long: 'Eu apoio o movimento trazendo energia, participando e organizando o Zoom, ajudando e informando os recém-chegados e continuando a espalhar a visão de Ayni.',
|
||||
ricevo_dono: 'Eu recebo meu presente e CELEBRATO',
|
||||
@@ -194,12 +195,13 @@ const msg_pt = {
|
||||
notreg: 'Não Registado',
|
||||
inv_attivi: 'Convidado com os 7 Requisitos',
|
||||
numinvitati: 'Pelo menos 2 convidados',
|
||||
telefono_wa: 'Contato no Whatsapp quem não se registrou',
|
||||
telefono_wa: 'Contato no Whatsapp',
|
||||
sendnotification: 'Enviar Notificação ao Destinatário no Telegrama BOT',
|
||||
ricevuto_dono: 'Você recebeu um convite de presente {invitato} de {mittente} !',
|
||||
nessun_invitante: 'Sem Convite',
|
||||
nessun_invitato: 'Sem Convidados',
|
||||
legenda_title: 'Clique no nome do convidado para ver o status de seus Requisitos',
|
||||
nave_in_partenza: 'in Partenza il',
|
||||
},
|
||||
reg: {
|
||||
registered: 'Registrato',
|
||||
|
||||
@@ -782,6 +782,33 @@ namespace Actions {
|
||||
})
|
||||
}
|
||||
|
||||
async function InviaMsgADonatori(context, { msgobj, navemediatore }) {
|
||||
console.log('InviaMsgADonatori', msgobj)
|
||||
|
||||
const mydata = {
|
||||
idapp: process.env.APP_ID,
|
||||
tipomsg: tools.TipoMsg.SEND_LINK_CHAT_DONATORI,
|
||||
msgextra: msgobj.msgextra,
|
||||
msgpar1: msgobj.msgpar1,
|
||||
inviareale: msgobj.inviareale,
|
||||
navemediatore
|
||||
}
|
||||
|
||||
return await Api.SendReq('/dashboard/msgnave', 'POST', mydata)
|
||||
.then((res) => {
|
||||
if (res.status === 200) {
|
||||
if (res.data.code === serv_constants.RIS_CODE_OK) {
|
||||
return res.data.ris
|
||||
}
|
||||
}
|
||||
return null
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error(error)
|
||||
return null
|
||||
})
|
||||
}
|
||||
|
||||
async function loadSite(context) {
|
||||
// console.log('CalendarStore: loadAfterLogin')
|
||||
// Load local data
|
||||
@@ -930,6 +957,7 @@ namespace Actions {
|
||||
DeleteFile: b.dispatch(DeleteFile),
|
||||
sendEmailTest: b.dispatch(sendEmailTest),
|
||||
DuplicateRec: b.dispatch(DuplicateRec),
|
||||
InviaMsgADonatori: b.dispatch(InviaMsgADonatori),
|
||||
addDynamicPages: b.dispatch(addDynamicPages)
|
||||
}
|
||||
|
||||
|
||||
@@ -568,7 +568,7 @@ namespace Actions {
|
||||
|
||||
return await Api.SendReq('/users/dbop', 'POST', paramquery)
|
||||
.then((res) => {
|
||||
return res
|
||||
return res.data
|
||||
}).catch((error) => {
|
||||
return false
|
||||
})
|
||||
|
||||
@@ -159,6 +159,37 @@ const colpaymenttype = [
|
||||
AddCol(DeleteRec)
|
||||
]
|
||||
|
||||
const colnavi = [
|
||||
AddCol({ name: '_id', label_trans: 'others.value' }),
|
||||
AddCol({ name: 'riga', label_trans: 'reg.riga' }),
|
||||
AddCol({ name: 'col', label_trans: 'reg.col' }),
|
||||
AddCol({ name: 'indprimario', label_trans: 'indprimario' }),
|
||||
AddCol({ name: 'ind_order', label_trans: 'ind_order' }),
|
||||
AddCol({ name: 'parent_id', label_trans: 'parent_id' }),
|
||||
AddCol({ name: 'date_start', label_trans: 'date_start', fieldtype: tools.FieldType.date }),
|
||||
AddCol({ name: 'link_chat', label_trans: 'reg.link_chat' }),
|
||||
AddCol({ name: 'sent_msg_howto_make_gift', label_trans: 'sent_msg_howto_make_gift', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'made_gift', label_trans: 'made_gift', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'date_made_gift', label_trans: 'date_made_gift', fieldtype: tools.FieldType.date }),
|
||||
AddCol({ name: 'received_gift', label_trans: 'received_gift', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'date_received_gift', label_trans: 'date_received_gift', fieldtype: tools.FieldType.date }),
|
||||
AddCol({ name: 'num_tess', label_trans: 'num_tess', fieldtype: tools.FieldType.number }),
|
||||
AddCol(DeleteRec),
|
||||
AddCol(DuplicateRec)
|
||||
]
|
||||
|
||||
const collistaingresso = [
|
||||
AddCol({ name: '_id', label_trans: 'others.value' }),
|
||||
AddCol({ name: 'indprimario', label_trans: 'indprimario' }),
|
||||
AddCol({ name: 'ind_order', label_trans: 'ind_order' }),
|
||||
AddCol({ name: 'date_added', label_trans: 'date_added', fieldtype: tools.FieldType.date }),
|
||||
AddCol({ name: 'added', label_trans: 'added', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'num_tess', label_trans: 'num_tess', fieldtype: tools.FieldType.number }),
|
||||
AddCol({ name: 'deleted', label_trans: 'deleted', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol(DuplicateRec),
|
||||
AddCol(DeleteRec)
|
||||
]
|
||||
|
||||
const coldisciplines = [
|
||||
AddCol({ name: 'typol_code', label_trans: 'disc.typol_code' }),
|
||||
AddCol({ name: 'order', label_trans: 'disc.order', fieldtype: tools.FieldType.number }),
|
||||
@@ -435,6 +466,7 @@ export const fieldsTable = {
|
||||
AddCol({ name: 'verified_email', label_trans: 'reg.verified_email', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'profile.saw_zoom_presentation', field: 'profile', subfield: 'saw_zoom_presentation', label_trans: 'reg.saw_zoom_presentation', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'profile.special_req', field: 'profile', subfield: 'special_req', label_trans: 'reg.special_req', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'profile.vuole_ritessersi', field: 'profile', subfield: 'vuole_ritessersi', label_trans: 'reg.vuole_ritessersi', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'profile.saw_and_accepted', field: 'profile', subfield: 'saw_and_accepted', label_trans: 'reg.saw_and_accepted', fieldtype: tools.FieldType.binary, jointable: 'accepted' }),
|
||||
AddCol({ name: 'profile.my_dream', field: 'profile', subfield: 'my_dream', label_trans: 'reg.my_dream' }),
|
||||
AddCol({ name: 'profile.nationality', field: 'profile', subfield: 'nationality', label_trans: 'reg.nationality' }),
|
||||
@@ -519,6 +551,20 @@ export const fieldsTable = {
|
||||
colkey: 'key',
|
||||
collabel: 'label'
|
||||
},
|
||||
{
|
||||
value: 'navi',
|
||||
label: 'Navi',
|
||||
columns: colnavi,
|
||||
colkey: '_id',
|
||||
collabel: (rec) => rec.riga + '.' + rec.col
|
||||
},
|
||||
{
|
||||
value: 'listaingressos',
|
||||
label: 'Lista Ingresso',
|
||||
columns: collistaingresso,
|
||||
colkey: '_id',
|
||||
collabel: 'indprimario',
|
||||
},
|
||||
{
|
||||
value: 'disciplines',
|
||||
label: 'Discipline',
|
||||
@@ -526,7 +572,6 @@ export const fieldsTable = {
|
||||
colkey: 'typol_code',
|
||||
collabel: 'label'
|
||||
},
|
||||
|
||||
{
|
||||
value: 'newstosent',
|
||||
label: 'Newsletter da Inviare',
|
||||
@@ -577,10 +622,8 @@ export const fieldsTable = {
|
||||
{
|
||||
value: 'accepted',
|
||||
label: 'Condizioni',
|
||||
columns: colTablePermission,
|
||||
colkey: 'value',
|
||||
collabel: 'label',
|
||||
colicon: 'icon',
|
||||
noshow: true,
|
||||
},
|
||||
{
|
||||
|
||||
@@ -21,6 +21,7 @@ export const lists = {
|
||||
DELETE_EXTRALIST: 330,
|
||||
DELETE_USERLIST: 335,
|
||||
REGALA_INVITATO: 340,
|
||||
INVIA_MSG_A_DONATORI: 350,
|
||||
|
||||
CAN_EDIT_TABLE: 400,
|
||||
SHOW_PREV_REC: 401
|
||||
|
||||
@@ -52,12 +52,16 @@ export interface INotify {
|
||||
export const tools = {
|
||||
CAN_EDIT: 'q-ce',
|
||||
|
||||
getprefCountries: ['it', 'si', 'us', 'es', 'pt', 'uk', 'fr', 'de', 'ch'],
|
||||
getprefCountries: ['it', 'si', 'us', 'es', 'pt', 'uk', 'fr', 'de', 'ch', 'br', 'sk'],
|
||||
|
||||
APORTADOR_NONE: '------',
|
||||
|
||||
APORTADOR_SOLIDARIO: 'apsol',
|
||||
|
||||
TipoMsg: {
|
||||
SEND_LINK_CHAT_DONATORI: 1,
|
||||
},
|
||||
|
||||
listBestColor: [
|
||||
'blue',
|
||||
'green',
|
||||
@@ -1416,7 +1420,7 @@ export const tools = {
|
||||
|
||||
executefunc(myself: any, table, func: number, par: IParamDialog) {
|
||||
if (func === lists.MenuAction.DELETE) {
|
||||
console.log('param1', par.param1)
|
||||
// console.log('param1', par.param1)
|
||||
CalendarStore.actions.CancelBookingEvent({
|
||||
ideventbook: par.param1,
|
||||
notify: par.param2 === true ? '1' : '0'
|
||||
@@ -1429,7 +1433,7 @@ export const tools = {
|
||||
tools.showNegativeNotif(myself.$q, myself.$t('cal.cancelederrorbooking'))
|
||||
})
|
||||
} else if (func === lists.MenuAction.DELETE_EVENT) {
|
||||
console.log('param1', par.param1, 'id', par.param1._id)
|
||||
// console.log('param1', par.param1, 'id', par.param1._id)
|
||||
CalendarStore.actions.CancelEvent({ id: par.param1._id }).then((ris) => {
|
||||
if (ris) {
|
||||
// Remove this record from my list
|
||||
@@ -1477,7 +1481,7 @@ export const tools = {
|
||||
tools.showNegativeNotif(myself.$q, myself.$t('db.recfailed'))
|
||||
})
|
||||
} else if (func === lists.MenuAction.DELETE_RECTABLE) {
|
||||
console.log('param1', par.param1)
|
||||
// console.log('param1', par.param1)
|
||||
GlobalStore.actions.DeleteRec({ table, id: par.param1 }).then((ris) => {
|
||||
if (ris) {
|
||||
myself.ActionAfterYes(func, par.param2, null)
|
||||
@@ -1486,7 +1490,7 @@ export const tools = {
|
||||
tools.showNegativeNotif(myself.$q, myself.$t('db.recdelfailed'))
|
||||
})
|
||||
} else if (func === lists.MenuAction.DUPLICATE_RECTABLE) {
|
||||
console.log('param1', par.param1)
|
||||
// console.log('param1', par.param1)
|
||||
GlobalStore.actions.DuplicateRec({ table, id: par.param1 }).then((ris) => {
|
||||
if (ris) {
|
||||
myself.ActionAfterYes(func, par.param2, ris.data)
|
||||
@@ -1494,6 +1498,15 @@ export const tools = {
|
||||
} else
|
||||
tools.showNegativeNotif(myself.$q, myself.$t('db.recdupfailed'))
|
||||
})
|
||||
} else if (func === lists.MenuAction.INVIA_MSG_A_DONATORI) {
|
||||
// console.log('param1', par.param1)
|
||||
GlobalStore.actions.InviaMsgADonatori({ msgobj: par.param1, navemediatore: par.param2 }).then((ris) => {
|
||||
if (ris) {
|
||||
tools.showPositiveNotif(myself.$q, myself.$t('dashboard.msg_donatori_ok'))
|
||||
tools.askConfirm(myself.$q, '', ris.strout, translate('dialog.yes'), translate('dialog.no'), this, '', 0, 0, {})
|
||||
} else
|
||||
tools.showNegativeNotif(myself.$q, myself.$t('db.recfailed'))
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1505,7 +1518,6 @@ export const tools = {
|
||||
notifBot: null
|
||||
}
|
||||
|
||||
|
||||
GlobalStore.actions.saveFieldValue(mydatatosave).then((ris) => {
|
||||
if (ris) {
|
||||
tools.showPositiveNotif(myself.$q, myself.$t('db.recupdated'))
|
||||
@@ -1613,7 +1625,7 @@ export const tools = {
|
||||
}
|
||||
|
||||
if (!(static_data.arrLangUsed.includes(mylang))) {
|
||||
console.log('non incluso ', mylang)
|
||||
// console.log('non incluso ', mylang)
|
||||
mylang = static_data.arrLangUsed[0]
|
||||
|
||||
// Metti come default
|
||||
@@ -1818,6 +1830,14 @@ export const tools = {
|
||||
return ''
|
||||
},
|
||||
|
||||
getstrshortDate(mytimestamp) {
|
||||
// console.log('getstrDate', mytimestamp)
|
||||
if (!!mytimestamp)
|
||||
return date.formatDate(mytimestamp, 'DD/MM')
|
||||
else
|
||||
return ''
|
||||
},
|
||||
|
||||
getstrTime(mytimestamp) {
|
||||
// console.log('getstrDate', mytimestamp)
|
||||
if (!!mytimestamp)
|
||||
@@ -3051,6 +3071,7 @@ export const tools = {
|
||||
}
|
||||
} else {
|
||||
const ris = GlobalStore.getters.getValueSettingsByKey(keystr, serv)
|
||||
|
||||
if (ris === '')
|
||||
if (def !== undefined)
|
||||
return def
|
||||
@@ -3170,6 +3191,8 @@ export const tools = {
|
||||
return 'fa-flag-es'
|
||||
else if (lang === 'PT')
|
||||
return 'fa-flag-pt'
|
||||
else if (lang === 'BR')
|
||||
return 'fa-flag-br'
|
||||
else if (lang === 'US')
|
||||
return 'fa-flag-us'
|
||||
else if ((lang === 'GB') || (lang === 'UK'))
|
||||
@@ -3180,6 +3203,8 @@ export const tools = {
|
||||
return 'fa-flag-fr'
|
||||
else if (lang === 'SI')
|
||||
return 'fa-flag-si'
|
||||
else if (lang === 'SK')
|
||||
return 'fa-flag-sk'
|
||||
else if (lang === 'CH')
|
||||
return 'fa-flag-ch'
|
||||
else if (lang === 'CM')
|
||||
@@ -3231,6 +3256,8 @@ export const tools = {
|
||||
return 'Italy'
|
||||
} else if (nat === 'SI') {
|
||||
return 'Slovenia'
|
||||
} else if (nat === 'SK') {
|
||||
return 'Slovakia'
|
||||
} else if (nat === 'ES') {
|
||||
return 'Spain'
|
||||
} else if (nat === 'DE') {
|
||||
@@ -3275,6 +3302,8 @@ export const tools = {
|
||||
return 'Poland'
|
||||
} else if (nat === 'EG') {
|
||||
return 'Egypt'
|
||||
} else if (nat === 'BR') {
|
||||
return 'Brazil'
|
||||
}
|
||||
},
|
||||
|
||||
@@ -3294,7 +3323,38 @@ export const tools = {
|
||||
val = val.replace('{' + par.strin + '}', par.strout)
|
||||
})
|
||||
return val
|
||||
}
|
||||
},
|
||||
|
||||
isPayPalSel(user) {
|
||||
let ispaypal = false
|
||||
if (user.profile.paymenttypes) {
|
||||
if (user.profile.paymenttypes.includes('paypal')) {
|
||||
if (user.email_paypal !== '')
|
||||
ispaypal = true
|
||||
}
|
||||
}
|
||||
return ispaypal
|
||||
|
||||
},
|
||||
getnumrequisiti(user) {
|
||||
let req = 0
|
||||
|
||||
req += user.verified_email ? 1 : 0
|
||||
req += user.profile.teleg_id > 0 ? 1 : 0
|
||||
req += this.isBitActive(user.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES.value) ? 1 : 0
|
||||
req += this.isBitActive(user.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI.value) ? 1 : 0
|
||||
req += user.profile.saw_zoom_presentation ? 1 : 0
|
||||
if (!!user.profile.my_dream)
|
||||
req += user.profile.my_dream.length >= 10 ? 1 : 0
|
||||
req += this.isPayPalSel(user) ? 1 : 0
|
||||
|
||||
return req
|
||||
},
|
||||
|
||||
Is7ReqOk(user) {
|
||||
return this.getnumrequisiti(user) === 7
|
||||
},
|
||||
|
||||
|
||||
// getLocale() {
|
||||
// if (navigator.languages && navigator.languages.length > 0) {
|
||||
|
||||
@@ -5,20 +5,29 @@ import { GlobalStore } from '@store'
|
||||
import { tools } from '../../../store/Modules/tools'
|
||||
import { UserStore } from '../../../store/Modules'
|
||||
import { CTitleBanner } from '../../../components/CTitleBanner'
|
||||
import { CDateTime } from '../../../components/CDateTime'
|
||||
import { CMyFieldDb } from '../../../components/CMyFieldDb'
|
||||
|
||||
@Component({
|
||||
components: { CTitleBanner }
|
||||
components: { CTitleBanner, CDateTime, CMyFieldDb }
|
||||
})
|
||||
export default class Dbop extends Vue {
|
||||
public $t
|
||||
public ris: any
|
||||
public ris: any = ''
|
||||
public riga: number = 0
|
||||
public numpersone: number = 7
|
||||
public date_start: Date = new Date()
|
||||
public col: number = 0
|
||||
public placca: string = ''
|
||||
public incaricamento: boolean = false
|
||||
|
||||
get tools(){
|
||||
return tools
|
||||
}
|
||||
|
||||
public async EseguiFunz(miafunz) {
|
||||
this.$q.dialog({
|
||||
message: 'Continuare ' + miafunz + ' ?',
|
||||
message: this.$t('dialog.continue') + ' ' + miafunz + ' ?',
|
||||
cancel: {
|
||||
label: this.$t('dialog.cancel')
|
||||
},
|
||||
@@ -31,12 +40,31 @@ export default class Dbop extends Vue {
|
||||
const mydata = {
|
||||
dbop: miafunz,
|
||||
riga: this.riga,
|
||||
col: this.col
|
||||
col: this.col,
|
||||
date_start: this.date_start,
|
||||
numpersone: this.numpersone
|
||||
}
|
||||
this.ris = await UserStore.actions.execDbOp({ mydata })
|
||||
|
||||
this.incaricamento = true
|
||||
this.$q.loading.show({ message: this.$t('otherpages.update') })
|
||||
|
||||
const ris = await UserStore.actions.execDbOp({ mydata })
|
||||
|
||||
this.$q.loading.hide()
|
||||
await GlobalStore.actions.loadSite()
|
||||
|
||||
this.incaricamento = false
|
||||
|
||||
console.log('this.ris', this.ris)
|
||||
|
||||
this.ris = ''
|
||||
|
||||
if (miafunz === 'visuPlacca') {
|
||||
this.placca = this.ris.placca
|
||||
this.placca = ris.placca
|
||||
} else if (miafunz === 'visuListaIngresso' || miafunz === 'visuListaNave' || miafunz === 'visuNave' || miafunz === 'creaNave') {
|
||||
this.placca = ris.mystr
|
||||
} else {
|
||||
this.ris = ris
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<CTitleBanner title="Operazioni su DB:"></CTitleBanner>
|
||||
<div class="row justify-center q-gutter-sm q-list--bordered center_img" style="max-width: 400px">
|
||||
<div class="row justify-center q-gutter-sm q-list--bordered center_img" style="max-width: 600px">
|
||||
<div class="row">
|
||||
<q-btn label="Passa i codici Telefoni sul campo cell" color="primary"
|
||||
@click="EseguiFunz('changeCellInt')"></q-btn>
|
||||
@@ -11,17 +11,84 @@
|
||||
@click="EseguiFunz('changeEmailLowerCase')"></q-btn>
|
||||
<br></div>
|
||||
<div class="row">
|
||||
<q-btn label="Crea Lista" color="primary" @click="EseguiFunz('creaLista')"></q-btn>
|
||||
<br></div>
|
||||
<q-btn label="Crea Utenti Test" color="primary" @click="EseguiFunz('creaUtentiTest')"></q-btn><br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn label="Crea Billettera" color="primary" @click="EseguiFunz('creaBillettera')"></q-btn>
|
||||
<br></div>
|
||||
<q-btn label="IMPOSTARE A TUTTI PAYPAL" color="primary" @click="EseguiFunz('ImpostaATuttiPaypal')"></q-btn><br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn label="NUM_TESS A 1" color="primary" @click="EseguiFunz('numtessUno')"></q-btn><br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn label="Inizializza ListaIngresso" color="negative" @click="EseguiFunz('initListaIngresso')"></q-btn><br>
|
||||
<q-btn label="Crea ListaIngresso" color="negative" @click="EseguiFunz('creaLista')"></q-btn>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn label="Elimina Navi" color="negative" @click="EseguiFunz('delNavi')"></q-btn><br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn label="Elimina Navi non Partite" color="negative" @click="EseguiFunz('delNaviNoStarted')"></q-btn><br>
|
||||
</div>
|
||||
<div>
|
||||
<CDateTime
|
||||
:value.sync="date_start"
|
||||
:label="$t('cal.eventstartdatetime')"
|
||||
:readonly="false">
|
||||
</CDateTime>
|
||||
<q-input v-model="numpersone" type="number" autofocus label="Num Persone to Add" style="width: 50px;"></q-input>
|
||||
<q-btn label="Crea Nave" color="negative" @click="EseguiFunz('creaNave')"></q-btn>
|
||||
</div>
|
||||
<div v-if="!incaricamento" class="row">
|
||||
<CMyFieldDb title="Riga"
|
||||
mykey="riga"
|
||||
:serv="false"
|
||||
:type="tools.FieldType.number">
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb title="Col"
|
||||
mykey="col"
|
||||
:serv="false"
|
||||
:type="tools.FieldType.number">
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb title="Riga Doni"
|
||||
mykey="rigadoni"
|
||||
:serv="false"
|
||||
:type="tools.FieldType.number">
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb title="Col Doni"
|
||||
mykey="coldoni"
|
||||
:serv="false"
|
||||
:type="tools.FieldType.number">
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb title="Visu_TEST"
|
||||
mykey="VISU_TEST"
|
||||
:serv="false"
|
||||
:type="tools.FieldType.boolean">
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb title="VISU_NAVE_BOT"
|
||||
mykey="VISU_NAVE_BOT"
|
||||
:serv="false"
|
||||
:type="tools.FieldType.boolean">
|
||||
</CMyFieldDb>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<q-btn label="Visualizza Lista Nave" color="primary" @click="EseguiFunz('visuListaNave')"></q-btn><br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn label="Visualizza ListaIngresso" color="primary" @click="EseguiFunz('visuListaIngresso')"></q-btn><br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn label="CHECK SE INSERIRE UTENTI IN Nave" color="primary" @click="EseguiFunz('checkInserimentiUtentiInNave')"></q-btn><br>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<q-input v-model="riga" type="number" autofocus label="Riga" style="width: 50px;"></q-input>
|
||||
<q-input v-model="col" type="number" autofocus label="Col" style="width: 50px;"></q-input>
|
||||
<q-btn label="Visualizza Placca" color="primary" @click="EseguiFunz('visuPlacca')"></q-btn>
|
||||
<q-input v-model="placca" autofocus label="Col" style="width: 300px; height: 400px;"></q-input>
|
||||
<q-btn label="Visualizza Nave da 8" color="primary" @click="EseguiFunz('visuPlacca')"></q-btn><br>
|
||||
<q-btn label="Visualizza Nave" color="primary" @click="EseguiFunz('visuNave')"></q-btn><br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-input v-model="placca" type="textarea" autofocus label="Placca" autogrow style="width: 500px; height: 400px;"></q-input>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,39 +1,14 @@
|
||||
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'
|
||||
import CSigninNoreg from '../../../components/CSigninNoreg/CSigninNoreg'
|
||||
|
||||
@Component({
|
||||
components: { CSignIn }
|
||||
components: { CSigninNoreg }
|
||||
})
|
||||
|
||||
export default class Signin 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
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
<template>
|
||||
<q-page padding class="signin">
|
||||
<CSignIn :mythis="mythis"
|
||||
:showregbutt="true"
|
||||
@loginOk="loginOk"
|
||||
@loginInCorso="loginInCorso"
|
||||
@checkErrors="checkErrors"
|
||||
@showNotif="showNotif">
|
||||
</CSignIn>
|
||||
<CSigninNoreg :showregbutt="true">
|
||||
|
||||
</CSigninNoreg>
|
||||
|
||||
</q-page>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -1,39 +1,7 @@
|
||||
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
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
<template>
|
||||
<q-page padding class="signin">
|
||||
<CSignIn :mythis="mythis"
|
||||
@loginOk="loginOk"
|
||||
@loginInCorso="loginInCorso"
|
||||
:showregbutt="false"
|
||||
@checkErrors="checkErrors"
|
||||
@showNotif="showNotif">
|
||||
</CSignIn>
|
||||
<CSignInNoreg>
|
||||
</CSignInNoreg>
|
||||
</q-page>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -7,8 +7,12 @@ import { serv_constants } from '../../../store/Modules/serv_constants'
|
||||
|
||||
import './vreg.scss'
|
||||
import { ILinkReg } from '../../../model/other'
|
||||
import { CSigninNoreg } from '../../../components/CSigninNoreg'
|
||||
import { GlobalStore } from '../../../store'
|
||||
|
||||
@Component({})
|
||||
@Component({
|
||||
components: { CSigninNoreg }
|
||||
})
|
||||
export default class Vreg extends Vue {
|
||||
public risultato: string = '---'
|
||||
public riscode: number = 0
|
||||
@@ -57,4 +61,8 @@ export default class Vreg extends Vue {
|
||||
console.log('ERR = ' + err)
|
||||
})
|
||||
}
|
||||
|
||||
public openrighttoolbar() {
|
||||
GlobalStore.state.RightDrawerOpen = true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,6 +34,11 @@
|
||||
</q-banner>
|
||||
</transition>
|
||||
|
||||
<div class="text-center q-mt-md">
|
||||
<q-btn rounded size="lg" color="primary" @click="openrighttoolbar">{{$t('login.enter')}}
|
||||
</q-btn>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</q-page>
|
||||
|
||||
@@ -2,6 +2,8 @@ import { Component, Mixins, Prop, Watch } from 'vue-property-decorator'
|
||||
import MixinBase from '../../../mixins/mixin-base'
|
||||
import { CMyFieldDb, CTitleBanner, CProfile, CStatus } from '@components'
|
||||
import { UserStore } from '../../../store/Modules'
|
||||
import { GlobalStore } from '../../../store'
|
||||
import { tools } from '../../../store/Modules/tools'
|
||||
|
||||
@Component({
|
||||
components: { CProfile, CTitleBanner, CMyFieldDb, CStatus }
|
||||
@@ -18,8 +20,48 @@ export default class Profile extends MixinBase {
|
||||
get getpayment() {
|
||||
return UserStore.state.my.profile.paymenttypes
|
||||
}
|
||||
|
||||
get profile() {
|
||||
return UserStore.state.my.profile
|
||||
}
|
||||
|
||||
public eliminaAccount() {
|
||||
|
||||
this.$q.dialog({
|
||||
message: this.$t('reg.cancellami'),
|
||||
cancel: {
|
||||
label: this.$t('dialog.cancel')
|
||||
},
|
||||
ok: {
|
||||
label: this.$t('dialog.yes'),
|
||||
push: true
|
||||
},
|
||||
title: this.$t('pages.profile')
|
||||
}).onOk(async () => {
|
||||
this.$q.dialog({
|
||||
message: this.$t('reg.cancellami_2'),
|
||||
cancel: {
|
||||
label: this.$t('dialog.cancel')
|
||||
},
|
||||
ok: {
|
||||
label: this.$t('dialog.yes'),
|
||||
push: true
|
||||
},
|
||||
title: this.$t('pages.profile')
|
||||
})
|
||||
.onOk(async () => {
|
||||
GlobalStore.actions.DeleteRec({ table: tools.TABUSER, id: UserStore.state.my._id })
|
||||
.then((ris) => {
|
||||
if (ris) {
|
||||
tools.showPositiveNotif(this.$q, this.$t('reg.account_cancellato'))
|
||||
UserStore.actions.logout()
|
||||
this.$router.replace('/')
|
||||
} else
|
||||
tools.showNegativeNotif(this.$q, this.$t('db.recfailed'))
|
||||
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -92,6 +92,13 @@
|
||||
</CMyFieldDb>
|
||||
|
||||
</CTitleBanner>
|
||||
|
||||
<br><br>
|
||||
<div class="text-center">
|
||||
<q-btn rounded size="md" color="negative" @click="eliminaAccount" :label="$t('reg.cancella_account')">
|
||||
</q-btn>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user