- Gruppi si chiamano ora "Organizzazioni".

- Categorie dei Gruppi aggiornate.
- Email ora compare sul profilo se non hai telegram e anche sugli annunci.
This commit is contained in:
Surya Paolo
2025-01-28 23:32:37 +01:00
parent 17bcc1644d
commit d65d4e3ffa
59 changed files with 555 additions and 328 deletions

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="18" APP_ID="18"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="17" APP_ID="17"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="19" APP_ID="19"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="18" APP_ID="18"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="17" APP_ID="17"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="19" APP_ID="19"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -99,9 +99,6 @@ const msg_website_enUs = {
people: 'Gue.', people: 'Gue.',
peoplelegend: 'Number of guests', peoplelegend: 'Number of guests',
}, },
admin_ecommerce: 'ECommerce',
ecommerce: 'Prodotti',
ecommerce_menu: 'ECommerce1',
hours: 'Ore', hours: 'Ore',
department: 'Uffici', department: 'Uffici',
title: 'Titolo', title: 'Titolo',

View File

@@ -1,6 +1,6 @@
{ {
"name": "abitaregliiblei", "name": "abitaregliiblei",
"version": "1.1.17", "version": "1.1.18",
"description": "Abitare Gli Iblei", "description": "Abitare Gli Iblei",
"productName": "AbitareGliIblei", "productName": "AbitareGliIblei",
"author": "Paolo Arena", "author": "Paolo Arena",

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="16" APP_ID="16"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,6 +1,6 @@
{ {
"name": "riso", "name": "riso",
"version": "1.1.17", "version": "1.1.18",
"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.", "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.",
"productName": "Riso", "productName": "Riso",
"author": "Paolo Arena", "author": "Paolo Arena",

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="15" APP_ID="15"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="15" APP_ID="15"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,6 +1,6 @@
{ {
"name": "fioredellavita", "name": "fioredellavita",
"version": "1.1.17", "version": "1.1.18",
"description": "Fiore Della Vita", "description": "Fiore Della Vita",
"productName": "Fiore Della Vita", "productName": "Fiore Della Vita",
"author": "Paolo Arena", "author": "Paolo Arena",

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="18" APP_ID="18"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="18" APP_ID="18"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -30,27 +30,6 @@ const msg_website_it = {
test: 'Test', test: 'Test',
projects: 'Progetti', projects: 'Progetti',
report: 'Report Ore', 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',
sharewithus: 'Condividi con Noi',
checkout: 'Carrello',
payment: 'Pagamenti',
regok: 'Registrazione Confermata', regok: 'Registrazione Confermata',
presentazione: 'Presentazione', presentazione: 'Presentazione',
presentazione2: 'Presentazione', presentazione2: 'Presentazione',
@@ -101,9 +80,6 @@ const msg_website_it = {
projectsShared: 'Condivisi da me', projectsShared: 'Condivisi da me',
myprojects: 'Privati', myprojects: 'Privati',
favproj: 'Favoriti', favproj: 'Favoriti',
admin_ecommerce: 'ECommerce',
ecommerce: 'Prodotti',
ecommerce_menu: 'ECommerce1',
hours: 'Ore', hours: 'Ore',
department: 'Uffici', department: 'Uffici',
title: 'Titolo', title: 'Titolo',
@@ -133,8 +109,6 @@ const msg_website_it = {
only_residenti: 'Solo Residenti', only_residenti: 'Solo Residenti',
only_consiglio: 'Solo Consiglieri', only_consiglio: 'Solo Consiglieri',
color: 'Colore', color: 'Colore',
gasordini: 'Gas Ordini',
gestoreordini: 'Gestore Ordini',
}, },
msg: { msg: {
myAppName: 'Più che Buono', myAppName: 'Più che Buono',

View File

@@ -1,6 +1,6 @@
{ {
"name": "gruppomacro", "name": "gruppomacro",
"version": "1.1.17", "version": "1.1.18",
"description": "GruppoMacro", "description": "GruppoMacro",
"productName": "Gruppo Macro", "productName": "Gruppo Macro",
"author": "Paolo Arena", "author": "Paolo Arena",

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="17" APP_ID="17"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="17" APP_ID="17"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,6 +1,6 @@
{ {
"name": "piuchebuono", "name": "piuchebuono",
"version": "1.1.17", "version": "1.1.18",
"description": "PiuCheBuono", "description": "PiuCheBuono",
"productName": "PiuCheBuono", "productName": "PiuCheBuono",
"author": "Paolo Arena", "author": "Paolo Arena",

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.17" APP_VERSION="1.1.18"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="16" APP_ID="16"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,6 +1,6 @@
{ {
"name": "riso", "name": "riso",
"version": "1.1.17", "version": "1.1.18",
"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.", "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.",
"productName": "Riso", "productName": "Riso",
"author": "Paolo Arena", "author": "Paolo Arena",

View File

@@ -1,6 +1,6 @@
{ {
"name": "riso", "name": "riso",
"version": "1.1.17", "version": "1.1.18",
"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.", "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.",
"productName": "Riso", "productName": "Riso",
"author": "Paolo Arena", "author": "Paolo Arena",

View File

@@ -34,7 +34,7 @@ self.addEventListener('activate', (event) => {
}); });
const APP_VERSION = "1.1.17"; const APP_VERSION = "1.1.18";
console.log(' [ VER-' + APP_VERSION + ' ] _---------________------ PAO: this is my custom service worker'); console.log(' [ VER-' + APP_VERSION + ' ] _---------________------ PAO: this is my custom service worker');

View File

@@ -323,14 +323,14 @@ export const shared_consts = {
label: 'Con Provincia inserita', label: 'Con Provincia inserita',
value: 16777216, //FILTER_USER_PROVINCE: value: 16777216, //FILTER_USER_PROVINCE:
}, },
{
label: 'Facilitatore RISO',
value: 4294967296, //FILTER_FACILITATORE: ,:
},
], ],
RECFILTRI_UTENTE_FACIL: [ RECFILTRI_UTENTE_FACIL: [
{
label: 'Facilitatore RISO',
value: 4294967296, //FILTER_FACILITATORE: ,:
},
{ {
label: 'Non ancora approvati dall\'invitante', label: 'Non ancora approvati dall\'invitante',
value: 2097152, // shared_consts.FILTER_USER_NO_VERIFIED_APORTADOR value: 2097152, // shared_consts.FILTER_USER_NO_VERIFIED_APORTADOR

View File

@@ -1,12 +1,16 @@
<template> <template>
<div <div
v-if="(getLinkUserTelegram() && tools.isUserOk()) || showBtnActivities" v-if="
((getLinkUserTelegram() || (myuser.email && tools.isEmailVerified())) &&
tools.isUserOk()) ||
showBtnActivities
"
class="" class=""
> >
<q-inner-loading id="spinner" :showing="loading"> <q-inner-loading id="spinner" :showing="loading">
<q-spinner-tail color="primary" size="4em"> </q-spinner-tail> <q-spinner-tail color="primary" size="4em"> </q-spinner-tail>
</q-inner-loading> </q-inner-loading>
<div class="row justify-evenly items-center q-ma-xs"> <div class="row justify-center items-center q-ma-xs">
<div class="q-pa-xs"> <div class="q-pa-xs">
<q-btn <q-btn
v-if=" v-if="
@@ -49,28 +53,34 @@
target="__blank" target="__blank"
> >
</q-btn> </q-btn>
<div v-else-if="myuser.email && tools.isUserOk()" class="row q-ma-sx"> <div
<CLabel v-else-if="myuser.email && !tools.isUsernameTelegOk()"
v-bind="$attrs" class="row justify-center q-ma-sx"
:copy="true" >
:value="tools.isUserOk() ? myuser.email : ''" <div>
:label="$t('reg.email')" <CLabel
/> v-bind="$attrs"
:copy="true"
<q-btn :value="!tools.isUsernameTelegOk() ? myuser.email : ''"
outline :label="$t('reg.email')"
icon="fas fa-envelope" />
:color="$q.dark.isActive ? `white` : `black`" </div>
:type="tools.isUserOk() ? 'a' : 'btn'" <div>
size="md" <q-btn
:label="$t('msgs.send_email')" outline
:href="tools.isUserOk() ? tools.getemailto(myuser.email) : null" icon="fas fa-envelope"
@click=" :color="$q.dark.isActive ? `white` : `black`"
!tools.isUserOk() ? (showingtooltip = !showingtooltip) : false :type="tools.isUserOk() ? 'a' : 'btn'"
" size="md"
target="__blank" :label="$t('msgs.write_email')"
> :href="tools.isUserOk() ? tools.getemailto(myuser.email) : null"
</q-btn> @click="
!tools.isUserOk() ? (showingtooltip = !showingtooltip) : false
"
target="__blank"
>
</q-btn>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -1182,7 +1182,8 @@ export default defineComponent({
arrvalue: [], arrvalue: [],
filter: null, filter: null,
useinput: false, useinput: false,
icon: 'fas fa-globe-europe' icon: 'fas fa-globe-europe',
filteradv: true,
}, },
{ {
visible: true, visible: true,
@@ -1196,6 +1197,7 @@ export default defineComponent({
addall: true, addall: true,
useinput: false, useinput: false,
icon: 'engineering', icon: 'engineering',
filteradv: true,
}, },
{ {
visible: true, visible: true,
@@ -1209,6 +1211,7 @@ export default defineComponent({
useinput: true, useinput: true,
filter: null, filter: null,
tablesel: 'visibility', tablesel: 'visibility',
filteradv: true,
}, },
{ {
visible: true, visible: true,

View File

@@ -20,16 +20,40 @@
:img-src="directory + '/' + myimg.imagefile" :img-src="directory + '/' + myimg.imagefile"
@click="showImage(myimg)" @click="showImage(myimg)"
> >
<div
v-if="myimg.description"
class="absolute-bottom custom-caption text-center subtitle"
>
{{ myimg.description }}
</div>
</q-carousel-slide> </q-carousel-slide>
</q-carousel> </q-carousel>
<q-dialog v-model="dialogVisible"> <q-dialog v-model="dialogVisible" maximized>
<q-img <div class="q-ma-sm column justify-center">
mode="contain" <q-img
v-if="selectedImage.imagefile" mode="contain"
:src="directory + '/' + selectedImage.imagefile" v-if="selectedImage.imagefile"
:alt="selectedImage.imagefile" :src="directory + '/' + selectedImage.imagefile"
/> :alt="selectedImage.imagefile"
<q-btn color="primary" :label="t('dialog.close')" @click="closeDialog" /> @click="closeDialog"
>
<div
v-if="selectedImage.description"
class="absolute-bottom custom-caption text-center"
>
<div class="subtitle">{{ selectedImage.description }}</div>
</div>
</q-img>
<div>
<div class="text-center">
<q-btn
color="primary"
:label="t('dialog.close')"
@click="closeDialog"
/>
</div>
</div>
</div>
</q-dialog> </q-dialog>
</template> </template>

View File

@@ -2429,8 +2429,8 @@ export default defineComponent({
function showColCheck(col: IColGridTable, tipovis: number, visulabel: boolean, value: any = '', record: any = null) { function showColCheck(col: IColGridTable, tipovis: number, visulabel: boolean, value: any = '', record: any = null) {
// if (col.isadvanced_field && !showfilteradv.value) if (col.isadvanced_field && !showfilteradv.value)
// return false return false
const check = tools.checkIfShowField(col, tipovis, visulabel, value) const check = tools.checkIfShowField(col, tipovis, visulabel, value)

View File

@@ -1404,10 +1404,19 @@
v-for="col in mycolumns" v-for="col in mycolumns"
:key="col.name" :key="col.name"
> >
<!--<div class="text-center q-my-xs" v-if="(col.fieldtype === costanti.FieldType.separator)"> <div
<q-btn color="primary" size="md" dense :icon="!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'" class="text-center q-my-xs"
label="Campi Avanzati" @click="showfilteradv = !showfilteradv"></q-btn> v-if="col.fieldtype === costanti.FieldType.separator"
</div>--> >
<q-btn
color="primary"
size="md"
dense
:icon="!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'"
:label="$t('grid.show_campi_avanzati')"
@click="showfilteradv = !showfilteradv"
></q-btn>
</div>
<div <div
v-if=" v-if="
showColCheck( showColCheck(
@@ -1473,12 +1482,21 @@
</q-bar> </q-bar>
<q-card-section class="inset-shadow"> <q-card-section class="inset-shadow">
<div v-for="col in mycolumns" :key="col.name"> <div v-for="col in mycolumns" :key="col.name">
<!--<div class="text-center q-my-xs" v-if="(col.fieldtype === costanti.FieldType.separator)">
<q-btn color="primary" size="md" dense :icon="!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'"
label="Campi Avanzati" @click="showfilteradv = !showfilteradv"></q-btn>
</div>-->
<div <div
v-if=" class="text-center q-my-xs"
v-if="col.fieldtype === costanti.FieldType.separator"
>
<q-btn
color="primary"
size="md"
dense
:icon="!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'"
:label="$t('grid.show_campi_avanzati')"
@click="showfilteradv = !showfilteradv"
></q-btn>
</div>
<div
v-else-if="
showColCheck(col, tools.TIPOVIS_EDIT_RECORD, false) && showColCheck(col, tools.TIPOVIS_EDIT_RECORD, false) &&
col.foredit col.foredit
" "

View File

@@ -2400,6 +2400,7 @@ export default defineComponent({
showInnerDialog, showInnerDialog,
lengthopt, lengthopt,
update_col, update_col,
showfilteradv,
} }
} }
}) })

View File

@@ -304,10 +304,19 @@
v-for="col in mycolumns" v-for="col in mycolumns"
:key="col.name" :key="col.name"
> >
<!--<div class="text-center q-my-xs" v-if="(col.fieldtype === costanti.FieldType.separator)"> <div
<q-btn color="primary" size="md" dense :icon="!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'" class="text-center q-my-xs"
label="Campi Avanzati" @click="showfilteradv = !showfilteradv"></q-btn> v-if="col.fieldtype === costanti.FieldType.separator"
</div>--> >
<q-btn
color="primary"
size="md"
dense
:icon="!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'"
:label="$t('grid.show_campi_avanzati')"
@click="showfilteradv = !showfilteradv"
></q-btn>
</div>
<div <div
v-if=" v-if="
showColCheck( showColCheck(
@@ -373,10 +382,19 @@
</q-bar> </q-bar>
<q-card-section class="inset-shadow"> <q-card-section class="inset-shadow">
<div v-for="col in mycolumns" :key="col.name"> <div v-for="col in mycolumns" :key="col.name">
<!--<div class="text-center q-my-xs" v-if="(col.fieldtype === costanti.FieldType.separator)"> <div
<q-btn color="primary" size="md" dense :icon="!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'" class="text-center q-my-xs"
label="Campi Avanzati" @click="showfilteradv = !showfilteradv"></q-btn> v-if="col.fieldtype === costanti.FieldType.separator"
</div>--> >
<q-btn
color="primary"
size="md"
dense
:icon="!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'"
:label="$t('grid.show_campi_avanzati')"
@click="showfilteradv = !showfilteradv"
></q-btn>
</div>
<div <div
v-if=" v-if="
showColCheck(col, tools.TIPOVIS_EDIT_RECORD, false) && showColCheck(col, tools.TIPOVIS_EDIT_RECORD, false) &&

View File

@@ -40,6 +40,16 @@
</div> </div>
<q-card-section> <q-card-section>
<span v-for="(rec, ind) of myaccount.recCatGrp" :key="ind">
<q-chip
dense
class="text-center shadow-5 glossy chipmodif text-white"
:style="`background-color: ${rec.color};`"
>
<q-icon :name="rec.icon" left />
{{ rec.descr }}</q-chip
></span
>
<div v-if="myaccount.date_created" class="container"> <div v-if="myaccount.date_created" class="container">
<q-icon name="fas fa-lightbulb" class="iconcirc"></q-icon> <q-icon name="fas fa-lightbulb" class="iconcirc"></q-icon>
{{ {{

View File

@@ -233,13 +233,8 @@
:label="col.visulabel ? $t(col.label_trans) : col.label" :label="col.visulabel ? $t(col.label_trans) : col.label"
> >
</q-input> </q-input>
<q-field v-if="col.showLinkResult"> <q-field v-if="col.showLinkResult && myvalue">
Diventerà: Diventerà: {{ tools.generateURL(col.showLinkResult, myvalue) }}
<a
:href="tools.generateURL(col.showLinkResult, myvalue)"
target="_blank"
>{{ tools.generateURL(col.showLinkResult, myvalue) }}</a
>
</q-field> </q-field>
</div> </div>
<div <div

View File

@@ -1,62 +1,137 @@
<template> <template>
<div class="q-py-xs centermydiv cardrec" <div
:style="`max-width: `+ (tools.getwidth($q) - 20) +`px; ` + ($q.screen.lt.sm ? (`min-width: `+ (tools.getwidth($q) - 20) +`px;`) : ``)"> class="q-py-xs centermydiv cardrec"
:style="
<q-item v-if="myrec" clickable v-ripple :class="`shadow-2 q-btn--rounded `+ ($q.dark.isActive ? `bg-black`: `bg-teal-1`)"> `max-width: ` +
(tools.getwidth($q) - 20) +
<q-item-section v-if="(shared_consts.TABLES_VISU_IMG.includes(table)) && (myrec.photos && myrec.photos.length > 0)" avatar `px; ` +
@click="cmdExt(costanti.CMD_OPEN_PAGE, myrec)"> ($q.screen.lt.sm ? `min-width: ` + (tools.getwidth($q) - 20) + `px;` : ``)
"
>
<q-item
v-if="myrec"
clickable
v-ripple
:class="
`shadow-2 q-btn--rounded ` +
($q.dark.isActive ? `bg-black` : `bg-teal-1`)
"
>
<q-item-section
v-if="
shared_consts.TABLES_VISU_IMG.includes(table) &&
myrec.photos &&
myrec.photos.length > 0
"
avatar
@click="cmdExt(costanti.CMD_OPEN_PAGE, myrec)"
>
<q-avatar size="60px"> <q-avatar size="60px">
<q-img :src="tools.getFullFileName(myrec.photos, table, myrec.username, myrec.groupname)" :alt="myrec.descr" <q-img
img-class="imgprofile" height="60px"/> :src="
tools.getFullFileName(
myrec.photos,
table,
myrec.username,
myrec.groupname
)
"
:alt="myrec.descr"
img-class="imgprofile"
height="60px"
/>
</q-avatar> </q-avatar>
</q-item-section> </q-item-section>
<q-item-section v-else avatar> <q-item-section v-else avatar>
<q-avatar size="60px"> <q-avatar size="60px">
<q-img :src="getImgUser(myrec)" :alt="myrec.username" img-class="imgprofile" height="60px"/> <q-img
:src="getImgUser(myrec)"
:alt="myrec.username"
img-class="imgprofile"
height="60px"
/>
</q-avatar> </q-avatar>
</q-item-section> </q-item-section>
<q-item-section @click="cmdExt(costanti.CMD_OPEN_PAGE, null, myrec)"> <q-item-section @click="cmdExt(costanti.CMD_OPEN_PAGE, null, myrec)">
<q-item-label class="full-width"> <q-item-label class="row no-wrap" style="overflow-x: auto; white-space: nowrap;">
<span v-for="(rec, ind) of myrec.recCatGrp" :key="ind"> <q-chip
<q-chip
v-for="(rec, ind) of myrec.recCatGrp"
:key="ind"
dense dense
class="text-center shadow-5 glossy bg-blue chipmodif">{{ rec.descr }}</q-chip></span> class="text-center shadow-5 glossy chipmodif text-white"
:style="`background-color: ${rec.color};`"
>
<q-icon :name="rec.icon" left />
{{ rec.descr }}</q-chip
>
<!--<span class="dateevent" v-if="myrec.dateTimeStart">dal <span class="datainizio">{{tools.getstrVeryShortDate(myrec.dateStart) }}</span> al <span class="datafine">{{ tools.getstrVeryShortDate(myrec.dateEnd) }}</span> <!--<span class="dateevent" v-if="myrec.dateTimeStart">dal <span class="datainizio">{{tools.getstrVeryShortDate(myrec.dateStart) }}</span> al <span class="datafine">{{ tools.getstrVeryShortDate(myrec.dateEnd) }}</span>
</span>--> </span>-->
</q-item-label> </q-item-label>
<q-item-label v-if="myrec.title" lines="1" :class="($q.dark.isActive ? `text_title_dark`: `text_title`)"> <q-item-label
v-if="myrec.title"
lines="1"
:class="$q.dark.isActive ? `text_title_dark` : `text_title`"
>
<span class="text-weight-bold">{{ myrec.title }}</span> <span class="text-weight-bold">{{ myrec.title }}</span>
</q-item-label> </q-item-label>
<q-item-label lines="3" v-if="myrec.descr">{{ myrec.descr }}<br> <q-item-label lines="3" v-if="myrec.descr"
>{{ myrec.descr }}<br />
</q-item-label> </q-item-label>
<q-item-label lines="1" style="text-align: right" class="text_user_city"> <q-item-label
<span v-if="myrec.visibility && myrec.visibility.includes(shared_consts.Visibility_Group.PRIVATE)" class="q-mr-xs"> lines="1"
<q-icon name="fas fa-lock"></q-icon></span> style="text-align: right"
<span v-if="myrec.visibility && myrec.visibility.includes(shared_consts.Visibility_Group.HIDDEN)" class="q-mr-xs"> class="text_user_city"
<q-icon name="fas fa-eye-slash"></q-icon></span> >
<span v-for="(rec, ind) of myrec.mycities" :key="ind"><span v-if="ind > 0">, </span>{{ rec.comune }}</span> <span
v-if="
myrec.visibility &&
myrec.visibility.includes(shared_consts.Visibility_Group.PRIVATE)
"
class="q-mr-xs"
>
<q-icon name="fas fa-lock"></q-icon
></span>
<span
v-if="
myrec.visibility &&
myrec.visibility.includes(shared_consts.Visibility_Group.HIDDEN)
"
class="q-mr-xs"
>
<q-icon name="fas fa-eye-slash"></q-icon
></span>
<span v-for="(rec, ind) of myrec.mycities" :key="ind"
><span v-if="ind > 0">, </span>{{ rec.comune }}</span
>
</q-item-label> </q-item-label>
</q-item-section> </q-item-section>
<q-item-section side v-if="tools.canModifyThisRec(myrec, table)"> <q-item-section side v-if="tools.canModifyThisRec(myrec, table)">
<q-item-label> <q-item-label>
<q-btn rounded dense icon="fas fa-pencil-alt"> <q-btn rounded dense icon="fas fa-pencil-alt">
<q-menu> <q-menu>
<q-list style="min-width: 150px"> <q-list style="min-width: 150px">
<q-item clickable v-close-popup <q-item
@click="cmdExt(costanti.CMD_MODIFY, myrec._id, null)"> clickable
v-close-popup
@click="cmdExt(costanti.CMD_MODIFY, myrec._id, null)"
>
<q-item-section side> <q-item-section side>
<q-icon name="fas fa-pencil-alt"/> <q-icon name="fas fa-pencil-alt" />
</q-item-section> </q-item-section>
<q-item-section>{{ $t('reg.edit') }}</q-item-section> <q-item-section>{{ $t('reg.edit') }}</q-item-section>
</q-item> </q-item>
</q-list> </q-list>
<q-list style="min-width: 150px"> <q-list style="min-width: 150px">
<q-item clickable v-close-popup @click="cmdExt(costanti.CMD_DELETE, myrec._id, null)"> <q-item
clickable
v-close-popup
@click="cmdExt(costanti.CMD_DELETE, myrec._id, null)"
>
<q-item-section side> <q-item-section side>
<q-icon name="fas fa-trash-alt"/> <q-icon name="fas fa-trash-alt" />
</q-item-section> </q-item-section>
<q-item-section>{{ $t('reg.elimina') }}</q-item-section> <q-item-section>{{ $t('reg.elimina') }}</q-item-section>
</q-item> </q-item>
@@ -65,11 +140,9 @@
</q-btn> </q-btn>
</q-item-label> </q-item-label>
</q-item-section> </q-item-section>
</q-item> </q-item>
<q-separator inset="item"/> <q-separator inset="item" />
</div> </div>
</template> </template>
<script lang="ts" src="./CMyRecGrpCard.ts"> <script lang="ts" src="./CMyRecGrpCard.ts">

View File

@@ -385,7 +385,8 @@ export default defineComponent({
} }
myarrvalue.value = [] myarrvalue.value = []
for (const val of props.arrvalue) { let myarr = props.arrvalue
for (const val of myarr) {
rec = arrtempOpt.value.find((myrec: any) => val === (myrec[`${props.optval}`])) rec = arrtempOpt.value.find((myrec: any) => val === (myrec[`${props.optval}`]))
if (rec) { if (rec) {
myarrvalue.value.push(rec[`${props.optval}`]) myarrvalue.value.push(rec[`${props.optval}`])
@@ -412,8 +413,13 @@ export default defineComponent({
if (props.multiple) { if (props.multiple) {
let arrrec = [] let arrrec = []
if (props.arrvalue) { let myarr = props.arrvalue
for (const val of props.arrvalue) { if (myarr && !tools.isArray(myarr)) {
myarr = [myarr]
}
if (myarr) {
for (const val of myarr) {
rec = optionsreal.value.find((myrec: any) => val === (myrec[`${props.optval}`])) rec = optionsreal.value.find((myrec: any) => val === (myrec[`${props.optval}`]))
if (rec) { if (rec) {
arrrec.push(rec[`${props.optval}`]) arrrec.push(rec[`${props.optval}`])

View File

@@ -41,7 +41,7 @@
<em>{{ contact.profile.qualifica }}</em> <em>{{ contact.profile.qualifica }}</em>
<span v-if="tools.isFacil() && contact.profile.note"><span v-if="contact.profile.qualifica"><br></span><em style="color: blue;">Note: {{ contact.profile.note }}</em></span> <span v-if="tools.isFacil() && contact.profile.note"><span v-if="contact.profile.qualifica"><br></span><em style="color: blue;">Note: {{ contact.profile.note }}</em></span>
<span v-if="tools.isFacil() && contact.profile.da_contattare"><br><em style="color: red;">Da Contattare</em></span> <span v-if="tools.isFacil() && contact.profile.da_contattare"><br><em style="color: red;">Da Contattare</em></span>
<span v-if="tools.isBitActive(contact.perm, shared_consts.Permissions.Facilitatore.value)"><br><em style="color: blue;"> Facilitatore RISO</em></span> <!--<span v-if="tools.isBitActive(contact.perm, shared_consts.Permissions.Facilitatore.value)"><br><em style="color: blue;"> Facilitatore RISO</em></span>-->
</q-item-label </q-item-label
> >
<q-item-label caption lines="1"></q-item-label> <q-item-label caption lines="1"></q-item-label>
@@ -326,7 +326,7 @@
<q-list style="min-width: 150px"> <q-list style="min-width: 150px">
<q-item <q-item
clickable clickable
v-if="!tools.isUserAdminGroup(groupname, contact.username)" v-if="!tools.isUserAdminGroup(groupname, contact.username, true)"
v-close-popup v-close-popup
@click=" @click="
tools.addtoAdminOfMyGroup($q, contact.username, groupname) tools.addtoAdminOfMyGroup($q, contact.username, groupname)
@@ -340,7 +340,7 @@
<q-item <q-item
clickable clickable
v-if=" v-if="
tools.isUserAdminGroup(groupname, contact.username) && tools.isUserAdminGroup(groupname, contact.username, true) &&
tools.iAmTheCreatorOfTheGroup(groupname) tools.iAmTheCreatorOfTheGroup(groupname)
" "
v-close-popup v-close-popup
@@ -517,7 +517,7 @@
<q-item <q-item
clickable clickable
v-if=" v-if="
!tools.isUserAdminCircuit(circuitname, contact.username) !tools.isUserAdminCircuit(circuitname, contact.username, true)
" "
v-close-popup v-close-popup
@click=" @click="
@@ -534,7 +534,7 @@
<q-item <q-item
clickable clickable
v-if=" v-if="
tools.isUserAdminCircuit(circuitname, contact.username) && tools.isUserAdminCircuit(circuitname, contact.username, true) &&
tools.iAmTheCreatorOfTheCircuit(circuitname) tools.iAmTheCreatorOfTheCircuit(circuitname)
" "
v-close-popup v-close-popup
@@ -594,7 +594,7 @@
<q-item <q-item
clickable clickable
v-if=" v-if="
!tools.isUserAdminCircuit(circuitname, contact.username) !tools.isUserAdminCircuit(circuitname, contact.username, true)
" "
v-close-popup v-close-popup
@click=" @click="
@@ -611,7 +611,7 @@
<q-item <q-item
clickable clickable
v-if=" v-if="
tools.isUserAdminCircuit(circuitname, contact.username) && tools.isUserAdminCircuit(circuitname, contact.username, true) &&
tools.iAmTheCreatorOfTheCircuit(circuitname) tools.iAmTheCreatorOfTheCircuit(circuitname)
" "
v-close-popup v-close-popup

View File

@@ -201,7 +201,7 @@
<q-list style="min-width: 150px"> <q-list style="min-width: 150px">
<q-item <q-item
clickable clickable
v-if="!tools.isUserAdminGroup(groupname, contact.username)" v-if="!tools.isUserAdminGroup(groupname, contact.username, true)"
v-close-popup v-close-popup
@click=" @click="
tools.addtoAdminOfMyGroup($q, contact.username, groupname) tools.addtoAdminOfMyGroup($q, contact.username, groupname)
@@ -215,7 +215,7 @@
<q-item <q-item
clickable clickable
v-if=" v-if="
tools.isUserAdminGroup(groupname, contact.username) && tools.isUserAdminGroup(groupname, contact.username, true) &&
tools.iAmTheCreatorOfTheGroup(groupname) tools.iAmTheCreatorOfTheGroup(groupname)
" "
v-close-popup v-close-popup

View File

@@ -10,7 +10,7 @@
<meta name="description" content="<%= productDescription %>"> <meta name="description" content="<%= productDescription %>">
<meta name="format-detection" content="telephone=no"> <meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no"> <meta name="msapplication-tap-highlight" content="no">
<meta name="version" content="1.1.17"> <meta name="version" content="1.1.18">
<meta name="viewport" <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<% } %>"> 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

@@ -2,7 +2,7 @@
<CMyPage title="Gruppi" imgbackground="images/produttori.jpg" sizes="max-height: 120px"> <CMyPage title="Gruppi" imgbackground="images/produttori.jpg" sizes="max-height: 120px">
<span>{{ <span>{{
setmeta({ setmeta({
title: 'Gruppi', title: 'Organizzazioni',
description: '', description: '',
keywords: '', keywords: '',
}) })
@@ -11,7 +11,7 @@
<div class="q-ma-sm q-gutter-sm q-pa-xs"> <div class="q-ma-sm q-gutter-sm q-pa-xs">
<CTitleBanner title="Gruppi"></CTitleBanner> <CTitleBanner title="Organizzazioni"></CTitleBanner>
<CGridTableRec <CGridTableRec
prop_mytable="groups" prop_mytable="groups"
prop_mytitle="Gruppi" prop_mytitle="Gruppi"

View File

@@ -9,7 +9,7 @@ function getRoutesEcomm(site: ISites) {
order: 30, order: 30,
path: '/products', path: '/products',
materialIcon: 'fas fa-lemon', materialIcon: 'fas fa-lemon',
name: 'pages.productslist', name: 'mypages.productslist',
component: () => import('@/views/ecommerce/productsList/productsList.vue'), component: () => import('@/views/ecommerce/productsList/productsList.vue'),
inmenu: true, inmenu: true,
submenu: true, submenu: true,
@@ -21,7 +21,7 @@ function getRoutesEcomm(site: ISites) {
order: 30, order: 30,
path: '/checkout', path: '/checkout',
materialIcon: 'fas fa-shopping-cart', materialIcon: 'fas fa-shopping-cart',
name: 'pages.checkout', name: 'mypages.checkout',
component: () => import('@/views/ecommerce/checkOut/checkOut.vue'), component: () => import('@/views/ecommerce/checkOut/checkOut.vue'),
inmenu: true, inmenu: true,
submenu: true, submenu: true,
@@ -33,7 +33,7 @@ function getRoutesEcomm(site: ISites) {
order: 30, order: 30,
path: '/orderinfo', path: '/orderinfo',
materialIcon: 'fas fa-file-alt', materialIcon: 'fas fa-file-alt',
name: 'pages.orderinfo', name: 'mypages.orderinfo',
component: () => import('@/views/ecommerce/orderInfo/orderInfo.vue'), component: () => import('@/views/ecommerce/orderInfo/orderInfo.vue'),
inmenu: true, inmenu: true,
submenu: true, submenu: true,
@@ -45,7 +45,7 @@ function getRoutesEcomm(site: ISites) {
order: 35, order: 35,
path: '/admin/ecommerce/orders', path: '/admin/ecommerce/orders',
materialIcon: 'fas fa-file-alt', materialIcon: 'fas fa-file-alt',
name: 'pages.orders', name: 'mypages.orders',
component: () => import('@/rootgen/admin/orders/orders.vue'), component: () => import('@/rootgen/admin/orders/orders.vue'),
inmenu: true, inmenu: true,
submenu: true, submenu: true,
@@ -75,7 +75,7 @@ function getRoutesEcomm(site: ISites) {
order: 30, order: 30,
path: '/admin/ecommerce/cash', path: '/admin/ecommerce/cash',
materialIcon: 'fas fa-cash-register', materialIcon: 'fas fa-cash-register',
name: 'pages.cash', name: 'mypages.cash',
component: () => import('@/views/ecommerce/cash/cash.vue'), component: () => import('@/views/ecommerce/cash/cash.vue'),
inmenu: true, inmenu: true,
submenu: true, submenu: true,
@@ -89,7 +89,7 @@ function getRoutesEcomm(site: ISites) {
order: 30, order: 30,
path: '/admin/ecommerce/productInfos', path: '/admin/ecommerce/productInfos',
materialIcon: 'fas fa-lemon', materialIcon: 'fas fa-lemon',
name: 'pages.productInfos', name: 'mypages.productInfos',
component: () => import('@/rootgen/admin/productInfos/productInfos.vue'), component: () => import('@/rootgen/admin/productInfos/productInfos.vue'),
inmenu: true, inmenu: true,
submenu: true, submenu: true,
@@ -103,7 +103,7 @@ function getRoutesEcomm(site: ISites) {
order: 30, order: 30,
path: '/admin/ecommerce/gestoreordini', path: '/admin/ecommerce/gestoreordini',
materialIcon: 'fas fa-lemon', materialIcon: 'fas fa-lemon',
name: 'pages.gestoreordini', name: 'mypages.gestoreordini',
component: () => import('@/views/admin/gestoreordini/gestoreordini.vue'), component: () => import('@/views/admin/gestoreordini/gestoreordini.vue'),
inmenu: true, inmenu: true,
submenu: true, submenu: true,
@@ -117,7 +117,7 @@ function getRoutesEcomm(site: ISites) {
order: 30, order: 30,
path: '/admin/ecommerce/products', path: '/admin/ecommerce/products',
materialIcon: 'fas fa-lemon', materialIcon: 'fas fa-lemon',
name: 'pages.listinoprodotti', name: 'mypages.listinoprodotti',
component: () => import('@/rootgen/admin/products/products.vue'), component: () => import('@/rootgen/admin/products/products.vue'),
inmenu: true, inmenu: true,
submenu: true, submenu: true,
@@ -131,7 +131,7 @@ function getRoutesEcomm(site: ISites) {
order: 30, order: 30,
path: '/admin/ecommerce/producers', path: '/admin/ecommerce/producers',
materialIcon: 'fas fa-tractor', materialIcon: 'fas fa-tractor',
name: 'pages.producer', name: 'mypages.producer',
component: () => import('@/rootgen/admin/producer/producer.vue'), component: () => import('@/rootgen/admin/producer/producer.vue'),
inmenu: true, inmenu: true,
submenu: true, submenu: true,
@@ -145,7 +145,7 @@ function getRoutesEcomm(site: ISites) {
order: 30, order: 30,
path: '/admin/ecommerce/storehouses', path: '/admin/ecommerce/storehouses',
materialIcon: 'fas fa-store', materialIcon: 'fas fa-store',
name: 'pages.storehouses', name: 'mypages.storehouses',
component: () => import('@/rootgen/admin/storehouses/storehouses.vue'), component: () => import('@/rootgen/admin/storehouses/storehouses.vue'),
inmenu: true, inmenu: true,
submenu: true, submenu: true,
@@ -159,7 +159,7 @@ function getRoutesEcomm(site: ISites) {
order: 30, order: 30,
path: '/admin/ecommerce/providers', path: '/admin/ecommerce/providers',
materialIcon: 'fas fa-file-alt', materialIcon: 'fas fa-file-alt',
name: 'pages.providers', name: 'mypages.providers',
component: () => import('@/rootgen/admin/providers/providers.vue'), component: () => import('@/rootgen/admin/providers/providers.vue'),
inmenu: true, inmenu: true,
submenu: true, submenu: true,
@@ -173,7 +173,7 @@ function getRoutesEcomm(site: ISites) {
order: 30, order: 30,
path: '/admin/ecommerce/gasordini', path: '/admin/ecommerce/gasordini',
materialIcon: 'fas fa-file-alt', materialIcon: 'fas fa-file-alt',
name: 'pages.gasordini', name: 'mypages.gasordini',
component: () => import('@/rootgen/admin/gasordini/gasordini.vue'), component: () => import('@/rootgen/admin/gasordini/gasordini.vue'),
inmenu: true, inmenu: true,
submenu: true, submenu: true,
@@ -187,7 +187,7 @@ function getRoutesEcomm(site: ISites) {
order: 30, order: 30,
path: '/admin/ecommerce/scontistica', path: '/admin/ecommerce/scontistica',
materialIcon: 'fas fa-gift', materialIcon: 'fas fa-gift',
name: 'pages.scontisticas', name: 'mypages.scontisticas',
component: () => import('@/rootgen/admin/scontistica/scontistica.vue'), component: () => import('@/rootgen/admin/scontistica/scontistica.vue'),
inmenu: true, inmenu: true,
submenu: true, submenu: true,
@@ -201,7 +201,7 @@ function getRoutesEcomm(site: ISites) {
order: 31, order: 31,
path: '/admin/ecommerce/departments', path: '/admin/ecommerce/departments',
materialIcon: 'fas fa-file-alt', materialIcon: 'fas fa-file-alt',
name: 'pages.departments', name: 'mypages.departments',
component: () => import('@/rootgen/admin/departments/departments.vue'), component: () => import('@/rootgen/admin/departments/departments.vue'),
inmenu: true, inmenu: true,
submenu: true, submenu: true,
@@ -215,7 +215,7 @@ function getRoutesEcomm(site: ISites) {
order: 31, order: 31,
path: '/admin/ecommerce/orders', path: '/admin/ecommerce/orders',
materialIcon: 'fas fa-file-alt', materialIcon: 'fas fa-file-alt',
name: 'pages.orders', name: 'mypages.orders',
component: () => import('@/rootgen/admin/orders/orders.vue'), component: () => import('@/rootgen/admin/orders/orders.vue'),
inmenu: true, inmenu: true,
submenu: true, submenu: true,
@@ -229,7 +229,7 @@ function getRoutesEcomm(site: ISites) {
order: 32, order: 32,
path: '/admin/ecommerce/catprods', path: '/admin/ecommerce/catprods',
materialIcon: 'fas fa-file-alt', materialIcon: 'fas fa-file-alt',
name: 'pages.catprods', name: 'mypages.catprods',
component: () => import('@/rootgen/admin/catprods/catprods.vue'), component: () => import('@/rootgen/admin/catprods/catprods.vue'),
inmenu: true, inmenu: true,
submenu: true, submenu: true,
@@ -248,7 +248,7 @@ function getRoutesEcomm(site: ISites) {
order: 1402, order: 1402,
faIcon: 'fas fa-lemon', faIcon: 'fas fa-lemon',
materialIcon: 'fas fa-lemon', materialIcon: 'fas fa-lemon',
name: 'pages.ecommerce', name: 'mypages.ecommerce',
routes2: routes_ecommerce, routes2: routes_ecommerce,
inmenu: true, inmenu: true,
onlyif_logged: true, onlyif_logged: true,
@@ -262,7 +262,7 @@ function getRoutesEcomm(site: ISites) {
path: '/admin/ecommerce', path: '/admin/ecommerce',
order: 1420, order: 1420,
materialIcon: 'next_week', materialIcon: 'next_week',
name: 'pages.admin_ecommerce', name: 'mypages.admin_ecommerce',
routes2: routes_admin_ecommerce, routes2: routes_admin_ecommerce,
inmenu: true, inmenu: true,
solotitle: true, solotitle: true,

View File

@@ -14,6 +14,7 @@ const msg_it = {
csv: 'Esporta Movimenti', csv: 'Esporta Movimenti',
}, },
grid: { grid: {
show_campi_avanzati: 'Mostra Campi Avanzati',
advanced_filters: 'Filtri Avanzati', advanced_filters: 'Filtri Avanzati',
found: 'trovato', found: 'trovato',
newrecord: 'Aggiungi', newrecord: 'Aggiungi',
@@ -955,6 +956,7 @@ const msg_it = {
messages: 'Messaggi', messages: 'Messaggi',
nomessage: 'Nessun Messaggio', nomessage: 'Nessun Messaggio',
send_email: 'Invia Email', send_email: 'Invia Email',
write_email: 'Scrivi una email',
}, },
notifs: { notifs: {
all: 'Tutte', all: 'Tutte',
@@ -988,7 +990,7 @@ const msg_it = {
new_rec_bacheca: 'Annunci', new_rec_bacheca: 'Annunci',
new_rec_bacheca_descr: 'Avvisami quando viene aggiunto un Annuncio:', new_rec_bacheca_descr: 'Avvisami quando viene aggiunto un Annuncio:',
friends: 'Richieste di Amicizia', friends: 'Richieste di Amicizia',
groups: 'Gruppi', groups: 'Organizzazioni',
friends_descr: 'Notifiche:', friends_descr: 'Notifiche:',
events: 'Eventi', events: 'Eventi',
events_descr: 'Notifiche:', events_descr: 'Notifiche:',
@@ -1170,6 +1172,15 @@ const msg_it = {
statusSkill: { statusSkill: {
name: 'Di Persona / On Line', name: 'Di Persona / On Line',
}, },
producer: {
name: 'Produttore',
description: 'Descrizione',
referent: 'Referente',
username: 'Username',
city: 'Città',
region: 'Regione',
img: 'Immagine',
},
store: { store: {
description: 'Descrizione', description: 'Descrizione',
main: 'Principale', main: 'Principale',
@@ -1183,6 +1194,13 @@ const msg_it = {
email_html_GAS_order_confirmed: '2) Ordine GAS Confermato da noi', email_html_GAS_order_confirmed: '2) Ordine GAS Confermato da noi',
email_html_order_consegnato: '3) Ordine Consegnato', email_html_order_consegnato: '3) Ordine Consegnato',
email_html_GAS_order_consegnato: '3) Ordine GAS Consegnato', email_html_GAS_order_consegnato: '3) Ordine GAS Consegnato',
name: 'Nome Fornitore',
referent: 'Referente',
address: 'Indirizzo',
city: 'Città',
region: 'Regione',
}, },
sectors: { sectors: {
name: 'Settore', name: 'Settore',
@@ -1219,6 +1237,32 @@ const msg_it = {
date_updated: 'Ult. Aggiornamento', date_updated: 'Ult. Aggiornamento',
}, },
mypages: { mypages: {
admin_ecommerce: 'ECommerce',
ecommerce: 'Prodotti',
ecommerce_menu: 'ECommerce1',
gasordini: 'Gas Ordini',
gestoreordini: 'Gestore Ordini',
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',
sharewithus: 'Condividi con Noi',
checkout: 'Carrello',
payment: 'Pagamenti',
duplica_newname: 'Inserisci il nome della Nuova Pagina (senza spazi)', duplica_newname: 'Inserisci il nome della Nuova Pagina (senza spazi)',
duplica_conferma: 'Duplicare {path} creando {newpath}', duplica_conferma: 'Duplicare {path} creando {newpath}',
esporta_conferma: 'Esportare la pagina {path} su {nomefile} ?', esporta_conferma: 'Esportare la pagina {path} su {nomefile} ?',
@@ -1239,7 +1283,8 @@ const msg_it = {
events: 'Eventi', events: 'Eventi',
goods: 'Beni', goods: 'Beni',
test: 'Test', test: 'Test',
groups: 'Gruppi', groups: 'Organizzazioni',
group: 'Organizzazione',
request_friends: 'Richieste Amicizia', request_friends: 'Richieste Amicizia',
request_sent: 'Richieste Inviate', request_sent: 'Richieste Inviate',
request_trust: 'Richieste Fiducia', request_trust: 'Richieste Fiducia',
@@ -1330,6 +1375,7 @@ const msg_it = {
pwd: 'Password per accedere', pwd: 'Password per accedere',
private: 'Privato', private: 'Privato',
hidden: 'Nascosto', hidden: 'Nascosto',
descrizione: 'Descrizione',
private_descr: 'Solo i membri possono vedere chi fa parte del gruppo', private_descr: 'Solo i membri possono vedere chi fa parte del gruppo',
hidden_descr: 'il Gruppo non sarà visibile nella ricerca', hidden_descr: 'il Gruppo non sarà visibile nella ricerca',
page: 'Pagina', page: 'Pagina',
@@ -1514,7 +1560,7 @@ const msg_it = {
movements_made: 'Movimenti effettuati', movements_made: 'Movimenti effettuati',
contocomunitario: 'Conto Comunitario', contocomunitario: 'Conto Comunitario',
comunitario: 'Comunitario', comunitario: 'Comunitario',
conticollettivi: 'Gruppi', conticollettivi: 'Organizzazioni',
contideigruppi: 'Conti dei Gruppi', contideigruppi: 'Conti dei Gruppi',
listaconticollettivi: 'Lista Gruppi', listaconticollettivi: 'Lista Gruppi',
qta_remaining_to_send: 'Quantità massima inviabile {maxqta} {symbol}', qta_remaining_to_send: 'Quantità massima inviabile {maxqta} {symbol}',
@@ -1604,7 +1650,7 @@ const msg_it = {
tabdown: { tabdown: {
home: 'Home', home: 'Home',
groups: 'Gruppi', groups: 'Organizzazioni',
eventi: 'Eventi', eventi: 'Eventi',
friends: 'Iscritti', friends: 'Iscritti',
bookings: 'Prenotaz.', bookings: 'Prenotaz.',
@@ -1676,12 +1722,12 @@ const msg_it = {
showConnected: 'Stato Connessione', showConnected: 'Stato Connessione',
bookingEvents: 'Prenotazione Eventi', bookingEvents: 'Prenotazione Eventi',
enableEcommerce: 'ECommerce', enableEcommerce: 'ECommerce',
enableGroups: 'Gruppi', enableGroups: 'Organizzazioni',
enableCircuits: 'Circuiti', enableCircuits: 'Circuiti',
enableAI: 'AI Tools', enableAI: 'AI Tools',
enableProj: 'Mostra Project', enableProj: 'Mostra Project',
enableTodos: 'Mostra Todos', enableTodos: 'Mostra Todos',
enableRegByBot: 'Registratione By Bot', enableRegByBot: 'Registrazione usando il BOT',
enableRegMultiChoice: 'Registratione a Scelta tra Email e Telegram', enableRegMultiChoice: 'Registratione a Scelta tra Email e Telegram',
enableTokenExpired: 'Attiva Scadenza Token', enableTokenExpired: 'Attiva Scadenza Token',
enableDebugOn: 'Attiva Debug', enableDebugOn: 'Attiva Debug',

View File

@@ -249,7 +249,10 @@ export const useCircuitStore = defineStore('CircuitStore', {
}, },
getCircuitsListByGroup(mygrp: IMyGroup): ICircuit[] { getCircuitsListByGroup(mygrp: IMyGroup): ICircuit[] {
return this.listcircuits.filter((rec: ICircuit) => mygrp.mycircuits!.findIndex((circ: IMyCircuit) => circ.circuitname === rec.name) >= 0) if (mygrp.mycircuits)
return this.listcircuits.filter((rec: ICircuit) => mygrp.mycircuits!.findIndex((circ: IMyCircuit) => circ.circuitname === rec.name) >= 0)
return []
}, },
IsAskedCircuitByNameAndGroup(name: string, groupname: string): boolean { IsAskedCircuitByNameAndGroup(name: string, groupname: string): boolean {

View File

@@ -215,7 +215,7 @@ export const costanti = {
visible: false, visible: false,
title: 'Circuiti RIS', title: 'Circuiti RIS',
strsingolo: 'Circuito', strsingolo: 'Circuito',
subtitle: 'Strumento di scambio alternativa alle monete', subtitle: 'Strumento di scambio alternativo alle monete',
to: '/circuits', to: '/circuits',
table: 'circuits', table: 'circuits',
icon: 'fas fa-coins', icon: 'fas fa-coins',
@@ -229,9 +229,9 @@ export const costanti = {
}, },
{ {
visible: false, visible: false,
title: 'Gruppi', title: 'Organizzazioni',
strsingolo: 'Gruppo', strsingolo: 'Organizzazione',
subtitle: 'Associazioni, progetti, comunità, negozi', subtitle: 'Gruppi, Associazioni, Aziende, Comunità',
to: '/groups', to: '/groups',
table: 'mygroups', table: 'mygroups',
icon: 'fas fa-users', icon: 'fas fa-users',

View File

@@ -1045,8 +1045,8 @@ export const colmyUserGroup = [
AddCol({ AddCol({
name: 'idCatGrp', name: 'idCatGrp',
label_trans: 'catgrps.name', label_trans: 'catgrps.name',
fieldtype: costanti.FieldType.select, fieldtype: costanti.FieldType.multiselect,
required: true, required: false,
jointable: 'catgrps', jointable: 'catgrps',
visible: true, visible: true,
icon: 'category', icon: 'category',
@@ -1059,13 +1059,6 @@ export const colmyUserGroup = [
maxlength: 100 maxlength: 100
} }
), ),
AddCol({
name: 'visibility',
label_trans: 'bot.visibility',
fieldtype: costanti.FieldType.multiselect,
jointable: 'visibilGroup',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
}),
/*AddCol({ /*AddCol({
name: 'pwd', label_trans: 'groups.pwd', fieldtype: costanti.FieldType.crypted, name: 'pwd', label_trans: 'groups.pwd', fieldtype: costanti.FieldType.crypted,
visibleif: costanti.BINARY_CHECK, visib_field: 'visibility', visib_value: shared_consts.Visibility_Group.PASSWORD, visibleif: costanti.BINARY_CHECK, visib_field: 'visibility', visib_value: shared_consts.Visibility_Group.PASSWORD,
@@ -1100,6 +1093,25 @@ export const colmyUserGroup = [
jointable: '', jointable: '',
showWhen: costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView, showWhen: costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView,
}), }),
AddCol({
name: 'note', label_trans: 'reg.detailsPage', fieldtype: costanti.FieldType.html,
titlepopupedit: 'detailsPage', field_extra1: 'groupname', subfield_extra1: '',
}),
AddCol({
name: '',
fieldtype: costanti.FieldType.separator,
required: false,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit,
visible: false,
}),
AddCol({
name: 'visibility',
label_trans: 'bot.visibility',
fieldtype: costanti.FieldType.multiselect,
jointable: 'visibilGroup',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
isadvanced_field: true,
}),
AddCol({ AddCol({
name: 'link_telegram', label_trans: 'reg.link_telegram', isadvanced_field: true, fieldtype: costanti.FieldType.link, name: 'link_telegram', label_trans: 'reg.link_telegram', isadvanced_field: true, fieldtype: costanti.FieldType.link,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist, showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
@@ -1109,10 +1121,7 @@ export const colmyUserGroup = [
name: 'website', label_trans: 'reg.website', isadvanced_field: true, fieldtype: costanti.FieldType.link, name: 'website', label_trans: 'reg.website', isadvanced_field: true, fieldtype: costanti.FieldType.link,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist
}), }),
AddCol({
name: 'note', label_trans: 'reg.detailsPage', fieldtype: costanti.FieldType.html,
titlepopupedit: 'detailsPage', field_extra1: 'groupname', subfield_extra1: '',
}),
AddCol(ModifRec), AddCol(ModifRec),
AddCol(DeleteRec), AddCol(DeleteRec),
] ]
@@ -1499,24 +1508,6 @@ export const colmySkills = [
showonlyif_dipersona: true, showonlyif_dipersona: true,
numpag_carousel: 2, numpag_carousel: 2,
}), }),
AddCol({
name: 'pub_to_share',
label_trans: 'skill.pub_to_share',
fieldtype: costanti.FieldType.select,
jointable: 'pub_to_share',
icon: 'fas fa-users',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
numpag_carousel: 2,
}),
AddCol({
name: 'groupname',
label_trans: 'proj.gruppo',
foredit: false,
tipovisu: costanti.TipoVisu.LINK,
fieldtype: costanti.FieldType.username_chip,
link: '/mygrp/groupname',
noshowlabel: true,
}),
AddCol({ AddCol({
name: 'descr', name: 'descr',
label_trans: 'proj.shortdescr', label_trans: 'proj.shortdescr',
@@ -1528,6 +1519,16 @@ export const colmySkills = [
sortable: false, sortable: false,
numpag_carousel: 3, numpag_carousel: 3,
}), }),
AddCol({
name: 'photos',
label_trans: 'skill.photos',
fieldtype: costanti.FieldType.listimages,
jointable: '',
showpicprofile_ifnotset: true,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView,
isadvanced_field: false,
numpag_carousel: 6,
}),
AddCol({ AddCol({
name: 'note', label_trans: 'proj.descrapprof', fieldtype: costanti.FieldType.html, name: 'note', label_trans: 'proj.descrapprof', fieldtype: costanti.FieldType.html,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist, showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
@@ -1575,14 +1576,30 @@ export const colmySkills = [
numpag_carousel: 5, numpag_carousel: 5,
}), }),
AddCol({ AddCol({
name: 'photos', name: '',
label_trans: 'skill.photos', fieldtype: costanti.FieldType.separator,
fieldtype: costanti.FieldType.listimages, required: false,
jointable: '', showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit,
showpicprofile_ifnotset: true, visible: false,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView, }),
AddCol({
name: 'groupname',
label_trans: 'proj.gruppo',
foredit: false,
tipovisu: costanti.TipoVisu.LINK,
fieldtype: costanti.FieldType.username_chip,
link: '/mygrp/groupname',
noshowlabel: true,
}),
AddCol({
name: 'pub_to_share',
label_trans: 'skill.pub_to_share',
fieldtype: costanti.FieldType.select,
jointable: 'pub_to_share',
icon: 'fas fa-users',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
numpag_carousel: 2,
isadvanced_field: true, isadvanced_field: true,
numpag_carousel: 6,
}), }),
AddCol({ AddCol({
name: 'website', label_trans: 'reg.website', isadvanced_field: true, fieldtype: costanti.FieldType.link, name: 'website', label_trans: 'reg.website', isadvanced_field: true, fieldtype: costanti.FieldType.link,
@@ -4762,7 +4779,7 @@ export const fieldsTable = {
}, },
{ {
value: 'mygroups', value: 'mygroups',
label: 'Gruppi', label: 'Organizzazioni',
columns: colmyUserGroup, columns: colmyUserGroup,
colkey: 'groupname', colkey: 'groupname',
collabel: 'groupname', collabel: 'groupname',

View File

@@ -6972,6 +6972,17 @@ export const tools = {
}, },
iCanShowAnnunci(grp: IMyGroup) {
if (grp && grp.visibility!.includes(shared_consts.Visibility_Group.HIDDEN)) {
// Only if I am part of this group
return this.iAmPartOfThisGroup(grp)
}
return true
},
iAmTheCreatorOfTheGroup(groupname: string) { iAmTheCreatorOfTheGroup(groupname: string) {
const userStore = useUserStore() const userStore = useUserStore()
@@ -7012,10 +7023,10 @@ export const tools = {
}, },
isUserAdminGroup(groupname: string, username: string) { isUserAdminGroup(groupname: string, username: string, real?: boolean) {
const userStore = useUserStore() const userStore = useUserStore()
if (userStore.my.username === username && userStore.isAdmin) { if (!real && (userStore.my.username === username && userStore.isAdmin)) {
return true return true
} }
let risultato = false let risultato = false
@@ -7081,10 +7092,10 @@ export const tools = {
}, },
isUserAdminCircuit(name: string, username: string) { isUserAdminCircuit(name: string, username: string, real?: boolean) {
const userStore = useUserStore() const userStore = useUserStore()
if (userStore.my.username === username && userStore.isAdmin) { if (!real && (userStore.my.username === username && userStore.isAdmin)) {
return true return true
} }
@@ -7498,6 +7509,9 @@ export const tools = {
// return true // return true
if (shared_consts.TABLES_WITH_ADMINS.includes(tablesel)) { if (shared_consts.TABLES_WITH_ADMINS.includes(tablesel)) {
if (userStore.isAdmin)
return true
// is Admin ? // is Admin ?
if (rec.admins) { if (rec.admins) {
const trovato = rec.admins.find((myuser: any) => myuser.username === userStore.my.username) const trovato = rec.admins.find((myuser: any) => myuser.username === userStore.my.username)
@@ -7505,6 +7519,8 @@ export const tools = {
return !!trovato return !!trovato
} }
} }
} }
if (rec.hasOwnProperty('userId')) { if (rec.hasOwnProperty('userId')) {

View File

@@ -487,7 +487,11 @@ export default defineComponent({
} }
function numAdmins() { function numAdmins() {
return (circuit.value && circuit.value.admins) ? circuit.value.admins.length : 0 let quanti = (circuit.value && circuit.value.admins) ? circuit.value.admins.length : 0
if (quanti === 0)
quanti = 1
return quanti
} }
function listaAdmins() { function listaAdmins() {

View File

@@ -205,6 +205,7 @@
icon="fas fa-users" icon="fas fa-users"
></q-tab> ></q-tab>
<q-tab <q-tab
v-if="tools.iCanShowAnnunci(mygrp)"
:label="t('profile.annunci')" :label="t('profile.annunci')"
name="annunci" name="annunci"
icon="fas fa-pencil-alt" icon="fas fa-pencil-alt"
@@ -222,40 +223,43 @@
<q-tab-panels v-model="tabgrp" animated keep-alive> <q-tab-panels v-model="tabgrp" animated keep-alive>
<q-tab-panel name="info"> <q-tab-panel name="info">
<q-card v-if="mygrp.title">
<q-card-section>
<div class="col-12 text-h7">
<span v-if="checkifShow('descr')">{{ mygrp.descr }}</span>
</div>
<div class="col-6 q-ma-xs">
<q-btn
v-if="getLinkGrpTelegram()"
icon="fab fa-telegram"
color="blue"
type="a"
size="md"
rounded
:label="$t('msgs.telegrammsg')"
:href="getLinkGrpTelegram()"
target="__blank"
></q-btn>
</div>
<div class="col-6 q-ma-xs">
<q-btn
v-if="getLinkWebSite()"
icon="fas fa-globe"
color="blue"
type="a"
size="md"
rounded
:label="$t('reg.website')"
:href="getLinkWebSite()"
target="__blank"
></q-btn>
</div>
</q-card-section>
</q-card>
<div> <div>
<q-card> <q-card>
<q-card-section> <q-card-section>
<div class="text-h6">{{ t('groups.info') }}</div>
</q-card-section>
<q-separator />
<q-card-section>
<div class="element">
<q-icon name="fas fa-lightbulb"></q-icon>
{{
$t('shared.createdby', {
username: mygrp.createdBy,
date: tools.getstrDateYY(mygrp.date_created),
})
}}
</div>
<div
v-if="
!!mygrp.date_updated &&
tools.getstrshortDate(mygrp.date_updated) !==
tools.getstrshortDate(mygrp.createdBy)
"
class="element"
>
<q-icon name="fas fa-pencil-alt"></q-icon>
{{
$t('shared.lastmodify', {
date: tools.getstrDateYY(mygrp.date_updated),
})
}}
</div>
<div <div
v-if=" v-if="
mygrp.visibility.includes( mygrp.visibility.includes(
@@ -291,21 +295,28 @@
{{ $t('groups.hidden_descr') }} {{ $t('groups.hidden_descr') }}
</div> </div>
</div> </div>
<div v-if="cities.length > 0" class="row">
<div class="q-pa-xs">
<q-icon name="fas fa-map-marker-alt"></q-icon>
</div>
<div>
<div class="title_param">
<div v-for="(city, index) of cities" :key="index">
{{ city.comune }} ({{ city.prov }})
</div>
</div>
</div>
</div>
<div class="members"> <div class="members">
{{ $t('products.category') }}
<q-item>
<q-item-section>
<q-item-label class="full-width">
<div
v-for="(rec, ind) of mygrp.recCatGrp"
:key="ind"
>
<q-chip
dense
class="text-center shadow-5 glossy chipmodif text-white"
:style="`background-color: ${rec.color};`"
>
<q-icon :name="rec.icon" left />
{{ rec.descr }}</q-chip
>
</div>
</q-item-label>
</q-item-section>
</q-item>
<q-icon name="fas fa-users"></q-icon> <q-icon name="fas fa-users"></q-icon>
{{ numUsers() }} {{ numUsers() }}
{{ {{
@@ -323,6 +334,7 @@
: t('shared.admins') : t('shared.admins')
}} }}
</div> </div>
<div v-for="(user, index) of mygrp.admins" :key="index"> <div v-for="(user, index) of mygrp.admins" :key="index">
<CMyUser <CMyUser
:mycontact="user" :mycontact="user"
@@ -330,53 +342,51 @@
@setCmd="tools.setCmd" @setCmd="tools.setCmd"
></CMyUser> ></CMyUser>
</div> </div>
<div v-if="cities.length > 0" class="row">
<div class="q-pa-xs">
<q-icon name="fas fa-map-marker-alt"></q-icon>
</div>
<div>
<div class="title_param">
<div v-for="(city, index) of cities" :key="index">
{{ city.comune }} ({{ city.prov }})
</div>
</div>
</div>
</div>
<div class="element">
<q-icon name="fas fa-lightbulb"></q-icon>
{{
$t('shared.createdby', {
username: mygrp.createdBy,
date: tools.getstrDateYY(mygrp.date_created),
})
}}
</div>
<div
v-if="
!!mygrp.date_updated &&
tools.getstrshortDate(mygrp.date_updated) !==
tools.getstrshortDate(mygrp.createdBy)
"
class="element"
>
<q-icon name="fas fa-pencil-alt"></q-icon>
{{
$t('shared.lastmodify', {
date: tools.getstrDateYY(mygrp.date_updated),
})
}}
</div>
</q-card-section> </q-card-section>
</q-card> </q-card>
<br /> <br />
</div> </div>
<q-card v-if="mygrp.title">
<q-card-section>
<div class="text-h6">Descrizione:</div>
</q-card-section>
<q-separator />
<q-card-section>
<div class="col-12 text-h7">
<span v-if="checkifShow('descr')">{{ mygrp.descr }}</span>
</div>
<div class="col-6 q-ma-xs">
<q-btn
v-if="getLinkGrpTelegram()"
icon="fab fa-telegram"
color="blue"
type="a"
size="md"
rounded
:label="$t('msgs.telegrammsg')"
:href="getLinkGrpTelegram()"
target="__blank"
></q-btn>
</div>
<div class="col-6 q-ma-xs">
<q-btn
v-if="getLinkWebSite()"
icon="fas fa-globe"
color="blue"
type="a"
size="md"
rounded
:label="$t('reg.website')"
:href="getLinkWebSite()"
target="__blank"
></q-btn>
</div>
</q-card-section>
</q-card>
<q-card v-if="mygrp.note"> <q-card v-if="mygrp.note">
<q-card-section> <q-card-section>
<div class="text-h6">Pagina:</div> <div class="text-h7">Pagina:</div>
</q-card-section> </q-card-section>
<q-separator /> <q-separator />

View File

@@ -20,6 +20,8 @@
:ind="tools.getIndMainCardsByTable(shared_consts.TABLES_MYGROUPS)" :ind="tools.getIndMainCardsByTable(shared_consts.TABLES_MYGROUPS)"
:table="shared_consts.TABLES_MYGROUPS" :table="shared_consts.TABLES_MYGROUPS"
:showFilterPersonal="true" :showFilterPersonal="true"
:showBarSelection="false"
:labelBtnAddExtra="`Aggiungi ` + $t('mypages.group')"
/> />
<!-- <!--

View File

@@ -232,7 +232,7 @@
> >
<q-icon name="fas fa-comment"></q-icon> Da Contattare <q-icon name="fas fa-comment"></q-icon> Da Contattare
</div> </div>
<div <!--<div
v-if=" v-if="
userStore.userprofile && userStore.userprofile &&
tools.isBitActive( tools.isBitActive(
@@ -249,7 +249,7 @@
> >
Facilitatore RISO Facilitatore RISO
</q-chip> </q-chip>
</div> </div>-->
<div <div
v-if=" v-if="
userStore.userprofile && userStore.userprofile &&