- 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:
Surya Paolo
2023-10-01 01:24:55 +02:00
parent bfceb64811
commit 31598e3fbd
43 changed files with 784 additions and 515 deletions

View File

@@ -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,
}
}
})

View File

@@ -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,11 +334,13 @@
</q-select>
</div>
<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 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="">
@@ -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"
@@ -571,13 +578,15 @@
</div>
</div>
<template v-slot:loading>
<div class="row justify-center q-my-md">
<q-spinner-dots color="primary" size="40px" />
</div>
<div class="row justify-center q-my-md">
<q-spinner-dots color="primary" size="40px" />
</div>
</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>