From 175bba7720db20e65937e891e9da448eec02eb8b Mon Sep 17 00:00:00 2001 From: Surya Paolo Date: Wed, 22 Mar 2023 15:54:56 +0100 Subject: [PATCH] - Provincia obbligatoria, chiedo conferma se non vuole entrare nel circuito. --- .../CMyProfileTutorial/CMyProfileTutorial.ts | 70 +++++++++++++++++-- .../CMyProfileTutorial/CMyProfileTutorial.vue | 16 +++-- src/model/UserStore.ts | 1 + src/statics/lang/it.js | 1 + src/store/UserStore.ts | 13 ++++ src/views/admin/dbop/dbop.vue | 8 +++ 6 files changed, 98 insertions(+), 11 deletions(-) diff --git a/src/components/CMyProfileTutorial/CMyProfileTutorial.ts b/src/components/CMyProfileTutorial/CMyProfileTutorial.ts index a442cd18..a08371a5 100755 --- a/src/components/CMyProfileTutorial/CMyProfileTutorial.ts +++ b/src/components/CMyProfileTutorial/CMyProfileTutorial.ts @@ -97,6 +97,7 @@ export default defineComponent({ if ((step.value === STEP_CIRCUIT - 1) || (step.value === STEP_CIRCUIT )) { mycircuit.value = circuitStore.getCircuitByProvince(strProv.value) + userStore.savenoCircuit(isAskedToCircuit()) } if (step.value === STEP_NAME_SURNAME + 1) { @@ -129,7 +130,9 @@ export default defineComponent({ extratitle: function () { return ': ' + contact.value!.profile.resid_province }, label: t('tutorial.step_residence'), checkOk: function () { return contact.value ? !!contact.value.profile.resid_province : false }, - icon: 'house' + checkOkReal: function () { return this.checkOk() }, + icon: 'house', + required: true, }, { step: STEP_NAME_SURNAME, // 2 @@ -137,7 +140,9 @@ export default defineComponent({ extratitle: function () { return ': ' + (contact.value ? tools.getNomeUtenteEUsernameByRecUser(contact.value) : '') }, label: t('tutorial.step_nomecognome'), checkOk: function () { return ((contact.value ? !!contact.value.name : false) || userStore.my.profile.noNameSurname) }, - icon: 'user' + checkOkReal: function () { return ((contact.value ? !!contact.value.name : false)) }, + icon: 'user', + required: false, }, { step: STEP_CIRCUIT, @@ -147,12 +152,20 @@ export default defineComponent({ label_ok: t('tutorial.step_circuito_ok'), checkOk: function () { if (mycircuit.value) { - return (userStore.IsMyCircuitByName(mycircuit.value.name) || - userStore.IsAskedCircuitByName(mycircuit.value.name)) + return ((userStore.IsMyCircuitByName(mycircuit.value.name) || + userStore.IsAskedCircuitByName(mycircuit.value.name))) || userStore.my.profile.noCircuit + } + return false + }, + checkOkReal: function () { + if (mycircuit.value) { + return ((userStore.IsMyCircuitByName(mycircuit.value.name) || + userStore.IsAskedCircuitByName(mycircuit.value.name))) } return false }, icon: 'img: images/1ris_rosso_100.png', + required: false, }, { step: 4, @@ -162,7 +175,9 @@ export default defineComponent({ checkOk: function () { return userStore.my.profile.calc.numGoodsAndServices! > 0 }, + checkOkReal: function () { return this.checkOk() }, icon: 'fas fa-tshirt', + required: false, }, { step: STEP_FOTO, @@ -172,7 +187,9 @@ export default defineComponent({ checkOk: function () { return !!userStore.my.profile.img }, + checkOkReal: function () { return this.checkOk() }, icon: 'fas fa-tshirt', + required: false, }, { step: 6, @@ -182,7 +199,9 @@ export default defineComponent({ checkOk: function () { return true }, + checkOkReal: function () { return this.checkOk() }, icon: 'fas fa-tshirt', + required: false, }, ] @@ -302,6 +321,14 @@ export default defineComponent({ } + function isNextDisable() { + try { + return arrStep[step.value - 1].required && !arrStep[step.value - 1].checkOk() + } catch (e) { + return false + } + } + function numStepCompleted() { return prStep.value } @@ -327,6 +354,37 @@ export default defineComponent({ } + function isAskedToCircuit(): boolean { + return !!(mycircuit.value && ((!userStore.IsMyCircuitByName(mycircuit.value.name) && !userStore.IsAskedCircuitByName(mycircuit.value.name)))) + } + + function isSalta() { + return step.value === STEP_CIRCUIT && (mycircuit.value && isAskedToCircuit()) + } + + function askToConfirmSkip() { + return $q.dialog({ + message: t('circuit.skipentercircuit'), + html: true, + ok: { + label: t('dialog.yes'), + push: false, + }, + title: '', + cancel: true, + persistent: false, + }).onOk(() => { + step.value++ + return true + }).onCancel(() => { + return false + }) + } + + function getColorDone(step: number) { + return arrStep[step - 1].checkOkReal() ? 'positive' : 'negative' + } + onMounted(mounted) return { @@ -349,6 +407,7 @@ export default defineComponent({ mycircuit, userStore, clickFinish, + isNextDisable, mycards, filtroutente, getColor, @@ -357,6 +416,9 @@ export default defineComponent({ getColorTutorial, getFirstStepToFill, STEP_CIRCUIT, + isSalta, + askToConfirmSkip, + getColorDone, } }, }) diff --git a/src/components/CMyProfileTutorial/CMyProfileTutorial.vue b/src/components/CMyProfileTutorial/CMyProfileTutorial.vue index 89142e61..cbe512cf 100755 --- a/src/components/CMyProfileTutorial/CMyProfileTutorial.vue +++ b/src/components/CMyProfileTutorial/CMyProfileTutorial.vue @@ -48,7 +48,7 @@ color="primary" animated vertical - header-nav + :header-nav="!!contact.profile.resid_province" >
diff --git a/src/model/UserStore.ts b/src/model/UserStore.ts index 4bb230e9..d28ff462 100755 --- a/src/model/UserStore.ts +++ b/src/model/UserStore.ts @@ -115,6 +115,7 @@ export interface IUserProfile { notif_sector_goods: number[] stepTutorial: number noNameSurname: boolean + noCircuit: boolean noFoto: boolean // in memory diff --git a/src/statics/lang/it.js b/src/statics/lang/it.js index b851c2a3..cdf0735a 100755 --- a/src/statics/lang/it.js +++ b/src/statics/lang/it.js @@ -1187,6 +1187,7 @@ const msg_it = { preferences: 'Preferenze', }, circuit: { + skipentercircuit: 'Confermare di non voler entrare ora nel Circuito RIS?\nLo si potrà comunque fare in un secondo momento, dal menu "Circuiti".', vaialcircuito: 'Vai al Circuito', iscritti: 'iscritti trovati', wait_acceptation: 'ℹ️ La tua richiesta è stata inoltrata. Entro breve verrai abilitato.', diff --git a/src/store/UserStore.ts b/src/store/UserStore.ts index c1dbb96a..678a1457 100755 --- a/src/store/UserStore.ts +++ b/src/store/UserStore.ts @@ -83,6 +83,7 @@ export const DefaultUser: IUserFields = { notif_sector_goods: [], stepTutorial: 0, noNameSurname: false, + noCircuit: false, noFoto: false, asked_circuits: [], refused_circuits: [], @@ -147,6 +148,7 @@ export const DefaultProfile: IUserProfile = { notif_sector_goods: [], stepTutorial: 0, noNameSurname: false, + noCircuit: false, noFoto: false, asked_circuits: [], refused_circuits: [], @@ -878,6 +880,17 @@ export const useUserStore = defineStore('UserStore', { return await this.execDbOpUser({mydata}) } }, + async savenoCircuit(val: boolean) { + const mydata = { + _id: this.my._id, + dbop: 'noCircuit', + value: val, + } + if (this.my.profile.noCircuit !== val) { + this.my.profile.noCircuit = val + return await this.execDbOpUser({mydata}) + } + }, async savenoFoto(val: boolean) { const mydata = { _id: this.my._id, diff --git a/src/views/admin/dbop/dbop.vue b/src/views/admin/dbop/dbop.vue index f2a8e419..4a4c6a7a 100755 --- a/src/views/admin/dbop/dbop.vue +++ b/src/views/admin/dbop/dbop.vue @@ -389,6 +389,14 @@ >
+
+ +
+