- Nuovo Sistema di Flotte per Tutor.

X - Mettere anche la email del sognatore, per chi è abituato ad inviarla in quel modo...
X - Controllare che sul sito compaiano le informazioni del Sognatore...
This commit is contained in:
Paolo Arena
2020-06-08 13:31:44 +02:00
parent bd6ccad236
commit 2fc89ebc82
29 changed files with 1669 additions and 280 deletions

View File

@@ -33,6 +33,7 @@ export const shared_consts = {
FILTER_USER_TELEGRAM_BLOCKED: 1024, FILTER_USER_TELEGRAM_BLOCKED: 1024,
FILTER_ATTIVI: 2048, FILTER_ATTIVI: 2048,
FILTER_NASCOSTI: 4096, FILTER_NASCOSTI: 4096,
FILTER_NAVI_NON_PRESENTI: 8192,
Permissions: { Permissions: {
Admin: { Admin: {

View File

@@ -393,18 +393,33 @@
<div>{{$t('dashboard.sognatore')}}</div> <div>{{$t('dashboard.sognatore')}}</div>
</div> </div>
<div class="row items-center justify-between q-ma-xs no-wrap" style="width: 100%;"> <div class="row items-center justify-between q-ma-xs no-wrap" style="width: 100%;">
<div class="justify-center">
<q-chip class="glossy q-ma-sm" color="red" text-color="white" <q-chip class="glossy q-ma-sm" color="red" text-color="white"
icon="fas fa-ship"> icon="fas fa-ship">
{{ tools.getrigacolstr(mianave) }} {{ tools.getrigacolstr(mianave) }}
</q-chip> </q-chip>
<div class="items-center">
<q-icon color="blue" size="md" name="fas fa-gift"></q-icon>
</div>
</div>
<div class="justify-center">
<q-chip class="glossy q-ma-sm" color="green" text-color="white" <q-chip class="glossy q-ma-sm" color="green" text-color="white"
icon="fas fa-ship"> icon="fas fa-ship">
{{ getNaveMediatoreStr(mianave)}} {{ getNaveMediatoreStr(mianave)}}
</q-chip> </q-chip>
<div class="items-center">
<q-icon color="blue" size="md" name="fas fa-user-check"></q-icon>
</div>
</div>
<div class="justify-center">
<q-chip class="glossy q-ma-sm" color="purple" text-color="white" <q-chip class="glossy q-ma-sm" color="purple" text-color="white"
icon="fas fa-ship"> icon="fas fa-ship">
{{ getNaveSognatoreStr(mianave)}} {{ getNaveSognatoreStr(mianave)}}
</q-chip> </q-chip>
<div class="items-center">
<q-icon color="blue" size="md" name="fas fa-flag-checkered"></q-icon>
</div>
</div>
<!--<span v-for="index of 8">{{ getNaveSognatoreStr(mianave, index)}} - </span>--> <!--<span v-for="index of 8">{{ getNaveSognatoreStr(mianave, index)}} - </span>-->
</div> </div>
</div> </div>
@@ -416,7 +431,8 @@
<q-list dense> <q-list dense>
<q-item> <q-item>
<q-item-section avatar> <q-item-section avatar>
{{tools.getlastnavestr(dashboard.lastnave) }} &nbsp; <!--{{tools.getlastnavestr(dashboard.lastnave) }} &nbsp;-->
{{ tools.getrigacolstr(mianave)}}
<q-icon :color="getcolornave(mianave)" name="fas fa-ship"></q-icon> <q-icon :color="getcolornave(mianave)" name="fas fa-ship"></q-icon>
</q-item-section> </q-item-section>
<q-item-section> <q-item-section>
@@ -435,7 +451,9 @@
</q-slider> </q-slider>
</q-item-section> </q-item-section>
<q-item-section avatar> <q-item-section avatar>
<q-icon color="blue" name="fas fa-flag-checkered"></q-icon> <!--{{tools.getlastnavestr(dashboard.lastnave) }} &nbsp;-->
{{ getNaveSognatoreStr(mianave)}}
<q-icon color="purple" name="fas fa-ship"></q-icon>
</q-item-section> </q-item-section>
</q-item> </q-item>
<q-item v-if="mianave.num_tess % 2 !== 0"> <q-item v-if="mianave.num_tess % 2 !== 0">

View File

@@ -26,7 +26,7 @@ export default class CMyFieldDb extends MixinBase {
@Prop({ required: false, default: false }) public serv: boolean @Prop({ required: false, default: false }) public serv: boolean
@Prop({ required: false, default: false }) public disable: boolean @Prop({ required: false, default: false }) public disable: boolean
@Prop({ required: false, default: '' }) public jointable: string @Prop({ required: false, default: '' }) public jointable: string
@Prop({ required: false, default: '' }) public table: string @Prop({ required: false, default: 'settings' }) public table: string
public $t public $t
public myvalue = '' public myvalue = ''

View File

@@ -172,3 +172,11 @@
font-size: 1.25rem; font-size: 1.25rem;
color: blue; color: blue;
} }
.q-table th, .q-table--dense {
padding: 2px;
}
.q-btn {
text-transform: none;
}

View File

@@ -13,11 +13,13 @@ import { CMyChipList } from '../CMyChipList'
import { CVideo } from '../CVideo' import { CVideo } from '../CVideo'
import { validations } from './CMyFlotta-validate' import { validations } from './CMyFlotta-validate'
import { validationMixin } from 'vuelidate' import { validationMixin } from 'vuelidate'
import { CMyDashboard } from '../CMyDashboard'
import { CDateTime } from '../CDateTime'
@Component({ @Component({
mixins: [validationMixin], mixins: [validationMixin],
validations, validations,
components: { CTitleBanner, CMyChipList, CVideo } components: { CTitleBanner, CMyChipList, CVideo, CMyDashboard, CDateTime }
}) })
export default class CMyFlotta extends MixinNave { export default class CMyFlotta extends MixinNave {
@@ -30,8 +32,35 @@ export default class CMyFlotta extends MixinNave {
public loading: boolean = false public loading: boolean = false
public seluser = null public seluser = null
public showmsguser: boolean = false public showmsguser: boolean = false
public showsostituisci: boolean = false
public showdashboard: boolean = false
public showtesto: boolean = false
public notifBot: boolean = true
public deleteUser: boolean = true
public AddImbarco: boolean = false
public seltesto: string = ''
public msg_tosend_user: string = ''
public username_sostituire: string = '' public username_sostituire: string = ''
public userfreestr: string = '' public userfreestr: string = ''
public tuttiidoni: boolean = false
public inviaemail: boolean = false
public seldonatore = null
public ordinamento: string = 'data'
public tabflotta: string = 'flotta'
public tabmsg: string = 'donatori'
public direzordin: number = -1
public tutor1: string = ''
public tutor2: string = ''
public tutor3: string = ''
public tutorslo: string = ''
public date_start: Date = null
public date_close: Date = null
public email_paypal: string = ''
public note_payment: string = ''
public link_payment: string = ''
public link_superchat: string = ''
public last_riga_aperto: string = ''
public last_col_aperto: string = ''
public MyPagination: { public MyPagination: {
sortBy: string, sortBy: string,
descending: boolean, descending: boolean,
@@ -65,15 +94,7 @@ export default class CMyFlotta extends MixinNave {
] ]
public coldonatori: any[] = [ public coldonatori: any[] = [
{ { name: 'nave', align: 'center', label: 'Nave', field: '', sortable: true },
name: 'index',
required: true,
label: 'Num',
align: 'left',
field: 'index',
sortable: true
},
{ name: 'rigacol', align: 'center', label: 'Posizione', field: '', sortable: true },
{ name: 'name', align: 'center', label: 'Nome', field: 'name', sortable: true }, { name: 'name', align: 'center', label: 'Nome', field: 'name', sortable: true },
{ name: 'num_tess', align: 'center', label: 'Tessitura', field: 'num_tess', sortable: true }, { name: 'num_tess', align: 'center', label: 'Tessitura', field: 'num_tess', sortable: true },
{ name: 'date_made_gift', align: 'center', label: 'Inviato', field: 'date_made_gift', sortable: true }, { name: 'date_made_gift', align: 'center', label: 'Inviato', field: 'date_made_gift', sortable: true },
@@ -89,17 +110,49 @@ export default class CMyFlotta extends MixinNave {
public mounted() { public mounted() {
this.flotta = this.flottaprop this.flotta = this.flottaprop
this.aggiorna()
if (!!this.flotta) {
this.last_riga_aperto = tools.getCookie('flotta_riga', '')
this.last_col_aperto = tools.getCookie('flotta_col', '')
}
if (this.isaperto)
this.apriflotta()
} }
public aggiorna() { public aggiorna() {
if (!!this.flotta) {
this.tutor1 = this.flotta.tutor1
this.tutor2 = this.flotta.tutor2
this.tutor3 = this.flotta.tutor3
this.tutorslo = this.flotta.tutorslo
this.date_start = this.flotta.date_start
this.date_close = this.flotta.date_close
this.note_payment = this.flotta.note_payment
this.email_paypal = this.flotta.email_paypal
this.link_payment = this.flotta.link_payment
this.link_superchat = this.flotta.link_superchat
}
} }
public getflottastr() { public getflottastr() {
if (!!this.flotta) if (!!this.flotta) {
return 'Da ' + this.flotta.riga + '.' + this.flotta.col_prima + ' a ' + this.flotta.riga + '.' + this.flotta.col_ultima let mystr = ''
else if (this.flotta.provvisoria)
mystr += ' Provvisoria '
mystr += 'Da ' + this.flotta.riga + '.' + Math.ceil(this.flotta.col_prima / 8) + ' a ' + this.flotta.riga + '.' + Math.ceil(this.flotta.col_ultima / 8)
let perc = 0;
if (this.flotta.DoniTotali > 0) {
perc = Math.round((this.flotta.DoniConfermati / this.flotta.DoniTotali) * 100)
}
mystr += ' (' + this.flotta.DoniConfermati + '/' + this.flotta.DoniTotali + ') [' + perc + '%]'
if (!!this.flotta.sognatore_nomecognome)
mystr += ' - ' + this.flotta.sognatore_nomecognome
return mystr
} else
return '' return ''
} }
@@ -107,8 +160,25 @@ export default class CMyFlotta extends MixinNave {
return 'Flotta ' + this.getflottastr() return 'Flotta ' + this.getflottastr()
} }
get log_attivita() {
if (!!this.flotta)
return this.flotta.log_attivita
else
return ''
}
public getcolorflotta() { public getcolorflotta() {
if (!!this.flotta) {
if (this.flotta.DoniMancanti === 0 && this.flotta.DoniTotali === 0)
return 'bg-orange'
else if (this.flotta.DoniConfermati === this.flotta.DoniTotali && this.flotta.DoniTotali > 0)
return 'bg-green'
else if (this.flotta.DoniConfermati <= this.flotta.DoniTotali)
return 'bg-blue' return 'bg-blue'
else
return 'bg-blue'
}
} }
public async apriflotta() { public async apriflotta() {
@@ -116,26 +186,97 @@ export default class CMyFlotta extends MixinNave {
console.log('apriflotta') console.log('apriflotta')
this.loading = true this.loading = true
this.arrdonatori = await GlobalStore.actions.GetFlotta({ riga: this.flotta.riga, col_prima: this.flotta.col_prima, col_ultima: this.flotta.col_ultima }) const ris = await GlobalStore.actions.GetFlotta({
riga: this.flotta.riga,
col_prima: this.flotta.col_prima,
col_ultima: this.flotta.col_ultima
})
if (!!ris) {
this.arrdonatori = ris.arrdonatori
this.flotta = ris.flotta
this.flotta.log_attivita = this.flotta.log_attivita.replace(/\n/g, '<br>')
}
this.aggiorna() this.aggiorna()
this.loading = false this.loading = false
if (!!this.flotta) {
tools.setCookie('flotta_riga', this.flotta.riga)
tools.setCookie('flotta_col', this.flotta.col_prima)
}
} }
public getnavestr(row) { get getnotifBotTxt() {
return tools.getRiganave(row.riga) + '.' + tools.getColnave(row.col) return this.seluser.name + ' (' + this.seluser.surname + ') è stato sostituito con ' + this.username_sostituire
} }
public getlinkchat(row) { public getnavestr(row, index) {
return row.link_superchat return tools.getRiganave(row.riga) + '.' + tools.getColnave(row.col) + ' D' + (((row.col - 1) % 8) + 1)
}
public HoRicevutoIlDono(rec) {
this.seldonatore = rec
const msgtitle = this.$t('dashboard.dono_ricevuto_2')
const msginvia = this.$t('dashboard.confermi_dono_ricevuto', {
donatore: rec.name + ' ' + rec.surname
})
let mymsg = this.$t('dashboard.confermi_dono_ricevuto_msg', {
donatore: rec.name + ' ' + rec.surname + ' (' + this.$t('dashboard.posizione') + ' ' + rec.riga + '.' + rec.col + ')'
})
mymsg += ' [' + rec.riga + '.' + rec.col + ']'
tools.askConfirm(this.$q, msgtitle, msginvia + ' ' + '? (Pos ' + rec.riga + '.' + rec.col + ')', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.DONO_RICEVUTO, 0, {
param1: {
_id: rec._id,
made_gift: true,
riga: rec.riga,
col: rec.col
},
param2: rec.username,
param3: mymsg
})
} }
public clickseluser(rec) { public clickseluser(rec) {
this.seluser = rec this.seluser = rec
this.showmsguser = true this.showmsguser = true
this.userfreestr = ''
}
public clicksostituisci(rec) {
this.seluser = rec
this.showsostituisci = true
this.username_sostituire = '' this.username_sostituire = ''
this.userfreestr = '' this.userfreestr = ''
} }
public viewdashboard(rec) {
this.seluser = rec
this.showdashboard = true
}
public Chiudi() {
this.showmsguser = false
this.showsostituisci = false
this.showtesto = false
}
public async InviaMsgAUserConfirm(msgobj, navemediatore) {
const msgtitle = translate('dialog.sendmsg')
tools.askConfirm(this.$q, msgtitle, msgobj.msgpar1 + ' ' + '?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.INVIA_MSG_A_SINGOLO, 0, {
param1: msgobj,
param2: navemediatore
})
}
get allowSubmit() { get allowSubmit() {
let error = this.$v.$error || this.$v.$invalid let error = this.$v.$error || this.$v.$invalid
@@ -145,22 +286,198 @@ export default class CMyFlotta extends MixinNave {
} }
public async InviaMsgAFlotta(inviareale) { public async InviaMsgAFlotta(inviareale, tipomsg, msg) {
const msgtitle = translate('dialog.sendmsg') const msgtitle = msg
let msg = 'TEST msg alla Flotta ?';
if (inviareale) {
msg = 'Inviare a Tutta la Flotta il messaggio ?'
}
tools.askConfirm(this.$q, msgtitle, msg, translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.INVIA_MSG_A_FLOTTA, 0, { tools.askConfirm(this.$q, msgtitle, msg, translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.INVIA_MSG_A_FLOTTA, 0, {
param1: this.flotta, param1: this.flotta,
param2: inviareale, param2: { inviareale, inviaemail: this.inviaemail },
param3: tools.TipoMsg.SEND_MSG_EFFETTUA_IL_DONO param3: tipomsg
}) })
} }
public Callback() {
this.loading = false
}
public ActionAfterYes(action, item, data) {
console.log('ActionAfterYes...')
if (action === lists.MenuAction.DONO_RICEVUTO) {
if (!!this.seldonatore) {
this.seldonatore.made_gift = true
}
}
this.apriflotta()
}
get getarr() {
if (this.ordinamento === 'data')
return this.arrdonatori.sort((a, b) => tools.gettimestampstrDate(a.date_made_gift) - tools.gettimestampstrDate(b.date_made_gift) * (this.direzordin))
else if (this.ordinamento === 'num')
return this.arrdonatori.sort((a, b) => a.col - b.col * (this.direzordin))
return this.arrdonatori
}
public setordin(ord) {
this.ordinamento = ord
if (this.direzordin === 1)
this.direzordin = -1
else
this.direzordin = 1
}
public InviaMsgAUser() {
if (!this.msg_tosend_user)
return
const msgobj = {
tipomsg: tools.TipoMsg.SEND_MSG_SINGOLO,
msgpar1: this.msg_tosend_user,
username: this.seluser.username,
inviareale: true,
username_mitt: '',
}
msgobj.username_mitt = UserStore.state.my.username
const naveuser = this.seluser
this.InviaMsgAUserConfirm(msgobj, naveuser)
}
get isAdmin() {
return UserStore.state.isAdmin
}
get isManager() {
return UserStore.state.isManager
}
get isTutor() {
return UserStore.state.isTutor
}
get isTratuttrici() {
return UserStore.state.isTratuttrici
}
public async SostituisciUtente(user, usernamesost, notifBottxt) {
usernamesost = usernamesost.trim()
await tools.askConfirm(this.$q, 'Sostituisci', notifBottxt + ' ?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.SOSTITUISCI, 0, {
param1: user,
param2: {
username: usernamesost,
username_da_sostituire: user.username,
riga: user.riga,
col: user.col,
notifBot: this.notifBot,
inviaemail: this.inviaemail,
deleteUser: this.deleteUser,
AddImbarco: this.AddImbarco,
},
param3: notifBottxt
})
}
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
}
}
})
}
public async Mostraplacca(riga, col) {
const data = {
riga,
col
}
this.showtesto = true
this.seltesto = await GlobalStore.actions.GetData({ data })
}
public change_link_payment() {
if (this.flotta.link_payment !== this.link_payment) {
this.flotta.link_payment = this.link_payment
const mydata = {
link_payment: this.flotta.link_payment
}
tools.saveFieldToServer(this, 'flotte', this.flotta._id, mydata)
}
}
public change_field(fieldname) {
console.log('fieldname', this.date_start, this.flotta[fieldname], this[fieldname])
if (this.flotta[fieldname] !== this[fieldname]) {
this.flotta[fieldname] = this[fieldname]
const mydata = {
[fieldname]: this.flotta[fieldname]
}
tools.saveFieldToServer(this, 'flotte', this.flotta._id, mydata)
}
}
public change_link_superchat() {
if (this.flotta.link_superchat !== this.link_superchat) {
this.flotta.link_superchat = this.link_superchat
const mydata = {
link_superchat: this.flotta.link_superchat
}
tools.saveFieldToServer(this, 'flotte', this.flotta._id, mydata)
}
}
get isaperto() {
let open = false
if (!!this.flotta)
open = (this.flotta.riga.toString() === this.last_riga_aperto) && (this.flotta.col_prima.toString() === this.last_col_aperto)
console.log('isaperto', open, 'lastriga = ', this.last_riga_aperto, this.flotta.riga, 'last_col_aperto', this.last_col_aperto, this.flotta.col_prima)
return open
}
public async update_nave() {
this.Chiudi()
this.apriflotta()
}
public async EseguiCallServer() {
this.Chiudi()
this.loading = true
}
} }

View File

@@ -1,34 +1,403 @@
<template> <template>
<div class="text-center"> <div class="text-center">
<CTitleBanner class="" <CTitleBanner v-if="!!flotta" class=""
:title="gettitoloflotta()" :title="gettitoloflotta()"
:bgcolor="getcolorflotta()" :bgcolor="getcolorflotta()"
clcolor="text-white" clcolor="text-white"
:visible="false" mystyle="" myclass="myshad" canopen="true" @apri="apriflotta"> :visible="isaperto" mystyle="" myclass="myshad" canopen="true" @apri="apriflotta">
<div v-if="loading" class="q-ma-md text-center" style="height: 50px;">
<q-spinner-hourglass size="50px" color="primary"></q-spinner-hourglass>
</div>
<p v-if="flotta.provvisoria" class="text-center" style="color:red; font-weight: bold; font-size: 1.5rem;">
NAVE <span v-if="flotta.provvisoria">TEMPORANEA</span><span v-else>DEFINITIVA</span>
</p>
<div class="row">
<CDateTime
label="Data Inizio"
class="cursor-pointer"
:value.sync="date_close"
:readonly="false"
:minuteinterval="30"
:dense="true"
:canEdit="true"
@savetoclose="change_field('date_close')">
</CDateTime>
<CDateTime
label="Data Fine"
class="cursor-pointer"
:value.sync="date_start"
:readonly="false"
:minuteinterval="30"
:dense="true"
:canEdit="true"
@savetoclose="change_field('date_start')">
</CDateTime>
</div>
<q-tabs
v-model="tabflotta"
dense
class="text-grey"
active-color="primary"
indicator-color="primary"
align="justify"
narrow-indicator
>
<q-tab name="messaggi" icon="fas fa-comments" label="Messaggi"></q-tab>
<q-tab name="flotta" icon="fas fa-ship" label="Flotta"></q-tab>
<q-tab name="attivita" icon="fas fa-ship" label="Attività Eseguite"></q-tab>
</q-tabs>
<q-tab-panels v-model="tabflotta" animated>
<q-tab-panel name="messaggi">
<div class="row q-ma-md">
<q-input v-model="tutor1" label="Tutor 1:"
filled dense
debounce="1000"
@input="change_field('tutor1')">
</q-input>
<q-input v-model="tutor2" label="Tutor 2:"
filled dense
debounce="1000"
@input="change_field('tutor2')">
</q-input>
<q-input v-model="tutor3" label="Tutor 3:"
filled dense
debounce="1000"
@input="change_field('tutor3')">
</q-input>
<q-input v-model="tutorslo" label="Tutor per Sloveni:"
filled dense
debounce="1000"
@input="change_field('tutorslo')">
</q-input>
</div>
<div class="justify-sm-start q-ma-md">
<q-input v-model="email_paypal" style="max-width: 300px;" label="Email Paypal:"
filled dense
:readonly="true"
debounce="1000"
@input="change_field('email_paypal')">
</q-input>
<q-input standout bottom-slots
v-model="link_payment" style="max-width: 400px;" label="Link per Paypal.me:"
:readonly="true"
debounce="1000"
filled dense
@input="change_link_payment">
<q-btn round dense flat icon="send"
type="a" :href="link_payment"
target="_blank" color="primary">
</q-btn>
</q-input>
<q-input v-model="note_payment" style="max-width: 400px;" label="Note Aggiuntive Pagamento:"
filled dense
debounce="1000" dense
:readonly="true"
autogrow
@input="change_field('note_payment')">
</q-input>
<br>
<div class="justify-center" style="max-width: 500px;">
<q-input standout bottom-slots
filled dense
v-model="link_superchat" style="max-width: 400px;" label="Link per Super Chat:"
debounce="1000"
@input="change_link_superchat">
<q-btn round dense flat icon="send"
type="a" :href="link_superchat"
target="_blank" color="primary">
</q-btn>
</q-input>
</div>
</div>
<q-toggle v-model="inviaemail" label="Invia anche tramite Email"></q-toggle>
<q-tabs
v-model="tabmsg"
dense
class="text-grey"
active-color="primary"
indicator-color="primary"
align="justify"
narrow-indicator
>
<q-tab name="sognatore" icon="fas fa-ship" label="Sognatore"></q-tab>
<q-tab name="mediatore" icon="fas fa-ship" label="Mediatore"></q-tab>
<q-tab name="donatori" icon="fas fa-ship" label="Donatori"></q-tab>
<q-tab name="donatori_nodono" icon="fas fa-ship" label="Donatori che non hanno fatto il Dono"></q-tab>
</q-tabs>
<q-tab-panels v-model="tabmsg" animated>
<q-tab-panel name="sognatore">
<div class="row q-pa-sm q-ma-sm" style="max-width: 450px;">
<div class="q-pa-sm">
<q-btn rounded text-color="secondary" icon="fab fa-telegram"
label="TEST Messaggio a Sognatore"
@click="InviaMsgAFlotta(false, tools.TipoMsg.SEND_MSG_A_SOGNATORE, 'TEST: Inviare al Sognatore?')"></q-btn>
</div>
<div class="q-pa-sm">
<q-btn rounded color="primary" icon="fab fa-telegram"
:label="$t('dialog.sendmsg') + ` a Sognatore`"
@click="InviaMsgAFlotta(true, tools.TipoMsg.SEND_MSG_A_SOGNATORE, 'Inviare al Sognatore?')"></q-btn>
</div>
</div>
</q-tab-panel>
<q-tab-panel name="mediatore">
<div class="row q-pa-sm q-ma-sm" style="max-width: 450px;">
<div class="q-pa-sm">
<q-btn rounded text-color="secondary" icon="fab fa-telegram"
label="TEST Messaggio Mediatori"
@click="InviaMsgAFlotta(false, tools.TipoMsg.SEND_MSG_A_MEDIATORI, 'TEST: Inviare ai Mediatori?')"></q-btn>
</div>
<div class="q-pa-sm">
<q-btn rounded color="primary" icon="fab fa-telegram"
:label="$t('dialog.sendmsg') + ` a Tutti Donatori`"
@click="InviaMsgAFlotta(true, tools.TipoMsg.SEND_MSG_A_MEDIATORI, 'Inviare ai Mediatori?')"></q-btn>
</div>
</div>
</q-tab-panel>
<q-tab-panel name="donatori">
<div class="row q-pa-sm q-ma-sm" style="max-width: 450px;">
<div class="q-pa-sm">
<q-btn rounded text-color="secondary" icon="fab fa-telegram"
label="TEST Messaggio Donatori"
@click="InviaMsgAFlotta(false, tools.TipoMsg.SEND_MSG_EFFETTUA_IL_DONO, 'TEST: Inviare a tutti i Donatori?')"></q-btn>
</div>
<div class="q-pa-sm">
<q-btn rounded color="primary" icon="fab fa-telegram"
:label="$t('dialog.sendmsg') + ` a Tutti i Donatori`"
@click="InviaMsgAFlotta(true, tools.TipoMsg.SEND_MSG_EFFETTUA_IL_DONO, 'Inviare a tutti i Donatori?')"></q-btn>
</div>
</div>
</q-tab-panel>
<q-tab-panel name="donatori_nodono">
<div class="row q-pa-sm q-ma-sm" style="max-width: 450px;">
<div class="q-pa-sm">
<q-btn rounded text-color="secondary" icon="fab fa-telegram"
label="TEST Messaggio Donatori No Dono"
@click="InviaMsgAFlotta(false, tools.TipoMsg.SEND_MSG_SOLLECITO_DONATORI_NO_DONO, 'TEST: Inviare a tutti i Donatori che non hanno fatto il dono, il msg del Sollecito?')"></q-btn>
</div>
<div class="q-pa-sm">
<q-btn rounded color="primary" icon="fab fa-telegram"
:label="$t('dialog.sendmsg') + ` a Tutti i Donatori No Dono`"
@click="InviaMsgAFlotta(true, tools.TipoMsg.SEND_MSG_SOLLECITO_DONATORI_NO_DONO, 'Inviare a tutti i Donatori che non hanno fatto il dono, il msg del Sollecito?')"></q-btn>
</div>
</div>
</q-tab-panel>
</q-tab-panels>
<q-field rounded outlined bg-color="orange-3" dense>
<div class="justify-evenly" style="max-width: 300px;">
<strong>Legenda dei codici speciali da inserire nei messaggi: </strong>
<div>{link_paypalme}</div>
<div>{link_superchat}</div>
<div>{tutor1}</div>
<div>{tutor2}</div>
<div>{tutor3}</div>
<div>{tutorslo}</div>
<div>{sognatore}</div>
</div>
</q-field>
</q-tab-panel>
<q-tab-panel name="flotta">
<div> <div>
<div class="row q-pa-sm q-ma-sm"> <q-toggle v-model="tuttiidoni"
<div>TEST messaggio Flotta: label="Mostra Tutti i Doni">
<q-btn rounded text-color="secondary" icon="fab fa-telegram"
label="TEST MESSAGGIO"
@click="InviaMsgAFlotta(false)"></q-btn>
</q-toggle>
<div v-if="!!flotta" class="text-evidente bordo_stondato justify-between q-pa-xs-sm">
<div class="">
<q-btn rounded color="blue"
:label="flotta.sognatore_nomecognome + ' ' + ' (' + flotta.sognatore + ')'"
@click="viewdashboard({username: flotta.sognatore })">
</q-btn>
</div>
<div class="">
<div>
{{$t('dashboard.doni_ricevuti')}}:
<span class="ricevuti dati">{{flotta.DoniConfermati}}</span>
</div>
</div>
<div class="">
<div class="inviati">
{{$t('dashboard.doni_inviati_da_confermare')}}:
<span class="inviati dati">{{flotta.DoniAttesaDiConferma}}</span>
</div>
</div>
<div class="">
<div class="">
{{$t('dashboard.doni_mancanti')}}:
<span class="mancanti dati">{{flotta.DoniMancanti}}</span>
</div>
</div>
</div>
<div class="row">
<div class="row justify-center q-px-xs content-center">
<div style="width: 40px;">
<q-btn
flat
rounded
dense
color="primary"
size="md"
label="Num"
@click="setordin('num')">
</q-btn>
</div>
<div style="width: 100px;">
<q-btn
flat
rounded
dense
color="primary"
size="md"
label="Ora Invio"
@click="setordin('data')">
</q-btn>
</div>
<div style="width: 80px;">
Esegui
</div>
<div style="width: 40px;">
Nave
</div>
<div style="width: 250px;">
Nome Cognome (Username)
</div>
<div style="width: 40px;">
Tess
</div>
<div style="width: 40px;">
Msg
</div>
<div style="width: 60px;">
Sostituisci
</div>
<div style="width: 100px;">
Commenti
</div>
</div>
</div>
<div class="row" v-for="(rec, index) of getarr">
<div class="row justify-center q-px-xs content-center"
v-if="(!tuttiidoni && !rec.made_gift) || (tuttiidoni)">
<div class="row items-center q-mx-md justify-between" style="padding: 2px;">
<div style="width: 40px;">
{{index + 1}}
</div>
<div v-if="!tools.isMobile()" style="width: 100px;">
{{ tools.getstrshortDateTime(rec.date_made_gift) }}
</div> </div>
<div> <div>
Invia messaggio a TUTTA la Flotta: <div class="row justify-center">
<q-btn rounded text-color="secondary" icon="fab fa-telegram" <q-btn v-if="!rec.made_gift"
:label="$t('dialog.sendmsg')" rounded
@click="InviaMsgAFlotta(true)"></q-btn> dense
color="primary"
size="md"
:label="$t('dashboard.dono_ricevuto_3', {donatore: rec.name })"
@click="HoRicevutoIlDono(rec)">
</q-btn>
</div>
<div v-if="rec.made_gift">
<q-chip class="glossy"
size="sm"
text-color="white"
color="positive"
icon="fas fa-gift">
{{ $t('dialog.ok')
}}
</q-chip>
</div>
</div>
<div style="color: blue; width: 60px;">
<q-btn rounded color="blue"
flat
dense
size="md"
:label="getnavestr(rec)"
@click="Mostraplacca(tools.getRiganave(rec.riga), tools.getColnave(rec.col))">
</q-btn>
</div>
<div style="color: blue; width: 250px;">
<q-btn v-if="!!rec.profile" flat rounded dense color="blue"
:size="tools.getsizesmall()"
:label="rec.name + ' ' + rec.surname + ' (' + rec.username + ')'"
@click="viewdashboard(rec)">
</q-btn>
</div>
<div v-if="!tools.isMobile()">
({{ rec.num_tess }})
</div>
<div style="color: blue; width: 40px;">
<q-btn color="blue"
dense
size="md"
label="Msg"
@click="clickseluser(rec)">
</q-btn>
</div>
<div style="color: blue; width: 70px;">
<q-btn color="red"
dense
size="md"
label="Sostituisci"
@click="clicksostituisci(rec)">
</q-btn>
</div>
</div>
<div v-if="!!rec.commento_al_sognatore" class="wrap">
{{ rec.commento_al_sognatore }}
</div> </div>
</div> </div>
<q-table </div>
<!--<q-table
v-if="false"
dense dense
color="primary" color="primary"
dense dense
flat flat
table-style="padding: 0px;" table-style="padding: 0;"
:title="$t('dashboard.donatori')" :title="$t('dashboard.donatori')"
:data="arrdonatori" :data="arrdonatori"
:columns="getcol" :columns="getcol"
@@ -37,16 +406,13 @@
row-key="index"> row-key="index">
<template v-slot:body="props"> <template v-slot:body="props">
<q-tr :props="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"> <q-td v-if="!tools.isMobile()" key="nave" :props="props">
<div style="font-size:1rem;"><a :href="getlinkchat(props.row)" target="_blank">{{ <div style="font-size:1rem;"><a :href="getlinkchat(props.row)" target="_blank">{{
getnavestr(props.row)}}</a></div> getnavestr(props.row)}}</a></div>
</q-td> </q-td>
<q-td key="name" :props="props"> <q-td key="name" :props="props">
<q-btn v-if="!!props.row.profile" flat rounded color="blue" <q-btn v-if="!!props.row.profile" flat rounded dense color="blue"
:size="tools.getsize()" :size="tools.getsizesmall()"
:label="props.row.name + ' ' + props.row.surname" :label="props.row.name + ' ' + props.row.surname"
@click="clickseluser(props.row)"> @click="clickseluser(props.row)">
</q-btn> </q-btn>
@@ -56,8 +422,8 @@
}} }}
</div> </div>
</q-td> </q-td>
<q-td v-if="!tools.isMobile()" key="posizione" :props="props"> <q-td v-if="!tools.isMobile()" key="num_tess" :props="props">
{{ props.row.riga }}.{{ props.row.col }} {{ props.row.num_tess }}
</q-td> </q-td>
<q-td v-if="!tools.isMobile()" key="date_made_gift" :props="props"> <q-td v-if="!tools.isMobile()" key="date_made_gift" :props="props">
{{ tools.getstrshortDateTime(props.row.date_made_gift) }} {{ tools.getstrshortDateTime(props.row.date_made_gift) }}
@@ -68,8 +434,9 @@
<q-btn v-if="!props.row.made_gift" <q-btn v-if="!props.row.made_gift"
push push
rounded rounded
dense
color="primary" color="primary"
size="md" size="sm"
:label="$t('dashboard.dono_ricevuto_3', {donatore: props.row.name })" :label="$t('dashboard.dono_ricevuto_3', {donatore: props.row.name })"
@click="HoRicevutoIlDono(props.row)"> @click="HoRicevutoIlDono(props.row)">
@@ -77,6 +444,7 @@
</div> </div>
<div v-if="props.row.made_gift"> <div v-if="props.row.made_gift">
<q-chip class="glossy" <q-chip class="glossy"
size="sm"
text-color="white" text-color="white"
color="positive" color="positive"
icon="fas fa-gift"> icon="fas fa-gift">
@@ -87,9 +455,33 @@
</q-td> </q-td>
</q-tr> </q-tr>
</template> </template>
</q-table> </q-table>-->
</div> </div>
</q-tab-panel>
<q-tab-panel name="attivita">
<div class="text-left" v-html="log_attivita"></div>
</q-tab-panel>
</q-tab-panels>
<q-dialog v-model="showdashboard">
<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>
<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>
<q-card-section class="inset-shadow" style="padding: 4px !important;">
<CMyDashboard :username="seluser.username">
</CMyDashboard>
</q-card-section>
</q-card>
</q-dialog>
<q-dialog v-model="showmsguser"> <q-dialog v-model="showmsguser">
<q-card v-if="seluser" :style="`min-width: `+ tools.myheight_dialog() + `px;` "> <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 class="bg-primary text-white" style="min-height: 30px;">
@@ -137,12 +529,29 @@
</div> </div>
</div> </div>
</div>
</div>
</q-card-section>
</q-card>
</q-dialog>
<q-dialog v-model="showsostituisci">
<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>
<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>
<q-card-section class="inset-shadow" style="padding: 4px !important;">
<div class="row justify-center q-gutter-md">
<div>
<div v-if="isManager || isTutor"> <div v-if="isManager || isTutor">
<CTitleBanner class="shadow-2 rounded-borders" title="Sostituisci" <CTitleBanner class="shadow-2 rounded-borders" title="Sostituisci"
bgcolor="bg-positive" bgcolor="bg-positive"
clcolor="text-white" clcolor="text-white"
:visible="false"
mystyle=" " myclass="myshad" :canopen="true"> mystyle=" " myclass="myshad" :canopen="true">
<div class="column q-gutter-sm justify-center text-center"> <div class="column q-gutter-sm justify-center text-center">
@@ -185,7 +594,7 @@
<q-toggle v-model="AddImbarco" <q-toggle v-model="AddImbarco"
label="Aggiungi Destinatario (senza spostarlo da altre Navi)"></q-toggle> label="Aggiungi Destinatario (senza spostarlo da altre Navi)"></q-toggle>
<q-toggle v-model="notifBot" :label="$t('dashboard.sendnotification')"></q-toggle> <q-toggle v-model="notifBot" :label="$t('dashboard.sendnotification')"></q-toggle>
<q-toggle v-model="inviaemail" label="Invia anche tramite Email"></q-toggle>
<q-btn class="q-ma-sm" rounded color="positive" text-color="white" <q-btn class="q-ma-sm" rounded color="positive" text-color="white"
icon="fas fa-gift" icon="fas fa-gift"
@@ -200,6 +609,30 @@
</q-card-section> </q-card-section>
</q-card> </q-card>
</q-dialog> </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>
<q-inner-loading id="spinner" :showing="loading">
<q-spinner-tail
color="primary"
size="4em">
</q-spinner-tail>
</q-inner-loading>
</CTitleBanner> </CTitleBanner>
</div> </div>

View File

@@ -42,6 +42,7 @@ export default class CMyNave extends MixinNave {
public coldoni: number = 1 public coldoni: number = 1
public mediatore: any = null public mediatore: any = null
public donatore: any = {} public donatore: any = {}
public flotta: any = null
public donatore_navepers: any = {} public donatore_navepers: any = {}
public mediatore_navepers: any = {} public mediatore_navepers: any = {}
public iodonatore: any = {} public iodonatore: any = {}
@@ -60,6 +61,7 @@ export default class CMyNave extends MixinNave {
public msg_tosend_user: string = '' public msg_tosend_user: string = ''
public username_sostituire: string = '' public username_sostituire: string = ''
public userfreestr: string = '' public userfreestr: string = ''
public commento_al_sognatore: string = ''
public MyPagination: { public MyPagination: {
sortBy: string, sortBy: string,
descending: boolean, descending: boolean,
@@ -98,6 +100,7 @@ export default class CMyNave extends MixinNave {
{ name: 'date_made_gift', align: 'center', label: 'Inviato', field: 'date_made_gift', 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: 'tel', align: 'center', label: 'Tel', field: 'tel', sortable: true },
{ name: 'made_gift', align: 'center', label: 'Conferm.', field: 'made_gift', sortable: true }, { name: 'made_gift', align: 'center', label: 'Conferm.', field: 'made_gift', sortable: true },
{ name: 'commento_al_sognatore', align: 'center', label: 'Commento', field: 'commento_al_sognatore', sortable: true },
] ]
public tragitto = [ public tragitto = [
@@ -175,6 +178,8 @@ export default class CMyNave extends MixinNave {
if (!!this.nave) { if (!!this.nave) {
if (!!this.nave.rec) { if (!!this.nave.rec) {
if (!!this.nave.rec.donatore.flotta)
this.flotta = this.nave.rec.donatore.flotta
if (!!this.nave.rec.donatore) if (!!this.nave.rec.donatore)
this.donatore_navepers = this.nave.rec.donatore.navepersistente this.donatore_navepers = this.nave.rec.donatore.navepersistente
if (!!this.nave.rec.mediatore) { if (!!this.nave.rec.mediatore) {
@@ -325,6 +330,12 @@ export default class CMyNave extends MixinNave {
return false return false
} }
get getsuperchat(){
if (!!this.flotta) {
return this.flotta.link_superchat
}
}
get FattoDono() { get FattoDono() {
if (!!this.iodonatore) { if (!!this.iodonatore) {
return this.iodonatore.made_gift return this.iodonatore.made_gift
@@ -378,7 +389,7 @@ export default class CMyNave extends MixinNave {
donatore: rec.name + ' ' + rec.surname donatore: rec.name + ' ' + rec.surname
}) })
const mymsg = this.$t('dashboard.confermi_dono_ricevuto_msg', { let mymsg = this.$t('dashboard.confermi_dono_ricevuto_msg', {
donatore: rec.name + ' ' + rec.surname + ' (' + this.$t('dashboard.posizione') + ' ' + rec.riga + '.' + rec.col + ')' donatore: rec.name + ' ' + rec.surname + ' (' + this.$t('dashboard.posizione') + ' ' + rec.riga + '.' + rec.col + ')'
}) })
@@ -407,7 +418,8 @@ export default class CMyNave extends MixinNave {
tools.askConfirm(this.$q, msgtitle, msginvia + ' ' + '?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.DONO_INVIATO, 0, { tools.askConfirm(this.$q, msgtitle, msginvia + ' ' + '?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.DONO_INVIATO, 0, {
param1: { param1: {
_id: this.iodonatore._id, _id: this.iodonatore._id,
date_made_gift: tools.getDateNow() date_made_gift: tools.getDateNow(),
commento_al_sognatore: this.commento_al_sognatore,
}, },
param2: this.sognatoredelDono().username, param2: this.sognatoredelDono().username,
param3: mymsg param3: mymsg
@@ -454,6 +466,24 @@ export default class CMyNave extends MixinNave {
return '' return ''
} }
public getpaypalmePagamentoSognatore() {
const rec = this.sognatoredelDono()
if (!!rec) {
if (!!rec.profile)
return rec.profile.link_payment
}
return ''
}
public getnoteaggiuntivePagamentoSognatore() {
const rec = this.sognatoredelDono()
if (!!rec) {
if (!!rec.profile)
return rec.profile.note_payment
}
return ''
}
get getDonoInviato() { get getDonoInviato() {
if (!!this.iodonatore) { if (!!this.iodonatore) {
return !!this.iodonatore.date_made_gift return !!this.iodonatore.date_made_gift
@@ -847,6 +877,15 @@ export default class CMyNave extends MixinNave {
this.aggiorna() this.aggiorna()
} }
public async EseguiCallServer() {
this.Chiudi()
this.loading = true
}
public Callback() {
this.loading = false
}
public getstrinpartenza() { public getstrinpartenza() {
if (this.GiornoDelDonoArrivato) { if (this.GiornoDelDonoArrivato) {
return this.$t('dashboard.nave_partita') return this.$t('dashboard.nave_partita')
@@ -976,7 +1015,7 @@ export default class CMyNave extends MixinNave {
} }
get getnotifBotTxt() { get getnotifBotTxt() {
return this.seluser.name + ' ' + this.seluser.surname + ' è stato sostituito con ' + this.username_sostituire return this.seluser.name + ' (' + this.seluser.surname + ') è stato sostituito con ' + this.username_sostituire
} }
public async SostituisciUtente(user, usernamesost, notifBottxt) { public async SostituisciUtente(user, usernamesost, notifBottxt) {

View File

@@ -114,8 +114,21 @@
{{$t('dashboard.importo')}}: <strong>33</strong> {{$t('dashboard.importo')}}: <strong>33</strong>
</div> </div>
<br> <br>
</div>
<div class="text-evidente2 bordo_stondato_blu2">
<CTitleBanner class="q-pa-xs" <div v-if="GiornoDelDonoArrivato && !donatore_navepers.provvisoria">
<q-img src="statics/images/regalo.jpg"
class=""
style="height: 150px; width: 150px;"
alt="regalo">
</q-img>
<div v-if="!FattoDono && !donoinviato"
v-html="$t('dashboard.effettua_il_dono', {email: getemailPagamentoSognatore() })">
</div>
<CTitleBanner v-if="!FattoDono && !donoinviato" class="q-pa-xs"
:title="$t('dashboard.come_inviare_regalo_con_paypal')" :title="$t('dashboard.come_inviare_regalo_con_paypal')"
bgcolor="bg-primary" bgcolor="bg-primary"
clcolor="text-white" clcolor="text-white"
@@ -126,8 +139,11 @@
</CVideo> </CVideo>
</CTitleBanner> </CTitleBanner>
<div v-if="!FattoDono && !!getpaypalmePagamentoSognatore() && !donoinviato"
<CTitleBanner class="q-pa-xs" v-html="$t('dashboard.paypal_me', {link_payment: getpaypalmePagamentoSognatore() })">
</div>
<CTitleBanner v-if="!FattoDono && !!getpaypalmePagamentoSognatore() && !donoinviato"
class="q-pa-xs"
:title="$t('dashboard.come_inviare_regalo_con_paypal') + '.me'" :title="$t('dashboard.come_inviare_regalo_con_paypal') + '.me'"
bgcolor="bg-primary" bgcolor="bg-primary"
clcolor="text-white" clcolor="text-white"
@@ -137,26 +153,30 @@
</CVideo> </CVideo>
https://youtu.be/VzCy4BxQKhM
</CTitleBanner> </CTitleBanner>
<div v-if="!FattoDono && !!getnoteaggiuntivePagamentoSognatore() && !donoinviato"
</div> v-html="getnoteaggiuntivePagamentoSognatore()">
<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>
<div v-if="!FattoDono"> <div v-if="!FattoDono">
<br/> <br/>
<div v-if="!donoinviato"> <div v-if="!donoinviato">
{{$t('dashboard.clicca_conferma_dono')}}:<br> {{$t('dashboard.clicca_conferma_dono')}}:<br>
<q-input type="textarea"
input-class="myinput-area"
v-model="commento_al_sognatore"
autogrow
:label="$t('dashboard.commento_al_sognatore')"
>
</q-input>
<div class="row justify-center q-ma-sm"> <div class="row justify-center q-ma-sm">
<q-btn push <q-btn push
rounded rounded
color="positive" color="positive"
size="md" size="lg"
:label="$t('dashboard.ho_effettuato_il_dono')" :label="$t('dashboard.ho_effettuato_il_dono')"
icon="fas fa-gift" icon="fas fa-gift"
@click="HoEffettuatoIlDono"> @click="HoEffettuatoIlDono">
@@ -187,8 +207,15 @@
</div> </div>
</div> </div>
</div> </div>
<div v-if="!!getsuperchat && !FattoDono"
class="text-evidente bordo_stondato"
v-html="$t('dashboard.superchat', {link_superchat: getsuperchat })">
</div> </div>
</div>
<br>
<br> <br>
<div class="column justify-center items-center q-gutter-md tutor"> <div class="column justify-center items-center q-gutter-md tutor">
<q-btn rounded color="blue" <q-btn rounded color="blue"
@@ -253,7 +280,8 @@
{{ getindex(donatore, index + 1) }} - {{ donatore.name }} {{ {{ getindex(donatore, index + 1) }} - {{ donatore.name }} {{
donatore.surname }} ({{ donatore.surname }} ({{
donatore.username }}) - {{ donatore.username }}) - {{
donatore.riga}}.{{donatore.col}}<br> donatore.riga}}.{{donatore.col}} <span
v-if="isAdmin"> [ord:{{ donatore.ind_order }}]</span><br>
</div> </div>
<div> <div>
@@ -469,6 +497,9 @@
</q-chip> </q-chip>
</div> </div>
</q-td> </q-td>
<q-td v-if="!tools.isMobile()" key="commento_al_sognatore" :props="props">
{{ props.row.commento_al_sognatore }}
</q-td>
</q-tr> </q-tr>
</template> </template>
</q-table> </q-table>
@@ -577,13 +608,13 @@
</q-field> </q-field>
</div> </div>
<q-toggle v-model="deleteUser" :label="'Elimina ' + seluser.name + ' ' + seluser.surname"></q-toggle> <q-toggle v-model="deleteUser"
<q-toggle v-model="AddImbarco" label="Aggiungi Destinatario (senza spostarlo da altre Navi)"></q-toggle> :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-toggle v-model="notifBot" :label="$t('dashboard.sendnotification')"></q-toggle>
<q-btn class="q-ma-sm" rounded color="positive" text-color="white" <q-btn class="q-ma-sm" rounded color="positive" text-color="white"
icon="fas fa-gift" icon="fas fa-gift"
label="Sostituisci" label="Sostituisci"

View File

@@ -36,9 +36,9 @@ export default class MixinBase extends MixinMetaTags {
return tools return tools
} }
public getValDb(keystr, serv, def?, table?, subkey?) { public getValDb(keystr, serv, def?, table?, subkey?, id?) {
return tools.getValDb(keystr, serv, def, table, subkey) return tools.getValDb(keystr, serv, def, table, subkey, id)
} }
public getValDbLang(keystr, serv, def?, table?, subkey?) { public getValDbLang(keystr, serv, def?, table?, subkey?) {
@@ -48,7 +48,7 @@ export default class MixinBase extends MixinMetaTags {
return ris return ris
} }
public async setValDb(key, value, type, serv: boolean, table?, subkey?) { public async setValDb(key, value, type, serv: boolean, table?, subkey?, id?) {
// console.log('setValDb', key, value, serv, table, subkey) // console.log('setValDb', key, value, serv, table, subkey)
let mydatatosave = null let mydatatosave = null
@@ -78,7 +78,7 @@ export default class MixinBase extends MixinMetaTags {
fieldsvalue: myfield fieldsvalue: myfield
} }
} else { } else if (table === 'settings') {
GlobalStore.mutations.setValueSettingsByKey({ key, value, serv }) GlobalStore.mutations.setValueSettingsByKey({ key, value, serv })
let myrec = GlobalStore.getters.getrecSettingsByKey(key, serv) let myrec = GlobalStore.getters.getrecSettingsByKey(key, serv)
@@ -117,6 +117,24 @@ export default class MixinBase extends MixinMetaTags {
table: 'settings', table: 'settings',
fieldsvalue: myrec fieldsvalue: myrec
} }
} else {
const myfield = {}
// Save to the DB:
if (subkey) {
myfield[key + '.' + subkey] = value
} else {
myfield[key] = value
}
// console.log('myfield', myfield)
mydatatosave = {
id,
table,
fieldsvalue: myfield
}
} }
// console.log('mydatatosave', mydatatosave) // console.log('mydatatosave', mydatatosave)

View File

@@ -302,7 +302,7 @@ export interface IGallery {
export interface IColl { export interface IColl {
title: IAllLang title: IAllLang
date: string date?: string
subtitle?: IAllLang subtitle?: IAllLang
img: string img: string
img2?: string img2?: string
@@ -310,6 +310,8 @@ export interface IColl {
linkagg_type?: number linkagg_type?: number
width?: number width?: number
height?: number height?: number
ingallery?: boolean
inexibitions?: boolean
} }
export interface ICollaborations { export interface ICollaborations {

View File

@@ -16,6 +16,8 @@ export interface IUserProfile {
sex?: ESexType sex?: ESexType
country_pay?: string country_pay?: string
email_paypal?: string email_paypal?: string
link_payment?: string
note_payment?: string
username_telegram?: string username_telegram?: string
teleg_id?: number teleg_id?: number
teleg_checkcode?: number teleg_checkcode?: number
@@ -24,6 +26,8 @@ export interface IUserProfile {
manage_telegram?: boolean manage_telegram?: boolean
saw_zoom_presentation?: boolean saw_zoom_presentation?: boolean
saw_and_accepted?: boolean saw_and_accepted?: boolean
qualified?: boolean
qualified_2invitati?: boolean
} }
export interface IPaymentType { export interface IPaymentType {

View File

@@ -141,13 +141,20 @@ export default class Listadoninavi extends MixinBase {
donatore: rec.name + ' ' + rec.surname donatore: rec.name + ' ' + rec.surname
}) })
tools.askConfirm(this.$q, msgtitle, msginvia + ' ' + '? (Pos ' + rec.riga + '.' + rec.col + ')', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.DONO_RICEVUTO, 0, { let param1 = {
param1: {
_id: rec._id, _id: rec._id,
made_gift: true, made_gift: true,
riga: rec.riga, riga: rec.riga,
col: rec.col, col: rec.col,
}, date_made_gift: null
}
if (!rec.date_made_gift) {
param1.date_made_gift = tools.getDateNow()
}
tools.askConfirm(this.$q, msgtitle, msginvia + ' ' + '? (Pos ' + rec.riga + '.' + rec.col + ')', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.DONO_RICEVUTO, 0, {
param1,
param2: '', param2: '',
param3: '' param3: ''
}) })

View File

@@ -26,6 +26,10 @@ export default class UsersList extends Vue {
label: 'Nascosti', label: 'Nascosti',
value: shared_consts.FILTER_NASCOSTI value: shared_consts.FILTER_NASCOSTI
}, },
{
label: 'Navi Non Presenti!',
value: shared_consts.FILTER_NAVI_NON_PRESENTI
},
{ {
label: 'Non hanno visto Zoom', label: 'Non hanno visto Zoom',
value: shared_consts.FILTER_USER_NO_ZOOM value: shared_consts.FILTER_USER_NO_ZOOM

View File

@@ -17,6 +17,7 @@ const msg_de = {
tableslist: 'Tables', tableslist: 'Tables',
}, },
otherpages: { otherpages: {
sito_offline: 'Sito in Aggiornamento',
modifprof: 'Modify Profile', modifprof: 'Modify Profile',
biografia: 'Biografia', biografia: 'Biografia',
admin: { admin: {

View File

@@ -17,6 +17,7 @@ const msg_enUs = {
tableslist: 'Tables', tableslist: 'Tables',
}, },
otherpages: { otherpages: {
sito_offline: 'Updating Website',
modifprof: 'Modify Profile', modifprof: 'Modify Profile',
biografia: 'Bio', biografia: 'Bio',
error404: 'error404', error404: 'error404',
@@ -193,6 +194,7 @@ const msg_enUs = {
}, },
dashboard: { dashboard: {
data: 'Date', data: 'Date',
data_rich: 'Date Req.',
ritorno: 'Return', ritorno: 'Return',
invitante: 'Invitante', invitante: 'Invitante',
num_tessitura: 'Numero di Tessitura:', num_tessitura: 'Numero di Tessitura:',
@@ -213,15 +215,18 @@ const msg_enUs = {
nave_in_chiusura: 'Closing Gift Chat', nave_in_chiusura: 'Closing Gift Chat',
nave_partita: 'departed on', nave_partita: 'departed on',
tutor: 'Tutor', tutor: 'Tutor',
sonomediatore: 'When you become a Medalist you are contacted by a <strong>TUTOR</strong>, with him you must:<br><ol class="list">' + /*sonomediatore: 'When you become a Medalist you are contacted by a <strong>TUTOR</strong>, with him you must:<br><ol class="list">' +
'<li>Open your <strong>Gift Chat</strong> (you as owner and the Tutor as administrator) with this name:<br><strong>{nomenave}</strong></li>' + '<li>Open your <strong>Gift Chat</strong> (you as owner and the Tutor as administrator) with this name:<br><strong>{nomenave}</strong></li>' +
'<li>Click on the chat name at the top -> Edit -> Administrators -> "Add Administrator", select the Tutor in the list.</li>' + '<li>Click on the chat name at the top -> Edit -> Administrators -> "Add Administrator", select the Tutor in the list.</li>' +
'<li>You have to configure the chat so that whoever enters also sees the previous posts (click on the chat name at the top, click on edit,' + '<li>You have to configure the chat so that whoever enters also sees the previous posts (click on the chat name at the top, click on edit,' +
'change "new members\' history" from hidden to visible.</li>' + 'change "new members\' history" from hidden to visible.</li>' +
'<li>To find the <strong>link to the newly created Chat</strong>: Click on the Chat name at the top, click on the Pencil -> "Group Type" -> "invite to group via link", click on "copy link" and paste it in the <strong>"Link Gift Chat"</strong></li>" + box below.' + '<li>To find the <strong>link to the newly created Chat</strong>: Click on the Chat name at the top, click on the Pencil -> "Group Type" -> "invite to group via link", click on "copy link" and paste it in the <strong>"Link Gift Chat"</strong></li>" + box below.' +
'<li>Send the Gift Chat Link to all Donors by clicking on the button below.</li></ol>.', '<li>Send the Gift Chat Link to all Donors by clicking on the button below.</li></ol>.',
sonodonatore: '<ol class="list"><li>When you are in this position, you will be invited to enter a <strong>Gift Chat</strong> (Telegram) and here you will also find the other 7 Donors, the Mediator, the Dreamer and a Staff representative.' + */
'<li>You will have <strong>4 days</strong> to enter the chat and maximum 7 days to make your Gift, in the payment method that you will find written here.<br></ol>.', sonomediatore: 'When you are a MEDIATOR you will be contacted by <strong>TUTOR AYNI</strong> by message Chat <strong>AYNI BOT</strong>',
superchat: 'Note: ONLY if you have PAYMENT problems, or if you want to be REPLACED, two Tutors are waiting to help you on the Chat:<br><a href="{link_superchat}" target="_blank">Get into Gift Chat</a>.',
sonodonatore: '<ol class="lista"><li>When you are in this position, you will be invited (via a message on <strong>AYNI BOT</strong>) to make the Gift. You will no longer need to enter a Chat.</li>' +
'<li>You will have 4 days to make the Gift (then you will be replaced), in the payment method that you will find written on the message in <strong>AYNI BOT</strong>.<br></ol>',
sonodonatore_seconda_tessitura: '<ol class="lista"><li>Here you are Mediator and also Donor, but being the second Weaving, you won\'t need to make your gift again.<br></ol>', sonodonatore_seconda_tessitura: '<ol class="lista"><li>Here you are Mediator and also Donor, but being the second Weaving, you won\'t need to make your gift again.<br></ol>',
controlla_donatori: 'Check Donor List', controlla_donatori: 'Check Donor List',
link_chat: 'Gift Chat Telegram links', link_chat: 'Gift Chat Telegram links',
@@ -251,7 +256,14 @@ const msg_enUs = {
effettua_il_dono: 'It\'s time to make your Gift!<br>' + effettua_il_dono: 'It\'s time to make your Gift!<br>' +
'Send via <a href="https://www.paypal.com" target="_blank">PayPal</a> to: <strong>{email}</strong><br>' + 'Send via <a href="https://www.paypal.com" target="_blank">PayPal</a> to: <strong>{email}</strong><br>' +
'(Choose the option "SEND TO SOMEONE YOU TRUST")<br>', '(Choose the option "SEND TO SOMEONE YOU TRUST")<br>',
paypal_me: '<br>2) Simplified Method<br><a href="{link_payment}" target="_blank">Click directly here</a><br>' +
'will open PayPal with the amount and the recipient already set.<br>' +
'Add as message: <strong>Gift</strong><br>' +
'<strong><span style="color:red">WARNING:</span> DO NOT select the box</strong>: Paypal shopping protection<br>' +
'If you have any doubts, watch the video below to see how to:' +
'Finally click on "Send Money Now".',
qui_compariranno_le_info: 'On the day of departure of the Ship, the information of the Dreamer will appear', qui_compariranno_le_info: 'On the day of departure of the Ship, the information of the Dreamer will appear',
commento_al_sognatore: 'Write here a comment for the Dreamer:',
posizione: 'Position', posizione: 'Position',
come_inviare_regalo_con_paypal: 'How to send the gift via Paypal', come_inviare_regalo_con_paypal: 'How to send the gift via Paypal',
ho_effettuato_il_dono: 'I Sent the Gift', ho_effettuato_il_dono: 'I Sent the Gift',
@@ -314,6 +326,8 @@ const msg_enUs = {
cellreg: 'Cellulare con cui ti eri registrato', cellreg: 'Cellulare con cui ti eri registrato',
nationality: 'Nationality', nationality: 'Nationality',
email_paypal: 'Email Paypal', email_paypal: 'Email Paypal',
link_payment: 'Paypal.me link to make the payment',
note_payment: 'Additional notes',
country_pay: 'Country of Destination Payments', country_pay: 'Country of Destination Payments',
username_telegram: 'Username Telegram', username_telegram: 'Username Telegram',
telegram: 'Chat Telegram \'{botname}\'', telegram: 'Chat Telegram \'{botname}\'',
@@ -392,6 +406,7 @@ const msg_enUs = {
enter: 'Login', enter: 'Login',
esci: 'Logout', esci: 'Logout',
errato: "Username or password wrong. Please retry again", errato: "Username or password wrong. Please retry again",
subaccount: "This account has been merged with your Main Account. Login using the username (and email) of the FIRST account.",
completato: 'Login successfully!', completato: 'Login successfully!',
needlogin: 'You must login before continuing', needlogin: 'You must login before continuing',
}, },

View File

@@ -17,6 +17,7 @@ const msg_es = {
tableslist: 'Tablas' tableslist: 'Tablas'
}, },
otherpages: { otherpages: {
sito_offline: 'Sitio en actualización',
modifprof: 'Editar Perfil', modifprof: 'Editar Perfil',
biografia: 'Biografia', biografia: 'Biografia',
error404: 'error404', error404: 'error404',
@@ -193,6 +194,7 @@ const msg_es = {
}, },
dashboard: { dashboard: {
data: 'Fecha', data: 'Fecha',
data_rich: 'Fecha Pedido',
ritorno: 'Regreso', ritorno: 'Regreso',
invitante: 'Invitando', invitante: 'Invitando',
num_tessitura: 'Numero di Tessitura:', num_tessitura: 'Numero di Tessitura:',
@@ -214,7 +216,7 @@ const msg_es = {
nave_partita: 'partió en', nave_partita: 'partió en',
tutor: 'Tutor', tutor: 'Tutor',
traduttrici: 'Traduttrici', traduttrici: 'Traduttrici',
sonomediatore: 'Cuando te conviertes en Mediador vienes contactado por un <strong>TUTOR</strong>, con él debes:<br><ol class="lista">' + /*Cuando te conviertes en Mediador vienes contactado por un <strong>TUTOR</strong>, con él debes:<br><ol class="lista">' +
'<li>Abrir tu <strong>Gift Chat</strong> (tu como propietario, y el Tutor ' + '<li>Abrir tu <strong>Gift Chat</strong> (tu como propietario, y el Tutor ' +
'como administrador) con este nombre:<br><strong>{nomenave}</strong></li>' + 'como administrador) con este nombre:<br><strong>{nomenave}</strong></li>' +
'<li>Haz clic en tu nombre en la chat en la parte de arriba-> Modifica -> Administradores -> "Agregar Administrador", selecciona el Tutor en el elenco.</li>' + '<li>Haz clic en tu nombre en la chat en la parte de arriba-> Modifica -> Administradores -> "Agregar Administrador", selecciona el Tutor en el elenco.</li>' +
@@ -222,8 +224,12 @@ const msg_es = {
'cambia la "cronología para los nuevos miembros" de oculto a visible.</li>' + 'cambia la "cronología para los nuevos miembros" de oculto a visible.</li>' +
'<li>Para encontrar el <strong>link de la Chat recién creada</strong>: haz clic en el nombre de la chat en la parte de arriba, haz clic sobre el Lápiz-> "Tipo de Grupo" -> "invita al grupo tràmite link", haz clic en "copiar link" y pégalo aquí abajo, sobre la casilla <strong>"Link Gift Chat"</strong></li>' + '<li>Para encontrar el <strong>link de la Chat recién creada</strong>: haz clic en el nombre de la chat en la parte de arriba, haz clic sobre el Lápiz-> "Tipo de Grupo" -> "invita al grupo tràmite link", haz clic en "copiar link" y pégalo aquí abajo, sobre la casilla <strong>"Link Gift Chat"</strong></li>' +
'<li>Envía el Link de la Gift Chat a todos los Donadores, haciendo clic en el botón aquí abajo.</li></ol>', '<li>Envía el Link de la Gift Chat a todos los Donadores, haciendo clic en el botón aquí abajo.</li></ol>',
sonodonatore: '<ol class="lista"><li>Cuando estás en esta posición, vendrás invitado a entrar en una <strong>Gift Chat</strong> (Telegram) y aqui encontrarás también los otros 7 Donadores, el Mediador, il Soñador y un representante del Staff.</li>' + */
'<li> Tendrás <strong>4 días</strong> para entrar en el chat y un máximo de 7 días para hacer tu regalo, en la modalidad de pago que encontrarás escrita aquí. <br></ol>',
sonomediatore: 'Cuando seas un MEDIADOR serás contactado por <strong>TUTOR AYNI</strong> a través de un mensaje en el Chat <strong>AYNI BOT</strong>.',
superchat: 'Nota: SOLO si tienes problemas de PAGO, o si quieres ser REEMPLAZADO, dos Tutores están esperando para ayudarte en el Chat:<br><a href="{link_superchat}" target="_blank">Entrar en el Chat de Regalos</a>.',
sonodonatore: '<ol class="lista"><li>Cuando estás en esta posición, vendrás invitado (desde un mensaje en el Chat AYNI BOT) para hacer tu regalo. </li>' +
'<li> Tendrás <strong>4 días</strong> para hacer tu regalo, en la modalidad de pago que encontrarás escrita en el mensaje. <br></ol>',
sonodonatore_seconda_tessitura: '<ol class="lista"><li>Aqui tu eres Mediador y también Donador, pero siendo tu segundo Tejido, no será necesario efectuar nuevamente tu regalo<br></ol>', sonodonatore_seconda_tessitura: '<ol class="lista"><li>Aqui tu eres Mediador y también Donador, pero siendo tu segundo Tejido, no será necesario efectuar nuevamente tu regalo<br></ol>',
controlla_donatori: 'Revise la lista de donantes', controlla_donatori: 'Revise la lista de donantes',
link_chat: 'Enlaces del Gift Chat Telegram', link_chat: 'Enlaces del Gift Chat Telegram',
@@ -253,7 +259,14 @@ const msg_es = {
effettua_il_dono: 'Es hora de hacer tu regalo!<br>' + effettua_il_dono: 'Es hora de hacer tu regalo!<br>' +
'Enviar por medio de <a href="https://www.paypal.com" target="_blank">PayPal</a> a: <strong>{email}</strong><br>' + 'Enviar por medio de <a href="https://www.paypal.com" target="_blank">PayPal</a> a: <strong>{email}</strong><br>' +
'(Elija la opción "ENVIAR A ALGUIEN DE CONFIANZA")<br>', '(Elija la opción "ENVIAR A ALGUIEN DE CONFIANZA")<br>',
paypal_me: '<br>2) Método simplificado<br><a href="{link_payment}" target="_blank">Click directamente aquí</a><br>' +
'abrirá PayPal con el importe y el destinatario ya establecido.<br>' +
'Añadir como mensaje: <strong>Regalo</strong><br>' +
'<strong><span style="color:red">ADVERTENCIA:</span> NO MARCAR LA CAJA</fuerte>: Protección de compras por Paypal<br>' +
'Si tienes alguna duda, mira el video de abajo para ver cómo:' +
'Por último, haga clic en "Enviar dinero ahora"',
qui_compariranno_le_info: 'El día de la salida de la nave, la información del Soñador aparecerá', qui_compariranno_le_info: 'El día de la salida de la nave, la información del Soñador aparecerá',
commento_al_sognatore: 'Escribe aquí un comentario para el Soñador:',
posizione: 'Position', posizione: 'Position',
come_inviare_regalo_con_paypal: 'Cómo enviar el regalo a través de Paypal', come_inviare_regalo_con_paypal: 'Cómo enviar el regalo a través de Paypal',
ho_effettuato_il_dono: 'He realizado el Regalo', ho_effettuato_il_dono: 'He realizado el Regalo',
@@ -318,6 +331,8 @@ const msg_es = {
cellreg: 'Cellulare con cui ti eri registrato', cellreg: 'Cellulare con cui ti eri registrato',
nationality: 'Nacionalidad', nationality: 'Nacionalidad',
email_paypal: 'Email Paypal', email_paypal: 'Email Paypal',
link_payment: 'Enlaces Paypal.me para hacer el pago',
note_payment: 'Notas adicionales',
country_pay: 'País del Pagos de destino', country_pay: 'País del Pagos de destino',
username_telegram: 'Usuario Telegram', username_telegram: 'Usuario Telegram',
telegram: 'Chat Telegram \'{botname}\'', telegram: 'Chat Telegram \'{botname}\'',
@@ -398,6 +413,7 @@ const msg_es = {
enter: 'Entra', enter: 'Entra',
esci: 'Salir', esci: 'Salir',
errato: "Nombre de usuario, correo o contraseña incorrectos. inténtelo de nuevo", errato: "Nombre de usuario, correo o contraseña incorrectos. inténtelo de nuevo",
subaccount: "Esta cuenta ha sido fusionada con su inicial. Ingresa usando el nombre de usuario (y el correo electrónico) de tu PRIMERA cuenta.",
completato: 'Login realizado!', completato: 'Login realizado!',
needlogin: 'Debes iniciar sesión antes de continuar', needlogin: 'Debes iniciar sesión antes de continuar',
}, },

View File

@@ -17,6 +17,7 @@ const msg_fr = {
tableslist: 'Tables', tableslist: 'Tables',
}, },
otherpages: { otherpages: {
sito_offline: 'Site en cours de mise à jour',
modifprof: 'Modifier le profil', modifprof: 'Modifier le profil',
biografia: 'Biografia', biografia: 'Biografia',
error404: 'error404', error404: 'error404',
@@ -191,7 +192,8 @@ const msg_fr = {
options: 'Options', options: 'Options',
}, },
dashboard: { dashboard: {
data: 'Données', data: 'Date',
data_rich: 'Date demandée',
ritorno: 'Retour', ritorno: 'Retour',
invitante: 'Invitation', invitante: 'Invitation',
num_tessitura: 'Numero di Tessitura:', num_tessitura: 'Numero di Tessitura:',
@@ -212,7 +214,7 @@ const msg_fr = {
nave_in_chiusura: 'Clôture Gift Chat', nave_in_chiusura: 'Clôture Gift Chat',
nave_partita: 'parti sur', nave_partita: 'parti sur',
tutor: 'Tuteur', tutor: 'Tuteur',
sonomediatore: 'Quand vous devenez Médiateur vous êtes contacté par un <strong>TUTEUR</strong>, avec lui vous devez:<br><ol class="lista">' + /* Quand vous devenez Médiateur vous êtes contacté par un <strong>TUTEUR</strong>, avec lui vous devez:<br><ol class="lista">' +
'<li>Ouvrir votre <strong>Gift Chat</strong> (vous comme propriétaire et le Tuteur ' + '<li>Ouvrir votre <strong>Gift Chat</strong> (vous comme propriétaire et le Tuteur ' +
'comme administrateur) avec ce nom:<br><strong>{nomenave}</strong></li>' + 'comme administrateur) avec ce nom:<br><strong>{nomenave}</strong></li>' +
'<li>Cliquez sur le nom du chat en haut -> Modifiez -> Administrateurs -> "Ajoutez Administrateur", sélectionner le Tuteur dans la liste.</li>' + '<li>Cliquez sur le nom du chat en haut -> Modifiez -> Administrateurs -> "Ajoutez Administrateur", sélectionner le Tuteur dans la liste.</li>' +
@@ -220,8 +222,11 @@ const msg_fr = {
'changez la "chronologie pour les nouveaux membres" de cachée à visibile.</li>' + 'changez la "chronologie pour les nouveaux membres" de cachée à visibile.</li>' +
'<li>Pour trouver le <strong>link du Chat à peine crée</strong>: cliquez sur le nom du chat en haut, cliquez sur le Crayon -> "Type de Groupe" -> "invitez dans le groupe à travers le link", cliquez sur "copiez link" et collez-le ci-dessous, dans la case <strong>"Link Gift Chat"</strong></li>' + '<li>Pour trouver le <strong>link du Chat à peine crée</strong>: cliquez sur le nom du chat en haut, cliquez sur le Crayon -> "Type de Groupe" -> "invitez dans le groupe à travers le link", cliquez sur "copiez link" et collez-le ci-dessous, dans la case <strong>"Link Gift Chat"</strong></li>' +
'<li>Envoyez le Link de la Gift Chat à tous les Donateurs, en cliquant sur le boutton ci-dessous .</li></ol>', '<li>Envoyez le Link de la Gift Chat à tous les Donateurs, en cliquant sur le boutton ci-dessous .</li></ol>',
sonodonatore: '<ol class="lista"><li>Quand vous êtes dans cette position, vous serez invité à entrer dans un <strong>Gift Chat</strong> (Telegram) et là vous y trouverez également les autres 7 Donateurs,le Médiateur, le Rêveur et un représentant du Staff.</li>' + */
'<li>Vous aurez <strong>4 jours</strong> pour entrer dans le chat et 7 jours maximum pour faire votre cadeau, dans la modalité de paiement que vous trouverez écrit ici.<br></ol>', sonomediatore: 'Lorsque vous êtes un MEDIATEUR, vous serez contacté par <strong>TUTOR AYNI</strong> via un message sur le Chat <strong>AYNI BOT</strong>.',
superchat: 'Note : SEULEMENT si vous avez des problèmes de PAIEMENT, ou si vous voulez être REMPLACÉ, deux tuteurs vous attendent pour vous aider sur le Chat:<br><a href="{link_superchat}" target="_blank">Get into Gift Chat</a>.',
sonodonatore: '<ol class="lista"><li>Quand vous êtes dans cette position, vous serez invité pour faire votre cadeau</li>' +
'<li>Vous aurez <strong>4 jours</strong> pour faire votre cadeau.<br></ol>',
sonodonatore_seconda_tessitura: '<ol class="liste"><li>Ici vous êtes Médiateur et également Donateur, mais étant le deuxième Tissage, vous naurez pas besoin déffectuer de nouveau votre don<br></ol>', sonodonatore_seconda_tessitura: '<ol class="liste"><li>Ici vous êtes Médiateur et également Donateur, mais étant le deuxième Tissage, vous naurez pas besoin déffectuer de nouveau votre don<br></ol>',
controlla_donatori: 'Vérifiez la liste des donateurs', controlla_donatori: 'Vérifiez la liste des donateurs',
link_chat: 'Link de Gift Chat Telegram', link_chat: 'Link de Gift Chat Telegram',
@@ -251,7 +256,14 @@ const msg_fr = {
effettua_il_dono: 'Il est temps de faire votre propre regalo ! ' + effettua_il_dono: 'Il est temps de faire votre propre regalo ! ' +
'Envoyez via <a href="https://www.paypal.com" target="_blank">PayPal</a> à : <strong>{email}</strong><br>' + 'Envoyez via <a href="https://www.paypal.com" target="_blank">PayPal</a> à : <strong>{email}</strong><br>' +
'(Choisissez l\'option "ENVOYER À UNE PERSONNE DE CONFIANCE")<br>', '(Choisissez l\'option "ENVOYER À UNE PERSONNE DE CONFIANCE")<br>',
paypal_me: '<br>2) Méthode simplifiée<br><a href="{link_payment}" target="_blank">Cliquez directement ici</a><br>' +
'ouvrira PayPal avec le montant et le destinataire déjà définis.<br>' +
'Ajouter comme message : <strong>Regalo</strong><br>' +
'<strong><span style="color:red">WARNING:</span> NE COCHEZ PAS LA BOITE</strong> : Protection des achats par Paypal<br>' +
'Si vous avez des doutes, regardez la vidéo ci-dessous pour voir comment:' +
'Enfin, cliquez sur "Envoyer de l\'argent maintenant"',
qui_compariranno_le_info: 'Le jour du départ du navire, les informations du Dreamer apparaîtront', qui_compariranno_le_info: 'Le jour du départ du navire, les informations du Dreamer apparaîtront',
commento_al_sognatore: 'Ecrivez ici un commentaire pour le Rêveur:',
posizione: 'Localisation', posizione: 'Localisation',
come_inviare_regalo_con_paypal: 'Comment envoyer le regalo via Paypal', come_inviare_regalo_con_paypal: 'Comment envoyer le regalo via Paypal',
ho_effettuato_il_dono: 'J\'ai effectué le Regalo', ho_effettuato_il_dono: 'J\'ai effectué le Regalo',
@@ -315,6 +327,8 @@ const msg_fr = {
cellreg: 'Cellulare con cui ti eri registrato', cellreg: 'Cellulare con cui ti eri registrato',
nationality: 'Nationalité', nationality: 'Nationalité',
email_paypal: 'Email Paypal', email_paypal: 'Email Paypal',
link_payment: 'Liens Paypal.me pour effectuer le paiement',
note_payment: 'Notes complémentaires',
country_pay: 'Pays de destination Paiements', country_pay: 'Pays de destination Paiements',
username_telegram: 'Nom d\'utilisateur du Telegram', username_telegram: 'Nom d\'utilisateur du Telegram',
telegram: 'Chat Telegram \'{botname}\'', telegram: 'Chat Telegram \'{botname}\'',
@@ -393,6 +407,7 @@ const msg_fr = {
enter: 'Entrez', enter: 'Entrez',
esci: 'Sortir', esci: 'Sortir',
errato: "Nom d'utilisateur, email ou mot de passe incorrect. réessayer", errato: "Nom d'utilisateur, email ou mot de passe incorrect. réessayer",
subaccount: "Ce compte a été fusionné avec votre compte initial. Connectez-vous en utilisant le nom d'utilisateur (et l'adresse électronique) du compte FIRST.",
completato: 'Connexion faite!', completato: 'Connexion faite!',
needlogin: 'Vous devez vous connecter avant de continuer', needlogin: 'Vous devez vous connecter avant de continuer',
}, },

View File

@@ -49,6 +49,7 @@ const msg_it = {
pages: 'Pagine', pages: 'Pagine',
media: 'Media', media: 'Media',
gallery: 'Gallerie', gallery: 'Gallerie',
listaflotte: 'Flotte',
}, },
manage: { manage: {
menu: 'Gestione', menu: 'Gestione',
@@ -218,6 +219,7 @@ const msg_it = {
}, },
dashboard: { dashboard: {
data: 'Data', data: 'Data',
data_rich: 'Data Rich.',
ritorno: 'Ritorno', ritorno: 'Ritorno',
invitante: 'Invitante', invitante: 'Invitante',
dono_da_effettuare: 'Dono che dovrai effettuare', dono_da_effettuare: 'Dono che dovrai effettuare',
@@ -235,12 +237,12 @@ const msg_it = {
nessun_invitante: 'Nessun Invitante', nessun_invitante: 'Nessun Invitante',
nessun_invitato: 'Nessun Invitato', nessun_invitato: 'Nessun Invitato',
legenda_title: 'Clicca sul nome dell\'invitato per vedere lo stato dei suoi Requisiti.', legenda_title: 'Clicca sul nome dell\'invitato per vedere lo stato dei suoi Requisiti.',
nave_in_partenza: 'Apertura Gift Chat', nave_in_partenza: 'La Nave salperà il',
nave_in_chiusura: 'Chiusura Gift Chat', nave_in_chiusura: 'Chiusura Gift Chat',
nave_partita: 'Partita il', nave_partita: 'Partita il',
tutor: 'Tutor', tutor: 'Tutor',
traduttrici: 'Traduttrici', traduttrici: 'Traduttrici',
sonomediatore: 'Quando diventi Meditore vieni contattato da un <strong>TUTOR</strong>, con lui devi:<br><ol class="lista">' + /* 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 ' + '<li>Aprire la tua <strong>Gift Chat</strong> (tu come proprietario e il Tutor ' +
'come amministratore) con questo nome:<br><strong>{nomenave}</strong></li>' + '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 nellelenco.</li>' + '<li>Clicca sul nome della chat in alto -> Modifica -> Amministratori -> "Aggiungi Amministratore", seleziona il Tutor nellelenco.</li>' +
@@ -248,9 +250,12 @@ const msg_it = {
'cambia la "cronologia per i nuovi membri" da nascosta a visibile.</li>' + '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>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>', '<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>', sonomediatore: 'Quando sei MEDIATORE verrai contattato dai <strong>TUTOR AYNI</strong> tramite un messaggio sulla Chat <strong>AYNI BOT</strong> !',
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>', superchat: 'Nota Bene: SOLO se hai problemi di PAGAMENTO, o se vuoi essere SOSTITUITO, due Tutor ti aspettano per aiutarti sulla Chat:<br><a href="{link_superchat}" target="_blank">Entra nella Gift Chat</a>',
sonodonatore: '<ol class="lista"><li>Quando sei in questa posizione, verrai invitato (tramite un messaggio su <strong>AYNI BOT</strong>) ad effettuare il Dono. Non sarà più necessario entrare in una Chat.</li>' +
'<li>Avrai tempo 4 giorni per fare il Regalo (poi verrai sostituito), nella modalità di pagamento che troverai scritto sul messaggio in <strong>AYNI BOT</strong> .<br></ol>',
sonodonatore_seconda_tessitura: '<ol class="lista"><li>Qui tu sei Mediatore e anche Donatore, ma essendo la seconda Tessitura (il Ritorno), non avrai bisogno di effettuare nuovamente il dono<br></ol>',
controlla_donatori: 'Controlla Lista Donatori', controlla_donatori: 'Controlla Lista Donatori',
link_chat: 'Link della Gift Chat Telegram', link_chat: 'Link della Gift Chat Telegram',
tragitto: 'Tragitto', tragitto: 'Tragitto',
@@ -276,14 +281,22 @@ const msg_it = {
msg_donatori_ok: 'Inviato messaggio ai Donatori', msg_donatori_ok: 'Inviato messaggio ai Donatori',
metodi_disponibili: 'Metodi Disponibili', metodi_disponibili: 'Metodi Disponibili',
importo: 'Importo', importo: 'Importo',
effettua_il_dono: 'E\' arrivato il momento di Effettuare il proprio Dono!<br>' + effettua_il_dono: 'E\' arrivato il momento di Effettuare il proprio Dono!<br><br>' +
'Inviare tramite <a href="https://www.paypal.com" target="_blank">PayPal</a> a: <strong>{email}</strong><br>' + '1) Metodo Tradizionale<br>Inviare tramite PayPal a: <strong>{email}</strong><br>' +
'(Scegliere l\'opzione "INVIA A UNA PERSONA DI FIDUCIA")<br>', 'Aggiungere come messaggio la dicitura: <strong>Regalo</strong><br>' +
'(<strong>Scegliere l\'opzione</strong> "INVIA A UNA PERSONA DI FIDUCIA")<br>',
paypal_me: '<br>2) Metodo Semplificato<br><a href="{link_payment}" target="_blank">Cliccare direttamente qui</a><br>' +
'si aprirà PayPal con l\'importo e il destinatario gia impostato.<br>' +
'Aggiungere come messaggio la dicitura: <strong>Regalo</strong><br>' +
'<strong><span style="color:red">ATTENZIONE:</span> NON SPUNTARE LA CASELLA</strong>: Protezione acquisti Paypal<br>' +
'Se hai dubbi, guarda il video qui sotto per vedere come fare:' +
'infine Clicca su “Invia Denaro ora”.',
commento_al_sognatore: 'Scrivi qui un commento per il Sognatore:',
qui_compariranno_le_info: 'Nel giorno della partenza della Nave, compariranno le informazioni del Sognatore', qui_compariranno_le_info: 'Nel giorno della partenza della Nave, compariranno le informazioni del Sognatore',
posizione: 'Posizione', posizione: 'Posizione',
come_inviare_regalo_con_paypal: 'Come Inviare il regalo tramite Paypal', come_inviare_regalo_con_paypal: 'Come Inviare il regalo tramite Paypal',
ho_effettuato_il_dono: 'Ho effettuato il Dono', ho_effettuato_il_dono: 'Ho effettuato il Dono',
clicca_conferma_dono: 'Clicca qui per confermare che hai effettuato il tuo dono', clicca_conferma_dono: 'Una volta inviato il Dono, lascia un commento al Sognatore e Clicca qui sotto per confermare che hai effettuato il tuo dono',
fatto_dono: 'Hai confermato che il dono è stato Inviato', fatto_dono: 'Hai confermato che il dono è stato Inviato',
confermi_dono: 'Confermi che hai inviato il tuo Dono di 33€', confermi_dono: 'Confermi che hai inviato il tuo Dono di 33€',
dono_ricevuto: 'Il tuo Dono è stato Ricevuto!', dono_ricevuto: 'Il tuo Dono è stato Ricevuto!',
@@ -349,6 +362,8 @@ const msg_it = {
cellreg: 'Cellulare con cui ti eri registrato', cellreg: 'Cellulare con cui ti eri registrato',
nationality: 'Nazionalità', nationality: 'Nazionalità',
email_paypal: 'Email Paypal', email_paypal: 'Email Paypal',
link_payment: 'Link Paypal.me per effettuare il pagamento',
note_payment: 'Note Aggiuntive',
country_pay: 'Paese di Destinazione Pagamenti', country_pay: 'Paese di Destinazione Pagamenti',
username_telegram: 'Username Telegram', username_telegram: 'Username Telegram',
telegram: 'Chat Telegram \'{botname}\'', telegram: 'Chat Telegram \'{botname}\'',
@@ -433,6 +448,7 @@ const msg_it = {
enter: 'Accedi', enter: 'Accedi',
esci: 'Esci', esci: 'Esci',
errato: "Username o password errata. Riprovare", errato: "Username o password errata. Riprovare",
subaccount: "Questo account è stato accorpato con il vostro Principale. Eseguire l'accesso utilizzando l'username (o email) del PRIMO account.",
completato: 'Login effettuato!', completato: 'Login effettuato!',
needlogin: 'E\' necessario effettuare il login prima di continuare' needlogin: 'E\' necessario effettuare il login prima di continuare'
}, },

View File

@@ -23,6 +23,7 @@ const msg_pt = {
list: 'Lista', list: 'Lista',
}, },
otherpages: { otherpages: {
sito_offline: 'Site em actualização',
modifprof: 'Editar Perfil', modifprof: 'Editar Perfil',
biografia: 'Biografia', biografia: 'Biografia',
error404: 'error404', error404: 'error404',
@@ -203,6 +204,7 @@ const msg_pt = {
}, },
dashboard: { dashboard: {
data: 'Datum', data: 'Datum',
data_rich: 'Data Pedido',
ritorno: 'Regresso', ritorno: 'Regresso',
invitante: 'Convidados', invitante: 'Convidados',
num_tessitura: 'Numero di Tessitura:', num_tessitura: 'Numero di Tessitura:',
@@ -223,7 +225,7 @@ const msg_pt = {
nave_in_chiusura: 'Encerramento Gift Chat', nave_in_chiusura: 'Encerramento Gift Chat',
nave_partita: 'que partiu em', nave_partita: 'que partiu em',
tutor: 'Tutor', tutor: 'Tutor',
sonomediatore: 'Quando você se torna um mediador, um <strong>TUTOR</strong> entra em contato com você, e deve:<br>' + /* 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>' + '<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>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' + '<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' +
@@ -231,9 +233,11 @@ const msg_pt = {
'<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' + '<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"'+ ', 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>', 'Envie o link do bate-papo para presente a todos os doadores, clicando no botão abaixo.</li></ol>',
*/
sonomediatore: 'Quando você for um MEDIATOR será contactado por <strong>TUTOR AYNI</strong> através de uma mensagem no Chat <strong>AYNI BOT</strong>.',
superchat: 'Nota: SOMENTE se tiver problemas de PAGAMENTO, ou se quiser ser REPRESENTADO, dois Tutores estão à espera para o ajudar no Chat:<br>a href="{link_superchat}" target="_blank">Entre no Gift Chat</a>.',
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>' + 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>', '<li>Você terá 4 dias para entrar no bate-papo para fazer seu presente.<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>', 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', controlla_donatori: 'Verifique a Lista de Doadores',
link_chat: 'Links de telegramas para o Gift Chat', link_chat: 'Links de telegramas para o Gift Chat',
@@ -263,7 +267,14 @@ const msg_pt = {
effettua_il_dono: 'Chegou o momento de fazer o seu Presente!<br>' + effettua_il_dono: 'Chegou o momento de fazer o seu Presente!<br>' +
'Enviar via <a href="https://www.paypal.com" target="_blank">PayPal</a> para: <strong>{email}</strong><br>' + 'Enviar via <a href="https://www.paypal.com" target="_blank">PayPal</a> para: <strong>{email}</strong><br>' +
'(Escolha a opção "ENVIAR A ALGUÉM DA SUA CONFIANÇA".)<br>', '(Escolha a opção "ENVIAR A ALGUÉM DA SUA CONFIANÇA".)<br>',
paypal_me: '<br>2) Método Simplificado<br><a href="{link_payment}" target="_blank">Click directamente aqui</a>>br>' +
'abrirá o PayPal com o montante e o destinatário já definidos.<br>' +
'Adicionar como mensagem: <strong>Presente</strong>>br>' +
'<strong><span style="color:red">AVISO:</span> NÃO SELECCIONAR A CAIXA</strong>: Protecção de compras Paypal<br>' +
'Se tiver alguma dúvida, veja o vídeo abaixo para ver como:' +
'Finalmente clique em "Enviar dinheiro agora"',
qui_compariranno_le_info: 'No dia da partida do Navio, a informação do Sonhador aparecerá', qui_compariranno_le_info: 'No dia da partida do Navio, a informação do Sonhador aparecerá',
commento_al_sognatore: 'Escreva aqui um comentário para o Sonhador:',
posizione: 'Localização', posizione: 'Localização',
come_inviare_regalo_con_paypal: 'Como enviar o presente via Paypal', come_inviare_regalo_con_paypal: 'Como enviar o presente via Paypal',
ho_effettuato_il_dono: 'Eu fiz o Presente', ho_effettuato_il_dono: 'Eu fiz o Presente',
@@ -328,6 +339,8 @@ const msg_pt = {
cellreg: 'Cellulare con cui ti eri registrato', cellreg: 'Cellulare con cui ti eri registrato',
nationality: 'Nacionalidade', nationality: 'Nacionalidade',
email_paypal: 'Email Paypal', email_paypal: 'Email Paypal',
link_payment: 'Ligações Paypal.me para fazer o pagamento',
note_payment: 'Notas Adicionais',
country_pay: 'País de destino dos pagamentos', country_pay: 'País de destino dos pagamentos',
username_telegram: 'Username Telegram', username_telegram: 'Username Telegram',
telegram: 'Chat Telegram \'{botname}\'', telegram: 'Chat Telegram \'{botname}\'',
@@ -407,6 +420,7 @@ const msg_pt = {
enter: 'Entrar', enter: 'Entrar',
esci: 'Saia', esci: 'Saia',
errato: "Username ou senha errados\". Por favor, tente novamente", errato: "Username ou senha errados\". Por favor, tente novamente",
subaccount: "Esta conta foi fundida com a sua conta inicial. Entre utilizando o nome de utilizador (e e-mail) da conta FIRST.",
completato: 'Login concluído!', completato: 'Login concluído!',
needlogin: 'Você deve fazer o login antes de continuar' needlogin: 'Você deve fazer o login antes de continuar'
}, },

View File

@@ -23,6 +23,7 @@ const msg_si = {
list: 'Lista', list: 'Lista',
}, },
otherpages: { otherpages: {
sito_offline: 'Spletno mesto se posodablja',
modifprof: 'Uredi pProfil', modifprof: 'Uredi pProfil',
biografia: 'Biografia', biografia: 'Biografia',
update: 'Posodobitev v teku...', update: 'Posodobitev v teku...',
@@ -72,8 +73,8 @@ const msg_si = {
}, },
steps: { steps: {
nuovo_imbarco: 'Rezerviraj še eno potovanje', nuovo_imbarco: 'Rezerviraj še eno potovanje',
vuoi_entrare_nuova_nave: 'Želis pomagati Gibanju, napredovati in vstopiti v še eno\novo Ladjico?<br>Z novim vplačilom 33€, lahko pričneš novo potovanje in tako dobiš\še eno priložnost, da postaneš Sanjač!<br>' + vuoi_entrare_nuova_nave: 'Želis pomagati Gibanju, napredovati in vstopiti v še eno\novo Ladjico?<br>Z novim vplačilom 33€, lahko pričneš novo potovanje in tako dobiš še eno priložnost, da postaneš Sanjač!<br>' +
'Če potrdiš boš dodan na seznam \čakajočih za vkrcavanje.', 'Če potrdiš boš dodan na seznam čakajočih za vkrcavanje.',
vuoi_cancellare_imbarco: 'Ali ste prepričani, da želite izbrisati vaš vstop v Ladjo Ayni?', vuoi_cancellare_imbarco: 'Ali ste prepričani, da želite izbrisati vaš vstop v Ladjo Ayni?',
completed: 'zaključen', completed: 'zaključen',
passi_su: '{passo} od {totpassi} koraki', passi_su: '{passo} od {totpassi} koraki',
@@ -197,7 +198,8 @@ const msg_si = {
loggati: 'Uporabnik ni prijavljen' loggati: 'Uporabnik ni prijavljen'
}, },
dashboard: { dashboard: {
data: 'Data', data: 'Datum',
data_rich: 'Zahtevani datum',
ritorno: 'Vrnitev', ritorno: 'Vrnitev',
invitante: 'povabljenca', invitante: 'povabljenca',
num_tessitura: 'Numero di Tessitura:', num_tessitura: 'Numero di Tessitura:',
@@ -218,7 +220,7 @@ const msg_si = {
nave_in_chiusura: 'Zapiranje Gift- Darilni klepet', nave_in_chiusura: 'Zapiranje Gift- Darilni klepet',
nave_partita: 'levo naprej', nave_partita: 'levo naprej',
tutor: 'Tutor', tutor: 'Tutor',
sonomediatore: 'Ko postaneš Mediator te kontaktira en <strong>TUTOR</strong>, z njim moraš:<br><ol class="lista">' + /*Ko postaneš Mediator te kontaktira en <strong>TUTOR</strong>, z njim moraš:<br><ol class="lista">' +
'<li>Odpret svoj <strong>Gift- Darilni klepet</strong> (ti kot lastnik in Tutor ' + '<li>Odpret svoj <strong>Gift- Darilni klepet</strong> (ti kot lastnik in Tutor ' +
'kot administrator) s tem imenom:<br><strong>{nomenave}</strong></li>' + 'kot administrator) s tem imenom:<br><strong>{nomenave}</strong></li>' +
'<li>Klikni na ime klepeta na vrhu-> Popravi -> Administratorji -> "Dodaj Administratorja", izberi Tutorja v imeniku.</li>' + '<li>Klikni na ime klepeta na vrhu-> Popravi -> Administratorji -> "Dodaj Administratorja", izberi Tutorja v imeniku.</li>' +
@@ -226,8 +228,11 @@ const msg_si = {
'spremeni "zgodovina za nove člane" iz skrite v vidno.</li>' + 'spremeni "zgodovina za nove člane" iz skrite v vidno.</li>' +
'<li>Da najdeš <strong>link pravkar ustvarjenega klepeta </strong>: klikni na ime klepeta na vrhu, klikni na svinčnik -> "Vrsta Skupine" -> "z linkom povabi v skupino", klikni na"kopiraj link" in prilepi tu spodaj, v okvir<strong>"Link Gift Klepet"</strong></li>' + '<li>Da najdeš <strong>link pravkar ustvarjenega klepeta </strong>: klikni na ime klepeta na vrhu, klikni na svinčnik -> "Vrsta Skupine" -> "z linkom povabi v skupino", klikni na"kopiraj link" in prilepi tu spodaj, v okvir<strong>"Link Gift Klepet"</strong></li>' +
'<li>Pošlji Link Gift Klepeta vsem Donatorjem, tako, da klikneš na spodnji gumb.</li></ol>', '<li>Pošlji Link Gift Klepeta vsem Donatorjem, tako, da klikneš na spodnji gumb.</li></ol>',
*/
sonomediatore: 'Ko ste MEDIATOR, vas bo <strong>TUTOR AYNI</strong> poklical preko sporočila na klepetu <strong>AYNI BOT</strong>',
superchat: 'Pozorno preberi: SAMO če imaš težave s PLAČILOM, ali želiš biti ZAMENJAN, te dva Tutorja pričakujeta, da ti lahko pomagata v Klepetu:<br><a href="{link_superchat}" target="_blank">Vstopi v Super Klepet</a>',
sonodonatore: '<ol class="lista"><li>Ko si na tej poziciji, boš povabljen, da vstopiš v <strong>Gift Klepet</strong> (Telegram) in tam boš našel še ostalih 7 Donatorjev, Mediatorja, Sanjača in enega predstavnika Tima.</li>' + sonodonatore: '<ol class="lista"><li>Ko si na tej poziciji, boš povabljen, da vstopiš v <strong>Gift Klepet</strong> (Telegram) in tam boš našel še ostalih 7 Donatorjev, Mediatorja, Sanjača in enega predstavnika Tima.</li>' +
'<li>Imel boš 4 dni časa za vstop v klepet in maksimalno 7 dni za izpeljati vplačilo, ki ga imaš napisanega tu.<br></ol>', '<li>Imel boš 4 dni časa v za izpeljati vplačilo.<br></ol>',
sonodonatore_seconda_tessitura: '<ol class="lista"><li>Tu si istočasno Mediator in Donator. Ker je to tvoj avtomatičen vpis, ti ni sedaj potrebno vplačati!<br></ol>', sonodonatore_seconda_tessitura: '<ol class="lista"><li>Tu si istočasno Mediator in Donator. Ker je to tvoj avtomatičen vpis, ti ni sedaj potrebno vplačati!<br></ol>',
controlla_donatori: 'Preverite seznam donatorjev', controlla_donatori: 'Preverite seznam donatorjev',
link_chat: 'Povezava telegrama darilnega klepeta', link_chat: 'Povezava telegrama darilnega klepeta',
@@ -254,10 +259,19 @@ const msg_si = {
msg_donatori_ok: 'Poslano sporočilo Donatorjem', msg_donatori_ok: 'Poslano sporočilo Donatorjem',
metodi_disponibili: 'Načini na Voljo', metodi_disponibili: 'Načini na Voljo',
importo: 'Uvoz', importo: 'Uvoz',
effettua_il_dono: 'Je\' prišel trenutek da Vplačaš svoje darilo!<br>' + effettua_il_dono: 'Je prišel trenutek da Vplačaš svoje darilo!<br>' +
'Vplačaj preko <a href="https://www.paypal.com" target="_blank">PayPal</a> a: <strong>{email}</strong><br>' + '1) Tradicionalna metoda<br>' +
'(Izberi možnost "Pošlji osebi, ki ji zaupaš")<br>', 'Vplačilo preko PayPal na: {email}<br>' +
'V sporocilo dopiši: Darilo<br>' +
'Zberi možnost "POŠLJI OSEBI, KI JI ZAUPAŠ"',
paypal_me: '<br>2) Poenostavljena metoda<br><a href="{link_payment}" target="_blank">Klikneš direktno na link</a><br>' +
'odpre se ti si PayPal z že vpisanim zneskom in postavljenim emailom osebe, ki ji vplačuješ<br>' +
'V sporočilo dopiši: <strong>Darilo</strong><br>' +
'<strong><span style="color:red">POZOR NE OZNAČI POLJA</span></strong>: Zaščita nakupa Paypal<br>' +
'Če imaš dvome, si oglej celoten postopek v spodnjem videu:' +
'Na koncu klikni “Pošlji denar -Vplačaj”',
qui_compariranno_le_info: 'Na dan odhoda Ladje, prejmete vse potrebne informacije s strani Sanjača', qui_compariranno_le_info: 'Na dan odhoda Ladje, prejmete vse potrebne informacije s strani Sanjača',
commento_al_sognatore: 'Tu napišite komentar za Sanjač:',
posizione: 'Pozicija', posizione: 'Pozicija',
come_inviare_regalo_con_paypal: 'Kako vplačati preko', come_inviare_regalo_con_paypal: 'Kako vplačati preko',
ho_effettuato_il_dono: 'POTRJUJEM VPLAČILO', ho_effettuato_il_dono: 'POTRJUJEM VPLAČILO',
@@ -298,7 +312,7 @@ const msg_si = {
you: 'Ti', you: 'Ti',
cancella_invitato: 'Odstrani povabljenca', cancella_invitato: 'Odstrani povabljenca',
cancella_account: 'Zbriši registracijo', cancella_account: 'Zbriši registracijo',
cancellami: 'Si siguren, da želiš popolnoma Izbrisati svojo Registracijo na {sitename} in tako izstopiti iz gibanja? Ne boš mogel več\' vstopiti na spletno stran s svojimi podatki, Izgubil Perderai boš svojo POZICIJO in tvoji povabljenci bodo PODARJENI osebi, ki te je povabila.', cancellami: 'Si siguren, da želiš popolnoma Izbrisati svojo Registracijo na {sitename} in tako izstopiti iz gibanja? Ne boš mogel več vstopiti na spletno stran s svojimi podatki, Izgubil Perderai boš svojo POZICIJO in tvoji povabljenci bodo PODARJENI osebi, ki te je povabila.',
cancellami_2: 'ZADNJE OBVESTILO! Bi rad Definitivno izstopil iz {sitename} ?', cancellami_2: 'ZADNJE OBVESTILO! Bi rad Definitivno izstopil iz {sitename} ?',
account_cancellato: 'Tvoj profil je pravilno izbrisan', account_cancellato: 'Tvoj profil je pravilno izbrisan',
regala_invitato: 'Podari povabljenca', regala_invitato: 'Podari povabljenca',
@@ -328,6 +342,8 @@ const msg_si = {
cellreg: 'Telefonska s katero si se registriral', cellreg: 'Telefonska s katero si se registriral',
nationality: 'Nacionalnost', nationality: 'Nacionalnost',
email_paypal: 'Email Paypal', email_paypal: 'Email Paypal',
link_payment: 'Povezava paypal.me za izvedbo plačila',
note_payment: 'Dodatne opombe',
country_pay: 'Država destinacije Vplačil', country_pay: 'Država destinacije Vplačil',
username_telegram: 'Uporabniško ime Telegram', username_telegram: 'Uporabniško ime Telegram',
telegram: 'Klepet Telegram \'{botname}\'', telegram: 'Klepet Telegram \'{botname}\'',
@@ -368,19 +384,19 @@ const msg_si = {
required: 'je zahtevano', required: 'je zahtevano',
email: 'vpiši veljaven email', email: 'vpiši veljaven email',
errore_generico: 'Prosimo, da pravilno izpolnete vsa polja', errore_generico: 'Prosimo, da pravilno izpolnete vsa polja',
atleast: 'mora\'biti dolgo vsaj', atleast: 'mora biti dolgo vsaj',
complexity: 'ora vsebobati vsaj 1 malo črko, 1 veliko črko, 1 številko', complexity: 'ora vsebobati vsaj 1 malo črko, 1 veliko črko, 1 številko',
notmore: 'ne sme\'biti dolgo več kot', notmore: 'ne sme biti dolgo več kot',
char: 'karakterji', char: 'karakterji',
terms: 'Za nadaljevanje, moraš sprejeti pogoje poslovanja.', terms: 'Za nadaljevanje, moraš sprejeti pogoje poslovanja.',
email_not_exist: 'l\'Email ni prisotna v arhivu, preveri, če je pravilna', email_not_exist: 'E-naslov ni prisotna v arhivu, preveri, če je pravilna',
duplicate_email: 'l\'Email je že bila registrirana', duplicate_email: 'E-naslov je že bila registrirana',
user_already_exist: 'Registracija s temi podatki (ime,priimek, telefonska)je že uporabljena.Za vstop na spletno stran, klikni na gumb LOGIN na Začetni Strani.', user_already_exist: 'Registracija s temi podatki (ime,priimek, telefonska)je že uporabljena.Za vstop na spletno stran, klikni na gumb LOGIN na Začetni Strani.',
user_extralist_not_found: 'Uporabnik ni najden v arhivu, vpiši Ime,Priimek in telefonsko, ki si jo posredoval v listi leta 2019. Če je to nova registracija, se moraš prijaviti potom LINKA osebe, ki te vabi.', user_extralist_not_found: 'Uporabnik ni najden v arhivu, vpiši Ime,Priimek in telefonsko, ki si jo posredoval v listi leta 2019. Če je to nova registracija, se moraš prijaviti potom LINKA osebe, ki te vabi.',
user_not_this_aportador: 'Uporabljaš link druge osebe, različen od tvojega originalnega povabljenca.', user_not_this_aportador: 'Uporabljaš link druge osebe, različen od tvojega originalnega povabljenca.',
duplicate_username: 'To\'Uporabniško ime je že uporabljeno', duplicate_username: 'To Uporabniško ime je že uporabljeno',
aportador_not_exist: 'To\'Uporabniško ime, ki te je povabilo, ni več prisotno.Kontaktiraj nas.', aportador_not_exist: 'To Uporabniško ime, ki te je povabilo, ni več prisotno.Kontaktiraj nas.',
aportador_regalare_not_exist: 'Vpiši\'Uporabniško ime osebe, ki jo želiš podariti\'povabljencu', aportador_regalare_not_exist: 'Vpiši Uporabniško ime osebe, ki jo želiš podariti povabljencu',
sameaspassword: 'Geslo mora biti enako', sameaspassword: 'Geslo mora biti enako',
}, },
tips: { tips: {
@@ -397,8 +413,9 @@ const msg_si = {
enter: 'Vstopi', enter: 'Vstopi',
esci: 'Izstopi', esci: 'Izstopi',
errato: "Uporabniško ime ali geslo napačna.Poskusi ponovno", errato: "Uporabniško ime ali geslo napačna.Poskusi ponovno",
subaccount: "Ta profil je bil združen z vašim prvim profilom. Izpelji dostop z vpisom uporabniskega imena(ali emaila) iz PRVEGA vpisa",
completato: 'Uspešen vpis!', completato: 'Uspešen vpis!',
needlogin: 'Je\' potrebno izpeljati vpis preden nadaljuješ.' needlogin: 'Je potrebno izpeljati vpis preden nadaljuješ.'
}, },
reset: { reset: {
title_reset_pwd: "Ponastavi geslo", title_reset_pwd: "Ponastavi geslo",
@@ -471,7 +488,6 @@ const msg_si = {
showpdf: 'Poglej PDF', showpdf: 'Poglej PDF',
bookingtextdefault: 'Rezerviram za', bookingtextdefault: 'Rezerviram za',
bookingtextdefault_of: 'od', bookingtextdefault_of: 'od',
data: 'Datum',
teachertitle: 'Učitelj', teachertitle: 'Učitelj',
peoplebooked: 'Rezervacije.', peoplebooked: 'Rezervacije.',
showlastschedule: 'Poglej v kolendarju', showlastschedule: 'Poglej v kolendarju',

View File

@@ -864,6 +864,32 @@ namespace Actions {
}) })
} }
async function InviaMsgAFlotta(context, { flotta, inviareale, inviaemail, tipomsg }) {
console.log('InviaMsgAFlotta')
const mydata = {
idapp: process.env.APP_ID,
tipomsg,
flotta,
inviareale,
inviaemail,
}
return await Api.SendReq('/dashboard/msgflotta', 'POST', mydata)
.then((res) => {
if (res.status === 200) {
if (res.data.code === serv_constants.RIS_CODE_OK) {
return res.data.ris
}
}
return null
})
.catch((error) => {
console.error(error)
return null
})
}
async function GetArrNavi(context) { async function GetArrNavi(context) {
console.log('GetArrNavi') console.log('GetArrNavi')
@@ -886,6 +912,28 @@ namespace Actions {
}) })
} }
async function GetMsgTemplates(context) {
console.log('GetMsgTemplates')
const mydata = {
idapp: process.env.APP_ID
}
return await Api.SendReq('/dashboard/getmsg_templates', 'POST', mydata)
.then((res) => {
if (res.status === 200) {
if (res.data.code === serv_constants.RIS_CODE_OK) {
return res.data.ris
}
}
return null
})
.catch((error) => {
console.error(error)
return null
})
}
async function GetNave(context, { riga, col, riga1don, col1don, ind_order }) { async function GetNave(context, { riga, col, riga1don, col1don, ind_order }) {
// console.log('GetNave') // console.log('GetNave')
@@ -960,6 +1008,55 @@ namespace Actions {
}) })
} }
async function GetFlotte(context, { ricalcola, showall }) {
console.log('GetFlotte')
const mydata = {
idapp: process.env.APP_ID,
ricalcola,
showall
}
return await Api.SendReq('/dashboard/getflotte', 'POST', mydata)
.then((res) => {
if (res.status === 200) {
if (res.data.code === serv_constants.RIS_CODE_OK) {
return res.data.arrflotte
}
}
return null
})
.catch((error) => {
console.error(error)
return null
})
}
async function GetFlotta(context, { riga, col_prima, col_ultima}) {
console.log('GetFlotta')
const mydata = {
idapp: process.env.APP_ID,
riga,
col_prima,
col_ultima,
}
return await Api.SendReq('/dashboard/getflotta', 'POST', mydata)
.then((res) => {
if (res.status === 200) {
if (res.data.code === serv_constants.RIS_CODE_OK) {
return res.data
}
}
return null
})
.catch((error) => {
console.error(error)
return null
})
}
async function loadSite(context) { async function loadSite(context) {
// console.log('CalendarStore: loadAfterLogin') // console.log('CalendarStore: loadAfterLogin')
// Load local data // Load local data
@@ -1144,9 +1241,13 @@ namespace Actions {
sendEmailTest: b.dispatch(sendEmailTest), sendEmailTest: b.dispatch(sendEmailTest),
DuplicateRec: b.dispatch(DuplicateRec), DuplicateRec: b.dispatch(DuplicateRec),
InviaMsgADonatori: b.dispatch(InviaMsgADonatori), InviaMsgADonatori: b.dispatch(InviaMsgADonatori),
InviaMsgAFlotta: b.dispatch(InviaMsgAFlotta),
GetArrNavi: b.dispatch(GetArrNavi), GetArrNavi: b.dispatch(GetArrNavi),
GetMsgTemplates: b.dispatch(GetMsgTemplates),
GetNave: b.dispatch(GetNave), GetNave: b.dispatch(GetNave),
GetArrDoniNavi: b.dispatch(GetArrDoniNavi), GetArrDoniNavi: b.dispatch(GetArrDoniNavi),
GetFlotta: b.dispatch(GetFlotta),
GetFlotte: b.dispatch(GetFlotte),
GetData: b.dispatch(GetData), GetData: b.dispatch(GetData),
addDynamicPages: b.dispatch(addDynamicPages) addDynamicPages: b.dispatch(addDynamicPages)
} }

View File

@@ -42,6 +42,8 @@ export const DefaultUser: IUserFields = {
teleg_id: 0, teleg_id: 0,
saw_zoom_presentation: false, saw_zoom_presentation: false,
saw_and_accepted: false, saw_and_accepted: false,
qualified: false,
qualified_2invitati: false,
}, },
downline: [], downline: [],
calcstat: DefaultCalc, calcstat: DefaultCalc,
@@ -58,6 +60,8 @@ export const DefaultProfile: IUserProfile = {
sex: 0, sex: 0,
country_pay: '', country_pay: '',
email_paypal: '', email_paypal: '',
link_payment: '',
note_payment: '',
username_telegram: '', username_telegram: '',
teleg_id: 0, teleg_id: 0,
teleg_checkcode: 0, teleg_checkcode: 0,
@@ -65,7 +69,9 @@ export const DefaultProfile: IUserProfile = {
manage_telegram: false, manage_telegram: false,
saw_zoom_presentation: false, saw_zoom_presentation: false,
saw_and_accepted: false, saw_and_accepted: false,
paymenttypes: [] paymenttypes: [],
qualified: false,
qualified_2invitati: false,
} }
// State // State

View File

@@ -75,8 +75,26 @@ export const colgallery = [
}), }),
] ]
export const colmsg_templates = [
AddCol({ name: 'title', label_trans: 'pages.title' }),
AddCol({ name: 'typemsg', label_trans: 'TypeMsg', fieldtype: tools.FieldType.number }),
AddCol({ name: 'title_it', label_trans: 'Tit Ita', fieldtype: tools.FieldType.string }),
AddCol({ name: 'msg_it', label_trans: 'ITA', fieldtype: tools.FieldType.html }),
AddCol({ name: 'title_si', label_trans: 'Tit SLO', fieldtype: tools.FieldType.string }),
AddCol({ name: 'msg_si', label_trans: 'SLO', fieldtype: tools.FieldType.html }),
AddCol({ name: 'title_enUs', label_trans: 'Tit ENG', fieldtype: tools.FieldType.string }),
AddCol({ name: 'msg_enUs', label_trans: 'ENG', fieldtype: tools.FieldType.html }),
AddCol({ name: 'title_es', label_trans: 'Tit ESP', fieldtype: tools.FieldType.string }),
AddCol({ name: 'msg_es', label_trans: 'ESP', fieldtype: tools.FieldType.html }),
AddCol({ name: 'title_pt', label_trans: 'Tit POR', fieldtype: tools.FieldType.string }),
AddCol({ name: 'msg_pt', label_trans: 'POR', fieldtype: tools.FieldType.html }),
AddCol({ name: 'title_fr', label_trans: 'Tit FRA', fieldtype: tools.FieldType.string }),
AddCol({ name: 'msg_fr', label_trans: 'FRA', fieldtype: tools.FieldType.html }),
]
export const colmypage = [ export const colmypage = [
AddCol({ name: 'title', label_trans: 'pages.title' }), AddCol({ name: 'title', label_trans: 'pages.title' }),
AddCol({ name: 'content', label_trans: 'pages.content', fieldtype: tools.FieldType.html }),
AddCol({ name: 'lang', label_trans: 'pages.lang' }), AddCol({ name: 'lang', label_trans: 'pages.lang' }),
AddCol({ name: 'path', label_trans: 'pages.path' }), AddCol({ name: 'path', label_trans: 'pages.path' }),
AddCol({ name: 'icon', label_trans: 'pages.icon' }), AddCol({ name: 'icon', label_trans: 'pages.icon' }),
@@ -86,7 +104,6 @@ export const colmypage = [
AddCol({ name: 'heightimg', label_trans: 'pages.heightimg', fieldtype: tools.FieldType.number }), AddCol({ name: 'heightimg', label_trans: 'pages.heightimg', fieldtype: tools.FieldType.number }),
AddCol({ name: 'onlyif_logged', label_trans: 'pages.onlyif_logged', fieldtype: tools.FieldType.boolean }), AddCol({ name: 'onlyif_logged', label_trans: 'pages.onlyif_logged', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'imgback', label_trans: 'pages.imgback', fieldtype: tools.FieldType.string }), AddCol({ name: 'imgback', label_trans: 'pages.imgback', fieldtype: tools.FieldType.string }),
AddCol({ name: 'content', label_trans: 'pages.content', fieldtype: tools.FieldType.html }),
AddCol({ name: 'active', label_trans: 'pages.active', fieldtype: tools.FieldType.boolean }), AddCol({ name: 'active', label_trans: 'pages.active', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'inmenu', label_trans: 'pages.inmenu', fieldtype: tools.FieldType.boolean }), AddCol({ name: 'inmenu', label_trans: 'pages.inmenu', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'submenu', label_trans: 'pages.submenu', fieldtype: tools.FieldType.boolean }), AddCol({ name: 'submenu', label_trans: 'pages.submenu', fieldtype: tools.FieldType.boolean }),
@@ -159,6 +176,12 @@ const colpaymenttype = [
AddCol(DeleteRec) AddCol(DeleteRec)
] ]
const colflotte = [
AddCol({ name: 'index', label_trans: 'others.value' }),
AddCol({ name: 'riga', label_trans: 'reg.riga' }),
AddCol({ name: 'col_prima', label_trans: 'ColPrima' }),
AddCol({ name: 'col_ultima', label_trans: 'ColUltima' }),
]
const colnavi = [ const colnavi = [
AddCol({ name: '_id', label_trans: 'others.value' }), AddCol({ name: '_id', label_trans: 'others.value' }),
AddCol({ name: 'idListaIngresso', label_trans: 'idListaIngresso' }), AddCol({ name: 'idListaIngresso', label_trans: 'idListaIngresso' }),
@@ -170,7 +193,11 @@ const colnavi = [
// AddCol({ name: 'date_gift_chat_open', label_trans: 'date_gift_chat_open', 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: 'link_chat', label_trans: 'reg.link_chat' }),
AddCol({ name: 'parent_id', label_trans: 'parent_id' }), AddCol({ name: 'parent_id', label_trans: 'parent_id' }),
AddCol({ name: 'sent_msg_howto_make_gift', label_trans: 'sent_msg_howto_make_gift', fieldtype: tools.FieldType.boolean }), AddCol({
name: 'sent_msg_howto_make_gift',
label_trans: 'sent_msg_howto_make_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: 'made_gift', label_trans: 'reg.made_gift', fieldtype: tools.FieldType.boolean }), AddCol({ name: 'made_gift', label_trans: 'reg.made_gift', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'date_made_gift', label_trans: 'date_made_gift', fieldtype: tools.FieldType.date }), AddCol({ name: 'date_made_gift', label_trans: 'date_made_gift', fieldtype: tools.FieldType.date }),
@@ -192,7 +219,11 @@ const colnavepersistente = [
AddCol({ name: 'date_start', label_trans: 'dashboard.nave_in_chiusura', fieldtype: tools.FieldType.date }), AddCol({ name: 'date_start', label_trans: 'dashboard.nave_in_chiusura', fieldtype: tools.FieldType.date }),
AddCol({ name: 'link_chat', label_trans: 'reg.link_chat' }), AddCol({ name: 'link_chat', label_trans: 'reg.link_chat' }),
AddCol({ name: 'provvisoria', label_trans: 'reg.provvisoria', fieldtype: tools.FieldType.boolean }), 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: 'DoniAttesaDiConferma', label_trans: 'note_bot', fieldtype: tools.FieldType.number }),
AddCol({ name: 'DoniMancanti', label_trans: 'note_bot', fieldtype: tools.FieldType.number }),
AddCol({ name: 'DoniConfermati', label_trans: 'note_bot', fieldtype: tools.FieldType.number }),
AddCol({ name: 'DoniConfermati', label_trans: 'note_bot', fieldtype: tools.FieldType.number }),
AddCol({ name: 'DoniTotali', label_trans: 'note_bot', fieldtype: tools.FieldType.string }),
AddCol({ name: 'note_interne', label_trans: 'note_interne', 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({ name: 'tutor', label_trans: 'tutor', fieldtype: tools.FieldType.string }),
AddCol(DeleteRec), AddCol(DeleteRec),
@@ -206,6 +237,7 @@ const collistaingresso = [
AddCol({ name: 'invitante_username', label_trans: 'reg.aportador_solidario' }), AddCol({ name: 'invitante_username', label_trans: 'reg.aportador_solidario' }),
AddCol({ name: 'date_added', label_trans: 'date_added', fieldtype: tools.FieldType.date }), AddCol({ name: 'date_added', label_trans: 'date_added', fieldtype: tools.FieldType.date }),
AddCol({ name: 'added', label_trans: 'Aggiunto', fieldtype: tools.FieldType.boolean }), AddCol({ name: 'added', label_trans: 'Aggiunto', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'navestr', label_trans: 'Nave', fieldtype: tools.FieldType.string }),
AddCol({ name: 'num_tess', label_trans: 'num_tess', fieldtype: tools.FieldType.number }), AddCol({ name: 'num_tess', label_trans: 'num_tess', fieldtype: tools.FieldType.number }),
AddCol({ name: 'note', label_trans: 'reg.note', fieldtype: tools.FieldType.string }), AddCol({ name: 'note', label_trans: 'reg.note', fieldtype: tools.FieldType.string }),
AddCol({ name: 'deleted', label_trans: 'reg.deleted', fieldtype: tools.FieldType.boolean }), AddCol({ name: 'deleted', label_trans: 'reg.deleted', fieldtype: tools.FieldType.boolean }),
@@ -228,6 +260,8 @@ const colgraduatoria = [
AddCol({ name: 'numinvitatiTot', label_trans: 'Inv (Tot)', 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: 'numinvitatiattiviTot', label_trans: 'Att. Tot', fieldtype: tools.FieldType.number }),
AddCol({ name: 'invitante_username', label_trans: 'reg.aportador_solidario' }), AddCol({ name: 'invitante_username', label_trans: 'reg.aportador_solidario' }),
AddCol({ name: 'navestr', label_trans: 'Nave', fieldtype: tools.FieldType.string }),
AddCol({ name: 'note', label_trans: 'note', fieldtype: tools.FieldType.string }),
AddCol({ name: 'date_added', label_trans: 'date_added', fieldtype: tools.FieldType.date }), AddCol({ name: 'date_added', label_trans: 'date_added', fieldtype: tools.FieldType.date }),
AddCol(DuplicateRec), AddCol(DuplicateRec),
AddCol(DeleteRec) AddCol(DeleteRec)
@@ -505,33 +539,114 @@ export const fieldsTable = {
AddCol({ name: 'old_order', label_trans: 'old_order' }), AddCol({ name: 'old_order', label_trans: 'old_order' }),
AddCol({ name: 'sospeso', label_trans: 'reg.sospeso', fieldtype: tools.FieldType.boolean }), AddCol({ name: 'sospeso', label_trans: 'reg.sospeso', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'deleted', label_trans: 'reg.deleted', fieldtype: tools.FieldType.boolean }), AddCol({ name: 'deleted', label_trans: 'reg.deleted', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'subaccount', label_trans: 'SubAccount', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'navinonpresenti', label_trans: 'Navi Non Presenti', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'non_voglio_imbarcarmi', label_trans: 'non_voglio_imbarcarmi', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'username', label_trans: 'reg.username_short' }), AddCol({ name: 'username', label_trans: 'reg.username_short' }),
AddCol({ name: 'name', label_trans: 'reg.name' }), AddCol({ name: 'name', label_trans: 'reg.name' }),
AddCol({ name: 'surname', label_trans: 'reg.surname' }), AddCol({ name: 'surname', label_trans: 'reg.surname' }),
AddCol({ name: 'email', label_trans: 'reg.email' }), AddCol({ name: 'email', label_trans: 'reg.email' }),
AddCol({ name: 'verified_email', label_trans: 'reg.verified_email', fieldtype: tools.FieldType.boolean }), AddCol({ name: 'verified_email', label_trans: 'reg.verified_email', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'profile.teleg_id', field: 'profile', subfield: 'teleg_id', label_trans: 'reg.teleg_id' }), AddCol({ name: 'profile.teleg_id', field: 'profile', subfield: 'teleg_id', label_trans: 'reg.teleg_id' }),
AddCol({ name: 'profile.saw_and_accepted', field: 'profile', subfield: 'saw_and_accepted', label_trans: 'reg.saw_and_accepted', fieldtype: tools.FieldType.binary, jointable: 'accepted' }), AddCol({
AddCol({ name: 'profile.saw_zoom_presentation', field: 'profile', subfield: 'saw_zoom_presentation', label_trans: 'reg.saw_zoom_presentation', fieldtype: tools.FieldType.boolean }), name: 'profile.saw_and_accepted',
field: 'profile',
subfield: 'saw_and_accepted',
label_trans: 'reg.saw_and_accepted',
fieldtype: tools.FieldType.binary,
jointable: 'accepted'
}),
AddCol({
name: 'profile.saw_zoom_presentation',
field: 'profile',
subfield: 'saw_zoom_presentation',
label_trans: 'reg.saw_zoom_presentation',
fieldtype: tools.FieldType.boolean
}),
AddCol({
name: 'profile.qualified',
field: 'profile',
subfield: 'qualified',
label_trans: 'reg.qualified',
fieldtype: tools.FieldType.boolean
}),
AddCol({
name: 'profile.qualified_2invitati',
field: 'profile',
subfield: 'qualified_2invitati',
label_trans: '2_Inv',
fieldtype: tools.FieldType.boolean
}),
AddCol({ name: 'profile.my_dream', field: 'profile', subfield: 'my_dream', label_trans: 'reg.my_dream' }), AddCol({ name: 'profile.my_dream', field: 'profile', subfield: 'my_dream', label_trans: 'reg.my_dream' }),
AddCol({ name: 'profile.email_paypal', field: 'profile', subfield: 'email_paypal', label_trans: 'reg.email_paypal' }), AddCol({
AddCol({ name: 'profile.paymenttypes', field: 'profile', subfield: 'paymenttypes', label_trans: 'reg.paymenttype', fieldtype: tools.FieldType.multiselect, jointable: 'paymenttypes' }), name: 'profile.email_paypal',
field: 'profile',
subfield: 'email_paypal',
label_trans: 'reg.email_paypal'
}),
AddCol({
name: 'profile.link_payment',
field: 'profile',
subfield: 'link_payment',
label_trans: 'reg.link_payment'
}),
AddCol({
name: 'profile.note_payment',
field: 'profile',
subfield: 'note_payment',
label_trans: 'reg.note_payment'
}),
AddCol({
name: 'profile.paymenttypes',
field: 'profile',
subfield: 'paymenttypes',
label_trans: 'reg.paymenttype',
fieldtype: tools.FieldType.multiselect,
jointable: 'paymenttypes'
}),
// AddCol({ name: 'made_gift', label_trans: 'reg.made_gift', fieldtype: tools.FieldType.boolean }), // AddCol({ name: 'made_gift', label_trans: 'reg.made_gift', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'note', label_trans: 'reg.note' }), AddCol({ name: 'note', label_trans: 'reg.note' }),
// AddCol({ name: 'aportador_solidario_ind_order', label_trans: 'reg.aportador_solidario_ind_order' }), // AddCol({ name: 'aportador_solidario_ind_order', label_trans: 'reg.aportador_solidario_ind_order' }),
// AddCol({ name: 'aportador_solidario_nome_completo', label_trans: 'reg.aportador_solidario_nome_completo' }), // AddCol({ name: 'aportador_solidario_nome_completo', label_trans: 'reg.aportador_solidario_nome_completo' }),
AddCol({ name: 'aportador_solidario', label_trans: 'reg.aportador_solidario' }), AddCol({ name: 'aportador_solidario', label_trans: 'reg.aportador_solidario' }),
AddCol({ name: 'profile.special_req', field: 'profile', subfield: 'special_req', label_trans: 'reg.special_req', fieldtype: tools.FieldType.boolean }), AddCol({
AddCol({ name: 'profile.vuole_ritessersi', field: 'profile', subfield: 'vuole_ritessersi', label_trans: 'reg.vuole_ritessersi', fieldtype: tools.FieldType.boolean }), name: 'profile.special_req',
field: 'profile',
subfield: 'special_req',
label_trans: 'reg.special_req',
fieldtype: tools.FieldType.boolean
}),
// AddCol({ name: 'profile.vuole_ritessersi', field: 'profile', subfield: 'vuole_ritessersi', label_trans: 'reg.vuole_ritessersi', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'lang', field: 'lang', label_trans: 'reg.lang' }), AddCol({ name: 'lang', field: 'lang', label_trans: 'reg.lang' }),
AddCol({ name: 'profile.nationality', field: 'profile', subfield: 'nationality', label_trans: 'reg.nationality' }), AddCol({ name: 'profile.nationality', field: 'profile', subfield: 'nationality', label_trans: 'reg.nationality' }),
AddCol({ name: 'profile.intcode_cell', field: 'profile', subfield: 'intcode_cell', label_trans: 'reg.intcode_cell' }), AddCol({
name: 'profile.intcode_cell',
field: 'profile',
subfield: 'intcode_cell',
label_trans: 'reg.intcode_cell'
}),
AddCol({ name: 'profile.iso2_cell', field: 'profile', subfield: 'iso2_cell', label_trans: 'reg.iso2_cell' }), AddCol({ name: 'profile.iso2_cell', field: 'profile', subfield: 'iso2_cell', label_trans: 'reg.iso2_cell' }),
AddCol({ name: 'profile.cell', field: 'profile', subfield: 'cell', label_trans: 'reg.cell' }), AddCol({ name: 'profile.cell', field: 'profile', subfield: 'cell', label_trans: 'reg.cell' }),
AddCol({ name: 'profile.country_pay', field: 'profile', subfield: 'country_pay', label_trans: 'reg.country_pay' }), AddCol({ name: 'profile.country_pay', field: 'profile', subfield: 'country_pay', label_trans: 'reg.country_pay' }),
AddCol({ name: 'profile.teleg_id_old', field: 'profile', subfield: 'teleg_id_old', label_trans: 'reg.teleg_id_old' }), AddCol({
AddCol({ name: 'profile.teleg_checkcode', field: 'profile', subfield: 'teleg_checkcode', label_trans: 'reg.teleg_checkcode' }), name: 'profile.teleg_id_old',
AddCol({ name: 'profile.manage_telegram', field: 'profile', subfield: 'manage_telegram', label_trans: 'reg.manage_telegram', fieldtype: tools.FieldType.boolean }), field: 'profile',
subfield: 'teleg_id_old',
label_trans: 'reg.teleg_id_old'
}),
AddCol({
name: 'profile.teleg_checkcode',
field: 'profile',
subfield: 'teleg_checkcode',
label_trans: 'reg.teleg_checkcode'
}),
AddCol({
name: 'profile.manage_telegram',
field: 'profile',
subfield: 'manage_telegram',
label_trans: 'reg.manage_telegram',
fieldtype: tools.FieldType.boolean
}),
AddCol({ name: 'profile.img', field: 'profile', subfield: 'img', label_trans: 'reg.img', sortable: false }), AddCol({ name: 'profile.img', field: 'profile', subfield: 'img', label_trans: 'reg.img', sortable: false }),
AddCol({ name: 'date_reg', label_trans: 'reg.date_reg', fieldtype: tools.FieldType.date }), AddCol({ name: 'date_reg', label_trans: 'reg.date_reg', fieldtype: tools.FieldType.date }),
AddCol({ name: 'lasttimeonline', label_trans: 'reg.lasttimeonline', fieldtype: tools.FieldType.date }), AddCol({ name: 'lasttimeonline', label_trans: 'reg.lasttimeonline', fieldtype: tools.FieldType.date }),
@@ -555,23 +670,79 @@ export const fieldsTable = {
AddCol({ name: 'note', label_trans: 'reg.note' }), AddCol({ name: 'note', label_trans: 'reg.note' }),
AddCol({ name: 'aportador_solidario', label_trans: 'reg.aportador_solidario' }), AddCol({ name: 'aportador_solidario', label_trans: 'reg.aportador_solidario' }),
AddCol({ name: 'verified_email', label_trans: 'reg.verified_email', fieldtype: tools.FieldType.boolean }), AddCol({ name: 'verified_email', label_trans: 'reg.verified_email', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'profile.special_req', field: 'profile', subfield: 'special_req', label_trans: 'reg.special_req', fieldtype: tools.FieldType.boolean }), AddCol({
AddCol({ name: 'profile.saw_and_accepted', field: 'profile', subfield: 'saw_and_accepted', label_trans: 'reg.saw_and_accepted', fieldtype: tools.FieldType.binary, jointable: 'accepted' }), name: 'profile.special_req',
field: 'profile',
subfield: 'special_req',
label_trans: 'reg.special_req',
fieldtype: tools.FieldType.boolean
}),
AddCol({
name: 'profile.saw_and_accepted',
field: 'profile',
subfield: 'saw_and_accepted',
label_trans: 'reg.saw_and_accepted',
fieldtype: tools.FieldType.binary,
jointable: 'accepted'
}),
AddCol({ name: 'profile.my_dream', field: 'profile', subfield: 'my_dream', label_trans: 'reg.my_dream' }), AddCol({ name: 'profile.my_dream', field: 'profile', subfield: 'my_dream', label_trans: 'reg.my_dream' }),
AddCol({ name: 'lang', field: 'lang', label_trans: 'reg.lang' }), AddCol({ name: 'lang', field: 'lang', label_trans: 'reg.lang' }),
AddCol({ name: 'profile.nationality', field: 'profile', subfield: 'nationality', label_trans: 'reg.nationality' }), AddCol({ name: 'profile.nationality', field: 'profile', subfield: 'nationality', label_trans: 'reg.nationality' }),
AddCol({ name: 'profile.intcode_cell', field: 'profile', subfield: 'intcode_cell', label_trans: 'reg.intcode_cell' }), AddCol({
name: 'profile.intcode_cell',
field: 'profile',
subfield: 'intcode_cell',
label_trans: 'reg.intcode_cell'
}),
AddCol({ name: 'profile.iso2_cell', field: 'profile', subfield: 'iso2_cell', label_trans: 'reg.iso2_cell' }), AddCol({ name: 'profile.iso2_cell', field: 'profile', subfield: 'iso2_cell', label_trans: 'reg.iso2_cell' }),
AddCol({ name: 'profile.cell', field: 'profile', subfield: 'cell', label_trans: 'reg.cell' }), AddCol({ name: 'profile.cell', field: 'profile', subfield: 'cell', label_trans: 'reg.cell' }),
AddCol({ name: 'profile.email_paypal', field: 'profile', subfield: 'email_paypal', label_trans: 'reg.email_paypal' }), AddCol({
name: 'profile.email_paypal',
field: 'profile',
subfield: 'email_paypal',
label_trans: 'reg.email_paypal'
}),
AddCol({ name: 'profile.teleg_id', field: 'profile', subfield: 'teleg_id', label_trans: 'reg.teleg_id' }), AddCol({ name: 'profile.teleg_id', field: 'profile', subfield: 'teleg_id', label_trans: 'reg.teleg_id' }),
AddCol({ name: 'profile.teleg_id_old', field: 'profile', subfield: 'teleg_id_old', label_trans: 'reg.teleg_id_old' }), AddCol({
AddCol({ name: 'profile.teleg_checkcode', field: 'profile', subfield: 'teleg_checkcode', label_trans: 'reg.teleg_checkcode' }), name: 'profile.teleg_id_old',
AddCol({ name: 'profile.manage_telegram', field: 'profile', subfield: 'manage_telegram', label_trans: 'reg.manage_telegram', fieldtype: tools.FieldType.boolean }), field: 'profile',
subfield: 'teleg_id_old',
label_trans: 'reg.teleg_id_old'
}),
AddCol({
name: 'profile.teleg_checkcode',
field: 'profile',
subfield: 'teleg_checkcode',
label_trans: 'reg.teleg_checkcode'
}),
AddCol({
name: 'profile.manage_telegram',
field: 'profile',
subfield: 'manage_telegram',
label_trans: 'reg.manage_telegram',
fieldtype: tools.FieldType.boolean
}),
AddCol({ name: 'profile.chisei', field: 'profile', subfield: 'chisei', label_trans: 'reg.chisei' }), AddCol({ name: 'profile.chisei', field: 'profile', subfield: 'chisei', label_trans: 'reg.chisei' }),
AddCol({ name: 'profile.iltuoimpegno', field: 'profile', subfield: 'iltuoimpegno', label_trans: 'reg.iltuoimpegno' }), AddCol({
AddCol({ name: 'profile.come_aiutare', field: 'profile', subfield: 'come_aiutare', label_trans: 'reg.iltuoimpegno' }), name: 'profile.iltuoimpegno',
AddCol({ name: 'profile.paymenttypes', field: 'profile', subfield: 'paymenttypes', label_trans: 'reg.paymenttype', fieldtype: tools.FieldType.multiselect, jointable: 'paymenttypes' }), field: 'profile',
subfield: 'iltuoimpegno',
label_trans: 'reg.iltuoimpegno'
}),
AddCol({
name: 'profile.come_aiutare',
field: 'profile',
subfield: 'come_aiutare',
label_trans: 'reg.iltuoimpegno'
}),
AddCol({
name: 'profile.paymenttypes',
field: 'profile',
subfield: 'paymenttypes',
label_trans: 'reg.paymenttype',
fieldtype: tools.FieldType.multiselect,
jointable: 'paymenttypes'
}),
AddCol({ name: 'profile.img', field: 'profile', subfield: 'img', label_trans: 'reg.img', sortable: false }), AddCol({ name: 'profile.img', field: 'profile', subfield: 'img', label_trans: 'reg.img', sortable: false }),
AddCol({ name: 'date_reg', label_trans: 'reg.date_reg', fieldtype: tools.FieldType.date }), AddCol({ name: 'date_reg', label_trans: 'reg.date_reg', fieldtype: tools.FieldType.date }),
AddCol({ name: 'lasttimeonline', label_trans: 'reg.lasttimeonline', fieldtype: tools.FieldType.date }), AddCol({ name: 'lasttimeonline', label_trans: 'reg.lasttimeonline', fieldtype: tools.FieldType.date }),
@@ -593,7 +764,11 @@ export const fieldsTable = {
AddCol({ name: 'surname', label_trans: 'reg.surname' }), AddCol({ name: 'surname', label_trans: 'reg.surname' }),
AddCol({ name: 'note', label_trans: 'reg.note' }), AddCol({ name: 'note', label_trans: 'reg.note' }),
AddCol({ name: 'contacted', label_trans: 'reg.contacted', fieldtype: tools.FieldType.boolean }), AddCol({ name: 'contacted', label_trans: 'reg.contacted', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'saw_zoom_presentation', label_trans: 'reg.saw_zoom_presentation', fieldtype: tools.FieldType.boolean }), AddCol({
name: 'saw_zoom_presentation',
label_trans: 'reg.saw_zoom_presentation',
fieldtype: tools.FieldType.boolean
}),
AddCol({ name: 'num_invitati', label_trans: 'reg.num_invitati', fieldtype: tools.FieldType.number }), AddCol({ name: 'num_invitati', label_trans: 'reg.num_invitati', fieldtype: tools.FieldType.number }),
AddCol({ name: 'is_in_whatsapp', label_trans: 'reg.is_in_whatsapp', fieldtype: tools.FieldType.boolean }), AddCol({ name: 'is_in_whatsapp', label_trans: 'reg.is_in_whatsapp', fieldtype: tools.FieldType.boolean }),
AddCol({ name: 'is_in_telegram', label_trans: 'reg.is_in_telegram', fieldtype: tools.FieldType.boolean }), AddCol({ name: 'is_in_telegram', label_trans: 'reg.is_in_telegram', fieldtype: tools.FieldType.boolean }),
@@ -601,7 +776,10 @@ export const fieldsTable = {
AddCol({ name: 'nationality', label_trans: 'reg.nationality', fieldtype: tools.FieldType.nationality }), AddCol({ name: 'nationality', label_trans: 'reg.nationality', fieldtype: tools.FieldType.nationality }),
AddCol({ name: 'aportador_solidario_name_surname', label_trans: 'reg.aportador_solidario_nome_completo' }), AddCol({ name: 'aportador_solidario_name_surname', label_trans: 'reg.aportador_solidario_nome_completo' }),
AddCol({ name: 'aportador_solidario_ind_order', label_trans: 'reg.aportador_solidario_ind_order' }), AddCol({ name: 'aportador_solidario_ind_order', label_trans: 'reg.aportador_solidario_ind_order' }),
AddCol({ name: 'aportador_solidario_originale_name_surname', label_trans: 'reg.aportador_solidario_nome_completo_orig' }), AddCol({
name: 'aportador_solidario_originale_name_surname',
label_trans: 'reg.aportador_solidario_nome_completo_orig'
}),
AddCol({ name: 'col_b', label_trans: 'reg.col_b', fieldtype: tools.FieldType.number }), AddCol({ name: 'col_b', label_trans: 'reg.col_b', fieldtype: tools.FieldType.number }),
AddCol({ name: 'col_h', label_trans: 'reg.col_h', fieldtype: tools.FieldType.number }), AddCol({ name: 'col_h', label_trans: 'reg.col_h', fieldtype: tools.FieldType.number }),
AddCol(DeleteRec), AddCol(DeleteRec),
@@ -651,6 +829,13 @@ export const fieldsTable = {
colkey: '_id', colkey: '_id',
collabel: (rec) => rec.riga + '.' + rec.col collabel: (rec) => rec.riga + '.' + rec.col
}, },
{
value: 'flotte',
label: 'Flotte',
columns: colflotte,
colkey: '_id',
collabel: (rec) => rec.riga + '.' + rec.col_prima + ' ' + rec.riga + '.' + rec.col_ultima
},
{ {
value: 'navepersistente', value: 'navepersistente',
label: 'Navi Persistenti', label: 'Navi Persistenti',

View File

@@ -24,6 +24,7 @@ export const lists = {
REGALA_INVITANTE: 342, REGALA_INVITANTE: 342,
SOSTITUISCI: 345, SOSTITUISCI: 345,
INVIA_MSG_A_DONATORI: 350, INVIA_MSG_A_DONATORI: 350,
INVIA_MSG_A_FLOTTA: 352,
INVIA_MSG_A_SINGOLO: 355, INVIA_MSG_A_SINGOLO: 355,
DONO_INVIATO: 360, DONO_INVIATO: 360,
DONO_RICEVUTO: 370, DONO_RICEVUTO: 370,

View File

@@ -17,6 +17,7 @@ export const serv_constants = {
RIS_CODE_LOGIN_ERR_GENERIC: -20, RIS_CODE_LOGIN_ERR_GENERIC: -20,
RIS_CODE_LOGIN_ERR: -10, RIS_CODE_LOGIN_ERR: -10,
RIS_CODE_LOGIN_ERR_SUBACCOUNT: -8,
RIS_CODE_OK: 1, RIS_CODE_OK: 1,
RIS_CODE_LOGIN_OK: 1, RIS_CODE_LOGIN_OK: 1,

View File

@@ -68,7 +68,14 @@ export const tools = {
TipoMsg: { TipoMsg: {
SEND_LINK_CHAT_DONATORI: 1, SEND_LINK_CHAT_DONATORI: 1,
SEND_MSG: 2, SEND_MSG: 2,
SEND_MSG_SINGOLO: 3 SEND_MSG_SINGOLO: 3,
SEND_TO_ALL: 10,
SEND_MSG_EFFETTUA_IL_DONO: 1000,
SEND_MSG_SOLLECITO_DONATORI_NO_DONO: 1005,
SEND_MSG_A_MEDIATORI: 1010,
SEND_MSG_A_SOGNATORE: 1020,
SEND_MSG_A_UTENTE_SOSTITUITO: 1030,
SEND_MSG_DONO_RICEVUTO_CORRETTAMENTE: 1040,
}, },
listBestColor: [ listBestColor: [
@@ -1542,6 +1549,7 @@ export const tools = {
username: par.param1.username, username: par.param1.username,
invitante_username: '', invitante_username: '',
ind_order: -1, ind_order: -1,
num_tess: 0,
myfunc: func, myfunc: func,
data: par.param2, data: par.param2,
notifBot: null notifBot: null
@@ -1549,6 +1557,7 @@ export const tools = {
if (func === lists.MenuAction.CANCELLA_IMBARCO) { if (func === lists.MenuAction.CANCELLA_IMBARCO) {
mydatatosave.ind_order = par.param1.ind_order mydatatosave.ind_order = par.param1.ind_order
mydatatosave.num_tess = par.param1.num_tess
mydatatosave.data.id = par.param2.rec._id mydatatosave.data.id = par.param2.rec._id
} }
if (func === lists.MenuAction.AGGIUNGI_NUOVO_IMBARCO) { if (func === lists.MenuAction.AGGIUNGI_NUOVO_IMBARCO) {
@@ -1578,15 +1587,19 @@ export const tools = {
myfunc: func, myfunc: func,
data: par.param2, data: par.param2,
username: par.param2.username, username: par.param2.username,
notifBot: null notifBot: null,
inviaemail: par.param2.inviaemail,
} }
if (par.param2.notifBot) if (par.param2.notifBot)
mydatatosave.notifBot = { un: par.param2, txt: par.param3 } mydatatosave.notifBot = { un: par.param2.notifBot, txt: par.param3 }
myself.EseguiCallServer()
GlobalStore.actions.callFunz({ mydata: mydatatosave }).then((ris) => { GlobalStore.actions.callFunz({ mydata: mydatatosave }).then((ris) => {
if (ris) { if (ris) {
myself.update_nave() myself.update_nave()
myself.Callback()
tools.showPositiveNotif(myself.$q, par.param3 + '\n' + ' e inviato messaggio per aprire la Gift Chat!') tools.showPositiveNotif(myself.$q, par.param3 + '\n' + ' e inviato messaggio per aprire la Gift Chat!')
} else } else
tools.showNegativeNotif(myself.$q, myself.$t('db.recfailed')) tools.showNegativeNotif(myself.$q, myself.$t('db.recfailed'))
@@ -1623,6 +1636,24 @@ export const tools = {
} else } else
tools.showNegativeNotif(myself.$q, myself.$t('db.recfailed')) tools.showNegativeNotif(myself.$q, myself.$t('db.recfailed'))
}) })
} else if (func === lists.MenuAction.INVIA_MSG_A_FLOTTA) {
// console.log('param1', par.param1)
myself.loading = true
GlobalStore.actions.InviaMsgAFlotta({
flotta: par.param1,
inviareale: par.param2.inviareale,
inviaemail: par.param2.inviaemail,
tipomsg: par.param3
}).then((ris) => {
myself.loading = false
if (ris) {
if (par.param1.inviareale)
tools.showPositiveNotif(myself.$q, myself.$t('dashboard.msg_donatori_ok'))
tools.askConfirm(myself.$q, '', ris.strout, translate('dialog.yes'), translate('dialog.no'), this, '', 0, 0, {})
myself.Callback()
} else
tools.showNegativeNotif(myself.$q, myself.$t('db.recfailed'))
})
} else if (func === lists.MenuAction.INVIA_MSG_A_SINGOLO) { } else if (func === lists.MenuAction.INVIA_MSG_A_SINGOLO) {
// console.log('param1', par.param1) // console.log('param1', par.param1)
GlobalStore.actions.InviaMsgADonatori({ GlobalStore.actions.InviaMsgADonatori({
@@ -1640,7 +1671,7 @@ export const tools = {
const mydatatosave = { const mydatatosave = {
id: par.param1._id, id: par.param1._id,
table: tools.TABNAVI, table: tools.TABNAVI,
fieldsvalue: { date_made_gift: par.param1.date_made_gift }, fieldsvalue: { date_made_gift: par.param1.date_made_gift, commento_al_sognatore: par.param1.commento_al_sognatore },
notifBot: null notifBot: null
} }
@@ -1656,11 +1687,18 @@ export const tools = {
tools.showNegativeNotif(myself.$q, myself.$t('db.recfailed')) tools.showNegativeNotif(myself.$q, myself.$t('db.recfailed'))
}) })
} else if (func === lists.MenuAction.DONO_RICEVUTO) { } else if (func === lists.MenuAction.DONO_RICEVUTO) {
const mydatatosave = { let mydatatosave = {
id: par.param1._id, id: par.param1._id,
table: tools.TABNAVI, table: tools.TABNAVI,
fieldsvalue: { made_gift: par.param1.made_gift, riga: par.param1.riga, col: par.param1.col }, fieldsvalue: {},
notifBot: null notifBot: null,
tipomsg: tools.TipoMsg.SEND_MSG_DONO_RICEVUTO_CORRETTAMENTE
}
if (!!par.param1.date_made_gift) {
mydatatosave.fieldsvalue = { made_gift: par.param1.made_gift, riga: par.param1.riga, col: par.param1.col, date_made_gift: par.param1.date_made_gift }
} else {
mydatatosave.fieldsvalue = { made_gift: par.param1.made_gift, riga: par.param1.riga, col: par.param1.col }
} }
if (par.param3) { if (par.param3) {
@@ -2234,6 +2272,15 @@ export const tools = {
return date.formatDate(mytimestamp, 'YYYY-MM-DD HH:mm:ss') return date.formatDate(mytimestamp, 'YYYY-MM-DD HH:mm:ss')
}, },
gettimestampstrDate(mydatestr) {
if (!!mydatestr) {
let mydate = new Date(mydatestr)
if (!!mydate)
return mydate.getTime()
}
return 0
},
// mystrdate "26.04.2013" // mystrdate "26.04.2013"
convertstrtoDate(mystrdate: string) { convertstrtoDate(mystrdate: string) {
if (mystrdate.length < 10) { if (mystrdate.length < 10) {
@@ -2556,9 +2603,13 @@ export const tools = {
} else if (Screen.width < 800) { } else if (Screen.width < 800) {
return '500' return '500'
} else if (Screen.width < 900) { } else if (Screen.width < 900) {
return '600'
} else {
return '700' return '700'
} else if (Screen.width < 1000) {
return '900'
} else if (Screen.width < 1100) {
return '1000'
} else {
return Screen.width - 200
} }
}, },
@@ -2699,8 +2750,7 @@ export const tools = {
else { else {
return data.subtitle[static_data.arrLangUsed[0]] return data.subtitle[static_data.arrLangUsed[0]]
} }
} },
,
gettitlecoll(data: IColl) { gettitlecoll(data: IColl) {
if (data.title[toolsext.getLocale()]) if (data.title[toolsext.getLocale()])
return data.title[toolsext.getLocale()] return data.title[toolsext.getLocale()]
@@ -2923,6 +2973,26 @@ export const tools = {
} }
}) })
} else if (riscode === serv_constants.RIS_CODE_LOGIN_ERR_SUBACCOUNT) {
// Wait N seconds to avoid calling many times...
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('anything')
}, 1000)
}).then(() => {
setTimeout(() => {
// console.log('HIDE...')
mythis.$q.loading.hide()
}, 500)
tools.showNotif(mythis.$q, mythis.$t('login.subaccount'), { color: 'negative', icon: 'notifications' })
mythis.iswaitingforRes = false
if (ispageLogin) {
GlobalStore.state.RightDrawerOpen = true
// mythis.$router.push('/signin')
}
})
} else if (riscode === tools.ERR_SERVERFETCH) { } else if (riscode === tools.ERR_SERVERFETCH) {
tools.showNotif(mythis.$q, mythis.$t('fetch.errore_server'), { color: 'negative', icon: 'notifications' }) tools.showNotif(mythis.$q, mythis.$t('fetch.errore_server'), { color: 'negative', icon: 'notifications' })
} else if (riscode === tools.ERR_GENERICO) { } else if (riscode === tools.ERR_GENERICO) {
@@ -3276,7 +3346,7 @@ export const tools = {
return splitStr.join(' ') return splitStr.join(' ')
}, },
getValDb(keystr, serv, def?, table?, subkey?) { getValDb(keystr, serv, def?, table?, subkey?, id?) {
if (table === 'users') { if (table === 'users') {
if (keystr === 'profile') { if (keystr === 'profile') {
return UserStore.state.my.profile[subkey] return UserStore.state.my.profile[subkey]
@@ -3714,8 +3784,23 @@ export const tools = {
} else { } else {
return '1rem' return '1rem'
} }
} },
getsizesmall() {
if (this.isMobile()) {
return '0.75rem'
} else {
return '0.85rem'
}
},
convertiTagHTMLPerBOT(msg) {
msg = msg.replace(/<strong>/g, '<b>')
msg = msg.replace(/<\/strong>/g, '</b>')
return msg
}
// getLocale() { // getLocale() {
// if (navigator.languages && navigator.languages.length > 0) { // if (navigator.languages && navigator.languages.length > 0) {

View File

@@ -156,6 +156,26 @@
@click="EseguiFunz('eliminaListeIngressoNascoste')"></q-btn> @click="EseguiFunz('eliminaListeIngressoNascoste')"></q-btn>
<br> <br>
</div> </div>
<div class="row">
<q-btn label="CONVERTI SUBACCOUNT !" color="negative"
@click="EseguiFunz('convSubAccount')"></q-btn>
<br>
</div>
<div class="row">
<q-btn label="FLAGGA GLI UTENTI CON NAVI NON PRESENTI!" color="primary"
@click="EseguiFunz('flagUtentiNaviNonPresenti')"></q-btn>
<br>
</div>
<div class="row">
<q-btn label="GENERA FLOTTE!" color="primary"
@click="EseguiFunz('generaFlotte')"></q-btn>
<br>
</div>
<!--<div class="row">
<q-btn label="AGGIUNGI NAVE PER UTENTI CHE NON CE L'HANNO (flag navinonpresenti)!" color="primary"
@click="EseguiFunz('addNavePerUtentiNaviNonPresenti')"></q-btn>
<br>
</div>-->
<div class="row"> <div class="row">
<q-btn label="1) CONVERTI TUTTA LA STRUTTURA NEL NUOVO SISTEMA !" color="negative" <q-btn label="1) CONVERTI TUTTA LA STRUTTURA NEL NUOVO SISTEMA !" color="negative"
@click="EseguiFunz('creaTessituraeConv')"></q-btn> @click="EseguiFunz('creaTessituraeConv')"></q-btn>

View File

@@ -1,7 +1,7 @@
import Vue from 'vue' import Vue from 'vue'
import { Component, Prop, Watch } from 'vue-property-decorator' import { Component } from 'vue-property-decorator'
import { CSignIn } from '../../../components/CSignIn' import { CSignIn } from '../../../components/CSignIn'
import CSigninNoreg from '../../../components/CSigninNoreg/CSigninNoreg' import { CSigninNoreg } from '@components'
@Component({ @Component({
components: { CSigninNoreg } components: { CSigninNoreg }

View File

@@ -93,6 +93,21 @@
mysubkey="email_paypal" mysubkey="email_paypal"
:type="tools.FieldType.string"> :type="tools.FieldType.string">
</CMyFieldDb> </CMyFieldDb>
<CMyFieldDb :title="$t('reg.link_payment')"
table="users"
mykey="profile"
mysubkey="link_payment"
:type="tools.FieldType.string">
</CMyFieldDb>
<CMyFieldDb :title="$t('reg.note_payment')"
table="users"
mykey="profile"
mysubkey="note_payment"
:type="tools.FieldType.string">
</CMyFieldDb>
</div> </div>
<CMyFieldDb :title="$t('reg.paymenttype')" <CMyFieldDb :title="$t('reg.paymenttype')"