- fix quantità corretta sulla email e dimensione dell'immagine

This commit is contained in:
Surya Paolo
2024-04-11 17:12:29 +02:00
parent bff31b5fd4
commit c2b6e6edfa
65 changed files with 184 additions and 3592563 deletions

View File

@@ -1,6 +1,6 @@
APP_VERSION="1.0.34" APP_VERSION="1.0.34"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="17"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"
DIRECTORY_SERVER="freeplanet_serverside" DIRECTORY_SERVER="freeplanet_serverside"
SERVERDIR_WEBSITE="" SERVERDIR_WEBSITE=""
@@ -12,7 +12,7 @@ LANG_DEFAULT="it"
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF" PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T" MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
MONGODB_HOST="https://localhost:3000" MONGODB_HOST="https://localhost:3000"
LOGO_REG='riso-logo-full.png' LOGO_REG='piuchebuono-logo-full.png'
TEST_NAME="Paolo" TEST_NAME="Paolo"
TEST_SURNAME="Arena" TEST_SURNAME="Arena"
TEST_EMAIL="" TEST_EMAIL=""

View File

@@ -1 +1 @@
TERMINA DI LAVORARE SU piuchebuono.app: (Sovrascrivo !) TERMINA DI LAVORARE SU riso.app: (Sovrascrivo !)

View File

@@ -1,8 +1,8 @@
{ {
"name": "riso", "name": "piuchebuono",
"version": "0.6.1", "version": "2.0.1",
"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": "PiuCheBuono",
"productName": "Riso", "productName": "PiuCheBuono",
"author": "Paolo Arena", "author": "Paolo Arena",
"private": true, "private": true,
"keywords": [], "keywords": [],
@@ -43,6 +43,7 @@
"bcryptjs": "^2.4.3", "bcryptjs": "^2.4.3",
"chart.js": "^4.4.2", "chart.js": "^4.4.2",
"core-js": "^3.36.1", "core-js": "^3.36.1",
"crypto": "^1.0.1",
"crypto-browserify": "^3.12.0", "crypto-browserify": "^3.12.0",
"date-fns": "^3.6.0", "date-fns": "^3.6.0",
"dotenv": "^16.4.5", "dotenv": "^16.4.5",

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

BIN
public/images/foto1.jpg Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 87 KiB

BIN
public/images/foto2.jpg Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 140 KiB

BIN
public/images/foto3.jpg Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 618 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

BIN
public/images/noi4.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 634 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 279 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

View File

@@ -68,7 +68,6 @@ module.exports = configure((ctx) => ({
views: path.resolve(__dirname, 'src/views/index.ts'), views: path.resolve(__dirname, 'src/views/index.ts'),
icons: path.resolve(__dirname, 'src/assets/icons'), icons: path.resolve(__dirname, 'src/assets/icons'),
images: path.resolve(__dirname, 'src/assets/images'), images: path.resolve(__dirname, 'src/assets/images'),
maps: path.resolve(__dirname, 'src/public/maps'),
classes: path.resolve(__dirname, 'src/classes/index.ts'), classes: path.resolve(__dirname, 'src/classes/index.ts'),
fonts: path.resolve(__dirname, 'src/assets/fonts'), fonts: path.resolve(__dirname, 'src/assets/fonts'),
utils: path.resolve(__dirname, 'src/utils/index.ts'), utils: path.resolve(__dirname, 'src/utils/index.ts'),
@@ -95,6 +94,7 @@ module.exports = configure((ctx) => ({
transpileDependencies: [ transpileDependencies: [
/quasar-ui-qcalendar[\\/]src/ /quasar-ui-qcalendar[\\/]src/
], ],
devtool: 'source-map',
chainWebpack(chain, { isServer, isClient }) { chainWebpack(chain, { isServer, isClient }) {
chain.resolve.alias chain.resolve.alias
@@ -108,7 +108,6 @@ module.exports = configure((ctx) => ({
.set('@css', path.resolve(__dirname, 'src/public/css/variables.scss')) .set('@css', path.resolve(__dirname, 'src/public/css/variables.scss'))
.set('@icons', path.resolve(__dirname, 'src/public/icons/*')) .set('@icons', path.resolve(__dirname, 'src/public/icons/*'))
.set('@images', path.resolve(__dirname, 'src/public/images/*')) .set('@images', path.resolve(__dirname, 'src/public/images/*'))
.set('@maps', path.resolve(__dirname, 'src/public/maps/*'))
.set('@classes', path.resolve(__dirname, 'src/classes/index.ts')) .set('@classes', path.resolve(__dirname, 'src/classes/index.ts'))
.set('@utils', path.resolve(__dirname, 'src/utils/index.ts')) .set('@utils', path.resolve(__dirname, 'src/utils/index.ts'))
.set('@utils', path.resolve(__dirname, 'src/utils/*')) .set('@utils', path.resolve(__dirname, 'src/utils/*'))
@@ -149,9 +148,8 @@ module.exports = configure((ctx) => ({
}, },
devServer: { devServer: {
https: false, https: false,
port: 8084, port: 8088,
open: false, // opens browser window automatically open: false, // opens browser window automatically
hot: false, // Disable hot module replacement
headers: { headers: {
'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': '*', 'Access-Control-Allow-Headers': '*',
@@ -297,8 +295,8 @@ module.exports = configure((ctx) => ({
workboxPluginMode: 'InjectManifest', // 'GenerateSW' or 'InjectManifest' workboxPluginMode: 'InjectManifest', // 'GenerateSW' or 'InjectManifest'
workboxOptions: {}, // only for GenerateSW workboxOptions: {}, // only for GenerateSW
extendGenerateSWOptions(cfg) { extendGenerateSWOptions(cfg) {
cfg.skipWaiting = false cfg.skipWaiting = true
cfg.clientsClaim = false cfg.clientsClaim = true
}, },
// for the custom service worker ONLY (/src-pwa/custom-service-worker.[js|ts]) // for the custom service worker ONLY (/src-pwa/custom-service-worker.[js|ts])
// if using workbox in InjectManifest mode // if using workbox in InjectManifest mode
@@ -308,9 +306,9 @@ module.exports = configure((ctx) => ({
}, },
manifest: { manifest: {
name: 'Riso', name: 'Più che Buono',
short_name: 'Riso', short_name: 'PiuCheBuono',
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: 'PiuCheBuono è un GAS e Bottega',
display: 'standalone', display: 'standalone',
orientation: 'portrait', orientation: 'portrait',
background_color: '#fff', background_color: '#fff',
@@ -320,54 +318,54 @@ module.exports = configure((ctx) => ({
start_url: "/?homescreen=1", start_url: "/?homescreen=1",
icons: [ icons: [
{ {
src: 'images/riso-android-icon-512x512.png', src: 'images/pcb-android-icon-512x512.png',
sizes: '512x512', sizes: '512x512',
type: 'image/png', type: 'image/png',
}, },
{ {
src: 'images/riso-android-icon-384x384.png', src: 'images/pcb-android-icon-384x384.png',
sizes: '384x384', sizes: '384x384',
type: 'image/png', type: 'image/png',
}, },
{ {
src: 'images/riso-android-icon-192x192.png', src: 'images/pcb-android-icon-192x192.png',
sizes: '192x192', sizes: '192x192',
type: 'image/png', type: 'image/png',
}, },
{ {
src: 'images/riso-android-icon-144x144.png', src: 'images/pcb-android-icon-144x144.png',
sizes: '144x144', sizes: '144x144',
type: 'image/png', type: 'image/png',
}, },
{ {
src: 'images/riso-android-icon-96x96.png', src: 'images/pcb-android-icon-96x96.png',
sizes: '96x96', sizes: '96x96',
type: 'image/png', type: 'image/png',
}, },
{ {
src: 'images/riso-apple-icon-120x120.png', src: 'images/pcb-apple-icon-120x120.png',
sizes: '120x120', sizes: '120x120',
type: 'image/png', type: 'image/png',
}, },
{ {
src: 'images/riso-apple-icon-144x144.png', src: 'images/pcb-apple-icon-144x144.png',
sizes: '144x144', sizes: '144x144',
type: 'image/png', type: 'image/png',
}, },
{ {
src: 'images/riso-apple-icon-152x152.png', src: 'images/pcb-apple-icon-152x152.png',
sizes: '152x152', sizes: '152x152',
type: 'image/png', type: 'image/png',
}, },
{ {
src: 'images/riso-apple-icon-180x180.png', src: 'images/pcb-apple-icon-180x180.png',
sizes: '180x180', sizes: '180x180',
type: 'image/png', type: 'image/png',
}, },
], ],
related_applications: [{ related_applications: [{
"platform": "webapp", "platform": "webapp",
"url": "https://www.riso.app/manifest.json" "url": "https://www.piuchebuono.app/manifest.json"
}] }]
}, },
}, },
@@ -402,7 +400,7 @@ module.exports = configure((ctx) => ({
builder: { builder: {
// https://www.electron.build/configuration/configuration // https://www.electron.build/configuration/configuration
appId: 'Riso', appId: 'PiuCheBuono',
}, },
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain

View File

@@ -8,6 +8,8 @@ const msg_website_enUs = {
products: { products: {
quantity: 'Quantità', quantity: 'Quantità',
quantityAvailable: 'Disponibili', quantityAvailable: 'Disponibili',
stockQty: 'In Magazzino',
stockBloccatiQty: 'Bloccati In Magazzino',
weight: 'Peso', weight: 'Peso',
stars: 'Voto', stars: 'Voto',
color: 'Colore', color: 'Colore',
@@ -36,6 +38,7 @@ const msg_website_enUs = {
productslist: 'Lista Prodotti', productslist: 'Lista Prodotti',
collabora: 'Collabora', collabora: 'Collabora',
storehouses: 'Magazzino', storehouses: 'Magazzino',
providers: 'Fornitori',
departments: 'Uffici', departments: 'Uffici',
orders: 'Ordini Ricevuti', orders: 'Ordini Ricevuti',
orders2: 'Ordini Ricevuti', orders2: 'Ordini Ricevuti',

View File

@@ -8,6 +8,7 @@ const msg_website_es = {
products: { products: {
quantity: 'Quantità', quantity: 'Quantità',
quantityAvailable: 'Disponibili', quantityAvailable: 'Disponibili',
stockQty: 'In Magazzino',
weight: 'Peso', weight: 'Peso',
stars: 'Voto', stars: 'Voto',
color: 'Colore', color: 'Colore',

View File

@@ -1,9 +1,9 @@
const msg_website_it = { const msg_website_it = {
ws: { ws: {
sitename: 'Riso', sitename: 'Più che Buono',
siteshortname: 'RISO', siteshortname: 'Più che Buono',
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: '',
keywords: 'riso, piattaforma di scambio, rete italiana scambio orizzontale, riso app, riso piattaforma, scambio e baratto, momenta RIS', keywords: '',
}, },
hours: { hours: {
descr: 'Descrizione', descr: 'Descrizione',
@@ -16,23 +16,35 @@ const msg_website_it = {
pages: { pages: {
home: 'Home', home: 'Home',
profile: 'Profilo', profile: 'Profilo',
install_site: 'Installa Sito',
profile2: 'ProfiloU', profile2: 'ProfiloU',
mypage2: 'mypage2', mypage2: 'mypage2',
myservice2: 'myservice2', myservice2: 'myservice2',
myhosps2: 'myhosps2', myhosps2: 'myhosps2',
mygood2: 'mygood2', mygood2: 'mygood2',
catalogo: 'Catalogo',
fundraising: 'Sostieni il Progetto', fundraising: 'Sostieni il Progetto',
notifs: 'Configura le Notifiche', notifs: 'Configura le Notifiche',
unsubscribe: 'Disiscriviti', unsubscribe: 'Disiscriviti',
unsubscribe_user: 'Disiscriviti User',
test: 'Test', test: 'Test',
projects: 'Progetti', projects: 'Progetti',
report: 'Report Ore', report: 'Report Ore',
producer: 'Produttore', producer: 'Produttore',
orderinfo: 'Ordini Effettuati', orderinfo: 'Ordini Effettuati',
products: 'Prodotti', products: 'Prodotti',
cash: 'Cassa',
productInfos: 'Info Prodotti',
listinoprodotti: 'Listino Prodotti',
productslist: 'Lista Prodotti', productslist: 'Lista Prodotti',
collabora: 'Collabora', collabora: 'Collabora',
categories: 'Categorie',
storehouses: 'Magazzino', storehouses: 'Magazzino',
providers: 'Fornitori',
catprods: 'Categorie',
subcatprods: 'Sotto-Categorie',
gasordine: 'Gas Ordine',
scontisticas: 'Scontistica',
departments: 'Uffici', departments: 'Uffici',
orders: 'Ordini Ricevuti', orders: 'Ordini Ricevuti',
orders2: 'Ordini Ricevuti', orders2: 'Ordini Ricevuti',
@@ -121,9 +133,11 @@ 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: 'Riso', myAppName: 'Più che Buono',
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito', myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
underconstruction: 'App in costruzione...', underconstruction: 'App in costruzione...',
myDescriz: '', myDescriz: '',

View File

@@ -7,30 +7,6 @@ import {
import { func } from '@store/Modules/fieldsTable' import { func } from '@store/Modules/fieldsTable'
// const SHOW_PROJINTHEMENU = false
//
// let arrlistafavourite = []
// let arrlistaprojtutti = []
// let arrlistaprojmiei = []
// if (SHOW_PROJINTHEMENU) {
// arrlistaprojtutti = Projects.getters.listaprojects(RouteNames.projectsall)
// arrlistaprojmiei = Projects.getters.listaprojects(RouteNames.myprojects)
// arrlistafavourite = Projects.getters.listaprojects(RouteNames.favouriteprojects)
// }
// PROGETTI -> FAVORITI :
// if (arrlistafavourite.length > 0) {
// arrMenu.push({
// icon: 'favorite_border',
// nametranslate: 'pages.' + RouteNames.favouriteprojects,
// urlroute: RouteNames.favouriteprojects,
// level_parent: 0.0,
// level_child: 0.5,
// routes2: arrlistafavourite,
// idelem: ''
// })
// }
const firstPage = { const firstPage = {
active: true, active: true,
order: 5, order: 5,
@@ -57,72 +33,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
inmenu: true, inmenu: true,
infooter: true, infooter: true,
}, },
{ /*{
active: true,
order: 400,
path: '/test',
materialIcon: 'fas fa-test',
name: 'mypages.test',
component: () => import('@/views/testServer/testServer.vue'),
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: '/provapao',
materialIcon: 'fas fa-house-user',
name: 'mypages.provapao',
component: () => import('@/root/provapao/provapao.vue'),
meta: { requiresAuth: true },
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,
path: '/circuits',
materialIcon: 'fas fa-coins',
name: 'mypages.circuits',
component: () => import('@/views/user/mycircuits/mycircuits.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true, active: true,
order: 20, order: 20,
path: '/events', path: '/events',
@@ -132,6 +43,17 @@ function getDynamicPages(site: ISites): IListRoutes[] {
meta: { requiresAuth: true }, meta: { requiresAuth: true },
inmenu: true, inmenu: true,
infooter: true, infooter: true,
},*/
{
active: site.confpages && site.confpages.showProfile,
order: 120,
path: '/myprofile',
materialIcon: 'fas fa-user',
name: 'pages.profile',
component: () => import('@/views/user/myprofile/myprofile.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
}, },
{ {
active: true, active: true,
@@ -145,18 +67,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
infooter: false, infooter: false,
}, },
{ {
active: true, active: site.confpages && site.confpages.showProfile,
order: 120,
path: '/myprofile',
materialIcon: 'fas fa-user',
name: 'pages.profile',
component: () => import('@/views/user/myprofile/myprofile.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 120, order: 120,
path: '/editprofile', path: '/editprofile',
materialIcon: 'fas fa-user', materialIcon: 'fas fa-user',
@@ -167,7 +78,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
infooter: false, infooter: false,
}, },
{ {
active: true, active: site.confpages && site.confpages.showiscrittiMenu,
order: 130, order: 130,
path: '/friends', path: '/friends',
materialIcon: 'fas fa-user-friends', materialIcon: 'fas fa-user-friends',
@@ -177,6 +88,19 @@ function getDynamicPages(site: ISites): IListRoutes[] {
inmenu: true, inmenu: true,
infooter: true, infooter: true,
}, },
{
active: site.confpages && site.confpages.enableCircuits,
order: 16,
path: '/circuits',
materialIcon: 'fas fa-coins',
name: 'mypages.circuits',
component: () => import('@/views/user/mycircuits/mycircuits.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
onlyAdmin: true,
onlyManager: true,
},
{ {
active: site.confpages && site.confpages.enableGroups, active: site.confpages && site.confpages.enableGroups,
order: 132, order: 132,
@@ -187,6 +111,8 @@ function getDynamicPages(site: ISites): IListRoutes[] {
meta: { requiresAuth: true }, meta: { requiresAuth: true },
inmenu: true, inmenu: true,
infooter: false, infooter: false,
onlyAdmin: true,
onlyManager: true,
}, },
{ {
active: true, active: true,

View File

@@ -1763,7 +1763,7 @@ const msg_it = {
update_TotalPrice: 'Aggiorna Totale', update_TotalPrice: 'Aggiorna Totale',
TotalPriceProduct: 'Prezzo Totale', TotalPriceProduct: 'Prezzo Totale',
order_confirm: 'Conferma Ordini (aggiorna Qta magazzino)', order_confirm: 'Conferma Ordini (aggiorna Qta magazzino)',
check_invia_email: 'Invia le email', check_invia_email: 'Abilita l\'Invio delle email (📩)',
}, },
cash: { cash: {
creatorUserId: 'Creatore', creatorUserId: 'Creatore',

View File

@@ -94,7 +94,7 @@ export const Api = {
try { try {
const userStore = useUserStore() const userStore = useUserStore()
console.log('refreshToken') // console.log('refreshToken')
const refrTok = localStorage.getItem(toolsext.localStorage.refreshToken) const refrTok = localStorage.getItem(toolsext.localStorage.refreshToken)
let response = null let response = null
if (refrTok && refrTok !== 'undefined') { if (refrTok && refrTok !== 'undefined') {
@@ -108,7 +108,7 @@ export const Api = {
// Reset the refresh token if it was reset by the server // Reset the refresh token if it was reset by the server
if (response.data.refreshToken) { if (response.data.refreshToken) {
console.log('salva refreshtoken', response.data.refreshToken) // console.log('salva refreshtoken', response.data.refreshToken)
userStore.setRefreshToken(response.data.refreshToken) userStore.setRefreshToken(response.data.refreshToken)
} }
@@ -187,7 +187,7 @@ export const Api = {
}, 1000) }, 1000)
if (error.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_TOKEN_EXPIRED) { if (error.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_TOKEN_EXPIRED) {
console.log('Token Expired') // console.log('Token Expired')
// Prova ad ottenere un nuovo token di accesso // Prova ad ottenere un nuovo token di accesso
try { try {
// Se il token è scaduto, allora faccio la richiesta di un NUOVO TOKEN, passandogli refreshToken // Se il token è scaduto, allora faccio la richiesta di un NUOVO TOKEN, passandogli refreshToken

View File

@@ -1252,7 +1252,7 @@ export const useUserStore = defineStore('UserStore', {
setRefreshToken(refreshToken: string) { setRefreshToken(refreshToken: string) {
this.refreshToken = refreshToken this.refreshToken = refreshToken
localStorage.setItem(toolsext.localStorage.refreshToken, refreshToken) localStorage.setItem(toolsext.localStorage.refreshToken, refreshToken)
console.log('setRefreshToken', refreshToken) // console.log('setRefreshToken', refreshToken)
}, },
setAuth(x_auth_token: string, refreshToken: string) { setAuth(x_auth_token: string, refreshToken: string) {

View File

@@ -1801,7 +1801,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
return Api.SendReq('/site/load', 'POST', paramquery) return Api.SendReq('/site/load', 'POST', paramquery)
.then((res) => { .then((res) => {
console.log('datastat', res) // console.log('datastat', res)
this.datastat = res.data.datastat this.datastat = res.data.datastat
return this.datastat return this.datastat
}).catch((error) => { }).catch((error) => {

View File

@@ -674,6 +674,14 @@
></q-btn> ></q-btn>
<br /> <br />
</div> </div>
<div class="row">
<q-btn
label="Svuota Tutti Gli Accessi Online Con Token"
color="negative"
@click="EseguiFunz('SvuotaTuttiGliAccessiOnlineConToken')"
></q-btn>
<br />
</div>
<div class="row"> <div class="row">
<q-btn <q-btn
label="Aggiorna Coordinate Provincia" label="Aggiorna Coordinate Provincia"

View File

@@ -18,26 +18,20 @@
> >
<template v-slot:tutti> <template v-slot:tutti>
<div class="row items-center no-wrap"> <div class="row items-center no-wrap">
<div class="text-center"> <div class="text-center">{{ t('gas.tutti') }}</div>
{{ t('gas.tutti') }}
</div>
<q-icon right name="fas fa-user-friends" /> <q-icon right name="fas fa-user-friends" />
</div> </div>
</template> </template>
<template v-slot:gas> <template v-slot:gas>
<div class="row items-center no-wrap"> <div class="row items-center no-wrap">
<div class="text-center"> <div class="text-center">{{ t('gas.ordina_sul_gas') }}</div>
{{ t('gas.ordina_sul_gas') }}
</div>
<q-icon right name="fas fa-user-friends" /> <q-icon right name="fas fa-user-friends" />
</div> </div>
</template> </template>
<template v-slot:bottega> <template v-slot:bottega>
<div class="row items-center no-wrap"> <div class="row items-center no-wrap">
<div class="text-center"> <div class="text-center">{{ t('gas.bottega') }}</div>
{{ t('gas.bottega') }}
</div>
<q-icon right name="fas fa-store" /> <q-icon right name="fas fa-store" />
</div> </div>
</template> </template>
@@ -45,6 +39,17 @@
</div> </div>
<div v-if="endload" class="panel"> <div v-if="endload" class="panel">
<div>
<q-toggle
v-if="tools.isManager()"
v-model="check_send_email"
color="blue"
class="row q-mx-md"
icon="fas fa-envelope"
:label="$t('orderscart.check_invia_email')"
></q-toggle>
</div>
<q-tabs v-model="taborders" inline-label class="text-blue"> <q-tabs v-model="taborders" inline-label class="text-blue">
<span v-for="(stat, index) of shared_consts.OrderStat" :key="index"> <span v-for="(stat, index) of shared_consts.OrderStat" :key="index">
<q-tab <q-tab
@@ -65,8 +70,7 @@
:label="t('products.gasordine') + `:`" :label="t('products.gasordine') + `:`"
emit-value emit-value
map-options map-options
> ></q-select>
</q-select>
<div class="q-pa-sm"> <div class="q-pa-sm">
<q-table <q-table
@@ -87,27 +91,21 @@
<q-item-label>{{ col.label }}</q-item-label> <q-item-label>{{ col.label }}</q-item-label>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-item-label v-if="col.name === 'created_at'" caption
>{{ tools.getstrDateTime(col.value) }}
</q-item-label>
<q-item-label <q-item-label
v-else-if="col.name === 'nameSurname'" v-if="col.name === 'created_at'"
caption caption
> >{{ tools.getstrDateTime(col.value) }}</q-item-label>
<q-item-label v-else-if="col.name === 'nameSurname'" caption>
<span v-if="props.row.user"> <span v-if="props.row.user">
<span <span
:class=" :class="
props.row.user.name !== 'TOTALI' ? '' : 'totali' props.row.user.name !== 'TOTALI' ? '' : 'totali'
" "
>{{ tools.getNomeUtenteByRecUser(props.row.user) }} >{{ tools.getNomeUtenteByRecUser(props.row.user) }}</span>
</span></span </span>
>
</q-item-label> </q-item-label>
<q-item-label v-else-if="col.name === 'items'" caption> <q-item-label v-else-if="col.name === 'items'" caption>
<div <div v-for="(item, index) of props.row.items" :key="index">
v-for="(item, index) of props.row.items"
:key="index"
>
<div <div
v-if=" v-if="
!!item && !!item &&
@@ -119,25 +117,23 @@
{{ productStore.getStrInfoOrder(t, item.order) }} {{ productStore.getStrInfoOrder(t, item.order) }}
{{ item.order.product.productInfo.name }} ({{ {{ item.order.product.productInfo.name }} ({{
productStore.getQuantityByOrder(t, item.order) productStore.getQuantityByOrder(t, item.order)
}})<br /> }})
<br />
</div> </div>
</div> </div>
</q-item-label> </q-item-label>
<q-item-label <q-item-label
v-else-if="col.name === 'totalPrice'" v-else-if="col.name === 'totalPrice'"
caption caption
> >{{ props.row.totalPrice }} €</q-item-label>
{{ props.row.totalPrice }} €
</q-item-label>
<q-item-label <q-item-label
v-else-if="col.name === 'totalPriceCalc'" v-else-if="col.name === 'totalPriceCalc'"
caption caption
> >{{ props.row.totalPriceCalc }} €</q-item-label>
{{ props.row.totalPriceCalc }} € <q-item-label
</q-item-label> v-else-if="col.name === 'status'"
<q-item-label v-else-if="col.name === 'status'" caption> caption
{{ shared_consts.getStatusStr(props.row.status) }} >{{ shared_consts.getStatusStr(props.row.status) }}</q-item-label>
</q-item-label>
<q-item-label v-else-if="col.name === 'comandi'" caption> <q-item-label v-else-if="col.name === 'comandi'" caption>
<div <div
v-if=" v-if="
@@ -171,11 +167,7 @@
@click="clickFunz(props.row, cmd.value)" @click="clickFunz(props.row, cmd.value)"
> >
<q-item-section avatar> <q-item-section avatar>
<q-avatar <q-avatar :icon="cmd.icon" :color="cmd.color" text-color="white" />
:icon="cmd.icon"
:color="cmd.color"
text-color="white"
/>
</q-item-section> </q-item-section>
<q-item-section> <q-item-section>
<q-item-label>{{ cmd.label }}</q-item-label> <q-item-label>{{ cmd.label }}</q-item-label>
@@ -186,10 +178,7 @@
</div> </div>
</q-item-label> </q-item-label>
<q-item-label <q-item-label v-else-if="col.name === 'apri' && props.row._id" caption>
v-else-if="col.name === 'apri' && props.row._id"
caption
>
<div class="q-pa-sm"> <div class="q-pa-sm">
<q-btn <q-btn
size="sm" size="sm"
@@ -200,9 +189,11 @@
></q-btn> ></q-btn>
</div> </div>
</q-item-label> </q-item-label>
<q-item-label v-else caption>{{ <q-item-label v-else caption>
col.value {{
}}</q-item-label> col.value
}}
</q-item-label>
</q-item-section> </q-item-section>
</q-item> </q-item>
</q-list> </q-list>
@@ -212,9 +203,7 @@
<template v-else v-slot:body="props"> <template v-else v-slot:body="props">
<q-tr :props="props"> <q-tr :props="props">
<q-td key="ind" :props="props"> <q-td key="ind" :props="props">
<div class="q-pa-sm"> <div class="q-pa-sm">{{ index }}</div>
{{ index }}
</div>
</q-td> </q-td>
<q-td key="apri" :props="props"> <q-td key="apri" :props="props">
<div class="q-pa-sm"> <div class="q-pa-sm">
@@ -230,10 +219,7 @@
</div> </div>
</q-td> </q-td>
<q-td key="comandi" :props="props"> <q-td key="comandi" :props="props">
<div <div v-if="tools.isManager() && props.row.user.name !== 'TOTALI'" class="q-pa-sm">
v-if="tools.isManager() && props.row.user.name !== 'TOTALI'"
class="q-pa-sm"
>
<q-btn <q-btn
v-if=" v-if="
taborders === shared_consts.OrderStat.CONFERMATI.value taborders === shared_consts.OrderStat.CONFERMATI.value
@@ -257,11 +243,7 @@
@click="clickFunz(props.row, cmd.value)" @click="clickFunz(props.row, cmd.value)"
> >
<q-item-section avatar> <q-item-section avatar>
<q-avatar <q-avatar :icon="cmd.icon" :color="cmd.color" text-color="white" />
:icon="cmd.icon"
:color="cmd.color"
text-color="white"
/>
</q-item-section> </q-item-section>
<q-item-section> <q-item-section>
<q-item-label>{{ cmd.label }}</q-item-label> <q-item-label>{{ cmd.label }}</q-item-label>
@@ -272,23 +254,24 @@
</div> </div>
</q-td> </q-td>
<q-td key="numorder" :props="props"> <q-td key="numorder" :props="props">
<span v-if="props.row.numorder"> <span v-if="props.row.numorder">&nbsp; n. {{ props.row.numorder }}</span>
&nbsp; n. {{ props.row.numorder }}</span
>
</q-td> </q-td>
<q-td key="nameSurname" :props="props"> <q-td key="nameSurname" :props="props">
<span v-if="props.row.user"> <span v-if="props.row.user">
<span <span
:class="props.row.user.name !== 'TOTALI' ? '' : 'totali'" :class="props.row.user.name !== 'TOTALI' ? '' : 'totali'"
>{{ tools.getNomeUtenteByRecUser(props.row.user) }} >{{ tools.getNomeUtenteByRecUser(props.row.user) }}</span>
</span></span </span>
>
</q-td> </q-td>
<q-td key="created_at" :props="props"> <q-td key="created_at" :props="props">
{{ tools.getstrDateTime(props.row.created_at) }} {{ tools.getstrDateTime(props.row.created_at) }}
<span v-if="taborders === shared_consts.OrderStat.COMPLETATI"> <span
<br />Consegnato il:<br />{{ v-if="taborders === shared_consts.OrderStat.COMPLETATI"
tools.getstrDateTime(props.row.date_consegnato) >
<br />Consegnato il:
<br />
{{
tools.getstrDateTime(props.row.date_consegnato)
}} }}
</span> </span>
</q-td> </q-td>
@@ -302,55 +285,72 @@
" "
> >
{{ item.order.product.productInfo.name }} ({{ {{ item.order.product.productInfo.name }} ({{
productStore.getQuantityByOrder($t, item.order) productStore.getQuantityByOrder($t, item.order)
}})<br /> }})
<br />
</div> </div>
</div> </div>
<div v-if="props.row.note" class="note"> <div v-if="props.row.note" class="note">Note: {{ props.row.note }}</div>
Note: {{ props.row.note }} <div
</div> v-if="props.row.note_per_gestore"
<div v-if="props.row.note_per_gestore" class="note"> class="note"
Note per Gestore: {{ props.row.note_per_gestore }} >Note per Gestore: {{ props.row.note_per_gestore }}</div>
</div> <div
<div v-if="props.row.note_per_admin" class="note"> v-if="props.row.note_per_admin"
Note per Admin: {{ props.row.note_per_admin }} class="note"
</div> >Note per Admin: {{ props.row.note_per_admin }}</div>
</q-td> </q-td>
<q-td key="totalPrice" :props="props"> <q-td key="totalPrice" :props="props">
<span :class="props.row.user.name !== 'TOTALI' ? '' : 'totali'" <span
>{{ props.row.totalPrice }} €</span :class="props.row.user.name !== 'TOTALI' ? '' : 'totali'"
> >{{ props.row.totalPrice }} €</span>
</q-td> </q-td>
<q-td key="status" :props="props"> <q-td key="status" :props="props">
<span :class="props.row.status">{{ <span :class="props.row.status">
{{
shared_consts.getStatusStr(props.row.status) shared_consts.getStatusStr(props.row.status)
}}</span> }}
</span>
<br /> <br />
<div v-if="props.row.confermato" class="ordstat"> <div v-if="props.row.confermato" class="ordstat">
{{ tools.getstrDateTime(props.row.date_confermato) }}: {{ tools.getstrDateTime(props.row.date_confermato) }}:
<span class="ordstat confermato">{{ <span
class="ordstat confermato"
>
{{
$t('ecomm.confermato') $t('ecomm.confermato')
}}</span> }}
</span>
</div> </div>
<div v-if="props.row.pagato" class="ordstat"> <div v-if="props.row.pagato" class="ordstat">
{{ tools.getstrDateTime(props.row.date_pagato) }}: {{ tools.getstrDateTime(props.row.date_pagato) }}:
<span class="ordstat">{{ $t('ecomm.pagato') }}</span> <span
class="ordstat"
>{{ $t('ecomm.pagato') }}</span>
</div> </div>
<div v-if="props.row.consegnato" class="ordstat"> <div v-if="props.row.consegnato" class="ordstat">
{{ tools.getstrDateTime(props.row.date_consegnato) }}: {{ tools.getstrDateTime(props.row.date_consegnato) }}:
<span class="ordstat">{{ $t('ecomm.consegnato') }}</span> <span
class="ordstat"
>{{ $t('ecomm.consegnato') }}</span>
</div> </div>
<div v-if="props.row.preparato" class="ordstat"> <div v-if="props.row.preparato" class="ordstat">
{{ tools.getstrDateTime(props.row.date_preparato) }}: {{ tools.getstrDateTime(props.row.date_preparato) }}:
<span class="ordstat">{{ $t('ecomm.preparato') }}</span> <span
class="ordstat"
>{{ $t('ecomm.preparato') }}</span>
</div> </div>
<div v-if="props.row.spedito"> <div v-if="props.row.spedito">
{{ tools.getstrDateTime(props.row.date_spedito) }}: {{ tools.getstrDateTime(props.row.date_spedito) }}:
<span class="ordstat">{{ $t('ecomm.spedito') }}</span> <span
class="ordstat"
>{{ $t('ecomm.spedito') }}</span>
</div> </div>
<div v-if="props.row.ricevuto"> <div v-if="props.row.ricevuto">
{{ tools.getstrDateTime(props.row.date_ricevuto) }}: {{ tools.getstrDateTime(props.row.date_ricevuto) }}:
<span class="ordstat">{{ $t('ecomm.ricevuto') }}</span> <span
class="ordstat"
>{{ $t('ecomm.ricevuto') }}</span>
</div> </div>
</q-td> </q-td>
</q-tr> </q-tr>
@@ -366,18 +366,6 @@
" "
class="q-ma-sm q-pa-sm row justify-center" class="q-ma-sm q-pa-sm row justify-center"
> >
<div>
<q-toggle
v-if="tools.isManager()"
v-model="check_send_email"
color="blue"
class="row q-mx-md"
icon="fas fa-envelope"
:label="$t('orderscart.check_invia_email')"
>
</q-toggle>
</div>
<q-btn <q-btn
color="positive" color="positive"
icon="mail" icon="mail"
@@ -401,15 +389,13 @@
label="Scegli il tipo di Email:" label="Scegli il tipo di Email:"
emit-value emit-value
map-options map-options
> ></q-select>
</q-select>
<CMyFieldDb <CMyFieldDb
title="Email di Test" title="Email di Test"
mykey="EMAIL_TEST" mykey="EMAIL_TEST"
:serv="true" :serv="true"
:type="costanti.FieldType.string" :type="costanti.FieldType.string"
> ></CMyFieldDb>
</CMyFieldDb>
<q-btn <q-btn
color="primary" color="primary"
icon="fas fa-check" icon="fas fa-check"
@@ -462,5 +448,5 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import './orderInfo'; @import "./orderInfo";
</style> </style>