Ultimo aggiornamento Nuova versione del Sito !

This commit is contained in:
Paolo Arena
2020-05-14 17:23:03 +02:00
parent 9dffc92d22
commit d2bf9eb202
20 changed files with 740 additions and 513 deletions

View File

@@ -10,7 +10,7 @@ import { CMyFieldDb } from '../CMyFieldDb'
import { CCopyBtn } from '../CCopyBtn'
import { CUserBadge } from '../CUserBadge'
import { CLegenda } from '../CLegenda'
import { IDashboard, IUserProfile } from '../../model'
import { IDashboard, IDownline, IUserProfile } from '../../model'
import { IUserFields } from '../../model/UserStore'
import { CRequisito } from '../CRequisito'
import translate from '../../globalroutines/util'
@@ -52,6 +52,7 @@ export default class CMyDashboard extends MixinUsers {
public shownuovoviaggio: boolean = false
public notifBot: boolean = true
public loading: boolean = false
public loading_invitati: boolean = false
public seluser: IUserFields = null
public aportador_solidario: string = ''
public invitante_username: string = ''
@@ -64,9 +65,6 @@ export default class CMyDashboard extends MixinUsers {
myself: DefaultUser,
aportador: DefaultUser,
numpeople_aportador: 0,
downline: [],
downnotreg: [],
downbyuser: [],
arrimbarchi: [],
arrposizioni: [],
navi_partenza: [],
@@ -74,6 +72,12 @@ export default class CMyDashboard extends MixinUsers {
arrusers: [],
}
public downline: IDownline = {
downline: [],
downnotreg: [],
downbyuser: []
}
@Prop({ required: true }) public username
@Watch('UserStore.state.my.dashboard')
@@ -98,6 +102,15 @@ export default class CMyDashboard extends MixinUsers {
public changetab(val) {
tools.setCookie(tools.TABBED_DASHBOARD, val)
if (this.tab === 'invitati') {
if (this.downline.downline.length <= 0) {
this.loading_invitati = true
UserStore.actions.getDownline({ username: this.myusername }).then((ris) => {
this.downline = ris
this.loading_invitati = false
})
}
}
// console.log('setcook', val)
}
@@ -123,21 +136,36 @@ export default class CMyDashboard extends MixinUsers {
this.loading = true
await UserStore.actions.getDashboard({ username: this.myusername }).then((ris) => {
this.dashboard = ris
UserStore.actions.getDashboard({ username: this.myusername })
.then((ris) => {
this.dashboard = ris
if (!!this.dashboard)
this.invitante_username = this.dashboard.myself.username
if (!!this.dashboard)
this.invitante_username = this.dashboard.myself.username
this.myrigaattuale = this.dashboard.lastnave.riga
this.mycolattuale = this.dashboard.lastnave.col
this.myrigaattuale = this.dashboard.lastnave.riga
this.mycolattuale = this.dashboard.lastnave.col
// console.log('this.invitante_username', this.invitante_username)
this.loading = false
})
this.loading = false
})
.catch((e) => {
this.loading = false
})
if (this.tab === 'invitati') {
this.loading_invitati = true
UserStore.actions.getDownline({ username: this.myusername })
.then((ris2) => {
this.downline = ris2
this.loading_invitati = false
})
.catch((e) => {
this.loading_invitati = false
})
}
this.showuserinfo = false
this.loading = false
}
get getRefLink() {
@@ -145,34 +173,42 @@ export default class CMyDashboard extends MixinUsers {
}
get invitatinotreg() {
if (this.dashboard)
if (this.dashboard.downnotreg)
return this.dashboard.downnotreg.length > 0
if (this.downline)
if (this.downline.downnotreg)
return this.downline.downnotreg.length > 0
return false
}
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
public selectclick(user, showregalainv, ind_order_ingr, id_listaingr, disabled) {
if (!disabled) {
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
if (!!this.dashboard.myself)
return this.dashboard.myself.qualified
return false
}
get Completato9Req() {
// return tools.Is9ReqOk(this.dashboard.myself)
if (!!this.dashboard)
if (!!this.dashboard.myself)
return this.dashboard.myself.qualified && (this.dashboard.myself.numinvitatiattivi >= 2)
return false
}
public HasNave() {
return this.dashboard.arrposizioni.length > 0
get HasNave() {
if (!!this.dashboard.arrposizioni)
return this.dashboard.arrposizioni.length > 0
else
return false
}
public getnavePartenzaByRigaCol(riga, col) {
@@ -187,10 +223,19 @@ export default class CMyDashboard extends MixinUsers {
}
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.getstrDate(mianave.nave_partenza.date_start)
}
return ' --/-- '
}
public datagiftchat(mianave) {
// const mynavepart = this.getnavePartenzaByRigaCol(tools.getRiganave(mianave.riga), tools.getColnave(mianave.col))
if (!!mianave.nave_partenza) {
if (!!mianave.nave_partenza.date_gift_chat_open)
return tools.getstrshortDate(mianave.nave_partenza.date_gift_chat_open)
return tools.getstrDate(mianave.nave_partenza.date_gift_chat_open)
}
return ' --/-- '
}
@@ -223,7 +268,7 @@ export default class CMyDashboard extends MixinUsers {
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, {
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
@@ -234,7 +279,7 @@ export default class CMyDashboard extends MixinUsers {
}
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, {
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 }
})
@@ -258,7 +303,7 @@ export default class CMyDashboard extends MixinUsers {
if (invattivi > 2)
invattivi = 2
return invattivi + '/' + inv
return invattivi + '/' + inv
}
public getinvit(index, myuser, posiz) {
@@ -281,21 +326,25 @@ export default class CMyDashboard extends MixinUsers {
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)
@@ -352,7 +401,7 @@ export default class CMyDashboard extends MixinUsers {
}
public imbarchipresenti() {
let presente = false;
let presente = false
for (const rec of this.dashboard.arrimbarchi) {
if (!rec.added)
presente = true
@@ -393,14 +442,37 @@ export default class CMyDashboard extends MixinUsers {
}
get getstrinvitati() {
if (this.dashboard.myself.numinvitati)
return this.dashboard.myself.numinvitati + ` ` + this.$t('dashboard.downline')
else
if (!!this.dashboard && !!this.dashboard.myself)
if (!!this.dashboard.myself.numinvitati)
return this.dashboard.myself.numinvitati + ` ` + this.$t('dashboard.downline')
if (this.loading_invitati)
return ` (...) ` + this.$t('dashboard.downline')
else
return this.$t('dashboard.downline')
}
public getmyrigaattuale(rigamin) {
public getmyrigaattuale(mianave) {
const rigamin = tools.getRiganave(mianave.riga)
const colmin = tools.getColnave(mianave.col)
let riga = this.myrigaattuale
let col = this.mycolattuale
let colvera = colmin
if (rigamin > 3) {
for (let index = rigamin; index < riga - 1; index++){
colvera = colvera * 2
}
} else {
colvera = 7
}
if (col <= colvera) {
riga = riga - 1
}
// console.log('[' + rigamin + '.' + colmin + ']', 'riga', riga, 'col', col, 'colvera', colvera)
if (riga < rigamin)
riga = rigamin
@@ -411,7 +483,7 @@ export default class CMyDashboard extends MixinUsers {
}
public getval7(mianave) {
let val = this.getmyrigaattuale(tools.getRiganave(mianave.riga))
let val = this.getmyrigaattuale(mianave)
return val - tools.getRiganave(mianave.riga) + 1
}
@@ -436,7 +508,15 @@ export default class CMyDashboard extends MixinUsers {
return val
}
gettextcolor(mianave) {
public gettextcolor(mianave) {
return this.getval7(mianave) === 3 ? 'black' : 'white'
}
public getifdisableInvitante(imbarco, index) {
if ((index === 0) && (this.dashboard.arrposizioni.length <= 0)) {
return true
}
return false
}
}

View File

@@ -16,28 +16,34 @@
</q-tabs>
<div v-if="loading" class="q-ma-md text-center" style="height: 100px;">
<q-spinner-gears size="50px" color="primary"/>
</div>
<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 v-if="loading" class="q-ma-md text-center" style="height: 50px;">
<q-spinner-gears size="50px" color="primary"/>
</div>
<div v-if="!!dashboard && !!dashboard.myself">
<div v-if="!!dashboard.myself.name">
<CMyRequirement :myseluser="dashboard.myself" :mydashboard="dashboard" :mydownline="downline"
@aggiorna="aggiorna"
>
</CMyRequirement>
</div>
</div>
</q-tab-panel>
<q-tab-panel name="invitati">
<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>
@@ -52,34 +58,33 @@
<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="getstrinvitati" 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">
<div v-if="loading_invitati" class="q-ma-md text-center" style="height: 50px;">
<q-spinner-hourglass size="50px" color="primary"/>
</div>
<q-list bordered v-if="!!downline.downline && downline.downline.length > 0" class="rounded-borders">
<div v-for="(user, index) in downline.downline" :key="index">
<CUserBadge :yourinvite="true" :user="user" mycolor="positive" :index="index"
:showregalainv="false"
:numpeople="dashboard.downbyuser[user.username].length"
@myclick="selectclick"
>
</CUserBadge>
<div v-if="user.username !== dashboard.myself.username">
<div style="margin-left:10px;" v-for="(user2, index2) in dashboard.downbyuser[user.username]"
<div style="margin-left:10px;" v-for="(user2, index2) in downline.downbyuser[user.username]"
:key="index2">
<CUserBadge :yourinvite="false" :user="user2" mycolor="orange" :index="index2"
:showregalainv="false"
:numpeople="dashboard.downbyuser[user2.username].length"
@myclick="selectclick"
>
@@ -89,7 +94,9 @@
</div>
</q-list>
<div v-else class="q-pa-sm text-center">
{{ $t('dashboard.nessun_invitato')}}
<div v-if="!loading_invitati">
{{ $t('dashboard.nessun_invitato')}}
</div>
</div>
</CTitleBanner>
@@ -148,20 +155,24 @@
</q-tab-panel>
<q-tab-panel name="navi">
<div v-if="loading" class="q-ma-md text-center" style="height: 50px;">
<q-spinner-gears size="50px" color="primary"/>
</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') + $t('steps.enter_prog_requisiti_ok')"
:msgTrue="$t('steps.enter_prog_requisiti_ok') + $t('steps.enter_prog_msg')"
:msgFalse="$t('steps.enter_prog_completa_requisiti')">
</CRequisiti>
</CTitleBanner>
</div>
</div>
<div v-if="!!dashboard">
<div v-if="!!dashboard && dashboard.myself">
<div v-if="dashboard.myself.qualified">
<CTitleBanner class=""
@@ -180,11 +191,8 @@
<div class="col-2 ">
{{ $t('dashboard.downline') }}
</div>
<!--<div class="col-2">
{{ $t('dashboard.dono_da_effettuare') }}
</div>-->
<div class="col-2">
{{ $t('reg.elimina') }}
{{ $t('dialog.delete') }}
</div>
</div>
@@ -206,7 +214,7 @@
:ind_order_ingr="mioimbarco.ind_order"
:id_listaingr="mioimbarco._id"
:index="index"
:numpeople="0"
:mydisabled="getifdisableInvitante(mioimbarco, index)"
@myclick="selectclick">
</CUserBadge>
</div>
@@ -253,7 +261,7 @@
</q-btn>
</div>
<div class="q-pa-xs text-center">
<div v-if="!!dashboard.myself" class="q-pa-xs text-center">
<div v-if="!!dashboard.myself.name">
<div v-if="!HasNave">
@@ -282,7 +290,7 @@
</q-item-section>
<q-item-section>
<q-slider
:value="getmyrigaattuale(tools.getRiganave(mianave.riga))"
:value="getmyrigaattuale(mianave)"
:label-text-color="gettextcolor(mianave)"
:label-value="getval7(mianave) + '/7'"
:color="getcolorbyval(mianave)"
@@ -296,6 +304,9 @@
</q-slider>
</q-item-section>
<q-item-section avatar>
<q-icon color="blue" name="fas fa-flag-checkered"></q-icon>
</q-item-section>
</q-item>
</q-list>
</div>
@@ -306,7 +317,7 @@
<q-card class="my-card-shadow yes_shadow">
<q-img
src="statics/images/nave.jpg"
:src="`statics/images/nave${index+1}.jpg`"
style="width: 100%"
native-context-menu>
<div class="absolute-bottom text-subtitle1 text-center text-sobig">
@@ -317,14 +328,17 @@
<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"
<q-chip class="glossy q-mx-md" :color="getcolorbynave(mianave)" text-color="white"
icon="fas fa-ship">
&nbsp;
{{ $t('dashboard.nave_in_partenza') + ' ' + datanave(mianave) }}
{{ $t('dashboard.nave_in_partenza') + ' ' + datagiftchat(mianave) }}
</q-chip>
<q-chip v-if="datagiftchat(mianave) !== datanave(mianave)" class="glossy q-mx-md" color="blue" text-color="white"
icon="fas fa-ship">
{{ $t('dashboard.nave_in_chiusura') + ' ' + datanave(mianave) }}
</q-chip>
</div>
<div v-if="isprovvisoria(mianave)">
<div v-if="isprovvisoria(mianave)" class="text-center centermydiv">
<CRequisiti :statebool="true"
:msgTrue="$t('dashboard.nave_provvisoria') + `<br><strong>` + $t('steps.enter_prog_msg') + `</strong>`"
msgFalse="">
@@ -368,7 +382,7 @@
</q-item-section>
<q-item-section>
<q-slider
:value="getmyrigaattuale(tools.getRiganave(mianave.riga))"
:value="getmyrigaattuale(mianave)"
:label-text-color="gettextcolor(mianave)"
:label-value="getval7(mianave) + '/7'"
:color="getcolorbyval(mianave)"
@@ -381,6 +395,9 @@
</q-slider>
</q-item-section>
<q-item-section avatar>
<q-icon color="blue" name="fas fa-flag-checkered"></q-icon>
</q-item-section>
</q-item>
<q-item>
<q-item-section avatar>
@@ -420,6 +437,22 @@
</q-item-label>
</q-item-section>
</q-item>
<q-item v-if="mianave.num_tess % 2 !== 0">
<q-item-section avatar>
<q-icon size="sm" name="fas fa-user" color="blue"></q-icon>
</q-item-section>
<q-item-section>
<q-item-label>
<q-input v-model="mianave.invitante_username" :label="$t('dashboard.invitante')"
rounded outlined
readonly
dense
style="width: 100%; font-size:0.75rem;">
</q-input>
</q-item-label>
</q-item-section>
</q-item>
</q-list>
</div>
</div>
@@ -461,7 +494,7 @@
</q-tab-panels>
</div>
<div v-if="!!dashboard">
<div v-if="!!dashboard.myself">
<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>
@@ -507,7 +540,7 @@
</q-toolbar>
<q-card-section class="inset-shadow" style="padding: 4px !important;">
<CMyRequirement :id_listaingr="id_listaingr" :myseluser="seluser" :showregalainv="showregalainv"
:mydashboard="dashboard" :notitle="false" @aggiorna="aggiorna"
:mydashboard="dashboard" :mydownline="downline" :notitle="false" @aggiorna="aggiorna"
:ind_order_ingr="ind_order_ingr">
</CMyRequirement>