✨✨✨ AGGIORNAMENTO SITO ✨✨✨
👉🏻 E' possibile ora visualizzare la Posizione Reale d'imbarco di quando si verrà aggiunti alle prossime Navi Definitive. Le posizioni verranno aggiornate ogni ora in automatico! 👉🏻 Ora gli imbarchi comprendono anche le navi provvisorie, pertanto è possibile annullarli oppure cambiare l'Invitante, dalla lista imbarchi. 👉🏻 E' ora possibile spostare gli invitati solo se si hanno piu' di 2 invitati per ogni Nave già partita. 👨🏻💻 Per i Tutor: 👉🏻- Sostituzioni : Cliccando su "Cerca il Primo Disponibile" vi suggerirà in automatico il primo passeggero disponibile per la sostituzione. ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
This commit is contained in:
@@ -31,6 +31,8 @@ export const shared_consts = {
|
||||
FILTER_USER_NO_DREAM: 256,
|
||||
FILTER_EXTRALIST_DELETED: 512,
|
||||
FILTER_USER_TELEGRAM_BLOCKED: 1024,
|
||||
FILTER_ATTIVI: 2048,
|
||||
FILTER_NASCOSTI: 4096,
|
||||
|
||||
Permissions: {
|
||||
Admin: {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="row justify-between q-pa-xs-sm">
|
||||
<div style="font-size:1rem; padding-right: 8px;">
|
||||
<div :style="'font-size:'+ fontsize + ' padding-right: 8px;'">
|
||||
{{mytext}}
|
||||
</div>
|
||||
<div>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
</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">
|
||||
<div v-if="isperc" class="cltexth5" >
|
||||
{{ myperc.toFixed(1) }}%
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -7,3 +7,10 @@
|
||||
min-width: 200px;
|
||||
}
|
||||
|
||||
.tdclass, .trclass{
|
||||
height: 20px !important;
|
||||
}
|
||||
|
||||
.q-table td {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
@@ -52,7 +52,8 @@
|
||||
<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" :disable="disabilita" :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>
|
||||
|
||||
@@ -101,7 +102,8 @@
|
||||
</q-inner-loading>
|
||||
|
||||
<div class="row">
|
||||
<q-toggle v-for="(filter, index) of arrfilters" :key="index" v-model="myfilterand" :val="filter.value" :label="filter.label"></q-toggle>
|
||||
<q-toggle v-for="(filter, index) of arrfilters" :key="index" v-model="myfilterand" :val="filter.value"
|
||||
:label="filter.label"></q-toggle>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -109,12 +111,12 @@
|
||||
|
||||
<template v-slot:body="props">
|
||||
|
||||
<q-tr :props="props">
|
||||
<q-td auto-width>
|
||||
<q-tr :props="props" class="trclass">
|
||||
<q-td auto-width class="tdclass">
|
||||
<q-checkbox dense v-model="props.selected"></q-checkbox>
|
||||
</q-td>
|
||||
<q-td v-for="col in mycolumns" :key="col.name" :props="props"
|
||||
v-if="colVisib.includes(col.field + col.subfield)">
|
||||
v-if="colVisib.includes(col.field + col.subfield)" class="tdclass">
|
||||
<div :class="getclrow(props.row)">
|
||||
<CMyPopupEdit :canEdit="canEdit"
|
||||
:disable="disabilita"
|
||||
@@ -130,7 +132,8 @@
|
||||
</CMyPopupEdit>
|
||||
</div>
|
||||
</q-td>
|
||||
<q-td v-for="col in mycolumns" :key="col.name" :props="props" v-if="colExtra.includes(col.name)">
|
||||
<q-td v-for="col in mycolumns" :key="col.name" :props="props" v-if="colExtra.includes(col.name)"
|
||||
class="tdclass">
|
||||
<div v-if="col.action && visCol(col)">
|
||||
<q-btn flat round color="red" :icon="col.icon" size="sm"
|
||||
@click="clickFunz(props.row, col)"></q-btn>
|
||||
|
||||
@@ -1,15 +1,21 @@
|
||||
.flag_icon{
|
||||
max-height: 40px;
|
||||
max-height: 20px;
|
||||
}
|
||||
|
||||
.label_count{
|
||||
font-size: 1.15rem;
|
||||
font-size: 1.00rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
.clitemnat{
|
||||
height: 40px;
|
||||
padding: 2px 2px !important;
|
||||
.q-avatar {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
.q-item {
|
||||
min-height: 17px;
|
||||
}
|
||||
.clitemnat{
|
||||
height: 15px;
|
||||
padding: 0px 0px !important;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
enter-active-class="animazione fadeIn"
|
||||
leave-active-class="animazione fadeOut">
|
||||
<q-item v-for="(nat, index) in mydata" :key="nat._id" class="clitemnat">
|
||||
<q-item-section avatar>
|
||||
<q-item-section avatar class="clitemnat">
|
||||
<q-avatar v-if="tools.geticon(nat._id)"
|
||||
:class="tools.geticon(nat._id)" class="flag_icon">
|
||||
|
||||
</q-avatar>
|
||||
<q-avatar v-else color="primary" text-color="white" class="text-center">
|
||||
<q-avatar v-else color="primary" text-color="white" class="text-center clitemnat">
|
||||
{{ tools.capitalize(nat._id) }}
|
||||
</q-avatar>
|
||||
</q-item-section>
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
.posizione_imbarco {
|
||||
font-weight: bold;
|
||||
font-size: 1rem;
|
||||
font-size: 0.75rem;
|
||||
color: blue;
|
||||
text-align: -webkit-center;
|
||||
}
|
||||
|
||||
@@ -281,78 +281,23 @@ 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, {
|
||||
param1: { ind_order: imbarco.ind_order, username: imbarco.username },
|
||||
param2: { num_tess: imbarco.num_tess }
|
||||
param2: { num_tess: imbarco.num_tess, rec: imbarco }
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
public getnuminvitatistr(index, myuser) {
|
||||
let inv = myuser.numinvitati
|
||||
let invattivi = myuser.numinvitatiattivi
|
||||
public getnuminvperc(index, myrec) {
|
||||
|
||||
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
|
||||
return myrec.invattivi / 2 * 100
|
||||
}
|
||||
|
||||
public getinvit(index, myuser, posiz) {
|
||||
let inv = myuser.numinvitati
|
||||
let invattivi = myuser.numinvitatiattivi
|
||||
public getcolorinvitati(index, myrec) {
|
||||
|
||||
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)
|
||||
if (myrec.invattivi === 1)
|
||||
return 'blue'
|
||||
if (ris.invattivi === 2)
|
||||
if (myrec.invattivi === 2)
|
||||
return 'green'
|
||||
if (ris.inv === 1)
|
||||
if (myrec.inv === 1)
|
||||
return 'orange'
|
||||
}
|
||||
|
||||
@@ -361,7 +306,7 @@ export default class CMyDashboard extends MixinUsers {
|
||||
let str = index + 1 + '°'
|
||||
|
||||
if (num_tess % 2 === 0) {
|
||||
str += ' (Gratis)'
|
||||
str += ' (' + this.$t('dashboard.ritorno') + ')'
|
||||
}
|
||||
return str
|
||||
}
|
||||
@@ -409,6 +354,10 @@ export default class CMyDashboard extends MixinUsers {
|
||||
return presente
|
||||
}
|
||||
|
||||
public getvalstrinv(posiz) {
|
||||
return Math.round((posiz.numinvitatiattiviTot - posiz.numNaviEntrato * 2) - (posiz.indimbarco - 1) * 2) + '/' + Math.round((posiz.numinvitatiTot - posiz.numNaviEntrato * 2) - (posiz.indimbarco - 1) * 2)
|
||||
}
|
||||
|
||||
public isprovvisoria(mianave) {
|
||||
if (!!mianave && mianave.nave_partenza)
|
||||
return mianave.nave_partenza.provvisoria
|
||||
@@ -461,7 +410,7 @@ export default class CMyDashboard extends MixinUsers {
|
||||
|
||||
let colvera = colmin
|
||||
if (rigamin > 3) {
|
||||
for (let index = rigamin; index < riga - 1; index++){
|
||||
for (let index = rigamin; index < riga - 1; index++) {
|
||||
colvera = colvera * 2
|
||||
}
|
||||
} else {
|
||||
@@ -474,17 +423,28 @@ export default class CMyDashboard extends MixinUsers {
|
||||
|
||||
// console.log('[' + rigamin + '.' + colmin + ']', 'riga', riga, 'col', col, 'colvera', colvera)
|
||||
|
||||
if (riga < rigamin)
|
||||
riga = rigamin
|
||||
if (riga > rigamin + 6)
|
||||
riga = rigamin + 6
|
||||
|
||||
if (riga < rigamin)
|
||||
riga = 0
|
||||
|
||||
return riga
|
||||
}
|
||||
|
||||
public getval7(mianave) {
|
||||
let val = this.getmyrigaattuale(mianave)
|
||||
return val - tools.getRiganave(mianave.riga) + 1
|
||||
if (val === 0)
|
||||
return ''
|
||||
else
|
||||
return val - tools.getRiganave(mianave.riga) + 1
|
||||
}
|
||||
|
||||
public getcolornave(mianave) {
|
||||
if (mianave.num_tess % 2 !== 0)
|
||||
return 'blue'
|
||||
else
|
||||
return 'red'
|
||||
}
|
||||
|
||||
public getcolorbyval(mianave) {
|
||||
@@ -519,4 +479,19 @@ export default class CMyDashboard extends MixinUsers {
|
||||
return false
|
||||
|
||||
}
|
||||
|
||||
public getIfregalareInvitati(seluser, showregalainv) {
|
||||
if (!showregalainv)
|
||||
return false
|
||||
|
||||
let stato = true
|
||||
|
||||
if (!!this.dashboard.myself) {
|
||||
|
||||
if ((this.dashboard.myself.numNaviEntrato * 2) < this.dashboard.myself.numinvitati)
|
||||
stato = true
|
||||
}
|
||||
|
||||
return stato
|
||||
}
|
||||
}
|
||||
|
||||
@@ -159,20 +159,21 @@
|
||||
<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_msg')"
|
||||
:msgFalse="$t('steps.enter_prog_completa_requisiti')">
|
||||
</CRequisiti>
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="!!dashboard && dashboard.myself">
|
||||
<div v-if="!!dashboard && dashboard.myself && !loading">
|
||||
<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_msg')"
|
||||
:msgFalse="$t('steps.enter_prog_completa_requisiti')">
|
||||
</CRequisiti>
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="dashboard.myself.qualified">
|
||||
|
||||
<CTitleBanner class=""
|
||||
@@ -185,7 +186,10 @@
|
||||
<div class="col-3 ">
|
||||
{{ $t('dashboard.posizione') }}
|
||||
</div>
|
||||
<div class="col-5 ">
|
||||
<div class="col-2 ">
|
||||
{{ $t('dashboard.data') }}
|
||||
</div>
|
||||
<div class="col-3 ">
|
||||
{{ $t('dashboard.invitante') }}
|
||||
</div>
|
||||
<div class="col-2 ">
|
||||
@@ -207,7 +211,10 @@
|
||||
mioimbarco.posiz.totposiz }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-5">
|
||||
<div class="col-2">
|
||||
<div>{{ tools.getstrshortDate(mioimbarco.date_added) }}</div>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<div class="posizione_imbarco">
|
||||
<CUserBadge :yourinvite="false" :showsteps="false" :showregalainv="true"
|
||||
:user="dashboard.arrusers[mioimbarco.invitante_username]" mycolor="orange"
|
||||
@@ -222,11 +229,11 @@
|
||||
<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"
|
||||
:myval="getvalstrinv(mioimbarco.posiz)"
|
||||
:myperc="getnuminvperc(index, mioimbarco.posiz)" size="50px"
|
||||
size_mob="40px"
|
||||
fontsize="0.75rem" myclass="my-card-small-stat"
|
||||
:mycolor="getcolorinvitati(index, dashboard.myself, mioimbarco.posiz)"></CCardState>
|
||||
fontsize="0.85rem" myclass="my-card-small-stat"
|
||||
:mycolor="getcolorinvitati(index, mioimbarco.posiz)"></CCardState>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -286,7 +293,7 @@
|
||||
<q-item-section avatar style="width: 70px; font-size: 0.75rem;">
|
||||
{{ getnumtessstr(1, index) }}
|
||||
- {{ tools.getrigacolstr(mianave)}}
|
||||
<q-icon color="blue" name="fas fa-ship"></q-icon>
|
||||
<q-icon :color="getcolornave(mianave)" name="fas fa-ship"></q-icon>
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-slider
|
||||
@@ -378,7 +385,7 @@
|
||||
<q-item>
|
||||
<q-item-section avatar>
|
||||
{{tools.getlastnavestr(dashboard.lastnave) }}
|
||||
<q-icon color="blue" name="fas fa-ship"></q-icon>
|
||||
<q-icon :color="getcolornave(mianave)" name="fas fa-ship"></q-icon>
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-slider
|
||||
@@ -399,7 +406,7 @@
|
||||
<q-icon color="blue" name="fas fa-flag-checkered"></q-icon>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item>
|
||||
<q-item v-if="mianave.num_tess % 2 !== 0">
|
||||
<q-item-section avatar>
|
||||
<q-icon :color="colordono(mianave)" inverted size="sm" name="fas fa-gift"
|
||||
class="gift"></q-icon>
|
||||
@@ -419,7 +426,7 @@
|
||||
</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item>
|
||||
<q-item v-if="mianave.num_tess % 2 !== 0">
|
||||
<q-item-section avatar>
|
||||
<q-icon size="sm" name="fas fa-heart" color="red"></q-icon>
|
||||
</q-item-section>
|
||||
@@ -539,7 +546,7 @@
|
||||
<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 :id_listaingr="id_listaingr" :myseluser="seluser" :showregalainv="showregalainv"
|
||||
<CMyRequirement :id_listaingr="id_listaingr" :myseluser="seluser" :showregalainv="getIfregalareInvitati(seluser, showregalainv)"
|
||||
:mydashboard="dashboard" :mydownline="downline" :notitle="false" @aggiorna="aggiorna"
|
||||
:ind_order_ingr="ind_order_ingr">
|
||||
|
||||
|
||||
@@ -59,6 +59,7 @@ export default class CMyNave extends MixinNave {
|
||||
public seltesto: string = ''
|
||||
public msg_tosend_user: string = ''
|
||||
public username_sostituire: string = ''
|
||||
public userfreestr: string = ''
|
||||
public MyPagination: {
|
||||
sortBy: string,
|
||||
descending: boolean,
|
||||
@@ -897,6 +898,8 @@ export default class CMyNave extends MixinNave {
|
||||
public clickseluser(rec) {
|
||||
this.seluser = rec
|
||||
this.showmsguser = true
|
||||
this.username_sostituire = ''
|
||||
this.userfreestr = ''
|
||||
}
|
||||
|
||||
public async InviaMsgAUserConfirm(msgobj, navemediatore) {
|
||||
@@ -1040,4 +1043,38 @@ export default class CMyNave extends MixinNave {
|
||||
this.seltesto = await GlobalStore.actions.GetData({ data })
|
||||
}
|
||||
|
||||
public async TrovaUserFree(username) {
|
||||
|
||||
this.ChiamaFunz(null, lists.MenuAction.DAMMI_PRIMO_UTENTE_LIBERO, null)
|
||||
|
||||
}
|
||||
|
||||
public async ChiamaFunz(username, func, data) {
|
||||
|
||||
const mydatatosave = {
|
||||
username,
|
||||
ind_order: -1,
|
||||
myfunc: func,
|
||||
notifBot: null,
|
||||
data: null
|
||||
}
|
||||
|
||||
if (!!data) {
|
||||
mydatatosave.data = data
|
||||
}
|
||||
|
||||
this.loading = true
|
||||
|
||||
GlobalStore.actions.askFunz({ mydata: mydatatosave }).then((ris) => {
|
||||
this.loading = false
|
||||
if (ris) {
|
||||
if (func === lists.MenuAction.DAMMI_PRIMO_UTENTE_LIBERO) {
|
||||
this.userfreestr = ris.username + ' (' + ris.name + ' ' + ris.surname + ')'
|
||||
this.username_sostituire = ris.username
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -501,8 +501,7 @@
|
||||
</div>
|
||||
<div class="q-ma-sm text-center clBorderSteps">
|
||||
<div>TELEGRAM {{$t('ws.sitename')}} BOT {{$t('dialog.sendmsg')}} ->
|
||||
{{seluser.name }} {{
|
||||
seluser.surname }}:
|
||||
{{seluser.name }} {{ seluser.surname }}:
|
||||
</div>
|
||||
<q-input type="textarea"
|
||||
autogrow
|
||||
@@ -546,10 +545,29 @@
|
||||
|
||||
</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-btn rounded color="warning" icon="fab fa-find"
|
||||
text-color="black"
|
||||
label="Cerca il primo Disponibile"
|
||||
@click="TrovaUserFree()"></q-btn>
|
||||
<div v-if="!!userfreestr">
|
||||
<q-field
|
||||
stack-label
|
||||
dense
|
||||
>
|
||||
<template v-slot:control>
|
||||
<div class="text-center" tabindex="0">{{userfreestr}}</div>
|
||||
</template>
|
||||
|
||||
</q-field>
|
||||
</div>
|
||||
|
||||
<q-toggle v-model="deleteUser" :label="'Elimina ' + seluser.name + ' ' + seluser.surname"></q-toggle>
|
||||
<q-toggle v-model="AddImbarco" label="Aggiungi Destinatario (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"
|
||||
|
||||
@@ -1,114 +1,126 @@
|
||||
<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('pages.statusreg.reg')" :myval="datastat.num_reg"
|
||||
:myperc="100"></CCardState>
|
||||
|
||||
<CCardState :mytext="$t('pages.statusreg.passeggeri')"
|
||||
mycolor="blue"
|
||||
size="150px"
|
||||
size_mob="130px"
|
||||
:myval="datastat.num_passeggeri"
|
||||
:myperc="100"></CCardState>
|
||||
<CCardState :mytext="$t('pages.statusreg.passeggeri')"
|
||||
mycolor="blue"
|
||||
size="150px"
|
||||
size_mob="130px"
|
||||
:myval="datastat.num_passeggeri"
|
||||
:myperc="100"></CCardState>
|
||||
|
||||
<!--<CCardState :mytext="$t('statusreg.imbarcati')"
|
||||
size="150px"
|
||||
size_mob="130px"
|
||||
mycolor="blue" :myval="datastat.num_imbarcati"
|
||||
:myperc="100"></CCardState>-->
|
||||
<!--<CCardState :mytext="$t('statusreg.imbarcati')"
|
||||
size="150px"
|
||||
size_mob="130px"
|
||||
mycolor="blue" :myval="datastat.num_imbarcati"
|
||||
:myperc="100"></CCardState>-->
|
||||
|
||||
<!--<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>-->
|
||||
<!--<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>-->
|
||||
|
||||
<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>
|
||||
<div class="q-pa-xs" v-if="datastat.num_part_accepted > 1">
|
||||
<CCardStat :mytext="$t('stat.imbarcati_in_attesa')" :myval="datastat.num_imbarcati"></CCardStat>
|
||||
<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.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>
|
||||
|
||||
<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">
|
||||
<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-item v-for="(user, index) in lastsreg" :key="user.username" class="q-mb-xs animated"
|
||||
v-ripple>
|
||||
<q-item v-for="(user, index) in lastsreg" :key="user.username" class="q-mb-xs animated"
|
||||
v-ripple>
|
||||
|
||||
<q-item-section avatar>
|
||||
<q-avatar v-if="tools.geticon(user.profile.nationality)"
|
||||
:class="tools.geticon(user.profile.nationality)">
|
||||
<q-item-section avatar>
|
||||
<q-avatar v-if="tools.geticon(user.profile.nationality)"
|
||||
:class="tools.geticon(user.profile.nationality)">
|
||||
|
||||
</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-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-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>
|
||||
<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 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-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>
|
||||
|
||||
<CGeoChart :mydata="datastat.arr_nations">
|
||||
<CGeoChart :mydata="datastat.arr_nations">
|
||||
|
||||
</CGeoChart>
|
||||
<div class="row text-center justify-center">
|
||||
<CListNationality :mydata="datastat.arr_nations">
|
||||
</CGeoChart>
|
||||
<div class="row q-pa-sm text-center justify-center">
|
||||
<div class="clBorderZoom">
|
||||
<CListNationality :mydata="datastat.arr_nations">
|
||||
|
||||
</CListNationality>
|
||||
<CLineChart :mydata="datastat.reg_daily" :title="$t('stat.reg_daily')">
|
||||
</CListNationality>
|
||||
</div>
|
||||
<div class="clBorderTutor">
|
||||
<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_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>
|
||||
<CLineChart :mydata="datastat.reg_daily" :title="$t('stat.reg_total')"
|
||||
:offset="datastat.numreg_untilday" :sum="true"
|
||||
:mycolors="['#0b0', '#666']">
|
||||
|
||||
</CLineChart>
|
||||
</div>
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
</CLineChart>
|
||||
</div>
|
||||
<div class="clBorderSteps">
|
||||
<CLineChart :mydata="datastat.imbarcati_daily" :title="$t('stat.imbarcati')">
|
||||
|
||||
</CLineChart>
|
||||
<CLineChart :mydata="datastat.imbarcati_weekly" :title="$t('stat.imbarcati_weekly')">
|
||||
|
||||
</CLineChart>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CStatusReg.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './CStatusReg.scss';
|
||||
@import './CStatusReg.scss';
|
||||
</style>
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
<q-item-section>
|
||||
<q-item-label>{{ user.name }} {{ user.surname }} {{ getindorder(user) }}<br>
|
||||
<span class="text-grey">({{ getusername(user) }}) {{ getquanti(user)}}</span>
|
||||
<span class="text-grey">({{ getusername(user) }}) <strong>{{ getquanti(user)}}</strong></span>
|
||||
<br><!--<span v-if="isextralist(user)" class="notreg">{{ $t('dashboard.notreg') }}</span>-->
|
||||
</q-item-label>
|
||||
<!--<q-item-label caption lines="1">{{ user.email }}</q-item-label>-->
|
||||
@@ -24,13 +24,13 @@
|
||||
<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>
|
||||
<CCardState :mytext="$t('pages.statusreg.req')" :myval="getnumreq(user)" :myperc="getnumperc(user)" size="50px" size_mob="40px" fontsize="0.85rem" myclass="my-card-small-stat" :mycolor="getcolor(user)"></CCardState>
|
||||
</div>
|
||||
|
||||
<!--<q-icon v-if="!isextralist(user)" size="sm" name="fab fa-telegram" :color="getstatecolor(user)"></q-icon>
|
||||
<q-icon v-if="!isextralist(user)" size="sm" name="fas fa-video" :color="getzoomcolor(user)"></q-icon>-->
|
||||
<div>
|
||||
<CCardState :mytext="$t('pages.statusreg.people')" :myval="getnumpeople(user)" :myperc="getnumpercpeople(user)" size="50px" size_mob="40px" fontsize="0.75rem" myclass="my-card-small-stat" :mycolor="getcolorpeople(user)"></CCardState>
|
||||
<CCardState :mytext="$t('pages.statusreg.people')" :myval="getnumpeople(user)" :myperc="getnumpercpeople(user)" size="50px" size_mob="40px" fontsize="0.85rem" myclass="my-card-small-stat" :mycolor="getcolorpeople(user)"></CCardState>
|
||||
</div>
|
||||
<div>
|
||||
<q-btn
|
||||
|
||||
@@ -21,6 +21,8 @@ export interface INotData {
|
||||
checkuser?: ICheckUser | any
|
||||
numreg_untilday?: number
|
||||
reg_daily?: string
|
||||
imbarcati_daily?: string
|
||||
imbarcati_weekly?: string
|
||||
reg_weekly?: string
|
||||
}
|
||||
|
||||
|
||||
@@ -75,6 +75,7 @@ export interface IUserFields {
|
||||
dashboard?: IDashboard
|
||||
mydownline?: IDownline
|
||||
qualified?: boolean
|
||||
numNaviEntrato?: number
|
||||
numinvitati?: number
|
||||
numinvitatiattivi?: number
|
||||
}
|
||||
|
||||
@@ -18,6 +18,14 @@ export default class UsersList extends Vue {
|
||||
public mounted() {
|
||||
if (tools.appid() === '7')
|
||||
this.arrfilterand = [
|
||||
{
|
||||
label: 'Attivi',
|
||||
value: shared_consts.FILTER_ATTIVI
|
||||
},
|
||||
{
|
||||
label: 'Nascosti',
|
||||
value: shared_consts.FILTER_NASCOSTI
|
||||
},
|
||||
{
|
||||
label: 'Non hanno visto Zoom',
|
||||
value: shared_consts.FILTER_USER_NO_ZOOM
|
||||
|
||||
@@ -192,6 +192,8 @@ const msg_enUs = {
|
||||
options: 'Options',
|
||||
},
|
||||
dashboard: {
|
||||
data: 'Date',
|
||||
ritorno: 'Return',
|
||||
invitante: 'Invitante',
|
||||
num_tessitura: 'Numero di Tessitura:',
|
||||
attenzione: 'Attenzione',
|
||||
|
||||
@@ -192,6 +192,8 @@ const msg_es = {
|
||||
options: 'Opciones',
|
||||
},
|
||||
dashboard: {
|
||||
data: 'Fecha',
|
||||
ritorno: 'Regreso',
|
||||
invitante: 'Invitando',
|
||||
num_tessitura: 'Numero di Tessitura:',
|
||||
attenzione: 'Atención',
|
||||
|
||||
@@ -191,6 +191,8 @@ const msg_fr = {
|
||||
options: 'Options',
|
||||
},
|
||||
dashboard: {
|
||||
data: 'Données',
|
||||
ritorno: 'Retour',
|
||||
invitante: 'Invitation',
|
||||
num_tessitura: 'Numero di Tessitura:',
|
||||
attenzione: 'Attention',
|
||||
|
||||
@@ -64,7 +64,9 @@ const msg_it = {
|
||||
write: 'scrive'
|
||||
},
|
||||
stat: {
|
||||
imbarcati: 'Imbarcati in Attesa',
|
||||
imbarcati: 'Imbarcati',
|
||||
imbarcati_weekly: 'Imbarcati Settimanali',
|
||||
imbarcati_in_attesa: 'Imbarcati in Attesa',
|
||||
qualificati: 'Qualificati con almeno 2 invitati',
|
||||
requisiti: 'Utenti con i 7 Requisiti',
|
||||
zoom: 'Partecipato in Zoom',
|
||||
@@ -215,6 +217,8 @@ const msg_it = {
|
||||
options: 'Opzioni',
|
||||
},
|
||||
dashboard: {
|
||||
data: 'Data',
|
||||
ritorno: 'Ritorno',
|
||||
invitante: 'Invitante',
|
||||
dono_da_effettuare: 'Dono che dovrai effettuare',
|
||||
num_tessitura: 'Numero di Tessitura:',
|
||||
|
||||
@@ -202,6 +202,8 @@ const msg_pt = {
|
||||
options: 'Opzioni',
|
||||
},
|
||||
dashboard: {
|
||||
data: 'Datum',
|
||||
ritorno: 'Regresso',
|
||||
invitante: 'Convidados',
|
||||
num_tessitura: 'Numero di Tessitura:',
|
||||
attenzione: 'Atenção',
|
||||
@@ -221,17 +223,18 @@ const msg_pt = {
|
||||
nave_in_chiusura: 'Encerramento Gift Chat',
|
||||
nave_partita: 'que partiu em',
|
||||
tutor: 'Tutor',
|
||||
sonomediatore: 'Quando diventi Meditore vieni contattato da un <strong>TUTOR</strong>, con lui devi:<br><ol class="lista">' +
|
||||
'<li>Aprire la tua <strong>Gift Chat</strong> (tu come proprietario e il Tutor ' +
|
||||
'come amministratore) con questo nome:<br><strong>{nomenave}</strong></li>' +
|
||||
'<li>Clicca sul nome della chat in alto -> Modifica -> Amministratori -> "Aggiungi Amministratore", seleziona il Tutor nell’elenco.</li>' +
|
||||
'<li>Devi configurare la chat in modo che chi entra vede anche i post precedenti (clicca sul nome della chat in alto, clicca su modifica, ' +
|
||||
'cambia la "cronologia per i nuovi membri" da nascosta a visibile.</li>' +
|
||||
'<li>Per trovare il <strong>link della Chat appena creata</strong>: clicca sul nome della chat in alto, clicca sulla Matita -> "Tipo di Gruppo" -> "invita nel gruppo tramite link", clicca su "copia link" e incollalo qui sotto, sulla casella <strong>"Link Gift Chat"</strong></li>' +
|
||||
'<li>Invia il Link della Gift Chat a tutti i Donatori, cliccando sul bottone qui sotto.</li></ol>',
|
||||
sonodonatore: '<ol class="lista"><li>Quando sei in questa posizione, verrai invitato (tramite un messaggio su <strong>AYNI BOT</strong>) ad entrare in una <strong>Gift Chat</strong> (Telegram) e qui troverai anche gli altri 7 Donatori, il Mediatore, il Sognatore e un rappresentante dello Staff.</li>' +
|
||||
'<li>Avrai tempo 4 giorni per entrare nella chat e massimo 7 gg per fare il tuo Dono, nella modalità di pagamento che troverai scritto qui.<br></ol>',
|
||||
sonodonatore_seconda_tessitura: '<ol class="lista"><li>Qui tu sei Mediatore e anche Donatore, ma essendo la seconda Tessitura, non avrai bisogno di effettuare nuovamente il tuo dono<br></ol>',
|
||||
sonomediatore: 'Quando você se torna um mediador, um <strong>TUTOR</strong> entra em contato com você, e deve:<br>' +
|
||||
'<ol class="lista"><li>Abrir seu <strong>bate-papo</strong> do presente (você como proprietário e o tutor como administrador) com este nome: <br><strong>{nomenave}</strong></li>' +
|
||||
'<li>Clique no nome do bate-papo na parte superior - > Editar -> Administradores -> "Adicionar administrador", selecione o Tutor na lista.</li>' +
|
||||
'<li>Você deve configurar o bate-papo de forma que quem entra depois também veja as postagens anteriores (clique no nome do bate-papo na parte superior, clique em editar' +
|
||||
' altere o "histórico de novos membros" de oculto para visível.</li>' +
|
||||
'<li>Para encontrar o link Bate-papo Recém-criado: Clique no nome do bate-papo na parte superior, clique no lápis -> "Tipo de grupo" -> "Convidar grupo via link", clique em "Copiar link" e cole-o abaixo' +
|
||||
', na caixa "Link do bate-papo para presente"'+
|
||||
'Envie o link do bate-papo para presente a todos os doadores, clicando no botão abaixo.</li></ol>',
|
||||
|
||||
sonodonatore: '<ol class="lista"><li>Quando você estiver nessa posição, você será convidado (por meio de uma mensagem em <strong>AYNI BOT</strong>) a entrar em um bate-papo de presentes (Telegram) e aqui também encontrará os outros 7 doadores, o mediador, o sonhador e um representante da equipe.</li>'+
|
||||
'<li>Você terá 4 dias para entrar no bate-papo e, no máximo, 7 dias para fazer seu presente, na forma de pagamento que você encontrará por escrito aqui.<br></ol>',
|
||||
soydonante_secundo_tejido: '<ol class="lista"><li>Aqui você é Mediador e também Doador, mas sendo o segundo Tecido, você não terá que fazer seu presente novamente<br></ol>',
|
||||
controlla_donatori: 'Verifique a Lista de Doadores',
|
||||
link_chat: 'Links de telegramas para o Gift Chat',
|
||||
tragitto: 'Rota',
|
||||
|
||||
@@ -197,6 +197,8 @@ const msg_si = {
|
||||
loggati: 'Uporabnik ni prijavljen'
|
||||
},
|
||||
dashboard: {
|
||||
data: 'Data',
|
||||
ritorno: 'Vrnitev',
|
||||
invitante: 'povabljenca',
|
||||
num_tessitura: 'Numero di Tessitura:',
|
||||
attenzione: 'Pozornosti',
|
||||
|
||||
@@ -539,7 +539,10 @@ namespace Actions {
|
||||
// If is not already stored in DB, then show the message to the user.
|
||||
if (!state.wasAlreadySubscribed || notreg) {
|
||||
options = {
|
||||
title: tools.translate('notification.title_subscribed', [{strin: 'sitename', strout: translate('ws.sitename')}]),
|
||||
title: tools.translate('notification.title_subscribed', [{
|
||||
strin: 'sitename',
|
||||
strout: translate('ws.sitename')
|
||||
}]),
|
||||
content: translate('notification.subscribed'),
|
||||
openUrl: '/'
|
||||
}
|
||||
@@ -766,6 +769,18 @@ namespace Actions {
|
||||
})
|
||||
}
|
||||
|
||||
async function askFunz(context, { mydata }) {
|
||||
// console.log('saveFieldValue', mydata)
|
||||
|
||||
return await Api.SendReq(`/askfunz`, 'PATCH', { data: mydata })
|
||||
.then((ris) => {
|
||||
return ris.data.out
|
||||
})
|
||||
.catch((error) => {
|
||||
return null
|
||||
})
|
||||
}
|
||||
|
||||
async function DeleteRec(context, { table, id }) {
|
||||
console.log('DeleteRec', table, id)
|
||||
|
||||
@@ -787,7 +802,7 @@ namespace Actions {
|
||||
async function DeleteFile(context, { filename }) {
|
||||
console.log('DeleteFile', filename)
|
||||
|
||||
return await Api.SendReq('/delfile', 'DELETE', {filename})
|
||||
return await Api.SendReq('/delfile', 'DELETE', { filename })
|
||||
.then((res) => {
|
||||
if (res.status === 200) {
|
||||
if (res.data.code === serv_constants.RIS_CODE_OK) {
|
||||
@@ -848,6 +863,7 @@ namespace Actions {
|
||||
return null
|
||||
})
|
||||
}
|
||||
|
||||
async function GetArrNavi(context) {
|
||||
console.log('GetArrNavi')
|
||||
|
||||
@@ -1119,6 +1135,7 @@ namespace Actions {
|
||||
checkUpdates: b.dispatch(checkUpdates),
|
||||
saveFieldValue: b.dispatch(saveFieldValue),
|
||||
callFunz: b.dispatch(callFunz),
|
||||
askFunz: b.dispatch(askFunz),
|
||||
sendPushNotif: b.dispatch(sendPushNotif),
|
||||
loadTable: b.dispatch(loadTable),
|
||||
saveTable: b.dispatch(saveTable),
|
||||
|
||||
@@ -63,6 +63,8 @@ namespace Actions {
|
||||
state.datastat = res.data.datastat
|
||||
state.datastat.arr_nations = JSON.parse(state.datastat.arr_nations)
|
||||
state.datastat.reg_daily = JSON.parse(state.datastat.reg_daily)
|
||||
state.datastat.imbarcati_daily = JSON.parse(state.datastat.imbarcati_daily)
|
||||
state.datastat.imbarcati_weekly = JSON.parse(state.datastat.imbarcati_weekly)
|
||||
state.datastat.reg_weekly = JSON.parse(state.datastat.reg_weekly)
|
||||
state.datastat.checkuser = JSON.parse(state.datastat.checkuser)
|
||||
|
||||
|
||||
@@ -161,6 +161,7 @@ const colpaymenttype = [
|
||||
|
||||
const colnavi = [
|
||||
AddCol({ name: '_id', label_trans: 'others.value' }),
|
||||
AddCol({ name: 'idListaIngresso', label_trans: 'idListaIngresso' }),
|
||||
AddCol({ name: 'riga', label_trans: 'reg.riga' }),
|
||||
AddCol({ name: 'col', label_trans: 'reg.col' }),
|
||||
AddCol({ name: 'ind_order', label_trans: 'ind_order' }),
|
||||
@@ -175,6 +176,7 @@ const colnavi = [
|
||||
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: 'offerta_al_fondo', label_trans: 'offerta_al_fondo', fieldtype: tools.FieldType.number }),
|
||||
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_interne', label_trans: 'note_interne', fieldtype: tools.FieldType.string }),
|
||||
@@ -211,6 +213,26 @@ const collistaingresso = [
|
||||
AddCol(DeleteRec)
|
||||
]
|
||||
|
||||
const colgraduatoria = [
|
||||
AddCol({ name: 'index', label_trans: 'index' }),
|
||||
AddCol({ name: 'punteggio', label_trans: 'Punt', fieldtype: tools.FieldType.number }),
|
||||
AddCol({ name: 'ind_order', label_trans: 'ind_order' }),
|
||||
AddCol({ name: 'num_tess', label_trans: 'num_tess', fieldtype: tools.FieldType.number }),
|
||||
AddCol({ name: 'username', label_trans: 'reg.username_short' }),
|
||||
AddCol({ name: 'name', label_trans: 'reg.name' }),
|
||||
AddCol({ name: 'surname', label_trans: 'reg.surname' }),
|
||||
AddCol({ name: 'numNaviEntrato', label_trans: 'Navi', fieldtype: tools.FieldType.number }),
|
||||
AddCol({ name: 'indimbarco', label_trans: 'Imbarco', fieldtype: tools.FieldType.number }),
|
||||
// AddCol({ name: 'numinvitati', label_trans: 'Inv.', fieldtype: tools.FieldType.number }),
|
||||
// AddCol({ name: 'numinvitatiattivi', label_trans: 'Att.', fieldtype: tools.FieldType.number }),
|
||||
AddCol({ name: 'numinvitatiTot', label_trans: 'Inv (Tot)', fieldtype: tools.FieldType.number }),
|
||||
AddCol({ name: 'numinvitatiattiviTot', label_trans: 'Att. Tot', fieldtype: tools.FieldType.number }),
|
||||
AddCol({ name: 'invitante_username', label_trans: 'reg.aportador_solidario' }),
|
||||
AddCol({ name: 'date_added', label_trans: 'date_added', fieldtype: tools.FieldType.date }),
|
||||
AddCol(DuplicateRec),
|
||||
AddCol(DeleteRec)
|
||||
]
|
||||
|
||||
const coldisciplines = [
|
||||
AddCol({ name: 'typol_code', label_trans: 'disc.typol_code' }),
|
||||
AddCol({ name: 'order', label_trans: 'disc.order', fieldtype: tools.FieldType.number }),
|
||||
@@ -479,7 +501,7 @@ export const fieldsTable = {
|
||||
colTableUsers: [
|
||||
// AddCol({ name: '_id', label_trans: 'reg.id' }),
|
||||
AddCol({ name: 'index', label_trans: 'reg.index', fieldtype: tools.FieldType.number }),
|
||||
AddCol({ name: 'ind_order', label_trans: 'reg.ind_order' }),
|
||||
// AddCol({ name: 'ind_order', label_trans: 'reg.ind_order' }),
|
||||
AddCol({ name: 'old_order', label_trans: 'old_order' }),
|
||||
AddCol({ name: 'sospeso', label_trans: 'reg.sospeso', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'deleted', label_trans: 'reg.deleted', fieldtype: tools.FieldType.boolean }),
|
||||
@@ -643,6 +665,13 @@ export const fieldsTable = {
|
||||
colkey: '_id',
|
||||
collabel: 'ind_order',
|
||||
},
|
||||
{
|
||||
value: 'graduatorias',
|
||||
label: 'Graduatoria',
|
||||
columns: colgraduatoria,
|
||||
colkey: '_id',
|
||||
collabel: 'index',
|
||||
},
|
||||
{
|
||||
value: 'disciplines',
|
||||
label: 'Discipline',
|
||||
|
||||
@@ -29,6 +29,7 @@ export const lists = {
|
||||
DONO_RICEVUTO: 370,
|
||||
AGGIUNGI_NUOVO_IMBARCO: 380,
|
||||
CANCELLA_IMBARCO: 385,
|
||||
DAMMI_PRIMO_UTENTE_LIBERO: 390,
|
||||
|
||||
CAN_EDIT_TABLE: 400,
|
||||
SHOW_PREV_REC: 401
|
||||
|
||||
@@ -91,6 +91,7 @@ export const tools = {
|
||||
TABUSER: 'users',
|
||||
TABNAVI: 'navi',
|
||||
TABLISTAINGRESSO: 'listaingressos',
|
||||
TABGRADUATORIA: 'graduatorias',
|
||||
TABEVENTS: 'myevents',
|
||||
TABEXTRALIST: 'extralist',
|
||||
TABNEWSLETTER: 'newstosent',
|
||||
@@ -1480,7 +1481,7 @@ export const tools = {
|
||||
table: '',
|
||||
fieldsvalue: {},
|
||||
notifBot: {}
|
||||
};
|
||||
}
|
||||
|
||||
if (!!par.param1.invitante_username) {
|
||||
mydatatosave = {
|
||||
@@ -1548,6 +1549,7 @@ export const tools = {
|
||||
|
||||
if (func === lists.MenuAction.CANCELLA_IMBARCO) {
|
||||
mydatatosave.ind_order = par.param1.ind_order
|
||||
mydatatosave.data.id = par.param2.rec._id
|
||||
}
|
||||
if (func === lists.MenuAction.AGGIUNGI_NUOVO_IMBARCO) {
|
||||
mydatatosave.invitante_username = par.param1.invitante_username
|
||||
@@ -3396,55 +3398,19 @@ export const tools = {
|
||||
if (langin === '')
|
||||
return ''
|
||||
try {
|
||||
let lang = langin.toUpperCase()
|
||||
if (lang === 'IT')
|
||||
return 'fa-flag-it'
|
||||
else if (lang === 'ES')
|
||||
return 'fa-flag-es'
|
||||
else if (lang === 'PT')
|
||||
return 'fa-flag-pt'
|
||||
else if (lang === 'BR')
|
||||
return 'fa-flag-br'
|
||||
else if (lang === 'US')
|
||||
return 'fa-flag-us'
|
||||
else if ((lang === 'GB') || (lang === 'UK'))
|
||||
return 'fa-flag-gb'
|
||||
else if (lang === 'DE')
|
||||
return 'fa-flag-de'
|
||||
else if (lang === 'FR')
|
||||
return 'fa-flag-fr'
|
||||
else if (lang === 'SI')
|
||||
return 'fa-flag-si'
|
||||
else if (lang === 'MD')
|
||||
return 'fa-flag-md'
|
||||
else if (lang === 'NG')
|
||||
return 'fa-flag-ng'
|
||||
else if (lang === 'SK')
|
||||
return 'fa-flag-sk'
|
||||
else if (lang === 'CH')
|
||||
return 'fa-flag-ch'
|
||||
else if (lang === 'CM')
|
||||
return 'fa-flag-cm'
|
||||
else if (lang === 'CO')
|
||||
return 'fa-flag-co'
|
||||
else if (lang === 'PE')
|
||||
return 'fa-flag-pe'
|
||||
else if (lang === 'SM')
|
||||
return 'fa-flag-sm'
|
||||
else if (lang === 'HR')
|
||||
return 'fa-flag-hr'
|
||||
else if (lang === 'RO')
|
||||
return 'fa-flag-ro'
|
||||
else if (lang === 'VE')
|
||||
return 'fa-flag-ve'
|
||||
else if (lang === 'CL')
|
||||
return 'fa-flag-cl'
|
||||
else if (lang === 'PL')
|
||||
return 'fa-flag-pl'
|
||||
else if (lang === 'EG')
|
||||
return 'fa-flag-eg'
|
||||
const lang = langin.toUpperCase()
|
||||
|
||||
const arrlang = ['IT', 'ES', 'PT', 'BR', 'US', 'GB', 'UK', 'DE', 'FR', 'SI', 'MD',
|
||||
'NG', 'SK', 'CH', 'CM', 'CO', 'CG', 'PE', 'MS', 'SM', 'HR', 'RO', 'VE', 'CL', 'PL', 'EG', 'AR', 'MX', 'SN', 'PK', 'AT', 'NP',
|
||||
'CU', 'MA', 'PH', 'BA', 'UA', 'BE', 'NL', 'CI']
|
||||
|
||||
const flag = arrlang.find((mylang) => mylang === lang)
|
||||
if (!!flag) {
|
||||
return 'fa-flag-' + flag.toLowerCase()
|
||||
}
|
||||
|
||||
return ''
|
||||
|
||||
} catch (e) {
|
||||
return ''
|
||||
}
|
||||
@@ -3528,6 +3494,36 @@ export const tools = {
|
||||
return 'Egypt'
|
||||
} else if (nat === 'BR') {
|
||||
return 'Brazil'
|
||||
} else if (nat === 'CG') {
|
||||
return 'Congo'
|
||||
} else if (nat === 'AR') {
|
||||
return 'Argentina'
|
||||
} else if (nat === 'MX') {
|
||||
return 'Mexico'
|
||||
} else if (nat === 'SN') {
|
||||
return 'Senegal'
|
||||
} else if (nat === 'PK') {
|
||||
return 'Pakistan'
|
||||
} else if (nat === 'AT') {
|
||||
return 'Austria'
|
||||
} else if (nat === 'NP') {
|
||||
return 'Nepal'
|
||||
} else if (nat === 'CU') {
|
||||
return 'Cuba'
|
||||
} else if (nat === 'MA') {
|
||||
return 'Morocco'
|
||||
} else if (nat === 'PH') {
|
||||
return 'Philippines'
|
||||
} else if (nat === 'BA') {
|
||||
return 'Bosnia and Herzegovina'
|
||||
} else if (nat === 'BE') {
|
||||
return 'Belgium'
|
||||
} else if (nat === 'NL') {
|
||||
return 'Netherlands'
|
||||
} else if (nat === 'MS') {
|
||||
return 'Montserrat'
|
||||
} else if (nat === 'CI') {
|
||||
return 'Cote d\'Ivoire'
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@@ -9,6 +9,13 @@
|
||||
</CMyFieldDb>
|
||||
<br>
|
||||
|
||||
<CMyFieldDb title="ABILITA CRONTAB (1 ora)"
|
||||
mykey="CRONTAB"
|
||||
:serv="false"
|
||||
:type="tools.FieldType.boolean">
|
||||
</CMyFieldDb>
|
||||
<br>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<q-btn label="Crea Utenti Test" color="primary" @click="EseguiFunz('creaUtentiTest')"></q-btn>
|
||||
@@ -32,8 +39,6 @@
|
||||
-->
|
||||
|
||||
<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>
|
||||
@@ -54,12 +59,24 @@
|
||||
@click="EseguiFunz('delNaviNoStarted')"></q-btn>
|
||||
<br>
|
||||
</div>-->
|
||||
<div class="row">
|
||||
<q-btn label="Rigenera (Elim, Genera Graduat, Add Navi Temp" color="positive" size="lg"
|
||||
@click="EseguiFunz('rigeneraTutto')"></q-btn>
|
||||
|
||||
<!--<q-btn label="Crea ListaIngresso" color="positive" @click="EseguiFunz('creaLista')"></q-btn>-->
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<q-btn label="Elimina Navi Provvisorie" color="negative"
|
||||
@click="EseguiFunz('delNaviProvvisorie')"></q-btn>
|
||||
|
||||
<!--<q-btn label="Crea ListaIngresso" color="positive" @click="EseguiFunz('creaLista')"></q-btn>-->
|
||||
</div>
|
||||
<q-btn label="Genera Graduatoria" color="primary"
|
||||
@click="EseguiFunz('GeneraGraduatoria')"></q-btn>
|
||||
<br>
|
||||
<q-btn label="1) Aggiungi in Navi Temporanee" color="primary" @click="EseguiFunz('creaNavi')"></q-btn>
|
||||
<br>
|
||||
<div class="q-pa-sm row">
|
||||
<CDateTime
|
||||
:value.sync="date_start"
|
||||
@@ -68,7 +85,9 @@
|
||||
</CDateTime>
|
||||
<q-input v-model="numpersone" type="number" autofocus label="Num Persone to Add"
|
||||
style="width: 100px;"></q-input>
|
||||
<q-btn label="Crea Navi" color="primary" @click="EseguiFunz('creaNavi')"></q-btn>
|
||||
<q-btn label="2) CREA NAVI PERSISTENTI" color="primary" @click="EseguiFunz('CreaNaviPersistenti')"></q-btn>
|
||||
<br>
|
||||
|
||||
</div>
|
||||
<div v-if="!incaricamento" class="row">
|
||||
<CMyFieldDb title="Riga"
|
||||
@@ -117,14 +136,18 @@
|
||||
<q-btn label="Visualizza Lista Nave" color="primary" @click="EseguiFunz('visuListaNave')"></q-btn>
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
<!--<div class="row">
|
||||
<q-btn label="Visualizza ListaIngresso" color="primary"
|
||||
@click="EseguiFunz('visuListaIngresso')"></q-btn>
|
||||
<br>
|
||||
<q-btn label="Visualizza ListaIngresso Nuovi" color="primary"
|
||||
@click="EseguiFunz('visuListaIngressoNuovi')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
<q-btn label="Aggiorna Indice Graduatoria" color="primary"
|
||||
@click="EseguiFunz('AggiornaIndiceGraduatoria')"></q-btn>
|
||||
<br>
|
||||
<q-btn label="Visu Navi con utenti Eliminati" color="primary"
|
||||
@click="EseguiFunz('visuNaviUtentiEliminati')"></q-btn>
|
||||
<br>
|
||||
|
||||
Reference in New Issue
Block a user