- Migliorata la Notifica degli Eventi su Telegram
- Gli annunci (beni/servizi/ospitalità) ora possono essere visti anche tramite un link, anche per chi non è dentro alla App. - Aggiunto bottone "Aggiorna" per aggiornare il Saldo attuale. - I "Conti Collettivi" ora vengono chiamati Gruppi (o Conto di Gruppo).
This commit is contained in:
@@ -123,14 +123,14 @@
|
||||
"crypto": false
|
||||
},
|
||||
"browserslist": [
|
||||
"last 80 Chrome versions",
|
||||
"last 100 Chrome versions",
|
||||
"last 40 Firefox versions",
|
||||
"last 20 Edge versions",
|
||||
"last 55 Safari versions",
|
||||
"last 90 Android versions",
|
||||
"last 250 ChromeAndroid versions",
|
||||
"last 60 FirefoxAndroid versions",
|
||||
"last 30 iOS versions",
|
||||
"last 35 iOS versions",
|
||||
"last 10 Opera versions",
|
||||
"> 0.03%",
|
||||
"not dead"
|
||||
|
||||
@@ -15,6 +15,7 @@ export const shared_consts = {
|
||||
color: 'green',
|
||||
},
|
||||
},
|
||||
LIMIT_NOTIF_FOR_USER: 200,
|
||||
|
||||
ELEMTYPE: {
|
||||
TITLE: 5,
|
||||
@@ -57,6 +58,7 @@ export const shared_consts = {
|
||||
BTN_LOGIN: 260,
|
||||
FOOTER: 270,
|
||||
PROFILETUTORIAL: 280,
|
||||
VISUVIDEOPROMOANDPDF: 290
|
||||
},
|
||||
|
||||
QUERYTYPE_MYGROUP: 1,
|
||||
@@ -1464,6 +1466,10 @@ export const shared_consts = {
|
||||
value: 270,
|
||||
label: 'Footer',
|
||||
},
|
||||
{
|
||||
value: 280,
|
||||
label: 'Visu Promo and PDF',
|
||||
},
|
||||
{
|
||||
value: 40,
|
||||
label: 'Separatore',
|
||||
@@ -1766,6 +1772,7 @@ export const shared_consts = {
|
||||
lasttimeonline: 1,
|
||||
comune: 1,
|
||||
mycities: 1,
|
||||
lang: 1,
|
||||
'profile.img': 1,
|
||||
'profile.mygroups': 1,
|
||||
'profile.mycircuits': 1,
|
||||
|
||||
@@ -33,6 +33,7 @@ export default defineComponent({
|
||||
costanti,
|
||||
static_data,
|
||||
site,
|
||||
t,
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,56 +1,7 @@
|
||||
<template>
|
||||
<div v-if="showalways || (!showalways && !tools.isLogged())">
|
||||
<div class="q-pa-md q-gutter-sm">
|
||||
<div id="logo" class="text-center">
|
||||
<q-img
|
||||
id="logoimg"
|
||||
:src="tools.getimglogo()"
|
||||
class="q-my-sm"
|
||||
alt="logo APP"
|
||||
style="height: 100px; width: 100px"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<q-banner
|
||||
v-if="site.confpages.videoPromo"
|
||||
rounded
|
||||
dense
|
||||
size="lg"
|
||||
class="bg-grey-3 shadow-5 q-my-sm"
|
||||
color="primary q-title"
|
||||
style="text-align: center"
|
||||
>
|
||||
<div class="mybanner bg-blue text-white">Video di Presentazione:</div>
|
||||
<br />
|
||||
<q-video :src="site.confpages.videoPromo" :ratio="16 / 9"> </q-video>
|
||||
</q-banner>
|
||||
|
||||
<q-banner
|
||||
v-if="site.confpages.PDFPromo"
|
||||
rounded
|
||||
dense
|
||||
size="lg"
|
||||
class="bg-grey-3 shadow-5 q-my-sm"
|
||||
color="primary q-title"
|
||||
style="text-align: center"
|
||||
>
|
||||
<div class="mybanner bg-blue text-white">PDF Presentazione RISO:</div>
|
||||
<br />
|
||||
<template v-slot:action>
|
||||
<q-btn
|
||||
type="a"
|
||||
rounded
|
||||
icon="fab fa-telegram"
|
||||
color="primary"
|
||||
:href="site.confpages.PDFPromo"
|
||||
target="_blank"
|
||||
label="Scarica PDF"
|
||||
>
|
||||
</q-btn>
|
||||
</template>
|
||||
</q-banner>
|
||||
|
||||
<div class="text-h6 text-center">
|
||||
<div class=" text-center">
|
||||
<transition-group
|
||||
name="fade"
|
||||
mode="out-in"
|
||||
@@ -61,30 +12,33 @@
|
||||
<q-banner
|
||||
:key="1"
|
||||
rounded
|
||||
dense
|
||||
size="lg"
|
||||
class="shadow-5 q-my-sm"
|
||||
class="text-white bg-red"
|
||||
color="primary q-title"
|
||||
style="text-align: center"
|
||||
>
|
||||
<template v-slot:avatar>
|
||||
<q-icon :key="2" name="signal_wifi_off" color="primary" />
|
||||
<q-icon :key="2" name="fas fa-sign-in-alt" color="white" />
|
||||
</template>
|
||||
<div class="mybanner" :key="3">
|
||||
Accedi per Unirti alla RETE e al Circuito di scambio RIS
|
||||
<div :key="3">
|
||||
Accedi con le tue credenziali per utilizzare la APP e per unirti
|
||||
al Circuito di scambio RIS del tuo territorio
|
||||
</div>
|
||||
<template v-slot:action>
|
||||
<div>
|
||||
<q-btn
|
||||
rounded
|
||||
icon="fas fa-user"
|
||||
color="primary"
|
||||
flat
|
||||
color="white"
|
||||
@click="tools.openrighttoolbar()"
|
||||
>{{ $t('login.enter') }}
|
||||
</q-btn>
|
||||
<CRegistration />
|
||||
</div>
|
||||
|
||||
<!--<CRegistration />-->
|
||||
</template>
|
||||
</q-banner>
|
||||
</transition-group>
|
||||
<q-separator inset />
|
||||
<br>
|
||||
<q-banner
|
||||
rounded
|
||||
dense
|
||||
|
||||
@@ -141,13 +141,13 @@ export default defineComponent({
|
||||
|
||||
const mypagination = computed(() => {
|
||||
if (props.table === toolsext.TABMYBACHECAS)
|
||||
return { sortBy: 'dateTimeStart', descending: false, page: 1, rowsNumber: 20, rowsPerPage: 20 }
|
||||
return { sortBy: 'dateTimeStart', descending: false, page: 1, rowsNumber: 0, rowsPerPage: 10 }
|
||||
else if (props.table === toolsext.TABMYGROUPS)
|
||||
return { sortBy: 'date_created', descending: true, page: 1, rowsNumber: 20, rowsPerPage: 20 }
|
||||
return { sortBy: 'date_created', descending: true, page: 1, rowsNumber: 0, rowsPerPage: 10 }
|
||||
else if (props.table === toolsext.TABMOVEMENTS)
|
||||
return { sortBy: 'transactionDate', descending: true, page: 1, rowsNumber: 20, rowsPerPage: 20 }
|
||||
return { sortBy: 'transactionDate', descending: true, page: 1, rowsNumber: 0, rowsPerPage: 20 }
|
||||
else if (props.table === toolsext.TABCIRCUITS)
|
||||
return { sortBy: 'numMembers', descending: true, page: 1, rowsNumber: 20, rowsPerPage: 20 }
|
||||
return { sortBy: 'numMembers', descending: true, page: 1, rowsNumber: 0, rowsPerPage: 20 }
|
||||
else if (props.table === toolsext.TABUSER)
|
||||
return userStore.getMypaginationMembers()
|
||||
else if (shared_consts.TABLES_ORDER_DATE_UPDATED.includes(props.table))
|
||||
@@ -155,7 +155,7 @@ export default defineComponent({
|
||||
else if (shared_consts.TABLES_ORDER_DESCR.includes(props.table))
|
||||
return { sortBy: 'desc', descending: false, page: 1, rowsNumber: 0, rowsPerPage: 10 }
|
||||
|
||||
return { sortBy: 'date_created', descending: true, page: 1, rowsNumber: 20, rowsPerPage: 20 }
|
||||
return { sortBy: 'date_created', descending: true, page: 1, rowsNumber: 0, rowsPerPage: 10 }
|
||||
})
|
||||
|
||||
const searchList = computed(() => {
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
:defaultnewrec="tools.getdefaultnewrec(table)"
|
||||
labelBtnAddRow="NONE"
|
||||
:prop_SortFieldsAvailable="mySortFieldsAvailable"
|
||||
:labelBtnAddExtra="noButtAdd ? `` : ``"
|
||||
:labelBtnAddExtra="noButtAdd ? `` : (ind >= 0) ? `Aggiungi ` + costanti.MAINCARDS[ind].strsingolo : ''"
|
||||
:extraparams="tools.extraparams(table, {myrecfiltertoggle})"
|
||||
>
|
||||
</CGridTableRec>
|
||||
|
||||
@@ -49,13 +49,18 @@ export default defineComponent({
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
subtitle: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
prop_mytable: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
prop_mycolumns: {
|
||||
type: Object as PropType<[]>,
|
||||
type: Object as PropType<any[]>,
|
||||
required: false,
|
||||
default: null,
|
||||
},
|
||||
@@ -303,9 +308,10 @@ export default defineComponent({
|
||||
const globalStore = useGlobalStore()
|
||||
const isfinishLoading = computed(() => globalStore.finishLoading)
|
||||
|
||||
const pagination = ref({ sortBy: 'desc', descending: false, page: 1, rowsNumber: 10, rowsPerPage: 10 } as IPagination)
|
||||
const pagination = ref({ sortBy: 'desc', descending: false, page: 1, rowsNumber: 0, rowsPerPage: 10 } as IPagination)
|
||||
|
||||
const addRow = ref('Aggiungi')
|
||||
const actmonth = ref('')
|
||||
|
||||
const newRecordBool = ref(false)
|
||||
const newRecordBoolOld = ref(false)
|
||||
@@ -317,7 +323,7 @@ export default defineComponent({
|
||||
|
||||
const mytable = ref('')
|
||||
const mytitle = ref('')
|
||||
const mycolumns = ref([])
|
||||
const mycolumns = ref([] as any[])
|
||||
const colkey = ref('')
|
||||
const search = ref('')
|
||||
|
||||
@@ -326,6 +332,7 @@ export default defineComponent({
|
||||
const showNotification = ref(false)
|
||||
|
||||
const loading = ref(false)
|
||||
const alreadymounting = ref(false)
|
||||
const editOn = computed({
|
||||
get: () => globalStore.editOn,
|
||||
set: val => {
|
||||
@@ -343,13 +350,13 @@ export default defineComponent({
|
||||
|
||||
const myinfscroll = ref(null)
|
||||
|
||||
const serverData: any = ref([])
|
||||
const serverData: any = ref([] as any[])
|
||||
const numRecLoaded = ref(0)
|
||||
const spinner_visible = ref(false)
|
||||
const changetable = ref(false)
|
||||
const searchList = ref([] as ISearchList[])
|
||||
|
||||
const actual = ''
|
||||
const actual = ref(<any>'')
|
||||
|
||||
let idsel = ''
|
||||
const colsel = ref({ name: '', field: '', sortable: false } as IColGridTable | null)
|
||||
@@ -386,11 +393,14 @@ export default defineComponent({
|
||||
const ordinam_desc = ref(false)
|
||||
|
||||
|
||||
const valoriopt = computed(() => (item: any, addall: boolean, addnone: boolean) => {
|
||||
const getNumRecFromQuery = computed(() => () => {
|
||||
return serverData.value.length
|
||||
})
|
||||
const valoriopt = computed(() => (item: any, addall?: boolean, addnone?: boolean) => {
|
||||
// console.log('valoriopt', item.table)
|
||||
return globalStore.getTableJoinByName(item.table, addall, addnone, item.filter)
|
||||
})
|
||||
const lengthopt = computed(() => (item: any, addall: boolean, addnone: boolean) => {
|
||||
const lengthopt = computed(() => (item: any, addall: boolean, addnone?: boolean) => {
|
||||
// console.log('valoriopt', item.table)
|
||||
const valori = globalStore.getTableJoinByName(item.table, addall, addnone, item.filter)
|
||||
return (valori ? valori.length : 0)
|
||||
@@ -1094,6 +1104,7 @@ export default defineComponent({
|
||||
myinfscroll.value.resume()
|
||||
}
|
||||
done()
|
||||
alreadymounting.value = true
|
||||
return
|
||||
}
|
||||
|
||||
@@ -1158,6 +1169,8 @@ export default defineComponent({
|
||||
|
||||
// console.log(' ...DONE ')
|
||||
done(pagination.value.rowsNumber === 0 ? true : false)
|
||||
|
||||
alreadymounting.value = true
|
||||
})
|
||||
} else {
|
||||
startsearch.value = false
|
||||
@@ -1169,7 +1182,6 @@ export default defineComponent({
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function refresh_arr() {
|
||||
const myarr = [...serverData.value]
|
||||
serverData.value = []
|
||||
@@ -1185,7 +1197,7 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
function refresh_infscroll(done: any) {
|
||||
// console.log('refresh_infscroll', 'pag', pagination.value.rowsNumber)
|
||||
console.log('refresh_infscroll', 'pag', pagination.value.rowsNumber, 'done', done)
|
||||
rowclicksel.value = null
|
||||
|
||||
onUpdateData(0,
|
||||
@@ -1197,7 +1209,7 @@ export default defineComponent({
|
||||
|
||||
|
||||
function refresh() {
|
||||
// console.log('refresh', 'startsearch', startsearch.value)
|
||||
console.log('refresh', 'startsearch', startsearch.value)
|
||||
|
||||
clickbuttsearch.value = true
|
||||
// console.log('refresh')
|
||||
@@ -1508,12 +1520,13 @@ export default defineComponent({
|
||||
myvertical.value = props.vertical
|
||||
// myvertical.value = tools.getCookie('myv_' + props.prop_mytable, props.vertical)
|
||||
|
||||
showfilter.value = tools.getCookie('s_adv', '0') !== '0'
|
||||
showfilter.value = props.prop_showfilter || (tools.getCookie('s_adv', '0') !== '0')
|
||||
}
|
||||
|
||||
function mounted() {
|
||||
searchList.value = props.prop_searchList
|
||||
|
||||
|
||||
// console.log('GridTable mounted', tablesel.value)
|
||||
|
||||
// console.log('props.filtercustom', props.filtercustom)
|
||||
@@ -1548,7 +1561,8 @@ export default defineComponent({
|
||||
|
||||
// console.log('2) tablesel', tablesel.value)
|
||||
|
||||
changeTable(tablesel.value)
|
||||
changeTable(tablesel.value, true)
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1696,7 +1710,7 @@ export default defineComponent({
|
||||
}
|
||||
}
|
||||
|
||||
function changeTable(mysel: any) {
|
||||
function changeTable(mysel: any, mounted: boolean) {
|
||||
// console.log('changeTable', tablesel.value)
|
||||
changetable.value = true
|
||||
if (tablesel.value === undefined || tablesel.value === '')
|
||||
@@ -2171,7 +2185,7 @@ export default defineComponent({
|
||||
|
||||
if (index > 1) {
|
||||
// console.log('onLoadScroll', index, 'RECLOAD', numRecLoaded.value, 'ROWS: ', pagination.value.rowsNumber, 'PAGE: ', pagination.value.page)
|
||||
if (numRecLoaded.value < pagination.value.rowsNumber || (pagination.value.rowsNumber <= 0 && clickbuttsearch.value)) {
|
||||
if ((numRecLoaded.value < pagination.value.rowsNumber || (pagination.value.rowsNumber <= 0 && clickbuttsearch.value))) {
|
||||
if (pagination.value.rowsNumber === 0) {
|
||||
pagination.value.page = 0
|
||||
}
|
||||
@@ -2369,6 +2383,9 @@ export default defineComponent({
|
||||
lengthopt,
|
||||
update_col,
|
||||
startsearch,
|
||||
getNumRecFromQuery,
|
||||
actmonth,
|
||||
alreadymounting,
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -66,19 +66,27 @@
|
||||
<q-spinner-tail size="2em" color="primary" />
|
||||
</q-inner-loading>
|
||||
|
||||
<CTitleBanner
|
||||
v-if="subtitle"
|
||||
:title="subtitle"
|
||||
bgcolor="bg-blue"
|
||||
clcolor="text-white"
|
||||
>
|
||||
</CTitleBanner>
|
||||
|
||||
<div v-if="shared_consts.VERTIC_SHOW_GRID.includes(myvertical)">
|
||||
<div v-if="(prop_search || canEdit) && finder" class="q-my-xs text-right">
|
||||
<!--<q-btn
|
||||
size="sm"
|
||||
dense
|
||||
icon="fas fa-filter"
|
||||
:label="$t('grid.showfilters')"
|
||||
:label="t('grid.showfilters')"
|
||||
@click="showfilter = !showfilter"
|
||||
></q-btn>
|
||||
-->
|
||||
</div>
|
||||
<q-slide-transition>
|
||||
<div v-show="showfilter || prop_showfilter">
|
||||
<div v-show="showfilter">
|
||||
<div
|
||||
v-show="searchList"
|
||||
:class="$q.screen.lt.sm ? `` : `row` + ` text-blue `"
|
||||
@@ -89,7 +97,7 @@
|
||||
v-if="
|
||||
(item.type === costanti.FieldType.select ||
|
||||
item.type === costanti.FieldType.select_by_server) &&
|
||||
lengthopt(item, false) > 1
|
||||
lengthopt(item, false, false) > 1
|
||||
"
|
||||
:label="labelcombo(item)"
|
||||
v-model:value="item.value"
|
||||
@@ -108,7 +116,7 @@
|
||||
:icon_alternative="item.icon"
|
||||
:optval="fieldsTable.getKeyByTable(item.table)"
|
||||
:optlab="fieldsTable.getLabelByTable(item.table)"
|
||||
:options="valoriopt(item, false)"
|
||||
:options="valoriopt(item, false, false)"
|
||||
:filter="item.filter"
|
||||
:filter_extra="item.filter_extra"
|
||||
:useinput="
|
||||
@@ -236,7 +244,7 @@
|
||||
>
|
||||
<q-btn
|
||||
dense
|
||||
label="Filtra Ricerca"
|
||||
:label="!showfilter ? 'Apri Filtri' : 'Chiudi Filtri'"
|
||||
color="positive"
|
||||
icon="fas fa-filter"
|
||||
@click="showfilter = !showfilter"
|
||||
@@ -249,18 +257,11 @@
|
||||
{{ getNumFilterSelected() }}
|
||||
</q-badge>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
dense
|
||||
icon="add"
|
||||
color="primary"
|
||||
@click="createNewRecordDialog"
|
||||
/>
|
||||
|
||||
<q-btn
|
||||
dense
|
||||
color="orange"
|
||||
icon="fas fa-bell"
|
||||
label="Avvisami se..."
|
||||
label="Notifiche"
|
||||
@click="showNotification = !showNotification"
|
||||
></q-btn>
|
||||
</div>
|
||||
@@ -272,11 +273,14 @@
|
||||
type="search"
|
||||
debounce="500"
|
||||
:hint="hint"
|
||||
:error-message="noresultLabel"
|
||||
:error="getNumRecFromQuery() === 0 && !startsearch"
|
||||
label="Cerca"
|
||||
v-on:keyup.enter="doSearch"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="search" />
|
||||
<q-spinner-oval v-if="startsearch" color="primary" size="1em" />
|
||||
<q-icon v-else name="search" />
|
||||
</template>
|
||||
<template v-slot:after>
|
||||
<q-select
|
||||
@@ -320,7 +324,7 @@
|
||||
multiple
|
||||
dense
|
||||
options-dense
|
||||
:display-value="$t('grid.columns')"
|
||||
:display-value="t('grid.columns')"
|
||||
emit-value
|
||||
map-options
|
||||
:options="mycolumns"
|
||||
@@ -330,12 +334,14 @@
|
||||
</q-select>
|
||||
</div>
|
||||
|
||||
<div class="q-ma-sm">
|
||||
<div v-if="pagination.rowsNumber === 1 && prop_search">
|
||||
{{ pagination.rowsNumber }} elemento trovato
|
||||
</div>
|
||||
<div v-if="pagination.rowsNumber > 1 && prop_search">
|
||||
{{ pagination.rowsNumber }} {{ labelElemFind }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="choose_visutype && $q.screen.gt.xs" class="">
|
||||
<q-radio v-model="myvertical" :val="2" label="Lista" />
|
||||
@@ -355,15 +361,16 @@
|
||||
</div>
|
||||
<q-infinite-scroll
|
||||
ref="myinfscroll"
|
||||
v-if="shared_consts.VERTIC_SHOW_GRID.includes(myvertical) && !loading"
|
||||
v-if="
|
||||
shared_consts.VERTIC_SHOW_GRID.includes(myvertical) &&
|
||||
!loading &&
|
||||
alreadymounting
|
||||
"
|
||||
:initial-index="0"
|
||||
@load="onLoadScroll"
|
||||
:offset="350"
|
||||
debounce="300"
|
||||
>
|
||||
<div v-if="numRecLoaded === 0 && !startsearch">
|
||||
<div class="text-grey text-italic">{{ nodataLabel }}</div>
|
||||
</div>
|
||||
<div v-if="showHeaderCol">
|
||||
<div
|
||||
v-for="col in mycolumns"
|
||||
@@ -577,7 +584,9 @@
|
||||
</template>
|
||||
</q-infinite-scroll>
|
||||
<q-table
|
||||
v-else
|
||||
v-else-if="
|
||||
!shared_consts.VERTIC_SHOW_GRID.includes(myvertical) && !loading
|
||||
"
|
||||
:grid="shared_consts.VERTIC_SHOW_GRID.includes(myvertical)"
|
||||
:grid-header="
|
||||
shared_consts.VERTIC_SHOW_GRID.includes(myvertical) &&
|
||||
@@ -654,15 +663,6 @@
|
||||
>
|
||||
<span style="display: none">{{ (actual = null) }}</span>
|
||||
|
||||
<q-btn
|
||||
v-if="enableExport"
|
||||
color="primary"
|
||||
icon-right="archive"
|
||||
:label="t('export.csv')"
|
||||
no-caps
|
||||
@click="exportTable"
|
||||
/>
|
||||
|
||||
<q-select
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
v-if="tablesList"
|
||||
@@ -677,6 +677,15 @@
|
||||
>
|
||||
</q-select>
|
||||
|
||||
<q-btn
|
||||
v-if="enableExport"
|
||||
color="primary"
|
||||
icon-right="archive"
|
||||
:label="t('export.csv')"
|
||||
no-caps
|
||||
@click="exportTable"
|
||||
/>
|
||||
|
||||
<div class="row">
|
||||
<q-toggle
|
||||
v-for="(filt, index) of arrfilters"
|
||||
@@ -857,6 +866,8 @@
|
||||
type="search"
|
||||
debounce="500"
|
||||
:hint="hint"
|
||||
:error-message="noresultLabel"
|
||||
:error="getNumRecFromQuery() === 0 && !startsearch"
|
||||
label="Cerca"
|
||||
v-on:keyup.enter="doSearch"
|
||||
>
|
||||
@@ -889,7 +900,7 @@
|
||||
multiple
|
||||
dense
|
||||
options-dense
|
||||
:display-value="$t('grid.columns')"
|
||||
:display-value="t('grid.columns')"
|
||||
emit-value
|
||||
map-options
|
||||
:options="mycolumns"
|
||||
@@ -1278,13 +1289,13 @@
|
||||
</q-card-section>
|
||||
<q-card-actions align="center">
|
||||
<q-btn
|
||||
:label="$t('dialog.insert')"
|
||||
:label="t('dialog.insert')"
|
||||
color="primary"
|
||||
@click="saveNewRecord"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
flat
|
||||
:label="$t('dialog.cancel')"
|
||||
:label="t('dialog.cancel')"
|
||||
color="primary"
|
||||
v-close-popup
|
||||
@click="annulla"
|
||||
@@ -1352,13 +1363,13 @@
|
||||
</q-card-section>
|
||||
<q-card-actions align="center">
|
||||
<q-btn
|
||||
:label="$t('dialog.save')"
|
||||
:label="t('dialog.save')"
|
||||
color="primary"
|
||||
@click="saveNewRecord"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
flat
|
||||
:label="$t('dialog.cancel')"
|
||||
:label="t('dialog.cancel')"
|
||||
color="primary"
|
||||
v-close-popup
|
||||
@click="annulla"
|
||||
@@ -1417,13 +1428,13 @@
|
||||
</q-card-section>
|
||||
<q-card-actions align="center">
|
||||
<q-btn
|
||||
:label="$t('dialog.ok')"
|
||||
:label="t('dialog.ok')"
|
||||
color="primary"
|
||||
@click="saverecModif"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
flat
|
||||
:label="$t('dialog.cancel')"
|
||||
:label="t('dialog.cancel')"
|
||||
color="primary"
|
||||
@click="cancelrecModif"
|
||||
></q-btn>
|
||||
|
||||
@@ -298,7 +298,7 @@ export default defineComponent({
|
||||
const globalStore = useGlobalStore()
|
||||
const isfinishLoading = computed(() => globalStore.finishLoading)
|
||||
|
||||
const pagination = ref({ sortBy: 'desc', descending: false, page: 1, rowsNumber: 10, rowsPerPage: 10 } as IPagination)
|
||||
const pagination = ref({ sortBy: 'desc', descending: false, page: 1, rowsNumber: 0, rowsPerPage: 10 } as IPagination)
|
||||
|
||||
const addRow = ref('Aggiungi')
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
<q-separator />
|
||||
|
||||
|
||||
<CSaldo
|
||||
v-if="tools.isUserOk() && myaccount"
|
||||
:account="myaccount"
|
||||
|
||||
@@ -169,11 +169,12 @@ export default defineComponent({
|
||||
return userStore.my.profile
|
||||
}
|
||||
|
||||
function load() {
|
||||
async function load() {
|
||||
|
||||
// Carica il record
|
||||
if (props.idRec) {
|
||||
userStore.loadGeneric(props.table, props.idRec, idnotif.value).then((ris) => {
|
||||
await userStore.loadGeneric(props.table, props.idRec, idnotif.value).then((ris) => {
|
||||
console.log('myrec', myrec)
|
||||
myrec.value = ris
|
||||
notifStore.setAsRead(idnotif.value)
|
||||
})
|
||||
@@ -233,6 +234,10 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
async function clicca(tipo: any, myset: any, title: string) {
|
||||
if (!userStore.my.username) {
|
||||
return
|
||||
}
|
||||
|
||||
let mylist = null
|
||||
if (tipo === costanti.TIPOFAVBOOK.FAVORITE) {
|
||||
if (myset) {
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<div v-if="myrec && myrec._id" class="fulldiv">
|
||||
<div class="q-pa-sm row items-start q-gutter-sm full-height fulldiv">
|
||||
<q-card class="my-card fulldiv" bordered>
|
||||
idRec: {{ idRec }}
|
||||
<CGalleryImages
|
||||
v-if="myrec.photos.length > 0"
|
||||
:imgGallery="myrec.photos"
|
||||
@@ -41,6 +40,7 @@
|
||||
<div class="">
|
||||
<q-btn flat round color="blue" icon="far fa-eye">
|
||||
<q-badge
|
||||
v-if="myrec.myreact"
|
||||
color="primary"
|
||||
:label="myrec.myreact.numseen ? myrec.myreact.numseen : 0"
|
||||
floating
|
||||
@@ -61,6 +61,7 @@
|
||||
@click="clicca(costanti.TIPOFAVBOOK.FAVORITE, true, '')"
|
||||
>
|
||||
<q-badge
|
||||
v-if="myrec.myreact"
|
||||
color="primary"
|
||||
:label="myrec.myreact.numfav ? myrec.myreact.numfav : 0"
|
||||
floating
|
||||
@@ -81,6 +82,7 @@
|
||||
@click="clicca(costanti.TIPOFAVBOOK.BOOKMARK, true, '')"
|
||||
>
|
||||
<q-badge
|
||||
v-if="myrec.myreact"
|
||||
color="primary"
|
||||
:label="myrec.myreact.numbook ? myrec.myreact.numbook : 0"
|
||||
floating
|
||||
@@ -124,7 +126,7 @@
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item
|
||||
v-if="!nopopup"
|
||||
v-if="!nopopup && myrec.myreact"
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="naviga(tools.getPathByTableAndRec(table, myrec))"
|
||||
@@ -138,6 +140,7 @@
|
||||
</q-item>
|
||||
<q-separator />
|
||||
<q-item
|
||||
v-if="myrec.myreact"
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="
|
||||
@@ -166,6 +169,7 @@
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item
|
||||
v-if="myrec.myreact"
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="
|
||||
@@ -223,6 +227,7 @@
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-item
|
||||
v-if="myrec.myreact"
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="
|
||||
|
||||
@@ -115,6 +115,7 @@
|
||||
:qtarem="qtarem"
|
||||
>
|
||||
</CSaldo>
|
||||
|
||||
</q-item-label>
|
||||
</q-item-section>
|
||||
|
||||
@@ -328,8 +329,10 @@
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
|
||||
<div class="centermydiv text-center" v-if="visu === costanti.ENTER_TO_THE_CIRCUIT">
|
||||
|
||||
<div
|
||||
class="centermydiv text-center"
|
||||
v-if="visu === costanti.ENTER_TO_THE_CIRCUIT"
|
||||
>
|
||||
<q-btn
|
||||
v-if="
|
||||
!userStore.IsMyCircuitByName(circuit.name) &&
|
||||
@@ -338,7 +341,6 @@
|
||||
"
|
||||
icon="fas fa-user-plus"
|
||||
color="primary"
|
||||
|
||||
:label="$t('circuit.ask')"
|
||||
@click="
|
||||
requestToEnterCircuit = true;
|
||||
@@ -441,7 +443,10 @@
|
||||
<div style="font-weight: bold; font-size: 1.25rem">Regolamento:</div>
|
||||
<q-btn label="vedi Regolamento" @click="showrules = !showrules">
|
||||
</q-btn>
|
||||
<div v-if="showrules" v-html="getRegulation(circuit.regulation)"></div>
|
||||
<div
|
||||
v-if="showrules"
|
||||
v-html="getRegulation(circuit.regulation)"
|
||||
></div>
|
||||
</q-card-section>
|
||||
<q-card-actions align="center">
|
||||
<q-btn
|
||||
|
||||
@@ -119,9 +119,11 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
|
||||
function mounted() {
|
||||
async function mounted() {
|
||||
console.log(' ## INIZIO MOUNT ')
|
||||
username.value = userStore.my.username
|
||||
loadCircuits()
|
||||
await loadCircuits()
|
||||
console.log(' -- FINE MOUNT ')
|
||||
}
|
||||
|
||||
function updateValue(val: number) {
|
||||
|
||||
@@ -34,6 +34,7 @@ import { CNotifAtTop } from '@src/components/CNotifAtTop'
|
||||
import { CPresentazione } from '@src/components/CPresentazione'
|
||||
import { CRegistration } from '@src/components/CRegistration'
|
||||
import { CShareSocial } from '@src/components/CShareSocial'
|
||||
import { CVisuVideoPromoAndPDF } from '@src/components/CVisuVideoPromoAndPDF'
|
||||
|
||||
import MixinMetaTags from '@/mixins/mixin-metatags'
|
||||
import MixinBase from '@/mixins/mixin-base'
|
||||
@@ -52,6 +53,7 @@ export default defineComponent({
|
||||
CPresentazione, CMyActivities,
|
||||
CMyProfileTutorial, CSendRISTo,
|
||||
CTitleBanner, CShareSocial, CCheckAppRunning, CRegistration,
|
||||
CVisuVideoPromoAndPDF,
|
||||
},
|
||||
emits: ['selElemClick'],
|
||||
props: {
|
||||
|
||||
@@ -488,6 +488,10 @@
|
||||
<div v-if="editOn" class="elemEdit">CCheckIfIsLogged</div>
|
||||
<CCheckIfIsLogged :showalways="myel.container"></CCheckIfIsLogged>
|
||||
</div>
|
||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.VISUVIDEOPROMOANDPDF">
|
||||
<div v-if="editOn" class="elemEdit">Visu Video Promo and PDF</div>
|
||||
<CVisuVideoPromoAndPDF :showalways="myel.container"></CVisuVideoPromoAndPDF>
|
||||
</div>
|
||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.INFO_VERSION">
|
||||
<div>Versione: {{ tools.getvers() }}</div>
|
||||
</div>
|
||||
|
||||
@@ -181,12 +181,12 @@
|
||||
><q-icon dense color="blue" name="far fa-check-circle" />
|
||||
</span>
|
||||
</span>
|
||||
<span class="q-mx-xxs">{{ myrec.myreact.numseen ? myrec.myreact.numseen : 0 }}</span>
|
||||
<span class="q-mx-xxs" v-if="myrec.myreact">{{ myrec.myreact.numseen ? myrec.myreact.numseen : 0 }}</span>
|
||||
<span class="q-mx-xxs"
|
||||
><q-icon dense color="blue" name="far fa-eye" />
|
||||
</span>
|
||||
<span class="q-mx-xxs"> </span>
|
||||
<span class="">{{ myrec.myreact.numfav ? myrec.myreact.numfav : 0 }}</span>
|
||||
<span class="" v-if="myrec.myreact">{{ myrec.myreact.numfav ? myrec.myreact.numfav : 0 }}</span>
|
||||
<span class="q-mx-xxs"
|
||||
><q-icon
|
||||
dense
|
||||
|
||||
@@ -2,7 +2,7 @@ import { defineComponent, onMounted, PropType, ref, watch } from 'vue'
|
||||
import { tools } from '@src/store/Modules/tools'
|
||||
import { CCurrencyValue } from '../CCurrencyValue'
|
||||
|
||||
|
||||
import { useCircuitStore } from '@store/CircuitStore'
|
||||
import { date, useQuasar } from 'quasar'
|
||||
import { useI18n } from '@/boot/i18n'
|
||||
import { IAccount, ISpecialField } from 'model'
|
||||
@@ -57,11 +57,12 @@ export default defineComponent({
|
||||
const showingtooltip = ref(false)
|
||||
const visuTransac = ref(false)
|
||||
|
||||
const circuitStore = useCircuitStore()
|
||||
|
||||
function created() {
|
||||
// created
|
||||
}
|
||||
|
||||
|
||||
onMounted(created)
|
||||
|
||||
return {
|
||||
@@ -72,7 +73,7 @@ export default defineComponent({
|
||||
color_border,
|
||||
visuTransac,
|
||||
costanti,
|
||||
|
||||
circuitStore,
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
@@ -39,7 +39,9 @@ export default defineComponent({
|
||||
|
||||
const loading = ref(false)
|
||||
|
||||
const site = ref(globalStore.site)
|
||||
const site = computed(() => {
|
||||
return globalStore.site
|
||||
})
|
||||
|
||||
const myForm = ref(null)
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
ù<template>
|
||||
<div>
|
||||
<div class="q-my-xs">
|
||||
title: {{title}}
|
||||
<CGridTableRec
|
||||
v-if="filtercustom.length > 0 && col && col.length > 0"
|
||||
:prop_mytable="table"
|
||||
@@ -13,10 +14,10 @@
|
||||
:vertical="costanti.VISUTABLE_LISTA"
|
||||
:choose_visutype="!visuinpage"
|
||||
:butt_modif_new="!visuinpage"
|
||||
nodataLabel="Nessun dato presente"
|
||||
nodataLabel=" "
|
||||
:prop_search="false"
|
||||
:visuinpage="visuinpage"
|
||||
noresultLabel="Il filtro selezionato non ha trovato nessun risultato"
|
||||
noresultLabel="La ricerca non ha ottenuto nessun risultato"
|
||||
:defaultnewrec="tools.getdefaultnewrec(table, {groupname})"
|
||||
:filtercustom="filtercustom"
|
||||
v-bind="$attrs"
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
<q-separator />
|
||||
|
||||
|
||||
<CSaldo
|
||||
v-if="tools.isUserOk() && myaccount"
|
||||
:account="myaccount"
|
||||
|
||||
6
src/components/CVisuVideoPromoAndPDF/CVisuVideoPromoAndPDF.scss
Executable file
6
src/components/CVisuVideoPromoAndPDF/CVisuVideoPromoAndPDF.scss
Executable file
@@ -0,0 +1,6 @@
|
||||
#logoimg {
|
||||
height: 300px;
|
||||
width: auto;
|
||||
@media screen and (max-width: 600px) {
|
||||
}
|
||||
}
|
||||
38
src/components/CVisuVideoPromoAndPDF/CVisuVideoPromoAndPDF.ts
Executable file
38
src/components/CVisuVideoPromoAndPDF/CVisuVideoPromoAndPDF.ts
Executable file
@@ -0,0 +1,38 @@
|
||||
import { defineComponent, ref, computed, PropType, toRef } from 'vue'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { useI18n } from '@/boot/i18n'
|
||||
import { tools } from '@store/Modules/tools'
|
||||
import { costanti } from '@store/Modules/costanti'
|
||||
import { static_data } from '@src/db/static_data'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CVisuVideoPromoAndPDF',
|
||||
components: { },
|
||||
props: {
|
||||
showalways: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
setup(props, { emit }) {
|
||||
|
||||
const userStore = useUserStore()
|
||||
const $router = useRouter()
|
||||
const globalStore = useGlobalStore()
|
||||
const { t } = useI18n()
|
||||
|
||||
const site = ref(globalStore.site)
|
||||
|
||||
return {
|
||||
userStore,
|
||||
tools,
|
||||
costanti,
|
||||
static_data,
|
||||
site,
|
||||
t,
|
||||
}
|
||||
}
|
||||
})
|
||||
61
src/components/CVisuVideoPromoAndPDF/CVisuVideoPromoAndPDF.vue
Executable file
61
src/components/CVisuVideoPromoAndPDF/CVisuVideoPromoAndPDF.vue
Executable file
@@ -0,0 +1,61 @@
|
||||
<template>
|
||||
<div v-if="showalways || (!showalways && !tools.isLogged())">
|
||||
<div class="q-pa-md q-gutter-sm">
|
||||
<div id="logo" class="text-center">
|
||||
<q-img
|
||||
id="logoimg"
|
||||
:src="tools.getimglogo()"
|
||||
class="q-my-sm"
|
||||
alt="logo APP"
|
||||
style="height: 100px; width: 100px"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<q-banner
|
||||
v-if="site.confpages.videoPromo"
|
||||
rounded
|
||||
dense
|
||||
size="lg"
|
||||
class="bg-grey-3 shadow-5 q-my-sm"
|
||||
color="primary q-title"
|
||||
style="text-align: center"
|
||||
>
|
||||
<div class="mybanner bg-blue text-white">Video di Presentazione:</div>
|
||||
<br />
|
||||
<q-video :src="site.confpages.videoPromo" :ratio="16 / 9"> </q-video>
|
||||
</q-banner>
|
||||
|
||||
<q-banner
|
||||
v-if="site.confpages.PDFPromo"
|
||||
rounded
|
||||
dense
|
||||
size="lg"
|
||||
class="bg-grey-3 shadow-5 q-my-sm"
|
||||
color="primary q-title"
|
||||
style="text-align: center"
|
||||
>
|
||||
<div class="mybanner bg-blue text-white">PDF Presentazione RISO:</div>
|
||||
<br />
|
||||
<template v-slot:action>
|
||||
<q-btn
|
||||
type="a"
|
||||
rounded
|
||||
icon="fab fa-telegram"
|
||||
color="primary"
|
||||
:href="site.confpages.PDFPromo"
|
||||
target="_blank"
|
||||
label="Scarica PDF"
|
||||
>
|
||||
</q-btn>
|
||||
</template>
|
||||
</q-banner>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CVisuVideoPromoAndPDF.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './CVisuVideoPromoAndPDF.scss';
|
||||
</style>
|
||||
1
src/components/CVisuVideoPromoAndPDF/index.ts
Executable file
1
src/components/CVisuVideoPromoAndPDF/index.ts
Executable file
@@ -0,0 +1 @@
|
||||
export {default as CVisuVideoPromoAndPDF} from './CVisuVideoPromoAndPDF.vue'
|
||||
@@ -781,6 +781,7 @@ export interface ISearchList {
|
||||
useinput: boolean
|
||||
notinsearch?: boolean
|
||||
addall?: boolean
|
||||
addnone?: boolean
|
||||
keycookie?: string
|
||||
showcount?: boolean
|
||||
tablesel?: string
|
||||
@@ -818,6 +819,7 @@ export interface IMsgGlobParam {
|
||||
typesend: number
|
||||
sendreally?: boolean
|
||||
textaddTelegram?: string
|
||||
textcontent_Telegram?: string
|
||||
linkaddTelegram?: string
|
||||
}
|
||||
|
||||
|
||||
@@ -108,6 +108,7 @@ export interface IUserProfile {
|
||||
username_telegram?: string
|
||||
website?: string
|
||||
teleg_id?: number
|
||||
teleg_id_old?: number
|
||||
teleg_checkcode?: number
|
||||
paymenttypes?: IPaymentType[]
|
||||
manage_telegram?: boolean
|
||||
|
||||
@@ -238,7 +238,7 @@ const msg_it = {
|
||||
domanda_addtogroup: 'Aggiungi {username} al gruppo {groupname}?',
|
||||
domanda_addfidotocircuit: 'Abilita il fido a {username} al {circuitname}?',
|
||||
domanda_addtocircuit: 'Aggiungi {username} al {circuitname}?',
|
||||
domanda_addgrouptocircuit: 'Aggiungi il Conto Collettivo {groupname} al {circuitname}?',
|
||||
domanda_addgrouptocircuit: 'Aggiungi il Conto del Gruppo {groupname} al {circuitname}?',
|
||||
addedfriend: 'Aggiunto alla lista di Amici',
|
||||
addedhandshake: 'Aggiunto alla lista Strette di Mano',
|
||||
addedgroup: 'Aggiunto al Gruppo',
|
||||
@@ -536,14 +536,14 @@ const msg_it = {
|
||||
sospeso: 'Sospeso',
|
||||
username: 'Username',
|
||||
username_reg: 'Username',
|
||||
username_reg_collettivo: 'Username Collettivo',
|
||||
username_reg_collettivo: 'Username Gruppo',
|
||||
username_hint: 'caratteri consentiti: tratteggio (_)',
|
||||
username_pseudonimo: 'Username (Pseudonimo)',
|
||||
username_short: 'Username',
|
||||
name: 'Nome',
|
||||
insert_name: 'Inserisci il tuo Nome (o Soprannome)',
|
||||
name_opt: 'Nome (Facoltativo)',
|
||||
name_opt_collettivo: 'Nome del Collettivo',
|
||||
name_opt_collettivo: 'Nome del Gruppo',
|
||||
surname: 'Cognome',
|
||||
insert_surname: 'Inserisci il Cognome',
|
||||
surname_opt: 'Cognome (facoltativo)',
|
||||
@@ -873,9 +873,9 @@ const msg_it = {
|
||||
new_rec_bacheca_descr: 'Avvisami quando viene aggiunto un Annuncio:',
|
||||
friends: 'Richieste di Amicizia',
|
||||
groups: 'Gruppi',
|
||||
friends_descr: 'Avvisami se:',
|
||||
friends_descr: 'Notifiche:',
|
||||
events: 'Eventi',
|
||||
events_descr: 'Avvisami se:',
|
||||
events_descr: 'Notifiche:',
|
||||
circuits: 'Circuiti',
|
||||
circuits_descr: 'Avvisami:',
|
||||
booking: 'Prenotazioni',
|
||||
@@ -1179,7 +1179,7 @@ const msg_it = {
|
||||
hidden_descr: 'il Gruppo non sarà visibile nella ricerca',
|
||||
page: 'Pagina',
|
||||
circuits: 'Circuiti',
|
||||
groupname: 'Conto Collettivo',
|
||||
groupname: 'Gruppo',
|
||||
contocom: 'Conto Comunitario',
|
||||
events: 'Eventi',
|
||||
},
|
||||
@@ -1226,11 +1226,11 @@ const msg_it = {
|
||||
vaialcircuito: 'Vai al Circuito',
|
||||
iscritti: 'iscritti trovati',
|
||||
coins_requestedris: 'Il tuo utente {username} sarà visibile sulla lista dei riceventi per 8 ore. Fai cliccare \'Invia RIS a..\' a chi ti deve inviare i RIS.',
|
||||
coins_requestedrisgroup: 'Il Conto Collettivo {groupname} sarà visibile sulla lista dei riceventi per 8 ore. Fai cliccare \'Invia RIS a..\' a chi ti deve inviare i RIS.',
|
||||
coins_requestedrisgroup: 'Il Conto del Gruppo {groupname} sarà visibile sulla lista dei riceventi per 8 ore. Fai cliccare \'Invia RIS a..\' a chi ti deve inviare i RIS.',
|
||||
lista_ricev_title: 'Questa è la lista degli Utenti che hanno cliccato su "Ricevi RIS" nelle ultime 8 ore',
|
||||
info: 'Informazioni su questo Circuito',
|
||||
aggiuntive: 'Il Circuito è una una rete di individui, che fanno riferimento ad un territorio provinciale, nella quale ciascuno può offrire i propri talenti, competenze e produzioni (Beni, Servizi, Ospitalità, ecc.) e riceverne da altri, utilizzando anche i <strong>RIS</strong> come metodo di scambio, sulla base di <strong>relazioni di fiducia</strong>.',
|
||||
collettivi_info: 'Il Conto Collettivo è affidato ad un gruppo di persone, attivo nel territorio provinciale, che lo utilizza per organizzare iniziative di interesse comune, nello spirito di Riso.',
|
||||
collettivi_info: 'Un Gruppo attivo nel territorio provinciale, che condivida le finalità del Progetto RISO, può creare un Profilo del Gruppo ed attivare un proprio Conto all\'interno del Circuito RIS in cui è presente.',
|
||||
name: 'Nome Circuito',
|
||||
path: 'Nome Pagina',
|
||||
subname: 'SottoNome',
|
||||
@@ -1303,7 +1303,7 @@ const msg_it = {
|
||||
sendcoins: 'Invia RIS',
|
||||
sendcoins_toso: 'Invia RIS a',
|
||||
receive_coins: 'Ricevi RIS',
|
||||
info_contocom: 'Il conto Comunitario potrà essere utilizzato per facilitare gli scambi tra gli iscritti, finanziare progetti per la provincia, aiutare situazioni particolari.',
|
||||
info_contocom: 'Il Conto Comunitario viene gestito collettivamente dai membri del Circuito Territoriale ed utilizzato per progetti comuni, per investimenti di solidarietà o per fare fronte ad eventuali situazioni di difficoltà.',
|
||||
sendcoins_tocom: 'Invia RIS a Conto Comunitario',
|
||||
sendcoinsto: 'Invia {qty} {coin} a {dest}',
|
||||
question_sendcoinsto: 'Inviare {qty} {coin} a {dest}?',
|
||||
@@ -1317,16 +1317,19 @@ const msg_it = {
|
||||
refuse_coins_qty: 'Rifiuta',
|
||||
refuse_coins: 'Rifiuta RIS',
|
||||
movements: 'Movimenti',
|
||||
movements_made: 'Movimenti effettuati',
|
||||
contocomunitario: 'Conto Comunitario',
|
||||
conticollettivi: 'Conti Collettivi',
|
||||
listaconticollettivi: 'Lista Conti Collettivi',
|
||||
comunitario: 'Comunitario',
|
||||
conticollettivi: 'Gruppi',
|
||||
contideigruppi: 'Conti dei Gruppi',
|
||||
listaconticollettivi: 'Lista Gruppi',
|
||||
qta_remaining_to_send: 'Quantità massima inviabile {maxqta} {symbol}',
|
||||
qta_not_valid: 'Quantità non valida',
|
||||
qta_max_to_send: 'Quantità massima inviabile {maxqta} {symbol}',
|
||||
transaction_suspended: 'Transazioni sospese',
|
||||
choosecontocom: 'Scegli il tuo Conto Collettivo',
|
||||
choosecontocom: 'Scegli il Conto del Gruppo',
|
||||
contocom: 'Conto Comunitario',
|
||||
contocoll: 'Conto Collettivo',
|
||||
contocoll: 'Conto del Gruppo',
|
||||
user: 'Utente',
|
||||
sender: 'Mittente',
|
||||
dest: 'Destinatario',
|
||||
@@ -1358,10 +1361,10 @@ const msg_it = {
|
||||
movement: {
|
||||
transactionDate: 'Data Transazione',
|
||||
accountFromId: 'Dal Conto',
|
||||
accountFromCollId: 'Dal Conto Collettivo',
|
||||
accountFromCollId: 'Dal Conto del Gruppo',
|
||||
accountFromComId: 'Dal Conto Com.',
|
||||
accountToId: 'Al Conto',
|
||||
accountToCollId: 'Al Conto Collettivo',
|
||||
accountToCollId: 'Al Conto del Gruppo',
|
||||
accountToComId: 'Al Conto Com.',
|
||||
amount_sent: 'Quantità inviate',
|
||||
amount_to_send: 'Quantità da inviare',
|
||||
@@ -1374,15 +1377,16 @@ const msg_it = {
|
||||
movin: 'RIS Ricevuti',
|
||||
movout: 'RIS Inviati',
|
||||
from: 'Inviate da:',
|
||||
fromCColl: 'Inviate dal Conto Collettivo:',
|
||||
fromCColl: 'Inviate dal Conto del Gruppo:',
|
||||
fromCCom: 'Inviate dal Conto Comunitario:',
|
||||
to: 'A favore di:',
|
||||
toCColl: 'Al Conto Collettivo:',
|
||||
toCColl: 'Al Conto del Gruppo:',
|
||||
toCCom: 'Al Conto Comunitario:',
|
||||
pendingtransaction: '* Transazioni Pendenti',
|
||||
viewpendingtransaction: 'Vedi Transazioni Pendenti',
|
||||
onlymymov: 'Mostra solo i miei movimenti',
|
||||
showsaldi: 'Mostra i Saldi dei membri',
|
||||
updatewallet: 'Aggiorna',
|
||||
},
|
||||
editor: {
|
||||
showtool: 'Mostra strumenti per formattare il testo',
|
||||
|
||||
@@ -109,6 +109,17 @@ export const useCircuitStore = defineStore('CircuitStore', {
|
||||
|
||||
},
|
||||
|
||||
async aggiornaSaldo(circuitId: string) {
|
||||
return Api.SendReq('/users/updatesaldo', 'POST', { circuitId })
|
||||
.then((res) => {
|
||||
if (res.data.ris)
|
||||
tools.updateMyData(res.data.ris)
|
||||
}).catch((error) => {
|
||||
return {}
|
||||
})
|
||||
|
||||
},
|
||||
|
||||
getCircuitsListByGroup(mygrp: IMyGroup): ICircuit[] {
|
||||
return this.listcircuits.filter((rec: ICircuit) => mygrp.mycircuits!.findIndex((circ: IMyCircuit) => circ.circuitname === rec.name) >= 0)
|
||||
},
|
||||
@@ -122,17 +133,17 @@ export const useCircuitStore = defineStore('CircuitStore', {
|
||||
},
|
||||
|
||||
getAccountByCircuitId(circuitId: string): any {
|
||||
if (this.listaccounts) {
|
||||
/*if (this.listaccounts) {
|
||||
return this.listaccounts.find((rec: IAccount) => rec.circuitId === circuitId)
|
||||
}
|
||||
return null
|
||||
return null*/
|
||||
},
|
||||
getAccountsListNameValue(): any[] {
|
||||
let arr = []
|
||||
|
||||
if (this.listaccounts) {
|
||||
for (const acc of this.listaccounts) {
|
||||
let chi = acc.username ? acc.username : (acc.groupname ? 'Collettivo: ' + acc.groupname : 'Comunitario: ' + acc.contocom)
|
||||
let chi = acc.username ? acc.username : (acc.groupname ? 'Gruppo: ' + acc.groupname : 'Comunitario: ' + acc.contocom)
|
||||
if (acc.circuitId) {
|
||||
chi = '[' + this.getNameByCircuitId(acc.circuitId) + '] ' + chi
|
||||
}
|
||||
|
||||
@@ -689,7 +689,7 @@ export const colmyMovementTable = [
|
||||
AddCol({ name: 'transactionDate', label_trans: 'movement.transactionDate', fieldtype: costanti.FieldType.date }),
|
||||
AddCol({
|
||||
name: 'userfrom.username',
|
||||
label_trans: 'reg.username',
|
||||
label_trans: 'circuit.sender',
|
||||
field: 'userfrom',
|
||||
subfield: 'username',
|
||||
tipovisu: costanti.TipoVisu.LINK,
|
||||
@@ -724,7 +724,7 @@ export const colmyMovementTable = [
|
||||
}),
|
||||
AddCol({
|
||||
name: 'userto.username',
|
||||
label_trans: 'reg.username',
|
||||
label_trans: 'circuit.dest',
|
||||
field: 'userto',
|
||||
subfield: 'username',
|
||||
foredit: false,
|
||||
|
||||
@@ -4767,6 +4767,7 @@ export const tools = {
|
||||
getnumrequisiti(user: IUserFields) {
|
||||
let req = 0
|
||||
|
||||
|
||||
req += user.verified_email ? 1 : 0
|
||||
req += user.profile.teleg_id! > 0 ? 1 : 0
|
||||
req += this.isBitActive(user.profile.saw_and_accepted, shared_consts.Accepted.CHECK_READ_GUIDELINES.value) ? 1 : 0
|
||||
@@ -5111,7 +5112,7 @@ export const tools = {
|
||||
|
||||
TelegVerificato(): boolean {
|
||||
const userStore = useUserStore()
|
||||
return userStore.my.profile ? userStore.my.profile.teleg_id! > 0 : false
|
||||
return userStore.my.profile ? userStore.my.profile.teleg_id! > 0 || userStore.my.profile.teleg_id_old! > 0 : false
|
||||
},
|
||||
|
||||
isDebugOn(): boolean {
|
||||
|
||||
@@ -190,7 +190,7 @@ export const useNotifStore = defineStore('NotifStore', {
|
||||
},
|
||||
|
||||
async updateNotifDataFromServer({ username, lastdataread }: { username: string, lastdataread: Date }) {
|
||||
// console.log('updateNotifDataFromServer', username, lastdataread)
|
||||
console.log('updateNotifDataFromServer', username, lastdataread)
|
||||
|
||||
return Api.SendReq(`/sendnotif/${username}/${lastdataread}/${process.env.APP_ID}`, 'GET', null)
|
||||
.then((res) => {
|
||||
@@ -210,6 +210,7 @@ export const useNotifStore = defineStore('NotifStore', {
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
async SendNotifEvent(notif: INotif) {
|
||||
console.log('SendNotifEvent', notif)
|
||||
|
||||
|
||||
@@ -608,15 +608,19 @@ export const useUserStore = defineStore('UserStore', {
|
||||
return tools.getUrlSite() + '/registrati/' + username
|
||||
},
|
||||
|
||||
isTelegIdOk(): boolean {
|
||||
return (this.my.profile.teleg_id! > 0 || this.my.profile.teleg_id_old! > 0)
|
||||
},
|
||||
|
||||
isUserOk(): boolean {
|
||||
const globalStore = useGlobalStore()
|
||||
|
||||
if (globalStore.site.confpages.enableRegMultiChoice) {
|
||||
return ((this.my.profile.teleg_id! > 0 && this.isUsernameTelegOk()) || this.my.verified_email!) && this.my.verified_by_aportador!
|
||||
return ((this.isTelegIdOk() && this.isUsernameTelegOk()) || this.my.verified_email!) && this.my.verified_by_aportador!
|
||||
} else {
|
||||
return this.my.profile.teleg_id! > 0 && this.my.verified_by_aportador! && this.isUsernameTelegOk()
|
||||
return this.isTelegIdOk() && this.my.verified_by_aportador! && this.isUsernameTelegOk()
|
||||
}
|
||||
// return this.my.verified_email! && this.my.profile.teleg_id! > 0 && this.my.verified_by_aportador!
|
||||
// return this.my.verified_email! && this.isTelegIdOk() && this.my.verified_by_aportador!
|
||||
},
|
||||
|
||||
isUserWaitingVerifAportador(): boolean {
|
||||
@@ -625,17 +629,17 @@ export const useUserStore = defineStore('UserStore', {
|
||||
|
||||
isOldRegNotFinished(): boolean {
|
||||
return tools.isLogged() && ((!this.my.profile.teleg_id || this.my.profile.teleg_id <= 0) || !this.isUsernameTelegOk())
|
||||
// return this.my.verified_email! && this.my.profile.teleg_id! > 0 && this.my.verified_by_aportador!
|
||||
// return this.my.verified_email! && this.isTelegIdOk() && this.my.verified_by_aportador!
|
||||
},
|
||||
|
||||
isTelegOk(): boolean {
|
||||
return this.my.profile.teleg_id! > 0
|
||||
// return this.my.verified_email! && this.my.profile.teleg_id! > 0 && this.my.verified_by_aportador!
|
||||
return this.isTelegIdOk()
|
||||
// return this.my.verified_email! && this.isTelegIdOk() && this.my.verified_by_aportador!
|
||||
},
|
||||
|
||||
isUsernameTelegOk(): boolean {
|
||||
return !!this.my.profile.username_telegram
|
||||
// return this.my.verified_email! && this.my.profile.teleg_id! > 0 && this.my.verified_by_aportador!
|
||||
// return this.my.verified_email! && this.isTelegIdOk() && this.my.verified_by_aportador!
|
||||
},
|
||||
|
||||
getNameSurnameByUserId(userId: string): string {
|
||||
@@ -1702,6 +1706,12 @@ export const useUserStore = defineStore('UserStore', {
|
||||
.then((res) => {
|
||||
if (res && res.data.state === 1) {
|
||||
if (myrec) {
|
||||
if (!myrec.myreact) {
|
||||
myrec.myreact = {
|
||||
numfav: 0,
|
||||
}
|
||||
}
|
||||
|
||||
if (!recreaction)
|
||||
this.my.profile.reaction.push({ id: objectId(), idrec: id, tab, username: this.my.username, fav: true })
|
||||
else
|
||||
@@ -1739,6 +1749,11 @@ export const useUserStore = defineStore('UserStore', {
|
||||
return await Api.SendReq('/reactions/cmd', 'POST', { cmd: CMD_REACTION.SET_ATTEND, id, tab, value })
|
||||
.then((res) => {
|
||||
if (res && res.data.state === 1) {
|
||||
if (!myrec.myreact) {
|
||||
myrec.myreact = {
|
||||
numattend: 0,
|
||||
}
|
||||
}
|
||||
if (!myrec.myreact.attend)
|
||||
myrec.myreact.attend = false
|
||||
// create a record
|
||||
@@ -1800,6 +1815,11 @@ export const useUserStore = defineStore('UserStore', {
|
||||
return await Api.SendReq('/reactions/cmd', 'POST', { cmd: CMD_REACTION.SET_BOOKMARK, id, tab, value })
|
||||
.then((res) => {
|
||||
if (res && res.data.state === 1) {
|
||||
if (!myrec.myreact) {
|
||||
myrec.myreact = {
|
||||
numseen: 0,
|
||||
}
|
||||
}
|
||||
if (!myrec.mybook)
|
||||
myrec.mybook = []
|
||||
if (!recreaction)
|
||||
@@ -1856,6 +1876,11 @@ export const useUserStore = defineStore('UserStore', {
|
||||
.then((res) => {
|
||||
if (res && res.data.state === 1) {
|
||||
if (value) {
|
||||
if (!myrec.myreact) {
|
||||
myrec.myreact = {
|
||||
numseen: 0,
|
||||
}
|
||||
}
|
||||
myrec.myreact.numseen++
|
||||
if (!recreaction)
|
||||
this.my.profile.reaction.push({ id: objectId(), idrec: id, tab, username: this.my.username, seen: true })
|
||||
|
||||
@@ -538,6 +538,14 @@
|
||||
></q-btn>
|
||||
<br />
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn
|
||||
label="Rimuovi i profile.favorite, bookmark, attend, seen"
|
||||
color="negative"
|
||||
@click="EseguiFunz('removeRecordsFav')"
|
||||
></q-btn>
|
||||
<br />
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" src="./dbop.ts">
|
||||
</script>
|
||||
|
||||
@@ -51,22 +51,26 @@ export default defineComponent({
|
||||
|
||||
const showsendCoinTo = ref(false)
|
||||
const showrules = ref(false)
|
||||
const showMov = ref(false)
|
||||
|
||||
const animation = ref('fade')
|
||||
|
||||
const path = computed(() => $route.params.path ? $route.params.path.toString() : '')
|
||||
const idnotif = computed(() => $route.query.idnotif ? $route.query.idnotif.toString() : '')
|
||||
|
||||
const circuitpath_loaded = ref('')
|
||||
|
||||
const filtroutente = ref([] as any[])
|
||||
const showPic = ref(false)
|
||||
const loadSaldo = ref(false)
|
||||
|
||||
const circuit = ref({} as ICircuit | null)
|
||||
const account = computed(() => circuit.value ? userStore.getAccountByCircuitId(circuit.value._id) : null)
|
||||
const account = ref(<IAccount | null>null)
|
||||
const mystatus = ref(0 as number)
|
||||
const users_in_circuit = ref([] as IFriends[])
|
||||
|
||||
const qtarem = computed(() => account.value ? circuitStore.getRemainingCoinsToSend(account.value) : 0)
|
||||
const saldo = computed(() => account.value ? account.value.saldo : 0)
|
||||
const qtarem = ref(0)
|
||||
const saldo = ref(0)
|
||||
|
||||
const loading = ref(false)
|
||||
const requestToEnterCircuit = ref(false)
|
||||
@@ -86,10 +90,11 @@ export default defineComponent({
|
||||
|
||||
const cities = ref([] as ICity[])
|
||||
|
||||
const fidoConcesso = computed(() => account.value ? account.value.fidoConcesso : circuit.value!.fido_scoperto_default)
|
||||
const qtaMax = computed(() => account.value ? account.value.qta_maxConcessa : circuit.value!.qta_max_default)
|
||||
const fidoConcesso = ref(<any>0)
|
||||
const qtaMax = ref(<any>0)
|
||||
|
||||
watch(() => path.value, (to: any, from: any) => {
|
||||
if (circuitpath_loaded.value !== path.value)
|
||||
loadCircuit()
|
||||
})
|
||||
|
||||
@@ -97,19 +102,40 @@ export default defineComponent({
|
||||
tools.setCookie(tools.COOK_TAB_CIRCUIT + path.value, tabcircuit.value)
|
||||
})
|
||||
|
||||
watch(() => circuit.value, (to: any, from: any) => {
|
||||
if (to) {
|
||||
loadAccount()
|
||||
}
|
||||
})
|
||||
|
||||
function loadAccount() {
|
||||
// console.log('loadAccount')
|
||||
account.value = circuit.value ? userStore.getAccountByCircuitId(circuit.value._id) : null
|
||||
// console.log('saldo', account.value!.saldo)
|
||||
|
||||
fidoConcesso.value = account.value ? account.value.fidoConcesso : (circuit.value ? circuit.value.fido_scoperto_default : 0)
|
||||
qtaMax.value = account.value ? account.value.qta_maxConcessa : (circuit.value ? circuit.value.qta_max_default : 0)
|
||||
qtarem.value = account.value ? circuitStore.getRemainingCoinsToSend(account.value) : 0
|
||||
saldo.value = account.value ? account.value.saldo : 0
|
||||
}
|
||||
|
||||
|
||||
function profile() {
|
||||
return userStore.my.profile
|
||||
}
|
||||
|
||||
async function loadCircuit() {
|
||||
console.log(' *** INIZIO loadCircuit')
|
||||
|
||||
if (!loading.value) {
|
||||
loading.value = true
|
||||
// Carica il profilo di quest'utente
|
||||
if (path.value) {
|
||||
circuitpath_loaded.value = path.value
|
||||
circuit.value = null
|
||||
users_in_circuit.value = []
|
||||
await userStore.loadCircuit(path.value, idnotif.value).then(({ data, status }: { data: any, status: number }) => {
|
||||
console.log('data', data)
|
||||
// console.log('data', data)
|
||||
if (data) {
|
||||
notifStore.setAsRead(idnotif.value)
|
||||
users_in_circuit.value = data.users_in_circuit
|
||||
@@ -119,6 +145,8 @@ export default defineComponent({
|
||||
users_in_circuit.value = []
|
||||
}
|
||||
|
||||
loadAccount()
|
||||
|
||||
mystatus.value = status
|
||||
|
||||
searchList.value = []
|
||||
@@ -288,13 +316,14 @@ export default defineComponent({
|
||||
|
||||
}
|
||||
loading.value = false
|
||||
console.log(' ___ FINE loadCircuit')
|
||||
}
|
||||
}
|
||||
|
||||
async function mounted() {
|
||||
function mounted() {
|
||||
tabcircuit.value = tools.getCookie(tools.COOK_TAB_CIRCUIT + path.value, 'info')
|
||||
|
||||
|
||||
await loadCircuit()
|
||||
loadCircuit()
|
||||
|
||||
}
|
||||
|
||||
@@ -329,6 +358,7 @@ export default defineComponent({
|
||||
username: 1,
|
||||
name: 1,
|
||||
surname: 1,
|
||||
lang: 1,
|
||||
'profile.img': 1,
|
||||
'profile.mycircuits': 1,
|
||||
'profile.qualifica': 1,
|
||||
@@ -438,6 +468,13 @@ export default defineComponent({
|
||||
|
||||
}
|
||||
|
||||
async function aggiornaSaldo() {
|
||||
loadSaldo.value = true
|
||||
await circuitStore.aggiornaSaldo(circuit.value!._id);
|
||||
loadAccount()
|
||||
loadSaldo.value = false
|
||||
}
|
||||
|
||||
onMounted(mounted)
|
||||
|
||||
return {
|
||||
@@ -500,6 +537,10 @@ export default defineComponent({
|
||||
getRegulation,
|
||||
fidoConcesso,
|
||||
qtaMax,
|
||||
showMov,
|
||||
loadAccount,
|
||||
aggiornaSaldo,
|
||||
loadSaldo,
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -129,6 +129,134 @@
|
||||
>
|
||||
</CSaldo>
|
||||
</div>
|
||||
|
||||
<q-dialog v-model="showMov" :maximized="$q.screen.lt.sm" permanent>
|
||||
<q-card class="dialog_card">
|
||||
<q-bar dense class="bg-primary text-white">
|
||||
{{ t('circuit.movements') }}:
|
||||
<q-space />
|
||||
<q-btn
|
||||
flat
|
||||
round
|
||||
color="white"
|
||||
icon="close"
|
||||
v-close-popup
|
||||
></q-btn>
|
||||
</q-bar>
|
||||
<q-card-section class="inset-shadow">
|
||||
<q-toggle
|
||||
v-model="showonlymine"
|
||||
:label="t('movement.onlymymov')"
|
||||
></q-toggle>
|
||||
<q-toggle v-model="tabellare" label="Tabella"></q-toggle>
|
||||
|
||||
<CGridTableRec
|
||||
v-if="tabellare && !loading"
|
||||
prop_mytable="movements"
|
||||
prop_mytitle=""
|
||||
:prop_mycolumns="colmyMovementTable"
|
||||
prop_colkey="_id"
|
||||
col_title="Lista Movimenti"
|
||||
:vertical="0"
|
||||
nodataLabel="Nessun Movimento effettuato"
|
||||
:prop_search="true"
|
||||
:enableExport="true"
|
||||
hint="nota da trovare (tabella)"
|
||||
:finder="false"
|
||||
:choose_visutype="false"
|
||||
:finder_noNull="false"
|
||||
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
|
||||
:butt_modif_new="false"
|
||||
noresultLabel="movimenti non trovati con questa ricerca"
|
||||
:arrfilters="arrfilterand"
|
||||
:filtercustom="filtercustom_rich"
|
||||
filterextra=""
|
||||
:filterextra2="filterextra2"
|
||||
:prop_searchList="searchList"
|
||||
:prop_pagination="{
|
||||
sortBy: 'transactionDate',
|
||||
descending: true,
|
||||
page: 1,
|
||||
rowsNumber: 0,
|
||||
rowsPerPage: 20,
|
||||
}"
|
||||
:showType="costanti.SHOW_MOVEMENTS"
|
||||
:showCol="true"
|
||||
:showHeaderCol="true"
|
||||
:extraparams="extraparams_movs()"
|
||||
extrafield=""
|
||||
:visufind="costanti.FRIENDS"
|
||||
>
|
||||
</CGridTableRec>
|
||||
<CGridTableRec
|
||||
v-else-if="!loading"
|
||||
prop_mytable="movements"
|
||||
prop_mytitle=""
|
||||
:prop_mycolumns="colmyMovement"
|
||||
prop_colkey="_id"
|
||||
col_title="Lista Movimenti"
|
||||
:vertical="costanti.VISUTABLE_LISTA"
|
||||
nodataLabel="Nessun Movimento effettuato"
|
||||
:enableExport="true"
|
||||
:prop_search="true"
|
||||
hint="nota da trovare"
|
||||
:finder="false"
|
||||
:choose_visutype="false"
|
||||
:finder_noNull="false"
|
||||
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
|
||||
:butt_modif_new="false"
|
||||
noresultLabel="movimenti non trovati con questa ricerca"
|
||||
:arrfilters="arrfilterand"
|
||||
:filtercustom="filtercustom_rich"
|
||||
:prop_searchList="searchList"
|
||||
:prop_pagination="{
|
||||
sortBy: 'transactionDate',
|
||||
descending: true,
|
||||
page: 1,
|
||||
rowsNumber: 20,
|
||||
rowsPerPage: 20,
|
||||
}"
|
||||
:showType="costanti.SHOW_MOVEMENTS"
|
||||
:showCol="false"
|
||||
:showHeaderCol="false"
|
||||
:extraparams="extraparams_movs()"
|
||||
extrafield=""
|
||||
:visufind="costanti.FRIENDS"
|
||||
>
|
||||
</CGridTableRec>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<q-spinner
|
||||
v-if="loadSaldo"
|
||||
color="primary"
|
||||
size="3em"
|
||||
:thickness="2"
|
||||
/>
|
||||
</div>
|
||||
<q-btn
|
||||
v-if="account && !loadSaldo"
|
||||
outline
|
||||
rounded
|
||||
dense
|
||||
color="green"
|
||||
icon="fas fa-redo"
|
||||
:label="t('movement.updatewallet')"
|
||||
@click="aggiornaSaldo()"
|
||||
>
|
||||
</q-btn>
|
||||
|
||||
<div class="q-ma-sm text-center">
|
||||
<q-btn
|
||||
v-if="userStore.IsMyCircuitByName(circuit.name)"
|
||||
:label="t('circuit.movements_made')"
|
||||
@click="showMov = !showMov"
|
||||
icon="fas fa-coins"
|
||||
rounded
|
||||
color="primary"
|
||||
></q-btn>
|
||||
</div>
|
||||
|
||||
<q-banner
|
||||
@@ -303,9 +431,9 @@
|
||||
></q-tab>
|
||||
<q-tab
|
||||
v-if="userStore.IsMyCircuitByName(circuit.name)"
|
||||
:label="t('circuit.movements')"
|
||||
name="mov"
|
||||
icon="fas fa-coins"
|
||||
:label="t('circuit.comunitario')"
|
||||
name="comunitario"
|
||||
icon="fas fa-campground"
|
||||
></q-tab>
|
||||
<q-tab
|
||||
v-if="!!circuit.note"
|
||||
@@ -321,6 +449,7 @@
|
||||
style="max-width: 500px"
|
||||
v-if="tools.iCanShowCircuitsMember(circuit)"
|
||||
>
|
||||
<div class="text-h6">{{ t('circuit.contideigruppi') }}:</div>
|
||||
<div class="text-h7 q-mb-sm">
|
||||
<div v-html="$t('circuit.collettivi_info')"></div>
|
||||
</div>
|
||||
@@ -514,7 +643,7 @@
|
||||
prop_colkey="_id"
|
||||
col_title=""
|
||||
:vertical="costanti.VISUTABLE_GROUP_CIRCUIT"
|
||||
nodataLabel="Nessun Conto Collettivo Rifiutato"
|
||||
nodataLabel="Nessun Conto di Gruppo Rifiutato"
|
||||
:prop_search="false"
|
||||
hint="Gruppo da trovare"
|
||||
:finder="false"
|
||||
@@ -522,7 +651,7 @@
|
||||
:finder_noNull="false"
|
||||
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
|
||||
:butt_modif_new="false"
|
||||
noresultLabel="Conto Collettivo non trovato"
|
||||
noresultLabel="Conto di Gruppo non trovato"
|
||||
:arrfilters="arrfilterand"
|
||||
:filtercustom="filtercustom_rich"
|
||||
:filterextra2="filterextra2"
|
||||
@@ -537,88 +666,6 @@
|
||||
</q-tab-panel>
|
||||
</q-tab-panels>
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="mov">
|
||||
<q-toggle
|
||||
v-model="showonlymine"
|
||||
:label="t('movement.onlymymov')"
|
||||
></q-toggle>
|
||||
<q-toggle v-model="tabellare" label="Tabella"></q-toggle>
|
||||
|
||||
<CGridTableRec
|
||||
v-if="tabellare && !loading"
|
||||
prop_mytable="movements"
|
||||
prop_mytitle=""
|
||||
:prop_mycolumns="colmyMovementTable"
|
||||
prop_colkey="_id"
|
||||
col_title="Lista Movimenti"
|
||||
:vertical="0"
|
||||
nodataLabel="Nessun Movimento effettuato"
|
||||
:prop_search="true"
|
||||
:enableExport="true"
|
||||
hint="nota da trovare (tabella)"
|
||||
:finder="false"
|
||||
:choose_visutype="false"
|
||||
:finder_noNull="false"
|
||||
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
|
||||
:butt_modif_new="false"
|
||||
noresultLabel="movimenti non trovati con questa ricerca"
|
||||
:arrfilters="arrfilterand"
|
||||
:filtercustom="filtercustom_rich"
|
||||
filterextra=""
|
||||
:filterextra2="filterextra2"
|
||||
:prop_searchList="searchList"
|
||||
:prop_pagination="{
|
||||
sortBy: 'transactionDate',
|
||||
descending: true,
|
||||
page: 1,
|
||||
rowsNumber: 20,
|
||||
rowsPerPage: 20,
|
||||
}"
|
||||
:showType="costanti.SHOW_MOVEMENTS"
|
||||
:showCol="true"
|
||||
:showHeaderCol="true"
|
||||
:extraparams="extraparams_movs()"
|
||||
extrafield=""
|
||||
:visufind="costanti.FRIENDS"
|
||||
>
|
||||
</CGridTableRec>
|
||||
<CGridTableRec
|
||||
v-else-if="!loading"
|
||||
prop_mytable="movements"
|
||||
prop_mytitle=""
|
||||
:prop_mycolumns="colmyMovement"
|
||||
prop_colkey="_id"
|
||||
col_title="Lista Movimenti"
|
||||
:vertical="costanti.VISUTABLE_LISTA"
|
||||
nodataLabel="Nessun Movimento effettuato"
|
||||
:enableExport="true"
|
||||
:prop_search="true"
|
||||
hint="nota da trovare"
|
||||
:finder="false"
|
||||
:choose_visutype="false"
|
||||
:finder_noNull="false"
|
||||
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
|
||||
:butt_modif_new="false"
|
||||
noresultLabel="movimenti non trovati con questa ricerca"
|
||||
:arrfilters="arrfilterand"
|
||||
:filtercustom="filtercustom_rich"
|
||||
:prop_searchList="searchList"
|
||||
:prop_pagination="{
|
||||
sortBy: 'transactionDate',
|
||||
descending: true,
|
||||
page: 1,
|
||||
rowsNumber: 20,
|
||||
rowsPerPage: 20,
|
||||
}"
|
||||
:showType="costanti.SHOW_MOVEMENTS"
|
||||
:showCol="false"
|
||||
:showHeaderCol="false"
|
||||
:extraparams="extraparams_movs()"
|
||||
extrafield=""
|
||||
:visufind="costanti.FRIENDS"
|
||||
>
|
||||
</CGridTableRec>
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="info">
|
||||
<div>
|
||||
<q-card>
|
||||
@@ -876,48 +923,6 @@
|
||||
}}</span>
|
||||
</div>
|
||||
</q-card>
|
||||
<q-card v-if="circuit.name">
|
||||
<q-card-section>
|
||||
<div class="text-h6">{{ t('circuit.contocomunitario') }}:</div>
|
||||
<div class="text-h7 q-mb-sm">
|
||||
{{ $t('circuit.info_contocom') }}
|
||||
</div>
|
||||
</q-card-section>
|
||||
<q-separator />
|
||||
|
||||
<q-card-section>
|
||||
<div class="col-12 text-h7 text-center">
|
||||
<span v-if="checkifShow('descr')">
|
||||
<CSaldo
|
||||
v-if="tools.isUserOk() && circuit.account"
|
||||
:account="circuit.account"
|
||||
:symbol="circuit.symbol"
|
||||
:color="circuit.color"
|
||||
:saldo="circuit.account.saldo"
|
||||
:qtarem="
|
||||
circuit.account
|
||||
? circuitStore.getRemainingCoinsToSend(
|
||||
circuit.account
|
||||
)
|
||||
: 0
|
||||
"
|
||||
>
|
||||
</CSaldo>
|
||||
</span>
|
||||
<div class="">
|
||||
<q-btn
|
||||
icon="fas fa-coins"
|
||||
color="green"
|
||||
size="md"
|
||||
rounded
|
||||
:label="$t('circuit.sendcoins_tocom')"
|
||||
@click="showsendCoinTo = true"
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</q-tab-panel>
|
||||
|
||||
<q-tab-panel name="page">
|
||||
@@ -1020,7 +1025,50 @@
|
||||
</q-tab-panel>
|
||||
</q-tab-panels>
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="mov"> </q-tab-panel>
|
||||
<q-tab-panel name="comunitario">
|
||||
<q-card v-if="circuit.name">
|
||||
<q-card-section>
|
||||
<div class="text-h6">{{ t('circuit.contocomunitario') }}:</div>
|
||||
<div class="text-h7 q-mb-sm">
|
||||
{{ $t('circuit.info_contocom') }}
|
||||
</div>
|
||||
</q-card-section>
|
||||
<q-separator />
|
||||
|
||||
<q-card-section>
|
||||
<div class="col-12 text-h7 text-center">
|
||||
<span v-if="checkifShow('descr')">
|
||||
<CSaldo
|
||||
v-if="tools.isUserOk() && circuit.account"
|
||||
:account="circuit.account"
|
||||
:symbol="circuit.symbol"
|
||||
:color="circuit.color"
|
||||
:saldo="circuit.account.saldo"
|
||||
:qtarem="
|
||||
circuit.account
|
||||
? circuitStore.getRemainingCoinsToSend(
|
||||
circuit.account
|
||||
)
|
||||
: 0
|
||||
"
|
||||
>
|
||||
</CSaldo>
|
||||
</span>
|
||||
<div class="">
|
||||
<q-btn
|
||||
icon="fas fa-coins"
|
||||
color="green"
|
||||
size="md"
|
||||
rounded
|
||||
:label="$t('circuit.sendcoins_tocom')"
|
||||
@click="showsendCoinTo = true"
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</q-tab-panel>
|
||||
</q-tab-panels>
|
||||
<div>
|
||||
<CGridTableRec
|
||||
|
||||
@@ -18,21 +18,22 @@
|
||||
<CGridTableRec
|
||||
prop_mytable="users"
|
||||
prop_mytitle=""
|
||||
subtitle="Seleziona una Regione o provincia per vedere la lista degli iscritti:"
|
||||
:prop_mycolumns="colmyUserPeople"
|
||||
prop_colkey="_id"
|
||||
col_title="username"
|
||||
:vertical="costanti.VISUTABLE_LISTA"
|
||||
nodataLabel="Nessuna persona trovata con questo nome, cognome o username"
|
||||
nodataLabel=" "
|
||||
:prop_search="true"
|
||||
:prop_showfilter="true"
|
||||
hint="Scegli una Regione o Provincia oppure digita il nome o Username"
|
||||
hint="Scegli una Regione, Provincia oppure scrivi il nome o Username"
|
||||
:finder="true"
|
||||
:choose_visutype="true"
|
||||
:choose_visutype="false"
|
||||
:finder_noNull="false"
|
||||
:finder_noNullFilters="true"
|
||||
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
|
||||
:butt_modif_new="false"
|
||||
noresultLabel="Username o nome non trovato"
|
||||
noresultLabel="Username, Nome o Cognome non trovato"
|
||||
:arrfilters="arrfilterand"
|
||||
:filtercustom="filtercustom"
|
||||
:prop_searchList="searchList"
|
||||
|
||||
@@ -85,7 +85,7 @@ export default defineComponent({
|
||||
// Carica il profilo di quest'utente
|
||||
if (groupname.value) {
|
||||
await userStore.loadGroup(groupname.value, idnotif.value).then(({ data, status }: { data: any, status: number }) => {
|
||||
console.log('data', data)
|
||||
// console.log('data', data)
|
||||
circuitslist.value = []
|
||||
if (data) {
|
||||
mygrp.value = data.mygroup
|
||||
|
||||
@@ -13,9 +13,6 @@
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
<div v-if="!tools.isLogged()">
|
||||
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||
</div>
|
||||
<div>
|
||||
<div
|
||||
v-if="mygrp.descr"
|
||||
@@ -541,7 +538,7 @@
|
||||
sortBy: 'transactionDate',
|
||||
descending: true,
|
||||
page: 1,
|
||||
rowsNumber: 20,
|
||||
rowsNumber: 0,
|
||||
rowsPerPage: 20,
|
||||
}"
|
||||
:showType="costanti.SHOW_MOVEMENTS"
|
||||
@@ -667,6 +664,9 @@
|
||||
</q-card>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="!tools.isLogged()">
|
||||
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||
</div>
|
||||
<q-dialog v-model="showPic" full-height full-width>
|
||||
<img :src="getImgGrp()" :alt="groupname" class="full-width" />
|
||||
</q-dialog>
|
||||
|
||||
@@ -3,16 +3,17 @@
|
||||
imgbackground="images/calendario_eventi.jpg"
|
||||
sizes="max-height: 120px" styleadd="bottom: -20px !important;">
|
||||
|
||||
<div v-if="!tools.isLogged()">
|
||||
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||
</div>
|
||||
|
||||
<CMyCardService
|
||||
:table="toolsext.TABMYBACHECAS"
|
||||
:nopopup="true"
|
||||
:idRec="idBacheca"
|
||||
>
|
||||
</CMyCardService>
|
||||
|
||||
<div v-if="!tools.isLogged()">
|
||||
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||
</div>
|
||||
|
||||
<!-- <CMyCardPopup
|
||||
v-if="!!idBacheca"
|
||||
:table="toolsext.TABMYBACHECAS"
|
||||
|
||||
@@ -5,10 +5,6 @@
|
||||
sizes="max-height: 120px"
|
||||
styleadd="bottom: -20px !important;"
|
||||
>
|
||||
<div v-if="!tools.isLogged()">
|
||||
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||
</div>
|
||||
|
||||
<CMyCardService
|
||||
v-if="idGood"
|
||||
:table="toolsext.TABMYGOODS"
|
||||
@@ -17,6 +13,10 @@
|
||||
>
|
||||
</CMyCardService>
|
||||
|
||||
<div v-if="!tools.isLogged()">
|
||||
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
</CMyPage>
|
||||
|
||||
@@ -3,10 +3,6 @@
|
||||
imgbackground="images/calendario_eventi.jpg"
|
||||
sizes="max-height: 120px" styleadd="bottom: -20px !important;">
|
||||
|
||||
<div v-if="!tools.isLogged()">
|
||||
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||
</div>
|
||||
|
||||
<CMyCardService
|
||||
v-if="!!idHosp"
|
||||
:table="toolsext.TABMYHOSPS"
|
||||
@@ -18,6 +14,10 @@
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<div v-if="!tools.isLogged()">
|
||||
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||
</div>
|
||||
|
||||
</CMyPage>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -1,18 +1,21 @@
|
||||
<template>
|
||||
<CMyPage
|
||||
:title="username" imgbackground="images/calendario_eventi.jpg"
|
||||
sizes="max-height: 120px" styleadd="bottom: -20px !important;">
|
||||
:title="username"
|
||||
imgbackground="images/calendario_eventi.jpg"
|
||||
sizes="max-height: 120px"
|
||||
styleadd="bottom: -20px !important;"
|
||||
>
|
||||
<CMyCardService
|
||||
v-if="idSkill"
|
||||
:table="toolsext.TABMYSKILLS"
|
||||
:nopopup="true"
|
||||
:idRec="idSkill"
|
||||
>
|
||||
</CMyCardService>
|
||||
|
||||
<div v-if="!tools.isLogged()">
|
||||
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||
</div>
|
||||
<div v-else>
|
||||
<CMyCardService v-if="idSkill"
|
||||
:table="toolsext.TABMYSKILLS"
|
||||
:nopopup="true"
|
||||
:idRec="idSkill">
|
||||
</CMyCardService>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
||||
@@ -38,11 +41,8 @@
|
||||
</div>
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
</CMyPage>
|
||||
</template>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user