- fix: se salvavo un record 'settable' e non era completo con tutti i campi, andava a troncare gli altri precedentemente inseriti
- ordinamento Circuiti per stato e numiscritti e descr
This commit is contained in:
@@ -1042,6 +1042,7 @@ export default defineComponent({
|
|||||||
mycities: 1,
|
mycities: 1,
|
||||||
sector: 1,
|
sector: 1,
|
||||||
recCatGrp: 1,
|
recCatGrp: 1,
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
lookup3: {
|
lookup3: {
|
||||||
|
|||||||
@@ -17,8 +17,10 @@ import { useCircuitStore } from '@store/CircuitStore'
|
|||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'CMyProfileTutorial',
|
name: 'CMyProfileTutorial',
|
||||||
components: { CSendCoins, CSaldo, CUserInfoAccount,
|
components: {
|
||||||
CMySelectCity, CMyFieldRec, CMySelect },
|
CSendCoins, CSaldo, CUserInfoAccount,
|
||||||
|
CMySelectCity, CMyFieldRec, CMySelect
|
||||||
|
},
|
||||||
emits: ['setCmd'],
|
emits: ['setCmd'],
|
||||||
props: {
|
props: {
|
||||||
mycontact: {
|
mycontact: {
|
||||||
@@ -43,7 +45,7 @@ export default defineComponent({
|
|||||||
const $route = useRoute()
|
const $route = useRoute()
|
||||||
|
|
||||||
const showAccountInfo = ref(false)
|
const showAccountInfo = ref(false)
|
||||||
const slide = ref('1')
|
const slidestep = ref('1')
|
||||||
|
|
||||||
const username = ref('')
|
const username = ref('')
|
||||||
const showsendCoinTo = ref(false)
|
const showsendCoinTo = ref(false)
|
||||||
@@ -51,6 +53,25 @@ export default defineComponent({
|
|||||||
const contact = ref(<IUserFields | null>null)
|
const contact = ref(<IUserFields | null>null)
|
||||||
const circuit = ref(<ICircuit | null | undefined>null)
|
const circuit = ref(<ICircuit | null | undefined>null)
|
||||||
|
|
||||||
|
const arrStep = [
|
||||||
|
{
|
||||||
|
label: t('tutorial.step_residence_title'),
|
||||||
|
checkOk: function () { return contact.value ? !!contact.value.profile.resid_province : false },
|
||||||
|
step: '1',
|
||||||
|
icon: 'house'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
const numstep = computed(() => arrStep.length)
|
||||||
|
|
||||||
|
const progressStep = computed(() => {
|
||||||
|
let prStep = 0
|
||||||
|
|
||||||
|
return prStep / numstep.value
|
||||||
|
})
|
||||||
|
|
||||||
|
const progressLabel = computed(() => (progressStep.value * 100).toFixed(2) + '%')
|
||||||
|
|
||||||
watch(() => props.mycontact, (newval, oldval) => {
|
watch(() => props.mycontact, (newval, oldval) => {
|
||||||
console.log('watch: mycontact')
|
console.log('watch: mycontact')
|
||||||
mounted()
|
mounted()
|
||||||
@@ -87,17 +108,21 @@ export default defineComponent({
|
|||||||
emit('setCmd', $q, cmd, myusername, value, dest)
|
emit('setCmd', $q, cmd, myusername, value, dest)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getLabelByStatusStep(step: string) {
|
||||||
|
let mystr = ''
|
||||||
|
|
||||||
|
return mystr
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
const checkifDisabled = computed(() => {
|
const checkifDisabled = computed(() => {
|
||||||
let ret = true
|
let ret = true
|
||||||
if (slide.value === '1') {
|
let mystep = parseInt(slidestep.value)
|
||||||
// Invitante + Email
|
if (mystep > 0) {
|
||||||
} else if (slide.value === '2') {
|
return !arrStep[mystep - 1].checkOk()
|
||||||
// Username
|
} else {
|
||||||
} else if (slide.value === '3') {
|
return false
|
||||||
// Password
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret
|
|
||||||
})
|
})
|
||||||
|
|
||||||
onMounted(mounted)
|
onMounted(mounted)
|
||||||
@@ -114,7 +139,10 @@ export default defineComponent({
|
|||||||
showsendCoinTo,
|
showsendCoinTo,
|
||||||
circuit,
|
circuit,
|
||||||
showAccountInfo,
|
showAccountInfo,
|
||||||
slide,
|
slidestep,
|
||||||
|
numstep,
|
||||||
|
progressLabel,
|
||||||
|
arrStep,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,22 +1,42 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-if="contact">
|
<div v-if="contact">
|
||||||
<div class="q-gutter-md">
|
<div class="text-center bg-green text-white text-h6">
|
||||||
|
{{ $t('tutorial.title') }} -
|
||||||
|
<span class="text-h7"
|
||||||
|
>({{
|
||||||
|
$t('tutorial.step', { step: slidestep, numstep: numstep })
|
||||||
|
}})</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<q-linear-progress size="25px" :value="progressStep" color="accent">
|
||||||
|
<div class="absolute-full flex flex-center">
|
||||||
|
<q-badge color="white" text-color="accent" :label="progressLabel1" />
|
||||||
|
</div>
|
||||||
|
</q-linear-progress>
|
||||||
|
|
||||||
|
<div class="q-gutter-sm">
|
||||||
<q-carousel
|
<q-carousel
|
||||||
v-model="slide"
|
ref="carousel"
|
||||||
|
v-model="slidestep"
|
||||||
transition-prev="slide-right"
|
transition-prev="slide-right"
|
||||||
transition-next="slide-left"
|
transition-next="slide-left"
|
||||||
swipeable
|
swipeable
|
||||||
animated
|
animated
|
||||||
control-color="white"
|
control-color="white"
|
||||||
navigation
|
|
||||||
padding
|
padding
|
||||||
arrows
|
arrows
|
||||||
height="200px"
|
height="250px"
|
||||||
class="text-white shadow-1 rounded-borders"
|
class="bg-blue text-white shadow-1 rounded-borders"
|
||||||
>
|
>
|
||||||
<q-carousel-slide name="1" class="column no-wrap flex-center">
|
<q-carousel-slide
|
||||||
<q-icon name="house" size="56px" />
|
v-for="(recstep, index) in arrStep"
|
||||||
<div class="q-mt-sm text-center">
|
:key="index"
|
||||||
|
:name="recstep.step"
|
||||||
|
class="column no-wrap flex-center"
|
||||||
|
>
|
||||||
|
<q-icon :name="recstep.icon" size="36px" />
|
||||||
|
<div class="q-mt-sm text-center"></div>
|
||||||
|
<div v-if="recstep.step === '1'" class="q-mt-sm text-center">
|
||||||
<CMySelectCity
|
<CMySelectCity
|
||||||
:label="$t('reg.resid_province')"
|
:label="$t('reg.resid_province')"
|
||||||
table="users"
|
table="users"
|
||||||
@@ -32,18 +52,7 @@
|
|||||||
</CMySelectCity>
|
</CMySelectCity>
|
||||||
</div>
|
</div>
|
||||||
</q-carousel-slide>
|
</q-carousel-slide>
|
||||||
<q-carousel-slide name="2" class="column no-wrap flex-center">
|
|
||||||
<q-icon name="live_tv" size="56px" />
|
|
||||||
<div class="q-mt-md text-center"></div>
|
|
||||||
</q-carousel-slide>
|
|
||||||
<q-carousel-slide name="3" class="column no-wrap flex-center">
|
|
||||||
<q-icon name="layers" size="56px" />
|
|
||||||
<div class="q-mt-md text-center"></div>
|
|
||||||
</q-carousel-slide>
|
|
||||||
<q-carousel-slide name="4" class="column no-wrap flex-center">
|
|
||||||
<q-icon name="terrain" size="56px" />
|
|
||||||
<div class="q-mt-md text-center"></div>
|
|
||||||
</q-carousel-slide>
|
|
||||||
<template v-slot:control>
|
<template v-slot:control>
|
||||||
<q-carousel-control
|
<q-carousel-control
|
||||||
position="bottom-right"
|
position="bottom-right"
|
||||||
@@ -51,17 +60,15 @@
|
|||||||
class="q-gutter-xs"
|
class="q-gutter-xs"
|
||||||
>
|
>
|
||||||
<q-btn
|
<q-btn
|
||||||
v-if="slide !== '1'"
|
v-if="slidestep !== '1'"
|
||||||
push
|
push
|
||||||
text-color="black"
|
|
||||||
icon="arrow_left"
|
icon="arrow_left"
|
||||||
:label="$t('dialog.indietro')"
|
:label="$t('dialog.indietro')"
|
||||||
@click="$refs.carousel.previous()"
|
@click="$refs.carousel.previous()"
|
||||||
/>
|
/>
|
||||||
<q-btn
|
<q-btn
|
||||||
v-if="slide !== '4'"
|
v-if="slidestep !== '4'"
|
||||||
push
|
push
|
||||||
color="primary"
|
|
||||||
icon="arrow_right"
|
icon="arrow_right"
|
||||||
:label="$t('dialog.avanti')"
|
:label="$t('dialog.avanti')"
|
||||||
:disabled="checkifDisabled"
|
:disabled="checkifDisabled"
|
||||||
@@ -73,7 +80,7 @@
|
|||||||
<div class="row justify-center">
|
<div class="row justify-center">
|
||||||
<q-btn-toggle
|
<q-btn-toggle
|
||||||
glossy
|
glossy
|
||||||
v-model="slide"
|
v-model="slidestep"
|
||||||
:options="[
|
:options="[
|
||||||
{ label: '1', value: '1' },
|
{ label: '1', value: '1' },
|
||||||
{ label: 2, value: '2' },
|
{ label: 2, value: '2' },
|
||||||
|
|||||||
@@ -24,7 +24,6 @@
|
|||||||
:input-class="myclass"
|
:input-class="myclass"
|
||||||
:options="valori"
|
:options="valori"
|
||||||
:option-value="optval"
|
:option-value="optval"
|
||||||
options-selected-class="text-deep-blue"
|
|
||||||
:class="myclass ? myclass : 'combowidth'"
|
:class="myclass ? myclass : 'combowidth'"
|
||||||
style="min-width: 250px !important"
|
style="min-width: 250px !important"
|
||||||
>
|
>
|
||||||
@@ -91,7 +90,6 @@
|
|||||||
map-options
|
map-options
|
||||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||||
@filter="filterFn"
|
@filter="filterFn"
|
||||||
options-selected-class="text-deep-blue"
|
|
||||||
v-bind="$attrs"
|
v-bind="$attrs"
|
||||||
>
|
>
|
||||||
<template v-if="getIcon()" v-slot:prepend>
|
<template v-if="getIcon()" v-slot:prepend>
|
||||||
@@ -133,11 +131,12 @@
|
|||||||
emit-value
|
emit-value
|
||||||
stack-label
|
stack-label
|
||||||
:options="valori"
|
:options="valori"
|
||||||
options-selected-class="text-deep-blue"
|
|
||||||
:option-value="optval"
|
:option-value="optval"
|
||||||
:option-label="optlab"
|
:option-label="optlab"
|
||||||
:dense="dense">
|
:dense="dense">
|
||||||
|
|
||||||
|
<!--options-selected-class="text-deep-blue"-->
|
||||||
|
|
||||||
<template v-if="getIcon()" v-slot:prepend>
|
<template v-if="getIcon()" v-slot:prepend>
|
||||||
<q-icon :name="getIcon()" />
|
<q-icon :name="getIcon()" />
|
||||||
</template>
|
</template>
|
||||||
@@ -193,7 +192,6 @@
|
|||||||
@new-value="newvaluefuncfirst"
|
@new-value="newvaluefuncfirst"
|
||||||
emit-value
|
emit-value
|
||||||
input-debounce="0"
|
input-debounce="0"
|
||||||
options-selected-class="text-deep-blue"
|
|
||||||
map-options
|
map-options
|
||||||
v-bind="$attrs"
|
v-bind="$attrs"
|
||||||
:class="myclass ? myclass : 'combowidth'">
|
:class="myclass ? myclass : 'combowidth'">
|
||||||
|
|||||||
@@ -6,17 +6,12 @@
|
|||||||
v-model="myvalue"
|
v-model="myvalue"
|
||||||
:pickup="false"
|
:pickup="false"
|
||||||
:addnone="true"
|
:addnone="true"
|
||||||
|
:dense="false"
|
||||||
:tablesel="table"
|
:tablesel="table"
|
||||||
:myclass="myclass"
|
:myclass="myclass"
|
||||||
:optval="fieldsTable.getKeyByTable(jointable)"
|
:optval="fieldsTable.getKeyByTable(jointable)"
|
||||||
:optlab="fieldsTable.getLabelByTable(jointable)"
|
:optlab="fieldsTable.getLabelByTable(jointable)"
|
||||||
:options="
|
:options="globalStore.getTableJoinByName(jointable, false, false, '')"
|
||||||
globalStore.getTableJoinByName(
|
|
||||||
jointable,
|
|
||||||
false,
|
|
||||||
false,
|
|
||||||
''
|
|
||||||
)"
|
|
||||||
:useinput="false"
|
:useinput="false"
|
||||||
@update:value="changevalRec"
|
@update:value="changevalRec"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
<p class="text-subtitle1">Privacy Policy di {{url}}</p>
|
<p class="text-subtitle1">Privacy Policy di {{url}}</p>
|
||||||
<p class="text-subtitle1">Informativa sul trattamento dei dati personali ai sensi dell’art. 13 del
|
<p class="text-subtitle1">Informativa sul trattamento dei dati personali ai sensi dell’art. 13 del
|
||||||
Regolamento
|
Regolamento
|
||||||
(UE) n. 2016/679</p>
|
(UE) n. 2003 n.196</p>
|
||||||
|
|
||||||
<p>Ai sensi dell’art. 13 del Regolamento (UE) n. 2016/679, anche denominato General Data Protection
|
<p>Ai sensi dell’art. 13 del Regolamento (UE) n. 2003 n.196, anche denominato General Data Protection
|
||||||
Regulation
|
Regulation
|
||||||
(di seguito il “GDPR“), {{SiteName}} La informa che i Suoi dati personali (di seguito i “Dati“),
|
(di seguito il “GDPR“), {{SiteName}} La informa che i Suoi dati personali (di seguito i “Dati“),
|
||||||
saranno trattati nel rispetto di quanto previsto dal GDPR e di ogni normativa applicabile in riferimento
|
saranno trattati nel rispetto di quanto previsto dal GDPR e di ogni normativa applicabile in riferimento
|
||||||
@@ -114,9 +114,9 @@
|
|||||||
<div v-else-if="toolsext.isLang('fr')">
|
<div v-else-if="toolsext.isLang('fr')">
|
||||||
<p class="text-subtitle1">Politique de confidentialité de {{url}}</p>
|
<p class="text-subtitle1">Politique de confidentialité de {{url}}</p>
|
||||||
<p class="text-subtitle1">Information sur le traitement des données personnelles conformément à l'article 13 du
|
<p class="text-subtitle1">Information sur le traitement des données personnelles conformément à l'article 13 du
|
||||||
Code civil italien Règlement (UE) n° 2016/679.</p>
|
Code civil italien Règlement (UE) n° 2003 n.196.</p>
|
||||||
|
|
||||||
<p>En vertu de l'article 13 du règlement (UE) n° 2016/679, également appelé protection générale des données
|
<p>En vertu de l'article 13 du règlement (UE) n° 2003 n.196, également appelé protection générale des données
|
||||||
Règlement
|
Règlement
|
||||||
(ci-après le "GDPR"), {{SiteName}}} Nous vous informons que vos données personnelles (ci-après dénommées les
|
(ci-après le "GDPR"), {{SiteName}}} Nous vous informons que vos données personnelles (ci-après dénommées les
|
||||||
"Données"),
|
"Données"),
|
||||||
@@ -224,9 +224,9 @@
|
|||||||
<div v-else-if="toolsext.isLang('es')">
|
<div v-else-if="toolsext.isLang('es')">
|
||||||
<p class="text-subtitle1">Política de privacidad de {{url}}</p>
|
<p class="text-subtitle1">Política de privacidad de {{url}}</p>
|
||||||
<p class="text-subtitle1">Información sobre el procesamiento de datos personales de conformidad con el art.
|
<p class="text-subtitle1">Información sobre el procesamiento de datos personales de conformidad con el art.
|
||||||
13 del Reglamento (UE) n. 2016/679</p>
|
13 del Reglamento (UE) n. 2003 n.196</p>
|
||||||
|
|
||||||
<p>Según el art. 13 del Reglamento (UE) n. 2016/679, también llamado Reglamento general de protección de
|
<p>Según el art. 13 del Reglamento (UE) n. 2003 n.196, también llamado Reglamento general de protección de
|
||||||
datos (de seguido del "RGPD"), {{SiteName}} le informa que sus datos personales (en adelante, los
|
datos (de seguido del "RGPD"), {{SiteName}} le informa que sus datos personales (en adelante, los
|
||||||
"Datos"), será tratado de conformidad con las disposiciones del GDPR y cualquier legislación
|
"Datos"), será tratado de conformidad con las disposiciones del GDPR y cualquier legislación
|
||||||
aplicable con referencia a procesamiento de datos personales de acuerdo con la siguiente
|
aplicable con referencia a procesamiento de datos personales de acuerdo con la siguiente
|
||||||
@@ -353,9 +353,9 @@
|
|||||||
<p class="text-subtitle1">Privacy Policy {{url}}</p>
|
<p class="text-subtitle1">Privacy Policy {{url}}</p>
|
||||||
<p class="text-subtitle1">Information on the processing of personal data in accordance with art. 13 of the
|
<p class="text-subtitle1">Information on the processing of personal data in accordance with art. 13 of the
|
||||||
Regulation
|
Regulation
|
||||||
(EU) No 2016/679</p>
|
(EU) No 2003 n.196</p>
|
||||||
|
|
||||||
<p>In accordance with art. 13 of Regulation (EU) no. 2016/679, also called General Data Protection
|
<p>In accordance with art. 13 of Regulation (EU) no. 2003 n.196, also called General Data Protection
|
||||||
Regulation
|
Regulation
|
||||||
(hereinafter the "GDPR"), {{SiteName}}} informs you that your personal data (hereinafter the "Data"),
|
(hereinafter the "GDPR"), {{SiteName}}} informs you that your personal data (hereinafter the "Data"),
|
||||||
will be treated in compliance with the provisions of the GDPR and any applicable legislation in reference to
|
will be treated in compliance with the provisions of the GDPR and any applicable legislation in reference to
|
||||||
|
|||||||
@@ -1437,6 +1437,13 @@ const msg_it = {
|
|||||||
people: 'Inv.',
|
people: 'Inv.',
|
||||||
peoplelegend: 'Numero d\'Invitati',
|
peoplelegend: 'Numero d\'Invitati',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
tutorial: {
|
||||||
|
title: 'Completa il tuo Profilo',
|
||||||
|
step: 'passo {step} su {numstep}',
|
||||||
|
|
||||||
|
step_residence_title: 'Provincia',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user