SubAccounts !
This commit is contained in:
@@ -3,7 +3,7 @@ import { Component, Prop, Watch } from 'vue-property-decorator'
|
||||
|
||||
import { tools } from '../../store/Modules/tools'
|
||||
import { toolsext } from '@src/store/Modules/toolsext'
|
||||
import { IOperators } from '../../model/GlobalStore'
|
||||
import { IOperators } from '../../model'
|
||||
|
||||
@Component({
|
||||
name: 'CBook',
|
||||
|
||||
@@ -3,7 +3,7 @@ import { Component, Prop, Watch } from 'vue-property-decorator'
|
||||
|
||||
import { tools } from '../../store/Modules/tools'
|
||||
import { toolsext } from '@src/store/Modules/toolsext'
|
||||
import { IOperators } from '../../model/GlobalStore'
|
||||
import { IOperators } from '../../model'
|
||||
|
||||
@Component({
|
||||
name: 'CCard',
|
||||
|
||||
@@ -31,31 +31,12 @@ $grayshadow: #555;
|
||||
border-radius: 30px;
|
||||
}
|
||||
|
||||
.my-card-shadow {
|
||||
width: 100%;
|
||||
max-width: 350px;
|
||||
min-width: 300px;
|
||||
padding-bottom: 20px;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
border-radius: 30px;
|
||||
|
||||
transition: transform .2s ease-out;
|
||||
}
|
||||
|
||||
.yes_shadow {
|
||||
-webkit-box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.16);
|
||||
box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.16);
|
||||
}
|
||||
|
||||
|
||||
.my-card-shadow:hover {
|
||||
transition: transform .2s ease-in;
|
||||
transform: scale(1.03);
|
||||
}
|
||||
|
||||
.disc {
|
||||
text-align: center !important;
|
||||
font-size: 1rem;
|
||||
|
||||
@@ -10,8 +10,8 @@ import MixinBase from '@src/mixins/mixin-base'
|
||||
})
|
||||
|
||||
export default class CCardState extends MixinBase {
|
||||
@Prop({ required: true, default: '' }) public mytext
|
||||
@Prop({ required: true, default: 0 }) public myval
|
||||
@Prop({ required: false, default: '' }) public mytext
|
||||
@Prop({ required: false, default: 0 }) public myval
|
||||
@Prop({ required: true, default: 0 }) public myperc
|
||||
@Prop({ required: false, default: '' }) public imgsrc
|
||||
@Prop({ required: false, default: false }) public isperc
|
||||
|
||||
@@ -1,36 +1,36 @@
|
||||
<template>
|
||||
<q-card :class="myclass +` text-center`" :style="mystyle">
|
||||
<q-circular-progress
|
||||
show-value
|
||||
:font-size="fontsize"
|
||||
:value="myperc"
|
||||
:size="getsize"
|
||||
:thickness="0.25"
|
||||
:color="mycolor"
|
||||
track-color="grey-3"
|
||||
class="animated"
|
||||
>
|
||||
<q-card :class="myclass +` text-center`" :style="mystyle">
|
||||
<q-circular-progress
|
||||
show-value
|
||||
:font-size="fontsize"
|
||||
:value="myperc"
|
||||
:size="getsize"
|
||||
:thickness="0.25"
|
||||
:color="mycolor"
|
||||
track-color="grey-3"
|
||||
class="animated"
|
||||
>
|
||||
|
||||
<q-avatar v-if="imgsrc" size="60px">
|
||||
<img :src="imgsrc">
|
||||
</q-avatar>
|
||||
<div class="column q-pa-sm text-center">
|
||||
<div>
|
||||
{{ mytext }}
|
||||
</div>
|
||||
<div class="mlvalue text-h5 text-blue boldhigh text-h5-short"> {{ myval }} {{ textadd }}
|
||||
</div>
|
||||
<div v-if="isperc" class="cltexth4">
|
||||
({{ myperc.toFixed(1) }} %)
|
||||
</div>
|
||||
</div>
|
||||
</q-circular-progress>
|
||||
</q-card>
|
||||
<q-avatar v-if="imgsrc" size="60px">
|
||||
<img :src="imgsrc">
|
||||
</q-avatar>
|
||||
<div class="column q-pa-sm text-center">
|
||||
<div>
|
||||
{{ mytext }}
|
||||
</div>
|
||||
<div v-if="myval" class="mlvalue text-h5 text-blue boldhigh text-h5-short"> {{ myval }} {{ textadd }}
|
||||
</div>
|
||||
<div v-if="isperc" class="cltexth5" :style="'fontsize:' + fontsize">
|
||||
{{ myperc.toFixed(1) }}%
|
||||
</div>
|
||||
</div>
|
||||
</q-circular-progress>
|
||||
</q-card>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CCardState.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './CCardState.scss';
|
||||
@import './CCardState.scss';
|
||||
</style>
|
||||
|
||||
@@ -3,7 +3,7 @@ import { Component, Prop, Watch } from 'vue-property-decorator'
|
||||
|
||||
import { tools } from '../../store/Modules/tools'
|
||||
import { toolsext } from '@src/store/Modules/toolsext'
|
||||
import { IGallery, IImgGallery } from '../../model/GlobalStore'
|
||||
import { IGallery, IImgGallery } from '../../model'
|
||||
import { CMyPage } from '../CMyPage'
|
||||
import GlobalModule from '../../store/Modules/GlobalStore'
|
||||
import { GlobalStore } from '../../store/Modules'
|
||||
|
||||
@@ -71,6 +71,30 @@ export default class CGridTableRec extends Vue {
|
||||
|
||||
public selected = []
|
||||
|
||||
get isAdmin() {
|
||||
return UserStore.state.isAdmin
|
||||
}
|
||||
|
||||
get isManager() {
|
||||
return UserStore.state.isManager
|
||||
}
|
||||
|
||||
get isTutor() {
|
||||
return UserStore.state.isTutor
|
||||
}
|
||||
|
||||
get isTratuttrici() {
|
||||
return UserStore.state.isTratuttrici
|
||||
}
|
||||
|
||||
get disabilita() {
|
||||
if ((this.mytable === 'users') && (this.isTutor)) {
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
get lists() {
|
||||
return lists
|
||||
}
|
||||
@@ -374,6 +398,7 @@ export default class CGridTableRec extends Vue {
|
||||
this.canEdit = tools.getCookie(tools.CAN_EDIT, this.canEdit) === 'true'
|
||||
this.tablesel = tools.getCookie('tablesel', this.tablesel)
|
||||
}
|
||||
console.log('this.tablesel', this.tablesel)
|
||||
|
||||
if (this.tablesel === '') {
|
||||
if (!!this.tablesList)
|
||||
@@ -382,6 +407,8 @@ export default class CGridTableRec extends Vue {
|
||||
this.tablesel = this.mytable
|
||||
}
|
||||
|
||||
console.log('2) this.tablesel', this.tablesel)
|
||||
|
||||
this.changeTable(false)
|
||||
|
||||
}
|
||||
@@ -442,7 +469,10 @@ export default class CGridTableRec extends Vue {
|
||||
}
|
||||
|
||||
public changeCol(newval) {
|
||||
tools.setCookie(this.mytable, this.colVisib.join('|'))
|
||||
console.log('changecol', this.mytable)
|
||||
if (!!this.mytable) {
|
||||
tools.setCookie(this.mytable, this.colVisib.join('|'))
|
||||
}
|
||||
}
|
||||
|
||||
public changeTable(mysel) {
|
||||
@@ -489,7 +519,9 @@ export default class CGridTableRec extends Vue {
|
||||
this.mytable = mytab.value
|
||||
}
|
||||
|
||||
tools.setCookie('tablesel', this.tablesel)
|
||||
if (!!this.tablesList) {
|
||||
tools.setCookie('tablesel', this.tablesel)
|
||||
}
|
||||
|
||||
this.updatedcol()
|
||||
|
||||
@@ -521,7 +553,9 @@ export default class CGridTableRec extends Vue {
|
||||
}
|
||||
|
||||
public changefuncAct(newval) {
|
||||
tools.setCookie(tools.CAN_EDIT, newval)
|
||||
if (!this.disabilita) {
|
||||
tools.setCookie(tools.CAN_EDIT, newval)
|
||||
}
|
||||
}
|
||||
|
||||
public clickrowcol(row, col) {
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
<q-btn v-if="mytable" label="" color="primary" @click="refresh" icon="search"></q-btn>
|
||||
</template>
|
||||
</q-input>
|
||||
<q-toggle v-if="mytable" v-model="canEdit" :val="lists.MenuAction.CAN_EDIT_TABLE" class="q-mx-sm"
|
||||
<q-toggle v-if="mytable" v-model="canEdit" :disable="disabilita" :val="lists.MenuAction.CAN_EDIT_TABLE" class="q-mx-sm"
|
||||
:label="$t('grid.editvalues')" @input="changefuncAct"
|
||||
></q-toggle>
|
||||
|
||||
@@ -117,6 +117,7 @@
|
||||
v-if="colVisib.includes(col.field + col.subfield)">
|
||||
<div :class="getclrow(props.row)">
|
||||
<CMyPopupEdit :canEdit="canEdit"
|
||||
:disable="disabilita"
|
||||
:col="col"
|
||||
:row.sync="props.row"
|
||||
:field="col.field"
|
||||
@@ -172,6 +173,7 @@
|
||||
<div class="q-ma-sm q-pa-sm colmodif col-grow rounded-borders " style="border: 1px solid #bbb"
|
||||
@click="colclicksel = mycol">
|
||||
<CMyPopupEdit :canEdit="true"
|
||||
:disable="disabilita"
|
||||
view="field"
|
||||
:col="mycol"
|
||||
:showall="true"
|
||||
|
||||
@@ -133,8 +133,8 @@
|
||||
|
||||
Il mio compito è quello di assicurarmi che tutti i Donatori facciano il Dono al Sognatore.
|
||||
Il sistema invierà in automatico le istruzioni per fare il Dono, il Mediatore (io) verificherà e
|
||||
accompagnerà il processo.<br>
|
||||
Il passo 2, di norma, è attivato 4 giorni dopo il passo 1.</p>
|
||||
accompagnerà il processo.
|
||||
</p>
|
||||
|
||||
<div class="text-center">
|
||||
<q-img src="statics/images/passo_3.jpg" class="img"></q-img>
|
||||
@@ -146,7 +146,7 @@
|
||||
Il mio compito è quello di aprirmi a ricevere i Doni da ciascun Donatore, completarmi e
|
||||
celebrare
|
||||
l’Abbondanza.<br>
|
||||
Il passo 3, di norma, è attivato 4 giorni dopo il passo 2.<br><br>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</CTitleBanner>
|
||||
@@ -265,8 +265,7 @@
|
||||
<p>Klepet sestavlja 8 donatorjev (ki jim bom pomagal vstopiti v klepet) tako jaz, kot posrednik.<br>
|
||||
Moja naloga je, da poskrbim, da bodo vsi donatorji sanjaču vplačali darilo. Sistem bo samodejno
|
||||
poslal navodila za način vplačila, Posrednik (jaz) bo postopek preveril in spremljal.
|
||||
<br>
|
||||
Korak 2 se običajno aktivira 4 dni po koraku 1.</p>
|
||||
</p>
|
||||
|
||||
<div class="text-center">
|
||||
<q-img src="statics/images/passo_3.jpg" class="img"></q-img>
|
||||
@@ -275,9 +274,7 @@
|
||||
<p>Klepet, kjer sem sanjač, je enak in z istimi ljudmi odprt v koraku 2 (kjer sem bil Mediator) in
|
||||
tudi tukaj se vloge spreminjajo, torej je zdaj 8 mediatorjev in jaz, sanjač.
|
||||
Moja naloga je, da se odprem, da sprejmem vplačila od vsakega donatorja, se dopolnim in
|
||||
proslavim obilje.<br>
|
||||
Korak 3 se običajno aktivira 4 dni po koraku 2.<br><br>
|
||||
|
||||
proslavim obilje.
|
||||
</p>
|
||||
|
||||
</CTitleBanner>
|
||||
@@ -410,7 +407,6 @@
|
||||
Mi trabajo es asegurarme de que todos los donantes le den el regalo al Soñador.
|
||||
El sistema enviará automáticamente instrucciones para hacer el Regalo, el Mediador
|
||||
verificará y acompañará el proceso.
|
||||
El paso 2 se activa normalmente 4 días después del paso 1.
|
||||
|
||||
<div class="text-center">
|
||||
<q-img src="statics/images/passo_3.jpg" class="img"></q-img>
|
||||
@@ -570,7 +566,6 @@
|
||||
O sistema enviará automaticamente instruções para fazer o Presente, o Mediador (I) irá verificar
|
||||
e
|
||||
irá acompanhar o processo.<br>
|
||||
O passo 2 é normalmente activado 4 dias após o passo 1.
|
||||
|
||||
<div class="text-center">
|
||||
<q-img src="statics/images/passi_3.jpg" class="img"></q-img>
|
||||
@@ -581,7 +576,6 @@
|
||||
e mesmo aqui os papéis mudam, ou seja, agora há 8 mediadores e eu, o Sonhador.<br>
|
||||
Minha tarefa é abrir-me para receber os Presentes de cada Doador, completar-me e celebrar
|
||||
a Abundância.<br>
|
||||
O passo 3 é normalmente activado 4 dias após o passo 2.<br>
|
||||
</p>
|
||||
|
||||
</CTitleBanner>
|
||||
@@ -716,7 +710,6 @@
|
||||
Mon rôle consiste à m'assurer que tous les Donateurs fassent le Don au Rêveur. Le système
|
||||
enverra automatiquement les instructions pour faire le Don, le Médiateur (moi) vérifiera et
|
||||
accompagnera le processus.<br>
|
||||
L'étape 2 est normalement activée 4 jours après l'étape 1.
|
||||
|
||||
|
||||
<div class="text-center">
|
||||
@@ -728,7 +721,6 @@
|
||||
moi, le Rêveur.<br>
|
||||
Ma tâche est de m'ouvrir pour recevoir les Dons de chaque Donateur, de compléter et de célébrer
|
||||
l'Abondance.<br>
|
||||
L'étape 3 est normalement activée 4 jours après l'étape 2.<br><br>.
|
||||
</p>
|
||||
|
||||
</CTitleBanner>
|
||||
@@ -864,7 +856,6 @@
|
||||
My job is to make sure that all the Donors give the Gift to the Dreamer. The system will
|
||||
automatically send instructions to make the Gift, the Mediator (me) will verify and will
|
||||
accompany the process.<br>
|
||||
Step 2 is normally activated 4 days after step 1.
|
||||
|
||||
<div class="text-center">
|
||||
<q-img src="statics/images/passo_3.jpg" class="img"></q-img>
|
||||
@@ -874,7 +865,6 @@
|
||||
Mediator) and here the roles change, there are now 8 mediators and me, the Dreamer.
|
||||
My task is to open myself to receive the Gifts from each Donor, complete myself and celebrate
|
||||
the Abundance.<br>
|
||||
Step 3 is normally activated 4 days after step 2.
|
||||
<br><br>.
|
||||
</p>
|
||||
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
.title-nave {
|
||||
color: blue;
|
||||
}
|
||||
|
||||
.titlenave{
|
||||
width: 100px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cont_pos {
|
||||
border: solid 2px #4198ef;
|
||||
padding: 2px 8px;
|
||||
margin: 2px 4px;
|
||||
font-size: 1rem;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
.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: 1;
|
||||
}
|
||||
|
||||
.passo{
|
||||
font-weight: bold;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.posizione_imbarco {
|
||||
font-weight: bold;
|
||||
font-size: 1rem;
|
||||
color: blue;
|
||||
text-align: -webkit-center;
|
||||
}
|
||||
|
||||
.ins_invitante{
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.q-tab-panel {
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
@@ -21,19 +21,43 @@ import { CMyRequirement } from '../CMyRequirement'
|
||||
import { CRequisiti } from '../CRequisiti'
|
||||
import { CCardState } from '../CCardState'
|
||||
import { CMyNave } from '../CMyNave'
|
||||
import { validations } from './CMyDashboard-validate'
|
||||
import { validationMixin } from 'vuelidate'
|
||||
|
||||
@Component({
|
||||
components: { CProfile, CTitleBanner, CMyFieldDb, CCopyBtn, CUserBadge, CLegenda, CRequisito, CMyRequirement, CRequisiti, CCardState, CMyNave }
|
||||
mixins: [validationMixin],
|
||||
validations,
|
||||
components: {
|
||||
CProfile,
|
||||
CTitleBanner,
|
||||
CMyFieldDb,
|
||||
CCopyBtn,
|
||||
CUserBadge,
|
||||
CLegenda,
|
||||
CRequisito,
|
||||
CMyRequirement,
|
||||
CRequisiti,
|
||||
CCardState,
|
||||
CMyNave
|
||||
},
|
||||
})
|
||||
|
||||
export default class CMyDashboard extends MixinUsers {
|
||||
public $v
|
||||
public $q
|
||||
public myusername: string = ''
|
||||
public tab: string = 'requisiti'
|
||||
public tabcosa: string = ''
|
||||
public showuserinfo: boolean = false
|
||||
public shownuovoviaggio: boolean = false
|
||||
public notifBot: boolean = true
|
||||
public loading: boolean = false
|
||||
public seluser: IUserFields = null
|
||||
public aportador_solidario: string = ''
|
||||
public invitante_username: string = ''
|
||||
public showregalainv: boolean = false
|
||||
public id_listaingr: number = -1
|
||||
public ind_order_ingr: number = -1
|
||||
public dashboard: IDashboard = {
|
||||
myself: DefaultUser,
|
||||
aportador: DefaultUser,
|
||||
@@ -41,7 +65,11 @@ export default class CMyDashboard extends MixinUsers {
|
||||
downline: [],
|
||||
downnotreg: [],
|
||||
downbyuser: [],
|
||||
arrposizioni: []
|
||||
arrimbarchi: [],
|
||||
arrposizioni: [],
|
||||
navi_partenza: [],
|
||||
lastnave: {},
|
||||
arrusers: [],
|
||||
}
|
||||
|
||||
@Prop({ required: true }) public username
|
||||
@@ -50,6 +78,9 @@ export default class CMyDashboard extends MixinUsers {
|
||||
public changedash() {
|
||||
console.log('changedash')
|
||||
this.dashboard = UserStore.state.my.dashboard
|
||||
if (!!this.dashboard)
|
||||
this.invitante_username = this.dashboard.myself.aportador_solidario
|
||||
|
||||
}
|
||||
|
||||
get mythis() {
|
||||
@@ -57,25 +88,51 @@ export default class CMyDashboard extends MixinUsers {
|
||||
}
|
||||
|
||||
public created() {
|
||||
if (!!tools.getCookie(tools.TABBED_DASHBOARD)) {
|
||||
this.tab = tools.getCookie(tools.TABBED_DASHBOARD)
|
||||
}
|
||||
this.update_username()
|
||||
}
|
||||
|
||||
public changetab(val) {
|
||||
tools.setCookie(tools.TABBED_DASHBOARD, val)
|
||||
console.log('setcook', val)
|
||||
}
|
||||
|
||||
@Watch('this.username')
|
||||
public changeusername() {
|
||||
this.update_username()
|
||||
|
||||
}
|
||||
|
||||
public aggiorna() {
|
||||
this.dashboard = null
|
||||
this.update_username()
|
||||
this.showuserinfo = false
|
||||
}
|
||||
|
||||
public async update_username() {
|
||||
// console.log('update_username')
|
||||
console.log('update_username')
|
||||
this.loading = true
|
||||
if (this.username === '')
|
||||
this.myusername = this.getMyUsername()
|
||||
else
|
||||
this.myusername = this.username
|
||||
|
||||
this.loading = true
|
||||
|
||||
await UserStore.actions.getDashboard({ username: this.myusername }).then((ris) => {
|
||||
this.dashboard = ris
|
||||
|
||||
if (!!this.dashboard)
|
||||
this.invitante_username = this.dashboard.myself.aportador_solidario
|
||||
|
||||
console.log('this.invitante_username', this.invitante_username)
|
||||
this.loading = false
|
||||
})
|
||||
|
||||
this.showuserinfo = false
|
||||
this.loading = false
|
||||
}
|
||||
|
||||
get getRefLink() {
|
||||
@@ -89,23 +146,238 @@ export default class CMyDashboard extends MixinUsers {
|
||||
return false
|
||||
}
|
||||
|
||||
public selectclick(user) {
|
||||
public selectclick(user, showregalainv, ind_order_ingr, id_listaingr) {
|
||||
this.showuserinfo = true
|
||||
this.seluser = user
|
||||
this.showregalainv = showregalainv
|
||||
this.ind_order_ingr = ind_order_ingr
|
||||
this.id_listaingr = id_listaingr
|
||||
}
|
||||
|
||||
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)
|
||||
if (!!this.dashboard)
|
||||
return this.dashboard.myself.qualified && (this.dashboard.myself.numinvitatiattivi >= 2)
|
||||
return false
|
||||
}
|
||||
|
||||
public HasNave() {
|
||||
return this.dashboard.arrposizioni.length > 0
|
||||
}
|
||||
|
||||
public getnavePartenzaByRigaCol(riga, col) {
|
||||
for (const mynave of this.dashboard.navi_partenza) {
|
||||
if (!!mynave) {
|
||||
if ((mynave.riga === riga) && (mynave.col === col)) {
|
||||
return mynave
|
||||
}
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
public datanave(mianave) {
|
||||
// const mynavepart = this.getnavePartenzaByRigaCol(tools.getRiganave(mianave.riga), tools.getColnave(mianave.col))
|
||||
if (!!mianave.nave_partenza) {
|
||||
if (!!mianave.nave_partenza.date_start)
|
||||
return tools.getstrshortDate(mianave.nave_partenza.date_start)
|
||||
}
|
||||
return ' --/-- '
|
||||
}
|
||||
|
||||
public geticon(mianave) {
|
||||
if (!mianave)
|
||||
return ''
|
||||
|
||||
if (mianave.made_gift) {
|
||||
return 'fas fa-gift'
|
||||
}
|
||||
}
|
||||
|
||||
public colordono(mianave) {
|
||||
if (mianave.made_gift) {
|
||||
return 'green'
|
||||
} else {
|
||||
return 'grey'
|
||||
}
|
||||
}
|
||||
|
||||
public getposizioneattuale(mianave, totali) {
|
||||
const mynavedest = tools.getfirstnaveSognatore(mianave.riga, mianave.col)
|
||||
const ris = tools.getnumnavi_finoa(mianave, mynavedest, this.dashboard.lastnave)
|
||||
if (totali)
|
||||
return mianave.riga + '.' + mianave.col + ' ' + ris.contaattuale + '/' + ris.totale
|
||||
else
|
||||
return ris.perc
|
||||
}
|
||||
|
||||
public async NuovoImbarco(username, invitante_username) {
|
||||
|
||||
await tools.askConfirm(this.$q, translate('steps.nuovo_imbarco'), translate('dialog.continue'), translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.AGGIUNGI_NUOVO_IMBARCO, 0, {
|
||||
param1: { username, invitante_username }
|
||||
})
|
||||
this.shownuovoviaggio = false
|
||||
}
|
||||
|
||||
public addNuovoImbarco() {
|
||||
this.NuovoImbarco(this.dashboard.myself.username, this.invitante_username)
|
||||
}
|
||||
|
||||
public async cancellaImbarco(imbarco) {
|
||||
await tools.askConfirm(this.$q, translate('dashboard.attenzione'), translate('steps.vuoi_cancellare_imbarco'), translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.CANCELLA_IMBARCO, 0, {
|
||||
param1: { ind_order: imbarco.ind_order, username: imbarco.username },
|
||||
param2: { num_tess: imbarco.num_tess }
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
public getnuminvitatistr(index, myuser) {
|
||||
let inv = myuser.numinvitati
|
||||
let invattivi = myuser.numinvitatiattivi
|
||||
|
||||
const step = (index - 1) * 2
|
||||
|
||||
inv -= step
|
||||
invattivi -= step
|
||||
if (inv < 0)
|
||||
inv = 0
|
||||
if (invattivi < 0)
|
||||
invattivi = 0
|
||||
if (inv > 2)
|
||||
inv = 2
|
||||
if (invattivi > 2)
|
||||
invattivi = 2
|
||||
|
||||
return invattivi + '/' + inv
|
||||
}
|
||||
|
||||
public getinvit(index, myuser, posiz) {
|
||||
let inv = myuser.numinvitati
|
||||
let invattivi = myuser.numinvitatiattivi
|
||||
|
||||
const step = (posiz.numNaviEntrato + index) * 2
|
||||
|
||||
inv -= step
|
||||
// console.log('inv', inv, 'step = ', step)
|
||||
invattivi -= step
|
||||
if (inv < 0)
|
||||
inv = 0
|
||||
if (invattivi < 0)
|
||||
invattivi = 0
|
||||
if (inv > 2)
|
||||
inv = 2
|
||||
if (invattivi > 2)
|
||||
invattivi = 2
|
||||
|
||||
return { invattivi, inv }
|
||||
}
|
||||
public getnuminv(index, myuser, posiz) {
|
||||
const ris = this.getinvit(index, myuser, posiz)
|
||||
|
||||
return ris.inv
|
||||
}
|
||||
public getnuminvattivi(index, myuser, posiz) {
|
||||
const ris = this.getinvit(index, myuser, posiz)
|
||||
|
||||
return ris.invattivi
|
||||
}
|
||||
public getnuminvperc(index, myuser, posiz) {
|
||||
const ris = this.getinvit(index, myuser, posiz)
|
||||
|
||||
return ris.invattivi / 2 * 100
|
||||
}
|
||||
public getcolorinvitati(index, myuser, posiz) {
|
||||
|
||||
const ris = this.getinvit(index, myuser, posiz)
|
||||
if (ris.invattivi === 1)
|
||||
return 'blue'
|
||||
if (ris.invattivi === 2)
|
||||
return 'green'
|
||||
if (ris.inv === 1)
|
||||
return 'orange'
|
||||
}
|
||||
|
||||
public getnumtessstr(num_tess, index) {
|
||||
|
||||
let str = index + 1 + '°'
|
||||
|
||||
if (num_tess % 2 === 0) {
|
||||
str += ' (Gratis)'
|
||||
}
|
||||
return str
|
||||
}
|
||||
|
||||
public errorMsg(cosa: string, item: any) {
|
||||
try {
|
||||
if (!item.$error) {
|
||||
return ''
|
||||
}
|
||||
|
||||
if (item.required !== undefined) {
|
||||
if (!item.required) {
|
||||
return this.$t('reg.err.required')
|
||||
}
|
||||
|
||||
} else if (cosa === 'invitante_username') {
|
||||
// console.log(item);
|
||||
if (!item.aportadorexist) {
|
||||
// console.log('!item.aportadorexist !')
|
||||
return this.$t('reg.err.invitante_username_not_exist')
|
||||
}
|
||||
}
|
||||
|
||||
return ''
|
||||
} catch (error) {
|
||||
// console.log("ERR : " + error);
|
||||
}
|
||||
}
|
||||
|
||||
get allowSubmit() {
|
||||
let error = this.$v.$error || this.$v.$invalid
|
||||
|
||||
error = error || (this.invitante_username === this.dashboard.myself.username)
|
||||
|
||||
return !error
|
||||
|
||||
}
|
||||
|
||||
public imbarchipresenti() {
|
||||
let presente = false;
|
||||
for (const rec of this.dashboard.arrimbarchi) {
|
||||
if (!rec.added)
|
||||
presente = true
|
||||
}
|
||||
return presente
|
||||
}
|
||||
|
||||
public getcolorbynave(mianave){
|
||||
if (!!mianave.nave_partenza)
|
||||
return mianave.nave_partenza.provvisoria ? 'gray' : 'green'
|
||||
else
|
||||
return 'green'
|
||||
}
|
||||
|
||||
public change_mynote(mianave) {
|
||||
|
||||
const mydata = {
|
||||
note: mianave.note
|
||||
}
|
||||
tools.saveFieldToServer(this, 'navi', mianave._id, mydata)
|
||||
}
|
||||
|
||||
public getNaveSognatoreStr(mianave, index) {
|
||||
const mynavedest = tools.getfirstnaveSognatore(mianave.riga, mianave.col)
|
||||
return mynavedest.riga + '.' + parseInt(mynavedest.col, 10) + index
|
||||
}
|
||||
|
||||
public getNaveMediatoreStr(mianave) {
|
||||
return mianave.riga + '.' + mianave.col
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,130 +1,410 @@
|
||||
<template>
|
||||
<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>
|
||||
<q-tabs
|
||||
v-model="tab"
|
||||
dense
|
||||
class="bg-blue text-white shadow-2"
|
||||
indicator-color="white"
|
||||
align="center"
|
||||
narrow-indicator
|
||||
@input="changetab"
|
||||
>
|
||||
<q-tab name="requisiti" icon="fas fa-check" :label="$t('reg.requirement')"></q-tab>
|
||||
<q-tab name="invitati" icon="fas fa-users" :label="$t('dashboard.downline')"></q-tab>
|
||||
<q-tab name="navi" icon="fas fa-ship" :label="$t('otherpages.admin.navi')"></q-tab>
|
||||
|
||||
</q-tabs>
|
||||
|
||||
<q-tab-panels v-model="tab" animated>
|
||||
<q-tab-panel name="requisiti">
|
||||
<div v-if="!!dashboard.myself.name">
|
||||
|
||||
|
||||
<CMyRequirement :myseluser="dashboard.myself" :mydashboard="dashboard" @aggiorna="aggiorna">
|
||||
|
||||
</CMyRequirement>
|
||||
</div>
|
||||
|
||||
<CTitleBanner class="shadow-2" :title="$t('reg.aportador_solidario')" bgcolor="bg-accent"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<CUserBadge v-if="!!dashboard.aportador" :user="dashboard.aportador" :index="0"
|
||||
:showregalainv="false"
|
||||
:numpeople="dashboard.numpeople_aportador"
|
||||
mycolor="accent" @myclick="selectclick">
|
||||
|
||||
</CUserBadge>
|
||||
<div v-else class="q-pa-sm text-center">
|
||||
{{ $t('dashboard.nessun_invitante')}}
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
|
||||
<CTitleBanner class="shadow-2" :title="$t('reg.you')" bgcolor="bg-blue"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<CUserBadge v-if="!!dashboard.myself" :user="dashboard.myself" :index="0"
|
||||
:showregalainv="false"
|
||||
:numpeople="dashboard.downline.length"
|
||||
@myclick="selectclick"
|
||||
mycolor="blue">
|
||||
|
||||
</CUserBadge>
|
||||
</CTitleBanner>
|
||||
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="invitati">
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="$t('dashboard.downline')" bgcolor="bg-positive"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<q-list bordered v-if="!!dashboard.downline && dashboard.downline.length > 0" class="rounded-borders">
|
||||
<div v-for="(user, index) in dashboard.downline" :key="index">
|
||||
<CUserBadge :yourinvite="true" :user="user" mycolor="positive" :index="index"
|
||||
:showregalainv="false"
|
||||
:numpeople="dashboard.downbyuser[user.username].length"
|
||||
@myclick="selectclick"
|
||||
>
|
||||
|
||||
</CUserBadge>
|
||||
<div style="margin-left:10px;" v-for="(user2, index2) in dashboard.downbyuser[user.username]"
|
||||
:key="index2">
|
||||
<CUserBadge :yourinvite="false" :user="user2" mycolor="orange" :index="index2"
|
||||
:showregalainv="false"
|
||||
:numpeople="dashboard.downbyuser[user2.username].length"
|
||||
@myclick="selectclick"
|
||||
>
|
||||
|
||||
</CUserBadge>
|
||||
</div>
|
||||
</div>
|
||||
</q-list>
|
||||
<div v-else class="q-pa-sm text-center">
|
||||
{{ $t('dashboard.nessun_invitato')}}
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
|
||||
<div class="row justify-center q-ma-sm">
|
||||
<q-btn push
|
||||
rounded
|
||||
color="primary"
|
||||
size="md"
|
||||
:label="$t('pages.invita')"
|
||||
icon="fas fa-user-plus"
|
||||
to="/invite">
|
||||
</q-btn>
|
||||
</div>
|
||||
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="$t('reg.legenda')"
|
||||
bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
<p class="q-ml-sm">{{ $t('dashboard.legenda_title')}}</p>
|
||||
<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', {sitename:
|
||||
$t('ws.sitename')})}}
|
||||
</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>-->
|
||||
<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>
|
||||
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="navi">
|
||||
|
||||
<div v-if="dashboard.myself.qualified">
|
||||
<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="!!dashboard.myself.name">
|
||||
<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>
|
||||
|
||||
<div v-if="loading" class="text-center" style="height: 50px;">
|
||||
<q-spinner-gears size="50px" color="primary"/>
|
||||
</div>
|
||||
|
||||
<div class="row justify-center no-wrap">
|
||||
<div class="col-1 cont_pos_intest">Num</div>
|
||||
|
||||
<div class="col-3 cont_intestaz ">{{$t('dashboard.nave')}}</div>
|
||||
<div class="col-3 cont_intestaz " v-html="$t('dashboard.data_partenza')"></div>
|
||||
<div class="col-3 cont_intestaz_small" v-html="$t('dashboard.doni_inviati')"></div>
|
||||
<div class="col-2 cont_intestaz_small" v-html="$t('reg.note')"></div>
|
||||
<!--<div class="col-3 cont_intestaz " v-html="$t('dashboard.tragitto')"></div>-->
|
||||
<!--<div class="col-1 cont_intestaz ">Tot:</div>-->
|
||||
</div>
|
||||
|
||||
<div v-for="(mianave, index) in dashboard.arrposizioni" :key="index"
|
||||
class="q-pa-sm row items-start q-gutter-sm">
|
||||
<q-card class="my-card-shadow yes_shadow">
|
||||
<q-img
|
||||
src="statics/images/nave.jpg"
|
||||
style="width: 100%"
|
||||
native-context-menu>
|
||||
<div class="absolute-bottom text-subtitle1 text-center text-sobig">
|
||||
{{ getnumtessstr(mianave.num_tess, index) }} - {{$t('dashboard.nave') + ' ' +
|
||||
tools.getrigacolstr(mianave)}}
|
||||
</div>
|
||||
</q-img>
|
||||
<div class="row justify-sm-start items-center rounded-borders">
|
||||
|
||||
<div class="row items-center justify-center q-ma-xs" style="width: 100%">
|
||||
<q-chip class="glossy q-ma-md" :color="getcolorbynave(mianave)" text-color="white"
|
||||
icon="fas fa-ship">
|
||||
|
||||
{{ $t('dashboard.nave_in_partenza') + ' ' + datanave(mianave) }}
|
||||
</q-chip>
|
||||
</div>
|
||||
|
||||
<div class="row items-center justify-center q-ma-xs">
|
||||
<div class="row items-center justify-around q-ma-xs no-wrap" style="width: 100%; font-weight: bold; font-size: 1rem">
|
||||
<div>{{$t('dashboard.donatore')}}</div>
|
||||
<div>{{$t('dashboard.mediatore')}}</div>
|
||||
<div>{{$t('dashboard.sognatore')}}</div>
|
||||
</div>
|
||||
<div class="row items-center justify-around q-ma-xs no-wrap" style="width: 100%;">
|
||||
<q-chip class="glossy q-ma-sm" color="red" text-color="white"
|
||||
icon="fas fa-ship">
|
||||
{{ tools.getrigacolstr(mianave) }}
|
||||
</q-chip>
|
||||
<q-chip class="glossy q-ma-sm" color="green" text-color="white"
|
||||
icon="fas fa-ship">
|
||||
{{ getNaveMediatoreStr(mianave)}}
|
||||
</q-chip>
|
||||
<q-chip class="glossy q-ma-sm" color="purple" text-color="white"
|
||||
icon="fas fa-ship">
|
||||
{{ getNaveSognatoreStr(mianave, 0)}}
|
||||
</q-chip>
|
||||
<!--<span v-for="index of 8">{{ getNaveSognatoreStr(mianave, index)}} - </span>-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row items-center justify-center q-ma-xs" style="width: 100%;">
|
||||
<q-list>
|
||||
|
||||
<q-item clickable>
|
||||
<q-item-section avatar>
|
||||
<q-icon :color="colordono(mianave)" inverted size="sm" name="fas fa-gift"
|
||||
class="gift"></q-icon>
|
||||
</q-item-section>
|
||||
|
||||
<q-item-section>
|
||||
<q-item-label>
|
||||
<div v-if="mianave.made_gift">{{ $t('dashboard.ho_effettuato_il_dono') }}</div>
|
||||
</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row items-center justify-around q-ma-xs">
|
||||
<q-input v-model="mianave.note" :label="$t('reg.note')"
|
||||
debounce="1000"
|
||||
style="width: 100%;"
|
||||
@input="change_mynote(mianave)">
|
||||
|
||||
</q-input>
|
||||
</div>
|
||||
<div>
|
||||
<CMyNave :posizprop="mianave" :key="index"
|
||||
:navi_partenzaprop="dashboard.navi_partenza" :listanavi="false">
|
||||
|
||||
</CMyNave>
|
||||
</div>
|
||||
|
||||
<!--<q-card-actions>
|
||||
<q-btn flat>Action 1</q-btn>
|
||||
<q-btn flat>Action 2</q-btn>
|
||||
</q-card-actions>-->
|
||||
</q-card>
|
||||
<!--<div class="col-3">
|
||||
<div>
|
||||
<CCardState :isperc="true" size="50px" size_mob="40px" fontsize="0.75rem"
|
||||
:myperc="getposizioneattuale(mianave)"></CCardState>
|
||||
</div>
|
||||
</div>-->
|
||||
<!--<div class="col-1">
|
||||
<div>
|
||||
{{ getposizioneattuale(mianave, true) }}
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
</div>
|
||||
<CTitleBanner class=""
|
||||
v-if="imbarchipresenti()"
|
||||
:title="$t('pages.posizione_in_programmazione')"
|
||||
bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
mystyle="" myclass="myshad" canopen="true">
|
||||
<div class="row justify-center items-center ">
|
||||
<div class="col-2">
|
||||
{{ $t('dashboard.num_tessitura') }}
|
||||
</div>
|
||||
<div class="col-3 ">
|
||||
{{ $t('dashboard.posizione') }}
|
||||
</div>
|
||||
<div class="col-4 ">
|
||||
{{ $t('dashboard.invitante') }}
|
||||
</div>
|
||||
<div class="col-2 ">
|
||||
{{ $t('dashboard.downline') }}
|
||||
</div>
|
||||
<!--<div class="col-2">
|
||||
{{ $t('dashboard.dono_da_effettuare') }}
|
||||
</div>-->
|
||||
<div class="col-1">
|
||||
{{ $t('reg.elimina') }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div v-for="(mioimbarco, index) in dashboard.arrimbarchi" :key="index">
|
||||
<div v-if="!mioimbarco.added" class="row justify-center items-center ">
|
||||
<div class="col-2">
|
||||
<div class="posizione_imbarco">{{ index }}</div>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<div class="posizione_imbarco">{{ mioimbarco.posiz.posiz }} / {{
|
||||
mioimbarco.posiz.totposiz }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="posizione_imbarco">
|
||||
<CUserBadge :yourinvite="false" :showsteps="false" :showregalainv="true"
|
||||
:user="dashboard.arrusers[mioimbarco.invitante_username]" mycolor="orange"
|
||||
:ind_order_ingr="mioimbarco.ind_order"
|
||||
:id_listaingr="mioimbarco._id"
|
||||
:index="index"
|
||||
:numpeople="0"
|
||||
@myclick="selectclick">
|
||||
</CUserBadge>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<div class="posizione_imbarco">
|
||||
<CCardState :mytext="$t('pages.statusreg.people')"
|
||||
:myval="getnuminvattivi(index, dashboard.myself, mioimbarco.posiz)+'/'+getnuminv(index, dashboard.myself, mioimbarco.posiz)"
|
||||
:myperc="getnuminvperc(index, dashboard.myself, mioimbarco.posiz)" size="50px"
|
||||
size_mob="40px"
|
||||
fontsize="0.75rem" myclass="my-card-small-stat"
|
||||
:mycolor="getcolorinvitati(index, dashboard.myself, mioimbarco.posiz)"></CCardState>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!--<div class="col-2">
|
||||
<div class="posizione_imbarco">33 €</div>
|
||||
</div>-->
|
||||
<div class="col-1">
|
||||
<div class="posizione_imbarco">
|
||||
<q-btn flat round color="red" icon="fas fa-trash-alt" size="sm"
|
||||
@click="cancellaImbarco(mioimbarco)"></q-btn>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<q-btn class="q-ma-md" rounded size="md"
|
||||
icon="fas fa-info"
|
||||
color="primary" @click="shownuovoviaggio=true"
|
||||
:label="$t('steps.nuovo_imbarco')">
|
||||
|
||||
</q-btn>
|
||||
|
||||
<CRequisiti :statebool="true"
|
||||
:msgTrue="$t('steps.enter_prog_msg') + '<br><strong>' + $t('steps.enter_prog_msg_2') + '</strong>'"
|
||||
msgFalse="">
|
||||
</CRequisiti>
|
||||
|
||||
</CTitleBanner>
|
||||
|
||||
|
||||
<!--<div>
|
||||
<CMyNave v-for="(mianave, index) in dashboard.arrposizioni" :posizprop="mianave"
|
||||
:key="index"
|
||||
:navi_partenzaprop="dashboard.navi_partenza" :listanavi="false">
|
||||
|
||||
</CMyNave>
|
||||
</div>-->
|
||||
</div>
|
||||
|
||||
|
||||
</CTitleBanner>
|
||||
|
||||
</div>
|
||||
|
||||
</q-tab-panel>
|
||||
</q-tab-panels>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
||||
<div>
|
||||
<div v-if="!Completato9Req && !HasNave">
|
||||
<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')"
|
||||
<CRequisiti :statebool="Completato7Req"
|
||||
:msgTrue="$t('steps.enter_prog_requisiti_ok') + $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.arrposizioni" :posizprop="mianave" :key="index"
|
||||
:navi_partenzaprop="dashboard.navi_partenza" :listanavi="false">
|
||||
|
||||
</CMyNave>
|
||||
</CTitleBanner>
|
||||
|
||||
</div>
|
||||
|
||||
</CTitleBanner>
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('pages.dashboard')" bgcolor="bg-info" clcolor="text-white"
|
||||
mystyle=" " myclass="myshad">
|
||||
|
||||
<div v-if="!!dashboard.myself.name">
|
||||
<div v-if="dashboard.myself.deleted">
|
||||
<span style="color: red;"> <h2><strong>UTENTE CANCELLATO (Nascosto: true) !</strong></h2></span>
|
||||
</div>
|
||||
|
||||
<div v-if="dashboard.myself.sospeso">
|
||||
<span style="color: blue;"> <h2><strong>UTENTE SOSPESO !</strong></h2></span>
|
||||
</div>
|
||||
|
||||
<CMyRequirement :myseluser="dashboard.myself" :mydashboard="dashboard">
|
||||
|
||||
</CMyRequirement>
|
||||
</div>
|
||||
|
||||
<CTitleBanner class="shadow-2" :title="$t('reg.aportador_solidario')" bgcolor="bg-accent"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<CUserBadge v-if="!!dashboard.aportador" :user="dashboard.aportador" :index="0"
|
||||
:numpeople="dashboard.numpeople_aportador"
|
||||
mycolor="accent" @myclick="selectclick">
|
||||
|
||||
</CUserBadge>
|
||||
<div v-else class="q-pa-sm text-center">
|
||||
{{ $t('dashboard.nessun_invitante')}}
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
|
||||
<CTitleBanner class="shadow-2" :title="$t('reg.you')" bgcolor="bg-blue"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<CUserBadge v-if="!!dashboard.myself" :user="dashboard.myself" :index="0"
|
||||
:numpeople="dashboard.downline.length"
|
||||
@myclick="selectclick"
|
||||
mycolor="blue">
|
||||
|
||||
</CUserBadge>
|
||||
</CTitleBanner>
|
||||
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="$t('dashboard.downline')" bgcolor="bg-positive"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<q-list bordered v-if="!!dashboard.downline && dashboard.downline.length > 0" class="rounded-borders">
|
||||
<div v-for="(user, index) in dashboard.downline" :key="index">
|
||||
<CUserBadge :yourinvite="true" :user="user" mycolor="positive" :index="index"
|
||||
:numpeople="dashboard.downbyuser[user.username].length"
|
||||
@myclick="selectclick"
|
||||
>
|
||||
|
||||
</CUserBadge>
|
||||
<div style="margin-left:10px;" v-for="(user2, index2) in dashboard.downbyuser[user.username]" :key="index2">
|
||||
<CUserBadge :yourinvite="false" :user="user2" mycolor="orange" :index="index2"
|
||||
:numpeople="dashboard.downbyuser[user2.username].length"
|
||||
@myclick="selectclick"
|
||||
>
|
||||
|
||||
</CUserBadge>
|
||||
</div>
|
||||
</div>
|
||||
</q-list>
|
||||
<div v-else class="q-pa-sm text-center">
|
||||
{{ $t('dashboard.nessun_invitato')}}
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
|
||||
<div class="row justify-center q-ma-sm">
|
||||
<q-btn push
|
||||
rounded
|
||||
color="primary"
|
||||
size="md"
|
||||
:label="$t('pages.invita')"
|
||||
icon="fas fa-user-plus"
|
||||
to="/invite">
|
||||
</q-btn>
|
||||
<div v-if="loading" class="text-center" style="height: 50px;">
|
||||
<q-spinner-gears size="50px" color="primary"/>
|
||||
</div>
|
||||
|
||||
<!--<CTitleBanner v-if="invitatinotreg" class="shadow-2 rounded-borders" :title="$t('dashboard.downnotreg')"
|
||||
bgcolor="bg-grey"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<q-list bordered v-if="!!dashboard.downnotreg" class="rounded-borders">
|
||||
<div v-for="(user, index) in dashboard.downnotreg" :key="index">
|
||||
<CUserBadge :yourinvite="true" :user="user" mycolor="grey" :index="index" :numpeople="user.num_invitati"
|
||||
@myclick="selectclick">
|
||||
</div>
|
||||
|
||||
</CUserBadge>
|
||||
</div>
|
||||
</q-list>
|
||||
</CTitleBanner>-->
|
||||
|
||||
</CTitleBanner>
|
||||
|
||||
<!--
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('text.dashboard.madegift')" bgcolor="bg-info" clcolor="text-white"
|
||||
@@ -148,42 +428,6 @@
|
||||
|
||||
</CCopyBtn>
|
||||
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="$t('reg.legenda')"
|
||||
bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
<p class="q-ml-sm">{{ $t('dashboard.legenda_title')}}</p>
|
||||
<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', {sitename: $t('ws.sitename')})}}</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>-->
|
||||
<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>
|
||||
|
||||
<q-dialog v-model="showuserinfo">
|
||||
@@ -195,12 +439,74 @@
|
||||
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
||||
</q-toolbar>
|
||||
<q-card-section class="inset-shadow" style="padding: 4px !important;">
|
||||
<CMyRequirement :myseluser="seluser" :mydashboard="dashboard" :notitle="false">
|
||||
<CMyRequirement :id_listaingr="id_listaingr" :myseluser="seluser" :showregalainv="showregalainv"
|
||||
:mydashboard="dashboard" :notitle="false" @aggiorna="aggiorna"
|
||||
:ind_order_ingr="ind_order_ingr">
|
||||
|
||||
</CMyRequirement>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
<q-dialog v-model="shownuovoviaggio">
|
||||
<q-card v-if="shownuovoviaggio" :style="`min-width: `+ tools.myheight_dialog() + `px;` ">
|
||||
<q-toolbar class="bg-primary text-white" style="min-height: 30px;">
|
||||
<q-toolbar-title>
|
||||
{{ $t('steps.nuovo_imbarco') }}
|
||||
</q-toolbar-title>
|
||||
<q-btn flat round color="white" icon="close" v-close-popup @click="shownuovoviaggio=false"></q-btn>
|
||||
</q-toolbar>
|
||||
<q-card-section class="inset-shadow" style="padding: 4px !important;">
|
||||
|
||||
<CTitleBanner class="q-pa-xs text-center" :title="$t('steps.nuovo_imbarco')" bgcolor="bg-blue"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad">
|
||||
|
||||
<div v-html="$t('steps.vuoi_entrare_nuova_nave')">
|
||||
|
||||
</div>
|
||||
<br>
|
||||
<div v-html="$t('steps.inserisci_invitante')" class="ins_invitante">
|
||||
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
<div class="column q-gutter-sm justify-center text-center">
|
||||
<q-input
|
||||
bg-color="lightblue"
|
||||
v-model="invitante_username"
|
||||
rounded outlined
|
||||
@blur="$v.invitante_username.$touch"
|
||||
:error="$v.invitante_username.$error"
|
||||
@keydown.space="(event) => event.preventDefault()"
|
||||
:error-message="errorMsg('invitante_username', $v.invitante_username)"
|
||||
maxlength="20"
|
||||
debounce="1000"
|
||||
|
||||
:label="$t('reg.username_regala_invitato')">
|
||||
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="person"/>
|
||||
</template>
|
||||
|
||||
</q-input>
|
||||
|
||||
<q-toggle v-model="notifBot" :label="$t('dashboard.sendnotification')"/>
|
||||
|
||||
<q-btn class="q-ma-md" rounded size="md"
|
||||
icon="fas fa-ship"
|
||||
:disabled='!allowSubmit'
|
||||
color="positive" @click="addNuovoImbarco"
|
||||
:label="$t('steps.nuovo_imbarco')">
|
||||
</q-btn>
|
||||
</div>
|
||||
|
||||
|
||||
</CTitleBanner>
|
||||
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -74,10 +74,10 @@
|
||||
|
||||
.passo{
|
||||
font-weight: bold;
|
||||
width: 100px;
|
||||
width: 110px;
|
||||
}
|
||||
.passoint{
|
||||
width: 90px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.gift{
|
||||
|
||||
@@ -11,8 +11,12 @@ import { lists } from '../../store/Modules/lists'
|
||||
import translate from '../../globalroutines/util'
|
||||
import { CMyChipList } from '../CMyChipList'
|
||||
import { CVideo } from '../CVideo'
|
||||
import { validations } from './CMyNave-validate'
|
||||
import { validationMixin } from 'vuelidate'
|
||||
|
||||
@Component({
|
||||
mixins: [validationMixin],
|
||||
validations,
|
||||
components: { CTitleBanner, CMyChipList, CVideo }
|
||||
})
|
||||
|
||||
@@ -23,6 +27,7 @@ export default class CMyNave extends MixinNave {
|
||||
@Prop({ required: true }) public listanavi: boolean
|
||||
public navi_partenza: any[]
|
||||
public $t
|
||||
public $v
|
||||
public link_chat: string = ''
|
||||
public cosa: string = 'tragitto'
|
||||
public cosa2: string = 'donatore'
|
||||
@@ -46,6 +51,7 @@ export default class CMyNave extends MixinNave {
|
||||
public showmsguser: boolean = false
|
||||
public seluser = null
|
||||
public msg_tosend_user: string = ''
|
||||
public username_sostituire: string = ''
|
||||
public MyPagination: {
|
||||
sortBy: string,
|
||||
descending: boolean,
|
||||
@@ -63,11 +69,10 @@ export default class CMyNave extends MixinNave {
|
||||
sortable: true
|
||||
},*/
|
||||
{ name: 'name', align: 'center', label: translate('reg.name'), field: 'name', sortable: true },
|
||||
{ name: 'surname', align: 'center', label: translate('reg.surname'), field: 'surname', sortable: true },
|
||||
{ name: 'posizione', align: 'center', label: 'Posizione', field: 'riga', sortable: true },
|
||||
// { name: 'surname', align: 'center', label: translate('reg.surname'), field: 'surname', sortable: true },
|
||||
{ name: 'date_made_gift', align: 'center', label: 'Inviato', field: 'date_made_gift', sortable: true },
|
||||
{ name: 'tel', align: 'center', label: 'Tel', field: 'tel', sortable: true },
|
||||
{ name: 'made_gift', align: 'center', label: 'Confermato', field: 'made_gift', sortable: true },
|
||||
// { name: 'tel', align: 'center', label: 'Tel', field: 'tel', sortable: true },
|
||||
{ name: 'made_gift', align: 'center', label: 'Conferm.', field: 'made_gift', sortable: true },
|
||||
]
|
||||
|
||||
public tragitto = [
|
||||
@@ -318,10 +323,12 @@ export default class CMyNave extends MixinNave {
|
||||
donatore: rec.name + ' ' + rec.surname + ' (' + this.$t('dashboard.posizione') + ' ' + rec.riga + '.' + rec.col + ')'
|
||||
})
|
||||
|
||||
tools.askConfirm(this.$q, msgtitle, msginvia + ' ' + '?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.DONO_RICEVUTO, 0, {
|
||||
tools.askConfirm(this.$q, msgtitle, msginvia + ' ' + '? (Pos ' + rec.riga + '.' + rec.col + ')', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.DONO_RICEVUTO, 0, {
|
||||
param1: {
|
||||
_id: rec._id,
|
||||
made_gift: true
|
||||
made_gift: true,
|
||||
riga: rec.riga,
|
||||
col: rec.col,
|
||||
},
|
||||
param2: rec.username,
|
||||
param3: mymsg
|
||||
@@ -709,7 +716,7 @@ export default class CMyNave extends MixinNave {
|
||||
let col = 0
|
||||
let riga1don = 1
|
||||
let col1don = 1
|
||||
let ind_order = -1;
|
||||
let ind_order = -1
|
||||
if (this.listanavi) {
|
||||
riga = this.nave.riga
|
||||
col = this.nave.col
|
||||
@@ -739,6 +746,12 @@ export default class CMyNave extends MixinNave {
|
||||
this.loading = false
|
||||
}
|
||||
|
||||
public async update_nave() {
|
||||
this.showmsguser = false
|
||||
this.apri()
|
||||
this.aggiorna()
|
||||
}
|
||||
|
||||
public getstrinpartenza() {
|
||||
if (this.GiornoDelDonoArrivato) {
|
||||
return this.$t('dashboard.nave_partita')
|
||||
@@ -756,7 +769,8 @@ export default class CMyNave extends MixinNave {
|
||||
}
|
||||
|
||||
if (!!myrec)
|
||||
return tools.getstrDate(myrec.donatore.navepersistente.date_start)
|
||||
if (!!myrec.donatore.navepersistente)
|
||||
return tools.getstrDate(myrec.donatore.navepersistente.date_start)
|
||||
|
||||
return ''
|
||||
}
|
||||
@@ -837,4 +851,47 @@ export default class CMyNave extends MixinNave {
|
||||
this.InviaMsgAUserConfirm(msgobj, naveuser)
|
||||
}
|
||||
|
||||
get isAdmin() {
|
||||
return UserStore.state.isAdmin
|
||||
}
|
||||
|
||||
get isManager() {
|
||||
return UserStore.state.isManager
|
||||
}
|
||||
|
||||
get isTutor() {
|
||||
return UserStore.state.isTutor
|
||||
}
|
||||
|
||||
get isTratuttrici() {
|
||||
return UserStore.state.isTratuttrici
|
||||
}
|
||||
|
||||
get allowSubmit() {
|
||||
let error = this.$v.$error || this.$v.$invalid
|
||||
|
||||
error = error || (this.username_sostituire === this.seluser.username_sostituire)
|
||||
|
||||
return !error
|
||||
|
||||
}
|
||||
|
||||
get getnotifBotTxt() {
|
||||
return this.seluser.name + ' ' + this.seluser.surname + ' è stato sostituito con ' + this.username_sostituire
|
||||
}
|
||||
|
||||
public async SostituisciUtente(user, usernamesost, notifBottxt) {
|
||||
usernamesost = usernamesost.trim()
|
||||
|
||||
await tools.askConfirm(this.$q, 'Sostituisci', notifBottxt + ' ?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.SOSTITUISCI, 0, {
|
||||
param1: user,
|
||||
param2: { username: usernamesost, riga: user.riga, col: user.col },
|
||||
param3: notifBottxt
|
||||
})
|
||||
}
|
||||
|
||||
public getnavestr(row) {
|
||||
return tools.getRiganave(row.riga) + '.' + tools.getColnave(row.col)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -26,6 +26,7 @@ export default class CMyPopupEdit extends Vue {
|
||||
@Prop({ required: false, default: false }) public showall
|
||||
@Prop({ required: false, default: 'row' }) public view
|
||||
@Prop({ required: false, default: '5' }) public minuteinterval
|
||||
@Prop({ required: false, default: false }) public disable
|
||||
|
||||
public myvalue = ''
|
||||
public myvalueprec = 'false'
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
:opticon="db_fieldsTable.getIconByTable(col.jointable)"></CMyChipList>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.boolean">
|
||||
<q-toggle dark color="green" v-model="myvalue" :label="col.title"
|
||||
<q-toggle dark color="green" v-model="myvalue" :label="col.title" :disable="disable && col.name !== 'profile.saw_zoom_presentation'"
|
||||
@input="Savedb"></q-toggle>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.html">
|
||||
|
||||
@@ -28,8 +28,11 @@ import { shared_consts } from '../../common/shared_vuejs'
|
||||
|
||||
export default class CMyRequirement extends MixinUsers {
|
||||
@Prop({ required: true }) public myseluser
|
||||
@Prop({ required: false, default: -1 }) public ind_order_ingr: number
|
||||
@Prop({ required: false, default: -1 }) public id_listaingr: number
|
||||
@Prop({ required: true }) public mydashboard
|
||||
@Prop({ required: false, default: false }) public notitle
|
||||
@Prop({ required: false, default: false }) public showregalainv
|
||||
public $t
|
||||
public $v
|
||||
public $q
|
||||
@@ -160,8 +163,8 @@ export default class CMyRequirement extends MixinUsers {
|
||||
}
|
||||
}
|
||||
if (!!user.profile)
|
||||
if (!!user.profile.paymenttypes) {
|
||||
const ris = (user.profile.paymenttypes.length >= 1) && ispaypal
|
||||
if (!!user.profile.email_paypal) {
|
||||
const ris = (user.profile.email_paypal !== '') && ispaypal
|
||||
return ris
|
||||
}
|
||||
|
||||
@@ -212,12 +215,20 @@ export default class CMyRequirement extends MixinUsers {
|
||||
|
||||
}
|
||||
|
||||
public async update_username() {
|
||||
|
||||
await UserStore.actions.getDashboard({ username: this.dashboard.myself.username }).then((ris) => {
|
||||
this.dashboard = ris
|
||||
this.$emit('aggiorna')
|
||||
})
|
||||
}
|
||||
|
||||
public isextralist(user) {
|
||||
return !!user.cell_complete
|
||||
}
|
||||
|
||||
public ismyinvited_notreg(user) {
|
||||
return this.dashboard.downnotreg.find((rec) => rec.ind_order === user.ind_order)
|
||||
// return this.dashboard.downnotreg.find((rec) => rec.ind_order === user.ind_order)
|
||||
}
|
||||
|
||||
public ismydownline(user) {
|
||||
@@ -248,7 +259,20 @@ export default class CMyRequirement extends MixinUsers {
|
||||
|
||||
await tools.askConfirm(this.$q, translate('reg.regala_invitato'), translate('reg.regala_invitato') + ' ' + user.name + ' ' + user.surname + ' a ' + aportador_solidario + ' ?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.REGALA_INVITATO, 0, {
|
||||
param1: user,
|
||||
param2: aportador_solidario,
|
||||
param2: { aportador_solidario },
|
||||
param3: notiftxt
|
||||
})
|
||||
}
|
||||
|
||||
public async RegalaInvitante(user, invitante_username, ind_order_ingr, id_listaingr, notifBottxt) {
|
||||
let notiftxt = ''
|
||||
invitante_username = invitante_username.trim()
|
||||
if (this.notifBot)
|
||||
notiftxt = notifBottxt
|
||||
|
||||
await tools.askConfirm(this.$q, translate('reg.regala_invitante'), translate('reg.regala_invitante') + ' ' + user.name + ' ' + user.surname + ' a ' + invitante_username + ' ?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.REGALA_INVITANTE, 0, {
|
||||
param1: id_listaingr,
|
||||
param2: { invitante_username, ind_order_ingr },
|
||||
param3: notiftxt
|
||||
})
|
||||
}
|
||||
@@ -294,6 +318,13 @@ export default class CMyRequirement extends MixinUsers {
|
||||
})
|
||||
}
|
||||
|
||||
get getnotifBotTxtInvitante() {
|
||||
return this.$t('dashboard.ricevuto_dono', {
|
||||
invitato: this.seluser.name + ' ' + this.seluser.surname,
|
||||
mittente: this.dashboard.myself.username
|
||||
})
|
||||
}
|
||||
|
||||
get myclassreq() {
|
||||
let mycl = 'text-center'
|
||||
mycl += (this.ismydownline) ? ' ' + 'background-color: green;' : ''
|
||||
@@ -308,4 +339,16 @@ export default class CMyRequirement extends MixinUsers {
|
||||
return ''
|
||||
}
|
||||
|
||||
public isregalainvitante() {
|
||||
return this.ind_order_ingr >= 0
|
||||
}
|
||||
|
||||
public gettitleregala() {
|
||||
if (this.isregalainvitante())
|
||||
return this.$t('reg.regala_invitante')
|
||||
else
|
||||
return this.$t('reg.regala_invitato')
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -20,8 +20,31 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div v-if="ismydownline(seluser)">
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="$t('reg.regala_invitato')"
|
||||
<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, {botname: $t('ws.botname')}) + req.textadd(seluser)"
|
||||
:icon_error="geticonerror(false)"
|
||||
:no_check="true"
|
||||
:isok="req.isok(seluser)"
|
||||
:info="req.info"></CRequisito>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
|
||||
<div v-if="ismydownline(seluser) || showregalainv">
|
||||
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="gettitleregala()"
|
||||
bgcolor="bg-positive"
|
||||
clcolor="text-white"
|
||||
:visible="false"
|
||||
@@ -49,7 +72,12 @@
|
||||
|
||||
<q-toggle v-model="notifBot" :label="$t('dashboard.sendnotification')"/>
|
||||
|
||||
<q-btn class="q-ma-sm" rounded color="positive" text-color="white" icon="fas fa-gift"
|
||||
<q-btn v-if="isregalainvitante()" class="q-ma-sm" rounded color="positive" text-color="white" icon="fas fa-gift"
|
||||
:label="$t('reg.regala_invitante')"
|
||||
:disabled='!allowSubmit'
|
||||
@click="RegalaInvitante(seluser, aportador_solidario, ind_order_ingr, id_listaingr, getnotifBotTxtInvitante)"></q-btn>
|
||||
|
||||
<q-btn v-else class="q-ma-sm" rounded color="positive" text-color="white" icon="fas fa-gift"
|
||||
:label="$t('reg.regala_invitato')"
|
||||
:disabled='!allowSubmit'
|
||||
@click="RegalaInvitato(seluser, aportador_solidario, getnotifBotTxt)"></q-btn>
|
||||
@@ -72,27 +100,6 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<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, {botname: $t('ws.botname')}) + 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">
|
||||
|
||||
|
||||
@@ -1,55 +1,65 @@
|
||||
<template>
|
||||
<div>
|
||||
<div>
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('pages.nextzoom')" bgcolor="bg-primary" clcolor="text-white"
|
||||
mystyle="" myclass="myshad" canopen="true">
|
||||
<div>
|
||||
<CTitleBanner v-if="listacalzoom.length > 0" class="q-pa-xs" :title="$t('pages.nextzoom')"
|
||||
bgcolor="bg-primary" clcolor="text-white"
|
||||
mystyle="" myclass="myshad" canopen="true">
|
||||
|
||||
|
||||
<div class="flex flex-center">
|
||||
<div class="flex flex-center">
|
||||
|
||||
<div class="row animazione justify-center q-gutter-md">
|
||||
<q-btn v-if="showzoom" size="md" type="a" :href="tools.getLinkZoom()"
|
||||
target="_blank" rounded color="white" text-color="primary" icon="fas fa-video" :label="$t('steps.entra_zoom')">
|
||||
</q-btn>
|
||||
<div class="row animazione justify-center q-gutter-md">
|
||||
<q-btn v-if="showzoom" size="md" type="a" :href="tools.getLinkZoom()"
|
||||
target="_blank" rounded color="white" text-color="primary" icon="fas fa-video"
|
||||
:label="$t('steps.entra_zoom')">
|
||||
</q-btn>
|
||||
|
||||
<transition-group name="fade" mode="out-in"
|
||||
appear
|
||||
enter-active-class="animazione fadeIn"
|
||||
leave-active-class="animazione fadeOut">
|
||||
<q-item v-for="(confer, index) in listacalzoom" :key="confer._id" class="q-mb-xs animated clBorderZoom q-pa-sm" v-ripple>
|
||||
<transition-group name="fade" mode="out-in"
|
||||
appear
|
||||
enter-active-class="animazione fadeIn"
|
||||
leave-active-class="animazione fadeOut">
|
||||
<q-item v-for="(confer, index) in listacalzoom" :key="confer._id"
|
||||
class="q-mb-xs animated clBorderZoom q-pa-sm" v-ripple>
|
||||
|
||||
<q-item-section avatar>
|
||||
<q-avatar v-if="tools.geticon(confer.lang)" :class="tools.geticon(confer.lang)" size="sm">
|
||||
</q-avatar>
|
||||
<q-avatar v-else color="primary" text-color="white" class="text-center">
|
||||
{{ tools.capitalize(confer.lang) }}
|
||||
</q-avatar>
|
||||
</q-item-section>
|
||||
<q-item-section avatar>
|
||||
<q-avatar v-if="tools.geticon(confer.lang)" :class="tools.geticon(confer.lang)"
|
||||
size="sm">
|
||||
</q-avatar>
|
||||
<q-avatar v-else color="primary" text-color="white" class="text-center">
|
||||
{{ tools.capitalize(confer.lang) }}
|
||||
</q-avatar>
|
||||
</q-item-section>
|
||||
|
||||
<q-item-section class="text-center">
|
||||
<q-item-label class="title">{{ confer.title }}</q-item-label>
|
||||
<q-item-label class="zoom_data">{{ tools.getstrDateMonthWeekTimeShort(confer.date_start) }}</q-item-label>
|
||||
<q-item-label class="note">
|
||||
<q-chip
|
||||
style="background-color: lightblue !important;"
|
||||
text-color="black"
|
||||
<q-item-section class="text-center">
|
||||
<q-item-label class="title">{{ confer.title }}</q-item-label>
|
||||
<q-item-label class="text-center">
|
||||
<q-icon v-if="confer.benvenuto" name="fas fa-check" size="md" color="blue"></q-icon>
|
||||
<q-icon v-if="!!confer.icon" :name="confer.icon" size="md" inverted :color="confer.color"></q-icon>
|
||||
</q-item-label>
|
||||
<q-item-label class="zoom_data">{{
|
||||
tools.getstrDateMonthWeekTimeShort(confer.date_start) }}
|
||||
</q-item-label>
|
||||
<q-item-label class="note">
|
||||
<q-chip
|
||||
style="background-color: lightblue !important;"
|
||||
text-color="black"
|
||||
|
||||
>{{ confer.note }}
|
||||
</q-chip>
|
||||
</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</transition-group>
|
||||
</div>
|
||||
>{{ confer.note }}
|
||||
</q-chip>
|
||||
</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</transition-group>
|
||||
</div>
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CNextZoom.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './CNextZoom.scss';
|
||||
@import './CNextZoom.scss';
|
||||
</style>
|
||||
|
||||
@@ -12,7 +12,7 @@ import { validationMixin } from 'vuelidate'
|
||||
import { Logo } from '../../components/logo'
|
||||
import { DefaultProfile } from '../../store/Modules/UserStore'
|
||||
|
||||
import 'vue-country-code/dist/vue-country-code.css'
|
||||
// import 'vue-country-code/dist/vue-country-code.css'
|
||||
import { serv_constants } from '@src/store/Modules/serv_constants'
|
||||
|
||||
import VueCountryCode from 'vue-country-code'
|
||||
|
||||
@@ -31,6 +31,8 @@
|
||||
rounded outlined
|
||||
@blur="$v.signup.username.$touch"
|
||||
:error="$v.signup.username.$error"
|
||||
@keydown.native.54="(event) => event.preventDefault()"
|
||||
@keydown.native.52="(event) => event.preventDefault()"
|
||||
@keydown.space="(event) => event.preventDefault()"
|
||||
maxlength="20"
|
||||
debounce="1000"
|
||||
|
||||
@@ -12,7 +12,7 @@ import { validationMixin } from 'vuelidate'
|
||||
import { Logo } from '../../components/logo'
|
||||
import { DefaultProfile } from '../../store/Modules/UserStore'
|
||||
|
||||
import 'vue-country-code/dist/vue-country-code.css'
|
||||
// import 'vue-country-code/dist/vue-country-code.css'
|
||||
import { serv_constants } from '@src/store/Modules/serv_constants'
|
||||
|
||||
import VueCountryCode from 'vue-country-code'
|
||||
|
||||
@@ -84,6 +84,8 @@
|
||||
rounded outlined
|
||||
@blur="$v.signup.username.$touch"
|
||||
:error="$v.signup.username.$error"
|
||||
@keydown.native.54="(event) => event.preventDefault()"
|
||||
@keydown.native.52="(event) => event.preventDefault()"
|
||||
@keydown.space="(event) => event.preventDefault()"
|
||||
maxlength="20"
|
||||
debounce="1000"
|
||||
|
||||
@@ -12,7 +12,7 @@ import { validationMixin } from 'vuelidate'
|
||||
import { Logo } from '../../components/logo'
|
||||
import { DefaultProfile } from '../../store/Modules/UserStore'
|
||||
|
||||
import 'vue-country-code/dist/vue-country-code.css'
|
||||
// import 'vue-country-code/dist/vue-country-code.css'
|
||||
import { serv_constants } from '@src/store/Modules/serv_constants'
|
||||
|
||||
import VueCountryCode from 'vue-country-code'
|
||||
|
||||
@@ -3,27 +3,10 @@
|
||||
<div class="text-center">
|
||||
<p>
|
||||
<logo mystyle="height:200px;"></logo>
|
||||
<CTitleBanner :title="gettitlereg"></CTitleBanner>
|
||||
<CTitleBanner :title="gettitlereg" :canopen="false"></CTitleBanner>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<q-banner
|
||||
v-if="!nuovareg"
|
||||
rounded
|
||||
class="bg-primary text-white"
|
||||
style="text-align: center; font-size:1rem;">
|
||||
<span class="mybanner" v-html="$t('reg.reg_lista_prec')"></span>
|
||||
</q-banner>
|
||||
|
||||
<br>
|
||||
<q-banner
|
||||
v-if="!nuovareg"
|
||||
rounded
|
||||
class="bg-warning text-black"
|
||||
style="text-align: center; font-size:1rem;">
|
||||
<span class="mybanner">{{ $t('reg.nuove_registrazioni')}}</span>
|
||||
</q-banner>
|
||||
|
||||
<!--Prova URL : {{env('PROVA_PAOLO')}}-->
|
||||
|
||||
<div class="q-gutter-sm">
|
||||
@@ -84,6 +67,8 @@
|
||||
rounded outlined
|
||||
@blur="$v.signup.username.$touch"
|
||||
:error="$v.signup.username.$error"
|
||||
@keydown.native.52="(event) => event.preventDefault()"
|
||||
@keydown.native.54="(event) => event.preventDefault()"
|
||||
@keydown.space="(event) => event.preventDefault()"
|
||||
maxlength="20"
|
||||
debounce="1000"
|
||||
|
||||
@@ -466,10 +466,6 @@ export default class CStatus extends MixinBase {
|
||||
|
||||
}
|
||||
|
||||
get TelegramBiblio() {
|
||||
return 'https://t.me/joinchat/AL2qKExZKvenLgpVhOyefQ'
|
||||
}
|
||||
|
||||
public geticonstep(mystep) {
|
||||
if (!!mystep.icon)
|
||||
return mystep.icon
|
||||
@@ -552,7 +548,7 @@ export default class CStatus extends MixinBase {
|
||||
}
|
||||
|
||||
get progressstep() {
|
||||
return this.$t(this.arrsteps[this.steptodo].title)
|
||||
return this.$t(this.arrsteps[this.steptodo].title, {botname: this.$t('ws.botname')})
|
||||
}
|
||||
|
||||
get strpercstep() {
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
<div v-else>
|
||||
<br>
|
||||
<q-btn color="primary" icon="fab fa-telegram"
|
||||
:label="$t('components.authentication.telegram.openbot')"
|
||||
:label="$t('components.authentication.telegram.openbot', {botname: $t('ws.botname')})"
|
||||
type="a"
|
||||
:href="getLinkBotTelegram" target="_blank"></q-btn>
|
||||
<br>
|
||||
@@ -166,15 +166,15 @@
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.dream'">
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr)"></div>
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
<q-input v-model="my_dream" :label="$t('steps.dream')+' (min. 10):'"
|
||||
type="textarea" debounce="1000"
|
||||
input-class="myinput-area-big"
|
||||
autogrow
|
||||
@input="change_mydream"
|
||||
@input="change_mydream">
|
||||
|
||||
></q-input>
|
||||
</q-input>
|
||||
|
||||
<!--
|
||||
<CMyFieldDb :title="$t('reg.my_dream')"
|
||||
@@ -186,18 +186,6 @@
|
||||
</CMyFieldDb>
|
||||
-->
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.chat_biblio'">
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr)"></div>
|
||||
</div>
|
||||
<br><strong>Entra in Chat BiblioBacheca, cliccando qui:</strong>
|
||||
|
||||
<div class="landing__footer-icons row flex-center margin_buttons">
|
||||
<a v-if="!!TelegramBiblio" :href="TelegramBiblio" target="_blank">
|
||||
<i aria-hidden="true" class="q-icon fab fa-telegram icon_contact links"></i></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.zoom'">
|
||||
|
||||
<CRequisiti :statebool="VistoZoom" :msgTrue="$t('steps.zoom_si_partecipato')"
|
||||
@@ -205,7 +193,7 @@
|
||||
</CRequisiti>
|
||||
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr)"></div>
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('steps.zoom_what')" bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
@@ -216,13 +204,16 @@
|
||||
</CVideo>
|
||||
|
||||
<div v-if="toolsext.isLang('it')">
|
||||
<h3>ISTRUZIONI ZOOM</h3>
|
||||
<h3>ISTRUZIONI ZOOM Cloud Meeting</h3>
|
||||
|
||||
<ul style="text-align: left; font-size:0.75rem;">
|
||||
<li>1. Scarica l'app (<a
|
||||
<li>1. Scarica l'app per: (<a
|
||||
href="https://play.google.com/store/apps/details?id=us.zoom.videomeetings"
|
||||
target="_blank">store</a> o <a href="https://zoom.us/support/download"
|
||||
target="_blank">da PC</a>)
|
||||
target="_blank">Android</a> o per
|
||||
<a href="https://apps.apple.com/us/app/zoom-cloud-meetings/id546505307" target="_blank">iPhone</a>
|
||||
o per
|
||||
<a href="https://zoom.us/support/download" target="_blank">PC Desktop</a>
|
||||
)
|
||||
</li>
|
||||
<li>2. Inserisci il tuo Nome e Cognome per essere riconosciuto</li>
|
||||
<li>3. Clicca "join meeting"</li>
|
||||
@@ -278,7 +269,7 @@
|
||||
:label="$t('pages.dashboard')"></q-btn>
|
||||
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr)"></div>
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-center q-ma-sm">
|
||||
@@ -315,17 +306,17 @@
|
||||
|
||||
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr)"></div>
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.enter_prog'">
|
||||
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr)"></div>
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
|
||||
<CRequisiti :statebool="CompletatoRequisiti" :msgTrue="$t('steps.enter_prog_requisiti_ok')"
|
||||
<CRequisiti :statebool="CompletatoRequisiti" :msgTrue="$t('steps.enter_prog_requisiti_ok') + $t('steps.enter_prog_requisiti_ok')"
|
||||
:msgFalse="$t('steps.enter_prog_completa_requisiti')">
|
||||
</CRequisiti>
|
||||
|
||||
@@ -345,7 +336,7 @@
|
||||
<div v-if="mystep.page">
|
||||
<CMyInnerPage :path=mystep.page>
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr)"></div>
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
</CMyInnerPage>
|
||||
</div>
|
||||
|
||||
@@ -27,9 +27,9 @@ export default class CStatusReg extends MixinBase {
|
||||
public polling = null
|
||||
public numpolled: number = 0
|
||||
public datastat: INotData = {
|
||||
num_tot_lista: 0,
|
||||
num_reg_lista: 0,
|
||||
num_reg: 0,
|
||||
num_passeggeri: 0,
|
||||
num_imbarcati: 0,
|
||||
num_teleg_attivo: 0,
|
||||
email_non_verif: 0,
|
||||
num_teleg_pending: 0,
|
||||
@@ -39,7 +39,7 @@ export default class CStatusReg extends MixinBase {
|
||||
|
||||
public async checkifpolling() {
|
||||
if (UserStore.state.my.profile) {
|
||||
if (!UserStore.state.my.verified_email || UserStore.state.my.profile.teleg_id <= 0)
|
||||
if (!UserStore.state.my.verified_email || (UserStore.state.my.profile.teleg_id <= 0 && (tools.appid() === tools.IDAPP_AYNI)))
|
||||
this.NUMSEC_TO_POLLING = 10
|
||||
}
|
||||
|
||||
@@ -124,13 +124,6 @@ export default class CStatusReg extends MixinBase {
|
||||
this.checkifpolling()
|
||||
}
|
||||
|
||||
get perc_reg() {
|
||||
if (this.datastat.num_tot_lista > 0)
|
||||
return (this.datastat.num_reg_lista / this.datastat.num_tot_lista * 100)
|
||||
else
|
||||
return 0
|
||||
}
|
||||
|
||||
public calcperc(val1, valmax ) {
|
||||
if (valmax > 0)
|
||||
return (val1 / valmax * 100)
|
||||
@@ -139,7 +132,7 @@ export default class CStatusReg extends MixinBase {
|
||||
}
|
||||
|
||||
get visustat() {
|
||||
return this.datastat.num_reg > 0 || this.datastat.num_reg_lista > 0
|
||||
return this.datastat.num_reg > 0
|
||||
}
|
||||
|
||||
get telegnonattivi() {
|
||||
|
||||
@@ -1,92 +1,114 @@
|
||||
<template>
|
||||
<div>
|
||||
<div v-if="visustat">
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('pages.status')" bgcolor="bg-primary" clcolor="text-white"
|
||||
mystyle="" myclass="myshad" canopen="true">
|
||||
<div>
|
||||
<div v-if="visustat">
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('pages.status')" bgcolor="bg-primary" clcolor="text-white"
|
||||
mystyle="" myclass="myshad" canopen="true">
|
||||
|
||||
|
||||
<div class="flex flex-center">
|
||||
<div class="flex flex-center">
|
||||
|
||||
<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) "
|
||||
mycolor="blue"
|
||||
:textadd="` / ` + datastat.num_reg"></CCardState>
|
||||
<CCardState :mytext="$t('pages.statusreg.reg')" :myval="datastat.num_reg"
|
||||
:myperc="100"></CCardState>
|
||||
|
||||
<!--<CCardState :mytext="$t('pages.statusreg.giainlista')" :isperc="true" :myval="datastat.num_reg_lista"-->
|
||||
<!--:myperc="perc_reg" :textadd="` / ` + datastat.num_tot_lista"></CCardState>-->
|
||||
<CCardState :mytext="$t('pages.statusreg.passeggeri')"
|
||||
mycolor="blue"
|
||||
size="150px"
|
||||
size_mob="130px"
|
||||
:myval="datastat.num_passeggeri"
|
||||
:myperc="100"></CCardState>
|
||||
|
||||
<div class="q-pa-xs ">
|
||||
<CCardStat :mytext="$t('stat.accepted')" :myval="datastat.num_part_accepted"></CCardStat>
|
||||
<CCardStat :mytext="$t('stat.zoom')" :myval="datastat.num_part_zoom"></CCardStat>
|
||||
<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 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"
|
||||
mycol="negative"></CCardStat>
|
||||
<CCardStat v-if="datastat.num_teleg_pending > 0" :mytext="$t('stat.telegram_pendenti')"
|
||||
:myval="datastat.num_teleg_pending" mycol="negative"></CCardStat>
|
||||
</div>
|
||||
<!--<CCardState :mytext="$t('statusreg.imbarcati')"
|
||||
size="150px"
|
||||
size_mob="130px"
|
||||
mycolor="blue" :myval="datastat.num_imbarcati"
|
||||
:myperc="100"></CCardState>-->
|
||||
|
||||
<div class="column animazione">
|
||||
<div class="text-center">{{$t('pages.statusreg.newreg')}}</div>
|
||||
<transition-group name="fade" mode="out-in"
|
||||
appear
|
||||
enter-active-class="animazione fadeIn"
|
||||
leave-active-class="animazione fadeOut">
|
||||
<!--<CCardState v-if="datastat.num_part_accepted > 1"
|
||||
:mytext="$t('stat.requisiti')" :isperc="true" :myval="datastat.num_requisiti"
|
||||
:myperc="calcperc(datastat.num_requisiti, datastat.num_reg) "
|
||||
mycolor="blue"
|
||||
:textadd="` / ` + datastat.num_reg"></CCardState>-->
|
||||
|
||||
<q-item v-for="(user, index) in lastsreg" :key="user.username" class="q-mb-xs animated" v-ripple>
|
||||
<div class="q-pa-xs" v-if="datastat.num_part_accepted > 1">
|
||||
<CCardStat :mytext="$t('stat.accepted')" :myval="datastat.num_part_accepted"></CCardStat>
|
||||
<CCardStat :mytext="$t('stat.zoom')" :myval="datastat.num_part_zoom"></CCardStat>
|
||||
<CCardStat :mytext="$t('stat.imbarcati')" :myval="datastat.num_imbarcati"></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 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"
|
||||
mycol="negative"></CCardStat>
|
||||
<CCardStat v-if="datastat.num_teleg_pending > 0" :mytext="$t('stat.telegram_pendenti')"
|
||||
:myval="datastat.num_teleg_pending" mycol="negative"></CCardStat>-->
|
||||
</div>
|
||||
|
||||
<q-item-section avatar>
|
||||
<q-avatar v-if="tools.geticon(user.profile.nationality)"
|
||||
:class="tools.geticon(user.profile.nationality)">
|
||||
<div class="column animazione">
|
||||
<div class="text-center">{{$t('pages.statusreg.newreg')}}</div>
|
||||
<transition-group name="fade" mode="out-in"
|
||||
appear
|
||||
enter-active-class="animazione fadeIn"
|
||||
leave-active-class="animazione fadeOut">
|
||||
|
||||
</q-avatar>
|
||||
<q-avatar v-else color="primary" text-color="white" class="text-center">
|
||||
{{ tools.capitalize(user.profile.nationality) }}
|
||||
</q-avatar>
|
||||
</q-item-section>
|
||||
<q-item v-for="(user, index) in lastsreg" :key="user.username" class="q-mb-xs animated"
|
||||
v-ripple>
|
||||
|
||||
<q-item-section>
|
||||
<q-item-label>{{ user.name }} {{ tools.firstchars_onedot(user.surname, 1) }}</q-item-label>
|
||||
<q-item-label caption lines="1">{{ user.username }}</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section avatar>
|
||||
<q-avatar v-if="tools.geticon(user.profile.nationality)"
|
||||
:class="tools.geticon(user.profile.nationality)">
|
||||
|
||||
<q-item-section side>
|
||||
<q-item-label>{{ tools.getstrDateTimeShort(user.date_temp_reg) }}</q-item-label>
|
||||
<q-chip outline color="green" text-color="white" icon-right="fas fa-user-plus" size="xs"></q-chip>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</transition-group>
|
||||
</div>
|
||||
</q-avatar>
|
||||
<q-avatar v-else color="primary" text-color="white" class="text-center">
|
||||
{{ tools.capitalize(user.profile.nationality) }}
|
||||
</q-avatar>
|
||||
</q-item-section>
|
||||
|
||||
<CGeoChart :mydata="datastat.arr_nations">
|
||||
<q-item-section>
|
||||
<q-item-label>{{ user.name }} {{ tools.firstchars_onedot(user.surname, 1) }}
|
||||
</q-item-label>
|
||||
<q-item-label caption lines="1">{{ user.username }}</q-item-label>
|
||||
</q-item-section>
|
||||
|
||||
</CGeoChart>
|
||||
<div class="row text-center justify-center">
|
||||
<CListNationality :mydata="datastat.arr_nations">
|
||||
<q-item-section side>
|
||||
<q-item-label>{{ tools.getstrDateTimeShort(user.date_temp_reg) }}</q-item-label>
|
||||
<q-chip outline color="green" text-color="white" icon-right="fas fa-user-plus"
|
||||
size="xs"></q-chip>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</transition-group>
|
||||
</div>
|
||||
|
||||
</CListNationality>
|
||||
<CLineChart :mydata="datastat.reg_daily" :title="$t('stat.reg_daily')">
|
||||
<CGeoChart :mydata="datastat.arr_nations">
|
||||
|
||||
</CLineChart>
|
||||
<CLineChart :mydata="datastat.reg_daily" :title="$t('stat.reg_total')" :offset="datastat.numreg_untilday" :sum="true"
|
||||
:mycolors="['#0b0', '#666']">
|
||||
</CGeoChart>
|
||||
<div class="row text-center justify-center">
|
||||
<CListNationality :mydata="datastat.arr_nations">
|
||||
|
||||
</CLineChart>
|
||||
</div>
|
||||
</CListNationality>
|
||||
<CLineChart :mydata="datastat.reg_daily" :title="$t('stat.reg_daily')">
|
||||
|
||||
</CLineChart>
|
||||
<CLineChart :mydata="datastat.reg_weekly" :title="$t('stat.reg_weekly')">
|
||||
|
||||
</CLineChart>
|
||||
<CLineChart :mydata="datastat.reg_daily" :title="$t('stat.reg_total')"
|
||||
:offset="datastat.numreg_untilday" :sum="true"
|
||||
:mycolors="['#0b0', '#666']">
|
||||
|
||||
</CLineChart>
|
||||
</div>
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CStatusReg.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './CStatusReg.scss';
|
||||
@import './CStatusReg.scss';
|
||||
</style>
|
||||
|
||||
@@ -23,6 +23,10 @@ export default class CUserBadge extends MixinBase {
|
||||
@Prop({ required: true }) public user: IUserFields
|
||||
@Prop({ required: true }) public numpeople: number
|
||||
@Prop({ required: true }) public mycolor: string
|
||||
@Prop({ required: false, default: true }) public showsteps: boolean
|
||||
@Prop({ required: false, default: true }) public showregalainv: boolean
|
||||
@Prop({ required: false, default: -1 }) public ind_order_ingr: number
|
||||
@Prop({ required: false, default: -1 }) public id_listaingr: number
|
||||
public $v
|
||||
public $t: any
|
||||
|
||||
@@ -47,10 +51,12 @@ export default class CUserBadge extends MixinBase {
|
||||
}
|
||||
|
||||
public getindorder(user) {
|
||||
if (!!user.ind_order)
|
||||
/*if (!!user.username)
|
||||
return ' (' + user.ind_order + ')'
|
||||
else
|
||||
return ''
|
||||
*/
|
||||
return ''
|
||||
}
|
||||
|
||||
public getmoneycolor(user) {
|
||||
@@ -92,7 +98,7 @@ export default class CUserBadge extends MixinBase {
|
||||
}
|
||||
|
||||
public execclick(user) {
|
||||
this.$emit('myclick', user)
|
||||
this.$emit('myclick', user, this.showregalainv, this.ind_order_ingr, this.id_listaingr)
|
||||
}
|
||||
|
||||
public getnumreq(user) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div v-if="!!user">
|
||||
<q-item class="q-my-sm q-pa-sm myuserbadge shadow-5" clickable v-ripple @click="execclick(user)">
|
||||
<q-item-section avatar>
|
||||
<q-item-section avatar v-if="showsteps">
|
||||
<div class="row" style="margin-left: 4px;">
|
||||
<q-avatar v-if="yourinvite" :text-color="mycolor" size="md">
|
||||
{{ getnumber(user, index + 1) }}°
|
||||
@@ -21,7 +21,7 @@
|
||||
</q-item-section>
|
||||
|
||||
|
||||
<q-item-section side>
|
||||
<q-item-section side v-if="showsteps">
|
||||
<div class="row q-gutter-xs justify-center items-center">
|
||||
<div>
|
||||
<CCardState :mytext="$t('pages.statusreg.req')" :myval="getnumreq(user)" :myperc="getnumperc(user)" size="50px" size_mob="40px" fontsize="0.75rem" myclass="my-card-small-stat" :mycolor="getcolor(user)"></CCardState>
|
||||
|
||||
@@ -304,3 +304,7 @@ canvas {
|
||||
color: red;
|
||||
background-color: red;
|
||||
}
|
||||
|
||||
.titlesite {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
@@ -65,6 +65,10 @@ export default class Header extends Vue {
|
||||
return UserStore.state.isTutor
|
||||
}
|
||||
|
||||
get isTratuttrici() {
|
||||
return UserStore.state.isTratuttrici
|
||||
}
|
||||
|
||||
get conndata_changed() {
|
||||
return GlobalStore.state.connData
|
||||
}
|
||||
@@ -182,7 +186,7 @@ export default class Header extends Vue {
|
||||
if (this.static_data.functionality.SHOW_IF_IS_SERVER_CONNECTION) {
|
||||
|
||||
if (!!oldValue) {
|
||||
tools.showNotif(this.$q, this.$t('connection') + ` disc__value}`, {
|
||||
tools.showNotif(this.$q, this.$t('connection') + ` {disc__value}`, {
|
||||
color,
|
||||
icon: 'wifi'
|
||||
})
|
||||
|
||||
@@ -32,14 +32,15 @@
|
||||
<q-btn ripple
|
||||
size="md"
|
||||
id="newvers" v-if="isNewVersionAvailable" color="secondary" rounded icon="refresh"
|
||||
class="btnNewVersShow" @click="RefreshApp()" :label="$t('notification.newVersionAvailable')"/>
|
||||
class="btnNewVersShow" @click="RefreshApp()" :label="$t('notification.newVersionAvailable')">
|
||||
</q-btn>
|
||||
|
||||
|
||||
<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 class="q-mx-sm titlesite">{{getappname}}</div>
|
||||
<div slot="subtitle">{{$t('msg.myDescriz')}} {{ getAppVersion() }}</div>
|
||||
</q-toolbar-title>
|
||||
|
||||
@@ -108,8 +109,7 @@
|
||||
@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>
|
||||
@click="rightDrawerOpen = !rightDrawerOpen" :icon="getMyImgforIcon">
|
||||
</q-btn>
|
||||
|
||||
</q-toolbar>
|
||||
@@ -145,6 +145,7 @@
|
||||
v-if="isAdmin"> [Admin]</span>
|
||||
<span v-if="isManager"> [Manager]</span>
|
||||
<span v-if="isTutor"> [Tutor]</span>
|
||||
<span v-if="isTratuttrici"> [Trad]</span>
|
||||
</div>
|
||||
<div v-else class="text-user text-italic bg-red">
|
||||
{{ $t('user.loggati') }}
|
||||
|
||||
Reference in New Issue
Block a user