- 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:
Surya Paolo
2023-03-05 22:04:28 +01:00
parent 3f808189e3
commit 7a9689125b
7 changed files with 92 additions and 56 deletions

View File

@@ -1042,6 +1042,7 @@ export default defineComponent({
mycities: 1,
sector: 1,
recCatGrp: 1,
}
},
lookup3: {

View File

@@ -17,8 +17,10 @@ import { useCircuitStore } from '@store/CircuitStore'
export default defineComponent({
name: 'CMyProfileTutorial',
components: { CSendCoins, CSaldo, CUserInfoAccount,
CMySelectCity, CMyFieldRec, CMySelect },
components: {
CSendCoins, CSaldo, CUserInfoAccount,
CMySelectCity, CMyFieldRec, CMySelect
},
emits: ['setCmd'],
props: {
mycontact: {
@@ -43,7 +45,7 @@ export default defineComponent({
const $route = useRoute()
const showAccountInfo = ref(false)
const slide = ref('1')
const slidestep = ref('1')
const username = ref('')
const showsendCoinTo = ref(false)
@@ -51,6 +53,25 @@ export default defineComponent({
const contact = ref(<IUserFields | null>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) => {
console.log('watch: mycontact')
mounted()
@@ -87,17 +108,21 @@ export default defineComponent({
emit('setCmd', $q, cmd, myusername, value, dest)
}
const checkifDisabled = computed(() => {
let ret = true
if (slide.value === '1') {
// Invitante + Email
} else if (slide.value === '2') {
// Username
} else if (slide.value === '3') {
// Password
function getLabelByStatusStep(step: string) {
let mystr = ''
return mystr
}
return ret
const checkifDisabled = computed(() => {
let ret = true
let mystep = parseInt(slidestep.value)
if (mystep > 0) {
return !arrStep[mystep - 1].checkOk()
} else {
return false
}
})
onMounted(mounted)
@@ -114,7 +139,10 @@ export default defineComponent({
showsendCoinTo,
circuit,
showAccountInfo,
slide,
slidestep,
numstep,
progressLabel,
arrStep,
}
},
})

View File

@@ -1,22 +1,42 @@
<template>
<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
v-model="slide"
ref="carousel"
v-model="slidestep"
transition-prev="slide-right"
transition-next="slide-left"
swipeable
animated
control-color="white"
navigation
padding
arrows
height="200px"
class="text-white shadow-1 rounded-borders"
height="250px"
class="bg-blue text-white shadow-1 rounded-borders"
>
<q-carousel-slide name="1" class="column no-wrap flex-center">
<q-icon name="house" size="56px" />
<div class="q-mt-sm text-center">
<q-carousel-slide
v-for="(recstep, index) in arrStep"
: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
:label="$t('reg.resid_province')"
table="users"
@@ -32,18 +52,7 @@
</CMySelectCity>
</div>
</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>
<q-carousel-control
position="bottom-right"
@@ -51,17 +60,15 @@
class="q-gutter-xs"
>
<q-btn
v-if="slide !== '1'"
v-if="slidestep !== '1'"
push
text-color="black"
icon="arrow_left"
:label="$t('dialog.indietro')"
@click="$refs.carousel.previous()"
/>
<q-btn
v-if="slide !== '4'"
v-if="slidestep !== '4'"
push
color="primary"
icon="arrow_right"
:label="$t('dialog.avanti')"
:disabled="checkifDisabled"
@@ -73,7 +80,7 @@
<div class="row justify-center">
<q-btn-toggle
glossy
v-model="slide"
v-model="slidestep"
:options="[
{ label: '1', value: '1' },
{ label: 2, value: '2' },

View File

@@ -24,7 +24,6 @@
:input-class="myclass"
:options="valori"
:option-value="optval"
options-selected-class="text-deep-blue"
:class="myclass ? myclass : 'combowidth'"
style="min-width: 250px !important"
>
@@ -91,7 +90,6 @@
map-options
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
@filter="filterFn"
options-selected-class="text-deep-blue"
v-bind="$attrs"
>
<template v-if="getIcon()" v-slot:prepend>
@@ -133,11 +131,12 @@
emit-value
stack-label
:options="valori"
options-selected-class="text-deep-blue"
:option-value="optval"
:option-label="optlab"
:dense="dense">
<!--options-selected-class="text-deep-blue"-->
<template v-if="getIcon()" v-slot:prepend>
<q-icon :name="getIcon()" />
</template>
@@ -193,7 +192,6 @@
@new-value="newvaluefuncfirst"
emit-value
input-debounce="0"
options-selected-class="text-deep-blue"
map-options
v-bind="$attrs"
:class="myclass ? myclass : 'combowidth'">

View File

@@ -6,17 +6,12 @@
v-model="myvalue"
:pickup="false"
:addnone="true"
:dense="false"
:tablesel="table"
:myclass="myclass"
:optval="fieldsTable.getKeyByTable(jointable)"
:optlab="fieldsTable.getLabelByTable(jointable)"
:options="
globalStore.getTableJoinByName(
jointable,
false,
false,
''
)"
:options="globalStore.getTableJoinByName(jointable, false, false, '')"
:useinput="false"
@update:value="changevalRec"
>

View File

@@ -4,9 +4,9 @@
<p class="text-subtitle1">Privacy Policy di {{url}}</p>
<p class="text-subtitle1">Informativa sul trattamento dei dati personali ai sensi dellart. 13 del
Regolamento
(UE) n. 2016/679</p>
(UE) n. 2003 n.196</p>
<p>Ai sensi dellart. 13 del Regolamento (UE) n. 2016/679, anche denominato General Data Protection
<p>Ai sensi dellart. 13 del Regolamento (UE) n. 2003 n.196, anche denominato General Data Protection
Regulation
(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
@@ -114,9 +114,9 @@
<div v-else-if="toolsext.isLang('fr')">
<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
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
(ci-après le "GDPR"), {{SiteName}}} Nous vous informons que vos données personnelles (ci-après dénommées les
"Données"),
@@ -224,9 +224,9 @@
<div v-else-if="toolsext.isLang('es')">
<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.
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"), 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
@@ -353,9 +353,9 @@
<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
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
(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

View File

@@ -1437,6 +1437,13 @@ const msg_it = {
people: 'Inv.',
peoplelegend: 'Numero d\'Invitati',
},
tutorial: {
title: 'Completa il tuo Profilo',
step: 'passo {step} su {numstep}',
step_residence_title: 'Provincia',
},
},
};