diff --git a/src/common/shared_vuejs.ts b/src/common/shared_vuejs.ts
index e776b50..3fd6e57 100644
--- a/src/common/shared_vuejs.ts
+++ b/src/common/shared_vuejs.ts
@@ -1,4 +1,10 @@
export const shared_consts = {
+ Accepted: {
+ CHECK_READ_GUIDELINES: 1,
+ CHECK_SEE_VIDEO_PRINCIPI: 2,
+ },
+
+ ALL_SAW_AND_ACCEPTED: 3,
FILTER_EXTRALIST_NOT_REGISTERED: 1,
FILTER_EXTRALIST_NOT_CONTACTED: 2,
diff --git a/src/components/CCopyBtn/CCopyBtn.ts b/src/components/CCopyBtn/CCopyBtn.ts
index 5116673..de55b23 100644
--- a/src/components/CCopyBtn/CCopyBtn.ts
+++ b/src/components/CCopyBtn/CCopyBtn.ts
@@ -19,7 +19,7 @@ export default class CCopyBtn extends Vue {
}
public copytoclip() {
- tools.copyStringToClipboard(this, this.texttocopy)
+ tools.copyStringToClipboard(this, this.texttocopy, true)
}
}
diff --git a/src/components/CGallery/CGallery.ts b/src/components/CGallery/CGallery.ts
index f8d1ef3..4eee514 100644
--- a/src/components/CGallery/CGallery.ts
+++ b/src/components/CGallery/CGallery.ts
@@ -190,7 +190,7 @@ export default class CGallery extends MixinBase {
public copytoclipboard(rec) {
const filename = this.getfullname(rec)
- tools.copyStringToClipboard(this, filename)
+ tools.copyStringToClipboard(this, filename, true)
}
public async deleteFile(rec) {
diff --git a/src/components/CMyDashboard/CMyDashboard.ts b/src/components/CMyDashboard/CMyDashboard.ts
index dd27898..9aa4432 100644
--- a/src/components/CMyDashboard/CMyDashboard.ts
+++ b/src/components/CMyDashboard/CMyDashboard.ts
@@ -18,6 +18,7 @@ import { tools } from '../../store/Modules/tools'
import { lists } from '../../store/Modules/lists'
import { validations } from './CMyDashboard-validate'
import { validationMixin } from 'vuelidate'
+import { shared_consts } from '../../common/shared_vuejs'
@Component({
mixins: [validationMixin],
@@ -76,15 +77,29 @@ export default class CMyDashboard extends MixinUsers {
info: '',
},
{
- icon: 'fas fa-video',
- textlang: 'steps.zoom_partecipa',
+ icon: 'fas fa-file-signature',
+ textlang: 'steps.linee_guida',
textadd(user) {
return ''
},
isok(user) {
if (user)
if (user.profile)
- return user.profile.saw_zoom_presentation
+ return tools.isBitActive(user.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES)
+ return false
+ },
+ info: '',
+ },
+ {
+ icon: 'fas fa-tv',
+ textlang: 'steps.video_intro',
+ textadd(user) {
+ return ''
+ },
+ isok(user) {
+ if (user)
+ if (user.profile)
+ return tools.isBitActive(user.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI)
return false
},
info: '',
diff --git a/src/components/CMyDashboard/CMyDashboard.vue b/src/components/CMyDashboard/CMyDashboard.vue
index 2670bb0..d5cd4b4 100644
--- a/src/components/CMyDashboard/CMyDashboard.vue
+++ b/src/components/CMyDashboard/CMyDashboard.vue
@@ -57,6 +57,17 @@
+
+
+
+
+
-
- {{$t('reg.submit')}}
+
diff --git a/src/components/CSignUp/CSignUp.vue b/src/components/CSignUp/CSignUp.vue
index 850eef7..a62e2ed 100644
--- a/src/components/CSignUp/CSignUp.vue
+++ b/src/components/CSignUp/CSignUp.vue
@@ -167,8 +167,7 @@
-
- {{$t('reg.submit')}}
+
diff --git a/src/components/CSignUpNotevole/CSignUpNotevole.ts b/src/components/CSignUpNotevole/CSignUpNotevole.ts
index 55c2699..70cf8bf 100644
--- a/src/components/CSignUpNotevole/CSignUpNotevole.ts
+++ b/src/components/CSignUpNotevole/CSignUpNotevole.ts
@@ -68,6 +68,10 @@ export default class CSignUpNotevole extends MixinBase {
this.$v.$reset()
this.signup.aportador_solidario = this.$route.params.invited
+
+ if (!this.signup.aportador_solidario)
+ this.signup.aportador_solidario = tools.getCookie(tools.APORTADOR_SOLIDARIO, this.signup.aportador_solidario)
+
if (!this.signup.aportador_solidario) {
this.signup.aportador_solidario = tools.APORTADOR_NONE
}
diff --git a/src/components/CSignUpNotevole/CSignUpNotevole.vue b/src/components/CSignUpNotevole/CSignUpNotevole.vue
index 3195f02..cbc3bcc 100644
--- a/src/components/CSignUpNotevole/CSignUpNotevole.vue
+++ b/src/components/CSignUpNotevole/CSignUpNotevole.vue
@@ -202,8 +202,7 @@
-
- {{$t('privacy_policy')}}
+
@@ -229,8 +228,7 @@
-
- {{$t('reg.submit')}}
+
diff --git a/src/components/CStatus/CStatus.ts b/src/components/CStatus/CStatus.ts
index 884b77e..8ba4895 100644
--- a/src/components/CStatus/CStatus.ts
+++ b/src/components/CStatus/CStatus.ts
@@ -13,16 +13,21 @@ import { CVerifyEmail } from '../CVerifyTelegram'
import { CCopyBtn } from '../CCopyBtn'
import { CVideo } from '../CVideo'
import { CRequisiti } from '../CRequisiti'
+import { shared_consts } from '../../common/shared_vuejs'
+import { CGuidelines } from '../CGuidelines'
+import { CVideoPromo } from '../CVideoPromo'
@Component({
- components: { CTitleBanner, CMyFieldDb, CMyInnerPage, CVerifyTelegram, CVerifyEmail, CCopyBtn, CVideo, CRequisiti }
+ components: { CTitleBanner, CMyFieldDb, CMyInnerPage, CVerifyTelegram, CVerifyEmail, CCopyBtn, CVideo, CRequisiti, CGuidelines, CVideoPromo }
})
export default class CStatus extends MixinBase {
+ @Prop({ required: false, default: false }) public dense: boolean
public $v
public $t: any
- public step = 1
- public NUMSTEP_START = 3
+ public step = 0
+ public steptodo = 0
+ public NUMSTEP_OBBLIGATORI = 9
get numpayment() {
if (UserStore.state.my.profile)
@@ -33,15 +38,86 @@ export default class CStatus extends MixinBase {
}
public arrsteps = [
+ // {
+ // title: 'steps.chat_biblio',
+ // descr: 'steps.chat_biblio_long',
+ // page: '',
+ // funccheck(index) {
+ // return true
+ // },
+ // funccheck_error(index) {
+ // return false
+ // }
+ // },
+
{
- title: 'steps.chat_biblio',
- descr: 'steps.chat_biblio_long',
+ title: 'reg.email',
+ descr: '',
page: '',
+ icon: 'mail',
funccheck(index) {
- return true
+ return UserStore.state.my.verified_email
},
funccheck_error(index) {
- return false
+ return true
+ },
+ funcok() {
+ return 'pages.statusreg.verified'
+ },
+ funcko() {
+ return 'pages.statusreg.nonverified'
+ }
+ },
+ {
+ title: 'reg.telegram',
+ descr: '',
+ page: '',
+ icon: 'fab fa-telegram',
+ funccheck(index) {
+ return UserStore.state.my.profile.teleg_id > 0
+ },
+ funccheck_error(index) {
+ return true
+ },
+ funcok() {
+ return 'pages.statusreg.verified'
+ },
+ funcko() {
+ return 'pages.statusreg.nonverified'
+ },
+ },
+ {
+ title: 'steps.linee_guida',
+ descr: '',
+ page: '',
+ funccheck(index) {
+ return tools.isBitActive(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES)
+ },
+ funccheck_error(index) {
+ return true
+ },
+ funcok() {
+ return ''
+ },
+ funcko() {
+ return ''
+ }
+ },
+ {
+ title: 'steps.video_intro',
+ descr: '',
+ page: '',
+ funccheck(index) {
+ return tools.isBitActive(UserStore.state.my.profile.saw_and_accepted, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI)
+ },
+ funccheck_error(index) {
+ return true
+ },
+ funcok() {
+ return ''
+ },
+ funcko() {
+ return ''
}
},
{
@@ -53,7 +129,13 @@ export default class CStatus extends MixinBase {
},
funccheck_error(index) {
return true
- }
+ },
+ funcok() {
+ return ''
+ },
+ funcko() {
+ return ''
+ },
},
{
title: 'steps.dream',
@@ -69,6 +151,12 @@ export default class CStatus extends MixinBase {
funccheck_error(index) {
return true
},
+ funcok() {
+ return ''
+ },
+ funcko() {
+ return ''
+ },
},
{
title: 'steps.paymenttype',
@@ -91,6 +179,12 @@ export default class CStatus extends MixinBase {
funccheck_error(index) {
return true
},
+ funcok() {
+ return ''
+ },
+ funcko() {
+ return ''
+ },
},
{
title: 'steps.sharemovement',
@@ -103,6 +197,12 @@ export default class CStatus extends MixinBase {
funccheck_error(index) {
return true
},
+ funcok() {
+ return ''
+ },
+ funcko() {
+ return ''
+ },
},
{
title: 'steps.enter_prog',
@@ -114,6 +214,12 @@ export default class CStatus extends MixinBase {
funccheck_error(index) {
return false
},
+ funcok() {
+ return ''
+ },
+ funcko() {
+ return ''
+ },
},
{
title: 'steps.collaborate',
@@ -125,6 +231,12 @@ export default class CStatus extends MixinBase {
funccheck_error(index) {
return false
},
+ funcok() {
+ return ''
+ },
+ funcko() {
+ return ''
+ },
},
{
title: 'steps.dono',
@@ -136,6 +248,12 @@ export default class CStatus extends MixinBase {
funccheck_error(index) {
return false
},
+ funcok() {
+ return ''
+ },
+ funcko() {
+ return ''
+ },
},
{
title: 'steps.support',
@@ -147,6 +265,12 @@ export default class CStatus extends MixinBase {
funccheck_error(index) {
return false
},
+ funcok() {
+ return ''
+ },
+ funcko() {
+ return ''
+ },
},
{
title: 'steps.ricevo_dono',
@@ -158,45 +282,40 @@ export default class CStatus extends MixinBase {
funccheck_error(index) {
return false
},
+ funcok() {
+ return ''
+ },
+ funcko() {
+ return ''
+ },
},
-
- /*
- sharemovement: 'Condivido il movimento',
- sharemovement_long: 'Condivido il movimento con almeno 2 amici e li guido alla registrazione e agli zoom',
- enter_prog: 'entro in Programmazione',
- enter_prog_long: 'entro in programmazione, e vengo aggiunto al Mandala, ed entro così nella chat corrispondente.',
- collaborate: 'Collaborazione',
- collaborate_long: 'Continuo a collaborare con il miei compagni, per arrivare al giorno della programmazione dove si attiverà il mio Mandala',
- dono: 'Dono',
- dono_long: 'Faccio il mio dono al proprietario della Bigliettera',
- support: 'Sostengo il movimento',
- support_long: 'Continuo a sostenere il movimento partecipando attivamente! Organizzando zoom e partecipando, sostenendo, informando, aiutando e diffondendo',
- ricevo_dono: 'Ricevo il mio dono e CELEBRO',
- ricevo_dono_long: 'Ricevo il mio dono e CELEBRO',
- */
-
]
public setstep() {
- if (this.isEmailVerified) {
- this.step = 2
- if (this.TelegVerificato) {
- this.step = 3
- for (let indstep = 0; indstep < this.arrsteps.length; indstep++) {
- if (this.arrsteps[indstep].funccheck(indstep)) {
- this.step++
- }
- }
- // if (this.numpayment > 0) {
- // this.step = 4
- // }
+ this.step = 0
+ for (let indstep = 0; indstep < this.arrsteps.length; indstep++) {
+ if (this.arrsteps[indstep].funccheck(indstep)) {
+ this.step++
+ } else {
+ return
}
}
- // console.log('step', this.step)
}
- public mounted() {
+ public setsteptodo() {
+ this.steptodo = 0
+ for (let indstep = 0; indstep < this.arrsteps.length; indstep++) {
+ if (this.arrsteps[indstep].funccheck(indstep)) {
+ this.steptodo++
+ } else {
+ return
+ }
+ }
+ }
+
+ public created() {
this.setstep()
+ this.setsteptodo()
}
get TelegVerificato() {
@@ -207,18 +326,11 @@ export default class CStatus extends MixinBase {
return UserStore.state.my.verified_email
}
- get emailtext() {
- if (this.isEmailVerified)
- return `Email ` + this.$t('pages.statusreg.verified')
- else
- return `Email ` + this.$t('pages.statusreg.nonverified')
- }
-
get telegramtext() {
if (this.TelegVerificato)
- return `Telegram ` + this.$t('pages.statusreg.verified')
+ return this.$t('reg.telegram') + ' ' + this.$t('pages.statusreg.verified')
else
- return `Telegram ` + this.$t('pages.statusreg.nonverified')
+ return this.$t('reg.telegram') + ' ' + this.$t('pages.statusreg.nonverified')
}
get paymenttext() {
@@ -226,7 +338,7 @@ export default class CStatus extends MixinBase {
}
get getlaststep() {
- return this.arrsteps.length + this.NUMSTEP_START - 1
+ return this.arrsteps.length - 1
}
public getnuminvitati() {
@@ -240,7 +352,7 @@ export default class CStatus extends MixinBase {
public getnuminvitati_attivi() {
if (UserStore.state.my)
if (UserStore.state.my.calcstat)
- // console.log('numinvitati', UserStore.state.my.calcstat)
+ // console.log('numinvitati', UserStore.state.my.calcstat)
return UserStore.state.my.calcstat.numinvitati_attivi
return 0
@@ -249,6 +361,9 @@ export default class CStatus extends MixinBase {
public gettextstep(step) {
let tit = this.$t(step.title)
+ if (step.funcok())
+ tit += ' ' + this.$t(step.funcok())
+
if (step.title === 'steps.sharemovement') {
tit += ' (' + this.getnuminvitati_attivi() + ' / ' + this.getnuminvitati() + ' invitati Attivi)'
} else if (step.title === 'steps.paymenttype') {
@@ -263,7 +378,7 @@ export default class CStatus extends MixinBase {
}
public copylink() {
- tools.copyStringToClipboard(this, this.getRefLink)
+ tools.copyStringToClipboard(this, this.getRefLink, true)
}
public getiferror(checkerror, value) {
@@ -300,12 +415,12 @@ export default class CStatus extends MixinBase {
return 'https://t.me/joinchat/AL2qKExZKvenLgpVhOyefQ'
}
- public geticonstep(title) {
- if (title === 'steps.chat_biblio') {
- return 'settings'
- } else {
+ public geticonstep(mystep) {
+ if (!!mystep.icon)
+ return mystep.icon
+ else
return 'check-circle'
- }
+
}
public geticoncolor(title) {
@@ -349,6 +464,48 @@ export default class CStatus extends MixinBase {
return false
}
+ get percstep() {
+ return (this.getstep / this.NUMSTEP_OBBLIGATORI)
+ }
+ get getstep() {
+ let mystep = 0
+ for (let indstep = 0; indstep < this.arrsteps.length; indstep++) {
+ if (this.arrsteps[indstep].funccheck(indstep)) {
+ mystep++
+ }
+ }
+ return mystep
+ }
+ get progressstep() {
+ return this.$t(this.arrsteps[this.steptodo].title)
+ }
+
+ get strpercstep() {
+ return 'Completati ' + (this.getstep + 1) + ' passi su ' + this.NUMSTEP_OBBLIGATORI
+ }
+
+ get stepcompleti() {
+ return this.getstep + 1 === this.NUMSTEP_OBBLIGATORI
+ }
+
+ public scrolltostep(mystep) {
+ this.step = mystep
+ if (mystep > 0 )
+ mystep -= 1
+ const element = document.getElementById('step' + mystep)
+ tools.scrollToElement(element)
+
+ }
+
+ public nextstep(index) {
+ this.step = index + 1
+ this.setsteptodo()
+
+ setTimeout(() => {
+ this.scrolltostep(this.step)
+ }, 500)
+
+ }
}
diff --git a/src/components/CStatus/CStatus.vue b/src/components/CStatus/CStatus.vue
index 58fe3ec..3eb2cc1 100644
--- a/src/components/CStatus/CStatus.vue
+++ b/src/components/CStatus/CStatus.vue
@@ -1,44 +1,68 @@
-
-
-
+
+
-
+
-
-
-
-
-
-
+
+
{{ telegramtext }}
@@ -57,214 +81,252 @@
+
+
+
-
-
-
-
-
-
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ mysubkey="paymenttypes"
+ :type="tools.FieldType.multiselect"
+ jointable="paymenttypes">
+
+
+
-
-
-
-
Entra in Chat BiblioBacheca, cliccando qui:
-
-
+
+
+
+
+
Entra in Chat BiblioBacheca, cliccando qui:
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ISTRUZIONI ZOOM
+
+
+ - 1. Scarica l'app (store o da PC)
+
+ - 2. Inserisci il tuo Nome e Cognome per essere riconosciuto
+ - 3. Clicca "join meeting"
+ - 4. Clicca "call in device" altrimenti non potrai sentire 🔊
+ - 5. Clicca il microfono per Attivarlo o Silenziarlo.
+
+
+
In più avrai:
+
+ - Tasto per togliere il video (📹) ❌
+ - Tasto 'Share': per condividere contenuti condivisi
+ - Tasto 'Partecipants' in cui sulla sinistra, in basso, troverai la CHAT.
+ - Tasto 'More': troverai Raise Hands per fare le domande.
+
-
-
-
+
-
ISTRUZIONI ZOOM
+
+
-
- - 1. Scarica l'app (store o da PC)
-
- - 2. Inserisci il tuo Nome e Cognome per essere riconosciuto
- - 3. Clicca "join meeting"
- - 4. Clicca "call in device" altrimenti non potrai sentire 🔊
- - 5. Clicca il microfono per Attivarlo o Silenziarlo.
-
+
+
+
+
-
In più avrai:
-
- - Tasto per togliere il video (📹) ❌
- - Tasto 'Share': per condividere contenuti condivisi
- - Tasto 'Partecipants' in cui sulla sinistra, in basso, troverai la CHAT.
- - Tasto 'More': troverai Raise Hands per fare le domande.
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/CStatusReg/CStatusReg.vue b/src/components/CStatusReg/CStatusReg.vue
index ff0314a..aa8feb0 100644
--- a/src/components/CStatusReg/CStatusReg.vue
+++ b/src/components/CStatusReg/CStatusReg.vue
@@ -11,13 +11,14 @@
-
-
-
+
+
+
-
-
diff --git a/src/components/CTitleBanner/CTitleBanner.ts b/src/components/CTitleBanner/CTitleBanner.ts
index 0094880..77a4538 100644
--- a/src/components/CTitleBanner/CTitleBanner.ts
+++ b/src/components/CTitleBanner/CTitleBanner.ts
@@ -34,9 +34,9 @@ export default class CTitleBanner extends Vue {
@Prop({ required: false, default: true }) public visible: boolean
@Prop({ required: false, default: false }) public canopen: boolean
- public myvisible: boolean = true
+ public myvisible: boolean = false
- public mounted() {
+ public created() {
this.myvisible = this.visible
}
diff --git a/src/components/CTitleBanner/CTitleBanner.vue b/src/components/CTitleBanner/CTitleBanner.vue
index 9d6f5dc..62002fa 100644
--- a/src/components/CTitleBanner/CTitleBanner.vue
+++ b/src/components/CTitleBanner/CTitleBanner.vue
@@ -19,7 +19,7 @@
-
+
diff --git a/src/components/index.ts b/src/components/index.ts
index 04a50a2..176eae8 100644
--- a/src/components/index.ts
+++ b/src/components/index.ts
@@ -53,3 +53,5 @@ export * from './CUserBadge'
export * from './CMyDashboard'
export * from './CLegenda'
export * from './CRequisito'
+export * from './CGuidelines'
+export * from './CVideoPromo'
diff --git a/src/mixins/mixin-base.ts b/src/mixins/mixin-base.ts
index 861ff2b..8b8e075 100644
--- a/src/mixins/mixin-base.ts
+++ b/src/mixins/mixin-base.ts
@@ -37,9 +37,17 @@ export default class MixinBase extends MixinMetaTags {
}
public getValDb(keystr, serv, def?, table?, subkey?) {
+
return tools.getValDb(keystr, serv, def, table, subkey)
}
+ public getValDbLang(keystr, serv, def?, table?, subkey?) {
+ let ris = tools.getValDb(keystr + '_' + tools.getLocale(), serv, def, table, subkey)
+ if (ris === def)
+ ris = tools.getValDb(keystr + '_it', serv, def, table, subkey)
+ return ris
+ }
+
public async setValDb(key, value, type, serv: boolean, table?, subkey?) {
// console.log('setValDb', key, value, serv, table, subkey)
diff --git a/src/model/GlobalStore.ts b/src/model/GlobalStore.ts
index 7cd17ea..84326fc 100644
--- a/src/model/GlobalStore.ts
+++ b/src/model/GlobalStore.ts
@@ -330,6 +330,7 @@ export interface IFunctionality {
SHOW_ONLY_POLICY?: boolean
SHOW_MESSAGES?: boolean
BOOKING_EVENTS?: boolean
+ ENABLE_REG_AYNI?: boolean
}
export interface IParamsQuery {
diff --git a/src/model/NotevoleStore.ts b/src/model/NotevoleStore.ts
index e3eb3a2..4e88e1a 100644
--- a/src/model/NotevoleStore.ts
+++ b/src/model/NotevoleStore.ts
@@ -14,6 +14,7 @@ export interface INotData {
num_teleg_attivo?: number
num_teleg_pending?: number
num_part_zoom?: number
+ num_part_accepted?: number
num_users_dream?: number
arr_nations?: string
lastsreg?: IUserFields[]
diff --git a/src/model/UserStore.ts b/src/model/UserStore.ts
index 3b16812..2681775 100644
--- a/src/model/UserStore.ts
+++ b/src/model/UserStore.ts
@@ -23,6 +23,7 @@ export interface IUserProfile {
paymenttypes?: IPaymentType[]
manage_telegram?: boolean
saw_zoom_presentation?: boolean
+ saw_and_accepted?: boolean
}
export interface IPaymentType {
@@ -93,7 +94,6 @@ export interface IUserState {
isManager?: boolean
isTeacher?: boolean
usersList?: IUserFields[]
- permissionsList?: IPerm[]
countusers?: number
lastparamquery?: any
}
diff --git a/src/rootgen/admin/newsletter/newsletter.vue b/src/rootgen/admin/newsletter/newsletter.vue
index 0196e31..e594fb2 100644
--- a/src/rootgen/admin/newsletter/newsletter.vue
+++ b/src/rootgen/admin/newsletter/newsletter.vue
@@ -197,10 +197,10 @@
jointable="templemail">
-
- Crea Nuovo Invio Newsletter Schedulato tra 1 minuto
+ Crea Nuovo Invio Newsletter Schedulato tra 3 minuti
Creazione Newsletter...
diff --git a/src/rootgen/admin/usersList/usersList.ts b/src/rootgen/admin/usersList/usersList.ts
index 5351ac0..56b774e 100644
--- a/src/rootgen/admin/usersList/usersList.ts
+++ b/src/rootgen/admin/usersList/usersList.ts
@@ -6,6 +6,7 @@ import { CMyPage } from '../../../components/CMyPage/index'
import { fieldsTable } from '@src/store/Modules/fieldsTable'
import { shared_consts } from '@src/common/shared_vuejs'
import { tools } from '../../../store/Modules/tools'
+import { static_data } from '../../../db/static_data'
@Component({
components: { CGridTableRec, CMyPage }
@@ -48,4 +49,13 @@ export default class UsersList extends Vue {
get db_fieldsTable() {
return fieldsTable
}
+
+ get userlist() {
+
+ if (static_data.functionality.ENABLE_REG_AYNI) {
+ return this.db_fieldsTable.colTableUsers
+ } else {
+ return this.db_fieldsTable.colTableUsersBase
+ }
+ }
}
diff --git a/src/rootgen/admin/usersList/usersList.vue b/src/rootgen/admin/usersList/usersList.vue
index d9e12e9..1a158e4 100644
--- a/src/rootgen/admin/usersList/usersList.vue
+++ b/src/rootgen/admin/usersList/usersList.vue
@@ -2,7 +2,7 @@
almeno 2 Modalità di Pagamento, per scambiarsi i doni.
I metodi di Pagamento Super-Consigliati sono: - Paypal è indispensabile in quanto quasi tutti lo utilizzano ed è un\'ottima soluzione perchè potrai collegargli le tue carte di credito/debito.
- Revolut: La Carta Revolut è un conto Inglese (fuori dalla UE), pertanto è più libera e semplice da utilizzare anche tramite il cellulare
',
+ paymenttype_long: 'Scegli almeno 2 Modalità di Pagamento, per scambiarsi i doni.
I metodi di Pagamento sono: - Paypal (in AYNI è obbligatoria) perchè è un sistema molto diffuso in tutta Europa (il trasferimento e gratuito) e si possono collegare le carte prepagate, le carte di credito e il conto corrente SENZA COMMISSIONI. In questo modo non dovrai condividere i numeri delle tue carte o del c/c ma solo la mail che avrai usato in fase di iscrizione su Paypal. Disponibile l\'app per il cellulare.
- Revolut: la Carta Prepagata Revolut con IBAN Inglese (fuori UE) completamente gratuita, più libera e semplice da utilizzare. Disponibile l\'app per il cellulare.
',
paymenttype_paypal: 'Come Aprire un conto Paypal (in 2 minuti)',
+ paymenttype_paypal_carta_conto: 'Come associare una carta di Credito/Debito o un Conto Bancario su PayPal',
paymenttype_paypal_link: 'Apri il Conto con Paypal',
paymenttype_revolut: 'Come Aprire il conto con Revolut (in 2 minuti)',
paymenttype_revolut_link: 'Apri il Conto con Revolut',
entra_zoom: 'Entra in Zoom',
+ linee_guida: 'Accetto le Linee Guida',
+ video_intro: 'Vedo il Video di AYNI',
zoom: 'Partecipo agli Zoom (Video Conferenza)',
zoom_si_partecipato: 'Hai partecipato ad almeno 1 Zoom',
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.
Partecipando agli Zoom lo Staff di AYNI registrerà le presenze e verrai così abilitato.',
- zoom_what:'Che cos\'è Zoom e come funziona?',
+ zoom_what:'Tutorial come installare Zoom',
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',
@@ -74,7 +94,7 @@ const msgglobal = {
enter_prog_long: 'Sottisfatti i requisiti richiesti entrerai in Programmazione, verrai aggiunto alla Bigliettera e nella chat di gruppo corrispondente.
',
collaborate: 'Collaborazione',
collaborate_long: 'Continuo a collaborare con i miei compagni per arrivare al giorno della programmazione dove si attiverà la mia Bigliettera.',
- dream: 'Scrivi il tuo Sogno',
+ dream: 'Scrivo il mio Sogno',
dream_long: 'Scrivi qui il Sogno per il quale sei entrato in Ayni e che desideri realizzare.
Sarà condiviso a quello di tutti gli altri per sognare insieme !',
dono: 'Dono',
dono_long: 'Faccio il mio dono nella data di partenza della mia Bigliettera',
@@ -163,7 +183,7 @@ const msgglobal = {
options: 'Opzioni',
},
dashboard: {
- downline: 'Persone che hai Invitato',
+ downline: 'Invitati',
downnotreg: 'Invitati non Registrati',
notreg: 'Non Registrato',
numinvitati: 'Numero di Invitati',
@@ -188,6 +208,10 @@ const msgglobal = {
you: 'Tu',
cancella_invitato: 'Elimina Invitato',
regala_invitato: 'Regala Invitato',
+ messaggio_invito: 'Messaggio di Invito',
+ messaggio_invito_msg: 'Invia questo messaggio a tutti coloro a cui vuoi condividere questo Movimento !',
+ msginvito: 'Ciao,
Vorrei invitarti a conoscere questo Movimento di Economia Solidale
Questo è il video Introduttivo:
{videointro}
Qui trovi la pagina sul sito di spiegazione {paginaspiegazione}
Ogni 3-4 giorni alla settimana vengono organizzati delle Conferenze, tramite Zoom:
{linkzoom}
e così potrai conoscere lo Staff e fare eventuali domande.',
+ videointro: 'Video Introduttivo',
invitato_regalato: 'Invitato Regalato',
legenda: 'Legenda',
aportador_solidario: 'Chi ti ha Invitato',
@@ -211,13 +235,15 @@ const msgglobal = {
email_paypal: 'Email Paypal',
country_pay: 'Paese di Destinazione Pagamenti',
username_telegram: 'Username Telegram',
- telegram: 'Telegram BOT',
+ telegram: 'Chat Telegram \'AYNI BOT\'',
teleg_id: 'Telegram ID',
teleg_auth:'Codice Autorizzazione',
click_per_copiare:'Cliccaci sopra per copiarlo sugli appunti',
+ copia_messaggio:'Copia Messaggio',
teleg_torna_sul_bot:'1) Copia il codice cliccando sul bottone qui sopra
2) torna su Ayni BOT cliccando qui sotto 👇 ed incolla (o scrivi) il codice',
teleg_checkcode: 'Codice Telegram',
my_dream: 'Il mio Sogno',
+ saw_and_accepted: 'Condizioni',
saw_zoom_presentation: 'Ha visto Zoom',
manage_telegram: 'Gestori Telegram',
paymenttype: 'Modalità di Pagamenti Disponbili',
@@ -491,6 +517,9 @@ const msgglobal = {
cookies: 'Usiamo i Cookie per una migliore prestazione web.'
},
es: {
+ home: {
+ guida_passopasso: 'Guía paso a paso'
+ },
grid: {
editvalues: 'Cambiar valores',
addrecord: 'Agregar fila',
@@ -576,6 +605,7 @@ const msgglobal = {
go_login: 'Vuelve al Login',
incorrect_input: 'Entrada correcta.',
link_sent: 'Ahora lea su correo electrónico y confirme el registro',
+ se_non_ricevo: 'Si no recibes el correo electrónico, intenta comprobar el spam o ponte en contacto con nosotros.',
title_unsubscribe: 'Anular suscripción al boletín',
title_unsubscribe_done: 'Suscripción completada con éxito',
}
@@ -600,12 +630,18 @@ const msgglobal = {
options: 'Opciones',
},
dashboard: {
- downline: 'Personas que has invitado',
+ downline: 'Invitados',
},
reg: {
+ verified_email: 'Correo electrónico verificado',
+ reg_lista_prec: 'Por favor, introduzca el nombre, apellido y número de teléfono móvil que dejó en el pasado cuando se registró en el Chat!
De esta manera el sistema le reconocerá y mantendrá la posición de la lista.',
+ nuove_registrazioni: 'Si se trata de un NUEVO registro, debe ponerse en contacto con la persona que le ha INVITADO, que le dejará el LINK CORRECTO para hacer el registro bajo él/ella',
you: 'Tu',
cancella_invitato: 'Eliminar Invitado',
regala_invitato: 'Dar Invitado',
+ messaggio_invito: 'Mensaje de invitación',
+ messaggio_invito_msg: 'Copie el mensaje que aparece a continuación y compártalo con todos aquellos con los que desee compartir este Movimiento !',
+ msginvito: 'Hola,
Me gustaría invitarlos a conocer este Movimiento de Economía Solidaria
Este es el video introductorio {videointro}
Aquí pueden encontrar la página en el sitio web con los otros videos {paginavideo}
Cada 3-4 días de la semana se organizan conferencias, a través de Zoom, {linkzoom} y así pueden conocer al Staff y hacer cualquier pregunta.',
aportador_solidario: 'Aportador Solidario',
aportador_solidario_nome_completo:'A.S. Nombre',
aportador_solidario_ind_order:'A.S.Ind',
@@ -647,6 +683,7 @@ const msgglobal = {
onlyadult: "Confirmo que soy mayor de edad",
submit: "Registrarse",
title_verif_reg: "Verifica registro",
+ reg_ok: "Registro exitoso",
verificato: "Verificado",
non_verificato: "No Verificado",
forgetpassword: "¿Olvidaste tu contraseña?",
@@ -889,6 +926,9 @@ const msgglobal = {
cookies: 'Utilizamos cookies para un mejor rendimiento web.'
},
fr: {
+ home: {
+ guida_passopasso: 'Étape Guida'
+ },
grid: {
editvalues: 'Changer les valeurs',
addrecord: 'Ajouter une ligne',
@@ -974,6 +1014,7 @@ const msgglobal = {
go_login: 'Retour à la connexion',
incorrect_input: 'Entrée correcte.',
link_sent: 'Maintenant, lisez votre email et confirmez votre inscription',
+ se_non_ricevo: 'Si vous ne recevez pas le courriel, essayez de vérifier dans le spam, ou contactez nous',
title_unsubscribe: 'Se désabonner de la newsletter',
title_unsubscribe_done: 'Abonnement terminé avec succès',
}
@@ -998,12 +1039,14 @@ const msgglobal = {
options: 'Options',
},
dashboard: {
- downline: 'Les personnes que vous avez invitées',
+ downline: 'invités',
},
reg: {
you: 'Tu',
cancella_invitato: 'Supprimer invité',
regala_invitato: 'Donner invité',
+ messaggio_invito: 'Message d\'invitation',
+ messaggio_invito_msg: 'Copia il messaggio qui sotto e condividilo a tutti coloro a cui vuoi condividere questo Movimento !',
aportador_solidario: 'Contributeur de solidarité',
aportador_solidario_nome_completo:'A.S. Nom',
aportador_solidario_ind_order:'A.S.Ind',
@@ -1044,6 +1087,7 @@ const msgglobal = {
onlyadult: "Je confirme que je suis majeur",
submit: "S'inscrire",
title_verif_reg: "Vérifier l'inscription",
+ reg_ok: "Enregistrement réussi",
verificato: "Vérifié",
non_verificato: "Non vérifié",
forgetpassword: "Vous avez oublié votre mot de passe?",
@@ -1286,6 +1330,9 @@ const msgglobal = {
cookies: 'Nous utilisons des cookies pour améliorer les performances Web.'
},
enUs: {
+ home: {
+ guida_passopasso: 'Step By Step Guide'
+ },
grid: {
editvalues: 'Edit Values',
addrecord: 'Add Row',
@@ -1371,6 +1418,7 @@ const msgglobal = {
go_login: 'Back to Login',
incorrect_input: 'Incorrect input.',
link_sent: 'Now read your email and confirm registration',
+ se_non_ricevo: 'If you do not receive the email, try checking in the spam, or contact us',
title_unsubscribe: 'Unsubscribe to the newsletter',
title_unsubscribe_done: 'Subscription completed successfully',
}
@@ -1395,12 +1443,17 @@ const msgglobal = {
options: 'Options',
},
dashboard: {
- downline: 'People you\'ve invited',
+ downline: 'Guests',
},
reg: {
+ verified_email: 'Email Verified',
+ reg_lista_prec: 'Please enter the First Name, Last Name and mobile phone number you left in the past when you signed up for the Chat!
This way the system will recognize you and keep the position of the list',
+ nuove_registrazioni: 'If this is a NEW registration, you must contact the person who INVITED you, who will leave you the CORRECT LINK to do the Registration under him/her',
you: 'You',
cancella_invitato: 'Delete Invited',
regala_invitato: 'Give invited',
+ messaggio_invito: 'Invitation Message',
+ messaggio_invito_msg: 'Copia il messaggio qui sotto e condividilo a tutti coloro a cui vuoi condividere questo Movimento !',
aportador_solidario: 'Solidarity Contributor',
aportador_solidario_nome_completo:'A.S. Name',
aportador_solidario_ind_order:'A.S.Ind',
@@ -1441,6 +1494,7 @@ const msgglobal = {
onlyadult: "I confirm that I'm at least 18 years old",
submit: "Submit",
title_verif_reg: "Verify Registration",
+ reg_ok: "Successful Registration",
verificato: "Verified",
non_verificato: "Not Verified",
forgetpassword: "Forget Password?",
@@ -1682,6 +1736,9 @@ const msgglobal = {
cookies: 'We use cookies for better web performance.'
},
de: {
+ home: {
+ guida_passopasso: 'Step By Step Guide'
+ },
grid: {
editvalues: 'Edit Values',
addrecord: 'Add Row',
@@ -1767,6 +1824,7 @@ const msgglobal = {
go_login: 'Back to Login',
incorrect_input: 'Incorrect input.',
link_sent: 'Now read your email and confirm registration',
+ se_non_ricevo: 'If you do not receive the email, try checking in the spam, or contact us',
title_unsubscribe: 'Disiscrizione alla newsletter',
title_unsubscribe_done: 'Disiscrizione completata correttamente',
}
@@ -1794,9 +1852,14 @@ const msgglobal = {
downline: 'People you\'ve invited',
},
reg: {
+ verified_email: 'Email Verified',
+ reg_lista_prec: 'Please enter the First Name, Last Name and mobile phone number you left in the past when you signed up for the Chat!
This way the system will recognize you and keep the position of the list',
+ nuove_registrazioni: 'If this is a NEW registration, you must contact the person who INVITED you, who will leave you the CORRECT LINK to do the Registration under him/her',
you: 'You',
cancella_invitato: 'Delete Invited',
regala_invitato: 'Give invited',
+ messaggio_invito: 'Invitation Message',
+ messaggio_invito_msg: 'Copia il messaggio qui sotto e condividilo a tutti coloro a cui vuoi condividere questo Movimento !',
aportador_solidario: 'Solidarity Contributor',
aportador_solidario_nome_completo:'A.S. Name',
aportador_solidario_ind_order:'A.S.Ind',
@@ -1838,6 +1901,7 @@ const msgglobal = {
onlyadult: "I confirm that I'm at least 18 years old",
submit: "Submit",
title_verif_reg: "Verify Registration",
+ reg_ok: "Successful Registration",
verificato: "Verified",
non_verificato: "Not Verified",
forgetpassword: "Forget Password?",
diff --git a/src/store/Modules/GlobalStore.ts b/src/store/Modules/GlobalStore.ts
index 4067390..9ce3e01 100644
--- a/src/store/Modules/GlobalStore.ts
+++ b/src/store/Modules/GlobalStore.ts
@@ -207,8 +207,6 @@ namespace Getters {
return MessageStore.state.last_msgs
else if (table === 'settings')
return UserStore.state.settings
- else if (table === 'permissions')
- return UserStore.state.permissionsList
else
return null
@@ -665,10 +663,6 @@ namespace Actions {
UserStore.mutations.setusersList(res.data.usersList)
}
- if (res.data.permissionsList) {
- UserStore.state.permissionsList = res.data.permissionsList
- }
-
if (res.data.last_msgs) {
MessageStore.state.last_msgs = [...res.data.last_msgs]
}
diff --git a/src/store/Modules/UserStore.ts b/src/store/Modules/UserStore.ts
index a923125..58a9df2 100644
--- a/src/store/Modules/UserStore.ts
+++ b/src/store/Modules/UserStore.ts
@@ -40,6 +40,7 @@ export const DefaultUser: IUserFields = {
img: '',
teleg_id: 0,
saw_zoom_presentation: false,
+ saw_and_accepted: false,
},
downline: [],
calcstat: DefaultCalc,
@@ -61,6 +62,7 @@ export const DefaultProfile: IUserProfile = {
my_dream: '',
manage_telegram: false,
saw_zoom_presentation: false,
+ saw_and_accepted: false,
paymenttypes: []
}
@@ -76,7 +78,6 @@ const state: IUserState = {
isAdmin: false,
isManager: false,
usersList: [],
- permissionsList: [],
countusers: 0,
lastparamquery: {}
}
diff --git a/src/store/Modules/fieldsTable.ts b/src/store/Modules/fieldsTable.ts
index d3bbb27..f5051bf 100644
--- a/src/store/Modules/fieldsTable.ts
+++ b/src/store/Modules/fieldsTable.ts
@@ -346,14 +346,11 @@ export const fieldsTable = {
}
},
- getColByTable(table) {
- if (table === 'permissions') {
- return ['value', 'label']
- }
- },
getTableJoinByName(table) {
if (table === 'permissions')
return [shared_consts.Permissions.Admin, shared_consts.Permissions.Manager, shared_consts.Permissions.Teacher]
+ else if (table === 'accepted')
+ return [shared_consts.Accepted.CHECK_READ_GUIDELINES, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI]
else if (table === 'fieldstype')
return tools.FieldTypeArr
else
@@ -405,6 +402,21 @@ export const fieldsTable = {
AddCol(DuplicateRec),
],
+ colTableUsersBase: [
+ AddCol({ name: 'ind_order', label_trans: 'reg.ind_order' }),
+ 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' }),
+ AddCol({ name: 'surname', label_trans: 'reg.surname' }),
+ AddCol({ name: 'email', label_trans: 'reg.email' }),
+ AddCol({ name: 'verified_email', label_trans: 'reg.verified_email', fieldtype: tools.FieldType.boolean }),
+ AddCol({ name: 'profile.nationality', field: 'profile', subfield: 'nationality', label_trans: 'reg.nationality' }),
+ AddCol({ name: 'profile.cell', field: 'profile', subfield: 'cell', label_trans: 'reg.cell' }),
+ AddCol({ name: 'perm', label_trans: 'reg.perm', fieldtype: tools.FieldType.binary, jointable: 'permissions' }),
+ AddCol(DeleteRec),
+ AddCol(DuplicateRec),
+ ],
+
// IColGridTable
colTableUsers: [
// AddCol({ name: '_id', label_trans: 'reg.id' }),
@@ -422,6 +434,7 @@ export const fieldsTable = {
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.saw_zoom_presentation', field: 'profile', subfield: 'saw_zoom_presentation', label_trans: 'reg.saw_zoom_presentation', fieldtype: tools.FieldType.boolean }),
+ AddCol({ name: 'profile.saw_and_accepted', field: 'profile', subfield: 'saw_and_accepted', label_trans: 'reg.saw_and_accepted', fieldtype: tools.FieldType.binary, jointable: 'accepted' }),
AddCol({ name: 'profile.my_dream', field: 'profile', subfield: 'my_dream', label_trans: 'reg.my_dream' }),
AddCol({ name: 'profile.nationality', field: 'profile', subfield: 'nationality', label_trans: 'reg.nationality' }),
AddCol({ name: 'profile.intcode_cell', field: 'profile', subfield: 'intcode_cell', label_trans: 'reg.intcode_cell' }),
@@ -558,6 +571,15 @@ export const fieldsTable = {
colicon: 'icon',
noshow: true,
},
+ {
+ value: 'accepted',
+ label: 'Condizioni',
+ columns: colTablePermission,
+ colkey: 'value',
+ collabel: 'label',
+ colicon: 'icon',
+ noshow: true,
+ },
{
value: 'fieldstype',
label: 'Tipi di Campi',
diff --git a/src/store/Modules/tools.ts b/src/store/Modules/tools.ts
index 13d91eb..b96b9b6 100644
--- a/src/store/Modules/tools.ts
+++ b/src/store/Modules/tools.ts
@@ -34,11 +34,12 @@ import { shared_consts } from '@src/common/shared_vuejs'
import { dom } from 'quasar'
-const printf = require('util').format;
+const printf = require('util').format
const { height, width } = dom
import Cookies from 'js-cookie'
+import { forEachComment } from 'tslint'
const TokenKey = 'Admin-Token'
@@ -1461,7 +1462,7 @@ export const tools = {
id: par.param1._id,
table: tools.TABUSER,
fieldsvalue: { aportador_solidario: par.param2 },
- notifBot: {}
+ notifBot: null
}
if (par.param3) {
@@ -1496,6 +1497,25 @@ export const tools = {
}
},
+ async saveFieldToServer(myself: any, table, id, mydata) {
+ const mydatatosave = {
+ id,
+ table,
+ fieldsvalue: mydata,
+ notifBot: null
+ }
+
+
+ GlobalStore.actions.saveFieldValue(mydatatosave).then((ris) => {
+ if (ris) {
+ tools.showPositiveNotif(myself.$q, myself.$t('db.recupdated'))
+ } else {
+ tools.showNegativeNotif(myself.$q, myself.$t('db.recfailed'))
+ }
+ })
+
+ },
+
async askConfirm($q: any, mytitle, mytext, ok, cancel, myself: any, table, funcok: number, funccancel: number, par: IParamDialog) {
return $q.dialog({
message: mytext,
@@ -2824,7 +2844,11 @@ export const tools = {
},
SetBit(myval, bit) {
- myval = myval | bit
+ myval |= bit
+ return myval
+ },
+ UnSetBit(myval, bit) {
+ myval &= ~bit
return myval
},
getUnique(arr, comp) {
@@ -3151,13 +3175,21 @@ export const tools = {
return mystr.replace(/\s+/g, '')
},
- copyStringToClipboard(mythis, mystr) {
+ copyStringToClipboard(mythis, mystr, show) {
copyToClipboard(mystr).then(() => {
- tools.showNotif(mythis.$q, mythis.$t('dialog.copyclipboard') + ' \'' + mystr + '\'')
+ let msg = mythis.$t('dialog.copyclipboard')
+ if (show)
+ msg += ' \'' + mystr + '\''
+
+ tools.showNotif(mythis.$q, msg)
})
},
+ getlinkhref(mylink, text) {
+ return '' + text + ''
+ },
+
getNationsByNationality(nat, code) {
if (nat === 'IT') {
return 'Italy'
@@ -3216,8 +3248,12 @@ export const tools = {
return 'https://zoom.us/j/' + id
},
- myprintf( ) {
+ myprintf(val, params: any[]) {
+ params.forEach((par) => {
+ val = val.replace('{' + par.strin + '}', par.strout)
+ })
+ return val
}
// getLocale() {