Lista Doni Navi 3

This commit is contained in:
Paolo Arena
2020-03-25 18:28:39 +01:00
parent c25d103a0c
commit 411acf2f70
9 changed files with 151 additions and 85 deletions

View File

@@ -7,32 +7,3 @@
min-width: 200px;
}
.my-sticky-header-table {
/* max height is important */
/* this is when the loading indicator appears */
}
.my-sticky-header-table .q-table__middle {
max-height: 650px !important;
@media (max-width: 718px) {
// PER VERSIONE MOBILE
max-height: 400px !important;
}
}
.my-sticky-header-table .q-table__top,
.my-sticky-header-table .q-table__bottom,
.my-sticky-header-table thead tr:first-child th {
/* bg color is important for th; just specify one */
background-color: #f0ffff;
}
.my-sticky-header-table thead tr th {
position: sticky;
z-index: 1;
}
.my-sticky-header-table thead tr:first-child th {
top: 0;
}
.my-sticky-header-table.q-table--loading thead tr:last-child th {
/* height of all previous header rows */
top: 48px;
}

View File

@@ -32,6 +32,8 @@ export default class CMyNave extends MixinNave {
public coldoni: number = 1
public mediatore: any = {}
public donatore: any = {}
public donatore_navepers: any = {}
public mediatore_navepers: any = {}
public iodonatore: any = {}
public iosognatore: any = {}
public donoinviato: boolean = false
@@ -115,15 +117,21 @@ export default class CMyNave extends MixinNave {
this.mediatore = this.getmediatore()
this.donatore = this.getdonatore()
if (!!this.nave.rec.donatore)
this.donatore_navepers = this.nave.rec.donatore.navepersistente
if (!!this.nave.rec.mediatore)
this.mediatore_navepers = this.nave.rec.mediatore.navepersistente
this.iodonatore = this.getIoDonatore()
this.iosognatore = this.getIoSognatore()
this.donoinviato = this.getDonoInviato
// console.log('this.mediatore', this.mediatore)
// console.log('this.donatore', this.donatore)
if (!!this.mediatore) {
this.link_chat = this.mediatore.link_chat
if (!!this.mediatore_navepers) {
this.link_chat = this.mediatore_navepers.link_chat
}
this.arrdonatori = this.creaarrDonatori()
@@ -194,11 +202,8 @@ export default class CMyNave extends MixinNave {
public partenza_primo_donatore() {
if (!!this.nave) {
if (!!this.nave.rec.mediatore) {
for (const rec of this.nave.rec.mediatore.arrdonatori) {
if (!!rec)
return rec.date_start
}
if (!!this.mediatore_navepers) {
return this.mediatore_navepers.date_start
}
}
return ''
@@ -206,13 +211,13 @@ export default class CMyNave extends MixinNave {
public getGiornoDelDono() {
if (!!this.nave) {
return tools.getstrDate(this.nave.date_start)
return tools.getstrDate(this.donatore_navepers.date_start)
}
}
get GiornoDelDonoArrivato() {
if (!!this.nave) {
return tools.isDateArrived(this.nave.date_start)
return tools.isDateArrived(this.donatore_navepers.date_start)
}
return false
}
@@ -379,21 +384,21 @@ export default class CMyNave extends MixinNave {
}
public change_link_chat() {
const recmed = this.getmediatore()
if (!!recmed) {
if (recmed.link_chat !== this.link_chat) {
recmed.link_chat = this.link_chat
const recmedpers = this.mediatore_navepers
if (!!recmedpers) {
if (recmedpers.link_chat !== this.link_chat) {
recmedpers.link_chat = this.link_chat
const mydata = {
link_chat: recmed.link_chat
link_chat: recmedpers.link_chat
}
tools.saveFieldToServer(this, 'navi', recmed._id, mydata)
tools.saveFieldToServer(this, 'navepersistente', recmedpers._id, mydata)
}
}
}
get linkchatopen() {
return this.donatore.link_chat
return this.donatore_navepers.link_chat
}
public getclassSelect(rec) {
@@ -453,7 +458,7 @@ export default class CMyNave extends MixinNave {
public async InviaMsgANave(msgobj, navemediatore) {
let msgtitle = translate('dashboard.controlla_donatori')
let msgtitle = translate('dashboard.invia_link_chat')
let msginvia = msgtitle
if (msgobj.inviareale) {
msgtitle = translate('dashboard.invia_link_chat')
@@ -505,7 +510,7 @@ export default class CMyNave extends MixinNave {
}
public gettitledonatore() {
return this.getdatastr(this.donatore.date_start) + ' ' + 'NAVE' + ' ' + this.donatore.riga + '.' + this.donatore.col + ' ' + '🎁' + 'AYNI'
return this.getdatastr(this.donatore_navepers.date_start) + ' ' + 'NAVE' + ' ' + this.donatore_navepers.riga + '.' + this.donatore_navepers.col + ' ' + '🎁' + 'AYNI'
}
public gettesto() {
@@ -513,8 +518,8 @@ export default class CMyNave extends MixinNave {
}
public getisProvvisoriaStr() {
if (!!this.iodonatore) {
if (this.iodonatore.provvisoria) {
if (!!this.donatore_navepers) {
if (this.donatore_navepers.provvisoria) {
return ' Temporanea '
}
}

View File

@@ -1,7 +1,7 @@
<template>
<div>
<CTitleBanner v-if="nave" class="q-pa-xs"
:title="$t('pages.nave') + ` ` + getisProvvisoriaStr() + getRiganave(nave.riga) + `.`+getColnave(nave.col) + ` ` + $t('dashboard.nave_in_partenza') + ` ` + tools.getstrDate(nave.date_start)"
:title="$t('pages.nave') + ` ` + getisProvvisoriaStr() + getRiganave(nave.riga) + `.`+getColnave(nave.col) + ` ` + $t('dashboard.nave_in_partenza') + ` ` + tools.getstrDate(nave.rec.donatore.navepersistente.date_start)"
bgcolor="bg-primary"
clcolor="text-white"
mystyle="" myclass="myshad" canopen="true">
@@ -133,9 +133,9 @@
</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"
<!--<q-btn rounded text-color="secondary" icon="fab fa-telegram"
:label="$t('dashboard.controlla_donatori')"
@click="InviaLinkChatADonatori(false)"></q-btn>
@click="InviaLinkChatADonatori(false)"></q-btn>-->
<q-btn rounded text-color="primary" icon="fab fa-telegram"
:disable="!linkchatesiste"

View File

@@ -67,13 +67,14 @@ export default class Listadoninavi extends MixinBase {
sortable: true
},
{ name: 'date_start', align: 'center', label: '⏰ Partenza', field: 'date_start', sortable: true },
{ name: 'tutor', align: 'left', label: 'Tutor', field: 'tutor', sortable: true },
{ name: 'mediatore', align: 'center', label: '🌀 Mediatore', field: '', sortable: true },
{ name: 'sognatore', align: 'center', label: 'Sognatore', field: '', sortable: true },
{ name: 'donatori', align: 'center', label: 'Donatori', field: '', sortable: true },
{ name: 'DoniAttesaDiConferma', align: 'center', label: '🎁 Wait', field: 'DoniAttesaDiConferma', sortable: true },
{ name: 'DoniMancanti', align: 'center', label: '🎁 Mancano', field: 'DoniMancanti', sortable: true },
{ name: 'DoniConfermati', align: 'center', label: '🎁 OK', field: 'DoniConfermati', sortable: true },
{ name: 'note', align: 'left', label: 'Note', field: 'note', sortable: true },
{ name: 'note_bot', align: 'left', label: 'Note Placca', field: 'note_bot', sortable: true },
{ name: 'note_interne', align: 'left', label: 'Note Interne', field: 'note_interne', sortable: true },
]
@@ -94,17 +95,21 @@ export default class Listadoninavi extends MixinBase {
]
public async mounted() {
this.Ricalcola(false)
}
public async Ricalcola(ricalcola) {
this.loading = true
// this.$q.loading.show({ message: this.$t('otherpages.update') })
const ris = await GlobalStore.actions.GetArrDoniNavi()
const ris = await GlobalStore.actions.GetArrDoniNavi({ ricalcola })
console.log('ris', ris)
this.arrdoninavi = ris.arrnavi
// this.$q.loading.hide()
this.loading = false
}
public deveDonare(rec) {
@@ -208,12 +213,12 @@ export default class Listadoninavi extends MixinBase {
this.InviaMsgAUserConfirm(msgobj, naveuser)
}
public SaveField(rec, myfield) {
public SaveField(rec, table, myfield) {
if (!!rec) {
const mydata = {}
mydata[myfield] = rec[myfield]
console.log('mydata', mydata, 'id', rec.id)
tools.saveFieldToServer(this, 'navi', rec.id, mydata)
console.log('mydata', mydata, 'id', rec._id)
tools.saveFieldToServer(this, table, rec._id, mydata)
}
}

View File

@@ -7,7 +7,13 @@
clcolor="text-white"
mystyle="" myclass="myshad" canopen="true">
<q-btn rounded color="primary"
label="Ricalcola"
@click="Ricalcola(true)"></q-btn>
<br>
<q-table
class="my-sticky-header-table"
dense
color="primary"
title="Doni Navi"
@@ -26,19 +32,60 @@
</q-td>
<q-td key="date_gift_chat_open" :props="props">
<div v-if="!!props.row.rec.donatore.arrdonatori">
{{ tools.getstrshortDate(props.row.rec.donatore.arrdonatori[0].date_gift_chat_open)
}}
<div>
<div class="text-center cursor-pointer">
<a v-if="!!props.row.rec.donatore.navepersistente.link_chat"
:href="props.row.rec.donatore.navepersistente.link_chat" target="_blank">Link</a>
<q-popup-edit v-model="props.row.rec.donatore.navepersistente.link_chat"
title="Link della Chat Telegram" buttons
@save="SaveField(props.row.rec.donatore.navepersistente, 'navepersistente', 'link_chat')">
<q-field>
<q-input v-model="props.row.rec.donatore.navepersistente.link_chat"/>
</q-field>
</q-popup-edit>
<div v-if="!props.row.rec.donatore.navepersistente.link_chat">---</div>
</div>
<div v-if="!!props.row.rec.donatore.navepersistente">
{{ tools.getstrshortDate(props.row.rec.donatore.navepersistente.date_gift_chat_open)
}}
</div>
</div>
<a v-if="!!props.row.rec.donatore.recmediatore.link_chat"
:href="props.row.rec.donatore.recmediatore.link_chat" target="_blank">Link</a>
<div v-if="props.row.rec.donatore.recmediatore.sent_msg_howto_make_gift">(Link Inviato)</div>
<div v-if="props.row.rec.donatore.recmediatore.sent_msg_howto_make_gift">(Link
Inviato)
</div>
</q-td>
<q-td key="date_start" :props="props">
<div v-if="!!props.row.rec.donatore.arrdonatori">
{{ tools.getstrshortDate(props.row.rec.donatore.arrdonatori[0].date_start) }}
<div v-if="!!props.row.rec.donatore.navepersistente">
{{ tools.getstrshortDate(props.row.rec.donatore.navepersistente.date_start) }}
<div v-if="!!props.row.rec.donatore.navepersistente.provvisoria">
(Temporanea)
</div>
</div>
</q-td>
<q-td key="tutor" :props="props">
<div>
<div class="text-center cursor-pointer">
{{ props.row.tutor }}
<q-popup-edit v-model="props.row.rec.donatore.navepersistente.tutor"
title="Username del Tutor" buttons
@save="SaveField(props.row.rec.donatore.navepersistente, 'navepersistente', 'tutor')">
<q-field>
<q-input v-model="props.row.rec.donatore.navepersistente.tutor"/>
</q-field>
</q-popup-edit>
<div v-if="!props.row.tutor">---</div>
</div>
<div v-if="props.row.rec.donatore.navepersistente.tutor_namesurname">
<q-btn v-if="!!props.row.rec.donatore.navepersistente.tutor_namesurname" flat
rounded color="blue"
:label="props.row.rec.donatore.navepersistente.tutor_namesurname"
@click="clickseluser({ username: props.row.rec.donatore.navepersistente.tutor, name: props.row.rec.donatore.navepersistente.tutor_namesurname })">
</q-btn>
</div>
</div>
</q-td>
<q-td key="mediatore" :props="props">
@@ -75,24 +122,33 @@
props.row.DoniConfermati }}
</div>
</q-td>
<q-td key="note" :props="props">
<div class="Note">
<div v-if="props.row.note">{{ props.row.note }}</div>
<q-td key="note_bot" :props="props">
<div class="Note cursor-pointer">
<div v-if="props.row.rec.donatore.navepersistente.note_bot">{{
props.row.rec.donatore.navepersistente.note_bot }}
</div>
<div v-else>---</div>
<q-popup-edit v-model="props.row.note" buttons @save="SaveField(props.row, 'note')">
<q-popup-edit v-model="props.row.rec.donatore.navepersistente.note_bot"
title="Note che compariranno sulla Placca dell'Utente" buttons
@save="SaveField(props.row.rec.donatore.navepersistente, 'navepersistente', 'note_bot')">
<q-field>
<q-input v-model="props.row.note" />
<q-input v-model="props.row.rec.donatore.navepersistente.note_bot"/>
</q-field>
</q-popup-edit>
</div>
</q-td>
<q-td key="note_interne" :props="props">
<div class="Note">
<div v-if="props.row.note_interne">{{ props.row.note_interne }}</div>
<div class="Note cursor-pointer">
<div v-if="props.row.rec.donatore.navepersistente.note_interne">{{
props.row.rec.donatore.navepersistente.note_interne }}
</div>
<div v-else>---</div>
<q-popup-edit v-model="props.row.note_interne" buttons @save="SaveField(props.row, 'note_interne')">
<q-popup-edit v-model="props.row.rec.donatore.navepersistente.note_interne"
title="Note uso interno Staff"
buttons
@save="SaveField(props.row.rec.donatore.navepersistente, 'navepersistente', 'note_interne')">
<q-field>
<q-input v-model="props.row.note_interne" />
<q-input v-model="props.row.rec.donatore.navepersistente.note_interne"/>
</q-field>
</q-popup-edit>
</div>
@@ -115,6 +171,7 @@
<div class="row justify-center q-gutter-md">
<div>
<q-table
class="my-sticky-header-table"
dense
color="primary"
title="Donatori"
@@ -193,7 +250,9 @@
<q-card v-if="seluser" :style="`min-width: `+ tools.myheight_dialog() + `px;` ">
<q-toolbar class="bg-primary text-white" style="min-height: 30px;">
<q-toolbar-title>
{{$t('dashboard.donatori')}}
<div v-if="!!seluser">
{{ seluser.name }} {{ seluser.surname }}
</div>
</q-toolbar-title>
<q-btn flat round color="white" icon="close" v-close-popup clickable @click="Chiudi"></q-btn>
</q-toolbar>

View File

@@ -228,7 +228,6 @@ const msg_it = {
pos5: 'Interm. 5',
pos6: 'Interm. 6',
entra_in_gift_chat: 'Entra in Gift Chat',
controlla_donatori: 'Controlla Donatori',
invia_link_chat: 'Invia il Link della Gift Chat ai Donatori',
inviare_msg_donatori: '5) Inviare messaggio ai Donatori',
msg_donatori_ok: 'Inviato messaggio ai Donatori',

View File

@@ -831,11 +831,12 @@ namespace Actions {
})
}
async function GetArrDoniNavi(context) {
async function GetArrDoniNavi(context, { ricalcola }) {
console.log('GetArrDoniNavi')
const mydata = {
idapp: process.env.APP_ID
idapp: process.env.APP_ID,
ricalcola
}
return await Api.SendReq('/dashboard/getdoninavi', 'POST', mydata)

View File

@@ -166,18 +166,33 @@ const colnavi = [
AddCol({ name: 'indprimario', label_trans: 'indprimario' }),
AddCol({ name: 'ind_order', label_trans: 'ind_order' }),
AddCol({ name: 'parent_id', label_trans: 'parent_id' }),
AddCol({ name: 'date_start', label_trans: 'date_start', fieldtype: tools.FieldType.date }),
AddCol({ name: 'date_gift_chat_open', label_trans: 'date_gift_chat_open', fieldtype: tools.FieldType.date }),
AddCol({ name: 'link_chat', label_trans: 'reg.link_chat' }),
// AddCol({ name: 'date_start', label_trans: 'date_start', fieldtype: tools.FieldType.date }),
// AddCol({ name: 'date_gift_chat_open', label_trans: 'date_gift_chat_open', fieldtype: tools.FieldType.date }),
// AddCol({ name: 'link_chat', label_trans: 'reg.link_chat' }),
AddCol({ name: 'sent_msg_howto_make_gift', label_trans: 'sent_msg_howto_make_gift', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'made_gift', label_trans: 'reg.made_gift', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'provvisoria', label_trans: 'reg.provvisoria', fieldtype: tools.FieldType.boolean }),
// AddCol({ name: 'provvisoria', label_trans: 'reg.provvisoria', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'date_made_gift', label_trans: 'date_made_gift', fieldtype: tools.FieldType.date }),
AddCol({ name: 'received_gift', label_trans: 'received_gift', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'date_received_gift', label_trans: 'date_received_gift', fieldtype: tools.FieldType.date }),
AddCol({ name: 'num_tess', label_trans: 'num_tess', fieldtype: tools.FieldType.number }),
AddCol({ name: 'note', label_trans: 'note', fieldtype: tools.FieldType.string }),
// AddCol({ name: 'note_bot', label_trans: 'note_bot', fieldtype: tools.FieldType.string }),
// AddCol({ name: 'note_interne', label_trans: 'note_interne', fieldtype: tools.FieldType.string }),
// AddCol({ name: 'tutor', label_trans: 'tutor', fieldtype: tools.FieldType.string }),
AddCol(DeleteRec),
AddCol(DuplicateRec)
]
const colnavepersistente = [
AddCol({ name: '_id', label_trans: 'others.value' }),
AddCol({ name: 'riga', label_trans: 'reg.riga' }),
AddCol({ name: 'col', label_trans: 'reg.col' }),
AddCol({ name: 'date_start', label_trans: 'date_start', fieldtype: tools.FieldType.date }),
AddCol({ name: 'date_gift_chat_open', label_trans: 'date_gift_chat_open', fieldtype: tools.FieldType.date }),
AddCol({ name: 'link_chat', label_trans: 'reg.link_chat' }),
AddCol({ name: 'provvisoria', label_trans: 'reg.provvisoria', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'note_bot', label_trans: 'note_bot', fieldtype: tools.FieldType.string }),
AddCol({ name: 'note_interne', label_trans: 'note_interne', fieldtype: tools.FieldType.string }),
AddCol({ name: 'tutor', label_trans: 'tutor', fieldtype: tools.FieldType.string }),
AddCol(DeleteRec),
AddCol(DuplicateRec)
]
@@ -562,6 +577,13 @@ export const fieldsTable = {
colkey: '_id',
collabel: (rec) => rec.riga + '.' + rec.col
},
{
value: 'navepersistente',
label: 'Navi Persistenti',
columns: colnavepersistente,
colkey: '_id',
collabel: (rec) => rec.riga + '.' + rec.col
},
{
value: 'listaingressos',
label: 'Lista Ingresso',

View File

@@ -23,8 +23,12 @@
-->
<div class="row">
<q-btn label="CREA NAVI PERSISTENTI" color="primary" @click="EseguiFunz('CreaNaviPersistenti')"></q-btn>
<br>
<q-btn label="CORREGGI NUM_TESS" color="primary" @click="EseguiFunz('Corregginumtess')"></q-btn>
<br>
<q-btn label="CORREGGI DATA GIFT CHAT" color="primary" @click="EseguiFunz('CorreggiDataGiftChat')"></q-btn>
<br>
</div>
<div class="row">
<!--<q-btn label="Inizializza ListaIngresso" color="negative"