- 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:
@@ -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>
|
||||
<q-btn
|
||||
rounded
|
||||
icon="fas fa-user"
|
||||
color="primary"
|
||||
@click="tools.openrighttoolbar()"
|
||||
>{{ $t('login.enter') }}
|
||||
</q-btn>
|
||||
<CRegistration />
|
||||
<div>
|
||||
<q-btn
|
||||
flat
|
||||
color="white"
|
||||
@click="tools.openrighttoolbar()"
|
||||
>{{ $t('login.enter') }}
|
||||
</q-btn>
|
||||
</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,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>
|
||||
|
||||
@@ -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'
|
||||
Reference in New Issue
Block a user