SubAccounts !
This commit is contained in:
6087
package-lock.json
generated
6087
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -9,10 +9,11 @@ export default ({ app, store, Vue }) => {
|
||||
// Vue.config.lang = process.env.LANG_DEFAULT;
|
||||
|
||||
let mylang = tools.getItemLS(tools.localStorage.lang)
|
||||
console.log(`LANG LocalStorage ${mylang}`)
|
||||
|
||||
if ((navigator) && (mylang === '')) {
|
||||
mylang = navigator.language
|
||||
// console.log(`LANG NAVIGATOR ${mylang}`)
|
||||
console.log(`LANG NAVIGATOR ${mylang}`)
|
||||
}
|
||||
|
||||
mylang = tools.checkLangPassed(mylang)
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
import { translation } from '@src/store/Modules/translation'
|
||||
import { Privacy } from '@src/model'
|
||||
|
||||
export const shared_consts = {
|
||||
|
||||
Accepted: {
|
||||
@@ -52,7 +55,13 @@ export const shared_consts = {
|
||||
value: 8,
|
||||
label: 'dashboard.tutor',
|
||||
icon: 'fas fa-user-tie',
|
||||
color: 'blue'
|
||||
color: 'fuchsia'
|
||||
},
|
||||
Traduttrici: {
|
||||
value: 16,
|
||||
label: 'dashboard.traduttrici',
|
||||
icon: 'fas fa-user-tie',
|
||||
color: 'orange'
|
||||
}
|
||||
},
|
||||
|
||||
@@ -61,6 +70,34 @@ export const shared_consts = {
|
||||
Notify_ByPushNotification: 4
|
||||
},
|
||||
|
||||
TypeMsg: {
|
||||
SEND_TO_ALL: 1,
|
||||
},
|
||||
|
||||
TypeMsg_Actions: {
|
||||
NORMAL: 0,
|
||||
YESNO: 1,
|
||||
OPZ1_2: 2,
|
||||
},
|
||||
|
||||
selectActions: [
|
||||
{
|
||||
id: 0,
|
||||
label: 'Normale',
|
||||
value: 0
|
||||
},
|
||||
{
|
||||
id: 1,
|
||||
label: 'Si / No',
|
||||
value: 1
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
label: 'Opzione 1 / Opzione 2',
|
||||
value: 2
|
||||
}
|
||||
],
|
||||
|
||||
fieldsUserToChange() {
|
||||
return ['_id', 'username', 'email', 'name', 'surname', 'perm', 'date_reg', 'verified_email', 'img', 'ipaddr', 'lasttimeonline', 'profile', 'news_on']
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import { Component, Prop, Watch } from 'vue-property-decorator'
|
||||
|
||||
import { tools } from '../../store/Modules/tools'
|
||||
import { toolsext } from '@src/store/Modules/toolsext'
|
||||
import { IOperators } from '../../model/GlobalStore'
|
||||
import { IOperators } from '../../model'
|
||||
|
||||
@Component({
|
||||
name: 'CBook',
|
||||
|
||||
@@ -3,7 +3,7 @@ import { Component, Prop, Watch } from 'vue-property-decorator'
|
||||
|
||||
import { tools } from '../../store/Modules/tools'
|
||||
import { toolsext } from '@src/store/Modules/toolsext'
|
||||
import { IOperators } from '../../model/GlobalStore'
|
||||
import { IOperators } from '../../model'
|
||||
|
||||
@Component({
|
||||
name: 'CCard',
|
||||
|
||||
@@ -31,31 +31,12 @@ $grayshadow: #555;
|
||||
border-radius: 30px;
|
||||
}
|
||||
|
||||
.my-card-shadow {
|
||||
width: 100%;
|
||||
max-width: 350px;
|
||||
min-width: 300px;
|
||||
padding-bottom: 20px;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
border-radius: 30px;
|
||||
|
||||
transition: transform .2s ease-out;
|
||||
}
|
||||
|
||||
.yes_shadow {
|
||||
-webkit-box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.16);
|
||||
box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.16);
|
||||
}
|
||||
|
||||
|
||||
.my-card-shadow:hover {
|
||||
transition: transform .2s ease-in;
|
||||
transform: scale(1.03);
|
||||
}
|
||||
|
||||
.disc {
|
||||
text-align: center !important;
|
||||
font-size: 1rem;
|
||||
|
||||
@@ -10,8 +10,8 @@ import MixinBase from '@src/mixins/mixin-base'
|
||||
})
|
||||
|
||||
export default class CCardState extends MixinBase {
|
||||
@Prop({ required: true, default: '' }) public mytext
|
||||
@Prop({ required: true, default: 0 }) public myval
|
||||
@Prop({ required: false, default: '' }) public mytext
|
||||
@Prop({ required: false, default: 0 }) public myval
|
||||
@Prop({ required: true, default: 0 }) public myperc
|
||||
@Prop({ required: false, default: '' }) public imgsrc
|
||||
@Prop({ required: false, default: false }) public isperc
|
||||
|
||||
@@ -18,10 +18,10 @@
|
||||
<div>
|
||||
{{ mytext }}
|
||||
</div>
|
||||
<div class="mlvalue text-h5 text-blue boldhigh text-h5-short"> {{ myval }} {{ textadd }}
|
||||
<div v-if="myval" class="mlvalue text-h5 text-blue boldhigh text-h5-short"> {{ myval }} {{ textadd }}
|
||||
</div>
|
||||
<div v-if="isperc" class="cltexth4">
|
||||
({{ myperc.toFixed(1) }} %)
|
||||
<div v-if="isperc" class="cltexth5" :style="'fontsize:' + fontsize">
|
||||
{{ myperc.toFixed(1) }}%
|
||||
</div>
|
||||
</div>
|
||||
</q-circular-progress>
|
||||
|
||||
@@ -3,7 +3,7 @@ import { Component, Prop, Watch } from 'vue-property-decorator'
|
||||
|
||||
import { tools } from '../../store/Modules/tools'
|
||||
import { toolsext } from '@src/store/Modules/toolsext'
|
||||
import { IGallery, IImgGallery } from '../../model/GlobalStore'
|
||||
import { IGallery, IImgGallery } from '../../model'
|
||||
import { CMyPage } from '../CMyPage'
|
||||
import GlobalModule from '../../store/Modules/GlobalStore'
|
||||
import { GlobalStore } from '../../store/Modules'
|
||||
|
||||
@@ -71,6 +71,30 @@ export default class CGridTableRec extends Vue {
|
||||
|
||||
public selected = []
|
||||
|
||||
get isAdmin() {
|
||||
return UserStore.state.isAdmin
|
||||
}
|
||||
|
||||
get isManager() {
|
||||
return UserStore.state.isManager
|
||||
}
|
||||
|
||||
get isTutor() {
|
||||
return UserStore.state.isTutor
|
||||
}
|
||||
|
||||
get isTratuttrici() {
|
||||
return UserStore.state.isTratuttrici
|
||||
}
|
||||
|
||||
get disabilita() {
|
||||
if ((this.mytable === 'users') && (this.isTutor)) {
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
get lists() {
|
||||
return lists
|
||||
}
|
||||
@@ -374,6 +398,7 @@ export default class CGridTableRec extends Vue {
|
||||
this.canEdit = tools.getCookie(tools.CAN_EDIT, this.canEdit) === 'true'
|
||||
this.tablesel = tools.getCookie('tablesel', this.tablesel)
|
||||
}
|
||||
console.log('this.tablesel', this.tablesel)
|
||||
|
||||
if (this.tablesel === '') {
|
||||
if (!!this.tablesList)
|
||||
@@ -382,6 +407,8 @@ export default class CGridTableRec extends Vue {
|
||||
this.tablesel = this.mytable
|
||||
}
|
||||
|
||||
console.log('2) this.tablesel', this.tablesel)
|
||||
|
||||
this.changeTable(false)
|
||||
|
||||
}
|
||||
@@ -442,8 +469,11 @@ export default class CGridTableRec extends Vue {
|
||||
}
|
||||
|
||||
public changeCol(newval) {
|
||||
console.log('changecol', this.mytable)
|
||||
if (!!this.mytable) {
|
||||
tools.setCookie(this.mytable, this.colVisib.join('|'))
|
||||
}
|
||||
}
|
||||
|
||||
public changeTable(mysel) {
|
||||
if (this.tablesel === undefined || this.tablesel === '')
|
||||
@@ -489,7 +519,9 @@ export default class CGridTableRec extends Vue {
|
||||
this.mytable = mytab.value
|
||||
}
|
||||
|
||||
if (!!this.tablesList) {
|
||||
tools.setCookie('tablesel', this.tablesel)
|
||||
}
|
||||
|
||||
this.updatedcol()
|
||||
|
||||
@@ -521,8 +553,10 @@ export default class CGridTableRec extends Vue {
|
||||
}
|
||||
|
||||
public changefuncAct(newval) {
|
||||
if (!this.disabilita) {
|
||||
tools.setCookie(tools.CAN_EDIT, newval)
|
||||
}
|
||||
}
|
||||
|
||||
public clickrowcol(row, col) {
|
||||
if (!this.canEdit) {
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
<q-btn v-if="mytable" label="" color="primary" @click="refresh" icon="search"></q-btn>
|
||||
</template>
|
||||
</q-input>
|
||||
<q-toggle v-if="mytable" v-model="canEdit" :val="lists.MenuAction.CAN_EDIT_TABLE" class="q-mx-sm"
|
||||
<q-toggle v-if="mytable" v-model="canEdit" :disable="disabilita" :val="lists.MenuAction.CAN_EDIT_TABLE" class="q-mx-sm"
|
||||
:label="$t('grid.editvalues')" @input="changefuncAct"
|
||||
></q-toggle>
|
||||
|
||||
@@ -117,6 +117,7 @@
|
||||
v-if="colVisib.includes(col.field + col.subfield)">
|
||||
<div :class="getclrow(props.row)">
|
||||
<CMyPopupEdit :canEdit="canEdit"
|
||||
:disable="disabilita"
|
||||
:col="col"
|
||||
:row.sync="props.row"
|
||||
:field="col.field"
|
||||
@@ -172,6 +173,7 @@
|
||||
<div class="q-ma-sm q-pa-sm colmodif col-grow rounded-borders " style="border: 1px solid #bbb"
|
||||
@click="colclicksel = mycol">
|
||||
<CMyPopupEdit :canEdit="true"
|
||||
:disable="disabilita"
|
||||
view="field"
|
||||
:col="mycol"
|
||||
:showall="true"
|
||||
|
||||
@@ -133,8 +133,8 @@
|
||||
|
||||
Il mio compito è quello di assicurarmi che tutti i Donatori facciano il Dono al Sognatore.
|
||||
Il sistema invierà in automatico le istruzioni per fare il Dono, il Mediatore (io) verificherà e
|
||||
accompagnerà il processo.<br>
|
||||
Il passo 2, di norma, è attivato 4 giorni dopo il passo 1.</p>
|
||||
accompagnerà il processo.
|
||||
</p>
|
||||
|
||||
<div class="text-center">
|
||||
<q-img src="statics/images/passo_3.jpg" class="img"></q-img>
|
||||
@@ -146,7 +146,7 @@
|
||||
Il mio compito è quello di aprirmi a ricevere i Doni da ciascun Donatore, completarmi e
|
||||
celebrare
|
||||
l’Abbondanza.<br>
|
||||
Il passo 3, di norma, è attivato 4 giorni dopo il passo 2.<br><br>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</CTitleBanner>
|
||||
@@ -265,8 +265,7 @@
|
||||
<p>Klepet sestavlja 8 donatorjev (ki jim bom pomagal vstopiti v klepet) tako jaz, kot posrednik.<br>
|
||||
Moja naloga je, da poskrbim, da bodo vsi donatorji sanjaču vplačali darilo. Sistem bo samodejno
|
||||
poslal navodila za način vplačila, Posrednik (jaz) bo postopek preveril in spremljal.
|
||||
<br>
|
||||
Korak 2 se običajno aktivira 4 dni po koraku 1.</p>
|
||||
</p>
|
||||
|
||||
<div class="text-center">
|
||||
<q-img src="statics/images/passo_3.jpg" class="img"></q-img>
|
||||
@@ -275,9 +274,7 @@
|
||||
<p>Klepet, kjer sem sanjač, je enak in z istimi ljudmi odprt v koraku 2 (kjer sem bil Mediator) in
|
||||
tudi tukaj se vloge spreminjajo, torej je zdaj 8 mediatorjev in jaz, sanjač.
|
||||
Moja naloga je, da se odprem, da sprejmem vplačila od vsakega donatorja, se dopolnim in
|
||||
proslavim obilje.<br>
|
||||
Korak 3 se običajno aktivira 4 dni po koraku 2.<br><br>
|
||||
|
||||
proslavim obilje.
|
||||
</p>
|
||||
|
||||
</CTitleBanner>
|
||||
@@ -410,7 +407,6 @@
|
||||
Mi trabajo es asegurarme de que todos los donantes le den el regalo al Soñador.
|
||||
El sistema enviará automáticamente instrucciones para hacer el Regalo, el Mediador
|
||||
verificará y acompañará el proceso.
|
||||
El paso 2 se activa normalmente 4 días después del paso 1.
|
||||
|
||||
<div class="text-center">
|
||||
<q-img src="statics/images/passo_3.jpg" class="img"></q-img>
|
||||
@@ -570,7 +566,6 @@
|
||||
O sistema enviará automaticamente instruções para fazer o Presente, o Mediador (I) irá verificar
|
||||
e
|
||||
irá acompanhar o processo.<br>
|
||||
O passo 2 é normalmente activado 4 dias após o passo 1.
|
||||
|
||||
<div class="text-center">
|
||||
<q-img src="statics/images/passi_3.jpg" class="img"></q-img>
|
||||
@@ -581,7 +576,6 @@
|
||||
e mesmo aqui os papéis mudam, ou seja, agora há 8 mediadores e eu, o Sonhador.<br>
|
||||
Minha tarefa é abrir-me para receber os Presentes de cada Doador, completar-me e celebrar
|
||||
a Abundância.<br>
|
||||
O passo 3 é normalmente activado 4 dias após o passo 2.<br>
|
||||
</p>
|
||||
|
||||
</CTitleBanner>
|
||||
@@ -716,7 +710,6 @@
|
||||
Mon rôle consiste à m'assurer que tous les Donateurs fassent le Don au Rêveur. Le système
|
||||
enverra automatiquement les instructions pour faire le Don, le Médiateur (moi) vérifiera et
|
||||
accompagnera le processus.<br>
|
||||
L'étape 2 est normalement activée 4 jours après l'étape 1.
|
||||
|
||||
|
||||
<div class="text-center">
|
||||
@@ -728,7 +721,6 @@
|
||||
moi, le Rêveur.<br>
|
||||
Ma tâche est de m'ouvrir pour recevoir les Dons de chaque Donateur, de compléter et de célébrer
|
||||
l'Abondance.<br>
|
||||
L'étape 3 est normalement activée 4 jours après l'étape 2.<br><br>.
|
||||
</p>
|
||||
|
||||
</CTitleBanner>
|
||||
@@ -864,7 +856,6 @@
|
||||
My job is to make sure that all the Donors give the Gift to the Dreamer. The system will
|
||||
automatically send instructions to make the Gift, the Mediator (me) will verify and will
|
||||
accompany the process.<br>
|
||||
Step 2 is normally activated 4 days after step 1.
|
||||
|
||||
<div class="text-center">
|
||||
<q-img src="statics/images/passo_3.jpg" class="img"></q-img>
|
||||
@@ -874,7 +865,6 @@
|
||||
Mediator) and here the roles change, there are now 8 mediators and me, the Dreamer.
|
||||
My task is to open myself to receive the Gifts from each Donor, complete myself and celebrate
|
||||
the Abundance.<br>
|
||||
Step 3 is normally activated 4 days after step 2.
|
||||
<br><br>.
|
||||
</p>
|
||||
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
.title-nave {
|
||||
color: blue;
|
||||
}
|
||||
|
||||
.titlenave{
|
||||
width: 100px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cont_pos {
|
||||
border: solid 2px #4198ef;
|
||||
padding: 2px 8px;
|
||||
margin: 2px 4px;
|
||||
font-size: 1rem;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
.cont_pos, .cont_pos_intest{
|
||||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
border-radius: 64px !important;
|
||||
color: red;
|
||||
}
|
||||
|
||||
.cont_pos_intest {
|
||||
width: 37px;
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
||||
.extra{
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.passo{
|
||||
font-weight: bold;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.posizione_imbarco {
|
||||
font-weight: bold;
|
||||
font-size: 1rem;
|
||||
color: blue;
|
||||
text-align: -webkit-center;
|
||||
}
|
||||
|
||||
.ins_invitante{
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.q-tab-panel {
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
@@ -21,19 +21,43 @@ import { CMyRequirement } from '../CMyRequirement'
|
||||
import { CRequisiti } from '../CRequisiti'
|
||||
import { CCardState } from '../CCardState'
|
||||
import { CMyNave } from '../CMyNave'
|
||||
import { validations } from './CMyDashboard-validate'
|
||||
import { validationMixin } from 'vuelidate'
|
||||
|
||||
@Component({
|
||||
components: { CProfile, CTitleBanner, CMyFieldDb, CCopyBtn, CUserBadge, CLegenda, CRequisito, CMyRequirement, CRequisiti, CCardState, CMyNave }
|
||||
mixins: [validationMixin],
|
||||
validations,
|
||||
components: {
|
||||
CProfile,
|
||||
CTitleBanner,
|
||||
CMyFieldDb,
|
||||
CCopyBtn,
|
||||
CUserBadge,
|
||||
CLegenda,
|
||||
CRequisito,
|
||||
CMyRequirement,
|
||||
CRequisiti,
|
||||
CCardState,
|
||||
CMyNave
|
||||
},
|
||||
})
|
||||
|
||||
export default class CMyDashboard extends MixinUsers {
|
||||
public $v
|
||||
public $q
|
||||
public myusername: string = ''
|
||||
public tab: string = 'requisiti'
|
||||
public tabcosa: string = ''
|
||||
public showuserinfo: boolean = false
|
||||
public shownuovoviaggio: boolean = false
|
||||
public notifBot: boolean = true
|
||||
public loading: boolean = false
|
||||
public seluser: IUserFields = null
|
||||
public aportador_solidario: string = ''
|
||||
public invitante_username: string = ''
|
||||
public showregalainv: boolean = false
|
||||
public id_listaingr: number = -1
|
||||
public ind_order_ingr: number = -1
|
||||
public dashboard: IDashboard = {
|
||||
myself: DefaultUser,
|
||||
aportador: DefaultUser,
|
||||
@@ -41,7 +65,11 @@ export default class CMyDashboard extends MixinUsers {
|
||||
downline: [],
|
||||
downnotreg: [],
|
||||
downbyuser: [],
|
||||
arrposizioni: []
|
||||
arrimbarchi: [],
|
||||
arrposizioni: [],
|
||||
navi_partenza: [],
|
||||
lastnave: {},
|
||||
arrusers: [],
|
||||
}
|
||||
|
||||
@Prop({ required: true }) public username
|
||||
@@ -50,6 +78,9 @@ export default class CMyDashboard extends MixinUsers {
|
||||
public changedash() {
|
||||
console.log('changedash')
|
||||
this.dashboard = UserStore.state.my.dashboard
|
||||
if (!!this.dashboard)
|
||||
this.invitante_username = this.dashboard.myself.aportador_solidario
|
||||
|
||||
}
|
||||
|
||||
get mythis() {
|
||||
@@ -57,25 +88,51 @@ export default class CMyDashboard extends MixinUsers {
|
||||
}
|
||||
|
||||
public created() {
|
||||
if (!!tools.getCookie(tools.TABBED_DASHBOARD)) {
|
||||
this.tab = tools.getCookie(tools.TABBED_DASHBOARD)
|
||||
}
|
||||
this.update_username()
|
||||
}
|
||||
|
||||
public changetab(val) {
|
||||
tools.setCookie(tools.TABBED_DASHBOARD, val)
|
||||
console.log('setcook', val)
|
||||
}
|
||||
|
||||
@Watch('this.username')
|
||||
public changeusername() {
|
||||
this.update_username()
|
||||
|
||||
}
|
||||
|
||||
public aggiorna() {
|
||||
this.dashboard = null
|
||||
this.update_username()
|
||||
this.showuserinfo = false
|
||||
}
|
||||
|
||||
public async update_username() {
|
||||
// console.log('update_username')
|
||||
console.log('update_username')
|
||||
this.loading = true
|
||||
if (this.username === '')
|
||||
this.myusername = this.getMyUsername()
|
||||
else
|
||||
this.myusername = this.username
|
||||
|
||||
this.loading = true
|
||||
|
||||
await UserStore.actions.getDashboard({ username: this.myusername }).then((ris) => {
|
||||
this.dashboard = ris
|
||||
|
||||
if (!!this.dashboard)
|
||||
this.invitante_username = this.dashboard.myself.aportador_solidario
|
||||
|
||||
console.log('this.invitante_username', this.invitante_username)
|
||||
this.loading = false
|
||||
})
|
||||
|
||||
this.showuserinfo = false
|
||||
this.loading = false
|
||||
}
|
||||
|
||||
get getRefLink() {
|
||||
@@ -89,23 +146,238 @@ export default class CMyDashboard extends MixinUsers {
|
||||
return false
|
||||
}
|
||||
|
||||
public selectclick(user) {
|
||||
public selectclick(user, showregalainv, ind_order_ingr, id_listaingr) {
|
||||
this.showuserinfo = true
|
||||
this.seluser = user
|
||||
this.showregalainv = showregalainv
|
||||
this.ind_order_ingr = ind_order_ingr
|
||||
this.id_listaingr = id_listaingr
|
||||
}
|
||||
|
||||
get Completato7Req() {
|
||||
// return tools.Is7ReqOk(this.dashboard.myself)
|
||||
return this.dashboard.myself.qualified
|
||||
}
|
||||
|
||||
get Completato9Req() {
|
||||
// return tools.Is9ReqOk(this.dashboard.myself)
|
||||
if (!!this.dashboard)
|
||||
return this.dashboard.myself.qualified && (this.dashboard.myself.numinvitatiattivi >= 2)
|
||||
return false
|
||||
}
|
||||
|
||||
public HasNave() {
|
||||
return this.dashboard.arrposizioni.length > 0
|
||||
}
|
||||
|
||||
public getnavePartenzaByRigaCol(riga, col) {
|
||||
for (const mynave of this.dashboard.navi_partenza) {
|
||||
if (!!mynave) {
|
||||
if ((mynave.riga === riga) && (mynave.col === col)) {
|
||||
return mynave
|
||||
}
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
public datanave(mianave) {
|
||||
// const mynavepart = this.getnavePartenzaByRigaCol(tools.getRiganave(mianave.riga), tools.getColnave(mianave.col))
|
||||
if (!!mianave.nave_partenza) {
|
||||
if (!!mianave.nave_partenza.date_start)
|
||||
return tools.getstrshortDate(mianave.nave_partenza.date_start)
|
||||
}
|
||||
return ' --/-- '
|
||||
}
|
||||
|
||||
public geticon(mianave) {
|
||||
if (!mianave)
|
||||
return ''
|
||||
|
||||
if (mianave.made_gift) {
|
||||
return 'fas fa-gift'
|
||||
}
|
||||
}
|
||||
|
||||
public colordono(mianave) {
|
||||
if (mianave.made_gift) {
|
||||
return 'green'
|
||||
} else {
|
||||
return 'grey'
|
||||
}
|
||||
}
|
||||
|
||||
public getposizioneattuale(mianave, totali) {
|
||||
const mynavedest = tools.getfirstnaveSognatore(mianave.riga, mianave.col)
|
||||
const ris = tools.getnumnavi_finoa(mianave, mynavedest, this.dashboard.lastnave)
|
||||
if (totali)
|
||||
return mianave.riga + '.' + mianave.col + ' ' + ris.contaattuale + '/' + ris.totale
|
||||
else
|
||||
return ris.perc
|
||||
}
|
||||
|
||||
public async NuovoImbarco(username, invitante_username) {
|
||||
|
||||
await tools.askConfirm(this.$q, translate('steps.nuovo_imbarco'), translate('dialog.continue'), translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.AGGIUNGI_NUOVO_IMBARCO, 0, {
|
||||
param1: { username, invitante_username }
|
||||
})
|
||||
this.shownuovoviaggio = false
|
||||
}
|
||||
|
||||
public addNuovoImbarco() {
|
||||
this.NuovoImbarco(this.dashboard.myself.username, this.invitante_username)
|
||||
}
|
||||
|
||||
public async cancellaImbarco(imbarco) {
|
||||
await tools.askConfirm(this.$q, translate('dashboard.attenzione'), translate('steps.vuoi_cancellare_imbarco'), translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.CANCELLA_IMBARCO, 0, {
|
||||
param1: { ind_order: imbarco.ind_order, username: imbarco.username },
|
||||
param2: { num_tess: imbarco.num_tess }
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
public getnuminvitatistr(index, myuser) {
|
||||
let inv = myuser.numinvitati
|
||||
let invattivi = myuser.numinvitatiattivi
|
||||
|
||||
const step = (index - 1) * 2
|
||||
|
||||
inv -= step
|
||||
invattivi -= step
|
||||
if (inv < 0)
|
||||
inv = 0
|
||||
if (invattivi < 0)
|
||||
invattivi = 0
|
||||
if (inv > 2)
|
||||
inv = 2
|
||||
if (invattivi > 2)
|
||||
invattivi = 2
|
||||
|
||||
return invattivi + '/' + inv
|
||||
}
|
||||
|
||||
public getinvit(index, myuser, posiz) {
|
||||
let inv = myuser.numinvitati
|
||||
let invattivi = myuser.numinvitatiattivi
|
||||
|
||||
const step = (posiz.numNaviEntrato + index) * 2
|
||||
|
||||
inv -= step
|
||||
// console.log('inv', inv, 'step = ', step)
|
||||
invattivi -= step
|
||||
if (inv < 0)
|
||||
inv = 0
|
||||
if (invattivi < 0)
|
||||
invattivi = 0
|
||||
if (inv > 2)
|
||||
inv = 2
|
||||
if (invattivi > 2)
|
||||
invattivi = 2
|
||||
|
||||
return { invattivi, inv }
|
||||
}
|
||||
public getnuminv(index, myuser, posiz) {
|
||||
const ris = this.getinvit(index, myuser, posiz)
|
||||
|
||||
return ris.inv
|
||||
}
|
||||
public getnuminvattivi(index, myuser, posiz) {
|
||||
const ris = this.getinvit(index, myuser, posiz)
|
||||
|
||||
return ris.invattivi
|
||||
}
|
||||
public getnuminvperc(index, myuser, posiz) {
|
||||
const ris = this.getinvit(index, myuser, posiz)
|
||||
|
||||
return ris.invattivi / 2 * 100
|
||||
}
|
||||
public getcolorinvitati(index, myuser, posiz) {
|
||||
|
||||
const ris = this.getinvit(index, myuser, posiz)
|
||||
if (ris.invattivi === 1)
|
||||
return 'blue'
|
||||
if (ris.invattivi === 2)
|
||||
return 'green'
|
||||
if (ris.inv === 1)
|
||||
return 'orange'
|
||||
}
|
||||
|
||||
public getnumtessstr(num_tess, index) {
|
||||
|
||||
let str = index + 1 + '°'
|
||||
|
||||
if (num_tess % 2 === 0) {
|
||||
str += ' (Gratis)'
|
||||
}
|
||||
return str
|
||||
}
|
||||
|
||||
public errorMsg(cosa: string, item: any) {
|
||||
try {
|
||||
if (!item.$error) {
|
||||
return ''
|
||||
}
|
||||
|
||||
if (item.required !== undefined) {
|
||||
if (!item.required) {
|
||||
return this.$t('reg.err.required')
|
||||
}
|
||||
|
||||
} else if (cosa === 'invitante_username') {
|
||||
// console.log(item);
|
||||
if (!item.aportadorexist) {
|
||||
// console.log('!item.aportadorexist !')
|
||||
return this.$t('reg.err.invitante_username_not_exist')
|
||||
}
|
||||
}
|
||||
|
||||
return ''
|
||||
} catch (error) {
|
||||
// console.log("ERR : " + error);
|
||||
}
|
||||
}
|
||||
|
||||
get allowSubmit() {
|
||||
let error = this.$v.$error || this.$v.$invalid
|
||||
|
||||
error = error || (this.invitante_username === this.dashboard.myself.username)
|
||||
|
||||
return !error
|
||||
|
||||
}
|
||||
|
||||
public imbarchipresenti() {
|
||||
let presente = false;
|
||||
for (const rec of this.dashboard.arrimbarchi) {
|
||||
if (!rec.added)
|
||||
presente = true
|
||||
}
|
||||
return presente
|
||||
}
|
||||
|
||||
public getcolorbynave(mianave){
|
||||
if (!!mianave.nave_partenza)
|
||||
return mianave.nave_partenza.provvisoria ? 'gray' : 'green'
|
||||
else
|
||||
return 'green'
|
||||
}
|
||||
|
||||
public change_mynote(mianave) {
|
||||
|
||||
const mydata = {
|
||||
note: mianave.note
|
||||
}
|
||||
tools.saveFieldToServer(this, 'navi', mianave._id, mydata)
|
||||
}
|
||||
|
||||
public getNaveSognatoreStr(mianave, index) {
|
||||
const mynavedest = tools.getfirstnaveSognatore(mianave.riga, mianave.col)
|
||||
return mynavedest.riga + '.' + parseInt(mynavedest.col, 10) + index
|
||||
}
|
||||
|
||||
public getNaveMediatoreStr(mianave) {
|
||||
return mianave.riga + '.' + mianave.col
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,46 +1,27 @@
|
||||
<template>
|
||||
<div class="q-my-xs q-gutter-xs q-py-xs" v-if="myusername !== ''">
|
||||
<CTitleBanner class="q-pa-xs text-center" :title="$t('pages.statoattuale')" bgcolor="bg-red" clcolor="text-white"
|
||||
mystyle=" " myclass="myshad">
|
||||
<div v-if="!!dashboard.myself.name">
|
||||
<div>
|
||||
<q-tabs
|
||||
v-model="tab"
|
||||
dense
|
||||
class="bg-blue text-white shadow-2"
|
||||
indicator-color="white"
|
||||
align="center"
|
||||
narrow-indicator
|
||||
@input="changetab"
|
||||
>
|
||||
<q-tab name="requisiti" icon="fas fa-check" :label="$t('reg.requirement')"></q-tab>
|
||||
<q-tab name="invitati" icon="fas fa-users" :label="$t('dashboard.downline')"></q-tab>
|
||||
<q-tab name="navi" icon="fas fa-ship" :label="$t('otherpages.admin.navi')"></q-tab>
|
||||
|
||||
<div v-if="!Completato9Req && !HasNave">
|
||||
<CTitleBanner icon="person" :canopen="true" class="q-pa-xs text-center"
|
||||
:title="$t('pages.posizione_in_programmazione')" bgcolor="bg-blue"
|
||||
clcolor="text-white" mystyle=" " myclass="myshad">
|
||||
<CRequisiti :statebool="Completato7Req" :msgTrue="$t('steps.enter_prog_requisiti_ok')"
|
||||
:msgFalse="$t('steps.enter_prog_completa_requisiti')">
|
||||
</CRequisiti>
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
|
||||
<CTitleBanner icon="fas fa-gift" :canopen="true" class="q-pa-xs text-center"
|
||||
:title="$t('pages.posizione_in_nave')" bgcolor="bg-green"
|
||||
clcolor="text-white" mystyle=" " myclass="myshad">
|
||||
|
||||
<div v-if="!HasNave">
|
||||
<CRequisiti :statebool="Completato9Req" :msgTrue="$t('steps.enter_nave_9req_ok')"
|
||||
:color_ko="true"
|
||||
:msgFalse="$t('steps.enter_nave_9req_ko')">
|
||||
</CRequisiti>
|
||||
</div>
|
||||
|
||||
<CMyNave v-for="(mianave, index) in dashboard.arrposizioni" :posizprop="mianave" :key="index"
|
||||
:navi_partenzaprop="dashboard.navi_partenza" :listanavi="false">
|
||||
|
||||
</CMyNave>
|
||||
</CTitleBanner>
|
||||
|
||||
</div>
|
||||
|
||||
</CTitleBanner>
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('pages.dashboard')" bgcolor="bg-info" clcolor="text-white"
|
||||
mystyle=" " myclass="myshad">
|
||||
</q-tabs>
|
||||
|
||||
<q-tab-panels v-model="tab" animated>
|
||||
<q-tab-panel name="requisiti">
|
||||
<div v-if="!!dashboard.myself.name">
|
||||
|
||||
|
||||
<CMyRequirement :myseluser="dashboard.myself" :mydashboard="dashboard">
|
||||
<CMyRequirement :myseluser="dashboard.myself" :mydashboard="dashboard" @aggiorna="aggiorna">
|
||||
|
||||
</CMyRequirement>
|
||||
</div>
|
||||
@@ -50,6 +31,7 @@
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<CUserBadge v-if="!!dashboard.aportador" :user="dashboard.aportador" :index="0"
|
||||
:showregalainv="false"
|
||||
:numpeople="dashboard.numpeople_aportador"
|
||||
mycolor="accent" @myclick="selectclick">
|
||||
|
||||
@@ -64,6 +46,7 @@
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<CUserBadge v-if="!!dashboard.myself" :user="dashboard.myself" :index="0"
|
||||
:showregalainv="false"
|
||||
:numpeople="dashboard.downline.length"
|
||||
@myclick="selectclick"
|
||||
mycolor="blue">
|
||||
@@ -71,6 +54,8 @@
|
||||
</CUserBadge>
|
||||
</CTitleBanner>
|
||||
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="invitati">
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="$t('dashboard.downline')" bgcolor="bg-positive"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
@@ -78,13 +63,16 @@
|
||||
<q-list bordered v-if="!!dashboard.downline && dashboard.downline.length > 0" class="rounded-borders">
|
||||
<div v-for="(user, index) in dashboard.downline" :key="index">
|
||||
<CUserBadge :yourinvite="true" :user="user" mycolor="positive" :index="index"
|
||||
:showregalainv="false"
|
||||
:numpeople="dashboard.downbyuser[user.username].length"
|
||||
@myclick="selectclick"
|
||||
>
|
||||
|
||||
</CUserBadge>
|
||||
<div style="margin-left:10px;" v-for="(user2, index2) in dashboard.downbyuser[user.username]" :key="index2">
|
||||
<div style="margin-left:10px;" v-for="(user2, index2) in dashboard.downbyuser[user.username]"
|
||||
:key="index2">
|
||||
<CUserBadge :yourinvite="false" :user="user2" mycolor="orange" :index="index2"
|
||||
:showregalainv="false"
|
||||
:numpeople="dashboard.downbyuser[user2.username].length"
|
||||
@myclick="selectclick"
|
||||
>
|
||||
@@ -109,23 +97,315 @@
|
||||
</q-btn>
|
||||
</div>
|
||||
|
||||
<!--<CTitleBanner v-if="invitatinotreg" class="shadow-2 rounded-borders" :title="$t('dashboard.downnotreg')"
|
||||
bgcolor="bg-grey"
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="$t('reg.legenda')"
|
||||
bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<q-list bordered v-if="!!dashboard.downnotreg" class="rounded-borders">
|
||||
<div v-for="(user, index) in dashboard.downnotreg" :key="index">
|
||||
<CUserBadge :yourinvite="true" :user="user" mycolor="grey" :index="index" :numpeople="user.num_invitati"
|
||||
@myclick="selectclick">
|
||||
|
||||
</CUserBadge>
|
||||
<p class="q-ml-sm">{{ $t('dashboard.legenda_title')}}</p>
|
||||
<q-list bordered class="rounded-borders justify-center q-pa-sm">
|
||||
<div class="row items-center q-pa-xs">
|
||||
<CCardState :mytext="$t('pages.statusreg.req')" :myval="7" :myperc="(7 / 9) * 100" size="50px"
|
||||
size_mob="40px"
|
||||
fontsize="0.75rem" myclass="my-card-small-stat" mycolor="orange">
|
||||
</CCardState>
|
||||
<div class="bg-blue text-white clBorderxs q-ml-sm">{{$t('pages.statusreg.req7')}}</div>
|
||||
</div>
|
||||
<div class="row items-center q-pa-xs">
|
||||
<CCardState :mytext="$t('pages.statusreg.req')" :myval="9" :myperc="100" size="50px" size_mob="40px"
|
||||
fontsize="0.75rem" myclass="my-card-small-stat" mycolor="green"></CCardState>
|
||||
<div class="bg-blue text-white clBorderxs q-ml-sm">{{$t('pages.statusreg.req9', {sitename:
|
||||
$t('ws.sitename')})}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row items-center q-pa-xs">
|
||||
<CCardState :mytext="$t('pages.statusreg.people')" :myval="2" :myperc="100" size="50px"
|
||||
size_mob="40px"
|
||||
fontsize="0.75rem" myclass="my-card-small-stat" mycolor="green"></CCardState>
|
||||
<div class="bg-blue text-white clBorderxs q-ml-sm">{{$t('pages.statusreg.peoplelegend')}}</div>
|
||||
</div>
|
||||
<!--<CLegenda icon="fab fa-telegram" :text="`Telegram ` + $t('pages.statusreg.verified')"></CLegenda>
|
||||
<CLegenda icon="fas fa-video" :text="$t('stat.zoom')"></CLegenda>
|
||||
<CLegenda icon="fas fa-user-friends" :text="$t('dashboard.numinvitati')"></CLegenda>-->
|
||||
<div class="row items-center q-pa-xs q-ml-sm">
|
||||
<q-btn
|
||||
fab-mini
|
||||
icon="fab fa-whatsapp"
|
||||
color="white" text-color="green"
|
||||
size="sm">
|
||||
</q-btn>
|
||||
<div class="bg-blue text-white clBorderxs q-ml-sm">{{$t('dashboard.telefono_wa')}}</div>
|
||||
</div>
|
||||
</q-list>
|
||||
</CTitleBanner>-->
|
||||
</CTitleBanner>
|
||||
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="navi">
|
||||
|
||||
<div v-if="dashboard.myself.qualified">
|
||||
<CTitleBanner icon="fas fa-gift" :canopen="true" class="q-pa-xs text-center"
|
||||
:title="$t('pages.posizione_in_nave')" bgcolor="bg-green"
|
||||
clcolor="text-white" mystyle=" " myclass="myshad">
|
||||
|
||||
<div v-if="!!dashboard.myself.name">
|
||||
<div v-if="!HasNave">
|
||||
<CRequisiti :statebool="Completato9Req" :msgTrue="$t('steps.enter_nave_9req_ok')"
|
||||
:color_ko="true"
|
||||
:msgFalse="$t('steps.enter_nave_9req_ko')">
|
||||
</CRequisiti>
|
||||
</div>
|
||||
|
||||
<div v-if="loading" class="text-center" style="height: 50px;">
|
||||
<q-spinner-gears size="50px" color="primary"/>
|
||||
</div>
|
||||
|
||||
<div class="row justify-center no-wrap">
|
||||
<div class="col-1 cont_pos_intest">Num</div>
|
||||
|
||||
<div class="col-3 cont_intestaz ">{{$t('dashboard.nave')}}</div>
|
||||
<div class="col-3 cont_intestaz " v-html="$t('dashboard.data_partenza')"></div>
|
||||
<div class="col-3 cont_intestaz_small" v-html="$t('dashboard.doni_inviati')"></div>
|
||||
<div class="col-2 cont_intestaz_small" v-html="$t('reg.note')"></div>
|
||||
<!--<div class="col-3 cont_intestaz " v-html="$t('dashboard.tragitto')"></div>-->
|
||||
<!--<div class="col-1 cont_intestaz ">Tot:</div>-->
|
||||
</div>
|
||||
|
||||
<div v-for="(mianave, index) in dashboard.arrposizioni" :key="index"
|
||||
class="q-pa-sm row items-start q-gutter-sm">
|
||||
<q-card class="my-card-shadow yes_shadow">
|
||||
<q-img
|
||||
src="statics/images/nave.jpg"
|
||||
style="width: 100%"
|
||||
native-context-menu>
|
||||
<div class="absolute-bottom text-subtitle1 text-center text-sobig">
|
||||
{{ getnumtessstr(mianave.num_tess, index) }} - {{$t('dashboard.nave') + ' ' +
|
||||
tools.getrigacolstr(mianave)}}
|
||||
</div>
|
||||
</q-img>
|
||||
<div class="row justify-sm-start items-center rounded-borders">
|
||||
|
||||
<div class="row items-center justify-center q-ma-xs" style="width: 100%">
|
||||
<q-chip class="glossy q-ma-md" :color="getcolorbynave(mianave)" text-color="white"
|
||||
icon="fas fa-ship">
|
||||
|
||||
{{ $t('dashboard.nave_in_partenza') + ' ' + datanave(mianave) }}
|
||||
</q-chip>
|
||||
</div>
|
||||
|
||||
<div class="row items-center justify-center q-ma-xs">
|
||||
<div class="row items-center justify-around q-ma-xs no-wrap" style="width: 100%; font-weight: bold; font-size: 1rem">
|
||||
<div>{{$t('dashboard.donatore')}}</div>
|
||||
<div>{{$t('dashboard.mediatore')}}</div>
|
||||
<div>{{$t('dashboard.sognatore')}}</div>
|
||||
</div>
|
||||
<div class="row items-center justify-around q-ma-xs no-wrap" style="width: 100%;">
|
||||
<q-chip class="glossy q-ma-sm" color="red" text-color="white"
|
||||
icon="fas fa-ship">
|
||||
{{ tools.getrigacolstr(mianave) }}
|
||||
</q-chip>
|
||||
<q-chip class="glossy q-ma-sm" color="green" text-color="white"
|
||||
icon="fas fa-ship">
|
||||
{{ getNaveMediatoreStr(mianave)}}
|
||||
</q-chip>
|
||||
<q-chip class="glossy q-ma-sm" color="purple" text-color="white"
|
||||
icon="fas fa-ship">
|
||||
{{ getNaveSognatoreStr(mianave, 0)}}
|
||||
</q-chip>
|
||||
<!--<span v-for="index of 8">{{ getNaveSognatoreStr(mianave, index)}} - </span>-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row items-center justify-center q-ma-xs" style="width: 100%;">
|
||||
<q-list>
|
||||
|
||||
<q-item clickable>
|
||||
<q-item-section avatar>
|
||||
<q-icon :color="colordono(mianave)" inverted size="sm" name="fas fa-gift"
|
||||
class="gift"></q-icon>
|
||||
</q-item-section>
|
||||
|
||||
<q-item-section>
|
||||
<q-item-label>
|
||||
<div v-if="mianave.made_gift">{{ $t('dashboard.ho_effettuato_il_dono') }}</div>
|
||||
</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row items-center justify-around q-ma-xs">
|
||||
<q-input v-model="mianave.note" :label="$t('reg.note')"
|
||||
debounce="1000"
|
||||
style="width: 100%;"
|
||||
@input="change_mynote(mianave)">
|
||||
|
||||
</q-input>
|
||||
</div>
|
||||
<div>
|
||||
<CMyNave :posizprop="mianave" :key="index"
|
||||
:navi_partenzaprop="dashboard.navi_partenza" :listanavi="false">
|
||||
|
||||
</CMyNave>
|
||||
</div>
|
||||
|
||||
<!--<q-card-actions>
|
||||
<q-btn flat>Action 1</q-btn>
|
||||
<q-btn flat>Action 2</q-btn>
|
||||
</q-card-actions>-->
|
||||
</q-card>
|
||||
<!--<div class="col-3">
|
||||
<div>
|
||||
<CCardState :isperc="true" size="50px" size_mob="40px" fontsize="0.75rem"
|
||||
:myperc="getposizioneattuale(mianave)"></CCardState>
|
||||
</div>
|
||||
</div>-->
|
||||
<!--<div class="col-1">
|
||||
<div>
|
||||
{{ getposizioneattuale(mianave, true) }}
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
</div>
|
||||
<CTitleBanner class=""
|
||||
v-if="imbarchipresenti()"
|
||||
:title="$t('pages.posizione_in_programmazione')"
|
||||
bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
mystyle="" myclass="myshad" canopen="true">
|
||||
<div class="row justify-center items-center ">
|
||||
<div class="col-2">
|
||||
{{ $t('dashboard.num_tessitura') }}
|
||||
</div>
|
||||
<div class="col-3 ">
|
||||
{{ $t('dashboard.posizione') }}
|
||||
</div>
|
||||
<div class="col-4 ">
|
||||
{{ $t('dashboard.invitante') }}
|
||||
</div>
|
||||
<div class="col-2 ">
|
||||
{{ $t('dashboard.downline') }}
|
||||
</div>
|
||||
<!--<div class="col-2">
|
||||
{{ $t('dashboard.dono_da_effettuare') }}
|
||||
</div>-->
|
||||
<div class="col-1">
|
||||
{{ $t('reg.elimina') }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div v-for="(mioimbarco, index) in dashboard.arrimbarchi" :key="index">
|
||||
<div v-if="!mioimbarco.added" class="row justify-center items-center ">
|
||||
<div class="col-2">
|
||||
<div class="posizione_imbarco">{{ index }}</div>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<div class="posizione_imbarco">{{ mioimbarco.posiz.posiz }} / {{
|
||||
mioimbarco.posiz.totposiz }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="posizione_imbarco">
|
||||
<CUserBadge :yourinvite="false" :showsteps="false" :showregalainv="true"
|
||||
:user="dashboard.arrusers[mioimbarco.invitante_username]" mycolor="orange"
|
||||
:ind_order_ingr="mioimbarco.ind_order"
|
||||
:id_listaingr="mioimbarco._id"
|
||||
:index="index"
|
||||
:numpeople="0"
|
||||
@myclick="selectclick">
|
||||
</CUserBadge>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<div class="posizione_imbarco">
|
||||
<CCardState :mytext="$t('pages.statusreg.people')"
|
||||
:myval="getnuminvattivi(index, dashboard.myself, mioimbarco.posiz)+'/'+getnuminv(index, dashboard.myself, mioimbarco.posiz)"
|
||||
:myperc="getnuminvperc(index, dashboard.myself, mioimbarco.posiz)" size="50px"
|
||||
size_mob="40px"
|
||||
fontsize="0.75rem" myclass="my-card-small-stat"
|
||||
:mycolor="getcolorinvitati(index, dashboard.myself, mioimbarco.posiz)"></CCardState>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!--<div class="col-2">
|
||||
<div class="posizione_imbarco">33 €</div>
|
||||
</div>-->
|
||||
<div class="col-1">
|
||||
<div class="posizione_imbarco">
|
||||
<q-btn flat round color="red" icon="fas fa-trash-alt" size="sm"
|
||||
@click="cancellaImbarco(mioimbarco)"></q-btn>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<q-btn class="q-ma-md" rounded size="md"
|
||||
icon="fas fa-info"
|
||||
color="primary" @click="shownuovoviaggio=true"
|
||||
:label="$t('steps.nuovo_imbarco')">
|
||||
|
||||
</q-btn>
|
||||
|
||||
<CRequisiti :statebool="true"
|
||||
:msgTrue="$t('steps.enter_prog_msg') + '<br><strong>' + $t('steps.enter_prog_msg_2') + '</strong>'"
|
||||
msgFalse="">
|
||||
</CRequisiti>
|
||||
|
||||
</CTitleBanner>
|
||||
|
||||
|
||||
<!--<div>
|
||||
<CMyNave v-for="(mianave, index) in dashboard.arrposizioni" :posizprop="mianave"
|
||||
:key="index"
|
||||
:navi_partenzaprop="dashboard.navi_partenza" :listanavi="false">
|
||||
|
||||
</CMyNave>
|
||||
</div>-->
|
||||
</div>
|
||||
|
||||
|
||||
</CTitleBanner>
|
||||
|
||||
</div>
|
||||
|
||||
</q-tab-panel>
|
||||
</q-tab-panels>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
||||
<div>
|
||||
<div v-if="!Completato9Req && !HasNave">
|
||||
<CTitleBanner icon="person" :canopen="true" class="q-pa-xs text-center"
|
||||
:title="$t('pages.posizione_in_programmazione')" bgcolor="bg-blue"
|
||||
clcolor="text-white" mystyle=" " myclass="myshad">
|
||||
<CRequisiti :statebool="Completato7Req"
|
||||
:msgTrue="$t('steps.enter_prog_requisiti_ok') + $t('steps.enter_prog_requisiti_ok')"
|
||||
:msgFalse="$t('steps.enter_prog_completa_requisiti')">
|
||||
</CRequisiti>
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div v-if="!!dashboard.myself.name">
|
||||
<div v-if="dashboard.myself.deleted">
|
||||
<span style="color: red;"> <h2><strong>UTENTE CANCELLATO (Nascosto: true) !</strong></h2></span>
|
||||
</div>
|
||||
|
||||
<div v-if="dashboard.myself.sospeso">
|
||||
<span style="color: blue;"> <h2><strong>UTENTE SOSPESO !</strong></h2></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div v-if="loading" class="text-center" style="height: 50px;">
|
||||
<q-spinner-gears size="50px" color="primary"/>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<!--
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('text.dashboard.madegift')" bgcolor="bg-info" clcolor="text-white"
|
||||
mystyle=" " myclass="myshad">
|
||||
@@ -148,42 +428,6 @@
|
||||
|
||||
</CCopyBtn>
|
||||
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="$t('reg.legenda')"
|
||||
bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
<p class="q-ml-sm">{{ $t('dashboard.legenda_title')}}</p>
|
||||
<q-list bordered class="rounded-borders justify-center q-pa-sm">
|
||||
<div class="row items-center q-pa-xs">
|
||||
<CCardState :mytext="$t('pages.statusreg.req')" :myval="7" :myperc="(7 / 9) * 100" size="50px" size_mob="40px"
|
||||
fontsize="0.75rem" myclass="my-card-small-stat" mycolor="orange">
|
||||
</CCardState>
|
||||
<div class="bg-blue text-white clBorderxs q-ml-sm">{{$t('pages.statusreg.req7')}}</div>
|
||||
</div>
|
||||
<div class="row items-center q-pa-xs">
|
||||
<CCardState :mytext="$t('pages.statusreg.req')" :myval="9" :myperc="100" size="50px" size_mob="40px"
|
||||
fontsize="0.75rem" myclass="my-card-small-stat" mycolor="green"></CCardState>
|
||||
<div class="bg-blue text-white clBorderxs q-ml-sm">{{$t('pages.statusreg.req9', {sitename: $t('ws.sitename')})}}</div>
|
||||
</div>
|
||||
<div class="row items-center q-pa-xs">
|
||||
<CCardState :mytext="$t('pages.statusreg.people')" :myval="2" :myperc="100" size="50px" size_mob="40px"
|
||||
fontsize="0.75rem" myclass="my-card-small-stat" mycolor="green"></CCardState>
|
||||
<div class="bg-blue text-white clBorderxs q-ml-sm">{{$t('pages.statusreg.peoplelegend')}}</div>
|
||||
</div>
|
||||
<!--<CLegenda icon="fab fa-telegram" :text="`Telegram ` + $t('pages.statusreg.verified')"></CLegenda>
|
||||
<CLegenda icon="fas fa-video" :text="$t('stat.zoom')"></CLegenda>
|
||||
<CLegenda icon="fas fa-user-friends" :text="$t('dashboard.numinvitati')"></CLegenda>-->
|
||||
<div class="row items-center q-pa-xs q-ml-sm">
|
||||
<q-btn
|
||||
fab-mini
|
||||
icon="fab fa-whatsapp"
|
||||
color="white" text-color="green"
|
||||
size="sm">
|
||||
</q-btn>
|
||||
<div class="bg-blue text-white clBorderxs q-ml-sm">{{$t('dashboard.telefono_wa')}}</div>
|
||||
</div>
|
||||
</q-list>
|
||||
</CTitleBanner>
|
||||
<br>
|
||||
|
||||
<q-dialog v-model="showuserinfo">
|
||||
@@ -195,12 +439,74 @@
|
||||
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
||||
</q-toolbar>
|
||||
<q-card-section class="inset-shadow" style="padding: 4px !important;">
|
||||
<CMyRequirement :myseluser="seluser" :mydashboard="dashboard" :notitle="false">
|
||||
<CMyRequirement :id_listaingr="id_listaingr" :myseluser="seluser" :showregalainv="showregalainv"
|
||||
:mydashboard="dashboard" :notitle="false" @aggiorna="aggiorna"
|
||||
:ind_order_ingr="ind_order_ingr">
|
||||
|
||||
</CMyRequirement>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
<q-dialog v-model="shownuovoviaggio">
|
||||
<q-card v-if="shownuovoviaggio" :style="`min-width: `+ tools.myheight_dialog() + `px;` ">
|
||||
<q-toolbar class="bg-primary text-white" style="min-height: 30px;">
|
||||
<q-toolbar-title>
|
||||
{{ $t('steps.nuovo_imbarco') }}
|
||||
</q-toolbar-title>
|
||||
<q-btn flat round color="white" icon="close" v-close-popup @click="shownuovoviaggio=false"></q-btn>
|
||||
</q-toolbar>
|
||||
<q-card-section class="inset-shadow" style="padding: 4px !important;">
|
||||
|
||||
<CTitleBanner class="q-pa-xs text-center" :title="$t('steps.nuovo_imbarco')" bgcolor="bg-blue"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad">
|
||||
|
||||
<div v-html="$t('steps.vuoi_entrare_nuova_nave')">
|
||||
|
||||
</div>
|
||||
<br>
|
||||
<div v-html="$t('steps.inserisci_invitante')" class="ins_invitante">
|
||||
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
<div class="column q-gutter-sm justify-center text-center">
|
||||
<q-input
|
||||
bg-color="lightblue"
|
||||
v-model="invitante_username"
|
||||
rounded outlined
|
||||
@blur="$v.invitante_username.$touch"
|
||||
:error="$v.invitante_username.$error"
|
||||
@keydown.space="(event) => event.preventDefault()"
|
||||
:error-message="errorMsg('invitante_username', $v.invitante_username)"
|
||||
maxlength="20"
|
||||
debounce="1000"
|
||||
|
||||
:label="$t('reg.username_regala_invitato')">
|
||||
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="person"/>
|
||||
</template>
|
||||
|
||||
</q-input>
|
||||
|
||||
<q-toggle v-model="notifBot" :label="$t('dashboard.sendnotification')"/>
|
||||
|
||||
<q-btn class="q-ma-md" rounded size="md"
|
||||
icon="fas fa-ship"
|
||||
:disabled='!allowSubmit'
|
||||
color="positive" @click="addNuovoImbarco"
|
||||
:label="$t('steps.nuovo_imbarco')">
|
||||
</q-btn>
|
||||
</div>
|
||||
|
||||
|
||||
</CTitleBanner>
|
||||
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -74,10 +74,10 @@
|
||||
|
||||
.passo{
|
||||
font-weight: bold;
|
||||
width: 100px;
|
||||
width: 110px;
|
||||
}
|
||||
.passoint{
|
||||
width: 90px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.gift{
|
||||
|
||||
@@ -11,8 +11,12 @@ import { lists } from '../../store/Modules/lists'
|
||||
import translate from '../../globalroutines/util'
|
||||
import { CMyChipList } from '../CMyChipList'
|
||||
import { CVideo } from '../CVideo'
|
||||
import { validations } from './CMyNave-validate'
|
||||
import { validationMixin } from 'vuelidate'
|
||||
|
||||
@Component({
|
||||
mixins: [validationMixin],
|
||||
validations,
|
||||
components: { CTitleBanner, CMyChipList, CVideo }
|
||||
})
|
||||
|
||||
@@ -23,6 +27,7 @@ export default class CMyNave extends MixinNave {
|
||||
@Prop({ required: true }) public listanavi: boolean
|
||||
public navi_partenza: any[]
|
||||
public $t
|
||||
public $v
|
||||
public link_chat: string = ''
|
||||
public cosa: string = 'tragitto'
|
||||
public cosa2: string = 'donatore'
|
||||
@@ -46,6 +51,7 @@ export default class CMyNave extends MixinNave {
|
||||
public showmsguser: boolean = false
|
||||
public seluser = null
|
||||
public msg_tosend_user: string = ''
|
||||
public username_sostituire: string = ''
|
||||
public MyPagination: {
|
||||
sortBy: string,
|
||||
descending: boolean,
|
||||
@@ -63,11 +69,10 @@ export default class CMyNave extends MixinNave {
|
||||
sortable: true
|
||||
},*/
|
||||
{ name: 'name', align: 'center', label: translate('reg.name'), field: 'name', sortable: true },
|
||||
{ name: 'surname', align: 'center', label: translate('reg.surname'), field: 'surname', sortable: true },
|
||||
{ name: 'posizione', align: 'center', label: 'Posizione', field: 'riga', sortable: true },
|
||||
// { name: 'surname', align: 'center', label: translate('reg.surname'), field: 'surname', sortable: true },
|
||||
{ name: 'date_made_gift', align: 'center', label: 'Inviato', field: 'date_made_gift', sortable: true },
|
||||
{ name: 'tel', align: 'center', label: 'Tel', field: 'tel', sortable: true },
|
||||
{ name: 'made_gift', align: 'center', label: 'Confermato', field: 'made_gift', sortable: true },
|
||||
// { name: 'tel', align: 'center', label: 'Tel', field: 'tel', sortable: true },
|
||||
{ name: 'made_gift', align: 'center', label: 'Conferm.', field: 'made_gift', sortable: true },
|
||||
]
|
||||
|
||||
public tragitto = [
|
||||
@@ -318,10 +323,12 @@ export default class CMyNave extends MixinNave {
|
||||
donatore: rec.name + ' ' + rec.surname + ' (' + this.$t('dashboard.posizione') + ' ' + rec.riga + '.' + rec.col + ')'
|
||||
})
|
||||
|
||||
tools.askConfirm(this.$q, msgtitle, msginvia + ' ' + '?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.DONO_RICEVUTO, 0, {
|
||||
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
|
||||
made_gift: true,
|
||||
riga: rec.riga,
|
||||
col: rec.col,
|
||||
},
|
||||
param2: rec.username,
|
||||
param3: mymsg
|
||||
@@ -709,7 +716,7 @@ export default class CMyNave extends MixinNave {
|
||||
let col = 0
|
||||
let riga1don = 1
|
||||
let col1don = 1
|
||||
let ind_order = -1;
|
||||
let ind_order = -1
|
||||
if (this.listanavi) {
|
||||
riga = this.nave.riga
|
||||
col = this.nave.col
|
||||
@@ -739,6 +746,12 @@ export default class CMyNave extends MixinNave {
|
||||
this.loading = false
|
||||
}
|
||||
|
||||
public async update_nave() {
|
||||
this.showmsguser = false
|
||||
this.apri()
|
||||
this.aggiorna()
|
||||
}
|
||||
|
||||
public getstrinpartenza() {
|
||||
if (this.GiornoDelDonoArrivato) {
|
||||
return this.$t('dashboard.nave_partita')
|
||||
@@ -756,6 +769,7 @@ export default class CMyNave extends MixinNave {
|
||||
}
|
||||
|
||||
if (!!myrec)
|
||||
if (!!myrec.donatore.navepersistente)
|
||||
return tools.getstrDate(myrec.donatore.navepersistente.date_start)
|
||||
|
||||
return ''
|
||||
@@ -837,4 +851,47 @@ export default class CMyNave extends MixinNave {
|
||||
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
|
||||
}
|
||||
|
||||
get allowSubmit() {
|
||||
let error = this.$v.$error || this.$v.$invalid
|
||||
|
||||
error = error || (this.username_sostituire === this.seluser.username_sostituire)
|
||||
|
||||
return !error
|
||||
|
||||
}
|
||||
|
||||
get getnotifBotTxt() {
|
||||
return this.seluser.name + ' ' + this.seluser.surname + ' è stato sostituito con ' + this.username_sostituire
|
||||
}
|
||||
|
||||
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, riga: user.riga, col: user.col },
|
||||
param3: notifBottxt
|
||||
})
|
||||
}
|
||||
|
||||
public getnavestr(row) {
|
||||
return tools.getRiganave(row.riga) + '.' + tools.getColnave(row.col)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,19 +1,13 @@
|
||||
<template>
|
||||
<div>
|
||||
<CTitleBanner v-if="true" class=""
|
||||
<CTitleBanner v-if="!!getpartenza()" class=""
|
||||
:title="titolonave()"
|
||||
:bgcolor="getcolortitle()"
|
||||
clcolor="text-white"
|
||||
mystyle="" myclass="myshad" canopen="true" :visible="!listanavi" @apri="apri">
|
||||
mystyle="" myclass="myshad" canopen="true" :visible="false" @apri="apri">
|
||||
|
||||
<q-inner-loading :showing="loading">
|
||||
<q-spinner-tail size="2em" color="primary"/>
|
||||
</q-inner-loading>
|
||||
|
||||
<div v-if="mediatore" class="flex flex-center column justify-center">
|
||||
<div class="">
|
||||
<!--IndPrimario: {{ nave.indprimario }} - IndOrder: {{ nave.ind_order }} -->
|
||||
</div>
|
||||
|
||||
<CTitleBanner v-if="nave" class=""
|
||||
:title="$t('dashboard.tragitto')"
|
||||
@@ -23,7 +17,7 @@
|
||||
<q-chip class="glossy q-ma-sm" color="orange" text-color="white" icon="star">
|
||||
{{getposizione()}}
|
||||
</q-chip>
|
||||
<div class="row justify-between no-wrap">
|
||||
<div class="row items-center no-wrap">
|
||||
<div class="cont_pos_intest">N</div>
|
||||
|
||||
<div class="cont_intestaz q-mx-sm passoint"
|
||||
@@ -68,7 +62,7 @@
|
||||
clcolor="text-white"
|
||||
mystyle="" myclass="myshad" canopen="true">
|
||||
|
||||
<br />
|
||||
<br/>
|
||||
<div class="q-ma-sm">
|
||||
<div class="column justify-center items-center q-gutter-md tutor">
|
||||
<div class="title-nave clBorderSteps">{{gettitledonatore()}}</div>
|
||||
@@ -92,7 +86,8 @@
|
||||
</div>
|
||||
<div class="">
|
||||
<div class="mediatore text-uppercase">{{$t('dashboard.mediatore')}}:</div>
|
||||
<div :class="`cont_mediatore cursor-pointer selezione ` + getclassSelect(nave.rec.donatore.recmediatore)"
|
||||
<div
|
||||
:class="`cont_mediatore cursor-pointer selezione ` + getclassSelect(nave.rec.donatore.recmediatore)"
|
||||
@click="clickseluser(nave.rec.donatore.recmediatore)">
|
||||
{{ nave.rec.donatore.recmediatore.name }} {{
|
||||
nave.rec.donatore.recmediatore.surname }} ({{
|
||||
@@ -123,8 +118,10 @@
|
||||
</div>
|
||||
<div class="donatore text-uppercase">{{$t('dashboard.donatori')}}:</div>
|
||||
<div v-for="(donatore, index) in nave.rec.donatore.arrdonatori" :key="index">
|
||||
|
||||
<div v-if="donatore"
|
||||
:class="`cont_donatore row ` + getclassSelect(donatore)">
|
||||
:class="`cont_donatore row ` + getclassSelect(donatore)"
|
||||
@click="clickseluser(donatore)">
|
||||
<div>
|
||||
{{ getindex(donatore, index + 1) }} - {{ donatore.name }} {{
|
||||
donatore.surname }} ({{
|
||||
@@ -162,7 +159,7 @@
|
||||
<div v-if="!FattoDono" v-html="$t('dashboard.sonodonatore')">
|
||||
</div>
|
||||
|
||||
<div v-if="!FattoDono" class="text-evidente bordo_stondato">
|
||||
<div v-if="!FattoDono && !donatore_navepers.provvisoria" class="text-evidente bordo_stondato">
|
||||
|
||||
<div>{{$t('dashboard.quando_eff_il_tuo_dono')}}: <strong>{{ getGiornoDelDono()
|
||||
}}</strong><br>
|
||||
@@ -198,7 +195,7 @@
|
||||
</div>
|
||||
<div class="text-evidente bordo_stondato_blu">
|
||||
|
||||
<div v-if="GiornoDelDonoArrivato">
|
||||
<div v-if="GiornoDelDonoArrivato && !donatore_navepers.provvisoria">
|
||||
<div v-if="!FattoDono"
|
||||
v-html="$t('dashboard.effettua_il_dono', {email: getemailPagamentoSognatore() })">
|
||||
</div>
|
||||
@@ -254,7 +251,7 @@
|
||||
clcolor="text-white"
|
||||
mystyle="" myclass="myshad" canopen="true" :visible="false">
|
||||
|
||||
<br />
|
||||
<br/>
|
||||
<div class="q-ma-sm">
|
||||
<div class="column justify-center items-center q-gutter-md tutor">
|
||||
<div class="title-nave clBorderSteps">{{gettitlemediatore()}}</div>
|
||||
@@ -362,7 +359,7 @@
|
||||
clcolor="text-white"
|
||||
mystyle="" myclass="myshad" canopen="true" :visible="false">
|
||||
|
||||
<br />
|
||||
<br/>
|
||||
<div v-if="sonoSognatore" class="q-ma-sm">
|
||||
<div class="text-evidente bordo_stondato justify-between q-pa-xs-sm">
|
||||
<div class="">
|
||||
@@ -399,23 +396,15 @@
|
||||
{{ props.row.index }}
|
||||
</q-td>-->
|
||||
<q-td key="name" :props="props">
|
||||
{{ props.row.name }}
|
||||
</q-td>
|
||||
<q-td key="surname" :props="props">
|
||||
{{ props.row.surname }}
|
||||
</q-td>
|
||||
<q-td key="posizione" :props="props">
|
||||
{{ props.row.riga }}.{{ props.row.col }}
|
||||
</q-td>
|
||||
<q-td key="date_made_gift" :props="props">
|
||||
{{ tools.getstrshortDateTime(props.row.date_made_gift) }}
|
||||
</q-td>
|
||||
<q-td key="tel" :props="props">
|
||||
<q-btn flat rounded color="blue"
|
||||
:label="props.row.profile.cell"
|
||||
<q-btn v-if="!!props.row.profile" flat rounded color="blue"
|
||||
size="1rem"
|
||||
:label="props.row.name + ' ' + props.row.surname + ' (' + getnavestr(props.row) + ')"
|
||||
@click="clickseluser(props.row)">
|
||||
</q-btn>
|
||||
</q-td>
|
||||
<q-td key="date_made_gift" :props="props">
|
||||
{{ tools.getstrshortDayDateTime(props.row.date_made_gift) }}
|
||||
</q-td>
|
||||
<q-td key="made_gift" :props="props">
|
||||
|
||||
<div class="row justify-center">
|
||||
@@ -434,8 +423,7 @@
|
||||
text-color="white"
|
||||
color="positive"
|
||||
icon="fas fa-gift">
|
||||
{{ $t('dashboard.dono_ricevuto_2', {donatore: props.row.name })
|
||||
}}
|
||||
{{ $t('dialog.ok') }}
|
||||
</q-chip>
|
||||
</div>
|
||||
</q-td>
|
||||
@@ -460,6 +448,7 @@
|
||||
<q-card-section class="inset-shadow" style="padding: 4px !important;">
|
||||
<div class="row justify-center q-gutter-md">
|
||||
<div>
|
||||
<div v-if="!!seluser.profile">
|
||||
<div v-if="!!seluser.profile.cell" class="q-ma-sm text-center clBorderWarning">
|
||||
Whatsapp: {{seluser.profile.cell}}
|
||||
<q-btn
|
||||
@@ -471,8 +460,10 @@
|
||||
target="__blank">
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
<div class="q-ma-sm text-center clBorderSteps">
|
||||
<div>TELEGRAM {{$t('ws.sitename')}} BOT {{$t('dialog.sendmsg')}} -> {{seluser.name }} {{
|
||||
<div>TELEGRAM {{$t('ws.sitename')}} BOT {{$t('dialog.sendmsg')}} ->
|
||||
{{seluser.name }} {{
|
||||
seluser.surname }}:
|
||||
</div>
|
||||
<q-input type="textarea"
|
||||
@@ -490,6 +481,41 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="isManager || isTutor">
|
||||
<CTitleBanner class="shadow-2 rounded-borders" title="Sostituisci"
|
||||
bgcolor="bg-positive"
|
||||
clcolor="text-white"
|
||||
:visible="false"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<div class="column q-gutter-sm justify-center text-center">
|
||||
<q-input
|
||||
bg-color="lightblue"
|
||||
v-model="username_sostituire"
|
||||
rounded outlined
|
||||
@blur="$v.username_sostituire.$touch"
|
||||
:error="$v.username_sostituire.$error"
|
||||
@keydown.space="(event) => event.preventDefault()"
|
||||
maxlength="20"
|
||||
debounce="1000"
|
||||
|
||||
label="Username Nuova Persona:">
|
||||
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="person"/>
|
||||
</template>
|
||||
|
||||
</q-input>
|
||||
|
||||
<q-btn class="q-ma-sm" rounded color="positive" text-color="white"
|
||||
icon="fas fa-gift"
|
||||
label="Sostituisci"
|
||||
:disabled='!allowSubmit'
|
||||
@click="SostituisciUtente(seluser, username_sostituire, getnotifBotTxt)"></q-btn>
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
||||
@@ -26,6 +26,7 @@ export default class CMyPopupEdit extends Vue {
|
||||
@Prop({ required: false, default: false }) public showall
|
||||
@Prop({ required: false, default: 'row' }) public view
|
||||
@Prop({ required: false, default: '5' }) public minuteinterval
|
||||
@Prop({ required: false, default: false }) public disable
|
||||
|
||||
public myvalue = ''
|
||||
public myvalueprec = 'false'
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
:opticon="db_fieldsTable.getIconByTable(col.jointable)"></CMyChipList>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.boolean">
|
||||
<q-toggle dark color="green" v-model="myvalue" :label="col.title"
|
||||
<q-toggle dark color="green" v-model="myvalue" :label="col.title" :disable="disable && col.name !== 'profile.saw_zoom_presentation'"
|
||||
@input="Savedb"></q-toggle>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === tools.FieldType.html">
|
||||
|
||||
@@ -28,8 +28,11 @@ import { shared_consts } from '../../common/shared_vuejs'
|
||||
|
||||
export default class CMyRequirement extends MixinUsers {
|
||||
@Prop({ required: true }) public myseluser
|
||||
@Prop({ required: false, default: -1 }) public ind_order_ingr: number
|
||||
@Prop({ required: false, default: -1 }) public id_listaingr: number
|
||||
@Prop({ required: true }) public mydashboard
|
||||
@Prop({ required: false, default: false }) public notitle
|
||||
@Prop({ required: false, default: false }) public showregalainv
|
||||
public $t
|
||||
public $v
|
||||
public $q
|
||||
@@ -160,8 +163,8 @@ export default class CMyRequirement extends MixinUsers {
|
||||
}
|
||||
}
|
||||
if (!!user.profile)
|
||||
if (!!user.profile.paymenttypes) {
|
||||
const ris = (user.profile.paymenttypes.length >= 1) && ispaypal
|
||||
if (!!user.profile.email_paypal) {
|
||||
const ris = (user.profile.email_paypal !== '') && ispaypal
|
||||
return ris
|
||||
}
|
||||
|
||||
@@ -212,12 +215,20 @@ export default class CMyRequirement extends MixinUsers {
|
||||
|
||||
}
|
||||
|
||||
public async update_username() {
|
||||
|
||||
await UserStore.actions.getDashboard({ username: this.dashboard.myself.username }).then((ris) => {
|
||||
this.dashboard = ris
|
||||
this.$emit('aggiorna')
|
||||
})
|
||||
}
|
||||
|
||||
public isextralist(user) {
|
||||
return !!user.cell_complete
|
||||
}
|
||||
|
||||
public ismyinvited_notreg(user) {
|
||||
return this.dashboard.downnotreg.find((rec) => rec.ind_order === user.ind_order)
|
||||
// return this.dashboard.downnotreg.find((rec) => rec.ind_order === user.ind_order)
|
||||
}
|
||||
|
||||
public ismydownline(user) {
|
||||
@@ -248,7 +259,20 @@ export default class CMyRequirement extends MixinUsers {
|
||||
|
||||
await tools.askConfirm(this.$q, translate('reg.regala_invitato'), translate('reg.regala_invitato') + ' ' + user.name + ' ' + user.surname + ' a ' + aportador_solidario + ' ?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.REGALA_INVITATO, 0, {
|
||||
param1: user,
|
||||
param2: aportador_solidario,
|
||||
param2: { aportador_solidario },
|
||||
param3: notiftxt
|
||||
})
|
||||
}
|
||||
|
||||
public async RegalaInvitante(user, invitante_username, ind_order_ingr, id_listaingr, notifBottxt) {
|
||||
let notiftxt = ''
|
||||
invitante_username = invitante_username.trim()
|
||||
if (this.notifBot)
|
||||
notiftxt = notifBottxt
|
||||
|
||||
await tools.askConfirm(this.$q, translate('reg.regala_invitante'), translate('reg.regala_invitante') + ' ' + user.name + ' ' + user.surname + ' a ' + invitante_username + ' ?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.REGALA_INVITANTE, 0, {
|
||||
param1: id_listaingr,
|
||||
param2: { invitante_username, ind_order_ingr },
|
||||
param3: notiftxt
|
||||
})
|
||||
}
|
||||
@@ -294,6 +318,13 @@ export default class CMyRequirement extends MixinUsers {
|
||||
})
|
||||
}
|
||||
|
||||
get getnotifBotTxtInvitante() {
|
||||
return this.$t('dashboard.ricevuto_dono', {
|
||||
invitato: this.seluser.name + ' ' + this.seluser.surname,
|
||||
mittente: this.dashboard.myself.username
|
||||
})
|
||||
}
|
||||
|
||||
get myclassreq() {
|
||||
let mycl = 'text-center'
|
||||
mycl += (this.ismydownline) ? ' ' + 'background-color: green;' : ''
|
||||
@@ -308,4 +339,16 @@ export default class CMyRequirement extends MixinUsers {
|
||||
return ''
|
||||
}
|
||||
|
||||
public isregalainvitante() {
|
||||
return this.ind_order_ingr >= 0
|
||||
}
|
||||
|
||||
public gettitleregala() {
|
||||
if (this.isregalainvitante())
|
||||
return this.$t('reg.regala_invitante')
|
||||
else
|
||||
return this.$t('reg.regala_invitato')
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -20,8 +20,31 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div v-if="ismydownline(seluser)">
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="$t('reg.regala_invitato')"
|
||||
<CTitleBanner class="shadow-2 rounded-borders"
|
||||
:title="$t('steps.sharemovement') + ` - ` + seluser.name + ` ` + seluser.surname + ``"
|
||||
bgcolor="bg-secondary"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<div :class="myclassreq">
|
||||
|
||||
<div v-if="!isextralist(seluser)">
|
||||
<div v-for="(req, index) of arrrequisiti_liberi">
|
||||
<CRequisito :icon="req.icon" :text="$t(req.textlang, {botname: $t('ws.botname')}) + req.textadd(seluser)"
|
||||
:icon_error="geticonerror(false)"
|
||||
:no_check="true"
|
||||
:isok="req.isok(seluser)"
|
||||
:info="req.info"></CRequisito>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
|
||||
<div v-if="ismydownline(seluser) || showregalainv">
|
||||
|
||||
<CTitleBanner class="shadow-2 rounded-borders" :title="gettitleregala()"
|
||||
bgcolor="bg-positive"
|
||||
clcolor="text-white"
|
||||
:visible="false"
|
||||
@@ -49,7 +72,12 @@
|
||||
|
||||
<q-toggle v-model="notifBot" :label="$t('dashboard.sendnotification')"/>
|
||||
|
||||
<q-btn class="q-ma-sm" rounded color="positive" text-color="white" icon="fas fa-gift"
|
||||
<q-btn v-if="isregalainvitante()" class="q-ma-sm" rounded color="positive" text-color="white" icon="fas fa-gift"
|
||||
:label="$t('reg.regala_invitante')"
|
||||
:disabled='!allowSubmit'
|
||||
@click="RegalaInvitante(seluser, aportador_solidario, ind_order_ingr, id_listaingr, getnotifBotTxtInvitante)"></q-btn>
|
||||
|
||||
<q-btn v-else class="q-ma-sm" rounded color="positive" text-color="white" icon="fas fa-gift"
|
||||
:label="$t('reg.regala_invitato')"
|
||||
:disabled='!allowSubmit'
|
||||
@click="RegalaInvitato(seluser, aportador_solidario, getnotifBotTxt)"></q-btn>
|
||||
@@ -72,27 +100,6 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<CTitleBanner class="shadow-2 rounded-borders"
|
||||
:title="$t('steps.sharemovement') + ` - ` + seluser.name + ` ` + seluser.surname + ``"
|
||||
bgcolor="bg-secondary"
|
||||
clcolor="text-white"
|
||||
mystyle=" " myclass="myshad" :canopen="true">
|
||||
|
||||
<div :class="myclassreq">
|
||||
|
||||
<div v-if="!isextralist(seluser)">
|
||||
<div v-for="(req, index) of arrrequisiti_liberi">
|
||||
<CRequisito :icon="req.icon" :text="$t(req.textlang, {botname: $t('ws.botname')}) + req.textadd(seluser)"
|
||||
:icon_error="geticonerror(false)"
|
||||
:no_check="true"
|
||||
:isok="req.isok(seluser)"
|
||||
:info="req.info"></CRequisito>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</CTitleBanner>
|
||||
<!--<div v-else>
|
||||
<div class="column justify-center q-gutter-sm q-pa-sm">
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<template>
|
||||
<div>
|
||||
<div>
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('pages.nextzoom')" bgcolor="bg-primary" clcolor="text-white"
|
||||
<CTitleBanner v-if="listacalzoom.length > 0" class="q-pa-xs" :title="$t('pages.nextzoom')"
|
||||
bgcolor="bg-primary" clcolor="text-white"
|
||||
mystyle="" myclass="myshad" canopen="true">
|
||||
|
||||
|
||||
@@ -9,17 +10,20 @@
|
||||
|
||||
<div class="row animazione justify-center q-gutter-md">
|
||||
<q-btn v-if="showzoom" size="md" type="a" :href="tools.getLinkZoom()"
|
||||
target="_blank" rounded color="white" text-color="primary" icon="fas fa-video" :label="$t('steps.entra_zoom')">
|
||||
target="_blank" rounded color="white" text-color="primary" icon="fas fa-video"
|
||||
:label="$t('steps.entra_zoom')">
|
||||
</q-btn>
|
||||
|
||||
<transition-group name="fade" mode="out-in"
|
||||
appear
|
||||
enter-active-class="animazione fadeIn"
|
||||
leave-active-class="animazione fadeOut">
|
||||
<q-item v-for="(confer, index) in listacalzoom" :key="confer._id" class="q-mb-xs animated clBorderZoom q-pa-sm" v-ripple>
|
||||
<q-item v-for="(confer, index) in listacalzoom" :key="confer._id"
|
||||
class="q-mb-xs animated clBorderZoom q-pa-sm" v-ripple>
|
||||
|
||||
<q-item-section avatar>
|
||||
<q-avatar v-if="tools.geticon(confer.lang)" :class="tools.geticon(confer.lang)" size="sm">
|
||||
<q-avatar v-if="tools.geticon(confer.lang)" :class="tools.geticon(confer.lang)"
|
||||
size="sm">
|
||||
</q-avatar>
|
||||
<q-avatar v-else color="primary" text-color="white" class="text-center">
|
||||
{{ tools.capitalize(confer.lang) }}
|
||||
@@ -28,7 +32,13 @@
|
||||
|
||||
<q-item-section class="text-center">
|
||||
<q-item-label class="title">{{ confer.title }}</q-item-label>
|
||||
<q-item-label class="zoom_data">{{ tools.getstrDateMonthWeekTimeShort(confer.date_start) }}</q-item-label>
|
||||
<q-item-label class="text-center">
|
||||
<q-icon v-if="confer.benvenuto" name="fas fa-check" size="md" color="blue"></q-icon>
|
||||
<q-icon v-if="!!confer.icon" :name="confer.icon" size="md" inverted :color="confer.color"></q-icon>
|
||||
</q-item-label>
|
||||
<q-item-label class="zoom_data">{{
|
||||
tools.getstrDateMonthWeekTimeShort(confer.date_start) }}
|
||||
</q-item-label>
|
||||
<q-item-label class="note">
|
||||
<q-chip
|
||||
style="background-color: lightblue !important;"
|
||||
|
||||
@@ -12,7 +12,7 @@ import { validationMixin } from 'vuelidate'
|
||||
import { Logo } from '../../components/logo'
|
||||
import { DefaultProfile } from '../../store/Modules/UserStore'
|
||||
|
||||
import 'vue-country-code/dist/vue-country-code.css'
|
||||
// import 'vue-country-code/dist/vue-country-code.css'
|
||||
import { serv_constants } from '@src/store/Modules/serv_constants'
|
||||
|
||||
import VueCountryCode from 'vue-country-code'
|
||||
|
||||
@@ -31,6 +31,8 @@
|
||||
rounded outlined
|
||||
@blur="$v.signup.username.$touch"
|
||||
:error="$v.signup.username.$error"
|
||||
@keydown.native.54="(event) => event.preventDefault()"
|
||||
@keydown.native.52="(event) => event.preventDefault()"
|
||||
@keydown.space="(event) => event.preventDefault()"
|
||||
maxlength="20"
|
||||
debounce="1000"
|
||||
|
||||
@@ -12,7 +12,7 @@ import { validationMixin } from 'vuelidate'
|
||||
import { Logo } from '../../components/logo'
|
||||
import { DefaultProfile } from '../../store/Modules/UserStore'
|
||||
|
||||
import 'vue-country-code/dist/vue-country-code.css'
|
||||
// import 'vue-country-code/dist/vue-country-code.css'
|
||||
import { serv_constants } from '@src/store/Modules/serv_constants'
|
||||
|
||||
import VueCountryCode from 'vue-country-code'
|
||||
|
||||
@@ -84,6 +84,8 @@
|
||||
rounded outlined
|
||||
@blur="$v.signup.username.$touch"
|
||||
:error="$v.signup.username.$error"
|
||||
@keydown.native.54="(event) => event.preventDefault()"
|
||||
@keydown.native.52="(event) => event.preventDefault()"
|
||||
@keydown.space="(event) => event.preventDefault()"
|
||||
maxlength="20"
|
||||
debounce="1000"
|
||||
|
||||
@@ -12,7 +12,7 @@ import { validationMixin } from 'vuelidate'
|
||||
import { Logo } from '../../components/logo'
|
||||
import { DefaultProfile } from '../../store/Modules/UserStore'
|
||||
|
||||
import 'vue-country-code/dist/vue-country-code.css'
|
||||
// import 'vue-country-code/dist/vue-country-code.css'
|
||||
import { serv_constants } from '@src/store/Modules/serv_constants'
|
||||
|
||||
import VueCountryCode from 'vue-country-code'
|
||||
|
||||
@@ -3,27 +3,10 @@
|
||||
<div class="text-center">
|
||||
<p>
|
||||
<logo mystyle="height:200px;"></logo>
|
||||
<CTitleBanner :title="gettitlereg"></CTitleBanner>
|
||||
<CTitleBanner :title="gettitlereg" :canopen="false"></CTitleBanner>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<q-banner
|
||||
v-if="!nuovareg"
|
||||
rounded
|
||||
class="bg-primary text-white"
|
||||
style="text-align: center; font-size:1rem;">
|
||||
<span class="mybanner" v-html="$t('reg.reg_lista_prec')"></span>
|
||||
</q-banner>
|
||||
|
||||
<br>
|
||||
<q-banner
|
||||
v-if="!nuovareg"
|
||||
rounded
|
||||
class="bg-warning text-black"
|
||||
style="text-align: center; font-size:1rem;">
|
||||
<span class="mybanner">{{ $t('reg.nuove_registrazioni')}}</span>
|
||||
</q-banner>
|
||||
|
||||
<!--Prova URL : {{env('PROVA_PAOLO')}}-->
|
||||
|
||||
<div class="q-gutter-sm">
|
||||
@@ -84,6 +67,8 @@
|
||||
rounded outlined
|
||||
@blur="$v.signup.username.$touch"
|
||||
:error="$v.signup.username.$error"
|
||||
@keydown.native.52="(event) => event.preventDefault()"
|
||||
@keydown.native.54="(event) => event.preventDefault()"
|
||||
@keydown.space="(event) => event.preventDefault()"
|
||||
maxlength="20"
|
||||
debounce="1000"
|
||||
|
||||
@@ -466,10 +466,6 @@ export default class CStatus extends MixinBase {
|
||||
|
||||
}
|
||||
|
||||
get TelegramBiblio() {
|
||||
return 'https://t.me/joinchat/AL2qKExZKvenLgpVhOyefQ'
|
||||
}
|
||||
|
||||
public geticonstep(mystep) {
|
||||
if (!!mystep.icon)
|
||||
return mystep.icon
|
||||
@@ -552,7 +548,7 @@ export default class CStatus extends MixinBase {
|
||||
}
|
||||
|
||||
get progressstep() {
|
||||
return this.$t(this.arrsteps[this.steptodo].title)
|
||||
return this.$t(this.arrsteps[this.steptodo].title, {botname: this.$t('ws.botname')})
|
||||
}
|
||||
|
||||
get strpercstep() {
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
<div v-else>
|
||||
<br>
|
||||
<q-btn color="primary" icon="fab fa-telegram"
|
||||
:label="$t('components.authentication.telegram.openbot')"
|
||||
:label="$t('components.authentication.telegram.openbot', {botname: $t('ws.botname')})"
|
||||
type="a"
|
||||
:href="getLinkBotTelegram" target="_blank"></q-btn>
|
||||
<br>
|
||||
@@ -166,15 +166,15 @@
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.dream'">
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr)"></div>
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
<q-input v-model="my_dream" :label="$t('steps.dream')+' (min. 10):'"
|
||||
type="textarea" debounce="1000"
|
||||
input-class="myinput-area-big"
|
||||
autogrow
|
||||
@input="change_mydream"
|
||||
@input="change_mydream">
|
||||
|
||||
></q-input>
|
||||
</q-input>
|
||||
|
||||
<!--
|
||||
<CMyFieldDb :title="$t('reg.my_dream')"
|
||||
@@ -186,18 +186,6 @@
|
||||
</CMyFieldDb>
|
||||
-->
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.chat_biblio'">
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr)"></div>
|
||||
</div>
|
||||
<br><strong>Entra in Chat BiblioBacheca, cliccando qui:</strong>
|
||||
|
||||
<div class="landing__footer-icons row flex-center margin_buttons">
|
||||
<a v-if="!!TelegramBiblio" :href="TelegramBiblio" target="_blank">
|
||||
<i aria-hidden="true" class="q-icon fab fa-telegram icon_contact links"></i></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.zoom'">
|
||||
|
||||
<CRequisiti :statebool="VistoZoom" :msgTrue="$t('steps.zoom_si_partecipato')"
|
||||
@@ -205,7 +193,7 @@
|
||||
</CRequisiti>
|
||||
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr)"></div>
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
<CTitleBanner class="q-pa-xs" :title="$t('steps.zoom_what')" bgcolor="bg-primary"
|
||||
clcolor="text-white"
|
||||
@@ -216,13 +204,16 @@
|
||||
</CVideo>
|
||||
|
||||
<div v-if="toolsext.isLang('it')">
|
||||
<h3>ISTRUZIONI ZOOM</h3>
|
||||
<h3>ISTRUZIONI ZOOM Cloud Meeting</h3>
|
||||
|
||||
<ul style="text-align: left; font-size:0.75rem;">
|
||||
<li>1. Scarica l'app (<a
|
||||
<li>1. Scarica l'app per: (<a
|
||||
href="https://play.google.com/store/apps/details?id=us.zoom.videomeetings"
|
||||
target="_blank">store</a> o <a href="https://zoom.us/support/download"
|
||||
target="_blank">da PC</a>)
|
||||
target="_blank">Android</a> o per
|
||||
<a href="https://apps.apple.com/us/app/zoom-cloud-meetings/id546505307" target="_blank">iPhone</a>
|
||||
o per
|
||||
<a href="https://zoom.us/support/download" target="_blank">PC Desktop</a>
|
||||
)
|
||||
</li>
|
||||
<li>2. Inserisci il tuo Nome e Cognome per essere riconosciuto</li>
|
||||
<li>3. Clicca "join meeting"</li>
|
||||
@@ -278,7 +269,7 @@
|
||||
:label="$t('pages.dashboard')"></q-btn>
|
||||
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr)"></div>
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-center q-ma-sm">
|
||||
@@ -315,17 +306,17 @@
|
||||
|
||||
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr)"></div>
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else-if="mystep.title === 'steps.enter_prog'">
|
||||
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr)"></div>
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
|
||||
<CRequisiti :statebool="CompletatoRequisiti" :msgTrue="$t('steps.enter_prog_requisiti_ok')"
|
||||
<CRequisiti :statebool="CompletatoRequisiti" :msgTrue="$t('steps.enter_prog_requisiti_ok') + $t('steps.enter_prog_requisiti_ok')"
|
||||
:msgFalse="$t('steps.enter_prog_completa_requisiti')">
|
||||
</CRequisiti>
|
||||
|
||||
@@ -345,7 +336,7 @@
|
||||
<div v-if="mystep.page">
|
||||
<CMyInnerPage :path=mystep.page>
|
||||
<div v-if="mystep.descr">
|
||||
<div v-html="$t(mystep.descr)"></div>
|
||||
<div v-html="$t(mystep.descr, {sitename: $t('pages.sitename')})"></div>
|
||||
</div>
|
||||
</CMyInnerPage>
|
||||
</div>
|
||||
|
||||
@@ -27,9 +27,9 @@ export default class CStatusReg extends MixinBase {
|
||||
public polling = null
|
||||
public numpolled: number = 0
|
||||
public datastat: INotData = {
|
||||
num_tot_lista: 0,
|
||||
num_reg_lista: 0,
|
||||
num_reg: 0,
|
||||
num_passeggeri: 0,
|
||||
num_imbarcati: 0,
|
||||
num_teleg_attivo: 0,
|
||||
email_non_verif: 0,
|
||||
num_teleg_pending: 0,
|
||||
@@ -39,7 +39,7 @@ export default class CStatusReg extends MixinBase {
|
||||
|
||||
public async checkifpolling() {
|
||||
if (UserStore.state.my.profile) {
|
||||
if (!UserStore.state.my.verified_email || UserStore.state.my.profile.teleg_id <= 0)
|
||||
if (!UserStore.state.my.verified_email || (UserStore.state.my.profile.teleg_id <= 0 && (tools.appid() === tools.IDAPP_AYNI)))
|
||||
this.NUMSEC_TO_POLLING = 10
|
||||
}
|
||||
|
||||
@@ -124,13 +124,6 @@ export default class CStatusReg extends MixinBase {
|
||||
this.checkifpolling()
|
||||
}
|
||||
|
||||
get perc_reg() {
|
||||
if (this.datastat.num_tot_lista > 0)
|
||||
return (this.datastat.num_reg_lista / this.datastat.num_tot_lista * 100)
|
||||
else
|
||||
return 0
|
||||
}
|
||||
|
||||
public calcperc(val1, valmax ) {
|
||||
if (valmax > 0)
|
||||
return (val1 / valmax * 100)
|
||||
@@ -139,7 +132,7 @@ export default class CStatusReg extends MixinBase {
|
||||
}
|
||||
|
||||
get visustat() {
|
||||
return this.datastat.num_reg > 0 || this.datastat.num_reg_lista > 0
|
||||
return this.datastat.num_reg > 0
|
||||
}
|
||||
|
||||
get telegnonattivi() {
|
||||
|
||||
@@ -7,28 +7,43 @@
|
||||
|
||||
<div class="flex flex-center">
|
||||
|
||||
<CCardState :mytext="$t('pages.statusreg.reg')" :myval="datastat.num_reg" :myperc="100"></CCardState>
|
||||
<CCardState :mytext="$t('stat.requisiti')" :isperc="true" :myval="datastat.num_requisiti"
|
||||
<CCardState :mytext="$t('pages.statusreg.reg')" :myval="datastat.num_reg"
|
||||
:myperc="100"></CCardState>
|
||||
|
||||
<CCardState :mytext="$t('pages.statusreg.passeggeri')"
|
||||
mycolor="blue"
|
||||
size="150px"
|
||||
size_mob="130px"
|
||||
:myval="datastat.num_passeggeri"
|
||||
:myperc="100"></CCardState>
|
||||
|
||||
<!--<CCardState :mytext="$t('statusreg.imbarcati')"
|
||||
size="150px"
|
||||
size_mob="130px"
|
||||
mycolor="blue" :myval="datastat.num_imbarcati"
|
||||
:myperc="100"></CCardState>-->
|
||||
|
||||
<!--<CCardState v-if="datastat.num_part_accepted > 1"
|
||||
:mytext="$t('stat.requisiti')" :isperc="true" :myval="datastat.num_requisiti"
|
||||
:myperc="calcperc(datastat.num_requisiti, datastat.num_reg) "
|
||||
mycolor="blue"
|
||||
:textadd="` / ` + datastat.num_reg"></CCardState>
|
||||
:textadd="` / ` + datastat.num_reg"></CCardState>-->
|
||||
|
||||
<!--<CCardState :mytext="$t('pages.statusreg.giainlista')" :isperc="true" :myval="datastat.num_reg_lista"-->
|
||||
<!--:myperc="perc_reg" :textadd="` / ` + datastat.num_tot_lista"></CCardState>-->
|
||||
|
||||
<div class="q-pa-xs ">
|
||||
<div class="q-pa-xs" v-if="datastat.num_part_accepted > 1">
|
||||
<CCardStat :mytext="$t('stat.accepted')" :myval="datastat.num_part_accepted"></CCardStat>
|
||||
<CCardStat :mytext="$t('stat.zoom')" :myval="datastat.num_part_zoom"></CCardStat>
|
||||
<CCardStat :mytext="$t('stat.dream')" :myval="datastat.num_users_dream"></CCardStat>
|
||||
<CCardStat :mytext="$t('stat.modalita_pagamento')" :myval="datastat.num_modalita_pagamento"></CCardStat>
|
||||
<CCardStat :mytext="$t('stat.requisiti')" :myval="datastat.num_requisiti"></CCardStat>
|
||||
<CCardStat :mytext="$t('stat.imbarcati')" :myval="datastat.num_imbarcati"></CCardStat>
|
||||
<!--<CCardStat :mytext="$t('stat.modalita_pagamento')"
|
||||
:myval="datastat.num_modalita_pagamento"></CCardStat>-->
|
||||
<!--<CCardStat :mytext="$t('stat.requisiti')" :myval="datastat.num_requisiti"></CCardStat>-->
|
||||
<!--<CCardStat :mytext="$t('stat.qualificati')" :myval="datastat.num_qualificati"></CCardStat>-->
|
||||
<CCardStat v-if="emailnonverif" :mytext="$t('stat.email_not_verif')" :myval="emailnonverif"
|
||||
<!--<CCardStat v-if="emailnonverif" :mytext="$t('stat.email_not_verif')" :myval="emailnonverif"
|
||||
mycol="negative"></CCardStat>
|
||||
<CCardStat v-if="telegnonattivi" :mytext="$t('stat.telegram_non_attivi')" :myval="telegnonattivi"
|
||||
<CCardStat v-if="telegnonattivi" :mytext="$t('stat.telegram_non_attivi')"
|
||||
:myval="telegnonattivi"
|
||||
mycol="negative"></CCardStat>
|
||||
<CCardStat v-if="datastat.num_teleg_pending > 0" :mytext="$t('stat.telegram_pendenti')"
|
||||
:myval="datastat.num_teleg_pending" mycol="negative"></CCardStat>
|
||||
:myval="datastat.num_teleg_pending" mycol="negative"></CCardStat>-->
|
||||
</div>
|
||||
|
||||
<div class="column animazione">
|
||||
@@ -38,7 +53,8 @@
|
||||
enter-active-class="animazione fadeIn"
|
||||
leave-active-class="animazione fadeOut">
|
||||
|
||||
<q-item v-for="(user, index) in lastsreg" :key="user.username" class="q-mb-xs animated" v-ripple>
|
||||
<q-item v-for="(user, index) in lastsreg" :key="user.username" class="q-mb-xs animated"
|
||||
v-ripple>
|
||||
|
||||
<q-item-section avatar>
|
||||
<q-avatar v-if="tools.geticon(user.profile.nationality)"
|
||||
@@ -51,13 +67,15 @@
|
||||
</q-item-section>
|
||||
|
||||
<q-item-section>
|
||||
<q-item-label>{{ user.name }} {{ tools.firstchars_onedot(user.surname, 1) }}</q-item-label>
|
||||
<q-item-label>{{ user.name }} {{ tools.firstchars_onedot(user.surname, 1) }}
|
||||
</q-item-label>
|
||||
<q-item-label caption lines="1">{{ user.username }}</q-item-label>
|
||||
</q-item-section>
|
||||
|
||||
<q-item-section side>
|
||||
<q-item-label>{{ tools.getstrDateTimeShort(user.date_temp_reg) }}</q-item-label>
|
||||
<q-chip outline color="green" text-color="white" icon-right="fas fa-user-plus" size="xs"></q-chip>
|
||||
<q-chip outline color="green" text-color="white" icon-right="fas fa-user-plus"
|
||||
size="xs"></q-chip>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</transition-group>
|
||||
@@ -73,7 +91,11 @@
|
||||
<CLineChart :mydata="datastat.reg_daily" :title="$t('stat.reg_daily')">
|
||||
|
||||
</CLineChart>
|
||||
<CLineChart :mydata="datastat.reg_daily" :title="$t('stat.reg_total')" :offset="datastat.numreg_untilday" :sum="true"
|
||||
<CLineChart :mydata="datastat.reg_weekly" :title="$t('stat.reg_weekly')">
|
||||
|
||||
</CLineChart>
|
||||
<CLineChart :mydata="datastat.reg_daily" :title="$t('stat.reg_total')"
|
||||
:offset="datastat.numreg_untilday" :sum="true"
|
||||
:mycolors="['#0b0', '#666']">
|
||||
|
||||
</CLineChart>
|
||||
|
||||
@@ -23,6 +23,10 @@ export default class CUserBadge extends MixinBase {
|
||||
@Prop({ required: true }) public user: IUserFields
|
||||
@Prop({ required: true }) public numpeople: number
|
||||
@Prop({ required: true }) public mycolor: string
|
||||
@Prop({ required: false, default: true }) public showsteps: boolean
|
||||
@Prop({ required: false, default: true }) public showregalainv: boolean
|
||||
@Prop({ required: false, default: -1 }) public ind_order_ingr: number
|
||||
@Prop({ required: false, default: -1 }) public id_listaingr: number
|
||||
public $v
|
||||
public $t: any
|
||||
|
||||
@@ -47,10 +51,12 @@ export default class CUserBadge extends MixinBase {
|
||||
}
|
||||
|
||||
public getindorder(user) {
|
||||
if (!!user.ind_order)
|
||||
/*if (!!user.username)
|
||||
return ' (' + user.ind_order + ')'
|
||||
else
|
||||
return ''
|
||||
*/
|
||||
return ''
|
||||
}
|
||||
|
||||
public getmoneycolor(user) {
|
||||
@@ -92,7 +98,7 @@ export default class CUserBadge extends MixinBase {
|
||||
}
|
||||
|
||||
public execclick(user) {
|
||||
this.$emit('myclick', user)
|
||||
this.$emit('myclick', user, this.showregalainv, this.ind_order_ingr, this.id_listaingr)
|
||||
}
|
||||
|
||||
public getnumreq(user) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div v-if="!!user">
|
||||
<q-item class="q-my-sm q-pa-sm myuserbadge shadow-5" clickable v-ripple @click="execclick(user)">
|
||||
<q-item-section avatar>
|
||||
<q-item-section avatar v-if="showsteps">
|
||||
<div class="row" style="margin-left: 4px;">
|
||||
<q-avatar v-if="yourinvite" :text-color="mycolor" size="md">
|
||||
{{ getnumber(user, index + 1) }}°
|
||||
@@ -21,7 +21,7 @@
|
||||
</q-item-section>
|
||||
|
||||
|
||||
<q-item-section side>
|
||||
<q-item-section side v-if="showsteps">
|
||||
<div class="row q-gutter-xs justify-center items-center">
|
||||
<div>
|
||||
<CCardState :mytext="$t('pages.statusreg.req')" :myval="getnumreq(user)" :myperc="getnumperc(user)" size="50px" size_mob="40px" fontsize="0.75rem" myclass="my-card-small-stat" :mycolor="getcolor(user)"></CCardState>
|
||||
|
||||
@@ -304,3 +304,7 @@ canvas {
|
||||
color: red;
|
||||
background-color: red;
|
||||
}
|
||||
|
||||
.titlesite {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
@@ -65,6 +65,10 @@ export default class Header extends Vue {
|
||||
return UserStore.state.isTutor
|
||||
}
|
||||
|
||||
get isTratuttrici() {
|
||||
return UserStore.state.isTratuttrici
|
||||
}
|
||||
|
||||
get conndata_changed() {
|
||||
return GlobalStore.state.connData
|
||||
}
|
||||
@@ -182,7 +186,7 @@ export default class Header extends Vue {
|
||||
if (this.static_data.functionality.SHOW_IF_IS_SERVER_CONNECTION) {
|
||||
|
||||
if (!!oldValue) {
|
||||
tools.showNotif(this.$q, this.$t('connection') + ` disc__value}`, {
|
||||
tools.showNotif(this.$q, this.$t('connection') + ` {disc__value}`, {
|
||||
color,
|
||||
icon: 'wifi'
|
||||
})
|
||||
|
||||
@@ -32,14 +32,15 @@
|
||||
<q-btn ripple
|
||||
size="md"
|
||||
id="newvers" v-if="isNewVersionAvailable" color="secondary" rounded icon="refresh"
|
||||
class="btnNewVersShow" @click="RefreshApp()" :label="$t('notification.newVersionAvailable')"/>
|
||||
class="btnNewVersShow" @click="RefreshApp()" :label="$t('notification.newVersionAvailable')">
|
||||
</q-btn>
|
||||
|
||||
|
||||
<q-toolbar-title class="row items-center">
|
||||
<q-avatar>
|
||||
<img :src="imglogo" height="27" alt="Immagine Logo">
|
||||
</q-avatar>
|
||||
<div class="q-mx-sm">{{getappname}}</div>
|
||||
<div class="q-mx-sm titlesite">{{getappname}}</div>
|
||||
<div slot="subtitle">{{$t('msg.myDescriz')}} {{ getAppVersion() }}</div>
|
||||
</q-toolbar-title>
|
||||
|
||||
@@ -108,8 +109,7 @@
|
||||
@click="rightDrawerOpen = !rightDrawerOpen">
|
||||
</q-btn>
|
||||
<q-btn class="q-mx-xs" v-if="static_data.functionality.SHOW_USER_MENU && isLogged" round dense flat
|
||||
@click="rightDrawerOpen = !rightDrawerOpen">
|
||||
<CMyAvatar :myimg="getMyImg"></CMyAvatar>
|
||||
@click="rightDrawerOpen = !rightDrawerOpen" :icon="getMyImgforIcon">
|
||||
</q-btn>
|
||||
|
||||
</q-toolbar>
|
||||
@@ -145,6 +145,7 @@
|
||||
v-if="isAdmin"> [Admin]</span>
|
||||
<span v-if="isManager"> [Manager]</span>
|
||||
<span v-if="isTutor"> [Tutor]</span>
|
||||
<span v-if="isTratuttrici"> [Trad]</span>
|
||||
</div>
|
||||
<div v-else class="text-user text-italic bg-red">
|
||||
{{ $t('user.loggati') }}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { toolsext } from '@src/store/Modules/toolsext'
|
||||
import messages from '../statics/i18n'
|
||||
import { tools } from '@src/store/Modules/tools'
|
||||
|
||||
function translate(params) {
|
||||
const msg = params.split('.')
|
||||
@@ -12,6 +13,7 @@ function translate(params) {
|
||||
msg.forEach((param) => {
|
||||
ris = ris[param]
|
||||
})
|
||||
|
||||
} else {
|
||||
console.log('ERRORE IN TRANSLATE! ', params, ' NON ESISTE!')
|
||||
return params
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<meta name="msapplication-tap-highlight" content="no">
|
||||
<meta name="viewport"
|
||||
content="user-scalable=no, initial-scale=1, minimum-scale=1, width=device-width<% if (htmlWebpackPlugin.options.ctx.mode.cordova) { %>, viewport-fit=cover<% } %>">
|
||||
content="user-scalable=no, initial-scale=1, minimum-scale=1, width=device-width<% if (htmlWebpackPlugin.options.ctx.mode.cordova || htmlWebpackPlugin.options.ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>">
|
||||
|
||||
<link rel="icon" href="<%= htmlWebpackPlugin.files.publicPath %>statics/icons/favicon.ico" type="image/x-icon">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="<%= htmlWebpackPlugin.files.publicPath %>statics/icons/favicon-32x32.png">
|
||||
|
||||
@@ -82,6 +82,8 @@ export default class MenuOne extends Vue {
|
||||
menu += ' isManager'
|
||||
if (elem.onlyTutor)
|
||||
menu += ' isTutor'
|
||||
if (elem.onlyTraduttrici)
|
||||
menu += ' isTraduttrici'
|
||||
|
||||
if (elem.extraclass)
|
||||
menu += ' ' + elem.extraclass
|
||||
|
||||
@@ -57,6 +57,11 @@ export default class MixinUsers extends Vue {
|
||||
return (ris !== '') ? 'statics/' + ris : ''
|
||||
}
|
||||
|
||||
get getMyImgforIcon() {
|
||||
const ris = UserStore.getters.getImgByUsername(UserStore.state.my.username)
|
||||
return (ris !== '') ? 'img:statics/' + ris : 'fas fa-user-circle'
|
||||
}
|
||||
|
||||
get MenuCollapse() {
|
||||
return GlobalStore.state.menuCollapse
|
||||
// return true
|
||||
|
||||
@@ -16,6 +16,7 @@ export interface IConnData {
|
||||
|
||||
export interface ICfgServer {
|
||||
chiave: string
|
||||
idapp: string
|
||||
userId: string
|
||||
valore: string
|
||||
}
|
||||
@@ -203,6 +204,7 @@ export interface IListRoutes {
|
||||
onlyif_logged?: boolean
|
||||
onlyManager?: boolean
|
||||
onlyTutor?: boolean
|
||||
onlyTraduttrici?: boolean
|
||||
extraclass?: string
|
||||
meta?: any
|
||||
idelem?: string
|
||||
|
||||
@@ -7,23 +7,21 @@ export interface ICheckUser {
|
||||
}
|
||||
|
||||
export interface INotData {
|
||||
num_tot_lista?: number
|
||||
num_reg_lista?: number
|
||||
num_reg?: number
|
||||
num_passeggeri?: number
|
||||
num_imbarcati?: number
|
||||
email_non_verif?: number
|
||||
num_teleg_attivo?: number
|
||||
num_teleg_pending?: number
|
||||
num_part_zoom?: number
|
||||
num_part_accepted?: number
|
||||
num_qualificati?: number
|
||||
num_requisiti?: number
|
||||
num_modalita_pagamento?: number
|
||||
num_users_dream?: number
|
||||
arr_nations?: string
|
||||
lastsreg?: IUserFields[]
|
||||
checkuser?: ICheckUser | any
|
||||
numreg_untilday?: number
|
||||
reg_daily?: string
|
||||
reg_weekly?: string
|
||||
}
|
||||
|
||||
export interface INotevoleState {
|
||||
|
||||
@@ -38,7 +38,11 @@ export interface IDashboard {
|
||||
downline: any[],
|
||||
downnotreg: any[],
|
||||
downbyuser: any[]
|
||||
arrimbarchi?: any[]
|
||||
arrposizioni?: any[]
|
||||
navi_partenza?: any[]
|
||||
lastnave?: any
|
||||
arrusers?: any[]
|
||||
}
|
||||
|
||||
export interface ICalcStat {
|
||||
@@ -48,6 +52,7 @@ export interface ICalcStat {
|
||||
|
||||
export interface IUserFields {
|
||||
_id?: string
|
||||
ind_order?: number
|
||||
email?: string
|
||||
username?: string
|
||||
name?: string
|
||||
@@ -57,7 +62,7 @@ export interface IUserFields {
|
||||
perm?: number
|
||||
verified_email?: boolean
|
||||
aportador_solidario?: string
|
||||
date_temp_reg?: Date
|
||||
|
||||
made_gift?: boolean
|
||||
tokens?: IToken[]
|
||||
lasttimeonline?: Date
|
||||
@@ -97,6 +102,7 @@ export interface IUserState {
|
||||
isAdmin?: boolean
|
||||
isManager?: boolean
|
||||
isTutor?: boolean
|
||||
isTraduttrici?: boolean
|
||||
isTeacher?: boolean
|
||||
usersList?: IUserFields[]
|
||||
countusers?: number
|
||||
|
||||
@@ -46,6 +46,10 @@ export default class Home extends Vue {
|
||||
this.initprompt()
|
||||
}
|
||||
|
||||
get mythis() {
|
||||
return this
|
||||
}
|
||||
|
||||
public mounted() {
|
||||
let primo = true
|
||||
const mytime = 10000
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
class="enable-notifications shadow"
|
||||
color="primary" rounded
|
||||
size="md"
|
||||
icon="notifications" @click="tools.askfornotification"
|
||||
icon="notifications" @click="tools.askfornotification(mythis)"
|
||||
:label="$t('notification.ask')"/>
|
||||
<!--<q-btn v-if="getPermission() === 'granted'" class="enable-notifications" color="primary" rounded size="lg" icon="notifications" @click="showNotificationExample" label="Send Notification"/>-->
|
||||
<!--<q-btn v-if="getPermission() === 'granted'" class="enable-notifications" color="secondary" rounded size="lg" icon="notifications" @click="createPushSubscription" label="Create Push Subscription !"/>-->
|
||||
@@ -170,7 +170,7 @@
|
||||
class="enable-notifications shadow"
|
||||
color="primary" rounded
|
||||
size="md"
|
||||
icon="notifications" @click="tools.askfornotification"
|
||||
icon="notifications" @click="tools.askfornotification(mythis)"
|
||||
:label="$t('notification.ask')"/>
|
||||
<!--<q-btn v-if="getPermission() === 'granted'" class="enable-notifications" color="primary" rounded size="lg" icon="notifications" @click="showNotificationExample" label="Send Notification"/>-->
|
||||
<!--<q-btn v-if="getPermission() === 'granted'" class="enable-notifications" color="secondary" rounded size="lg" icon="notifications" @click="createPushSubscription" label="Create Push Subscription !"/>-->
|
||||
@@ -261,7 +261,7 @@
|
||||
class="enable-notifications shadow"
|
||||
color="primary" rounded
|
||||
size="md"
|
||||
icon="notifications" @click="tools.askfornotification"
|
||||
icon="notifications" @click="tools.askfornotification(mythis)"
|
||||
:label="$t('notification.ask')"/>
|
||||
<!--<q-btn v-if="getPermission() === 'granted'" class="enable-notifications" color="primary" rounded size="lg" icon="notifications" @click="showNotificationExample" label="Send Notification"/>-->
|
||||
<!--<q-btn v-if="getPermission() === 'granted'" class="enable-notifications" color="secondary" rounded size="lg" icon="notifications" @click="createPushSubscription" label="Create Push Subscription !"/>-->
|
||||
|
||||
@@ -74,9 +74,9 @@ export default class Listadoninavi extends MixinBase {
|
||||
{ name: 'mediatore', align: 'center', label: '🌀 Mediatore', field: '', sortable: true },
|
||||
{ name: 'sognatore', align: 'center', label: 'Sognatore', field: '', sortable: true },
|
||||
{ name: 'donatori', align: 'center', label: 'Donatori', field: '', sortable: true },
|
||||
{ name: 'DoniConfermati', align: 'center', label: '🎁 OK', field: 'DoniConfermati', sortable: true },
|
||||
{ name: 'DoniAttesaDiConferma', align: 'center', label: '🎁 Wait', field: 'DoniAttesaDiConferma', sortable: true },
|
||||
{ name: 'DoniMancanti', align: 'center', label: '🎁 Miss', field: 'DoniMancanti', sortable: true },
|
||||
{ name: 'DoniConfermati', align: 'center', label: '🎁 OK', field: 'DoniConfermati', sortable: true },
|
||||
{ name: 'note_bot', align: 'left', label: 'Note Placca', field: 'note_bot', sortable: true },
|
||||
{ name: 'note_interne', align: 'left', label: 'Note Interne', field: 'note_interne', sortable: true },
|
||||
]
|
||||
@@ -140,10 +140,12 @@ export default class Listadoninavi extends MixinBase {
|
||||
donatore: rec.name + ' ' + rec.surname
|
||||
})
|
||||
|
||||
tools.askConfirm(this.$q, msgtitle, msginvia + ' ' + '?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.DONO_RICEVUTO, 0, {
|
||||
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
|
||||
made_gift: true,
|
||||
riga: rec.riga,
|
||||
col: rec.col,
|
||||
},
|
||||
param2: '',
|
||||
param3: ''
|
||||
@@ -172,7 +174,7 @@ export default class Listadoninavi extends MixinBase {
|
||||
|
||||
tools.askConfirm(this.$q, msgtitle, msgobj.msgpar1 + ' ' + '?', translate('dialog.yes'), translate('dialog.no'), this, '', lists.MenuAction.INVIA_MSG_A_DONATORI, 0, {
|
||||
param1: msgobj,
|
||||
param2: navemediatore,
|
||||
param2: navemediatore
|
||||
})
|
||||
|
||||
}
|
||||
@@ -183,7 +185,7 @@ export default class Listadoninavi extends MixinBase {
|
||||
|
||||
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,
|
||||
param2: navemediatore
|
||||
})
|
||||
|
||||
}
|
||||
@@ -196,7 +198,7 @@ export default class Listadoninavi extends MixinBase {
|
||||
const msgobj = {
|
||||
tipomsg: tools.TipoMsg.SEND_MSG,
|
||||
msgpar1: this.msg_tosend,
|
||||
inviareale: true,
|
||||
inviareale: true
|
||||
}
|
||||
|
||||
const navemediatore = this.selrec.donatore.recmediatore
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
row-key="index">
|
||||
<template v-slot:body="props">
|
||||
<q-tr :props="props">
|
||||
|
||||
<q-td key="index" :props="props">
|
||||
{{ props.row.index }}
|
||||
</q-td>
|
||||
@@ -37,8 +38,8 @@
|
||||
|
||||
</q-td>
|
||||
<q-td key="date_gift_chat_open" :props="props">
|
||||
|
||||
<div>
|
||||
<div v-if="!!props.row.rec">
|
||||
<div v-if="!!props.row.rec.donatore">
|
||||
<div class="text-center cursor-pointer">
|
||||
<a v-if="!!props.row.rec.donatore.navepersistente.link_chat"
|
||||
:href="props.row.rec.donatore.navepersistente.link_chat"
|
||||
@@ -48,7 +49,8 @@
|
||||
title="Link della Chat Telegram" buttons
|
||||
@save="SaveField(props.row.rec.donatore.navepersistente, 'navepersistente', 'link_chat')">
|
||||
<q-field>
|
||||
<q-input v-model="props.row.rec.donatore.navepersistente.link_chat"/>
|
||||
<q-input
|
||||
v-model="props.row.rec.donatore.navepersistente.link_chat"/>
|
||||
</q-field>
|
||||
</q-popup-edit>
|
||||
<div v-if="!props.row.rec.donatore.navepersistente.link_chat">---</div>
|
||||
@@ -61,22 +63,31 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div v-if="props.row.rec.donatore.recmediatore.sent_msg_howto_make_gift">(Link Inviato)
|
||||
<div v-if="!!props.row.rec.donatore.recmediatore">
|
||||
<div v-if="props.row.rec.donatore.recmediatore.sent_msg_howto_make_gift">(Link
|
||||
Inviato)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-td>
|
||||
<q-td key="date_start" :props="props">
|
||||
<div v-if="!!props.row.rec">
|
||||
<div v-if="!!props.row.rec.donatore.navepersistente">
|
||||
{{ tools.getstrshortDate(props.row.rec.donatore.navepersistente.date_start) }}
|
||||
</div>
|
||||
</div>
|
||||
</q-td>
|
||||
<q-td key="provvisoria" :props="props">
|
||||
<div v-if="!!props.row.rec">
|
||||
<div v-if="!!props.row.rec.donatore.navepersistente">
|
||||
<q-toggle dark color="green"
|
||||
v-model="props.row.rec.donatore.navepersistente.provvisoria"
|
||||
@input="SaveField(props.row.rec.donatore.navepersistente, 'navepersistente', 'provvisoria')"></q-toggle>
|
||||
</div>
|
||||
</div>
|
||||
</q-td>
|
||||
<q-td key="tutor" :props="props">
|
||||
<div v-if="!!props.row.rec">
|
||||
<div class="text-center">
|
||||
<div class="text-center cursor-pointer">
|
||||
{{ props.row.tutor }}
|
||||
@@ -90,7 +101,8 @@
|
||||
<div v-if="!props.row.tutor">---</div>
|
||||
</div>
|
||||
<div v-if="props.row.rec.donatore.navepersistente.tutor_namesurname">
|
||||
<q-btn v-if="!!props.row.rec.donatore.navepersistente.tutor_namesurname" flat
|
||||
<q-btn v-if="!!props.row.rec.donatore.navepersistente.tutor_namesurname"
|
||||
flat
|
||||
rounded color="blue"
|
||||
:label="props.row.rec.donatore.navepersistente.tutor_namesurname"
|
||||
@click="clickseluser({ username: props.row.rec.donatore.navepersistente.tutor, name: props.row.rec.donatore.navepersistente.tutor_namesurname })">
|
||||
@@ -98,44 +110,53 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-td>
|
||||
<q-td key="mediatore" :props="props">
|
||||
<div v-if="props.row.rec">
|
||||
<q-btn v-if="!!props.row.rec.donatore.recmediatore" flat rounded color="blue"
|
||||
:label="props.row.rec.donatore.recmediatore.name + ` ` + props.row.rec.donatore.recmediatore.surname"
|
||||
@click="clickseluser(props.row.rec.donatore.recmediatore)">
|
||||
</q-btn>
|
||||
</div>
|
||||
</q-td>
|
||||
<q-td key="sognatore" :props="props">
|
||||
<div v-if="props.row.rec.donatore.recsognatori">
|
||||
<q-btn v-if="!!props.row.rec.donatore.recsognatori[0]" flat rounded color="blue"
|
||||
:label="props.row.rec.donatore.recsognatori[0].name + ` ` + props.row.rec.donatore.recsognatori[0].surname"
|
||||
@click="clickseluser(props.row.rec.donatore.recsognatori[0])">
|
||||
</q-btn>
|
||||
</div>
|
||||
</q-td>
|
||||
<q-td key="donatori" :props="props">
|
||||
<div v-if="props.row.rec">
|
||||
|
||||
<q-btn v-if="EsistonoDonatori(props.row.rec)" flat rounded color="blue"
|
||||
:label="$t('dashboard.donatori')"
|
||||
@click="clickdonatori(props.row.rec)">
|
||||
</q-btn>
|
||||
</div>
|
||||
</q-td>
|
||||
|
||||
<q-td key="DoniConfermati" :props="props">
|
||||
<div v-if="props.row.DoniConfermati > 0" class="DoniConfermati">
|
||||
{{props.row.DoniConfermati }}
|
||||
({{props.row.DoniTotali }})
|
||||
</div>
|
||||
</q-td>
|
||||
<q-td key="DoniAttesaDiConferma" :props="props">
|
||||
<div v-if="props.row.DoniAttesaDiConferma > 0" class="DoniAttesaDiConferma">{{
|
||||
props.row.DoniAttesaDiConferma }}
|
||||
</div>
|
||||
</q-td>
|
||||
<q-td key="DoniMancanti" :props="props">
|
||||
<div v-if="props.row.DoniMancanti > 0" class="DoniMancanti">{{ props.row.DoniMancanti
|
||||
<div v-if="props.row.DoniMancanti > 0" class="DoniMancanti">{{
|
||||
props.row.DoniMancanti
|
||||
}}
|
||||
</div>
|
||||
</q-td>
|
||||
<q-td key="DoniConfermati" :props="props">
|
||||
<div v-if="props.row.DoniConfermati > 0" class="DoniConfermati">{{
|
||||
props.row.DoniConfermati }}
|
||||
</div>
|
||||
</q-td>
|
||||
<q-td key="note_bot" :props="props">
|
||||
<div class="Note cursor-pointer">
|
||||
<div v-if="!!props.row.rec.donatore" class="Note cursor-pointer">
|
||||
<div v-if="props.row.rec.donatore.navepersistente.note_bot">{{
|
||||
props.row.rec.donatore.navepersistente.note_bot }}
|
||||
</div>
|
||||
@@ -152,7 +173,7 @@
|
||||
</div>
|
||||
</q-td>
|
||||
<q-td key="note_interne" :props="props">
|
||||
<div class="Note cursor-pointer">
|
||||
<div v-if="!!props.row.rec.donatore" class="Note cursor-pointer">
|
||||
<div v-if="props.row.rec.donatore.navepersistente.note_interne">{{
|
||||
props.row.rec.donatore.navepersistente.note_interne }}
|
||||
</div>
|
||||
@@ -170,6 +191,7 @@
|
||||
</q-popup-edit>
|
||||
</div>
|
||||
</q-td>
|
||||
|
||||
</q-tr>
|
||||
</template>
|
||||
</q-table>
|
||||
@@ -186,7 +208,7 @@
|
||||
</q-toolbar>
|
||||
<q-card-section class="inset-shadow" style="padding: 4px !important;">
|
||||
<div class="row justify-center q-gutter-md">
|
||||
<div>
|
||||
<div v-if="!!selrec.donatore">
|
||||
<q-table
|
||||
class="my-sticky-header-table"
|
||||
dense
|
||||
|
||||
@@ -12,6 +12,8 @@ const msg_de = {
|
||||
tableslist: 'Tables',
|
||||
},
|
||||
otherpages: {
|
||||
modifprof: 'Modify Profile',
|
||||
biografia: 'Biografia',
|
||||
admin: {
|
||||
menu: 'Administration',
|
||||
eventlist: 'Your Booking',
|
||||
|
||||
@@ -12,6 +12,8 @@ const msg_enUs = {
|
||||
tableslist: 'Tables',
|
||||
},
|
||||
otherpages: {
|
||||
modifprof: 'Modify Profile',
|
||||
biografia: 'Bio',
|
||||
error404: 'error404',
|
||||
error404def: 'error404def',
|
||||
admin: {
|
||||
@@ -50,6 +52,10 @@ const msg_enUs = {
|
||||
reg_total: 'Total registrations',
|
||||
},
|
||||
steps: {
|
||||
nuovo_imbarco: 'Book another Trip',
|
||||
vuoi_entrare_nuova_nave: 'If you confirm, when your ship is ready to sail, you will make a New Gift to repeat another Trip.<br>' +
|
||||
'In this way you will help all ships to advance and grow the movement.',
|
||||
vuoi_cancellare_imbarco: 'Are you sure you want to cancel this boarding on the AYNI ship?',
|
||||
completed: 'Completed',
|
||||
passi_su: '{passo} steps out of {totpassi}',
|
||||
video_intro_1: '1. Welcome to {sitename}',
|
||||
@@ -71,7 +77,7 @@ const msg_enUs = {
|
||||
zoom_partecipa: 'Participated in at least 1 Zoom',
|
||||
zoom_no_partecipato: 'You have not yet participated in a Zoom (it is a requirement to enter)',
|
||||
zoom_long: 'You are required to participate in at least 1 Zoom, but it is recommended that you take part in the movement more actively.<br><br><strong>By participating in Zooms the Staff will record attendance and you will be enabled.</strong>',
|
||||
zoom_what: 'Tutorial how to install Zoom',
|
||||
zoom_what: 'Tutorial how to install Zoom Cloud Meeting',
|
||||
// sharemovement_devi_invitare_almeno_2: 'You still haven\'t invited 2 people',
|
||||
// sharemovement_hai_invitato: 'You invited at least 2 people',
|
||||
sharemovement_invitati_attivi_si: 'You have at least 2 people invited Active',
|
||||
@@ -80,7 +86,8 @@ const msg_enUs = {
|
||||
sharemovement_long: 'Share the {sitename} Movement and invite them to participate in the Welcome Zooms to become part of this great Family 😄 .<br>.',
|
||||
inv_attivi_long: '',
|
||||
enter_prog_completa_requisiti: 'Complete all the requirements to enter the boarding list.',
|
||||
enter_prog_requisiti_ok: 'You have completed all 7 requirements to enter the boarding list.<br>You will receive a message in the next few days as soon as your ship is ready!',
|
||||
enter_prog_requisiti_ok: 'You have completed all 7 requirements to enter the boarding list.<br>',
|
||||
enter_prog_msg: 'You will receive a message in the next few days as soon as your ship is ready!',
|
||||
enter_nave_9req_ok: 'CONGRATULATIONS! You have completed ALL 9 steps guide! Thank you for helping {sitename} to Expand! <br>You will be able to leave very soon with your Journey, making your gift and continuing towards the Dreamer.',
|
||||
enter_nave_9req_ko: 'Remember that you can help the Movement grow and expand by sharing our journey with everyone!',
|
||||
enter_prog: 'I\'m going in Programming',
|
||||
@@ -177,6 +184,8 @@ const msg_enUs = {
|
||||
options: 'Options',
|
||||
},
|
||||
dashboard: {
|
||||
num_tessitura: 'Numero di Tessitura:',
|
||||
attenzione: 'Attenzione',
|
||||
downline: 'Guests',
|
||||
downnotreg: 'Non-registered Guests',
|
||||
notreg: 'Not Registered',
|
||||
@@ -184,7 +193,7 @@ const msg_enUs = {
|
||||
numinvitati: 'At least 2 guests',
|
||||
telefono_wa: 'Contact on Whatsapp',
|
||||
sendnotification: 'Send Notification to the Recipient on Telegram BOT',
|
||||
ricevuto_dono: 'You received a Gift Invitation {invitato} from {mittente} !',
|
||||
ricevuto_dono: '😍🎊 You received a Gift Invitation {invitato} from {mittente} !',
|
||||
nessun_invitante: 'No Inviting',
|
||||
nessun_invitato: 'No_invited',
|
||||
legenda_title: 'Click on the name of the guest to see the status of his Requirements.',
|
||||
|
||||
@@ -12,6 +12,8 @@ const msg_es = {
|
||||
tableslist: 'Tablas'
|
||||
},
|
||||
otherpages: {
|
||||
modifprof: 'Editar Perfil',
|
||||
biografia: 'Biografia',
|
||||
error404: 'error404',
|
||||
error404def: 'error404def',
|
||||
admin: {
|
||||
@@ -46,10 +48,15 @@ const msg_es = {
|
||||
email_not_verif: 'Correo electrónico no verificado',
|
||||
telegram_non_attivi: 'Telegrama no activo',
|
||||
telegram_pendenti: 'Telegram Pendientes',
|
||||
reg_daily:'Registrazioni Giornaliere',
|
||||
reg_total: 'Registrazioni Totali',
|
||||
reg_daily: 'Registros diarios',
|
||||
reg_weekly: 'Registros Semanales',
|
||||
reg_total: 'Total de registros',
|
||||
},
|
||||
steps: {
|
||||
nuovo_imbarco: 'Reserva otro viaje',
|
||||
vuoi_entrare_nuova_nave: 'Si confirma, cuando su barco esté listo para zarpar, hará un nuevo regalo para repetir otro viaje..<br>' +
|
||||
'De esta manera ayudarás a todas las naves a avanzar y hacer crecer el movimiento.',
|
||||
vuoi_cancellare_imbarco: '¿Está seguro de que quiere cancelar el embarque en el barco de AYNI?',
|
||||
completed: 'Completado',
|
||||
passi_su: '{passo} pasos de cada {totpassi}',
|
||||
video_intro_1: '1. Bienvenido a {sitename}',
|
||||
@@ -71,7 +78,7 @@ const msg_es = {
|
||||
zoom_partecipa: "Participó al menos 1 Zoom",
|
||||
zoom_no_partecipato: "Aún no ha participado en un Zoom (es un requisito para entrar)",
|
||||
zoom_long: "Se requiere que participe en al menos 1 Zoom, pero se recomienda participar en el movimiento de una manera más activa.<br><br><strong>Al participar en los Zooms el Staff registrará la asistencia y usted estará habilitado.</strong>",
|
||||
zoom_what: "Tutoriales de cómo instalar Zoom",
|
||||
zoom_what: "Tutoriales de cómo instalar Zoom Cloud Meeting",
|
||||
// sharemovement_devi_invitare_almeno_2: 'Todavía no has invitado a dos personas',
|
||||
// sharemovement_hai_invitato: 'Invitaste al menos a dos personas',
|
||||
sharemovement_invitati_attivi_si: 'Tienes al menos 2 personas invitadas Activo',
|
||||
@@ -80,7 +87,8 @@ const msg_es = {
|
||||
sharemovement_long: 'Continúo trabajando con mis compañeros para llegar al día en que mi barco zarpe.<br>',
|
||||
inv_attivi_long: '',
|
||||
enter_prog_completa_requisiti: 'Complete todos los requisitos para entrar en la lista de embarque.',
|
||||
enter_prog_requisiti_ok: 'Ha completado los 7 requisitos para entrar en la lista de embarque.<br>¡Recibirá un mensaje en los próximos días tan pronto como su nave esté lista!',
|
||||
enter_prog_requisiti_ok: 'Ha completado los 7 requisitos para entrar en la lista de embarque.<br>',
|
||||
enter_prog_msg: '¡Recibirá un mensaje en los próximos días tan pronto como su nave esté lista!',
|
||||
enter_nave_9req_ok: '¡FELICIDADES! ¡Has completado los 9 pasos de la Guía! ¡Gracias por ayudar a {sitename} a expandirse! <br>Podrás salir muy pronto con tu viaje, haciendo tu regalo y continuando hacia el Soñador.',
|
||||
enter_nave_9req_ko: 'Recuerda que puedes ayudar a que el Movimiento crezca y se expanda compartiendo nuestro viaje con todos!',
|
||||
enter_prog: 'Voy a entrar en Lista Programación',
|
||||
@@ -176,6 +184,8 @@ const msg_es = {
|
||||
options: 'Opciones',
|
||||
},
|
||||
dashboard: {
|
||||
num_tessitura: 'Numero di Tessitura:',
|
||||
attenzione: 'Atención',
|
||||
downline: 'Invitados',
|
||||
downnotreg: 'Invitados no Registrados',
|
||||
notreg: 'No Registrado',
|
||||
@@ -183,13 +193,14 @@ const msg_es = {
|
||||
numinvitati: 'Al menos 2 invitados',
|
||||
telefono_wa: 'Contacto en Whatsapp',
|
||||
sendnotification: 'Enviar notificación al destinatario del telegrama BOT',
|
||||
ricevuto_dono: 'Usted recibió una invitación de regalo de {invitato} de {mittente} !',
|
||||
ricevuto_dono: '😍🎊 Usted recibió una invitación de regalo de {invitato} de {mittente} !',
|
||||
nessun_invitante: 'No invitando',
|
||||
nessun_invitato: 'No_invitado',
|
||||
legenda_title: 'Haga clic en el nombre del huésped para ver el estado de sus requisitos',
|
||||
nave_in_partenza: 'que Sale el',
|
||||
nave_partita: 'partió en',
|
||||
tutor: 'Tutor',
|
||||
traduttrici: 'Traduttrici',
|
||||
sonomediatore: '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 ' +
|
||||
'como administrador) con este nombre: <strong>{nomenave}</strong></li>' +
|
||||
@@ -207,13 +218,13 @@ const msg_es = {
|
||||
nave: 'Nave',
|
||||
data_partenza: 'Fecha<br>Salida',
|
||||
doni_inviati: 'Regalos<br>enviados',
|
||||
nome_dei_passaggi:'Nombre de los pasajes',
|
||||
donatori:'Donantes',
|
||||
donatore:'Donante',
|
||||
mediatore:'Mediador',
|
||||
sognatore:'Soñador',
|
||||
sognatori:'SOÑADOR',
|
||||
intermedio:'INTERMEDIO',
|
||||
nome_dei_passaggi: 'Nombre de los pasajes',
|
||||
donatori: 'Donantes',
|
||||
donatore: 'Donante',
|
||||
mediatore: 'Mediador',
|
||||
sognatore: 'Soñador',
|
||||
sognatori: 'SOÑADOR',
|
||||
intermedio: 'INTERMEDIO',
|
||||
pos2: 'Interm. 2',
|
||||
pos3: 'Interm. 3',
|
||||
pos5: 'Interm. 5',
|
||||
@@ -306,6 +317,7 @@ const msg_es = {
|
||||
selected: 'seleccionado',
|
||||
img: 'File image',
|
||||
date_reg: 'Fecha Reg.',
|
||||
deleted: 'Cancellato',
|
||||
requirement: 'Requisitos',
|
||||
perm: 'Permisos',
|
||||
username: 'Username (Apodo)',
|
||||
|
||||
@@ -12,6 +12,8 @@ const msg_fr = {
|
||||
tableslist: 'Tables',
|
||||
},
|
||||
otherpages: {
|
||||
modifprof: 'Modifier le profil',
|
||||
biografia: 'Biografia',
|
||||
error404: 'error404',
|
||||
error404def: 'error404def',
|
||||
admin: {
|
||||
@@ -47,9 +49,14 @@ const msg_fr = {
|
||||
telegram_non_attivi: 'Telegram non actif',
|
||||
telegram_pendenti: 'Telegram Pendants',
|
||||
reg_daily: 'Enregistrements quotidiennes',
|
||||
reg_weekly: 'Enregistrements hebdomadaires',
|
||||
reg_total: 'Total des enregistrements',
|
||||
},
|
||||
steps: {
|
||||
nuovo_imbarco: 'Réserver un autre voyage',
|
||||
vuoi_entrare_nuova_nave: 'Si vous confirmez, lorsque votre navire est prêt à naviguer, vous ferez un Nouveau Cadeau pour répéter un autre voyage.<br>' +
|
||||
'De cette façon, vous aiderez tous les navires à aller de l\'avant et à développer le mouvement.',
|
||||
vuoi_cancellare_imbarco: 'Êtes-vous sûr de vouloir annuler cet embarquement sur le navire AYNI ?',
|
||||
completed: 'Complétée',
|
||||
passi_su: '{passo} étapes sur {totpassi}',
|
||||
video_intro_1: '1. Bienvenue à l\'{sitename}',
|
||||
@@ -71,7 +78,7 @@ const msg_fr = {
|
||||
zoom_partecipa: "A participé à au moins 1 Zoom",
|
||||
zoom_no_partecipato: "Vous n'avez pas encore participé à un Zoom (il est obligatoire d'entrer)",
|
||||
zoom_long: "Vous devez participer à au moins un Zoom, mais il est recommandé de participer au mouvement de manière plus active. <br><br><strong>En participant aux Zooms, le personnel enregistrera votre présence et vous serez activé. </strong>",
|
||||
zoom_what: "Tutoriels d'installation de Zoom",
|
||||
zoom_what: "Tutoriels d'installation de Zoom Cloud Meeting",
|
||||
// sharemovement_devi_invitare_almeno_2: 'Vous n\'avez toujours pas invité 2 personnes',
|
||||
// sharemovement_hai_invitato: 'Vous avez invité au moins deux personnes',
|
||||
sharemovement_invitati_attivi_si: 'Vous avez au moins 2 personnes invitées Active',
|
||||
@@ -80,7 +87,8 @@ const msg_fr = {
|
||||
sharemovement_long: 'Partagez le mouvement {sitename} et invitez-les à participer aux zooms de bienvenue pour faire partie de cette grande famille 😄 .<br>.',
|
||||
inv_attivi_long: '',
|
||||
enter_prog_completa_requisiti: 'Remplissez toutes les conditions pour figurer sur la liste d\'embarquement.',
|
||||
enter_prog_requisiti_ok: 'Vous avez rempli les 7 conditions pour figurer sur la liste d\'embarquement.<br>Vous recevrez un message dans les prochains jours dès que votre bateau sera prêt !',
|
||||
enter_prog_requisiti_ok: 'Vous avez rempli les 7 conditions pour figurer sur la liste d\'embarquement.<br>',
|
||||
enter_prog_msg: 'Vous recevrez un message dans les prochains jours dès que votre bateau sera prêt !',
|
||||
enter_nave_9req_ok: 'FÉLICITATIONS ! Vous avez suivi les 9 étapes du guide ! Merci d\'avoir aidé {sitename} à se développer ! <br> Vous pourrez bientôt partir avec votre Voyage, en faisant votre don et en continuant vers le Rêveur.',
|
||||
enter_nave_9req_ko: 'N\'oubliez pas que vous pouvez aider le Mouvement à grandir et à s\'étendre en partageant notre voyage avec tout le monde !',
|
||||
enter_prog: 'Je vais dans la Liste des Programmation',
|
||||
@@ -175,6 +183,8 @@ const msg_fr = {
|
||||
options: 'Options',
|
||||
},
|
||||
dashboard: {
|
||||
num_tessitura: 'Numero di Tessitura:',
|
||||
attenzione: 'Attention',
|
||||
downline: 'invités',
|
||||
downnotreg: 'Invités non enregistrés',
|
||||
notreg: 'Non enregistré',
|
||||
@@ -182,7 +192,7 @@ const msg_fr = {
|
||||
numinvitati: 'Au moins 2 invités',
|
||||
telefono_wa: 'Contact sur Whatsapp',
|
||||
sendnotification: 'Envoyer la notification au destinataire par télégramme BOT',
|
||||
ricevuto_dono: 'Vous avez reçu une invitation-cadeau de {invitato} de {mittente} !',
|
||||
ricevuto_dono: '😍🎊 Vous avez reçu une invitation-cadeau de {invitato} de {mittente} !',
|
||||
nessun_invitante: 'Pas d\'invitation',
|
||||
nessun_invitato: 'Non_invité',
|
||||
legenda_title: 'Cliquez sur le nom de l\'invité pour voir l\'état de ses besoins',
|
||||
|
||||
@@ -17,7 +17,15 @@ const msg_it = {
|
||||
directory: 'Directory',
|
||||
list: 'Lista',
|
||||
},
|
||||
profile: {
|
||||
chisei: 'Chi Sei? Raccontaci di te:',
|
||||
iltuoimpegno: 'Quale è stato il tuo impegno per salvare il pianeta ad oggi?',
|
||||
come_aiutare: 'Cosa vorresti fare per aiutare il pianeta?',
|
||||
},
|
||||
otherpages: {
|
||||
sito_offline: 'Sito in Aggiornamento',
|
||||
modifprof: 'Modifica Profilo',
|
||||
biografia: 'Biografia',
|
||||
update: 'Aggiornamento in Corso...',
|
||||
error404: 'error404',
|
||||
error404def: 'error404def',
|
||||
@@ -40,7 +48,8 @@ const msg_it = {
|
||||
manage: {
|
||||
menu: 'Gestione',
|
||||
manager: 'Gestore',
|
||||
nessuno: 'Nessuno'
|
||||
nessuno: 'Nessuno',
|
||||
sendpushnotif: 'Invia Msg Push',
|
||||
},
|
||||
messages: {
|
||||
menu: 'I tuoi Messaggi'
|
||||
@@ -50,6 +59,7 @@ const msg_it = {
|
||||
write: 'scrive'
|
||||
},
|
||||
stat: {
|
||||
imbarcati: 'Imbarcati in Attesa',
|
||||
qualificati: 'Qualificati con almeno 2 invitati',
|
||||
requisiti: 'Utenti con i 7 Requisiti',
|
||||
zoom: 'Partecipato in Zoom',
|
||||
@@ -60,9 +70,16 @@ const msg_it = {
|
||||
telegram_non_attivi: 'Telegram Non Attivi',
|
||||
telegram_pendenti: 'Telegram Pendenti',
|
||||
reg_daily:'Registrazioni Giornaliere',
|
||||
reg_weekly:'Registrazioni Settimanali',
|
||||
reg_total: 'Registrazioni Totali',
|
||||
},
|
||||
steps: {
|
||||
nuovo_imbarco: 'Prenota un altro Viaggio',
|
||||
vuoi_entrare_nuova_nave: 'Se confermi, quando la tua Nave sarà pronta a salpare, farai un Nuovo Dono per ripetere un altro viaggio.<br>' +
|
||||
'In questo modo aiuterai tutte le Navi ad avanzare e a far crescere il movimento.',
|
||||
inserisci_invitante: 'Inserisci qui sotto l\'username della persona che vuoi aiutare, donandoti come suo Invitato:',
|
||||
vuoi_cancellare_imbarco: 'Sicuro di voler cancellare questo imbarco in Nave AYNI?',
|
||||
sei_stato_aggiunto: 'Sei stato aggiunto alla lista d\'imbarco! Nei prossimi giorni verrai aggiunto ad una Nuova Nave in partenza!',
|
||||
completed: 'Completati',
|
||||
passi_su: '{passo} passi su {totpassi}',
|
||||
video_intro_1: '1. Benvenuti in {sitename}',
|
||||
@@ -85,7 +102,7 @@ const msg_it = {
|
||||
zoom_partecipa: 'Partecipato ad almeno 1 Zoom',
|
||||
zoom_no_partecipato: 'Attualmente non hai ancora partecipato ad uno Zoom (è un requisito per poter entrare)',
|
||||
zoom_long: 'Si richiede di partecipare ad almeno 1 Zoom, ma è consigliato prendere parte al movimento in maniera più attiva.<br><br><strong>Partecipando agli Zoom lo Staff registrerà le presenze e verrai così abilitato.</strong>',
|
||||
zoom_what: 'Tutorial come installare Zoom',
|
||||
zoom_what: 'Tutorial come installare Zoom Cloud Meeting',
|
||||
// sharemovement_devi_invitare_almeno_2: 'Ancora non hai invitato 2 persone',
|
||||
// sharemovement_hai_invitato: 'Hai invitato almeno 2 persone',
|
||||
sharemovement_invitati_attivi_si: 'Hai almeno 2 persone invitate Attive',
|
||||
@@ -94,7 +111,9 @@ const msg_it = {
|
||||
sharemovement_long: 'Condividi il Movimento {sitename} e invitali a partecipare agli Zoom di Benvenuto per entrare a far parte di questa grande Famiglia 😄 .<br>',
|
||||
inv_attivi_long: '',
|
||||
enter_prog_completa_requisiti: 'Completa tutti i requisiti richiesti, per poter entrare nella Lista d\'imbarco.',
|
||||
enter_prog_requisiti_ok: 'Hai completato tutti i 7 requisiti per entrare nella Lista d\'Imbarco.<br>Riceverai un messaggio nei prossimi giorni appena la tua Nave sarà pronta!',
|
||||
enter_prog_requisiti_ok: 'Hai completato tutti i 7 requisiti per entrare nella Lista d\'Imbarco.<br>',
|
||||
enter_prog_msg: 'Riceverai un messaggio nei prossimi giorni su AYNI BOT, appena la tua Nave sarà pronta!',
|
||||
enter_prog_msg_2: 'Ricorda che più persone inviti e più sali di Posizione, per accedere alla prossima Nave!',
|
||||
enter_nave_9req_ok: 'COMPLIMENTI! Hai Completato TUTTI i 9 Passi della Guida! Grazie per Aiutare {sitename} ad Espandersi!<br>Potrai molto presto partire con il tuo Viaggio, facendo il tuo dono e proseguendo verso il Sognatore',
|
||||
enter_nave_9req_ko: 'Ricorda che puoi Aiutare a far Crescere ed Espandere il Movimento, Condividendo con chiunque questo nostro viaggio!',
|
||||
enter_prog: 'Entro nella Lista d\'Imbarco',
|
||||
@@ -191,6 +210,10 @@ const msg_it = {
|
||||
options: 'Opzioni',
|
||||
},
|
||||
dashboard: {
|
||||
invitante: 'Invitante',
|
||||
dono_da_effettuare: 'Dono che dovrai effettuare',
|
||||
num_tessitura: 'Numero di Tessitura:',
|
||||
attenzione: 'Attenzione',
|
||||
downline: 'Invitati',
|
||||
downnotreg: 'Invitati non Registrati',
|
||||
notreg: 'Non Registrato',
|
||||
@@ -198,13 +221,14 @@ const msg_it = {
|
||||
numinvitati: 'Almeno 2 Invitati',
|
||||
telefono_wa: 'Contatta su Whatsapp',
|
||||
sendnotification: 'Invia Notifica al Destinatario su Telegram BOT',
|
||||
ricevuto_dono: 'Hai ricevuto in Regalo un Invitato {invitato} da parte di {mittente} !',
|
||||
ricevuto_dono: '😍🎊 Hai ricevuto in Regalo un Invitato {invitato} da parte di {mittente} !',
|
||||
nessun_invitante: 'Nessun Invitante',
|
||||
nessun_invitato: 'Nessun Invitato',
|
||||
legenda_title: 'Clicca sul nome dell\'invitato per vedere lo stato dei suoi Requisiti.',
|
||||
nave_in_partenza: 'in Partenza il',
|
||||
nave_partita: 'Partita il',
|
||||
tutor: 'Tutor',
|
||||
traduttrici: 'Traduttrici',
|
||||
sonomediatore: 'Quando diventi Meditore vieni contattato da un <strong>TUTOR</strong>, con lui devi:<br><ol class="lista">' +
|
||||
'<li>Aprire la tua <strong>Gift Chat</strong> (tu come proprietario e il Tutor ' +
|
||||
'come amministratore) con questo nome: <strong>{nomenave}</strong></li>' +
|
||||
@@ -286,6 +310,7 @@ const msg_it = {
|
||||
cancellami_2: 'ULTIMO AVVISO! Vuoi uscire Definitivamente da {sitename} ?',
|
||||
account_cancellato: 'Il tuo Profilo è stato cancellato correttamente',
|
||||
regala_invitato: 'Regala Invitato',
|
||||
regala_invitante: 'Imposta Invitante',
|
||||
messaggio_invito: 'Messaggio di Invito',
|
||||
messaggio_invito_msg: 'Invia questo messaggio a tutti coloro a cui vuoi condividere questo Movimento !',
|
||||
videointro: 'Video Introduttivo',
|
||||
@@ -329,8 +354,12 @@ const msg_it = {
|
||||
date_reg: 'Data Reg.',
|
||||
requirement: 'Requisiti',
|
||||
perm: 'Permessi',
|
||||
elimina: 'Elimina',
|
||||
deleted: 'Nascosto',
|
||||
sospeso: 'Sospeso',
|
||||
username: 'Username (Pseudonimo)',
|
||||
username_short: 'Username',
|
||||
username_main: 'Username Base',
|
||||
name: 'Nome',
|
||||
surname: 'Cognome',
|
||||
username_login: 'Username o email',
|
||||
@@ -362,6 +391,7 @@ const msg_it = {
|
||||
duplicate_username: 'L\'Username è stato già utilizzato',
|
||||
aportador_not_exist: 'L\'Username di chi ti ha invitato non è presente. Contattaci.',
|
||||
aportador_regalare_not_exist: 'Inserire l\'Username della persona che si vuole regalare l\'invitato',
|
||||
invitante_username_not_exist: 'Inserire l\'Username della persona che fa da invitante',
|
||||
sameaspassword: 'Le password devono essere identiche',
|
||||
},
|
||||
tips: {
|
||||
@@ -433,7 +463,7 @@ const msg_it = {
|
||||
titlegranted: 'Permesso Notifiche Abilitato!',
|
||||
statusnot: 'Stato Notifiche',
|
||||
titledenied: 'Permesso Notifiche Disabilitato!',
|
||||
title_subscribed: 'Sottoscrizione a FreePlanet.app!',
|
||||
title_subscribed: 'Sottoscrizione a {sitename}!',
|
||||
subscribed: 'Ora potrai ricevere i messaggi e le notifiche.',
|
||||
newVersionAvailable: 'Aggiorna',
|
||||
},
|
||||
|
||||
@@ -18,6 +18,8 @@ const msg_pt = {
|
||||
list: 'Lista',
|
||||
},
|
||||
otherpages: {
|
||||
modifprof: 'Editar Perfil',
|
||||
biografia: 'Biografia',
|
||||
error404: 'error404',
|
||||
error404def: 'error404def',
|
||||
admin: {
|
||||
@@ -57,9 +59,14 @@ const msg_pt = {
|
||||
telegram_non_attivi: 'Telegrama Não Activo',
|
||||
telegram_pendenti: 'Telegram Pendants',
|
||||
reg_daily: 'Inscrições diárias',
|
||||
reg_weekly:'Inscripciones semanales',
|
||||
reg_total: 'Inscrições Total',
|
||||
},
|
||||
steps: {
|
||||
nuovo_imbarco: 'Reservar outra Viagem',
|
||||
vuoi_entrare_nuova_nave: 'Se confirmar, quando o seu navio estiver pronto para navegar, fará um Novo Presente para repetir outra viagem..<br>' +
|
||||
'Desta forma, ajudará todos os navios a avançar e a fazer crescer o movimento.',
|
||||
vuoi_cancellare_imbarco: 'Tem a certeza de que quer cancelar este embarque no navio AYNI?',
|
||||
completed: 'Completado',
|
||||
passi_su: '{passo} passos em {totpassi}',
|
||||
video_intro_1: '1. Bem-vindo ao {sitename}',
|
||||
@@ -81,7 +88,7 @@ const msg_pt = {
|
||||
zoom_partecipa: 'Participou em pelo menos 1 Zoom',
|
||||
zoom_no_partecipato: 'Você ainda não participou de um Zoom (é um requisito para entrar)',
|
||||
zoom_long: 'É necessário participar em pelo menos 1 Zoom, mas é recomendável participar mais activamente no movimento.<br><br><strong> Ao participar nos Zooms o Staff registará a assistência e você estará habilitado.</strong>',
|
||||
zoom_what: 'Tutorial de como instalar o Zoom',
|
||||
zoom_what: 'Tutorial de como instalar o Zoom Cloud Meeting',
|
||||
// sharemovement_devi_invitare_almeno_2: 'Você ainda não convidou 2 pessoas',
|
||||
// sharemovement_hai_invitato: 'Você convidou pelo menos 2 pessoas',
|
||||
sharemovement_invitati_attivi_si: 'Você tem pelo menos 2 pessoas convidadas Ativo',
|
||||
@@ -90,7 +97,8 @@ const msg_pt = {
|
||||
sharemovement_long: 'Partilhe o Movimento {sitename} e convide-os a participar nos Zooms de Boas-vindas para fazer parte desta grande Família 😄 .<br>',
|
||||
inv_attivi_long: '',
|
||||
enter_prog_completa_requisiti: 'Preencher todos os requisitos para entrar na lista de embarque.',
|
||||
enter_prog_requisiti_ok: 'O usuário completou todos os 7 requisitos para entrar na lista de embarque.<br>Você receberá uma mensagem nos próximos dias, assim que o seu navio estiver pronto!',
|
||||
enter_prog_requisiti_ok: 'O usuário completou todos os 7 requisitos para entrar na lista de embarque.<br>',
|
||||
enter_prog_msg: 'Você receberá uma mensagem nos próximos dias, assim que o seu navio estiver pronto!',
|
||||
enter_nave_9req_ok: 'PARABÉNS! Você completou TODOS os 9 passos do Guia! Obrigado por ajudar a {sitename} a Expandir! <br>Você poderá partir muito em breve com a sua Jornada, fazendo o seu presente e continuando para o Sonhador.',
|
||||
enter_nave_9req_ko: 'Lembre-se que você pode ajudar o Movimento a crescer e expandir, compartilhando nossa jornada com todos!',
|
||||
enter_prog: 'Vou em Lista Programação',
|
||||
@@ -186,6 +194,8 @@ const msg_pt = {
|
||||
options: 'Opzioni',
|
||||
},
|
||||
dashboard: {
|
||||
num_tessitura: 'Numero di Tessitura:',
|
||||
attenzione: 'Atenção',
|
||||
downline: 'Convidados',
|
||||
downnotreg: 'Convidados não registados',
|
||||
notreg: 'Não Registado',
|
||||
@@ -193,7 +203,7 @@ const msg_pt = {
|
||||
numinvitati: 'Pelo menos 2 convidados',
|
||||
telefono_wa: 'Contato no Whatsapp',
|
||||
sendnotification: 'Enviar Notificação ao Destinatário no Telegrama BOT',
|
||||
ricevuto_dono: 'Você recebeu um convite de presente {invitato} de {mittente} !',
|
||||
ricevuto_dono: '😍🎊 Você recebeu um convite de presente {invitato} de {mittente} !',
|
||||
nessun_invitante: 'Sem Convite',
|
||||
nessun_invitato: 'Sem Convidados',
|
||||
legenda_title: 'Clique no nome do convidado para ver o status de seus Requisitos',
|
||||
|
||||
16
src/statics/lang/si.js
Normal file → Executable file
16
src/statics/lang/si.js
Normal file → Executable file
@@ -18,6 +18,8 @@ const msg_si = {
|
||||
list: 'Lista',
|
||||
},
|
||||
otherpages: {
|
||||
modifprof: 'Uredi pProfil',
|
||||
biografia: 'Biografia',
|
||||
update: 'Posodobitev v teku...',
|
||||
error404: 'error404',
|
||||
error404def: 'error404def',
|
||||
@@ -60,9 +62,14 @@ const msg_si = {
|
||||
telegram_non_attivi: 'Telegram ni aktiven',
|
||||
telegram_pendenti: 'Čakajoči Telegram',
|
||||
reg_daily: 'Dnevne registracije',
|
||||
reg_weekly:'Tedenske prijave',
|
||||
reg_total: 'Skupne registracije',
|
||||
},
|
||||
steps: {
|
||||
nuovo_imbarco: 'Rezerviraj še eno potovanje',
|
||||
vuoi_entrare_nuova_nave: 'Če potrdiš, ko bo tvoja Ladja pripravljena za izplutje, boš Ponovno Doniral in ponovil novo potovanje.<br>' +
|
||||
'Na ta način boste pomagali vsem ladjam pri napredovanju in rasti gibanja',
|
||||
vuoi_cancellare_imbarco: 'Ali ste prepričani, da želite izbrisati vaš vstop v Ladjo Ayni?',
|
||||
completed: 'zaključen',
|
||||
passi_su: '{passo} od {totpassi} koraki',
|
||||
video_intro_1: '1. Dobrodošli v {sitename}',
|
||||
@@ -86,7 +93,7 @@ const msg_si = {
|
||||
zoom_no_partecipato: 'Še niste sodelovali pri zoomu (zahteva, da lahko vstopite)',
|
||||
zoom_long: 'Potrebno je sodelovati pri vsaj enem zoomu, vendar je priporočljivo, da se v gibanje vključite bolj aktivno. <br> <br>\n' +
|
||||
'<strong> Osebje bo s sodelovanjem v zoomih beležilo udeležbe in vam bo omogočeno. </strong>',
|
||||
zoom_what: 'Navodila, kako namestiti Zoom',
|
||||
zoom_what: 'Navodila, kako namestiti Zoom Cloud Meeting',
|
||||
// sharemovement_devi_invitare_almeno_2: 'Nisi še vpisal 2-eh oseb',
|
||||
// sharemovement_hai_invitato: 'Si vpisaj vsaj 2 osebi',
|
||||
sharemovement_invitati_attivi_si: 'Imate vsaj 2 aktivna povabljena',
|
||||
@@ -95,7 +102,8 @@ const msg_si = {
|
||||
sharemovement_long: 'Delite gibanje {sitename} in jih povabite, da sodelujejo v zoomih dobrodošlice, da postanejo del te velike družine 😄 .<br>',
|
||||
inv_attivi_long: '',
|
||||
enter_prog_completa_requisiti: 'Izpolnite vse potrebne zahteve, da lahko vstopite na seznam za vstop.',
|
||||
enter_prog_requisiti_ok: 'Izpolnili ste vseh 7 zahtev za vpis na vstopni seznam. <br> V naslednjih dneh boste takoj, ko bo vaša ladja pripravljena, prejeli sporočilo!',
|
||||
enter_prog_requisiti_ok: 'Izpolnili ste vseh 7 zahtev za vpis na vstopni seznam. <br>',
|
||||
enter_prog_msg: 'V naslednjih dneh boste takoj, ko bo vaša ladja pripravljena, prejeli sporočilo!',
|
||||
enter_nave_9req_ok: 'ČESTITKE! Izpolnili ste VSE 9 korakov! Hvala, ker ste pomagali {sitename} pri razširitvi! <br> Zelo kmalu boste lahko odšli na potovanje, si priskrbeli darilo in nadaljevali proti sanjaču ',
|
||||
enter_nave_9req_ko: 'Ne pozabite, da lahko pomagate rasti in razširiti gibanje, tako da svoje potovanje delite z drugimi!',
|
||||
enter_prog: 'Vpišem se na Seznam vkrcavanja',
|
||||
@@ -183,6 +191,8 @@ const msg_si = {
|
||||
loggati: 'Uporabnik ni prijavljen'
|
||||
},
|
||||
dashboard: {
|
||||
num_tessitura: 'Numero di Tessitura:',
|
||||
attenzione: 'Pozornosti',
|
||||
downline: 'povabljen',
|
||||
downnotreg: 'Neregistrirani gostje',
|
||||
notreg: 'Ni registrirano',
|
||||
@@ -190,7 +200,7 @@ const msg_si = {
|
||||
numinvitati: 'Z vsaj 2-emi povabljenici',
|
||||
telefono_wa: 'Pišite na Whatsapp',
|
||||
sendnotification: 'Obvestilo pošljite prejemniku na Telegram BOT',
|
||||
ricevuto_dono: 'Prejeli ste darilo {invitato} kot darilo od {mittente} !',
|
||||
ricevuto_dono: '😍🎊 Prejeli ste darilo {invitato} kot darilo od {mittente} !',
|
||||
nessun_invitante: 'Nobenega povabljenega',
|
||||
nessun_invitato: 'Ni gostov',
|
||||
legenda_title: 'Kliknite na povabljeno ime, da si ogledate stanje njihovih zahtev.',
|
||||
|
||||
@@ -80,7 +80,7 @@ const state: IGlobalState = {
|
||||
gallery: [],
|
||||
mailinglist: [],
|
||||
mypage: [],
|
||||
calzoom: [],
|
||||
calzoom: []
|
||||
}
|
||||
|
||||
async function getConfig(id) {
|
||||
@@ -142,17 +142,17 @@ namespace Getters {
|
||||
|
||||
}, 'getPage')
|
||||
|
||||
const getmenu = b.read((state) => {
|
||||
const getmenu = b.read((mystate: IGlobalState) => {
|
||||
// console.log('getmenu', cfgrouter.getmenu())
|
||||
|
||||
state.menulinks = {
|
||||
mystate.menulinks = {
|
||||
Dashboard: {
|
||||
routes: cfgrouter.getmenu(),
|
||||
show: true
|
||||
}
|
||||
}
|
||||
|
||||
return state.menulinks
|
||||
return mystate.menulinks
|
||||
|
||||
// console.log('state.menulinks', state.menulinks)
|
||||
|
||||
@@ -309,7 +309,7 @@ namespace Getters {
|
||||
|
||||
get isNewVersionAvailable() {
|
||||
// console.log('state.cfgServer', state.cfgServer)
|
||||
const serversrec = state.cfgServer.find((x) => x.chiave === tools.SERVKEY_VERS)
|
||||
const serversrec = state.cfgServer.find((x) => (x.chiave === tools.SERVKEY_VERS) && (x.idapp === process.env.APP_ID))
|
||||
// console.log('Record ', serversrec)
|
||||
if (serversrec) {
|
||||
console.log('Vers Server ', serversrec.valore, 'Vers locale:', process.env.APP_VERSION)
|
||||
@@ -467,8 +467,6 @@ namespace Actions {
|
||||
return
|
||||
}
|
||||
|
||||
console.log('createPushSubscription: INIT')
|
||||
|
||||
if (!('PushManager' in window)) {
|
||||
return
|
||||
}
|
||||
@@ -484,6 +482,8 @@ namespace Actions {
|
||||
return swreg.pushManager.getSubscription()
|
||||
})
|
||||
.then((subscription) => {
|
||||
console.log('subscription = ', subscription)
|
||||
|
||||
mystate.wasAlreadySubscribed = !(subscription === null)
|
||||
|
||||
if (mystate.wasAlreadySubscribed) {
|
||||
@@ -511,11 +511,10 @@ namespace Actions {
|
||||
// Calling the Server to Save in the MongoDB the Subscriber
|
||||
function saveNewSubscriptionToServer(context, newSub) {
|
||||
|
||||
console.log('saveNewSubscriptionToServer')
|
||||
// If already subscribed, exit
|
||||
if (true) {
|
||||
return
|
||||
}
|
||||
// if (true) {
|
||||
// return
|
||||
// }
|
||||
|
||||
if (!newSub) {
|
||||
return
|
||||
@@ -528,12 +527,19 @@ namespace Actions {
|
||||
// console.log('saveSubscriptionToServer: ', newSub)
|
||||
// console.log('context', context)
|
||||
|
||||
console.log('saveNewSubscriptionToServer')
|
||||
|
||||
let options = null
|
||||
let notreg = false
|
||||
|
||||
if (UserStore.getters.isTokenInvalid) {
|
||||
notreg = true
|
||||
}
|
||||
|
||||
// If is not already stored in DB, then show the message to the user.
|
||||
if (!state.wasAlreadySubscribed) {
|
||||
if (!state.wasAlreadySubscribed || notreg) {
|
||||
options = {
|
||||
title: translate('notification.title_subscribed'),
|
||||
title: tools.translate('notification.title_subscribed', [{strin: 'sitename', strout: translate('ws.sitename')}]),
|
||||
content: translate('notification.subscribed'),
|
||||
openUrl: '/'
|
||||
}
|
||||
@@ -686,6 +692,19 @@ namespace Actions {
|
||||
|
||||
}
|
||||
|
||||
async function sendPushNotif(context, { params }) {
|
||||
|
||||
return await Api.SendReq('/push/send', 'POST', { params })
|
||||
.then((res) => {
|
||||
// console.table(res)
|
||||
return res.data
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log('error sendPushNotif', error)
|
||||
return null
|
||||
})
|
||||
}
|
||||
|
||||
async function loadTable(context, params: IParamsQuery) {
|
||||
// console.log('loadTable', params)
|
||||
|
||||
@@ -732,6 +751,21 @@ namespace Actions {
|
||||
})
|
||||
}
|
||||
|
||||
async function callFunz(context, { mydata }) {
|
||||
// console.log('saveFieldValue', mydata)
|
||||
|
||||
return await Api.SendReq(`/callfunz`, 'PATCH', { data: mydata })
|
||||
.then((res) => {
|
||||
if (res) {
|
||||
return (res.data.code === serv_constants.RIS_CODE_OK)
|
||||
} else
|
||||
return false
|
||||
})
|
||||
.catch((error) => {
|
||||
return false
|
||||
})
|
||||
}
|
||||
|
||||
async function DeleteRec(context, { table, id }) {
|
||||
console.log('DeleteRec', table, id)
|
||||
|
||||
@@ -1034,12 +1068,32 @@ namespace Actions {
|
||||
infooter: false
|
||||
}
|
||||
|
||||
const sito_offline = {
|
||||
active: true,
|
||||
order: 20,
|
||||
path: '/sito_offline',
|
||||
materialIcon: 'home',
|
||||
name: 'otherpages.sito_offline',
|
||||
component: () => import('@/rootgen/sito_offline/sito_offline.vue'),
|
||||
inmenu: true,
|
||||
infooter: true
|
||||
}
|
||||
|
||||
if (!tools.sito_online(false)) {
|
||||
static_data.routes = [sito_offline, last]
|
||||
} else {
|
||||
static_data.routes = [...static_data.baseroutes, ...arrpagesroute, last]
|
||||
}
|
||||
|
||||
// Sort array
|
||||
static_data.routes = static_data.routes.sort((a, b) => a.order - b.order)
|
||||
|
||||
if (tools.sito_online(false)) {
|
||||
router.addRoutes([...arrpagesroute, last])
|
||||
} else {
|
||||
router.addRoutes([sito_offline, last])
|
||||
this.$router.replace('/sito_offline')
|
||||
}
|
||||
}
|
||||
|
||||
async function sendFile(context, formdata) {
|
||||
@@ -1063,6 +1117,8 @@ namespace Actions {
|
||||
saveCfgServerKey: b.dispatch(saveCfgServerKey),
|
||||
checkUpdates: b.dispatch(checkUpdates),
|
||||
saveFieldValue: b.dispatch(saveFieldValue),
|
||||
callFunz: b.dispatch(callFunz),
|
||||
sendPushNotif: b.dispatch(sendPushNotif),
|
||||
loadTable: b.dispatch(loadTable),
|
||||
saveTable: b.dispatch(saveTable),
|
||||
DeleteRec: b.dispatch(DeleteRec),
|
||||
|
||||
@@ -63,6 +63,7 @@ namespace Actions {
|
||||
state.datastat = res.data.datastat
|
||||
state.datastat.arr_nations = JSON.parse(state.datastat.arr_nations)
|
||||
state.datastat.reg_daily = JSON.parse(state.datastat.reg_daily)
|
||||
state.datastat.reg_weekly = JSON.parse(state.datastat.reg_weekly)
|
||||
state.datastat.checkuser = JSON.parse(state.datastat.checkuser)
|
||||
|
||||
return state.datastat
|
||||
|
||||
@@ -79,6 +79,7 @@ const state: IUserState = {
|
||||
isAdmin: false,
|
||||
isManager: false,
|
||||
isTutor: false,
|
||||
isTraduttrici: false,
|
||||
usersList: [],
|
||||
countusers: 0,
|
||||
lastparamquery: {}
|
||||
@@ -93,7 +94,8 @@ namespace Getters {
|
||||
|
||||
const isUserInvalid = b.read((mystate) => {
|
||||
try {
|
||||
const ris = (mystate.my._id === undefined) || (mystate.my._id.trim() === '') || (mystate.my.tokens[0] === undefined)
|
||||
// const ris = (mystate.my._id === undefined) || (mystate.my._id.trim() === '') || (mystate.my.tokens[0] === undefined)
|
||||
const ris = (mystate.my._id === undefined) || (mystate.my._id.trim() === '')
|
||||
// console.log('state._id', state._id, 'ris', ris)
|
||||
return ris
|
||||
} catch (e) {
|
||||
@@ -101,6 +103,15 @@ namespace Getters {
|
||||
}
|
||||
}, 'isUserInvalid')
|
||||
|
||||
const isTokenInvalid = b.read((mystate) => {
|
||||
try {
|
||||
const ris = (mystate.my.tokens.length <= 0)
|
||||
return ris
|
||||
} catch (e) {
|
||||
return true
|
||||
}
|
||||
}, 'isTokenInvalid')
|
||||
|
||||
const lang = b.read((mystate) => {
|
||||
if (state.lang !== '') {
|
||||
return state.lang
|
||||
@@ -225,6 +236,9 @@ namespace Getters {
|
||||
get isUserInvalid() {
|
||||
return isUserInvalid()
|
||||
},
|
||||
get isTokenInvalid() {
|
||||
return isTokenInvalid()
|
||||
},
|
||||
get lang() {
|
||||
return lang()
|
||||
},
|
||||
@@ -291,6 +305,7 @@ namespace Mutations {
|
||||
mystate.isManager = tools.isBitActive(mystate.my.perm, shared_consts.Permissions.Manager.value)
|
||||
mystate.isTutor = tools.isBitActive(mystate.my.perm, shared_consts.Permissions.Tutor.value)
|
||||
mystate.isTeacher = tools.isBitActive(mystate.my.perm, shared_consts.Permissions.Teacher.value)
|
||||
mystate.isTraduttrici = tools.isBitActive(mystate.my.perm, shared_consts.Permissions.Traduttrici.value)
|
||||
|
||||
// console.log('authUser', 'state.isAdmin', mystate.isAdmin)
|
||||
// console.table(mystate)
|
||||
@@ -492,7 +507,7 @@ namespace Actions {
|
||||
lang: state.lang
|
||||
}
|
||||
|
||||
return await Api.SendReq(`/setlang`, 'PATCH', { data: mydata })
|
||||
return Api.SendReq(`/setlang`, 'PATCH', { data: mydata })
|
||||
.then((res) => {
|
||||
if (res) {
|
||||
return (res.data.code === serv_constants.RIS_CODE_OK)
|
||||
@@ -706,7 +721,7 @@ namespace Actions {
|
||||
if ('serviceWorker' in navigator) {
|
||||
sub = await navigator.serviceWorker.ready
|
||||
.then((swreg) => {
|
||||
console.log('swreg')
|
||||
// console.log('swreg')
|
||||
sub = swreg.pushManager.getSubscription()
|
||||
return sub
|
||||
})
|
||||
@@ -721,7 +736,7 @@ namespace Actions {
|
||||
}
|
||||
|
||||
const options = {
|
||||
title: translate('notification.title_subscribed'),
|
||||
title: tools.translate('notification.title_subscribed', [{strin: 'sitename', strout: translate('ws.sitename')}]),
|
||||
content: translate('notification.subscribed'),
|
||||
openUrl: '/'
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { tools } from './tools'
|
||||
import { IColGridTable } from '../../model'
|
||||
import { lists } from './lists'
|
||||
import { tools } from '@src/store/Modules/tools'
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import { GlobalStore, UserStore } from '@store'
|
||||
|
||||
const DeleteRec = {
|
||||
name: 'deleterec',
|
||||
label_trans: 'newsletter.reset',
|
||||
label_trans: 'reg.elimina',
|
||||
align: 'right',
|
||||
field: tools.NOFIELD,
|
||||
sortable: false,
|
||||
@@ -163,20 +163,20 @@ const colnavi = [
|
||||
AddCol({ name: '_id', label_trans: 'others.value' }),
|
||||
AddCol({ name: 'riga', label_trans: 'reg.riga' }),
|
||||
AddCol({ name: 'col', label_trans: 'reg.col' }),
|
||||
AddCol({ name: 'indprimario', label_trans: 'indprimario' }),
|
||||
AddCol({ name: 'ind_order', label_trans: 'ind_order' }),
|
||||
AddCol({ name: 'parent_id', label_trans: 'parent_id' }),
|
||||
AddCol({ name: 'created', label_trans: 'cal.data', fieldtype: tools.FieldType.date }),
|
||||
// AddCol({ name: 'date_start', label_trans: 'date_start', fieldtype: tools.FieldType.date }),
|
||||
// AddCol({ name: 'date_gift_chat_open', label_trans: 'date_gift_chat_open', fieldtype: tools.FieldType.date }),
|
||||
// AddCol({ name: 'link_chat', label_trans: 'reg.link_chat' }),
|
||||
AddCol({ name: '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: 'made_gift', label_trans: 'reg.made_gift', 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: 'date_made_gift', label_trans: 'date_made_gift', fieldtype: tools.FieldType.date }),
|
||||
AddCol({ name: 'received_gift', label_trans: 'received_gift', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'date_received_gift', label_trans: 'date_received_gift', fieldtype: tools.FieldType.date }),
|
||||
// AddCol({ name: 'received_gift', label_trans: 'received_gift', fieldtype: tools.FieldType.boolean }),
|
||||
// AddCol({ name: 'date_received_gift', label_trans: 'date_received_gift', fieldtype: tools.FieldType.date }),
|
||||
AddCol({ name: 'num_tess', label_trans: 'num_tess', fieldtype: tools.FieldType.number }),
|
||||
// AddCol({ name: 'note_bot', label_trans: 'note_bot', fieldtype: tools.FieldType.string }),
|
||||
AddCol({ name: 'note', label_trans: 'note', fieldtype: tools.FieldType.string }),
|
||||
// AddCol({ name: 'note_interne', label_trans: 'note_interne', fieldtype: tools.FieldType.string }),
|
||||
// AddCol({ name: 'tutor', label_trans: 'tutor', fieldtype: tools.FieldType.string }),
|
||||
AddCol(DeleteRec),
|
||||
@@ -199,12 +199,14 @@ const colnavepersistente = [
|
||||
|
||||
const collistaingresso = [
|
||||
AddCol({ name: '_id', label_trans: 'others.value' }),
|
||||
AddCol({ name: 'indprimario', label_trans: 'indprimario' }),
|
||||
AddCol({ name: 'ind_order', label_trans: 'ind_order' }),
|
||||
AddCol({ name: 'username', label_trans: 'reg.username_short' }),
|
||||
AddCol({ name: 'invitante_username', label_trans: 'reg.aportador_solidario' }),
|
||||
AddCol({ name: 'date_added', label_trans: 'date_added', fieldtype: tools.FieldType.date }),
|
||||
AddCol({ name: 'added', label_trans: 'added', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'added', label_trans: 'Aggiunto', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'num_tess', label_trans: 'num_tess', fieldtype: tools.FieldType.number }),
|
||||
AddCol({ name: 'deleted', label_trans: 'deleted', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'note', label_trans: 'reg.note', fieldtype: tools.FieldType.string }),
|
||||
AddCol({ name: 'deleted', label_trans: 'reg.deleted', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol(DuplicateRec),
|
||||
AddCol(DeleteRec)
|
||||
]
|
||||
@@ -398,7 +400,7 @@ export const fieldsTable = {
|
||||
|
||||
getTableJoinByName(table) {
|
||||
if (table === 'permissions')
|
||||
return [shared_consts.Permissions.Admin, shared_consts.Permissions.Manager, shared_consts.Permissions.Teacher, shared_consts.Permissions.Tutor]
|
||||
return [shared_consts.Permissions.Admin, shared_consts.Permissions.Manager, shared_consts.Permissions.Teacher, shared_consts.Permissions.Tutor, shared_consts.Permissions.Traduttrici]
|
||||
else if (table === 'accepted')
|
||||
return [shared_consts.Accepted.CHECK_READ_GUIDELINES, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI]
|
||||
else if (table === 'fieldstype')
|
||||
@@ -446,6 +448,9 @@ export const fieldsTable = {
|
||||
AddCol({ name: 'typeconf', label_trans: 'zoom.typeconf' }),
|
||||
AddCol({ name: 'date_start', label_trans: 'event.dateTimeStart', fieldtype: tools.FieldType.date }),
|
||||
AddCol({ name: 'date_end', label_trans: 'event.dateTimeEnd' , fieldtype: tools.FieldType.date }),
|
||||
AddCol({ name: 'benvenuto', label_trans: 'event.benvenuto' , fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'icon', label_trans: 'event.icon' , fieldtype: tools.FieldType.string }),
|
||||
AddCol({ name: 'color', label_trans: 'event.color' , fieldtype: tools.FieldType.string }),
|
||||
AddCol({ name: 'id_conf_zoom', label_trans: 'zoom.id_conf_zooom' }),
|
||||
AddCol({ name: 'note', label_trans: 'zoom.note' }),
|
||||
AddCol(DeleteRec),
|
||||
@@ -453,7 +458,10 @@ export const fieldsTable = {
|
||||
],
|
||||
|
||||
colTableUsersBase: [
|
||||
AddCol({ name: 'index', label_trans: 'reg.index' }),
|
||||
AddCol({ name: 'ind_order', label_trans: 'reg.ind_order' }),
|
||||
AddCol({ name: 'sospeso', label_trans: 'reg.sospeso', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'deleted', label_trans: 'reg.deleted', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'date_reg', label_trans: 'reg.date_reg', fieldtype: tools.FieldType.date }),
|
||||
AddCol({ name: 'username', label_trans: 'reg.username_short' }),
|
||||
AddCol({ name: 'name', label_trans: 'reg.name' }),
|
||||
@@ -470,37 +478,41 @@ export const fieldsTable = {
|
||||
// IColGridTable
|
||||
colTableUsers: [
|
||||
AddCol({ name: '_id', label_trans: 'reg.id' }),
|
||||
AddCol({ name: 'index', label_trans: 'reg.index', fieldtype: tools.FieldType.number }),
|
||||
AddCol({ name: 'ind_order', label_trans: 'reg.ind_order' }),
|
||||
AddCol({ name: 'date_reg', label_trans: 'reg.date_reg', fieldtype: tools.FieldType.date }),
|
||||
AddCol({ name: 'date_temp_reg', label_trans: 'reg.date_temp_reg', fieldtype: tools.FieldType.date }),
|
||||
AddCol({ name: 'old_order', label_trans: 'old_order' }),
|
||||
AddCol({ name: 'sospeso', label_trans: 'reg.sospeso', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'deleted', label_trans: 'reg.deleted', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'username', label_trans: 'reg.username_short' }),
|
||||
AddCol({ name: 'username_main', label_trans: 'reg.username_main' }),
|
||||
AddCol({ name: 'name', label_trans: 'reg.name' }),
|
||||
AddCol({ name: 'surname', label_trans: 'reg.surname' }),
|
||||
AddCol({ name: 'email', label_trans: 'reg.email' }),
|
||||
AddCol({ name: 'made_gift', label_trans: 'reg.made_gift', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'note', label_trans: 'reg.note' }),
|
||||
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', label_trans: 'reg.aportador_solidario' }),
|
||||
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.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.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({ 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: 'note', label_trans: 'reg.note' }),
|
||||
// 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', 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({ name: 'profile.vuole_ritessersi', field: 'profile', subfield: 'vuole_ritessersi', label_trans: 'reg.vuole_ritessersi', 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: 'lang', field: 'lang', label_trans: 'reg.lang' }),
|
||||
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.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.email_paypal', field: 'profile', subfield: 'email_paypal', label_trans: 'reg.email_paypal' }),
|
||||
AddCol({ name: 'profile.country_pay', field: 'profile', subfield: 'country_pay', label_trans: 'reg.country_pay' }),
|
||||
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({ 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.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: 'date_reg', label_trans: 'reg.date_reg', fieldtype: tools.FieldType.date }),
|
||||
AddCol({ name: 'lasttimeonline', label_trans: 'reg.lasttimeonline', fieldtype: tools.FieldType.date }),
|
||||
// AddCol({ name: 'idapp', label_trans: 'reg.idapp', fieldtype: tools.FieldType.string }),
|
||||
AddCol({ name: 'perm', label_trans: 'reg.perm', fieldtype: tools.FieldType.binary, jointable: 'permissions' }),
|
||||
@@ -510,9 +522,10 @@ export const fieldsTable = {
|
||||
],
|
||||
|
||||
colTableUsersSIP: [
|
||||
AddCol({ name: '_id', label_trans: 'reg.id' }),
|
||||
// AddCol({ name: '_id', label_trans: 'reg.id' }),
|
||||
AddCol({ name: 'ind_order', label_trans: 'reg.ind_order' }),
|
||||
AddCol({ name: 'date_reg', label_trans: 'reg.date_reg', fieldtype: tools.FieldType.date }),
|
||||
AddCol({ name: 'sospeso', label_trans: 'reg.sospeso', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'deleted', label_trans: 'reg.deleted', fieldtype: tools.FieldType.boolean }),
|
||||
AddCol({ name: 'username', label_trans: 'reg.username_short' }),
|
||||
AddCol({ name: 'name', label_trans: 'reg.name' }),
|
||||
AddCol({ name: 'surname', label_trans: 'reg.surname' }),
|
||||
@@ -534,8 +547,12 @@ export const fieldsTable = {
|
||||
AddCol({ name: 'profile.teleg_id_old', 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.iltuoimpegno', 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: 'date_reg', label_trans: 'reg.date_reg', fieldtype: tools.FieldType.date }),
|
||||
AddCol({ name: 'lasttimeonline', label_trans: 'reg.lasttimeonline', fieldtype: tools.FieldType.date }),
|
||||
// AddCol({ name: 'idapp', label_trans: 'reg.idapp', fieldtype: tools.FieldType.string }),
|
||||
AddCol({ name: 'perm', label_trans: 'reg.perm', fieldtype: tools.FieldType.binary, jointable: 'permissions' }),
|
||||
@@ -625,7 +642,7 @@ export const fieldsTable = {
|
||||
label: 'Lista Ingresso',
|
||||
columns: collistaingresso,
|
||||
colkey: '_id',
|
||||
collabel: 'indprimario',
|
||||
collabel: 'ind_order',
|
||||
},
|
||||
{
|
||||
value: 'disciplines',
|
||||
|
||||
@@ -21,10 +21,14 @@ export const lists = {
|
||||
DELETE_EXTRALIST: 330,
|
||||
DELETE_USERLIST: 335,
|
||||
REGALA_INVITATO: 340,
|
||||
REGALA_INVITANTE: 342,
|
||||
SOSTITUISCI: 345,
|
||||
INVIA_MSG_A_DONATORI: 350,
|
||||
INVIA_MSG_A_SINGOLO: 355,
|
||||
DONO_INVIATO: 360,
|
||||
DONO_RICEVUTO: 370,
|
||||
AGGIUNGI_NUOVO_IMBARCO: 380,
|
||||
CANCELLA_IMBARCO: 385,
|
||||
|
||||
CAN_EDIT_TABLE: 400,
|
||||
SHOW_PREV_REC: 401
|
||||
|
||||
@@ -40,6 +40,7 @@ const { height, width } = dom
|
||||
|
||||
import Cookies from 'js-cookie'
|
||||
import { forEachComment } from 'tslint'
|
||||
import messages from '@src/statics/i18n'
|
||||
|
||||
const TokenKey = 'Admin-Token'
|
||||
|
||||
@@ -51,6 +52,7 @@ export interface INotify {
|
||||
|
||||
export const tools = {
|
||||
CAN_EDIT: 'q-ce',
|
||||
TABBED_DASHBOARD: 't-db',
|
||||
|
||||
getprefCountries: ['it', 'si', 'us', 'es', 'pt', 'uk', 'fr', 'de', 'ch', 'br', 'sk'],
|
||||
|
||||
@@ -58,6 +60,9 @@ export const tools = {
|
||||
|
||||
APORTADOR_SOLIDARIO: 'apsol',
|
||||
|
||||
IDAPP_AYNI: '7',
|
||||
IDAPP_SIP: '9',
|
||||
|
||||
TipoMsg: {
|
||||
SEND_LINK_CHAT_DONATORI: 1,
|
||||
SEND_MSG: 2,
|
||||
@@ -83,6 +88,7 @@ export const tools = {
|
||||
|
||||
TABUSER: 'users',
|
||||
TABNAVI: 'navi',
|
||||
TABLISTAINGRESSO: 'listaingressos',
|
||||
TABEVENTS: 'myevents',
|
||||
TABEXTRALIST: 'extralist',
|
||||
TABNEWSLETTER: 'newstosent',
|
||||
@@ -1157,7 +1163,7 @@ export const tools = {
|
||||
|
||||
getItemLS(item) {
|
||||
let ris = localStorage.getItem(item)
|
||||
if ((ris == null) || (ris === '') || (ris === 'null')) {
|
||||
if ((ris == null) || (ris === '') || (ris === 'null') || !ris) {
|
||||
ris = ''
|
||||
}
|
||||
|
||||
@@ -1408,8 +1414,8 @@ export const tools = {
|
||||
|
||||
visumenu(elem) { // : IListRoutes
|
||||
let visu = ((elem.onlyAdmin && UserStore.state.isAdmin) || (elem.onlyManager && UserStore.state.isManager)
|
||||
|| (elem.onlyTutor && UserStore.state.isTutor)
|
||||
|| ((!elem.onlyAdmin) && (!elem.onlyManager) && (!elem.onlyTutor))) && elem.active
|
||||
|| (elem.onlyTutor && UserStore.state.isTutor) || (elem.onlyTraduttrici && UserStore.state.isTraduttrici)
|
||||
|| ((!elem.onlyAdmin) && (!elem.onlyManager) && (!elem.onlyTutor) && (!elem.onlyTraduttrici))) && elem.active
|
||||
|
||||
if (!tools.isLoggedToSystem()) {
|
||||
if (elem.onlyif_logged)
|
||||
@@ -1466,21 +1472,116 @@ export const tools = {
|
||||
})
|
||||
} else if (func === lists.MenuAction.REGALA_INVITATO) {
|
||||
// console.log('param1', par.param1, 'id', par.param1._id)
|
||||
const mydatatosave = {
|
||||
let mydatatosave = {
|
||||
id: null,
|
||||
username: '',
|
||||
table: '',
|
||||
fieldsvalue: {},
|
||||
notifBot: {}
|
||||
};
|
||||
|
||||
if (!!par.param1.invitante_username) {
|
||||
mydatatosave = {
|
||||
id: par.param1._id,
|
||||
username: par.param1.username,
|
||||
table: tools.TABLISTAINGRESSO,
|
||||
fieldsvalue: { invitante_username: par.param2.aportador_solidario },
|
||||
notifBot: null
|
||||
}
|
||||
} else {
|
||||
mydatatosave = {
|
||||
id: par.param1._id,
|
||||
username: '',
|
||||
table: tools.TABUSER,
|
||||
fieldsvalue: { aportador_solidario: par.param2 },
|
||||
fieldsvalue: { aportador_solidario: par.param2.aportador_solidario },
|
||||
notifBot: null
|
||||
}
|
||||
}
|
||||
|
||||
console.log('** par.param1', par.param1)
|
||||
console.log('** id', par.param1._id)
|
||||
|
||||
if (par.param3) {
|
||||
mydatatosave.notifBot = { un: par.param2.aportador_solidario, txt: par.param3 }
|
||||
}
|
||||
|
||||
GlobalStore.actions.saveFieldValue(mydatatosave).then((ris) => {
|
||||
console.log('ris saveFieldValue', ris)
|
||||
if (ris) {
|
||||
tools.showPositiveNotif(myself.$q, myself.$t('reg.invitato_regalato') + ' "' + par.param1.name + ' ' + par.param1.surname + '"')
|
||||
myself.update_username()
|
||||
} else
|
||||
tools.showNegativeNotif(myself.$q, myself.$t('db.recfailed'))
|
||||
})
|
||||
} else if (func === lists.MenuAction.REGALA_INVITANTE) {
|
||||
// console.log('param1', par.param1, 'id', par.param1._id)
|
||||
const mydatatosave = {
|
||||
id: par.param1,
|
||||
table: tools.TABLISTAINGRESSO,
|
||||
fieldsvalue: { invitante_username: par.param2.invitante_username, ind_order_ingr: par.param2.ind_order_ingr },
|
||||
notifBot: null
|
||||
}
|
||||
|
||||
if (par.param3) {
|
||||
mydatatosave.notifBot = { un: par.param2, txt: par.param3 }
|
||||
mydatatosave.notifBot = { un: par.param2.invitante_username, txt: par.param3 }
|
||||
}
|
||||
|
||||
GlobalStore.actions.saveFieldValue(mydatatosave).then((ris) => {
|
||||
console.log('ris saveFieldValue', ris)
|
||||
if (ris) {
|
||||
tools.showPositiveNotif(myself.$q, myself.$t('reg.invitato_regalato') + ' "' + par.param1.name + ' ' + par.param1.surname + '"')
|
||||
myself.update_username()
|
||||
} else
|
||||
tools.showNegativeNotif(myself.$q, myself.$t('db.recfailed'))
|
||||
})
|
||||
} else if ((func === lists.MenuAction.AGGIUNGI_NUOVO_IMBARCO) || (func === lists.MenuAction.CANCELLA_IMBARCO)) {
|
||||
const mydatatosave = {
|
||||
username: par.param1.username,
|
||||
invitante_username: '',
|
||||
ind_order: -1,
|
||||
myfunc: func,
|
||||
data: par.param2,
|
||||
notifBot: null
|
||||
}
|
||||
|
||||
if (func === lists.MenuAction.CANCELLA_IMBARCO) {
|
||||
mydatatosave.ind_order = par.param1.ind_order
|
||||
}
|
||||
if (func === lists.MenuAction.AGGIUNGI_NUOVO_IMBARCO) {
|
||||
mydatatosave.invitante_username = par.param1.invitante_username
|
||||
}
|
||||
|
||||
myself.loading = true
|
||||
|
||||
mydatatosave.notifBot = { un: par.param2, txt: par.param3 }
|
||||
|
||||
GlobalStore.actions.callFunz({ mydata: mydatatosave }).then((ris) => {
|
||||
myself.loading = false
|
||||
if (ris) {
|
||||
myself.update_username()
|
||||
tools.showPositiveNotif(myself.$q, myself.$t('reg.invitato_regalato') + ' "' + par.param1.name + ' ' + par.param1.surname + '"')
|
||||
if (func === lists.MenuAction.AGGIUNGI_NUOVO_IMBARCO)
|
||||
tools.showPositiveNotif(myself.$q, myself.$t('steps.sei_stato_aggiunto'))
|
||||
else if (func === lists.MenuAction.CANCELLA_IMBARCO)
|
||||
tools.showPositiveNotif(myself.$q, myself.$t('event.deleted'))
|
||||
} else
|
||||
tools.showNegativeNotif(myself.$q, myself.$t('db.recfailed'))
|
||||
})
|
||||
} else if (func === lists.MenuAction.SOSTITUISCI) {
|
||||
// console.log('param1', par.param1, 'id', par.param1._id)
|
||||
const mydatatosave = {
|
||||
id: par.param1._id,
|
||||
ind_order: par.param1.ind_order,
|
||||
myfunc: func,
|
||||
data: par.param2,
|
||||
notifBot: null
|
||||
}
|
||||
|
||||
mydatatosave.notifBot = { un: par.param2, txt: par.param3 }
|
||||
|
||||
GlobalStore.actions.callFunz({ mydata: mydatatosave }).then((ris) => {
|
||||
if (ris) {
|
||||
myself.update_nave()
|
||||
tools.showPositiveNotif(myself.$q, par.param3 + '\n' + ' e inviato messaggio per aprire la Gift Chat!')
|
||||
} else
|
||||
tools.showNegativeNotif(myself.$q, myself.$t('db.recfailed'))
|
||||
})
|
||||
@@ -1552,7 +1653,7 @@ export const tools = {
|
||||
const mydatatosave = {
|
||||
id: par.param1._id,
|
||||
table: tools.TABNAVI,
|
||||
fieldsvalue: { made_gift: par.param1.made_gift },
|
||||
fieldsvalue: { made_gift: par.param1.made_gift, riga: par.param1.riga, col: par.param1.col },
|
||||
notifBot: null
|
||||
}
|
||||
|
||||
@@ -1591,6 +1692,7 @@ export const tools = {
|
||||
async askConfirm($q: any, mytitle, mytext, ok, cancel, myself: any, table, funcok: number, funccancel: number, par: IParamDialog) {
|
||||
return $q.dialog({
|
||||
message: mytext,
|
||||
html: true,
|
||||
ok: {
|
||||
label: ok,
|
||||
push: true
|
||||
@@ -1663,12 +1765,14 @@ export const tools = {
|
||||
,
|
||||
|
||||
checkLangPassed(mylang) {
|
||||
// console.log('checkLangPassed')
|
||||
console.log('checkLangPassed ', mylang)
|
||||
|
||||
const mybrowserLang = Quasar.lang.isoName
|
||||
|
||||
if (mylang !== '') {
|
||||
if ((mylang.toLowerCase() === 'enus') || (mylang.toLowerCase() === 'en-us')) {
|
||||
if ((mylang.toLowerCase() === 'enus') || (mylang.toLowerCase() === 'en-us') || (mylang.toLowerCase() === 'uk')
|
||||
|| (mylang.toLowerCase() === 'uk-uk') || (mylang.toLowerCase() === 'en-uk') || (mylang.toLowerCase() === 'en-gb')
|
||||
|| (mylang.toLowerCase() === 'gb-gb')) {
|
||||
mylang = 'enUs'
|
||||
}
|
||||
if ((mylang.toLowerCase() === 'es') || (mylang.toLowerCase() === 'es-es') || (mylang.toLowerCase() === 'eses')) {
|
||||
@@ -1698,6 +1802,7 @@ export const tools = {
|
||||
|
||||
if (!mylang) {
|
||||
mylang = process.env.LANG_DEFAULT
|
||||
console.log('LANG DEFAULT: ', mylang)
|
||||
}
|
||||
|
||||
if (toolsext.getLocale(true) === '') {
|
||||
@@ -1889,6 +1994,10 @@ export const tools = {
|
||||
return UserStore.state.isTutor
|
||||
},
|
||||
|
||||
isTraduttrici() {
|
||||
return UserStore.state.isTraduttrici
|
||||
},
|
||||
|
||||
getstrDate(mytimestamp) {
|
||||
// console.log('getstrDate', mytimestamp)
|
||||
if (!!mytimestamp)
|
||||
@@ -1913,6 +2022,14 @@ export const tools = {
|
||||
return ''
|
||||
},
|
||||
|
||||
getstrshortDayDateTime(mytimestamp) {
|
||||
// console.log('getstrDate', mytimestamp)
|
||||
if (!!mytimestamp)
|
||||
return date.formatDate(mytimestamp, 'DD HH:mm')
|
||||
else
|
||||
return ''
|
||||
},
|
||||
|
||||
getstrTime(mytimestamp) {
|
||||
// console.log('getstrDate', mytimestamp)
|
||||
if (!!mytimestamp)
|
||||
@@ -2346,15 +2463,16 @@ export const tools = {
|
||||
}
|
||||
,
|
||||
|
||||
askfornotification() {
|
||||
tools.showNotif(this.$q, this.$t('notification.waitingconfirm'), { color: 'positive', icon: 'notifications' })
|
||||
askfornotification(mythis) {
|
||||
console.log('askfornotification')
|
||||
tools.showNotif(mythis.$q, mythis.$t('notification.waitingconfirm'), { color: 'positive', icon: 'notifications' })
|
||||
|
||||
Notification.requestPermission((result) => {
|
||||
console.log('User Choice', result)
|
||||
if (result === 'granted') {
|
||||
tools.showNotif(this.$q, this.$t('notification.confirmed'), { color: 'positive', icon: 'notifications' })
|
||||
tools.showNotif(mythis.$q, mythis.$t('notification.confirmed'), { color: 'positive', icon: 'notifications' })
|
||||
} else {
|
||||
tools.showNotif(this.$q, this.$t('notification.denied'), { color: 'negative', icon: 'notifications' })
|
||||
tools.showNotif(mythis.$q, mythis.$t('notification.denied'), { color: 'negative', icon: 'notifications' })
|
||||
|
||||
// displayConfirmNotification();
|
||||
}
|
||||
@@ -2843,7 +2961,7 @@ export const tools = {
|
||||
tools.showNotif(mythis.$q, msg)
|
||||
} else if (riscode === tools.OK) {
|
||||
mythis.$router.push('/regok')
|
||||
tools.showNotif(mythis.$q, mythis.$t('components.authentication.email_verification.link_sent', {botname: mythis.$t('ws.botname') }), {
|
||||
tools.showNotif(mythis.$q, mythis.$t('components.authentication.email_verification.link_sent', { botname: mythis.$t('ws.botname') }), {
|
||||
color: 'green',
|
||||
textColor: 'black'
|
||||
})
|
||||
@@ -3425,14 +3543,40 @@ export const tools = {
|
||||
return val
|
||||
},
|
||||
|
||||
translate(params, options?) {
|
||||
const msg = params.split('.')
|
||||
const lang = toolsext.getLocale()
|
||||
|
||||
const stringa = messages[lang]
|
||||
|
||||
let ris = stringa
|
||||
if (!!ris) {
|
||||
msg.forEach((param) => {
|
||||
ris = ris[param]
|
||||
})
|
||||
|
||||
if (!!options) {
|
||||
ris = this.myprintf(ris, options)
|
||||
}
|
||||
|
||||
} else {
|
||||
console.log('ERRORE IN TRANSLATE! ', params, ' NON ESISTE!')
|
||||
return params
|
||||
}
|
||||
|
||||
return ris
|
||||
},
|
||||
|
||||
isPayPalSel(user) {
|
||||
let ispaypal = false
|
||||
if (user.profile.paymenttypes) {
|
||||
if (user.profile.paymenttypes.includes('paypal')) {
|
||||
if (user.email_paypal !== '')
|
||||
if (!!user.profile.email_paypal) {
|
||||
if (user.profile.email_paypal !== '')
|
||||
ispaypal = true
|
||||
}
|
||||
}
|
||||
}
|
||||
return ispaypal
|
||||
|
||||
},
|
||||
@@ -3455,6 +3599,109 @@ export const tools = {
|
||||
return this.getnumrequisiti(user) === 7
|
||||
},
|
||||
|
||||
getRiganave(riga) {
|
||||
let ris = riga - 3
|
||||
if (ris <= 1)
|
||||
ris = 1
|
||||
|
||||
return ris
|
||||
},
|
||||
|
||||
getColnave(col) {
|
||||
let ris = Math.ceil(col / (2 * 4))
|
||||
if (ris <= 1)
|
||||
ris = 1
|
||||
return ris
|
||||
},
|
||||
|
||||
getrigacolstr(mianave) {
|
||||
return this.getRiganave(mianave.riga) + '.' + this.getColnave(mianave.col)
|
||||
},
|
||||
|
||||
getmaxcol(riga) {
|
||||
|
||||
return Math.pow(2, riga - 1)
|
||||
},
|
||||
|
||||
getrigaNaveByPosiz(riga) {
|
||||
let ris = riga + 3
|
||||
if (ris <= 1)
|
||||
ris = 1
|
||||
return ris
|
||||
|
||||
},
|
||||
|
||||
getcolNaveByPosiz(col) {
|
||||
let ris = Math.ceil(col * Math.pow(2, 3) / (2 * 4))
|
||||
if (ris <= 1)
|
||||
ris = 1
|
||||
return ris
|
||||
|
||||
},
|
||||
|
||||
getfirstnaveSognatore(riga, col) {
|
||||
const myriga = this.getrigaNaveByPosiz(riga)
|
||||
const mycol = this.getcolNaveByPosiz(col)
|
||||
|
||||
return { riga: myriga, col: mycol }
|
||||
},
|
||||
|
||||
getnumnavi_finoa(naveorig, navedest, lastnave) {
|
||||
let contaattuale = 0
|
||||
let contatot = 0
|
||||
|
||||
const indrigaattuale = lastnave.riga
|
||||
const indcolattuale = lastnave.col
|
||||
|
||||
if (navedest.riga < indrigaattuale) {
|
||||
return { perc: 100, totale: 0, contaattuale: 0 }
|
||||
}
|
||||
|
||||
for (let indriga = naveorig.riga; indriga <= navedest.riga; indriga++) {
|
||||
|
||||
let startcol = 0
|
||||
if (indriga === naveorig.riga) {
|
||||
startcol = naveorig.col
|
||||
}
|
||||
let endcol = this.getmaxcol(indriga)
|
||||
if (indriga === navedest.riga) {
|
||||
endcol = navedest.col
|
||||
}
|
||||
|
||||
if (indriga <= navedest.riga) {
|
||||
contatot += (endcol - startcol)
|
||||
}
|
||||
|
||||
if (indriga < indrigaattuale) {
|
||||
contaattuale += (endcol - startcol)
|
||||
} else if (indriga === indrigaattuale) {
|
||||
contaattuale += indcolattuale
|
||||
}
|
||||
}
|
||||
|
||||
let perc = 0
|
||||
if (contatot > 0)
|
||||
perc = (contaattuale / contatot) * 100
|
||||
|
||||
if (perc > 100)
|
||||
perc = 100
|
||||
|
||||
console.log('naveorig', naveorig.riga, '.', naveorig.col, 'dest', navedest.riga, ',', navedest.col)
|
||||
console.log('lastnave', lastnave.riga, '.', lastnave.col)
|
||||
console.log('contaattuale', contaattuale, 'contatot', contatot, 'perc', perc)
|
||||
|
||||
return { perc, totale: contatot, contaattuale }
|
||||
},
|
||||
|
||||
sito_online(pertutti) {
|
||||
|
||||
let ris = true
|
||||
const online = this.getValDb('SITO_ONLINE', false, true)
|
||||
ris = UserStore.state.isAdmin && !pertutti ? true : online
|
||||
// console.log('isadmin', UserStore.state.isAdmin)
|
||||
return ris
|
||||
}
|
||||
|
||||
|
||||
// getLocale() {
|
||||
// if (navigator.languages && navigator.languages.length > 0) {
|
||||
|
||||
@@ -25,11 +25,12 @@ export default class CfgServer extends Vue {
|
||||
field: 'chiave',
|
||||
sortable: true
|
||||
},
|
||||
{ name: 'idapp', label: 'idapp', field: 'idapp', sortable: true },
|
||||
{ name: 'userid', label: 'UserId', field: 'userid', sortable: false },
|
||||
{ name: 'valore', label: 'Valore', field: 'valore', sortable: false }
|
||||
]
|
||||
|
||||
public colVisib: ['chiave', 'userid', 'valore']
|
||||
public colVisib: ['chiave', 'idapp', 'userid', 'valore']
|
||||
public separator: 'horizontal'
|
||||
public filter: string = ''
|
||||
public selected: any[] = []
|
||||
@@ -57,8 +58,10 @@ export default class CfgServer extends Vue {
|
||||
const mydata = {
|
||||
chiave: this.keysel,
|
||||
userId: this.userIdsel,
|
||||
valore: newVal
|
||||
valore: newVal,
|
||||
idapp: process.env.APP_ID
|
||||
}
|
||||
|
||||
// Save on Server
|
||||
GlobalStore.actions.saveCfgServerKey(mydata)
|
||||
}
|
||||
|
||||
@@ -15,6 +15,14 @@
|
||||
</q-field>
|
||||
</q-popup-edit>
|
||||
</q-td>
|
||||
<q-td key="idapp" :props="props">
|
||||
{{ props.row.idapp }}
|
||||
<q-popup-edit v-model="props.row.idapp" disable>
|
||||
<q-field count>
|
||||
<q-input v-model="props.row.idapp" />
|
||||
</q-field>
|
||||
</q-popup-edit>
|
||||
</q-td>
|
||||
<q-td key="userid" :props="props">
|
||||
{{ props.row.userId }}
|
||||
<q-popup-edit v-model="props.row.userId" disable>
|
||||
|
||||
@@ -63,7 +63,7 @@ export default class Dbop extends Vue {
|
||||
this.placca = ris.placca
|
||||
} else if (miafunz === 'visuListaIngresso' || miafunz === 'visuListaIngressoNuovi' || miafunz === 'visuNaviUtentiEliminati'
|
||||
|| miafunz === 'visuListaNave' || miafunz === 'visuNave' || miafunz === 'creaNavi'
|
||||
|| (miafunz === 'visuUtentiNonInNavi')) {
|
||||
|| (miafunz === 'visuStat')) {
|
||||
this.placca = ris.mystr
|
||||
} else {
|
||||
this.ris = ris
|
||||
|
||||
@@ -2,6 +2,17 @@
|
||||
<div>
|
||||
<CTitleBanner title="Operazioni su DB:"></CTitleBanner>
|
||||
<div class="row justify-center q-gutter-sm q-list--bordered center_img" style="max-width: 600px">
|
||||
<CMyFieldDb title="SITO_ONLINE"
|
||||
mykey="SITO_ONLINE"
|
||||
:serv="false"
|
||||
:type="tools.FieldType.boolean">
|
||||
</CMyFieldDb>
|
||||
<br>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<q-btn label="Crea Utenti Test" color="primary" @click="EseguiFunz('creaUtentiTest')"></q-btn><br>
|
||||
</div>
|
||||
<!--<div class="row">
|
||||
<q-btn label="Passa i codici Telefoni sul campo cell" color="primary"
|
||||
@click="EseguiFunz('changeCellInt')"></q-btn>
|
||||
@@ -10,9 +21,6 @@
|
||||
<q-btn label="Trasforma le email tutte in minuscolo" color="primary"
|
||||
@click="EseguiFunz('changeEmailLowerCase')"></q-btn>
|
||||
<br></div>
|
||||
<div class="row">
|
||||
<q-btn label="Crea Utenti Test" color="primary" @click="EseguiFunz('creaUtentiTest')"></q-btn><br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn label="IMPOSTARE A TUTTI PAYPAL" color="primary" @click="EseguiFunz('ImpostaATuttiPaypal')"></q-btn><br>
|
||||
</div>
|
||||
@@ -49,16 +57,16 @@
|
||||
<q-btn label="Elimina Navi Provvisorie" color="negative"
|
||||
@click="EseguiFunz('delNaviProvvisorie')"></q-btn>
|
||||
|
||||
<q-btn label="Crea ListaIngresso" color="positive" @click="EseguiFunz('creaLista')"></q-btn>
|
||||
<!--<q-btn label="Crea ListaIngresso" color="positive" @click="EseguiFunz('creaLista')"></q-btn>-->
|
||||
</div>
|
||||
<div class="q-pa-sm">
|
||||
<div class="q-pa-sm row">
|
||||
<CDateTime
|
||||
:value.sync="date_start"
|
||||
:label="$t('cal.eventstartdatetime')"
|
||||
:readonly="false">
|
||||
</CDateTime>
|
||||
<q-input v-model="numpersone" type="number" autofocus label="Num Persone to Add"
|
||||
style="width: 50px;"></q-input>
|
||||
style="width: 100px;"></q-input>
|
||||
<q-btn label="Crea Navi" color="primary" @click="EseguiFunz('creaNavi')"></q-btn>
|
||||
</div>
|
||||
<div v-if="!incaricamento" class="row">
|
||||
@@ -72,7 +80,7 @@
|
||||
:serv="false"
|
||||
:type="tools.FieldType.number">
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb title="Riga Doni"
|
||||
<!--<CMyFieldDb title="Riga Doni"
|
||||
mykey="rigadoni"
|
||||
:serv="false"
|
||||
:type="tools.FieldType.number">
|
||||
@@ -81,7 +89,7 @@
|
||||
mykey="coldoni"
|
||||
:serv="false"
|
||||
:type="tools.FieldType.number">
|
||||
</CMyFieldDb>
|
||||
</CMyFieldDb>-->
|
||||
<CMyFieldDb title="Visu_TEST"
|
||||
mykey="VISU_TEST"
|
||||
:serv="false"
|
||||
@@ -95,7 +103,7 @@
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<q-btn label="Statistiche" color="warning" @click="EseguiFunz('visuUtentiNonInNavi')"></q-btn>
|
||||
<q-btn label="Statistiche" color="warning" @click="EseguiFunz('visuStat')"></q-btn>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -119,6 +127,15 @@
|
||||
<q-btn label="Visu Navi con utenti Eliminati" color="primary"
|
||||
@click="EseguiFunz('visuNaviUtentiEliminati')"></q-btn>
|
||||
<br>
|
||||
<div class="row">
|
||||
<q-btn label="1) CONVERTI TUTTA LA STRUTTURA NEL NUOVO SISTEMA !" color="negative"
|
||||
@click="EseguiFunz('creaTessituraeConv')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn label="2) CONVERTI Navi Num_Tess 3 e 5 in Record di ListaIngresso" color="negative" @click="EseguiFunz('convNaviTessinListaIngressoRec')"></q-btn><br>
|
||||
</div>
|
||||
<br>
|
||||
<!--<div class="row">
|
||||
<q-btn label="CHECK SE INSERIRE UTENTI IN Nave" color="primary"
|
||||
@click="EseguiFunz('checkInserimentiUtentiInNave')"></q-btn>
|
||||
|
||||
@@ -35,14 +35,14 @@ export default class Testp1 extends Vue {
|
||||
console.log('DOPO this.paramcategory', this.paramcategory)
|
||||
}
|
||||
|
||||
created() {
|
||||
public created() {
|
||||
this.mioobj = {
|
||||
arr1: [{chiave: 'key1', userId: 'ALL', valore: 'val1'}],
|
||||
arr2: [{chiave: 'key2', userId: 'ALL', valore: 'val2'}]
|
||||
arr1: [{chiave: 'key1', idapp: '9', userId: 'ALL', valore: 'val1'}],
|
||||
arr2: [{chiave: 'key2', idapp: '9', userId: 'ALL', valore: 'val2'}]
|
||||
}
|
||||
}
|
||||
|
||||
get getarr1 () {
|
||||
get getarr1() {
|
||||
// return this.mioobj.arr1
|
||||
return this.mioobj['arr1']
|
||||
}
|
||||
@@ -59,36 +59,35 @@ export default class Testp1 extends Vue {
|
||||
return GlobalStore.getters.testpao1_getter_array(GlobalStore.state.testp1.contatore)
|
||||
}
|
||||
|
||||
|
||||
TestBtnCambioaParamPassing () {
|
||||
public TestBtnCambioaParamPassing () {
|
||||
this.paramcategory += 's'
|
||||
}
|
||||
|
||||
TestBtn() {
|
||||
public TestBtn() {
|
||||
GlobalStore.state.testp1.contatore++
|
||||
}
|
||||
|
||||
TestBtn2() {
|
||||
GlobalStore.state.testp1.mioarray.push({chiave: 'pippo2', userId: UserStore.state.my._id, valore: GlobalStore.state.testp1.contatore.toString() })
|
||||
public TestBtn2() {
|
||||
GlobalStore.state.testp1.mioarray.push({chiave: 'pippo2', idapp: process.env.APP_ID, userId: UserStore.state.my._id, valore: GlobalStore.state.testp1.contatore.toString() })
|
||||
}
|
||||
|
||||
TestBtnModify() {
|
||||
public TestBtnModify() {
|
||||
// GlobalStore.state.testp1.mioarray[GlobalStore.state.testp1.mioarray.length - 1] = GlobalStore.state.testp1.mioarray[GlobalStore.state.testp1.mioarray.length - 1] + 1
|
||||
GlobalStore.mutations.setPaoArray({chiave: 'pippo', userId: UserStore.state.my._id, valore: '20' } )
|
||||
GlobalStore.mutations.setPaoArray({chiave: 'pippo', idapp: process.env.APP_ID, userId: UserStore.state.my._id, valore: '20' } )
|
||||
|
||||
}
|
||||
|
||||
TestBtnCambiaTutto() {
|
||||
public TestBtnCambiaTutto() {
|
||||
// GlobalStore.state.testp1.mioarray[GlobalStore.state.testp1.mioarray.length - 1] = GlobalStore.state.testp1.mioarray[GlobalStore.state.testp1.mioarray.length - 1] + 1
|
||||
GlobalStore.mutations.NewArray([{chiave: 'nuovorec1', userId: UserStore.state.my._id, valore: '1' }, {chiave: 'nuovorec2', userId: UserStore.state.my._id, valore: '2' }] )
|
||||
GlobalStore.mutations.NewArray([{chiave: 'nuovorec1', idapp: process.env.APP_ID, userId: UserStore.state.my._id, valore: '1' }, {chiave: 'nuovorec2', idapp: process.env.APP_ID, userId: UserStore.state.my._id, valore: '2' }] )
|
||||
|
||||
}
|
||||
|
||||
TestBtnAction() {
|
||||
public TestBtnAction() {
|
||||
GlobalStore.actions.prova()
|
||||
}
|
||||
|
||||
TestBtnDelete() {
|
||||
public TestBtnDelete() {
|
||||
// GlobalStore.state.testp1.mioarray[GlobalStore.state.testp1.mioarray.length - 1] = GlobalStore.state.testp1.mioarray[GlobalStore.state.testp1.mioarray.length - 1] + 1
|
||||
GlobalStore.mutations.setPaoArray_Delete()
|
||||
}
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
import Vue from 'vue'
|
||||
import { Component, Prop, Watch } from 'vue-property-decorator'
|
||||
|
||||
export default class Signin_noreg extends Vue {
|
||||
import { CSigninNoreg } from '@components'
|
||||
|
||||
@Component({
|
||||
components: { CSigninNoreg }
|
||||
})
|
||||
|
||||
export default class SigninNoreg extends Vue {
|
||||
public $v
|
||||
public $q
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<q-page padding class="signin">
|
||||
<CSignInNoreg>
|
||||
</CSignInNoreg>
|
||||
<CSigninNoreg :showregbutt="false">
|
||||
</CSigninNoreg>
|
||||
</q-page>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ export default class Profile extends MixinBase {
|
||||
public eliminaAccount() {
|
||||
|
||||
this.$q.dialog({
|
||||
message: this.$t('reg.cancellami', {sitename: this.$t('ws.sitename')}),
|
||||
message: this.$t('reg.cancellami', { sitename: this.$t('ws.sitename') }),
|
||||
cancel: {
|
||||
label: this.$t('dialog.cancel')
|
||||
},
|
||||
@@ -39,7 +39,7 @@ export default class Profile extends MixinBase {
|
||||
title: this.$t('pages.profile')
|
||||
}).onOk(async () => {
|
||||
this.$q.dialog({
|
||||
message: this.$t('reg.cancellami_2', {sitename: this.$t('ws.sitename')}),
|
||||
message: this.$t('reg.cancellami_2', { sitename: this.$t('ws.sitename') }),
|
||||
cancel: {
|
||||
label: this.$t('dialog.cancel')
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user