Grosse Modifiche Completate !

This commit is contained in:
Paolo Arena
2020-05-11 22:43:54 +02:00
parent 33cc721ceb
commit e4570fc393
19 changed files with 1342 additions and 1020 deletions

View File

@@ -58,6 +58,8 @@ export default class CMyDashboard extends MixinUsers {
public showregalainv: boolean = false
public id_listaingr: number = -1
public ind_order_ingr: number = -1
public myrigaattuale: number = 0
public mycolattuale: number = 0
public dashboard: IDashboard = {
myself: DefaultUser,
aportador: DefaultUser,
@@ -76,10 +78,10 @@ export default class CMyDashboard extends MixinUsers {
@Watch('UserStore.state.my.dashboard')
public changedash() {
console.log('changedash')
// console.log('changedash')
this.dashboard = UserStore.state.my.dashboard
if (!!this.dashboard)
this.invitante_username = this.dashboard.myself.aportador_solidario
this.invitante_username = this.dashboard.myself.username
}
@@ -96,7 +98,7 @@ export default class CMyDashboard extends MixinUsers {
public changetab(val) {
tools.setCookie(tools.TABBED_DASHBOARD, val)
console.log('setcook', val)
// console.log('setcook', val)
}
@Watch('this.username')
@@ -112,7 +114,7 @@ export default class CMyDashboard extends MixinUsers {
}
public async update_username() {
console.log('update_username')
// console.log('update_username')
this.loading = true
if (this.username === '')
this.myusername = this.getMyUsername()
@@ -125,9 +127,12 @@ export default class CMyDashboard extends MixinUsers {
this.dashboard = ris
if (!!this.dashboard)
this.invitante_username = this.dashboard.myself.aportador_solidario
this.invitante_username = this.dashboard.myself.username
console.log('this.invitante_username', this.invitante_username)
this.myrigaattuale = this.dashboard.lastnave.riga
this.mycolattuale = this.dashboard.lastnave.col
// console.log('this.invitante_username', this.invitante_username)
this.loading = false
})
@@ -184,8 +189,8 @@ 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.getstrshortDate(mianave.nave_partenza.date_start)
if (!!mianave.nave_partenza.date_gift_chat_open)
return tools.getstrshortDate(mianave.nave_partenza.date_gift_chat_open)
}
return ' --/-- '
}
@@ -340,7 +345,7 @@ export default class CMyDashboard extends MixinUsers {
get allowSubmit() {
let error = this.$v.$error || this.$v.$invalid
error = error || (this.invitante_username === this.dashboard.myself.username)
// error = error || (this.invitante_username === this.dashboard.myself.username)
return !error
@@ -370,9 +375,11 @@ export default class CMyDashboard extends MixinUsers {
tools.saveFieldToServer(this, 'navi', mianave._id, mydata)
}
public getNaveSognatoreStr(mianave, index) {
public getNaveSognatoreStr(mianave) {
const mynavedest = tools.getfirstnaveSognatore(mianave.riga, mianave.col)
return mynavedest.riga + '.' + parseInt(mynavedest.col, 10) + index
const ris = mynavedest.riga + '.' + mynavedest.col
// console.log('ris', ris)
return ris
}
public getNaveMediatoreStr(mianave) {

View File

@@ -16,6 +16,10 @@
</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">
@@ -141,10 +145,112 @@
</q-tab-panel>
<q-tab-panel name="navi">
<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')"
:msgFalse="$t('steps.enter_prog_completa_requisiti')">
</CRequisiti>
</CTitleBanner>
</div>
</div>
<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">
<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>
<CRequisiti :statebool="true"
:msgTrue="$t('steps.enter_prog_msg') + '<br><strong>' + $t('steps.enter_prog_msg_2') + '</strong>'"
msgFalse="">
</CRequisiti>
</CTitleBanner>
<div class="text-center">
<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>
</div>
<div class="q-pa-xs text-center">
<div v-if="!!dashboard.myself.name">
<div v-if="!HasNave">
@@ -154,21 +260,6 @@
</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">
@@ -191,13 +282,14 @@
</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 class="row items-center justify-between q-ma-xs" style="width: 100%;">
<div class="row items-center justify-between 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%;">
<div class="row items-center justify-between 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) }}
@@ -208,16 +300,36 @@
</q-chip>
<q-chip class="glossy q-ma-sm" color="purple" text-color="white"
icon="fas fa-ship">
{{ getNaveSognatoreStr(mianave, 0)}}
{{ getNaveSognatoreStr(mianave)}}
</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>
<div class="q-pa-md" style="width: 100%;">
<!--<q-badge color="primary">
{{$t('dashboard.nave')}} {{ myrigaattuale }}.{{ mycolattuale }}
</q-badge>-->
<q-list dense>
<q-item>
<q-item-section avatar>
<q-icon color="blue" name="fas fa-ship"></q-icon>
</q-item-section>
<q-item-section>
<q-slider
v-model="myrigaattuale"
markers
label
:label-value="tools.getlastnavestr(dashboard.lastnave)"
label-always
readonly
:min="tools.getRiganave(mianave.riga)"
:max="tools.getRiganave(mianave.riga)+6">
<q-item clickable>
</q-slider>
</q-item-section>
</q-item>
<q-item>
<q-item-section avatar>
<q-icon :color="colordono(mianave)" inverted size="sm" name="fas fa-gift"
class="gift"></q-icon>
@@ -225,7 +337,15 @@
<q-item-section>
<q-item-label>
<div v-if="mianave.made_gift">{{ $t('dashboard.ho_effettuato_il_dono') }}</div>
<div v-if="mianave.made_gift">
<q-chip class="glossy"
size="md"
text-color="green"
color="white"
icon="fas fa-gift">
{{ $t('dashboard.ho_effettuato_il_dono') }}
</q-chip>
</div>
</q-item-label>
</q-item-section>
</q-item>
@@ -234,15 +354,18 @@
</div>
<div class="row items-center justify-around q-ma-xs">
<q-input v-model="mianave.note" :label="$t('reg.note')"
rounded outlined
debounce="1000"
style="width: 100%;"
@input="change_mynote(mianave)">
<template v-slot:prepend>
<q-icon name="edit"/>
</template>
</q-input>
</div>
<div>
<CMyNave :posizprop="mianave" :key="index"
:navi_partenzaprop="dashboard.navi_partenza" :listanavi="false">
:navi_partenzaprop="dashboard.navi_partenza" :listanavi="false" :dashboard="dashboard">
</CMyNave>
</div>
@@ -265,105 +388,11 @@
</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>
</div>
@@ -372,21 +401,6 @@
</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') + $t('steps.enter_prog_requisiti_ok')"
:msgFalse="$t('steps.enter_prog_completa_requisiti')">
</CRequisiti>
</CTitleBanner>
</div>
</div>
<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>
@@ -398,10 +412,6 @@
</div>
<div v-if="loading" class="text-center" style="height: 50px;">
<q-spinner-gears size="50px" color="primary"/>
</div>
</div>
@@ -424,10 +434,6 @@
</CTitleBanner>
-->
<CCopyBtn :title="$t('reg.reflink')" :texttocopy="getRefLink">
</CCopyBtn>
<br>
<q-dialog v-model="showuserinfo">
@@ -457,10 +463,7 @@
</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 class="q-pa-sm">
<div v-html="$t('steps.vuoi_entrare_nuova_nave')">
</div>
@@ -491,7 +494,7 @@
</q-input>
<q-toggle v-model="notifBot" :label="$t('dashboard.sendnotification')"/>
<!--<q-toggle v-model="notifBot" :label="$t('dashboard.sendnotification')"/>-->
<q-btn class="q-ma-md" rounded size="md"
icon="fas fa-ship"
@@ -500,10 +503,7 @@
:label="$t('steps.nuovo_imbarco')">
</q-btn>
</div>
</CTitleBanner>
</div>
</q-card-section>
</q-card>
</q-dialog>

View File

@@ -1,4 +1,5 @@
.donatore, .mediatore, .sognatore, .title-nave, .intermedio2, .intermedio3 {
.title-nave {
padding: 2px 4px;
margin: 2px 4px;
color: white;
@@ -6,6 +7,33 @@
border-radius: 16px;
}
.donatore, .mediatore, .sognatore, .intermedio1, .intermedio2, .intermedio4, .intermedio5{
color: white;
background-color: lightblue;
padding: 1px 2px;
margin: 1px 2px;
font-size: 0.8rem;
border-radius: 32px;
font-weight: bold;
text-transform: uppercase;
max-width: 200px;
margin-left: auto;
margin-right: auto;
}
.intermedio1{
background-color: indigo;
}
.intermedio2{
background-color: blue;
}
.intermedio4{
background-color: yellow;
color: black;
}
.intermedio5{
background-color: orange;
}
.tutor{
@@ -17,24 +45,19 @@
.donatore {
background-color: red;
text-transform: uppercase;
}
.mediatore {
background-color: green;
text-transform: uppercase;
}
.sognatore {
background-color: purple;
text-transform: uppercase;
}
.intermedio2{
background-color: orange;
}
.intermedio3{
background-color: yellow;
color: black;
}
.cont_donatore, .cont_sognatore, .cont_mediatore, .cont_tragitto, .cont_pos, .cont_intestaz, .cont_pos_intest, .cont_intestaz_small {
border: solid 2px #4198ef;
@@ -51,6 +74,13 @@
.you {
background-color: yellow;
}
.issognatore {
background-color: orangered;
color: white;
font-size: 1.10rem;
border-radius: 64px;
font-weight: bold;
}
.cont_tragitto{
color: blue;
@@ -102,7 +132,7 @@
}
.titlenave{
width: 55px;
width: 75px;
text-align: center;
}

View File

@@ -25,10 +25,12 @@ export default class CMyNave extends MixinNave {
@Prop({ required: false, default: null }) public posizprop
@Prop({ required: true }) public navi_partenzaprop: any[]
@Prop({ required: true }) public listanavi: boolean
@Prop({ required: false, default: null }) public dashboard: any
public navi_partenza: any[]
public $t
public $v
public link_chat: string = ''
public tabnave: string = 'donatore'
public cosa: string = 'tragitto'
public cosa2: string = 'donatore'
public nave: any = null
@@ -50,6 +52,11 @@ export default class CMyNave extends MixinNave {
public loading: boolean = false
public showmsguser: boolean = false
public seluser = null
public showtesto: boolean = false
public notifBot: boolean = true
public deleteUser: boolean = true
public AddImbarco: boolean = true
public seltesto: string = ''
public msg_tosend_user: string = ''
public username_sostituire: string = ''
public MyPagination: {
@@ -59,7 +66,7 @@ export default class CMyNave extends MixinNave {
rowsNumber: number, // specifying this determines pagination is server-side
rowsPerPage: number
} = { sortBy: 'index', descending: false, page: 1, rowsNumber: 10, rowsPerPage: 10 }
public coldonatori: any[] = [
public coldonatori_cell: any[] = [
/*{
name: 'index',
required: true,
@@ -70,6 +77,23 @@ export default class CMyNave extends MixinNave {
},*/
{ 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: '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: 'Conferm.', field: 'made_gift', sortable: true },
]
public coldonatori: any[] = [
{
name: 'index',
required: true,
label: 'Num',
align: 'left',
field: 'index',
sortable: true
},
{ name: 'nave', align: 'center', label: 'Gift Chat', field: 'nave', sortable: true },
{ name: 'name', align: 'center', label: 'Nome Cognome', field: 'name', sortable: true },
{ name: 'posizione', align: 'center', label: 'Posizione', field: 'posizione', 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: 'Conferm.', field: 'made_gift', sortable: true },
@@ -130,6 +154,17 @@ export default class CMyNave extends MixinNave {
this.aggiorna()
}
public created() {
if (!!tools.getCookie(tools.TABBED_NAVE)) {
this.tabnave = tools.getCookie(tools.TABBED_NAVE)
}
}
public changetab(val) {
tools.setCookie(tools.TABBED_NAVE, val)
// console.log('setcook', val)
}
public aggiorna() {
this.riga = tools.getValDb('riga', false, 1)
@@ -232,6 +267,12 @@ export default class CMyNave extends MixinNave {
}
public sonoMediatore() {
if (!this.nave)
return false
if (!this.nave.rec.donatore.recmediatore)
return false
if (!!this.nave) {
if (!!this.nave.rec.donatore)
return this.nave.rec.donatore.recmediatore.ind_order === this.myindorder
@@ -245,6 +286,15 @@ export default class CMyNave extends MixinNave {
}
public partenza_primo_donatore() {
if (!!this.nave) {
if (!!this.mediatore_navepers) {
return this.mediatore_navepers.date_gift_chat_open
}
}
return ''
}
public fine_doni() {
if (!!this.nave) {
if (!!this.mediatore_navepers) {
return this.mediatore_navepers.date_start
@@ -255,13 +305,13 @@ export default class CMyNave extends MixinNave {
public getGiornoDelDono() {
if (!!this.nave) {
return tools.getstrDate(this.donatore_navepers.date_start)
return tools.getstrDate(this.donatore_navepers.date_gift_chat_open)
}
}
get GiornoDelDonoArrivato() {
if (!!this.nave) {
return tools.isDateArrived(this.donatore_navepers.date_start)
return tools.isDateArrived(this.donatore_navepers.date_gift_chat_open)
}
return false
}
@@ -408,12 +458,18 @@ export default class CMyNave extends MixinNave {
}
public sonoSecondaTessituraDonatore() {
const mediatore = this.getmediatore()
for (const rec of this.nave.rec.donatore.arrdonatori) {
if (!!rec) {
if (mediatore) {
if ((mediatore.ind_order === rec.ind_order) && (rec.num_tess % 2) === 0)
return true
if (!!this.nave) {
const mediatore = this.getmediatore()
if (!!this.nave.rec.donatore && !!mediatore) {
if (!!this.nave.rec.donatore.arrdonatori) {
for (const rec of this.nave.rec.donatore.arrdonatori) {
if (!!rec) {
if (mediatore) {
if ((mediatore.ind_order === rec.ind_order) && (rec.num_tess % 2) === 0)
return true
}
}
}
}
}
}
@@ -426,8 +482,10 @@ export default class CMyNave extends MixinNave {
}
public getmediatore() {
if (!!this.nave.rec.mediatore)
return this.nave.rec.mediatore.recmediatore
if (!!this.nave) {
if (!!this.nave.rec.mediatore)
return this.nave.rec.mediatore.recmediatore
}
return null
}
@@ -455,7 +513,10 @@ export default class CMyNave extends MixinNave {
return this.donatore_navepers.link_chat
}
public getclassSelect(rec) {
public getclassSelect(rec, sognatore, index) {
if (sognatore && index === 0) {
return ' issognatore'
}
if (rec.ind_order === this.myindorder)
return ' you'
}
@@ -467,24 +528,24 @@ export default class CMyNave extends MixinNave {
else {
ris = (this.getrigaNaveByInd(ind)) + '.' + this.getcolNaveByInd(ind)
}
let add = ''
// for (let index = 0; index < (4 - ris.length); index++) {
// add += '&nbsp;'
// }
ris = add + ris
return ris
}
public getdatanave(rec) {
if (!this.nave)
return ''
if (this.sonoDonatore()) {
if (rec.ind === 1) {
return tools.getstrshortDate(this.nave.date_start) // Donatore
return tools.getstrshortDate(this.nave.date_gift_chat_open) // Donatore
}
}
if (this.sonoMediatore()) {
if (!rec)
return false
if (rec.ind === 4) {
return tools.getstrshortDate(this.nave.date_start) // Mediatore
return tools.getstrshortDate(this.nave.date_gift_chat_open) // Mediatore
}
}
@@ -492,13 +553,24 @@ export default class CMyNave extends MixinNave {
const col = this.getcolNaveByInd(rec.ind)
const mynavepart = this.getnavePartenzaByRigaCol(riga, col)
if (!!mynavepart) {
if (!!mynavepart.date_start)
return tools.getstrshortDate(mynavepart.date_start)
if (!!mynavepart.date_gift_chat_open)
return tools.getstrshortDate(mynavepart.date_gift_chat_open)
}
return ' --/-- '
// return this.getNavePartByInd(rec.ind)
}
public getlinkchat(row) {
const riga = tools.getRiganave(row.riga)
const col = tools.getColnave(row.col)
const mynavepart = this.getnavePartenzaByRigaCol(riga, col)
if (!!mynavepart) {
if (!!mynavepart.link_chat)
return mynavepart.link_chat
}
}
public getTutor(rec) {
const mynavepart = this.getnavePartenzaByRigaCol(rec.riga, rec.col)
if (!!mynavepart)
@@ -551,10 +623,12 @@ export default class CMyNave extends MixinNave {
}
public getclpos(rec) {
if (this.NaveeseguitabyInd(this.getrigaNaveByInd(rec.ind))) {
return 'you'
} else {
return ''
if (!!this.dashboard) {
if (this.dashboard.lastnave.riga >= this.getrigaNaveByInd(rec.ind)) {
return 'you'
} else {
return ''
}
}
}
@@ -634,16 +708,27 @@ export default class CMyNave extends MixinNave {
return tools.getstrshortDate(mydata)
}
public gettitlemediatore() {
return this.getdatastr(this.partenza_primo_donatore()) + ' ' + this.$t('dashboard.nave') + ' ' + this.getisProvvisoriaMediatoreStr() + this.mediatore.riga + '.' + this.mediatore.col + ' ' + '🎁' + this.$t('ws.sitename')
public datefromto() {
if (this.partenza_primo_donatore() !== this.fine_doni())
// return this.$t('words.da') + ' ' + this.getdatastr(this.partenza_primo_donatore()) + ' ' + this.$t('words.a') + ' ' + this.getdatastr(this.fine_doni())
return this.getdatastr(this.partenza_primo_donatore()) + ' - ' + this.getdatastr(this.fine_doni())
else
return this.getdatastr(this.fine_doni())
}
public gettitlemediatore(acapo) {
let add = ' - '
if (acapo)
add = ' '
return this.datefromto() + add + this.$t('dashboard.nave') + ' ' + this.getisProvvisoriaMediatoreStr() + this.mediatore.riga + '.' + this.mediatore.col + ' ' + '🎁' + this.$t('ws.sitename')
}
public gettitledonatore() {
return this.getdatastr(this.donatore_navepers.date_start) + ' ' + this.$t('dashboard.nave') + ' ' + this.getisProvvisoriaStr() + this.donatore_navepers.riga + '.' + this.donatore_navepers.col + ' ' + '🎁' + this.$t('ws.sitename')
return this.getdatastr(this.donatore_navepers.date_gift_chat_open) + ' ' + this.$t('dashboard.nave') + ' ' + this.getisProvvisoriaStr() + this.donatore_navepers.riga + '.' + this.donatore_navepers.col + ' ' + '🎁' + this.$t('ws.sitename')
}
public gettesto() {
return this.$t('dashboard.sonomediatore', { nomenave: this.gettitlemediatore() })
return this.$t('dashboard.sonomediatore', { nomenave: this.gettitlemediatore(false) })
}
public getisProvvisoriaStr() {
@@ -761,16 +846,17 @@ export default class CMyNave extends MixinNave {
public getpartenza() {
let myrec = null
if (this.listanavi)
myrec = this.nave.rec
else {
if (this.listanavi) {
if (!!this.nave)
myrec = this.nave.rec
} else {
if (!!this.posiz)
myrec = this.posiz.rec
}
if (!!myrec)
if (!!myrec.donatore.navepersistente)
return tools.getstrDate(myrec.donatore.navepersistente.date_start)
return tools.getstrDate(myrec.donatore.navepersistente.date_gift_chat_open)
return ''
}
@@ -826,6 +912,7 @@ export default class CMyNave extends MixinNave {
public Chiudi() {
this.showmsguser = false
this.showtesto = false
}
public InviaMsgAUser() {
@@ -885,7 +972,15 @@ export default class CMyNave extends MixinNave {
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 },
param2: {
username: usernamesost,
username_da_sostituire: user.username,
riga: user.riga,
col: user.col,
notifBot: this.notifBot,
deleteUser: this.deleteUser,
AddImbarco: this.AddImbarco,
},
param3: notifBottxt
})
}
@@ -894,4 +989,55 @@ export default class CMyNave extends MixinNave {
return tools.getRiganave(row.riga) + '.' + tools.getColnave(row.col)
}
get gettitolonave() {
if (this.listanavi)
return this.titolonave()
else
return this.$t('dashboard.tragitto')
}
get getcol() {
if (tools.isMobile())
return this.coldonatori_cell
else
return this.coldonatori
}
public getlivellostr(index) {
let str = ''
str += (7 - index) + '° - '
if (index === 0)
str += this.$t('dashboard.sognatore')
else if ((index === 1) || (index === 2) || (index === 4) || (index === 5))
str += this.$t('dashboard.intermedio')
else if (index === 3)
str += this.$t('dashboard.mediatore')
else if (index === 6)
str += this.$t('dashboard.donatori')
return str
}
public getclasselivello(index) {
if (index === 0)
return 'sognatore'
else if (index === 3)
return 'mediatore'
else if (index === 6)
return 'donatore'
else
return 'intermedio' + index
}
public async Mostraplacca(riga, col) {
const data = {
riga,
col
}
this.showtesto = true
this.seltesto = await GlobalStore.actions.GetData({ data })
}
}

View File

@@ -1,438 +1,479 @@
<template>
<div>
<div class="text-center">
<CTitleBanner v-if="!!getpartenza()" class=""
:title="titolonave()"
:title="gettitolonave"
:bgcolor="getcolortitle()"
clcolor="text-white"
mystyle="" myclass="myshad" canopen="true" :visible="false" @apri="apri">
:visible="!!nave && !FattoDono && !sonoSecondaTessituraDonatore() && !listanavi"
mystyle="" myclass="myshad" canopen="true" @apri="apri">
<div class="">
<q-chip class="glossy q-ma-sm" color="orange" text-color="white" icon="star">
{{getposizione()}}
</q-chip>
<div class="row items-center justify-evenly no-wrap">
<div class="cont_pos_intest">N</div>
<div class="cont_intestaz q-mx-sm passoint"
v-html="$t('dashboard.nome_dei_passaggi')"></div>
<div class="cont_intestaz titlenave">{{$t('dashboard.nave')}}</div>
<div class="cont_intestaz datanave_int" v-html="$t('dashboard.data_partenza')"></div>
<div class="cont_intestaz_small" v-html="$t('dashboard.doni_inviati')"></div>
</div>
<div v-for="rec in tragitto" :key="rec.ind">
<div :class="`row items-center justify-evenly ` + rec.extracl">
<div :class="`cont_pos ` + getclpos(rec)">
{{ rec.ind }}
</div>
<div v-if="rec.title_lang" class="passo">
<div :class="rec.extracl">
<q-chip class="glossy" :color="rec.color" text-color="white">
{{ $t(rec.title_lang) }}
</q-chip>
</div>
</div>
<div class="titlenave">
<q-chip class="glossy text-small" :color="rec.color" text-color="white">
<div class="" v-html="gettitlenave(rec.ind)"></div>
</q-chip>
</div>
<div class="datanave">
<q-chip class="glossy" :color="rec.color" text-color="white">
{{ getdatanave(rec) }}
</q-chip>
</div>
<q-icon color="green" inverted size="sm" :name="geticon(rec)" class="gift"></q-icon>
</div>
</div>
<br>
<div style="margin-bottom: 8px;"></div>
</div>
<q-tabs
v-model="tabnave"
dense
class="bg-blue text-white shadow-2"
indicator-color="white"
align="center"
narrow-indicator
@input="changetab">
<q-tab name="donatore" icon="fas fa-gift" :label="$t('dashboard.donatore')"></q-tab>
<q-tab name="mediatore" icon="fas fa-comments" :label="$t('dashboard.mediatore')"></q-tab>
<q-tab name="sognatore" icon="fas fa-gifts" :label="$t('dashboard.sognatore')"></q-tab>
</q-tabs>
<q-tab-panels v-model="tabnave" animated>
<q-tab-panel name="donatore">
<div v-if="mediatore" class="">
<div class="q-my-sm">
<div class="q-ma-md q-butter-sm" v-if="!!linkchatopen">
{{$t('dashboard.gift_chat')}}:<br>
<div class="q-ma-md">
<q-btn rounded color="primary" icon="fab fa-telegram"
:label="$t('dashboard.entra_in_gift_chat')"
type="a"
:href="linkchatopen" target="_blank"></q-btn>
<br>
</div>
</div>
<div v-if="sonoDonatore()">
<div v-if="sonoSecondaTessituraDonatore()"
v-html="$t('dashboard.sonodonatore_seconda_tessitura')">
</div>
<div v-else>
<div v-if="!FattoDono" v-html="$t('dashboard.sonodonatore')">
</div>
<div v-if="!FattoDono && !donatore_navepers.provvisoria" class="text-evidente bordo_stondato">
<div>{{$t('dashboard.quando_eff_il_tuo_dono')}}: <strong>{{ getGiornoDelDono()
}}</strong><br>
</div>
<div>
{{$t('dashboard.metodi_disponibili')}}:
<CMyChipList
:type="tools.FieldType.multiselect"
:value="getMetodoPagamentoSognatore()"
:options="db_fieldsTable.getTableJoinByName('paymenttypes')"
:optval="db_fieldsTable.getKeyByTable('paymenttypes')"
:optlab="db_fieldsTable.getLabelByTable('paymenttypes')"
:opticon="db_fieldsTable.getIconByTable('paymenttypes')"></CMyChipList>
</div>
<div>
{{$t('dashboard.importo')}}: <strong>33</strong>
</div>
<br>
<CTitleBanner class="q-pa-xs"
:title="$t('dashboard.come_inviare_regalo_con_paypal')"
bgcolor="bg-primary"
clcolor="text-white"
myclass="myshad" canopen="true" :visible="false">
<CVideo myvideokey="5rp_XEV6Mzg">
</CVideo>
</CTitleBanner>
</div>
<div class="text-evidente2 bordo_stondato_blu2">
<div v-if="GiornoDelDonoArrivato && !donatore_navepers.provvisoria">
<div v-if="!FattoDono"
v-html="$t('dashboard.effettua_il_dono', {email: getemailPagamentoSognatore() })">
</div>
<div v-if="!FattoDono">
<br/>
<div v-if="!donoinviato">
{{$t('dashboard.clicca_conferma_dono')}}:<br>
<div class="row justify-center q-ma-sm">
<q-btn push
rounded
color="positive"
size="md"
:label="$t('dashboard.ho_effettuato_il_dono')"
icon="fas fa-gift"
@click="HoEffettuatoIlDono">
</q-btn>
</div>
</div>
<div v-else>
<div class="row justify-center q-ma-sm">
<q-chip class="glossy"
text-color="white"
color="positive"
icon="fas fa-gift">
{{ $t('dashboard.ho_effettuato_il_dono') }}
</q-chip>
</div>
</div>
</div>
<div v-if="FattoDono">
<q-chip class=""
color="white"
text-color="green"
icon="fas fa-gift">
{{ $t('dashboard.dono_ricevuto') }}
</q-chip>
</div>
</div>
<div v-else v-html="$t('dashboard.qui_compariranno_le_info')">
</div>
</div>
</div>
</div>
<br>
<div class="column justify-center items-center q-gutter-md tutor">
<q-btn rounded color="blue"
class="title-nave"
:label="gettitledonatore(true)"
@click="Mostraplacca(donatore.riga, donatore.col)">
</q-btn>
<!--<div class="title-nave clBorderSteps">{{gettitledonatore()}}</div>-->
<div v-if="getTutor(donatore)" class="clBorderTutor q-ma-sm selezione cursor-pointer"
@click="clickseluser({name: getTutor(donatore), surname: '', username: getTutor_username(donatore), profile: { cell: '' } })">
{{ $t('dashboard.tutor') }}: {{getTutor(donatore)}}
</div>
</div>
<div class="">
<div class="row justify-center q-gutter-md">
<div v-if="nave.rec.donatore.recsognatori">
<div v-for="(sognatore, index) in nave.rec.donatore.recsognatori"
:key="10+index">
<div :class="getclasselivello(index)">{{ getlivellostr(index, false)}}:</div>
<div v-if="sognatore"
:class="`cont_sognatore ` + getclassSelect(sognatore, true, index)">
A{{3 - index}} - {{ sognatore.name }} {{ sognatore.surname }}
({{sognatore.username }})
</div>
</div>
<div class="">
<div :class="getclasselivello(3)">{{ getlivellostr(3, false)}}:</div>
<div
:class="`cont_mediatore cursor-pointer selezione ` + getclassSelect(nave.rec.donatore.recmediatore)"
@click="clickseluser(nave.rec.donatore.recmediatore)">
{{ nave.rec.donatore.recmediatore.name }} {{
nave.rec.donatore.recmediatore.surname }} ({{
nave.rec.donatore.recmediatore.username }})
</div>
</div>
<div class="">
<div :class="getclasselivello(4)">{{ getlivellostr(4, true)}}:</div>
<div v-for="(terra, index) in nave.rec.donatore.arrterra" :key="index">
<div v-if="terra" :class="`cont_donatore text-small ` + getclassSelect(terra)">
B{{index + 1}} - {{ terra.name }} {{ terra.surname }} ({{
terra.username
}}) - {{
terra.riga}}.{{terra.col}}<br>
</div>
</div>
</div>
<div class="">
<div :class="getclasselivello(5)">{{ getlivellostr(5, false)}}:</div>
<div v-for="(aria, index) in nave.rec.donatore.arraria" :key="index">
<div v-if="aria" :class="`cont_donatore text-small ` + getclassSelect(aria)">
C{{index + 1}} - {{ aria.name }} {{ aria.surname }} ({{
aria.username
}}) - {{
aria.riga}}.{{aria.col}}<br>
</div>
</div>
</div>
<div :class="getclasselivello(6)">{{ getlivellostr(6)}}:</div>
<div v-for="(donatore, index) in nave.rec.donatore.arrdonatori" :key="index">
<div v-if="donatore"
:class="`cont_donatore text-small row ` + getclassSelect(donatore)"
@click="clickseluser(donatore)">
<div>
{{ getindex(donatore, index + 1) }} - {{ donatore.name }} {{
donatore.surname }} ({{
donatore.username }}) - {{
donatore.riga}}.{{donatore.col}}<br>
</div>
<div>
<q-icon v-if="donatore.made_gift" color="green" inverted size="sm"
name="fas fa-gift" class="gift"></q-icon>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</q-tab-panel>
<q-tab-panel name="mediatore">
<div v-if="mediatore" class="">
<div class="q-ma-sm">
<div class="column justify-center items-center q-gutter-md tutor">
<q-btn rounded color="blue"
class="title-nave"
:label="gettitlemediatore(true)"
@click="Mostraplacca(donatore.riga, donatore.col)">
</q-btn>
<!--<div class="title-nave clBorderSteps" v-html="gettitlemediatore(true)"></div>-->
<div v-if="getTutor(mediatore)" class=" clBorderTutor q-ma-sm selezione cursor-pointer"
@click="clickseluser({name: getTutor(mediatore), surname: '', username: getTutor_username(mediatore), profile: { cell: '' } })">
{{ $t('dashboard.tutor') }}: {{getTutor(mediatore)}}
</div>
</div>
<div v-if="isDefinitivaMediatore()" class="q-my-md">
<div class="text-left" v-html="gettesto()"></div>
<div>
<q-input v-model="link_chat" :label="$t('dashboard.link_chat')"
debounce="1000"
input-class="myinput-area"
@input="change_link_chat">
</q-input>
<div class="row justify-center centermydiv q-gutter-sm" style="max-width: 420px;">
<q-btn rounded text-color="secondary" icon="fab fa-telegram"
:label="$t('dashboard.controlla_donatori')"
@click="InviaLinkChatADonatori(false)"></q-btn>
<q-btn rounded text-color="primary" icon="fab fa-telegram"
:disable="!linkchatesiste"
:label="$t('dashboard.invia_link_chat')"
@click="InviaLinkChatADonatori(true)"></q-btn>
</div>
</div>
</div>
<div class="">
<div class="row justify-center q-gutter-md">
<div v-if="nave.rec.mediatore.recsognatori">
<div v-for="(sognatore, index) in nave.rec.mediatore.recsognatori"
:key="10+index">
<div :class="getclasselivello(index)">{{ getlivellostr(index, false)}}:</div>
<div v-if="sognatore"
:class="`cont_sognatore ` + getclassSelect(sognatore, true, index)">
A{{3 - index}} - {{ sognatore.name }} {{ sognatore.surname }}
({{sognatore.username }})
</div>
</div>
<div class="">
<div :class="getclasselivello(3)">{{ getlivellostr(3, false)}}:</div>
<div
:class="`cont_mediatore cursor-pointer selezione ` + getclassSelect(nave.rec.mediatore.recmediatore)"
@click="clickseluser(nave.rec.mediatore.recmediatore)">
{{ nave.rec.mediatore.recmediatore.name }} {{
nave.rec.mediatore.recmediatore.surname }} ({{
nave.rec.mediatore.recmediatore.username }})
</div>
</div>
<div class="">
<div :class="getclasselivello(4)">{{ getlivellostr(4, true)}}:</div>
<div v-for="(terra, index) in nave.rec.mediatore.arrterra" :key="index">
<div v-if="terra" :class="`cont_donatore text-small ` + getclassSelect(terra)">
B{{index + 1}} - {{ terra.name }} {{ terra.surname }} ({{
terra.username
}}) - {{
terra.riga}}.{{terra.col}}<br>
</div>
</div>
</div>
<div class="">
<div :class="getclasselivello(5)">{{ getlivellostr(5, false)}}:</div>
<div v-for="(aria, index) in nave.rec.mediatore.arraria" :key="index">
<div v-if="aria" :class="`cont_donatore text-small ` + getclassSelect(aria)">
C{{index + 1}} - {{ aria.name }} {{ aria.surname }} ({{
aria.username
}}) - {{
aria.riga}}.{{aria.col}}<br>
</div>
</div>
</div>
<div :class="getclasselivello(6)">{{ getlivellostr(6)}}:</div>
<div v-for="(donatore, index) in nave.rec.mediatore.arrdonatori" :key="index">
<div v-if="donatore"
:class="`cont_donatore text-small row ` + getclassSelect(donatore)"
@click="clickseluser(donatore)">
<div>
{{ getindex(donatore, index + 1) }} - {{ donatore.name }} {{
donatore.surname }} ({{
donatore.username }}) - {{
donatore.riga}}.{{donatore.col}}<br>
</div>
<div>
<q-icon v-if="donatore.made_gift" color="green" inverted size="sm"
name="fas fa-gift" class="gift"></q-icon>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</q-tab-panel>
<q-tab-panel name="sognatore">
<div v-if="mediatore" class="">
<div v-if="sonoSognatore" class="q-ma-sm">
<div class="text-evidente bordo_stondato justify-between q-pa-xs-sm">
<div class="">
<div>
{{$t('dashboard.doni_ricevuti')}}:
</div>
<div class="ricevuti dati">{{getDoniConfermati()}}</div>
</div>
<div class="">
<div class="inviati">
{{$t('dashboard.doni_inviati_da_confermare')}}:
</div>
<div class="inviati dati">{{getDoniAttesaDiConferma()}}</div>
</div>
<div class="">
<div class="">
{{$t('dashboard.doni_mancanti')}}:
</div>
<div class="mancanti dati">{{getDoniMancanti()}}</div>
</div>
</div>
<q-table
dense
color="primary"
dense
flat
table-style="padding: 0px;"
:title="$t('dashboard.donatori')"
:data="arrdonatori"
:columns="getcol"
:nodataLabel="$t('grid.nodata')"
:Pagination.sync="MyPagination"
row-key="index">
<template v-slot:body="props">
<q-tr :props="props">
<q-td v-if="!tools.isMobile()" key="index" :props="props">
{{ props.row.index }}
</q-td>
<q-td v-if="!tools.isMobile()" key="nave" :props="props">
<div style="font-size:1rem;"><a :href="getlinkchat(props.row)" target="_blank">{{ getnavestr(props.row)}}</a></div>
</q-td>
<q-td key="name" :props="props">
<q-btn v-if="!!props.row.profile" flat rounded color="blue"
:size="tools.getsize()"
:label="props.row.name + ' ' + props.row.surname"
@click="clickseluser(props.row)">
</q-btn>
<div v-if="tools.isMobile()">
<br>
{{'(' + getnavestr(props.row) + ')'}} - {{ tools.getstrshortDateTime(props.row.date_made_gift) }}
</div>
</q-td>
<q-td v-if="!tools.isMobile()" key="posizione" :props="props">
{{ props.row.riga }}.{{ props.row.col }}
</q-td>
<q-td v-if="!tools.isMobile()" key="date_made_gift" :props="props">
{{ tools.getstrshortDateTime(props.row.date_made_gift) }}
</q-td>
<q-td key="made_gift" :props="props">
<div class="row justify-center">
<q-btn v-if="!props.row.made_gift"
push
rounded
color="primary"
size="md"
:label="$t('dashboard.dono_ricevuto_3', {donatore: props.row.name })"
@click="HoRicevutoIlDono(props.row)">
</q-btn>
</div>
<div v-if="props.row.made_gift">
<q-chip class="glossy"
text-color="white"
color="positive"
icon="fas fa-gift">
{{ $t('dialog.ok')
}}
</q-chip>
</div>
</q-td>
</q-tr>
</template>
</q-table>
</div>
</div>
</q-tab-panel>
</q-tab-panels>
<!--<CTitleBanner v-if="!!getpartenza()" class=""
:title="titolonave()"
:bgcolor="getcolortitle()"
clcolor="text-white"
mystyle="" myclass="myshad" canopen="true" :visible="false" @apri="apri">-->
<div v-if="mediatore" class="flex flex-center column justify-center">
<CTitleBanner v-if="nave" class=""
:title="$t('dashboard.tragitto')"
bgcolor="bg-primary"
clcolor="text-white"
mystyle="" myclass="myshad" canopen="true">
<q-chip class="glossy q-ma-sm" color="orange" text-color="white" icon="star">
{{getposizione()}}
</q-chip>
<div class="row items-center no-wrap">
<div class="cont_pos_intest">N</div>
<div class="cont_intestaz q-mx-sm passoint"
v-html="$t('dashboard.nome_dei_passaggi')"></div>
<div class="cont_intestaz titlenave">{{$t('dashboard.nave')}}</div>
<div class="cont_intestaz datanave_int" v-html="$t('dashboard.data_partenza')"></div>
<div class="cont_intestaz_small" v-html="$t('dashboard.doni_inviati')"></div>
</div>
<div v-for="rec in tragitto" :key="rec.ind">
<div :class="`row items-center ` + rec.extracl">
<div :class="`cont_pos ` + getclpos(rec)">
{{ rec.ind }}
</div>
<div v-if="rec.title_lang" class="passo">
<div :class="rec.extracl">
<q-chip class="glossy" :color="rec.color" text-color="white">
{{ $t(rec.title_lang) }}
</q-chip>
</div>
</div>
<div class="titlenave">
<q-chip class="glossy" :color="rec.color" text-color="white">
<div class="" v-html="gettitlenave(rec.ind)"></div>
</q-chip>
</div>
<div class="datanave">
<q-chip class="glossy" :color="rec.color" text-color="white">
{{ getdatanave(rec) }}
</q-chip>
</div>
<q-icon color="green" inverted size="sm" :name="geticon(rec)" class="gift"></q-icon>
</div>
</div>
</CTitleBanner>
<CTitleBanner v-if="nave" class=""
:title="$t('dashboard.donatore')"
bgcolor="bg-primary"
clcolor="text-white"
mystyle="" myclass="myshad" canopen="true">
<br/>
<div class="q-ma-sm">
<div class="column justify-center items-center q-gutter-md tutor">
<div class="title-nave clBorderSteps">{{gettitledonatore()}}</div>
<div v-if="getTutor(donatore)" class="clBorderTutor q-ma-sm selezione cursor-pointer"
@click="clickseluser({name: getTutor(donatore), surname: '', username: getTutor_username(donatore), profile: { cell: '' } })">
{{ $t('dashboard.tutor') }}: {{getTutor(donatore)}}
</div>
</div>
<div class="">
<div class="row justify-center q-gutter-md">
<div v-if="nave.rec.donatore.recsognatori">
<div class="sognatore">{{$t('dashboard.sognatori')}}:</div>
<div v-for="(sognatore, index) in nave.rec.donatore.recsognatori"
:key="10+index">
<div v-if="sognatore"
:class="`cont_sognatore ` + getclassSelect(sognatore)">
A{{3 - index}} - {{ sognatore.name }} {{ sognatore.surname }}
({{sognatore.username }})
</div>
</div>
<div class="">
<div class="mediatore text-uppercase">{{$t('dashboard.mediatore')}}:</div>
<div
:class="`cont_mediatore cursor-pointer selezione ` + getclassSelect(nave.rec.donatore.recmediatore)"
@click="clickseluser(nave.rec.donatore.recmediatore)">
{{ nave.rec.donatore.recmediatore.name }} {{
nave.rec.donatore.recmediatore.surname }} ({{
nave.rec.donatore.recmediatore.username }})
</div>
</div>
<div class="">
<div class="intermedio3">{{$t('dashboard.intermedio')}}3:</div>
<div v-for="(terra, index) in nave.rec.donatore.arrterra" :key="index">
<div v-if="terra" :class="`cont_donatore ` + getclassSelect(terra)">
B{{index + 1}} - {{ terra.name }} {{ terra.surname }} ({{
terra.username
}}) - {{
terra.riga}}.{{terra.col}}<br>
</div>
</div>
</div>
<div class="">
<div class="intermedio2">{{$t('dashboard.intermedio')}}2:</div>
<div v-for="(aria, index) in nave.rec.donatore.arraria" :key="index">
<div v-if="aria" :class="`cont_donatore ` + getclassSelect(aria)">
C{{index + 1}} - {{ aria.name }} {{ aria.surname }} ({{
aria.username
}}) - {{
aria.riga}}.{{aria.col}}<br>
</div>
</div>
</div>
<div class="donatore text-uppercase">{{$t('dashboard.donatori')}}:</div>
<div v-for="(donatore, index) in nave.rec.donatore.arrdonatori" :key="index">
<div v-if="donatore"
:class="`cont_donatore row ` + getclassSelect(donatore)"
@click="clickseluser(donatore)">
<div>
{{ getindex(donatore, index + 1) }} - {{ donatore.name }} {{
donatore.surname }} ({{
donatore.username }}) - {{
donatore.riga}}.{{donatore.col}}<br>
</div>
<div>
<q-icon v-if="donatore.made_gift" color="green" inverted size="sm"
name="fas fa-gift" class="gift"></q-icon>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="q-ma-md q-butter-sm" v-if="!!linkchatopen">
{{$t('dashboard.gift_chat')}}:<br>
<div class="q-ma-md">
<q-btn rounded color="primary" icon="fab fa-telegram"
:label="$t('dashboard.entra_in_gift_chat')"
type="a"
:href="linkchatopen" target="_blank"></q-btn>
<br>
</div>
</div>
<div v-if="sonoDonatore()">
<div v-if="sonoSecondaTessituraDonatore()"
v-html="$t('dashboard.sonodonatore_seconda_tessitura')">
</div>
<div v-else>
<div v-if="!FattoDono" v-html="$t('dashboard.sonodonatore')">
</div>
<div v-if="!FattoDono && !donatore_navepers.provvisoria" class="text-evidente bordo_stondato">
<div>{{$t('dashboard.quando_eff_il_tuo_dono')}}: <strong>{{ getGiornoDelDono()
}}</strong><br>
</div>
<div>
{{$t('dashboard.metodi_disponibili')}}:
<CMyChipList
:type="tools.FieldType.multiselect"
:value="getMetodoPagamentoSognatore()"
:options="db_fieldsTable.getTableJoinByName('paymenttypes')"
:optval="db_fieldsTable.getKeyByTable('paymenttypes')"
:optlab="db_fieldsTable.getLabelByTable('paymenttypes')"
:opticon="db_fieldsTable.getIconByTable('paymenttypes')"></CMyChipList>
</div>
<div>
{{$t('dashboard.importo')}}: <strong>33</strong>
</div>
<br>
<CTitleBanner class="q-pa-xs"
:title="$t('dashboard.come_inviare_regalo_con_paypal')"
bgcolor="bg-primary"
clcolor="text-white"
myclass="myshad" canopen="true" :visible="false">
<CVideo myvideokey="5rp_XEV6Mzg">
</CVideo>
</CTitleBanner>
</div>
<div class="text-evidente bordo_stondato_blu">
<div v-if="GiornoDelDonoArrivato && !donatore_navepers.provvisoria">
<div v-if="!FattoDono"
v-html="$t('dashboard.effettua_il_dono', {email: getemailPagamentoSognatore() })">
</div>
<div v-if="!FattoDono">
<br/>
<div v-if="!donoinviato">
{{$t('dashboard.clicca_conferma_dono')}}:<br>
<div class="row justify-center q-ma-sm">
<q-btn push
rounded
color="positive"
size="md"
:label="$t('dashboard.ho_effettuato_il_dono')"
icon="fas fa-gift"
@click="HoEffettuatoIlDono">
</q-btn>
</div>
</div>
<div v-else>
<div class="row justify-center q-ma-sm">
<q-chip class="glossy"
text-color="white"
color="positive"
icon="fas fa-gift">
{{ $t('dashboard.ho_effettuato_il_dono') }}
</q-chip>
</div>
</div>
</div>
<div v-if="FattoDono">
<q-chip class="glossy"
color="positive"
text-color="white"
icon="fas fa-gift">
{{ $t('dashboard.dono_ricevuto') }}
</q-chip>
</div>
</div>
<div v-else v-html="$t('dashboard.qui_compariranno_le_info')">
</div>
</div>
</div>
</div>
</div>
</CTitleBanner>
<CTitleBanner v-if="nave" class=""
:title="$t('dashboard.mediatore')"
bgcolor="bg-primary"
clcolor="text-white"
mystyle="" myclass="myshad" canopen="true" :visible="false">
<br/>
<div class="q-ma-sm">
<div class="column justify-center items-center q-gutter-md tutor">
<div class="title-nave clBorderSteps">{{gettitlemediatore()}}</div>
<div v-if="getTutor(mediatore)" class=" clBorderTutor q-ma-sm selezione cursor-pointer"
@click="clickseluser({name: getTutor(mediatore), surname: '', username: getTutor_username(mediatore), profile: { cell: '' } })">
{{ $t('dashboard.tutor') }}: {{getTutor(mediatore)}}
</div>
</div>
<div class="">
<div class="row justify-center q-gutter-md">
<div v-if="nave.rec.mediatore.recsognatori">
<div class="sognatore">{{$t('dashboard.sognatori')}}:</div>
<div v-for="(sognatore, index) in nave.rec.mediatore.recsognatori"
:key="10+index">
<div v-if="sognatore"
:class="`cont_sognatore selezione cursor-pointer ` + getclassSelect(sognatore)"
@click="clickseluser(sognatore)">
A{{3 - index}} - {{ sognatore.name }} {{ sognatore.surname }}
({{sognatore.username }})
</div>
</div>
<div class="">
<div class="mediatore text-uppercase">{{$t('dashboard.mediatore')}}:</div>
<div :class="`cont_mediatore ` + getclassSelect(nave.rec.mediatore.recmediatore)">
{{ nave.rec.mediatore.recmediatore.name }} {{
nave.rec.mediatore.recmediatore.surname }} ({{
nave.rec.mediatore.recmediatore.username }})
</div>
</div>
<div class="">
<div class="intermedio3">{{$t('dashboard.intermedio')}}3:</div>
<div v-for="(terra, index) in nave.rec.mediatore.arrterra" :key="index">
<div v-if="terra" :class="`cont_donatore ` + getclassSelect(terra)">
B{{index + 1}} - {{ terra.name }} {{ terra.surname }} ({{
terra.username
}})
- {{
terra.riga}}.{{terra.col}}<br>
</div>
</div>
</div>
<div class="">
<div class="intermedio2">{{$t('dashboard.intermedio')}}2:</div>
<div v-for="(aria, index) in nave.rec.mediatore.arraria" :key="index">
<div v-if="aria" :class="`cont_donatore ` + getclassSelect(aria)">
C{{index + 1}} - {{ aria.name }} {{ aria.surname }} ({{
aria.username
}}) -
{{
aria.riga}}.{{aria.col}}<br>
</div>
</div>
</div>
<div class="donatore text-uppercase">{{$t('dashboard.donatori')}}:</div>
<div v-for="(donatore, index) in nave.rec.mediatore.arrdonatori" :key="index">
<div v-if="donatore"
:class="`cont_donatore row selezione cursor-pointer ` + getclassSelect(donatore)"
@click="clickseluser(donatore)">
{{ getindex(donatore, index + 1) }} - {{ donatore.name }} {{
donatore.surname }}
({{ donatore.username }}) - {{ donatore.riga}}.{{donatore.col}}
<q-icon v-if="donatore.made_gift" color="green" inverted size="sm"
name="fas fa-gift" class="gift"></q-icon>
</div>
</div>
</div>
</div>
</div>
<div v-if="isDefinitivaMediatore()" class="q-my-md">
<div class="text-left" v-html="gettesto()"></div>
<div>
<q-input v-model="link_chat" :label="$t('dashboard.link_chat')"
debounce="1000"
input-class="myinput-area"
@input="change_link_chat">
</q-input>
<div class="row justify-center centermydiv q-gutter-sm" style="max-width: 420px;">
<q-btn rounded text-color="secondary" icon="fab fa-telegram"
:label="$t('dashboard.controlla_donatori')"
@click="InviaLinkChatADonatori(false)"></q-btn>
<q-btn rounded text-color="primary" icon="fab fa-telegram"
:disable="!linkchatesiste"
:label="$t('dashboard.invia_link_chat')"
@click="InviaLinkChatADonatori(true)"></q-btn>
</div>
</div>
</div>
</div>
</CTitleBanner>
<CTitleBanner v-if="nave" class=""
:title="$t('dashboard.sognatore')"
bgcolor="bg-primary"
clcolor="text-white"
mystyle="" myclass="myshad" canopen="true" :visible="false">
<br/>
<div v-if="sonoSognatore" class="q-ma-sm">
<div class="text-evidente bordo_stondato justify-between q-pa-xs-sm">
<div class="">
<div>
{{$t('dashboard.doni_ricevuti')}}:
</div>
<div class="ricevuti dati">{{getDoniConfermati()}}</div>
</div>
<div class="">
<div class="inviati">
{{$t('dashboard.doni_inviati_da_confermare')}}:
</div>
<div class="inviati dati">{{getDoniAttesaDiConferma()}}</div>
</div>
<div class="">
<div class="">
{{$t('dashboard.doni_mancanti')}}:
</div>
<div class="mancanti dati">{{getDoniMancanti()}}</div>
</div>
</div>
<q-table
dense
color="primary"
:title="$t('dashboard.donatori')"
:data="arrdonatori"
:columns="coldonatori"
:nodataLabel="$t('grid.nodata')"
:Pagination.sync="MyPagination"
row-key="index">
<template v-slot:body="props">
<q-tr :props="props">
<!--<q-td key="index" :props="props">
{{ props.row.index }}
</q-td>-->
<q-td key="name" :props="props">
<q-btn v-if="!!props.row.profile" flat rounded color="blue"
size="1rem"
:label="props.row.name + ' ' + props.row.surname + ' (' + getnavestr(props.row) + ')"
@click="clickseluser(props.row)">
</q-btn>
</q-td>
<q-td key="date_made_gift" :props="props">
{{ tools.getstrshortDayDateTime(props.row.date_made_gift) }}
</q-td>
<q-td key="made_gift" :props="props">
<div class="row justify-center">
<q-btn v-if="!props.row.made_gift"
push
rounded
color="primary"
size="md"
:label="$t('dashboard.dono_ricevuto_3', {donatore: props.row.name })"
@click="HoRicevutoIlDono(props.row)">
</q-btn>
</div>
<div v-if="props.row.made_gift">
<q-chip class="glossy"
text-color="white"
color="positive"
icon="fas fa-gift">
{{ $t('dialog.ok') }}
</q-chip>
</div>
</q-td>
</q-tr>
</template>
</q-table>
</div>
</CTitleBanner>
<q-dialog v-model="showmsguser">
<q-card v-if="seluser" :style="`min-width: `+ tools.myheight_dialog() + `px;` ">
@@ -452,6 +493,7 @@
<div v-if="!!seluser.profile.cell" class="q-ma-sm text-center clBorderWarning">
Whatsapp: {{seluser.profile.cell}}
<q-btn
fab-mini
icon="fab fa-whatsapp"
color="white" text-color="green" type="a"
@@ -508,6 +550,10 @@
</q-input>
<q-toggle v-model="deleteUser" label="Elimina Utente sostituito"></q-toggle>
<q-toggle v-model="AddImbarco" label="Aggiungi (senza spostarlo da altre Navi)"></q-toggle>
<q-toggle v-model="notifBot" :label="$t('dashboard.sendnotification')"></q-toggle>
<q-btn class="q-ma-sm" rounded color="positive" text-color="white"
icon="fas fa-gift"
label="Sostituisci"
@@ -521,6 +567,24 @@
</q-card-section>
</q-card>
</q-dialog>
<q-dialog v-model="showtesto">
<q-card v-if="seltesto" :style="`min-width: `+ tools.myheight_dialog() + `px;` ">
<q-toolbar class="bg-primary text-white" style="min-height: 30px;">
<q-toolbar-title>
Testo:
</q-toolbar-title>
<q-btn flat round color="white" icon="close" v-close-popup clickable @click="Chiudi"></q-btn>
</q-toolbar>
<q-card-section class="inset-shadow" style="padding: 4px !important;">
<div class="">
<div>
<pre>{{ seltesto }}</pre>
</div>
</div>
</q-card-section>
</q-card>
</q-dialog>
</div>
</CTitleBanner>
</div>

View File

@@ -1,3 +1,9 @@
.myshad {
text-shadow: .125rem .125rem .125rem darkgray;
}
.nonvisibile{
border-radius: 16px;
border: red solid 3px;
padding: 4px;
}

View File

@@ -53,4 +53,11 @@ export default class CTitleBanner extends Vue {
if (this.myvisible)
this.$emit('apri')
}
get getclass(){
if (this.myvisible)
return 'isvisibile'
else
return 'nonvisibile glossy'
}
}

View File

@@ -3,7 +3,7 @@
<q-banner
inline-actions
rounded dense
:class="bgcolor+` cursor-pointer q-my-sm `+clcolor+ ` ` + myclass"
:class="bgcolor+` cursor-pointer q-my-sm `+clcolor+ ` ` + myclass + ' ' + getclass"
style="text-align: center; "
@click="apri()"
>