vers 1.1.6

- risolto problema cors ?!?
- notifiche transazioni pendenti OK
This commit is contained in:
Surya Paolo
2024-10-29 02:33:39 +01:00
parent baa4188746
commit b6f73019fe
82 changed files with 1771 additions and 294 deletions

View File

@@ -230,7 +230,7 @@ export default defineComponent({
}
function searchval(newval: any, table: any, tablesel: any) {
console.log('REFRR searchval', newval, table, 'tablesel', tablesel)
// console.log('REFRR searchval', newval, table, 'tablesel', tablesel)
globalStore.myselector = { table, data: newval }
// console.log('globalStore.myselector', globalStore.myselector)

View File

@@ -2,7 +2,7 @@
<div v-if="small">
<q-chip
dense
class="cltexth4 chipbooked shadow-5 q-pa-sm2"
class="cltexth4 shadow-5 q-pa-sm2"
size="md"
:color="modelValue > 0 ? `green` : modelValue === 0 ? `gray` : `red`"
text-color="white"
@@ -15,15 +15,15 @@
>{{ symbol }}</em
></span
>
<q-icon
<!--<q-icon
v-if="symbol === 'RIS'"
name="img: images/1ris_rosso_100.png"
:size="small ? `xs` : `sm`"
/>
/>-->
<div
v-if="myrecparam && myrecparam.fidoConcesso > 0 && !paramTypeAccount"
>
<q-icon
v-if="myrecparam && myrecparam.fidoConcesso > 0 && !paramTypeAccount"
:color="myrecparam.fidoConcesso > 0 ? 'blue' : 'grey'"
name="fas fa-house-user"
class="vertical-baseline q-ml-xs"

View File

@@ -473,7 +473,7 @@ export default defineComponent({
})*/
onBeforeRouteLeave((to: any, from: any, next: any) => {
console.log('onBeforeRouteLeave', 'to', to, 'from', from, 'next', next)
// console.log('onBeforeRouteLeave', 'to', to, 'from', from, 'next', next)
if ((editRecordBool.value || newRecordBool.value) && checkForChanges()) {
const answer = window.confirm(t('dialog.uscire'))
if (answer) {
@@ -609,7 +609,7 @@ export default defineComponent({
}
})
router.beforeResolve((to: any) => {
/* router.beforeResolve((to: any) => {
console.log('beforeResolve', visupagedialog.value, 'to', to)
if (visupagedialog.value && !to.meta.newpage) {
@@ -617,7 +617,7 @@ export default defineComponent({
// return false
}
})
})*/
function setCategBySector(tablecat: string, tabsector: string, newval: any) {
console.log('setCategBySector', tablecat, tabsector, newval)
@@ -704,7 +704,7 @@ export default defineComponent({
}
function searchval(newval: any, table: any) {
console.log('REFRR searchval', newval, table, 'mytable', mytable.value)
// console.log('REFRR searchval', newval, table, 'mytable', mytable.value)
const myrecfilt = searchList.value.find((rec) => rec.table === table)
let keycookie = tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + table
if (myrecfilt && myrecfilt.keycookie)
@@ -1404,7 +1404,7 @@ export default defineComponent({
}
watch(() => mycodeid.value, (newval, oldval) => {
console.log('REFRR - mycodeid.value', newval)
// console.log('REFRR - mycodeid.value', newval)
refresh()
})

View File

@@ -434,7 +434,7 @@ export default defineComponent({
watch(() => searchList.value, (to: any, from: any) => {
// console.log('watch searchlist', to)
if (searchList.value && !changetable.value) {
console.log('REFRR searchList.value', to)
// console.log('REFRR searchList.value', to)
refresh()
}
})
@@ -461,7 +461,7 @@ export default defineComponent({
watch(() => props.filtercustom, (to: any, from: any) => {
// console.log('filtercustom', to)
if (JSON.stringify(to) !== JSON.stringify(from)) {
console.log('REFRR props.filtercustom', to, from)
// console.log('REFRR props.filtercustom', to, from)
refresh()
}
})
@@ -568,7 +568,7 @@ export default defineComponent({
}
function searchval(newval: any, table: any) {
console.log('REFRR searchval', newval, table)
// console.log('REFRR searchval', newval, table)
const myrecfilt = searchList.value.find((rec) => rec.table === table)
let keycookie = tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP
if (myrecfilt && myrecfilt.keycookie)
@@ -1224,7 +1224,7 @@ export default defineComponent({
}
watch(() => mycodeid.value, (newval, oldval) => {
console.log('REFRR - mycodeid.value', newval)
// console.log('REFRR - mycodeid.value', newval)
refresh()
})
@@ -1235,7 +1235,7 @@ export default defineComponent({
myvertical.value === costanti.VISUTABLE_SCHEDA_USER ||
(props.showType === costanti.SHOW_USERINFO))) {
console.log('REFRR - updateTables.value', newval)
// console.log('REFRR - updateTables.value', newval)
refresh()
userStore.updateTables = false

View File

@@ -17,6 +17,7 @@ import { CMyPage } from '@src/components/CMyPage'
import { CMyPageIntro } from '@src/components/CMyPageIntro'
import { CEventsCalendar } from '@src/components/CEventsCalendar'
import { CMyEditor } from '@src/components/CMyEditor'
import { CMySlider } from '@src/components/CMySlider'
import { CMyFieldRec } from '@src/components/CMyFieldRec'
import { CSelectImage } from '@src/components/CSelectImage'
import { CSelectAnimation } from '@src/components/CSelectAnimation'
@@ -37,7 +38,7 @@ export default defineComponent({
components: {
CImgTitle, CTitle, LandingFooter, CEventsCalendar,
CCardCarousel, COpenStreetMap, CMyPage, CMyPageIntro, CMyEditor, CMyFieldRec,
CSelectColor, CSelectFontSize, CSelectImage, CImgPoster, CSelectAnimation
CSelectColor, CSelectFontSize, CSelectImage, CImgPoster, CSelectAnimation, CMySlider
},
emits: ['saveElem', 'selElemClick', 'toggleSize', 'deleteElem'],
props: {

View File

@@ -159,52 +159,38 @@
icon="fas fa-expand-alt"
>
<div class="row">
<q-select
<CMySlider
label="Lunghezza:"
v-model="myel.widthimg"
emit-value
map-options
:options="generateSizeOptions()"
use-input
use-chips
@input="modifElem"
@new-value="updateSizeWidth"
filled
dense
style="width: 150px"
/>
<q-select
:min="10"
:max="1000"
color="green"
addstr="px"
@update:model-value="modifElem"
></CMySlider>
<CMySlider
label="Altezza:"
v-model="myel.heightimg"
emit-value
map-options
:options="generateSizeOptions()"
use-input
use-chips
@input="saveElem"
filled
dense
@new-value="updateSizeHeight"
style="width: 150px"
/>
<q-select
label="Altezza Carosello:"
:min="10"
:max="1000"
color="red"
addstr="px"
@update:model-value="modifElem"
></CMySlider>
<CMySlider
v-if="
myel.type === shared_consts.ELEMTYPE.CARD ||
myel.type === shared_consts.ELEMTYPE.GRID_ORIZ
"
label="Altezza Carosello:"
v-model="myel.heightcarousel"
emit-value
map-options
:options="generateSizeOptions()"
use-input
use-chips
@input="saveElem"
filled
dense
@new-value="updateSizeHeight"
style="width: 150px"
/>
:min="10"
:max="1000"
color="fuchsia"
addstr="px"
@update:model-value="modifElem"
></CMySlider>
</div>
</q-expansion-item>
@@ -357,6 +343,15 @@
v-else-if="myel.type === shared_consts.ELEMTYPE.CARD"
:class="myel.span ? '' : ''"
>
<CSelectColor
v-if="enableEdit"
style="min-width: 150px"
v-model="myel.color"
@update:model-value="modifElem"
title="Colore Sfondo"
>
</CSelectColor>
<q-select
v-model="myel.num2"
:options="[
@@ -1333,7 +1328,7 @@
@update:model-value="modifElem"
>
</q-toggle>
<br>
<br />
<!--++AddCATALOGO_FIELDS-->
<q-select
@@ -1390,115 +1385,83 @@
>
</q-select>
<q-select
label="Largh. Schede:"
<CMySlider
label="Larghezza Schede:"
v-model="myel.catalogo.widthscheda"
emit-value
map-options
:options="generateSizeOptions()"
use-input
use-chips
@input="modifElem"
@new-value="updateCatalogoSizeWidthScheda"
filled
dense
style="width: 150px"
/>
<q-select
label="Largh. Pagina:"
:min="10"
:max="1000"
color="green"
addstr="px"
@update:model-value="modifElem"
></CMySlider>
<CMySlider
label="Larghezza Pagina:"
v-model="myel.catalogo.widthpag"
emit-value
map-options
:options="generateSizeOptions(false)"
use-input
use-chips
@input="modifElem"
@new-value="updateCatalogoSizeWidthPag"
filled
dense
style="width: 180px"
/>
<q-select
label="Largh. Immagini:"
:min="10"
:max="1000"
color="green"
@update:model-value="modifElem"
></CMySlider>
<CMySlider
label="Larghezza Immagini:"
v-model="myel.catalogo.width"
emit-value
map-options
:options="generateSizeOptions()"
use-input
use-chips
@input="modifElem"
@new-value="updateCatalogoSizeWidth"
filled
dense
style="width: 180px"
/>
<q-select
:min="10"
:max="1000"
color="green"
addstr="px"
@update:model-value="modifElem"
></CMySlider>
<CMySlider
label="Altezza Schede:"
v-model="myel.catalogo.height"
emit-value
map-options
:options="generateSizeOptions()"
use-input
use-chips
@input="modifElem"
@new-value="updateCatalogoSizeHeight"
filled
dense
style="width: 180px"
/>
:min="10"
:max="1000"
color="red"
addstr="px"
@update:model-value="modifElem"
></CMySlider>
</div>
<div class="sfondo_margine">
Margini:<br />
<q-select
<CMySlider
label="Schede per Riga"
v-model="myel.catalogo.numschede_perRiga"
emit-value
map-options
:options="[
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
]"
use-input
use-chips
@input="modifElem"
@new-value="updateCatalogoNumSchedePerRiga"
filled
dense
style="width: 180px"
/>
<q-select
:min="1"
:max="10"
color="green"
@update:model-value="modifElem"
></CMySlider>
<CMySlider
label="Schede per Colonna"
v-model="myel.catalogo.numschede_perCol"
emit-value
map-options
:options="[
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
]"
use-input
use-chips
@input="modifElem"
@new-value="updateCatalogoNumSchedePerCol"
filled
dense
style="width: 180px"
/>
<q-input
dense
label="Margine per Pagina:"
:min="1"
:max="10"
color="red"
@update:model-value="modifElem"
></CMySlider>
<CMySlider
label="Margine per Pagina"
v-model="myel.catalogo.margine_pagina"
filled
v-on:keyup.enter="saveFieldElem"
>
</q-input>
<q-input
dense
label="Margine per Riga:"
:min="0"
:max="1000"
color="red"
addstr="px"
@update:model-value="modifElem"
></CMySlider>
<CMySlider
label="Margine per Riga"
v-model="myel.catalogo.margine_riga"
filled
v-on:keyup.enter="saveFieldElem"
>
</q-input>
:min="0"
:max="1000"
color="red"
addstr="px"
@update:model-value="modifElem"
></CMySlider>
</div>
<div>Sfondo:</div>
<div v-if="enableEdit">
@@ -1545,6 +1508,15 @@
v-on:keyup.enter="saveFieldElem"
>
</q-input>
<CMySlider
label="Larghezza Pagina Stampa:"
v-model="myel.catalogo.widthpagPrintable"
:min="0"
:max="1000"
color="red"
addstr="px"
@update:model-value="modifElem"
></CMySlider>
Nome File Printable: {{ myel.catalogo.backgroundimage_printable }}
<CMyFieldRec
@@ -1559,20 +1531,6 @@
@save="saveFieldElem"
>
</CMyFieldRec>
<q-select
label="Largh. Pag. Stampa:"
v-model="myel.catalogo.widthpagPrintable"
emit-value
map-options
:options="generateSizeOptions(false)"
use-input
use-chips
@input="modifElem"
@new-value="updateCatalogoSizeWidthPagPrintable"
filled
dense
style="width: 180px"
/>
</div>
</div>
</div>

View File

@@ -33,6 +33,12 @@
v-if="myel.type === shared_consts.ELEMTYPE.CARD"
class="card-carousel-container"
>
<div
v-if="editOn"
class="elemEdit"
>
Card
</div>
<q-carousel
swipeable
animated
@@ -45,7 +51,8 @@
:height="myel.heightcarousel"
width="100%"
control-type="flat"
class="bg-primary shadow-2 rounded-borders"
class="shadow-2 rounded-borders"
:style="`background-color: ${myel.color} !important`"
@mouseenter="animare = false"
@mouseleave="animare = true"
@transition="handleTransition"
@@ -105,7 +112,7 @@
myel.heightimg || `300px`
} !important; width: ${
myel.widthimg || `300px`
} !important;`
} !important;`
"
@click="rec.link ? tools.openUrl(rec.link) : undefined"
>
@@ -122,13 +129,13 @@
:src="tools.getImgFileByElem(myel, rec)"
/>
</div>
<q-card-section>
<q-card-section class="q-card-section-small">
<div :class="rec.size" :style="`color: ` + rec.color">
{{ tools.getText(rec.alt) }}
</div>
<div
:class="
`q-mt-sm q-mb-xs ` + tools.getClassAnim(myel.anim)
`q-mt-xs q-mb-xs ` + tools.getClassAnim(myel.anim)
"
v-html="rec.content"
></div>
@@ -240,7 +247,7 @@
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.QRCODE">
<div v-if="editOn" class="elemEdit">QRCODE:</div>
<CQRCode
<CQRCode
:read="myel.parambool"
:link="myel.container"
:textlink="myel.container2"

View File

@@ -143,7 +143,7 @@ export default defineComponent({
}
function toggleSize() {
mywidthEditor.value = mywidthEditor.value === 400 ? 1200 : 400
mywidthEditor.value = mywidthEditor.value === 400 ? 1050 : 400
}
function deleteElem() {

View File

@@ -16,7 +16,7 @@
v-model="visuEditor"
v-if="selElem && editOn"
show-if-above
:breakpoint="800"
:breakpoint="350"
side="right"
:width="tools.isMobile() ? 350 : mywidthEditor"
elevated

View File

@@ -188,7 +188,7 @@ export default defineComponent({
)
function saveOptInCookie(arrval: any) {
console.log('saveOptInCookie')
// console.log('saveOptInCookie')
if (arrval) {
for (const id of arrval) {
@@ -230,7 +230,7 @@ export default defineComponent({
function changeval(newval: any) {
console.log(' ½½½½½½½ changeval', newval)
// console.log(' ½½½½½½½ changeval', newval)
if (props.multiple || props.multiselect_by_server) {
// tools.localStSetItem(props.tablesel + '_' + newval, valori.value[newval])
@@ -549,9 +549,9 @@ export default defineComponent({
function filterFn(val: any, update: any, abort: any) {
update(
async () => {
console.log('Filter val:', val, 'len=', val.length)
console.log('props.filter_extra', props.filter_extra)
console.log('valori.value', valori.value)
// console.log('Filter val:', val, 'len=', val.length)
// console.log('props.filter_extra', props.filter_extra)
// console.log('valori.value', valori.value)
let myarr: any = []

View File

View File

@@ -0,0 +1,58 @@
import { defineComponent, ref, computed, PropType, toRef } from 'vue'
import { IOperators } from 'model'
import { useI18n } from '@/boot/i18n'
import { useQuasar } from 'quasar'
import { shared_consts } from '@/common/shared_vuejs'
export default defineComponent({
name: 'CMySlider',
props: {
modelValue: {
type: [String, Number],
required: true,
},
label: {
type: String,
required: true,
},
min: {
type: Number,
required: true,
},
max: {
type: Number,
required: true,
},
addstr: {
type: String,
required: false,
default: '',
},
color: {
type: String,
required: false,
default: '',
},
},
setup(props, { emit }) {
const $q = useQuasar()
const { t } = useI18n()
const sliderValue = computed({
get: () => {
let mystr = props.modelValue + ''
return mystr.replace(props.addstr, '')
},
set: (value) => emit('update:modelValue', value + props.addstr)
})
return {
t,
shared_consts,
sliderValue,
}
}
})

View File

@@ -0,0 +1,22 @@
<template>
<div class="q-pa-xs" style="width: 300px">
<q-badge color="primary"> {{ label }} {{ modelValue }} </q-badge>
<q-input
dense
v-model="sliderValue"
filled
>
</q-input>
<q-slider v-model="sliderValue" :min="min" :max="max" :color="color" />
</div>
</template>
<script lang="ts" src="./CMySlider.ts">
</script>
<style lang="scss" scoped>
@import './CMySlider.scss';
</style>

View File

@@ -0,0 +1 @@
export {default as CMySlider} from './CMySlider.vue'

View File

@@ -1,6 +1,6 @@
<template>
<q-select
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
rounded
outlined
v-model="color"
@@ -12,19 +12,14 @@
map-options
>
<template v-slot:selected>
<q-chip
dense
square
color="white"
class="q-my-none q-ml-xs q-mr-none"
>
<span :style="`color: `+ color">{{ color }}</span>
<q-chip dense square color="white" class="q-my-none q-ml-xs q-mr-none">
<span :style="`background-color: ${color}; color: white;`">{{ color }}</span>
</q-chip>
</template>
<template v-slot:option="scope">
<q-item v-bind="scope.itemProps">
<q-item-section>
<q-item-label :style="`color: ` + scope.opt.value">{{
<q-item-label :style="`background-color: ${scope.opt.label}; color: white;`">{{
scope.opt.label
}}</q-item-label>
</q-item-section>

View File

@@ -2273,7 +2273,7 @@ $coloreprincipale: lightblue;
.row.no-wrap {
flex-wrap: nowrap !important;
gap: 1rem;
// gap: 1rem;
}
.card-width-200 {
@@ -2489,4 +2489,8 @@ body.body--dark {
}
.sfondo_margine{
background-color: #d8f38a;
}
.q-card-section-small {
padding: 0px;
}

View File

@@ -1,9 +1,9 @@
const msg_website_it = {
ws: {
sitename: 'Gruppo Macro',
siteshortname: 'Gruppo Macro',
description: '',
keywords: '',
sitename: 'Riso',
siteshortname: 'RISO',
description: 'Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.',
keywords: 'riso, piattaforma di scambio, rete italiana scambio orizzontale, riso app, riso piattaforma, scambio e baratto, momenta RIS',
},
hours: {
descr: 'Descrizione',
@@ -16,35 +16,23 @@ const msg_website_it = {
pages: {
home: 'Home',
profile: 'Profilo',
install_site: 'Installa Sito',
profile2: 'ProfiloU',
mypage2: 'mypage2',
myservice2: 'myservice2',
myhosps2: 'myhosps2',
mygood2: 'mygood2',
catalogo: 'Catalogo',
fundraising: 'Sostieni il Progetto',
notifs: 'Configura le Notifiche',
unsubscribe: 'Disiscriviti',
unsubscribe_user: 'Disiscriviti User',
test: 'Test',
projects: 'Progetti',
report: 'Report Ore',
producer: 'Produttore',
orderinfo: 'Ordini Effettuati',
products: 'Prodotti',
cash: 'Cassa',
productInfos: 'Info Prodotti',
listinoprodotti: 'Listino Prodotti',
productslist: 'Lista Prodotti',
collabora: 'Collabora',
categories: 'Categorie',
storehouses: 'Magazzino',
providers: 'Fornitori',
catprods: 'Categorie',
subcatprods: 'Sotto-Categorie',
gasordine: 'Gas Ordine',
scontisticas: 'Scontistica',
departments: 'Uffici',
orders: 'Ordini Ricevuti',
orders2: 'Ordini Ricevuti',
@@ -133,11 +121,15 @@ const msg_website_it = {
only_residenti: 'Solo Residenti',
only_consiglio: 'Solo Consiglieri',
color: 'Colore',
gasordini: 'Gas Ordini',
gestoreordini: 'Gestore Ordini',
mainMenu: 'Menu Principale',
subtitle: 'Sottotitolo',
lang: 'Lingua',
keywords: 'Parole Chiave',
desctiption: 'Descrizione',
heightimg: 'Altezza Immagine',
},
msg: {
myAppName: 'Più che Buono',
myAppName: 'Riso',
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
underconstruction: 'App in costruzione...',
myDescriz: '',

View File

@@ -67,6 +67,39 @@ function getDynamicPages(site: ISites): IListRoutes[] {
inmenu: false,
infooter: false,
},
{
active: true,
order: 12,
path: '/goods',
materialIcon: 'fas fa-tshirt',
name: 'mypages.goods',
component: () => import('@/root/goods/goods.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 15,
path: '/services',
materialIcon: 'fas fa-house-user',
name: 'mypages.services',
component: () => import('@/root/services/services.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 15,
path: '/activities',
materialIcon: 'fas fa-house-user',
name: 'mypages.activities',
component: () => import('@/root/activities/activities.vue'),
meta: { requiresAuth: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 15,
@@ -78,6 +111,17 @@ function getDynamicPages(site: ISites): IListRoutes[] {
inmenu: false,
infooter: false,
},
{
active: true,
order: 15,
path: '/hosps',
materialIcon: 'fas fa-bed',
name: 'mypages.hosp',
component: () => import('@/root/hosp/hosp.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: site.confpages && site.confpages.enableCircuits,
order: 16,
@@ -165,7 +209,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
meta: { requiresAuth: true, newpage: true },
inmenu: false,
infooter: false,
},
},
{
active: true,
order: 137,
@@ -232,7 +276,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
{
active: true,
order: 150,
path: '/fundraising',
path: '/sostieniilprogetto',
materialIcon: 'fas fa-hand-holding-heart',
name: 'pages.fundraising',
component: () => import('@src/root/fundraising/fundraising.vue'),

View File

@@ -10,7 +10,7 @@
<meta name="description" content="<%= productDescription %>">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="version" content="1.1.4">
<meta name="version" content="1.1.6">
<meta name="viewport"
content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>">

View File

@@ -1778,7 +1778,7 @@ export const useUserStore = defineStore('UserStore', {
},
updateDataFr(data: any) {
console.log('updateDataFr', data)
// console.log('updateDataFr', data)
this.my.profile.friends = data.listFriends ? data.listFriends : []
this.my.profile.req_friends = data.listRequestFriends ? data.listRequestFriends : []
this.my.profile.asked_friends = data.listSentRequestFriends ? data.listSentRequestFriends : []