-Poter entrare nel login anche con l'username Telegram !

- Se clicchi sulla foto, mi apre il profilo anzichè l'invio dei RIS
- ++ Filtro sulle ricerche: Scegliere un Circuito specifico.
- Nella lista iscritti compaiono anche i cancellati...
- n "Attività" si vede tutto allargato, non sta nella dimensione della pagina.
- Nelle notifiche della campanellina non si vede più il titolo... (è vuoto).
- Non funziona il Filtro per Settore (nella Home sugli Eventi)
- Filtri avanzati da mostrare solo se clicco sul bottone.
- I menu in basso non funzionano !
- Nel menu "Iscritti" del circuito, non compare più la ricerca ! Riattivarla
- Opzione di mandare una email quando uno si registra al Circuito
- ++ Opzione per il Circuito: Chiedi di entrare agli admin (e non in automatico).
This commit is contained in:
Surya Paolo
2025-01-09 15:17:21 +01:00
parent 3734762a8b
commit da6bef1b96
35 changed files with 1386 additions and 1088 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 634 KiB

After

Width:  |  Height:  |  Size: 424 KiB

View File

@@ -11,6 +11,7 @@ import { CSendCoins } from '@/components/CSendCoins'
export default defineComponent({
name: 'CContactUser',
emits: ['showed'],
props: {
myuser: {
type: Object as PropType<IUserFields>,
@@ -36,7 +37,7 @@ export default defineComponent({
},
},
components: { CLabel, CSendCoins },
setup(props) {
setup(props, { emit }) {
const $q = useQuasar()
const userStore = useUserStore()
const globalStore = useGlobalStore()
@@ -86,6 +87,11 @@ export default defineComponent({
}
function showed() {
loading.value = false
emit('showed')
}
return {
tools,
@@ -99,6 +105,7 @@ export default defineComponent({
clickOpenSendCoin,
site,
loading,
showed,
}
},
})

View File

@@ -17,7 +17,7 @@
color="orange"
rounded
:label="$t('profile.myactivities')"
:to="`/attivita/` + myuser.username"
:to="`/my/` + myuser.username"
>
</q-btn>
</div>
@@ -85,7 +85,7 @@
showsendCoinTo = false;
loading = false;
"
@showed="loading = false"
@showed="showed"
>
</CSendCoins>
</div>

View File

@@ -64,19 +64,19 @@ export default defineComponent({
const contact = computed(() => userStore.my)
const searchType = ref('username')
const searchType = ref('receivers')
const usersList = ref(<any>{ show: false, title: '', list: [], listgroup: [] })
const options = ref([
{
label: 'Cerca per Nome o Username',
value: 'username'
},
{
label: 'Lista dei Riceventi di oggi',
value: 'receivers'
},
{
label: 'Cerca per Nome o Username',
value: 'username'
},
{
label: 'Scansiona il QRCode del Destinatario',
value: 'qrcode'

View File

@@ -6,7 +6,7 @@
:options="options"
color="primary"
/>
<q-tab-panels v-model="searchType" animated class="shadow-2 rounded-borders">
<q-tab-panels v-model="searchType" keep-alive animated class="shadow-2 rounded-borders">
<q-tab-panel name="username">
<CGridTableRec
prop_mytable="users"

View File

@@ -367,6 +367,18 @@ export default defineComponent({
icon: 'flag',
tablesel: 'provinces',
},
{
label: 'Circuito',
table: 'circuits',
key: 'profile.mycircuits.circuitname',
type: costanti.FieldType.select,
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'circuits', costanti.FILTER_TUTTI),
addall: true,
arrvalue: [],
filter: null,
useinput: false,
icon: 'fas fa-globe-europe'
},
{
label: 'Comune',
table: 'cities',
@@ -380,6 +392,7 @@ export default defineComponent({
// filter: getFilterCitiesByProvince,
// param1: shared_consts.PARAM_SHOW_PROVINCE,
tablesel: 'cities',
filteradv: true,
},
/*{
label: 'Visibilità',
@@ -401,10 +414,10 @@ export default defineComponent({
type: costanti.FieldType.select,
filter: null,
addall: true,
notinsearch: true,
notinsearch: false,
useinput: false,
},
{
/*{
label: 'Categoria',
table: 'skills',
key: 'idSkill',
@@ -415,7 +428,7 @@ export default defineComponent({
filter: getFilterSkills,
showcount: true,
useinput: false,
},
},*/
{
label: 'Offro/Cerco',
table: 'adtypes',
@@ -426,6 +439,7 @@ export default defineComponent({
type: costanti.FieldType.select,
filter: null,
useinput: false,
filteradv: true,
},
/*{
label: 'Specializzazione',
@@ -485,7 +499,6 @@ export default defineComponent({
filteradv: true,
//icon: 'swap_horizontal_circle',
},
/*
{
label: '',
table: '',
@@ -501,8 +514,6 @@ export default defineComponent({
icon: '',
},
*/
]
searchList_Events.value = [
@@ -542,6 +553,18 @@ export default defineComponent({
useinput: true,
icon: 'flag',
},
{
label: 'Circuito',
table: 'circuits',
key: 'profile.mycircuits.circuitname',
type: costanti.FieldType.select,
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'circuits', costanti.FILTER_TUTTI),
addall: true,
arrvalue: [],
filter: null,
useinput: false,
icon: 'fas fa-globe-europe'
},
{
label: 'Comune',
table: 'cities',
@@ -555,6 +578,7 @@ export default defineComponent({
// filter: getFilterCitiesByProvince,
// param1: shared_consts.PARAM_SHOW_PROVINCE,
tablesel: 'cities',
filteradv: true,
},
/*{
label: 'Visiblità',
@@ -568,6 +592,18 @@ export default defineComponent({
filter: null,
tablesel: 'pub_to_share',
},*/
{
label: 'Settore',
table: toolsext.TABSECTORS,
key: 'idSector',
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + toolsext.TABSECTORS, 0, true),
arrvalue: [],
type: costanti.FieldType.select,
filter: null,
addall: true,
notinsearch: false,
useinput: false,
},
{
label: 'Data Inizio',
table: 'caldate',
@@ -578,20 +614,9 @@ export default defineComponent({
addall: true,
filter: null,
useinput: false,
filteradv: true,
},
{
label: 'Settore',
table: toolsext.TABSECTORS,
key: 'idSector',
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + toolsext.TABSECTORS, 0, true),
arrvalue: [],
type: costanti.FieldType.select,
filter: null,
addall: true,
notinsearch: true,
useinput: false,
},
{
/*{
label: 'Categoria',
table: 'skills',
key: 'idSkill',
@@ -602,7 +627,7 @@ export default defineComponent({
filter: getFilterSkills,
showcount: true,
useinput: false,
},
},*/
{
label: 'In cambio di',
table: 'contribtypes',
@@ -613,9 +638,23 @@ export default defineComponent({
filter: null,
useinput: false,
icon: 'fas fa-hand-holding',
filteradv: false,
filteradv: true,
//icon: 'swap_horizontal_circle',
},
{
label: '',
table: '',
key: '',
value: 0,
type: costanti.FieldType.separator,
arrvalue: [],
addall: true,
filter: null,
showcount: true,
useinput: false,
notinsearch: false,
icon: '',
},
]
@@ -646,6 +685,18 @@ export default defineComponent({
useinput: true,
icon: 'flag',
},
{
label: 'Circuito',
table: 'circuits',
key: 'profile.mycircuits.circuitname',
type: costanti.FieldType.select,
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'circuits', costanti.FILTER_TUTTI),
addall: true,
arrvalue: [],
filter: null,
useinput: false,
icon: 'fas fa-globe-europe'
},
{
label: 'Comune',
table: 'cities',
@@ -660,6 +711,7 @@ export default defineComponent({
// filter: getFilterCitiesByProvince,
// param1: shared_consts.PARAM_SHOW_PROVINCE,
tablesel: 'cities',
filteradv: true,
},
{
label: 'Offro/Cerco',
@@ -671,6 +723,7 @@ export default defineComponent({
type: costanti.FieldType.select,
filter: null,
useinput: false,
filteradv: true,
},
{
label: 'Tipologia',
@@ -683,6 +736,7 @@ export default defineComponent({
filter: null,
useinput: false,
icon: 'flag',
filteradv: true,
},
{
label: 'N° max Ospiti',
@@ -695,6 +749,7 @@ export default defineComponent({
filter: null,
useinput: false,
icon: 'fas fa-users',
filteradv: true,
},
{
label: 'Preferenze',
@@ -707,6 +762,7 @@ export default defineComponent({
filter: null,
useinput: false,
icon: 'fas fa-asterisk',
filteradv: true,
},
{
label: 'In cambio di',
@@ -718,9 +774,23 @@ export default defineComponent({
filter: null,
useinput: false,
icon: 'fas fa-hand-holding',
filteradv: false,
filteradv: true,
//icon: 'swap_horizontal_circle',
},
{
label: '',
table: '',
key: '',
value: 0,
type: costanti.FieldType.separator,
arrvalue: [],
addall: true,
filter: null,
showcount: true,
useinput: false,
notinsearch: true,
icon: '',
},
]
@@ -749,6 +819,18 @@ export default defineComponent({
useinput: true,
icon: 'flag',
},
{
label: 'Circuito',
table: 'circuits',
key: 'profile.mycircuits.circuitname',
type: costanti.FieldType.select,
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'circuits', costanti.FILTER_TUTTI),
addall: true,
arrvalue: [],
filter: null,
useinput: false,
icon: 'fas fa-globe-europe'
},
{
label: 'Comune',
table: 'cities',
@@ -759,6 +841,7 @@ export default defineComponent({
arrvalue: [],
useinput: true,
filter: null,
filteradv: true,
//filter: getFilterCitiesByProvince,
// param1: shared_consts.PARAM_SHOW_PROVINCE,
tablesel: 'cities',
@@ -784,7 +867,7 @@ export default defineComponent({
type: costanti.FieldType.select,
filter: null,
addall: true,
notinsearch: true,
notinsearch: false,
useinput: false,
},
{
@@ -809,6 +892,7 @@ export default defineComponent({
type: costanti.FieldType.select,
filter: null,
useinput: false,
filteradv: true,
},
/*
{
@@ -878,7 +962,8 @@ export default defineComponent({
addall: false,
filter: null,
useinput: false,
icon: 'fas fa-filter'
icon: 'fas fa-filter',
filteradv: true,
},
{
label: '',
@@ -977,6 +1062,20 @@ export default defineComponent({
// param1: shared_consts.PARAM_SHOW_PROVINCE,
tablesel: 'cities',
},
{
label: '',
table: '',
key: '',
value: 0,
type: costanti.FieldType.separator,
arrvalue: [],
addall: true,
filter: null,
showcount: true,
useinput: false,
notinsearch: true,
icon: '',
},
]
searchList_MyGroups.value = [
@@ -1018,6 +1117,19 @@ export default defineComponent({
// param1: shared_consts.PARAM_SHOW_PROVINCE,
tablesel: 'cities',
icon: 'fas fa-map-marker-alt',
filteradv: true,
},
{
label: 'Circuito',
table: 'circuits',
key: 'profile.mycircuits.circuitname',
type: costanti.FieldType.select,
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'circuits', costanti.FILTER_TUTTI),
addall: true,
arrvalue: [],
filter: null,
useinput: false,
icon: 'fas fa-globe-europe'
},
{
label: 'Categorie',
@@ -1043,6 +1155,20 @@ export default defineComponent({
filter: null,
tablesel: 'visibility',
},
{
label: '',
table: '',
key: '',
value: 0,
type: costanti.FieldType.separator,
arrvalue: [],
addall: true,
filter: null,
showcount: true,
useinput: false,
notinsearch: true,
icon: '',
},
]
filtercustom.value = []

View File

@@ -396,7 +396,7 @@ export default defineComponent({
type: costanti.FieldType.select,
filter: null,
addall: true,
notinsearch: true,
notinsearch: false,
useinput: false,
},
{
@@ -537,7 +537,7 @@ export default defineComponent({
useinput: true,
icon: 'flag',
},
{
/*{
label: 'Comune',
table: 'cities',
key: 'idCity',
@@ -550,7 +550,7 @@ export default defineComponent({
// filter: getFilterCitiesByProvince,
// param1: shared_consts.PARAM_SHOW_PROVINCE,
tablesel: 'cities',
},
},*/
/*{
label: 'Visiblità',
table: 'pub_to_share',
@@ -563,6 +563,18 @@ export default defineComponent({
filter: null,
tablesel: 'pub_to_share',
},*/
{
label: 'Settore',
table: toolsext.TABSECTORS,
key: 'idSector',
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + toolsext.TABSECTORS, 0, true),
arrvalue: [],
type: costanti.FieldType.select,
filter: null,
addall: true,
notinsearch: false,
useinput: false,
},
{
label: 'Data Inizio',
table: 'caldate',
@@ -574,19 +586,7 @@ export default defineComponent({
filter: null,
useinput: false,
},
{
label: 'Settore',
table: toolsext.TABSECTORS,
key: 'idSector',
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + toolsext.TABSECTORS, 0, true),
arrvalue: [],
type: costanti.FieldType.select,
filter: null,
addall: true,
notinsearch: true,
useinput: false,
},
{
/*{
label: 'Categoria',
table: 'skills',
key: 'idSkill',
@@ -610,7 +610,7 @@ export default defineComponent({
icon: 'fas fa-hand-holding',
filteradv: false,
//icon: 'swap_horizontal_circle',
},
},*/
]
@@ -779,7 +779,7 @@ export default defineComponent({
type: costanti.FieldType.select,
filter: null,
addall: true,
notinsearch: true,
notinsearch: false,
useinput: false,
},
{

View File

@@ -18,7 +18,7 @@
:hint="hint"
:nodataLabel="noMsgRecord"
:prop_search="prop_search"
:finder="true"
:finder="finder"
labelElemFind="trovati"
:choose_visutype="visuType"
:butt_modif_new="false"

View File

@@ -396,6 +396,7 @@ export default defineComponent({
const myMapComp = ref(<any>null)
const tablesel = ref('')
const showfilteradv = ref(false)
const showSpin = ref(false)
const showNotification = ref(false)
@@ -914,6 +915,15 @@ export default defineComponent({
arrfilter_provices.push({ key: 'reg', value: idRegion })
}
} else if (item.table === 'circuits') {
const myfield = tools.getFieldSearchByTable(mytable.value, item.table, 'profile.mycircuits.circuitname')
obj[myfield] = item.value
if (myfield) {
if (item.value !== '' && item.value !== costanti.FILTER_TUTTI) {
filtersearch3and.push({ "profile.mycircuits.circuitname": item.value.name })
}
}
} else if (item.table === 'provinces') {
const myfield = tools.getFieldSearchByTable(mytable.value, item.table, 'mycities.prov')
@@ -1373,6 +1383,28 @@ export default defineComponent({
// console.log('REFRESH!')
// Controllo se la Regione è su Tutti, allora la provincia e comune devono andare vuoti
if (searchList.value) {
const filtroRegioni = searchList.value.find((myrec) => myrec.table === toolsext.TABREGIONS) // check if exist
if (filtroRegioni && filtroRegioni.value === costanti.FILTER_TUTTI) {
const filtroProv = searchList.value.find((myrec) => myrec.table === toolsext.TABPROVINCE) // check if exist
if (filtroProv) {
filtroProv.value = costanti.FILTER_TUTTI
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + toolsext.TABPROVINCE, filtroProv.value)
}
}
/*const filtroCircuito = searchList.value.find((myrec) => myrec.table === 'circuits')
if (filtroCircuito && filtroCircuito.value !== costanti.FILTER_TUTTI) {
const filtroProv = searchList.value.find((myrec) => myrec.table === toolsext.TABPROVINCE) // check if exist
if (filtroProv && filtroRegioni) {
filtroRegioni.value = costanti.FILTER_TUTTI
filtroProv.value = costanti.FILTER_TUTTI
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + toolsext.TABREGIONS, filtroRegioni.value)
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + toolsext.TABPROVINCE, filtroProv.value)
}
}*/
}
startsearch.value = true
serverData.value = []
@@ -1680,7 +1712,7 @@ export default defineComponent({
myvertical.value = props.vertical
if (props.prop_search) {
showfilter.value = props.prop_showfilter || (tools.getCookie('s_adv', '0') !== '0')
showfilter.value = props.prop_showfilter || true
} else {
showfilter.value = props.prop_showfilter
}
@@ -1693,7 +1725,7 @@ export default defineComponent({
const checkScrollPosition = () => {
// console.log('checkScrollPosition')
const container = carouselTabRef.value
if (!container ) return
if (!container) return
if (!addEventScroll.value && carouselTabRef.value) {
carouselTabRef.value?.addEventListener('scroll', checkScrollPosition)
@@ -2656,7 +2688,7 @@ export default defineComponent({
function handleTransition(newVal: any, oldVal: any) {
// Se siamo vicini alla fine degli elementi caricati, carichiamo altri elementi
if (serverData.value.length - newVal <= 2 && !loading.value) {
onLoadScroll(newVal, () => {})
onLoadScroll(newVal, () => { })
}
}
@@ -2841,6 +2873,7 @@ export default defineComponent({
handleTransition,
loadMore,
onIntersection,
showfilteradv,
}
}
})

View File

@@ -28,9 +28,10 @@
v-if="butt_modif_new || mytitle"
:class="$q.screen.lt.sm ? `` : `q-ma-xs` + ` `"
>
<div class="q-table__title" style="min-width: 150px">
{{ mytitle }}
</div>
<q-toolbar class="bg-primary text-white">
<q-toolbar-title>{{ mytitle }}</q-toolbar-title>
</q-toolbar>
<q-space></q-space>
<div v-if="butt_modif_new" class="row justify-center">
<q-btn
@@ -96,6 +97,22 @@
:class="$q.screen.lt.sm ? `` : `row` + ` text-blue `"
>
<span v-for="(item, index) in searchList" :key="index">
<div
class="text-center q-my-xs"
v-if="item.type === costanti.FieldType.separator"
>
<q-btn
size="sm"
dense
:icon="
!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'
"
:label="$t('grid.advanced_filters')"
@click="showfilteradv = !showfilteradv"
></q-btn>
</div>
<div v-if="!(item.filteradv && !showfilteradv)">
<CMySelect
:col="fieldsTable.getColByColumns(mycolumns, item.key)"
v-if="
@@ -236,6 +253,7 @@
</q-item>
</template>
</q-select>
</div>
</span>
</div>
</div>
@@ -738,9 +756,20 @@
:class="$q.screen.lt.sm ? `` : `row` + ` text-blue `"
>
<span v-for="(item, index) in searchList" :key="index">
<!--<div class="text-center q-my-xs" v-if="(item.type === costanti.FieldType.separator)">
<q-btn size="sm" dense :icon="!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'" label="Filtri Avanzati" @click="showfilteradv = !showfilteradv"></q-btn>
</div>-->
<div
class="text-center q-my-xs"
v-if="item.type === costanti.FieldType.separator"
>
<q-btn
size="sm"
dense
:icon="
!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'
"
:label="$t('grid.advanced_filters')"
@click="showfilteradv = !showfilteradv"
></q-btn>
</div>
<CMySelect
:col="fieldsTable.getColByColumns(mycolumns, item.key)"

View File

@@ -14,7 +14,9 @@ import {
ISearchList,
IPagination,
IParamDialog,
IMySkill
IMySkill,
ICoordLatLng,
ICoordGPS
} from 'model'
import { lists } from '@store/Modules/lists'
import { IParamsQuery } from 'model'
@@ -36,7 +38,7 @@ import { costanti } from '@costanti'
import translate from '@/globalroutines/util'
import { toolsext } from '@store/Modules/toolsext'
import { useRouter } from 'vue-router'
import { useRoute } from 'vue-router'
export default defineComponent({
name: 'CGridTableUser',
props: {
@@ -50,7 +52,7 @@ export default defineComponent({
default: '',
},
prop_mycolumns: {
type: Object as PropType<[]>,
type: Object as PropType<any[]>,
required: false,
default: null,
},
@@ -293,6 +295,9 @@ export default defineComponent({
},
setup(props, { emit }) {
const $q = useQuasar()
const router = useRouter()
const route = useRoute()
const { t } = useI18n()
const userStore = useUserStore()
const globalStore = useGlobalStore()
@@ -317,6 +322,7 @@ export default defineComponent({
const search = ref('')
const tablesel = ref('')
const showfilteradv = ref(false)
const showSpin = ref(false)
const showNotification = ref(false)
@@ -488,11 +494,11 @@ export default defineComponent({
const recSector = searchList.value.find((rec) => rec.table === tabsector)
if (recSector)
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + tabsector + costanti.FILTER_SEP + tabsector, newval)
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + tabsector, newval)
for (const item of searchList.value) {
if (item.table === tablecat) {
const valsaved = tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + tablecat + costanti.FILTER_SEP + newval, costanti.FILTER_TUTTI)
const valsaved = tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + item.table + costanti.FILTER_SEP + newval, costanti.FILTER_TUTTI)
const rec = searchList.value.find((myrec) => myrec.table === tablecat) // check if exist
let trovato = false
let arrvalues = []
@@ -519,11 +525,11 @@ export default defineComponent({
const recRegion = searchList.value.find((rec) => rec.table === tabregion)
if (recRegion)
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + tabregion + costanti.FILTER_SEP + tabregion, newval)
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + tabregion, newval)
for (const item of searchList.value) {
if (item.table === tableprov) {
const valsaved = tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + tableprov + costanti.FILTER_SEP + newval, costanti.FILTER_TUTTI)
const valsaved = tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + tableprov + costanti.FILTER_SEP + newval, costanti.FILTER_TUTTI)
const rec = searchList.value.find((myrec) => myrec.table === tableprov) // check if exist
let trovato = false
let arrvalues = []
@@ -541,7 +547,7 @@ export default defineComponent({
}
}
} else if (item.table === shared_consts.TAB_CITIES) {
const valsaved = tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + item.table + costanti.FILTER_SEP + newval, costanti.FILTER_TUTTI)
const valsaved = tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + item.table + costanti.FILTER_SEP + newval, costanti.FILTER_TUTTI)
const rec = searchList.value.find((myrec) => myrec.table === shared_consts.TAB_CITIES) // check if exist
let trovato = false
let arrvalues = []
@@ -570,7 +576,7 @@ export default defineComponent({
function searchval(newval: any, table: any) {
// console.log('REFRR searchval', newval, table)
const myrecfilt = searchList.value.find((rec) => rec.table === table)
let keycookie = tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP
let keycookie = tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + table
if (myrecfilt && myrecfilt.keycookie)
keycookie += myrecfilt.keycookie
tools.setCookie(keycookie, newval)
@@ -578,7 +584,7 @@ export default defineComponent({
if (table === shared_consts.TABLES_MYSKILLS) {
const recSector = searchList.value.find((rec) => rec.table === 'sectors')
if (recSector) {
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + table + costanti.FILTER_SEP + recSector.value, newval)
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + recSector.value, newval)
}
} else if (table === toolsext.TABSECTORS) {
setCategBySector(shared_consts.TABLES_MYSKILLS, table, newval)
@@ -722,30 +728,24 @@ export default defineComponent({
let idProvince = 0
let idRegion = 0
let idSkill = 0
if (searchList.value) {
recSector = searchList.value.find((item: ISearchList) => item.table === toolsext.TABSECTORS)
idSector = recSector ? recSector.value : 0
}
if (searchList.value) {
recSectorGood = searchList.value.find((item: ISearchList) => item.table === 'sectorgoods')
idSectorGood = recSectorGood ? recSectorGood.value : 0
}
if (searchList.value) {
recProvince = searchList.value.find((item: ISearchList) => item.table === 'provinces')
idProvince = recProvince ? recProvince.value : 0
}
if (searchList.value) {
recRegion = searchList.value.find((item: ISearchList) => item.table === 'regions')
idRegion = recRegion ? recRegion.value : 0
}
if (searchList.value) {
recCities = searchList.value.find((item: ISearchList) => item.table === 'cities')
}
if (searchList.value) {
recCities = searchList.value.find((item: ISearchList) => item.table === 'cities')
recSkill = searchList.value.find((item: ISearchList) => item.table === shared_consts.TABLES_MYSKILLS)
idSkill = recSkill ? recSkill.value : 0
// console.log('recSkill', idSkill)
}
@@ -828,8 +828,7 @@ export default defineComponent({
objitem[item.key] = item.value
filtersearch.push(objitem)
} else if (item.arrvalue.length > 0) {
} else if (item.arrvalue && item.arrvalue.length > 0) {
const myarr = item.arrvalue.filter((value: any) => {
if (typeof value === 'number') {
@@ -841,6 +840,21 @@ export default defineComponent({
const arr2: any = []
if (item.table !== 'provinces') {
if (shared_consts.COL_WITH_ARRFILTER_IN_AND.includes(item.key)) {
myarr.forEach((myval: any) => {
const objitem2: any = {}
objitem2[item.key] = myval
arr2.push(objitem2)
})
const obj2: any = {
$and: arr2
}
if (arr2.length > 0) {
filtersearch.push(obj2)
}
} else {
myarr.forEach((myval: any) => {
const objitem2: any = {}
objitem2[item.key] = myval
@@ -854,6 +868,7 @@ export default defineComponent({
filtersearch.push(obj2)
}
}
}
} else {
if ((item.table === shared_consts.TABLES_MYSKILLS) && item.value === costanti.FILTER_TUTTI) {
@@ -1193,12 +1208,24 @@ export default defineComponent({
// console.log('REFRESH!')
// Controllo se la Regione è su Tutti, allora la provincia e comune devono andare vuoti
// Reset others tables
const filtroRegioni = searchList.value.find((myrec) => myrec.table === toolsext.TABREGIONS) // check if exist
if (filtroRegioni && filtroRegioni.value === costanti.FILTER_TUTTI) {
const filtroProv = searchList.value.find((myrec) => myrec.table === toolsext.TABPROVINCE) // check if exist
if (filtroProv) {
filtroProv.value = costanti.FILTER_TUTTI
const label = tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + toolsext.TABPROVINCE
tools.setCookie(label, filtroProv.value)
}
}
startsearch.value = true
serverData.value = []
numRecLoaded.value = 0
pagination.value.page = 0
search.value = search.value.trim()
search.value = search.value ? search.value.trim() : ''
// console.log('refresh')
// console.log('search', search)
@@ -1341,7 +1368,8 @@ export default defineComponent({
}
*/
newRecord.value = null
newRecordBool.value = false
newRecord.value = {}
}
function SaveValue(newVal: any, valinitial: any) {
@@ -1446,6 +1474,7 @@ export default defineComponent({
newRecord.value = tools.getdefaultnewrec(mytable.value, { groupname: props.groupname })
}
if (!newRecord.value) {
newRecordBool.value = false
newRecord.value = {}
}
newRecord.value.userId = userStore.my._id
@@ -1775,6 +1804,7 @@ export default defineComponent({
} else if (visib === '0') {
// Se da togliere, lo togli
if (colVisib.value.includes(field))
if (colVisib.value)
colVisib.value = colVisib.value.filter((myrec: any) => myrec !== field)
}
}
@@ -1852,12 +1882,10 @@ export default defineComponent({
}
}
function enableSaveNewRec(newrec: boolean) {
function enableSaveNewRec(newrec: boolean, showmsg: boolean = true) {
const ok = true
const showmsg = true
let myrec = null
if (newrec) {
myrec = { ...newRecord.value }
@@ -1872,6 +1900,17 @@ export default defineComponent({
for (col of mycolumns.value) {
if (!msg) {
if (col.showonlyif_dipersona) {
const valori = myrec['idStatusSkill']
if (valori && (valori.length === 1) && valori.includes(shared_consts.STATUSSKILL_ONLINE)) {
col.required = false
} else {
col.required = true
}
col.visible = col.required
}
if (col.required) {
// console.log('newRecord.value', newRecord.value, newRecord.value[col.name])
if (tools.isArray(myrec[col.name])) {
@@ -1994,7 +2033,8 @@ export default defineComponent({
else
serverData.value = [ris, ...serverData.value]
newRecord.value = null
newRecord.value = {}
newRecordBool.value = false
tools.showPositiveNotif($q, t('db.recupdated'))
// refresh()
@@ -2022,7 +2062,7 @@ export default defineComponent({
}
async function saverecModif() {
// console.log('saverecModif')
// console.log('saverecModif', recModif.value)
const mydata = {
table: mytable.value,
data: {}
@@ -2073,8 +2113,8 @@ export default defineComponent({
function showColCheck(col: IColGridTable, tipovis: number, visulabel: boolean, value: any = '', record: any = null) {
// if (col.isadvanced_field && !showfilteradv.value)
// return false
if (col.isadvanced_field && !showfilteradv.value)
return false
const check = tools.checkIfShowField(col, tipovis, visulabel, value)

View File

@@ -17,7 +17,7 @@
/>
</q-tabs>
<q-tab-panels v-model="tab" animated>
<q-tab-panels v-model="tab" animated keep-alive>
<q-tab-panel name="tutti">
<div v-if="mylist.length === 0">
{{ t('circuit.nessun_movimento_inviato') }}

View File

@@ -41,6 +41,12 @@ export default defineComponent({
CTimeAgo, CContactUser
},
props: {
introUser: {
type: Boolean,
required: false,
default: true,
},
},
setup(props) {
const userStore = useUserStore()
@@ -73,7 +79,7 @@ export default defineComponent({
const notifStore = useNotifStore()
const mycards = computed(() => {
return costanti.MAINCARDS.filter((rec: any) => rec.table)
return costanti.MAINCARDS.filter((rec: any) => rec.table && rec.visible)
})
const optionsMainCards = ref({})

View File

@@ -3,7 +3,6 @@
v-if="!caricato"
class="fit column no-wrap justify-evenly items-center content-start"
>
<q-skeleton type="QAvatar" size="140px" height="140px" animation="fade" />
<q-card flat bordered style="width: 250px">
<div class="text-h6">
<q-skeleton :animation="animation" />
@@ -11,28 +10,21 @@
<div class="col-12 text-h7 text-grey text-center">
{{ username }}
</div>
<div class="col-12 text-h7">
<q-skeleton :animation="animation" />
</div>
<div class="col-12 text-h8 q-mt-sm">
<q-skeleton :animation="animation" />
</div>
<div class="col-12 text-h8 q-mt-sm">
<q-skeleton :animation="animation" />
</div>
</q-card>
</div>
<div v-else>
<div v-if="myuser">
<div v-if="tools.isUserOk() || tools.isLogged()">
<div v-if="introUser">
<CNotifAtTop />
</div>
</div>
<div class="q-gutter-sm q-pa-sm q-pb-md">
<div
v-if="myuser && myuser.lang"
class="fit column no-wrap justify-evenly items-center content-start"
>
<div v-if="introUser">
<div class="">
<q-avatar size="140px">
<q-img
@@ -65,7 +57,9 @@
</CTitleBanner>
</div>
<div v-if="site && site.confpages && site.confpages.showNameSurname">
<div
v-if="site && site.confpages && site.confpages.showNameSurname"
>
<div class="text-h6">
<span v-if="checkifShow('name') && myuser.name">
{{ myuser.name }}</span
@@ -81,19 +75,22 @@
<br />
<CContactUser :myuser="myuser" :showBtnActivities="false" />
</div>
<CTitleBanner
v-if="site.confpages.showCompetenze"
class=""
:title="$t('profile.skills')"
bgcolor="bg-primary"
clcolor="text-white"
myclass="myshad"
:canopen="true"
<q-tabs
v-if="isMyRecord(myuser.username)"
v-model="mytab"
inline-label
dense
class="shadow-2"
>
<q-tabs v-model="mytab" inline-label dense class="shadow-2">
<q-tab name="my" icon="far fa-user" />
<q-tab v-if="isMyRecord(myuser.username)" name="favorite" icon="favorite" content-class="text-red" />
<q-tab
v-if="isMyRecord(myuser.username)"
name="favorite"
icon="favorite"
content-class="text-red"
/>
<q-tab
v-if="isMyRecord(myuser.username)"
name="bookmark"
@@ -106,17 +103,14 @@
v-model="mytab"
animated
vertical
keep-alive
transition-prev="jump-up"
transition-next="jump-up"
>
<q-tab-panel name="my">
<div
v-for="(card, ind) of mycards"
:key="ind"
:name="card.table"
>
<div v-for="(card, ind) of mycards" :key="ind" :name="card.table">
<q-card class="q-my-md">
<div v-if="(card.table === 'mygroups') && tools.isUserOk()">
<div v-if="card.table === 'mygroups' && tools.isUserOk()">
<div class="row text-h6 text-bold">Gruppi:</div>
<q-list>
<span
@@ -134,7 +128,7 @@
</span>
</q-list>
</div>
<div v-else-if="card.table === 'circuits'">
<div v-else-if="card.table === shared_consts.TAB_MYCIRCUITS">
<div class="text-h6">{{ card.title }}</div>
<q-list>
<span
@@ -156,7 +150,11 @@
<div v-else-if="card.table !== 'mygroups' || myuser.email">
<CSkill
:table="card.table"
:filtercustom="card.table === 'mybachecas' ? filtro_eventi: filtroutente"
:filtercustom="
card.table === 'mybachecas'
? filtro_eventi
: filtroutente
"
:butt_modif_new="isMyRecord(myuser.username)"
:visuinpage="true"
:noaut="true"
@@ -167,11 +165,7 @@
</div>
</q-tab-panel>
<q-tab-panel v-if="isMyRecord(myuser.username)" name="favorite">
<div
v-for="(card, ind) of mycards"
:key="ind"
:name="card.table"
>
<div v-for="(card, ind) of mycards" :key="ind" :name="card.table">
<q-card class="q-my-md">
<div v-if="card.showfavorite && filtrofavorite(card.table)">
<CSkill
@@ -187,11 +181,7 @@
</div>
</q-tab-panel>
<q-tab-panel v-if="isMyRecord(myuser.username)" name="bookmark">
<div
v-for="(card, ind) of mycards"
:key="ind"
:name="card.table"
>
<div v-for="(card, ind) of mycards" :key="ind" :name="card.table">
<q-card class="q-my-md">
<div v-if="card.showfavorite && filtrobookmark(card.table)">
<CSkill
@@ -207,7 +197,6 @@
</div>
</q-tab-panel>
</q-tab-panels>
</CTitleBanner>
</div>
</div>
@@ -218,16 +207,6 @@
<q-dialog v-model="showPic" full-height full-width>
<img :src="getImgUser()" :alt="username" class="full-width" />
</q-dialog>
<q-page-sticky position="top-right" :offset="[18, 18]">
<q-btn
fab
glossy
class="semi-transparent"
icon="fas fa-link"
color="primary"
@click="tools.copyToClip($q, getlinkpage(), true)"
/>
</q-page-sticky>
</div>
</div>
</template>

View File

@@ -67,6 +67,8 @@ export default defineComponent({
const finishloading = ref(false)
const loadingvalues = ref(false)
const mytab = ref('circuiti')
const init = ref(false)
const globalStore = useGlobalStore()
@@ -227,6 +229,7 @@ export default defineComponent({
finishloading,
addlastmov,
loadingvalues,
mytab,
}
}
})

View File

@@ -7,6 +7,22 @@
<div class="q-mt-md">
<CSendRISTo></CSendRISTo>
<q-tabs
v-model="mytab"
no-caps
class="bg-indigo text-white shadow-2 q-mt-sm full-width"
dense
>
<q-tab name="circuiti" icon="fas fa-sitemap" label="Lista Circuiti" />
<q-tab name="mov" icon="fas fa-exchange-alt" label="Storico Transazioni" />
</q-tabs>
<q-tab-panels
v-model="mytab"
animated
keep-alive
>
<q-tab-panel name="circuiti">
<CTitleBanner
:class="`q-pa-xs `"
:title="myoptions[0].label"
@@ -76,7 +92,8 @@
<slot></slot>
</div>
</CTitleBanner>
</q-tab-panel>
<q-tab-panel name="mov">
<CTitleBanner
:class="`q-pa-xs `"
:title="t('circuit.tuoi_ultimi_movimenti', { num: numtransaz })"
@@ -110,6 +127,8 @@
<br />
</CTitleBanner>
</q-tab-panel>
</q-tab-panels>
</div>
</div>
<div v-else>
@@ -124,17 +143,6 @@
<div v-else>
<CUserNonVerif></CUserNonVerif>
</div>
<CTitleBanner
v-if="visu === costanti.FIND_CIRCUIT"
:class="`q-pa-xs `"
:title="myoptions[0].label"
bgcolor="bg-primary"
:clcolor="`text-white`"
:canopen="true"
:small="true"
>
</CTitleBanner>
</template>
<script lang="ts" src="./CMyCircuits.ts">

View File

@@ -472,7 +472,7 @@
/>
</q-tabs>
<q-tab-panels v-model="tabCard" animated>
<q-tab-panels v-model="tabCard" animated keep-alive>
<q-tab-panel
v-for="(rec, ind) in myel.listcards"
:key="ind"
@@ -777,7 +777,7 @@
/>
</q-tabs>
<q-tab-panels v-model="tabElemsText" animated>
<q-tab-panels v-model="tabElemsText" animated keep-alive>
<q-tab-panel
v-for="(rec, ind) in myel.elemsText"
:key="ind"
@@ -1567,7 +1567,7 @@
</q-tab>
</q-tabs>
<q-tab-panels v-model="tabScheda" animated>
<q-tab-panels v-model="tabScheda" animated keep-alive>
<q-tab-panel
v-for="(recscheda, ind) in myel.catalogo.arrSchede"
:key="recscheda._id"

View File

@@ -5,7 +5,7 @@
.text_user_city{
text-overflow: ellipsis;
white-space: nowrap;
white-space: wrap;
overflow: hidden;
font-size: 0.85rem;
color: grey;

View File

@@ -321,7 +321,7 @@
>
</q-item-label>
<q-item-label
lines="1"
lines="3"
style="text-align: right"
class="text_user_city"
>

View File

@@ -86,8 +86,8 @@ export default defineComponent({
const contact = ref(<IUserFields | null>null)
const circuit = ref(<ICircuit | null | undefined>null)
watch(() => props.mycontact, (newval, oldval) => {
console.log('watch: mycontact')
watch(() => props.mycontact!.username, (newval, oldval) => {
console.log('watch: mycontact', props.mycontact)
mounted()
})

View File

@@ -1,7 +1,7 @@
<template>
<div v-if="contact">
<q-item class="q-my-sm" clickable>
<q-item-section avatar @click="naviga(`/my/` + contact.username)">
<q-item-section avatar @click="actionType === costanti.ACTIONTYPE.SEND_RIS ? naviga(`/my/` + contact.username + '?sr=0') : naviga(`/my/` + contact.username)">
<q-avatar size="60px">
<q-img
:src="getImgUser(contact)"

View File

@@ -296,6 +296,7 @@ export default defineComponent({
showpage.value = true
loading.value = false
}
if (props.to_group) {
@@ -330,7 +331,7 @@ export default defineComponent({
}
loading.value = false
emit('showed', true)
emit('showed')
}
function hide() {

View File

@@ -47,10 +47,10 @@ export default defineComponent({
label: 'Condividi il tuo Link',
value: 'link',
},
{
/*{
label: 'Rendi visibile il tuo profilo per 8 ore',
value: 'showonlist',
},
},*/
{
label: 'Genera il QR Code',
value: 'qrcode',
@@ -105,6 +105,21 @@ export default defineComponent({
qtyRIS.value = qtyRIS.value.replace(',', '.')
}
function clickInviaRIS() {
showSendCoin.value = !showSendCoin.value
if (showSendCoin.value)
showReceiveCoin.value = !showSendCoin.value
}
async function clickriceviRIS() {
showReceiveCoin.value = !showReceiveCoin.value;
if (showReceiveCoin.value)
showSendCoin.value = !showReceiveCoin.value
if (showReceiveCoin.value)
clickAddtoRecList();
}
async function clickAddtoRecList() {
const risultato = await tools.addToTemporaryReceiverRIS(t)
if (risultato) {
@@ -140,6 +155,8 @@ export default defineComponent({
showonreclist,
riscallrec,
clickAddtoRecList,
clickInviaRIS,
clickriceviRIS,
}
},
})

View File

@@ -10,10 +10,8 @@
size="md"
rounded
:label="$t('circuit.sendcoins_toso')"
@click="
showSendCoin = !showSendCoin;
showSendCoin ? (showReceiveCoin = false) : null;
"
@click="clickInviaRIS"
:push="showSendCoin"
>
</q-btn>
&nbsp;
@@ -23,10 +21,8 @@
size="md"
rounded
:label="$t('circuit.receive_coins')"
@click="
showReceiveCoin = !showReceiveCoin;
showReceiveCoin ? (showSendCoin = false) : null;
"
@click="clickriceviRIS"
:push="showReceiveCoin"
>
</q-btn>
@@ -42,6 +38,16 @@
:small="true"
:open="true"
>
<q-banner
v-show="riscallrec"
rounded
class="bg-blue text-white"
style="text-align: center"
>
{{ riscallrec }}
<br />
</q-banner>
<q-option-group
class="q-ma-xs"
style="text-align: left !important"
@@ -52,6 +58,7 @@
<q-tab-panels
v-model="receiveType"
animated
keep-alive
class="shadow-2 rounded-borders"
>
<q-tab-panel name="link">
@@ -105,7 +112,7 @@
</CCopyBtnSmall>
</q-tab-panel>
<q-tab-panel name="showonlist">
<q-btn
<!--<q-btn
v-if="!showonreclist"
icon="fas fa-upload"
color="positive"
@@ -114,22 +121,16 @@
:label="$t('circuit.addtothereceiverlist')"
@click="clickAddtoRecList"
>
</q-btn>
</q-btn>-->
<q-slide-transition>
<q-banner
v-show="riscallrec"
rounded
class="bg-blue text-white"
style="text-align: center"
>
{{ riscallrec }}
<br />
</q-banner>
</q-slide-transition>
<q-slide-transition> </q-slide-transition>
</q-tab-panel>
<q-tab-panel name="qrcode">
<CQRCode :read="false" textlink="Link Profilo" :link="userStore.getLinkProfileAndRIS('', '', '')"></CQRCode>
<CQRCode
:read="false"
textlink="Link Profilo"
:link="userStore.getLinkProfileAndRIS('', '', '')"
></CQRCode>
</q-tab-panel>
</q-tab-panels>
</CTitleBanner>

View File

@@ -398,15 +398,6 @@
:to="`/my/` + getMyUsername()"
>{{ t('pages.profile') }}
</q-btn>
<q-btn
v-if="site.confpages && site.confpages.showCompetenze"
rounded
color="orange"
icon="house"
:to="`/attivita/` + getMyUsername()"
>
&nbsp;{{ t('otherpages.myactivities') }}
</q-btn>
<q-btn
rounded

View File

@@ -454,7 +454,7 @@ function getRoutesAd(site: ISites) {
path: '/attivita/:username',
materialIcon: 'fas fa-user',
name: 'mypages.attivita',
component: () => import('@/views/user/myactivities/myactivities.vue'),
component: () => import('@/views/user/myprofile/myprofile.vue'),
meta: { requiresAuth: true },
inmenu: false,
infooter: false,

View File

@@ -14,6 +14,7 @@ const msg_it = {
csv: 'Esporta Movimenti',
},
grid: {
advanced_filters: 'Filtri Avanzati',
found: 'trovato',
newrecord: 'Aggiungi',
table: 'Tabella',

View File

@@ -7654,6 +7654,9 @@ export const tools = {
if (tablejoin === 'regions') {
ris = 'mycities.reg'
}
if (tablejoin === 'circuits') {
ris = 'mycircuits.circuitname'
}
}
return ris

View File

@@ -2085,7 +2085,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
}
// console.log('value', value, 'label', label)
newarr.push({ value: valout, label })
newarr.push({ value: valout, label, name: label })
}
myarr = newarr

View File

@@ -11,7 +11,7 @@
<q-tab name="pagine" icon="fas fa-book-reader" label="Pagine"> </q-tab>
<q-tab name="opzioni" icon="fas fa-save" label="Opzioni"> </q-tab>
</q-tabs>
<q-tab-panels v-model="tabcatalogo" animated class="">
<q-tab-panels v-model="tabcatalogo" animated class="" keep-alive>
<q-tab-panel name="visu" v-if="optcatalogo">
<div class="row justify-center q-mx-auto bg-blue-1">
<div class="text-center">
@@ -41,7 +41,7 @@
>
</q-tab>
</q-tabs>
<q-tab-panels v-model="tabvisu" animated class="">
<q-tab-panels v-model="tabvisu" animated class="" keep-alive>
<q-tab-panel name="categorie">
<div class="row justify-center q-mx-auto bg-blue-1">
<div v-for="(reccat, index) in getCatProds()" :key="index">

View File

@@ -357,7 +357,7 @@
<br />
<div class="row text-center">
<div class="column text-center">
<q-banner
v-if="
circuitStore.isCircuitNational(circuit.name) &&
@@ -394,7 +394,7 @@
<br />
</q-banner>
<q-banner
v-if="
v-if="false &&
userStore.my.profile &&
userStore.my.profile.calc &&
!circuit.circuitoIndipendente &&
@@ -421,6 +421,7 @@
!circuit.circuitoIndipendente &&
userStore.my.profile.calc &&
userStore.my.profile.calc.numGoodsAndServices <= 0
&& false
"
rounded
class="bg-deep-purple text-white"
@@ -524,7 +525,7 @@
></q-tab>
</q-tabs>
<q-tab-panels v-model="tabcircuit" animated>
<q-tab-panels v-model="tabcircuit" animated keep-alive>
<q-tab-panel
name="gruppicollettivi"
style="max-width: 500px"
@@ -555,7 +556,7 @@
></q-tab>
</q-tabs>
<q-tab-panels v-model="tabmembers" animated>
<q-tab-panels v-model="tabmembers" animated keep-alive>
<q-tab-panel name="all">
<div class="row justify-center">
<q-btn rounded icon="fas fa-user-plus" class="text-center">
@@ -660,7 +661,7 @@
nodataLabel="Nessun Gruppo Comunitario"
:prop_search="true"
hint="gruppo da trovare"
:finder="false"
:finder="true"
:choose_visutype="false"
:finder_noNull="false"
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
@@ -1057,7 +1058,7 @@
></q-tab>
</q-tabs>
<q-tab-panels v-model="tabmembers">
<q-tab-panels v-model="tabmembers" keep-alive>
<q-tab-panel name="all">
<!--<q-toggle v-model="showsaldi" :label="t('movement.showsaldi')"></q-toggle>-->
</q-tab-panel>
@@ -1181,7 +1182,7 @@
nodataLabel="Nessun Iscritto"
:prop_search="true"
hint="Username o nome da trovare"
:finder="false"
:finder="true"
:choose_visutype="false"
:finder_noNull="false"
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"

View File

@@ -59,7 +59,13 @@ export default defineComponent({
},
]
filtercustom.value = []
filtercustom.value = [
{
$or: [
{ deleted: { $exists: false } },
{ deleted: { $exists: true, $eq: false } }],
}
]
arrfilterand.value = []
const filt_loaded = tools.getCookie(tools.COOK_SEARCH + tools.FRIENDS_SEARCH, costanti.FIND_PEOPLE, true)

View File

@@ -220,7 +220,7 @@
></q-tab>
</q-tabs>
<q-tab-panels v-model="tabgrp" animated>
<q-tab-panels v-model="tabgrp" animated keep-alive>
<q-tab-panel name="info">
<div>
<q-card>
@@ -417,7 +417,7 @@
></q-tab>
</q-tabs>
<q-tab-panels v-model="tabmembers" animated>
<q-tab-panels v-model="tabmembers" animated keep-alive>
<q-tab-panel name="rich">
<CGridTableRec
prop_mytable="mygroups"
@@ -515,7 +515,7 @@
</q-tab-panels>
<div v-if="tabgrp === 'circuits' && tabcircuit === 'info'">
<q-tab-panels v-model="tabcircuit" animated>
<q-tab-panels v-model="tabcircuit" animated keep-alive>
<q-tab-panel name="info" style="max-width: 500px">
<div v-for="(circuit, ind) of circuitslist" :key="ind">
<div class="circuit_name">{{ circuit.name }}:</div>

View File

@@ -9,6 +9,7 @@ import { CDateTime } from '@/components/CDateTime'
import { CMyGroup } from '@/components/CMyGroup'
import { CMyCircuit } from '@/components/CMyCircuit'
import { CNotifAtTop } from '@src/components/CNotifAtTop'
import { CMyActivities } from '@src/components/CMyActivities'
import { CSendCoins } from '@/components/CSendCoins'
import { CContactUser } from '@/components/CContactUser'
import { CTimeAgo } from '@/components/CTimeAgo'
@@ -37,7 +38,7 @@ export default defineComponent({
components: {
CProfile, CTitleBanner, CMyFieldDb, CSkill, CDateTime, CCopyBtn, CUserNonVerif, CMyFieldRec, CMyUser,
CMyGroup, CLabel, CMyCircuit, CSendCoins, CNotifAtTop,
CCheckIfIsLogged, CTimeAgo, CContactUser
CCheckIfIsLogged, CTimeAgo, CContactUser, CMyActivities,
},
props: {},
setup() {
@@ -52,6 +53,7 @@ export default defineComponent({
const { getRefLink } = MixinUsers()
const animation = ref('fade')
const spinner_visible = ref(false)
const usersList = ref({ show: false, title: '', list: [] })
const username = computed(() => $route.params.username ? $route.params.username.toString() : userStore.my.username)
@@ -83,6 +85,8 @@ export default defineComponent({
const listgroupsfiltered = ref(<IMyGroup[]>[])
const listcircuitsfiltered = ref(<IMyCircuit[]>[])
const tab = ref('attivita')
function profile() {
return userStore.my.profile
}
@@ -94,7 +98,12 @@ export default defineComponent({
async function loadProfile() {
console.log('loadProfile...', username.value)
try {
caricato.value = false
if (sendRIS.value)
spinner_visible.value = true
// Carica il profilo di quest'utente
if (username.value) {
await userStore.loadUserProfile({ username: username.value, idnotif: idnotif.value }).then((ris) => {
@@ -183,6 +192,10 @@ export default defineComponent({
return ''
}
function showed() {
spinner_visible.value = false
}
return {
username,
getlinkpage,
@@ -222,6 +235,9 @@ export default defineComponent({
gotoPage,
sendRIS,
causalDest,
spinner_visible,
showed,
tab,
}
}
})

View File

@@ -129,9 +129,9 @@
<div v-if="userStore.userprofile._id" class="col-12 text-h8 q-mt-sm">
<span v-if="userStore.userprofile.profile.qualifica">
<em
><div class="qualifica">{{
userStore.userprofile.profile.qualifica
}}</div></em
><div class="qualifica">
{{ userStore.userprofile.profile.qualifica }}
</div></em
>
</span>
</div>
@@ -194,6 +194,12 @@
</CTitleBanner>
</div>
<div>
<q-inner-loading :showing="spinner_visible">
<q-spinner-tail size="3em" color="primary" />
</q-inner-loading>
</div>
<div v-if="site && site.confpages && site.confpages.showNameSurname">
<div class="text-h6">
<span v-if="checkifShow('name') && userStore.userprofile.name">
@@ -247,12 +253,37 @@
>
<span v-if="userStore.userprofile.profile.qualifica">
<em
><div class="qualifica">{{
userStore.userprofile.profile.qualifica
}}</div></em
><div class="qualifica">
{{ userStore.userprofile.profile.qualifica }}
</div></em
>
</span>
</div>
<CContactUser
:myuser="userStore.userprofile"
:showBtnActivities="false"
:showBtnRis="true"
:sendRIS="tools.isUserOk() ? sendRIS : false"
:causalDest="causalDest"
@showed="showed"
/>
<q-tabs
v-model="tab"
dense
no-caps
class="bg-indigo text-white shadow-2 q-mt-sm full-width"
>
<q-tab name="attivita" label="Annunci" icon="fas fa-pencil-alt" />
<q-tab name="info" label="Info Personali" icon="fas fa-user" />
</q-tabs>
<q-tab-panels v-model="tab" animated keep-alive>
<q-tab-panel name="attivita">
<CMyActivities :introUser="false"></CMyActivities>
</q-tab-panel>
<q-tab-panel name="info">
<div
v-if="
userStore.userprofile._id &&
@@ -262,6 +293,7 @@
>
{{ userStore.userprofile.profile.biografia }}
</div>
<div>
<div class="row justify-center">
<q-btn
@@ -389,7 +421,8 @@
<!--HANDSHAKE-->
<div
v-if="
!isMyRecord(userStore.userprofile.username) && tools.isUserOk()
!isMyRecord(userStore.userprofile.username) &&
tools.isUserOk()
"
>
<div
@@ -515,7 +548,9 @@
<q-menu>
<q-list style="min-width: 150px">
<q-item
v-if="userStore.IsHandShakeByMe(userStore.userprofile)"
v-if="
userStore.IsHandShakeByMe(userStore.userprofile)
"
clickable
v-close-popup
@click="
@@ -637,41 +672,12 @@
/>
</div>
</div>
<CContactUser
:myuser="userStore.userprofile"
:showBtnActivities="true"
:showBtnRis="true"
:sendRIS="tools.isUserOk() ? sendRIS : false"
:causalDest="causalDest"
/>
<div class="row text-center">
<q-btn
v-if="userStore.userprofile.username === myusername()"
outline
icon="fas fa-pencil-alt"
:label="$t('shared.edit_profile')"
@click.stop="gotoPage('/editprofile')"
>
</q-btn>
</div>
</div>
<div
v-if="
userStore.userprofile &&
userStore.userprofile._id &&
tools.isUserOk()
"
>
<CTitleBanner
class=""
:title="$t('dashboard.info')"
bgcolor="bg-primary"
clcolor="text-white"
myclass="myshad"
:canopen="true"
>
<div
v-if="userStore.userprofile.profile"
@@ -744,7 +750,6 @@
-->
</div>
</div>
</CTitleBanner>
</div>
<div class="col-md-6 col-sm-6 q-ma-xs col-xs-12">
<CLabel
@@ -759,6 +764,20 @@
</CMyUser>
</CLabel>
</div>
</q-tab-panel>
</q-tab-panels>
<div class="row text-center">
<q-btn
v-if="userStore.userprofile.username === myusername()"
outline
icon="fas fa-pencil-alt"
:label="$t('shared.edit_profile')"
@click.stop="gotoPage('/editprofile')"
>
</q-btn>
</div>
</div>
</div>
<q-dialog v-model="showPic" full-height full-width>
<img :src="getImgUser()" :alt="username" class="full-width" />
@@ -793,7 +812,7 @@
</q-list>
</q-menu>
</q-btn>
<q-btn
<!--<q-btn
flat
round
color="blue"
@@ -801,7 +820,18 @@
style="z-index: 1"
@click.stop="tools.copyToClip($q, getlinkpage(), true)"
>
</q-btn>
</q-btn>-->
<q-page-sticky position="top-right" :offset="[18, 18]">
<q-btn
fab
glossy
class="semi-transparent"
icon="fas fa-link"
color="primary"
@click="tools.copyToClip($q, getlinkpage(), true)"
/>
</q-page-sticky>
</div>
</div>
</div>