- fixed quantità
- creazione mappa numero utenti per provincia !
@@ -1,6 +1,6 @@
|
||||
APP_VERSION="1.0.21"
|
||||
APP_VERSION="1.0.31"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="17"
|
||||
APP_ID="13"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
DIRECTORY_SERVER="freeplanet_serverside"
|
||||
SERVERDIR_WEBSITE=""
|
||||
@@ -12,7 +12,7 @@ LANG_DEFAULT="it"
|
||||
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
|
||||
MONGODB_HOST="https://localhost:3000"
|
||||
LOGO_REG='piuchebuono-logo-full.png'
|
||||
LOGO_REG='riso-logo-full.png'
|
||||
TEST_NAME="Paolo"
|
||||
TEST_SURNAME="Arena"
|
||||
TEST_EMAIL=""
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.30"
|
||||
APP_VERSION="1.0.31"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="13"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.30"
|
||||
APP_VERSION="1.0.31"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="17"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.30"
|
||||
APP_VERSION="1.0.31"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="17"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.30"
|
||||
APP_VERSION="1.0.31"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="13"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.30"
|
||||
APP_VERSION="1.0.31"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="13"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.30"
|
||||
APP_VERSION="1.0.31"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="15"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.30"
|
||||
APP_VERSION="1.0.31"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="15"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.30"
|
||||
APP_VERSION="1.0.31"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="13"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.21"
|
||||
APP_VERSION="1.0.31"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="17"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.30"
|
||||
APP_VERSION="1.0.31"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="13"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -295,8 +295,8 @@ module.exports = configure((ctx) => ({
|
||||
workboxPluginMode: 'InjectManifest', // 'GenerateSW' or 'InjectManifest'
|
||||
workboxOptions: {}, // only for GenerateSW
|
||||
extendGenerateSWOptions(cfg) {
|
||||
cfg.skipWaiting = false
|
||||
cfg.clientsClaim = false
|
||||
cfg.skipWaiting = true
|
||||
cfg.clientsClaim = true
|
||||
},
|
||||
// for the custom service worker ONLY (/src-pwa/custom-service-worker.[js|ts])
|
||||
// if using workbox in InjectManifest mode
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.30"
|
||||
APP_VERSION="1.0.31"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="13"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.30"
|
||||
APP_VERSION="1.0.31"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="13"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.30"
|
||||
APP_VERSION="1.0.31"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="16"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.30"
|
||||
APP_VERSION="1.0.31"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="14"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
|
||||
2
now.txt
@@ -1 +1 @@
|
||||
TERMINA DI LAVORARE SU riso.app: (Sovrascrivo !)
|
||||
TERMINA DI LAVORARE SU piuchebuono.app: (Sovrascrivo !)
|
||||
|
||||
17
package.json
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"name": "piuchebuono",
|
||||
"version": "2.0.1",
|
||||
"description": "PiuCheBuono",
|
||||
"productName": "PiuCheBuono",
|
||||
"name": "riso",
|
||||
"version": "0.6.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.",
|
||||
"productName": "Riso",
|
||||
"author": "Paolo Arena",
|
||||
"private": true,
|
||||
"keywords": [],
|
||||
@@ -25,8 +25,7 @@
|
||||
"dependencies": {
|
||||
"@cubejs-client/core": "^0.31.0",
|
||||
"@quasar/extras": "^1.16.9",
|
||||
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.16",
|
||||
"@vue-leaflet/vue-leaflet": "^0.10.1",
|
||||
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.19",
|
||||
"@vue/compat": "^3.3.9",
|
||||
"@vue/compiler-sfc": "^3.3.9",
|
||||
"@vue/eslint-config-standard": "7.0.0",
|
||||
@@ -50,6 +49,7 @@
|
||||
"jquery": "^3.7.1",
|
||||
"js-cookie": "^3.0.5",
|
||||
"leaflet": "^1.9.4",
|
||||
"leaflet.markercluster": "^1.5.3",
|
||||
"localforage": "^1.10.0",
|
||||
"lodash": "^4.17.21",
|
||||
"normalize.css": "^8.0.1",
|
||||
@@ -57,7 +57,7 @@
|
||||
"nprogress": "^0.2.0",
|
||||
"pinia": "^2.1.7",
|
||||
"prerender-spa-plugin": "^3.4.0",
|
||||
"quasar": "^2.12.07",
|
||||
"quasar": "^2.15.1",
|
||||
"quasar-extras": "^2.0.9",
|
||||
"register-service-worker": "^1.7.2",
|
||||
"typescript-eslint": "^0.0.1-alpha.0",
|
||||
@@ -68,6 +68,7 @@
|
||||
"vue-echarts": "^6.6.1",
|
||||
"vue-i18n": "^9.8.0",
|
||||
"vue-idb": "^0.2.0",
|
||||
"vue-image-zoomer": "^2.2.3",
|
||||
"vue-loader": "^17.3.1",
|
||||
"vue-property-decorator": "^10.0.0-rc.3",
|
||||
"vue-router": "^4.2.5",
|
||||
@@ -81,7 +82,7 @@
|
||||
"vuex-router-sync": "^6.0.0-rc.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@quasar/app": "^3.3.3",
|
||||
"@quasar/app-webpack": "^3.12.4",
|
||||
"@types/bcryptjs": "^2.4.6",
|
||||
"@types/dotenv": "^8.2.0",
|
||||
"@types/googlemaps": "^3.43.3",
|
||||
|
||||
BIN
public/images/ferrara.jpg
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
public/images/foto1.jpg
Normal file → Executable file
|
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 12 KiB |
BIN
public/images/foto2.jpg
Normal file → Executable file
|
Before Width: | Height: | Size: 140 KiB After Width: | Height: | Size: 12 KiB |
BIN
public/images/foto3.jpg
Normal file → Executable file
|
Before Width: | Height: | Size: 165 KiB After Width: | Height: | Size: 12 KiB |
BIN
public/images/icon.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 92 KiB |
BIN
public/images/marker-shadow.png
Normal file
|
After Width: | Height: | Size: 618 B |
|
Before Width: | Height: | Size: 2.2 MiB |
|
Before Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 311 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 63 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 63 KiB |
|
Before Width: | Height: | Size: 163 KiB |
|
Before Width: | Height: | Size: 142 KiB |
BIN
public/images/riso-android-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
public/images/riso-android-icon-192x192.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
public/images/riso-android-icon-36x36.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
public/images/riso-android-icon-384x384.png
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
public/images/riso-android-icon-48x48.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
public/images/riso-android-icon-512x512.png
Normal file
|
After Width: | Height: | Size: 185 KiB |
BIN
public/images/riso-android-icon-72x72.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
public/images/riso-android-icon-96x96.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
public/images/riso-apple-icon-114x114.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
public/images/riso-apple-icon-120x120.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
public/images/riso-apple-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
public/images/riso-apple-icon-152x152.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
public/images/riso-apple-icon-180x180.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
public/images/riso-apple-icon-57x57.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
public/images/riso-apple-icon-60x60.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
public/images/riso-apple-icon-72x72.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
public/images/riso-apple-icon-76x76.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/images/riso-apple-icon.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
public/images/riso-logo-full.png
Normal file
|
After Width: | Height: | Size: 634 KiB |
BIN
public/images/riso_home.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
public/images/riso_home_dark.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
public/images/riso_services.png
Normal file
|
After Width: | Height: | Size: 124 KiB |
@@ -94,7 +94,6 @@ module.exports = configure((ctx) => ({
|
||||
transpileDependencies: [
|
||||
/quasar-ui-qcalendar[\\/]src/
|
||||
],
|
||||
devtool: 'source-map',
|
||||
|
||||
chainWebpack(chain, { isServer, isClient }) {
|
||||
chain.resolve.alias
|
||||
@@ -148,8 +147,9 @@ module.exports = configure((ctx) => ({
|
||||
},
|
||||
devServer: {
|
||||
https: false,
|
||||
port: 8088,
|
||||
port: 8084,
|
||||
open: false, // opens browser window automatically
|
||||
hot: false, // Disable hot module replacement
|
||||
headers: {
|
||||
'Access-Control-Allow-Origin': '*',
|
||||
'Access-Control-Allow-Headers': '*',
|
||||
@@ -306,9 +306,9 @@ module.exports = configure((ctx) => ({
|
||||
},
|
||||
|
||||
manifest: {
|
||||
name: 'Più che Buono',
|
||||
short_name: 'PiuCheBuono',
|
||||
description: 'PiuCheBuono è un GAS e Bottega',
|
||||
name: 'Riso',
|
||||
short_name: 'Riso',
|
||||
description: 'Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.',
|
||||
display: 'standalone',
|
||||
orientation: 'portrait',
|
||||
background_color: '#fff',
|
||||
@@ -318,54 +318,54 @@ module.exports = configure((ctx) => ({
|
||||
start_url: "/?homescreen=1",
|
||||
icons: [
|
||||
{
|
||||
src: 'images/pcb-android-icon-512x512.png',
|
||||
src: 'images/riso-android-icon-512x512.png',
|
||||
sizes: '512x512',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/pcb-android-icon-384x384.png',
|
||||
src: 'images/riso-android-icon-384x384.png',
|
||||
sizes: '384x384',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/pcb-android-icon-192x192.png',
|
||||
src: 'images/riso-android-icon-192x192.png',
|
||||
sizes: '192x192',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/pcb-android-icon-144x144.png',
|
||||
src: 'images/riso-android-icon-144x144.png',
|
||||
sizes: '144x144',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/pcb-android-icon-96x96.png',
|
||||
src: 'images/riso-android-icon-96x96.png',
|
||||
sizes: '96x96',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/pcb-apple-icon-120x120.png',
|
||||
src: 'images/riso-apple-icon-120x120.png',
|
||||
sizes: '120x120',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/pcb-apple-icon-144x144.png',
|
||||
src: 'images/riso-apple-icon-144x144.png',
|
||||
sizes: '144x144',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/pcb-apple-icon-152x152.png',
|
||||
src: 'images/riso-apple-icon-152x152.png',
|
||||
sizes: '152x152',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/pcb-apple-icon-180x180.png',
|
||||
src: 'images/riso-apple-icon-180x180.png',
|
||||
sizes: '180x180',
|
||||
type: 'image/png',
|
||||
},
|
||||
],
|
||||
related_applications: [{
|
||||
"platform": "webapp",
|
||||
"url": "https://www.piuchebuono.app/manifest.json"
|
||||
"url": "https://www.riso.app/manifest.json"
|
||||
}]
|
||||
},
|
||||
},
|
||||
@@ -400,7 +400,7 @@ module.exports = configure((ctx) => ({
|
||||
builder: {
|
||||
// https://www.electron.build/configuration/configuration
|
||||
|
||||
appId: 'PiuCheBuono',
|
||||
appId: 'Riso',
|
||||
},
|
||||
|
||||
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
|
||||
|
||||
@@ -17,6 +17,16 @@ import { CacheableResponsePlugin } from 'workbox-cacheable-response'
|
||||
// Used to limit entries in cache, remove entries after a certain period of time
|
||||
import { ExpirationPlugin } from 'workbox-expiration'
|
||||
|
||||
const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
|
||||
|
||||
self.addEventListener('install', () => {
|
||||
self.skipWaiting();
|
||||
});
|
||||
|
||||
self.addEventListener('activate', (event) => {
|
||||
event.waitUntil(self.clients.claim());
|
||||
});
|
||||
|
||||
console.log(
|
||||
' [ VER-0.5.4 ] _---------________------ PAO: this is my custom service worker')
|
||||
|
||||
@@ -36,7 +46,7 @@ let port = 3000
|
||||
if (self.location.hostname.startsWith('test')) {
|
||||
port = 3001
|
||||
}
|
||||
console.log('SW- app ver 0.5.4')
|
||||
console.log('SW- app ver 1.0.21')
|
||||
|
||||
const cfgenv = {
|
||||
serverweb: `${self.location.protocol}//${self.location.hostname}:${port}`,
|
||||
@@ -46,22 +56,22 @@ const cfgenv = {
|
||||
|
||||
// console.log('serverweb', cfgenv.serverweb)
|
||||
|
||||
async function writeData (table, data) {
|
||||
async function writeData(table, data) {
|
||||
console.log('writeData', table, data);
|
||||
await idbKeyval.setdata(table, data)
|
||||
}
|
||||
|
||||
async function readAllData (table) {
|
||||
async function readAllData(table) {
|
||||
// console.log('readAllData', table);
|
||||
return idbKeyval.getalldata(table)
|
||||
}
|
||||
|
||||
async function clearAllData (table) {
|
||||
async function clearAllData(table) {
|
||||
// console.log('clearAllData', table);
|
||||
await idbKeyval.clearalldata(table)
|
||||
}
|
||||
|
||||
async function deleteItemFromData (table, id) {
|
||||
async function deleteItemFromData(table, id) {
|
||||
// console.log('deleteItemFromData', table, 'ID:', id);
|
||||
|
||||
await idbKeyval.deletedata(table, id)
|
||||
@@ -165,7 +175,7 @@ if (workbox) {
|
||||
|
||||
// console.log(' routing.registerRoute function declaration:')
|
||||
|
||||
function Execute_Fetch (table, args) {
|
||||
function Execute_Fetch(table, args) {
|
||||
console.log('Execute_Fetch registerRoute! ',
|
||||
`${cfgenv.serverweb}/${table}/`)
|
||||
// console.log('DATABODY:', args.event.request.body)
|
||||
@@ -255,21 +265,21 @@ if (workbox) {
|
||||
registerRoute(
|
||||
(routeData) => (routeData.event.request.headers.get('accept')
|
||||
.includes('text/html')), (args) => caches.match(args.event.request)
|
||||
.then((response) => {
|
||||
if (response) {
|
||||
return response
|
||||
}
|
||||
return fetch(args.event.request)
|
||||
.then((res) => caches.open('dynamic')
|
||||
.then((cache) => {
|
||||
console.log('fetch cache')
|
||||
console.log('cache', args.event.request.url)
|
||||
cache.put(args.event.request.url, res.clone())
|
||||
return res
|
||||
}))
|
||||
.catch((err) => caches.match('/offline')
|
||||
.then((res) => res))
|
||||
}),
|
||||
.then((response) => {
|
||||
if (response) {
|
||||
return response
|
||||
}
|
||||
return fetch(args.event.request)
|
||||
.then((res) => caches.open('dynamic')
|
||||
.then((cache) => {
|
||||
console.log('fetch cache')
|
||||
console.log('cache', args.event.request.url)
|
||||
cache.put(args.event.request.url, res.clone())
|
||||
return res
|
||||
}))
|
||||
.catch((err) => caches.match('/offline')
|
||||
.then((res) => res))
|
||||
}),
|
||||
)
|
||||
|
||||
registerRoute(
|
||||
@@ -420,7 +430,7 @@ self.addEventListener('message', event => {
|
||||
|
||||
addEventListener('fetch', event => {
|
||||
// Prevent the default, and handle the request ourselves.
|
||||
event.respondWith(async function() {
|
||||
event.respondWith(async function () {
|
||||
// Try to get the response from a cache.
|
||||
const cachedResponse = await caches.match(event.request);
|
||||
// Return it if we found one.
|
||||
@@ -439,7 +449,7 @@ self.addEventListener('fetch', function (event) {
|
||||
fetch(event.request, event.headers)
|
||||
.catch(err => {
|
||||
console.log('_______________________ ERRORE FETCH SW: ', event.request, err)
|
||||
writeData('config', {_id: 2, stateconn: 'offline'})
|
||||
writeData('config', { _id: 2, stateconn: 'offline' })
|
||||
return caches.match(event.request);
|
||||
})
|
||||
);
|
||||
@@ -523,7 +533,7 @@ self.addEventListener('sync', function (event) {
|
||||
}
|
||||
}
|
||||
})
|
||||
;
|
||||
;
|
||||
|
||||
/*
|
||||
|
||||
|
||||
@@ -160,6 +160,8 @@ export const shared_consts = {
|
||||
ECOMMERCE: 300,
|
||||
CATALOGO: 310,
|
||||
TOOLSAI: 320,
|
||||
MAPPA: 350,
|
||||
MAPPAUTENTI: 360,
|
||||
},
|
||||
|
||||
QUERYTYPE_MYGROUP: 1,
|
||||
@@ -1704,6 +1706,14 @@ export const shared_consts = {
|
||||
value: 310,
|
||||
label: 'CATALOGO',
|
||||
},
|
||||
{
|
||||
value: 350,
|
||||
label: 'MAPPA',
|
||||
},
|
||||
{
|
||||
value: 360,
|
||||
label: 'MAPPAUTENTI',
|
||||
},
|
||||
|
||||
],
|
||||
|
||||
|
||||
145
src/components/CMapUsers/CMapUsers.ts
Executable file
@@ -0,0 +1,145 @@
|
||||
import { tools } from '@store/Modules/tools'
|
||||
import { useQuasar } from 'quasar'
|
||||
import { PropType, defineComponent, onMounted, ref, computed } from 'vue'
|
||||
|
||||
import 'leaflet/dist/leaflet.css'
|
||||
import * as L from 'leaflet'
|
||||
import 'leaflet.markercluster/dist/MarkerCluster.css';
|
||||
import 'leaflet.markercluster/dist/MarkerCluster.Default.css';
|
||||
import "leaflet.markercluster";
|
||||
|
||||
import { useUserStore } from '@src/store/UserStore'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CMapUsers',
|
||||
setup(props, { emit }) {
|
||||
const $q = useQuasar()
|
||||
const userStore = useUserStore()
|
||||
|
||||
const iconWidth = ref(25)
|
||||
const iconHeight = ref(40)
|
||||
const map = ref(<any>null)
|
||||
const zoom = ref(6)
|
||||
const arrprovince = ref(<any>[])
|
||||
|
||||
const initialMap = ref(<any>null);
|
||||
|
||||
const myIcon = L.icon({
|
||||
iconUrl: 'images/icon.png',
|
||||
iconSize: [30, 30],
|
||||
iconAnchor: [22, 35],
|
||||
popupAnchor: [-6, -36],
|
||||
shadowUrl: 'images/marker-shadow.png',
|
||||
shadowSize: [60, 30],
|
||||
shadowAnchor: [22, 35]
|
||||
});
|
||||
|
||||
|
||||
function mywidth() {
|
||||
return tools.getwidth($q) - 20
|
||||
}
|
||||
|
||||
function myheight() {
|
||||
return $q.screen.height - 50
|
||||
}
|
||||
|
||||
const iconUrl = computed(() => {
|
||||
return `https://placekitten.com/${iconWidth.value}/${iconHeight.value}`;
|
||||
})
|
||||
|
||||
const iconSize = computed(() => {
|
||||
return [iconWidth.value, iconHeight.value];
|
||||
})
|
||||
|
||||
function changeIcon() {
|
||||
iconWidth.value += 2;
|
||||
if (iconWidth.value > iconHeight.value) {
|
||||
iconWidth.value = Math.floor(iconHeight.value / 2);
|
||||
}
|
||||
}
|
||||
|
||||
function getColor(d: any) {
|
||||
return d > 1000 ? '#800026' :
|
||||
d > 500 ? '#BD0026' :
|
||||
d > 200 ? '#E31A1C' :
|
||||
d > 100 ? '#FC4E2A' :
|
||||
d > 50 ? '#FD8D3C' :
|
||||
d > 20 ? '#FEB24C' :
|
||||
d > 10 ? '#FED976' :
|
||||
'#FFEDA0';
|
||||
}
|
||||
|
||||
function style(feature: any) {
|
||||
return {
|
||||
fillColor: getColor(feature.properties.density),
|
||||
weight: 2,
|
||||
opacity: 1,
|
||||
color: 'white',
|
||||
dashArray: '3',
|
||||
fillOpacity: 0.7
|
||||
};
|
||||
}
|
||||
|
||||
onMounted(async () => {
|
||||
// Ottengo la lista degli utenti con i lat e long
|
||||
arrprovince.value = await userStore.getProvincesForMap()
|
||||
|
||||
initialMap.value = L.map('map',
|
||||
{
|
||||
zoomControl: true, zoom: zoom.value, zoomAnimation: false,
|
||||
fadeAnimation: true, markerZoomAnimation: true,
|
||||
center: [42.71, 12.934],
|
||||
}
|
||||
);
|
||||
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
||||
maxZoom: 13,
|
||||
attribution: ''
|
||||
}).addTo(initialMap.value);
|
||||
|
||||
// @ts-ignore
|
||||
const markers = L.markerClusterGroup();
|
||||
|
||||
for (const provincia of arrprovince.value) {
|
||||
if (provincia.lat && provincia.long && provincia.userCount > 1) {
|
||||
// @ts-ignore
|
||||
let each_marker = new L.marker(
|
||||
[provincia.lat, provincia.long], { icon: myIcon })
|
||||
.bindPopup(`<strong> ${provincia.descr}:
|
||||
${provincia.userCount} utenti </strong>`);
|
||||
markers.addLayer(each_marker);
|
||||
}
|
||||
}
|
||||
|
||||
initialMap.value.addLayer(markers);
|
||||
|
||||
});
|
||||
|
||||
function log(str: string) {
|
||||
console.log(str)
|
||||
}
|
||||
|
||||
function getCoordinates(e: any) {
|
||||
// Ottieni la latitudine e la longitudine dal click
|
||||
const lat = e.latlng.lat
|
||||
const lng = e.latlng.lng
|
||||
|
||||
// Fai qualcosa con le coordinate, ad esempio stamparle in console
|
||||
console.log(`Latitudine: ${lat}, Longitudine: ${lng}`)
|
||||
}
|
||||
|
||||
return {
|
||||
mywidth,
|
||||
myheight,
|
||||
map,
|
||||
iconWidth,
|
||||
iconHeight,
|
||||
iconUrl,
|
||||
iconSize,
|
||||
changeIcon,
|
||||
zoom,
|
||||
log,
|
||||
getCoordinates,
|
||||
arrprovince,
|
||||
}
|
||||
}
|
||||
})
|
||||
44
src/components/CMapUsers/CMapUsers.vue
Executable file
@@ -0,0 +1,44 @@
|
||||
<template>
|
||||
<div>
|
||||
<div v-if="arrprovince" id="map" :style="`height:${myheight()}px; width:99%`">
|
||||
</div>
|
||||
|
||||
<!--
|
||||
<div :style="`height:${myheight()}px; width:99%`">
|
||||
<l-map
|
||||
v-model="zoom"
|
||||
v-model:zoom="zoom"
|
||||
:center="[42.71, 12.934]"
|
||||
@move="log('move')"
|
||||
@click="getCoordinates"
|
||||
>
|
||||
<l-tile-layer
|
||||
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
|
||||
></l-tile-layer>
|
||||
<l-control-layers />
|
||||
<span v-for="provincia in arrprovince" :key="provincia.nome">
|
||||
<l-marker-cluster :options="clusterOptions">
|
||||
<l-marker
|
||||
v-if="provincia.userCount > 0"
|
||||
:lat-lng="[provincia.lat, provincia.long]"
|
||||
>
|
||||
<l-popup
|
||||
>{{ provincia.descr }}:
|
||||
{{ provincia.userCount }} utenti</l-popup
|
||||
>
|
||||
</l-marker>
|
||||
</l-marker-cluster>
|
||||
</span>
|
||||
|
||||
</l-map>
|
||||
<button @click="changeIcon">New kitten icon</button>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" src="./CMapUsers.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './CMapUsers.scss';
|
||||
</style>
|
||||
1
src/components/CMapUsers/index.ts
Executable file
@@ -0,0 +1 @@
|
||||
export {default as CMapUsers} from './CMapUsers.vue'
|
||||
@@ -16,6 +16,8 @@ import { CMyActivities } from '@/components/CMyActivities'
|
||||
import { CECommerce } from '@/components/CECommerce'
|
||||
import { CAITools } from '@/components/CAITools'
|
||||
import { CCatalogo } from '@/components/CCatalogo'
|
||||
// import { CMapMarker } from '@src/components/CMapMarker.off'
|
||||
import { CMapUsers } from '@/components/CMapUsers'
|
||||
import { COpenStreetMap } from '@src/components/COpenStreetMap'
|
||||
import { CCardCarousel } from '@src/components/CCardCarousel'
|
||||
import { CMyPage } from '@src/components/CMyPage'
|
||||
@@ -57,6 +59,7 @@ export default defineComponent({
|
||||
CMyProfileTutorial, CSendRISTo,
|
||||
CTitleBanner, CShareSocial, CCheckAppRunning, CRegistration,
|
||||
CVisuVideoPromoAndPDF, CECommerce, CCatalogo, CAITools,
|
||||
CMapUsers, //CMapMarker,
|
||||
},
|
||||
emits: ['selElemClick'],
|
||||
props: {
|
||||
|
||||
@@ -557,6 +557,17 @@
|
||||
<div v-if="editOn" class="elemEdit">PRODOTTI CATALOGO:</div>
|
||||
<CCatalogo> </CCatalogo>
|
||||
</div>
|
||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.MAPPA">
|
||||
<div v-if="editOn" class="elemEdit">MAPPA:</div>
|
||||
<CMapMarker :coord_center="{lat: 47.41322, long: -1.219482}"
|
||||
|
||||
></CMapMarker>
|
||||
</div>
|
||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.MAPPAUTENTI">
|
||||
<div v-if="editOn" class="elemEdit">MAPPA UTENTI:</div>
|
||||
<CMapUsers
|
||||
></CMapUsers>
|
||||
</div>
|
||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.TOOLSAI">
|
||||
<div v-if="editOn" class="elemEdit">STRUMENTI AI:</div>
|
||||
<CAITools></CAITools>
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
import { tools } from '@store/Modules/tools'
|
||||
import { useQuasar } from 'quasar'
|
||||
import { PropType, defineComponent, onMounted } from 'vue'
|
||||
|
||||
import 'leaflet/dist/leaflet.css'
|
||||
import { LMap, LTileLayer } from '@vue-leaflet/vue-leaflet'
|
||||
import { ICoordinates } from '@src/model'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'COpenStreetMap',
|
||||
components: {
|
||||
LMap,
|
||||
LTileLayer,
|
||||
},
|
||||
props: {
|
||||
title: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
coordinates: {
|
||||
type: Object as PropType<ICoordinates | null>,
|
||||
required: false,
|
||||
default: null,
|
||||
},
|
||||
coord_big: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
urlmap: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
imgmap: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
zoom: {
|
||||
type: Number,
|
||||
required: false,
|
||||
default: 2,
|
||||
},
|
||||
},
|
||||
setup(props, { emit }) {
|
||||
const $q = useQuasar()
|
||||
|
||||
function mywidth() {
|
||||
return tools.getwidth($q) - 20
|
||||
}
|
||||
|
||||
function myheight() {
|
||||
return 450
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
|
||||
});
|
||||
|
||||
return {
|
||||
mywidth,
|
||||
myheight,
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1,19 +0,0 @@
|
||||
<template>
|
||||
<div>
|
||||
<div style="height:600px; width:100%">
|
||||
<l-map ref="map" v-model:zoom="zoom" :center="[47.41322, -1.219482]">
|
||||
<l-tile-layer
|
||||
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
|
||||
layer-type="base"
|
||||
name="OpenStreetMap"
|
||||
></l-tile-layer>
|
||||
</l-map>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" src="./COSM.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './COSM.scss';
|
||||
</style>
|
||||
@@ -1 +0,0 @@
|
||||
export {default as COSM} from './COSM.vue'
|
||||
@@ -380,7 +380,7 @@ export default defineComponent({
|
||||
|
||||
function getpercqtaraggiunta(): number {
|
||||
if (myproduct.value)
|
||||
return tools.calcperc((myproduct.value.bookedGASQtyOrdered + myproduct.value.bookableAvailableQty!) * myproduct.value.productInfo.weight!, myproduct.value.qtyToReachForGas) / 100
|
||||
return tools.calcperc((myproduct.value.bookableGASBloccatiQty + myproduct.value.QuantitaPrenotateInAttesa!) * myproduct.value.productInfo.weight!, myproduct.value.qtyToReachForGas * myproduct.value.productInfo.weight!) / 100
|
||||
else
|
||||
return 0
|
||||
}
|
||||
|
||||
@@ -505,7 +505,7 @@
|
||||
<q-item-label class="subtit_prod text-blue text-bold">
|
||||
<span v-if="getpercqtaraggiunta() >= 1">{{
|
||||
t('ecomm.offerta_gas_raggiunta', {
|
||||
qta: myproduct.qtyToReachForGas,
|
||||
qta: myproduct.qtyToReachForGas * myproduct.productInfo.weight,
|
||||
unit: tools.getUnitsMeasure(
|
||||
myproduct.productInfo.unit,
|
||||
true,
|
||||
@@ -515,7 +515,7 @@
|
||||
}}</span>
|
||||
<span v-else>{{
|
||||
t('ecomm.offerta_gas', {
|
||||
qta: myproduct.qtyToReachForGas,
|
||||
qta: myproduct.qtyToReachForGas * myproduct.productInfo.weight,
|
||||
unit: tools.getUnitsMeasure(
|
||||
myproduct.productInfo.unit,
|
||||
true,
|
||||
@@ -556,8 +556,8 @@
|
||||
<span class="prod_disp">
|
||||
{{
|
||||
t('ecomm.bookedGASQtyOrdered_str', {
|
||||
qta: (myproduct.bookedGASQtyOrdered + myproduct.bookableAvailableQty) * myproduct.productInfo.weight,
|
||||
qtatot: myproduct.qtyToReachForGas,
|
||||
qta: (myproduct.bookableGASBloccatiQty + myproduct.QuantitaPrenotateInAttesa) * myproduct.productInfo.weight,
|
||||
qtatot: myproduct.qtyToReachForGas * myproduct.productInfo.weight,
|
||||
})
|
||||
}}
|
||||
<q-linear-progress size="10px" :value="getpercqtaraggiunta()" />
|
||||
|
||||
@@ -8,8 +8,6 @@ const msg_website_enUs = {
|
||||
products: {
|
||||
quantity: 'Quantità',
|
||||
quantityAvailable: 'Disponibili',
|
||||
stockQty: 'In Magazzino',
|
||||
stockBloccatiQty: 'Bloccati In Magazzino',
|
||||
weight: 'Peso',
|
||||
stars: 'Voto',
|
||||
color: 'Colore',
|
||||
@@ -38,7 +36,6 @@ const msg_website_enUs = {
|
||||
productslist: 'Lista Prodotti',
|
||||
collabora: 'Collabora',
|
||||
storehouses: 'Magazzino',
|
||||
providers: 'Fornitori',
|
||||
departments: 'Uffici',
|
||||
orders: 'Ordini Ricevuti',
|
||||
orders2: 'Ordini Ricevuti',
|
||||
|
||||
@@ -8,7 +8,6 @@ const msg_website_es = {
|
||||
products: {
|
||||
quantity: 'Quantità',
|
||||
quantityAvailable: 'Disponibili',
|
||||
stockQty: 'In Magazzino',
|
||||
weight: 'Peso',
|
||||
stars: 'Voto',
|
||||
color: 'Colore',
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
const msg_website_it = {
|
||||
ws: {
|
||||
sitename: 'Più che Buono',
|
||||
siteshortname: 'Più che Buono',
|
||||
description: '',
|
||||
keywords: '',
|
||||
sitename: 'Riso',
|
||||
siteshortname: 'RISO',
|
||||
description: 'Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.',
|
||||
keywords: 'riso, piattaforma di scambio, rete italiana scambio orizzontale, riso app, riso piattaforma, scambio e baratto, momenta RIS',
|
||||
},
|
||||
hours: {
|
||||
descr: 'Descrizione',
|
||||
@@ -16,35 +16,23 @@ const msg_website_it = {
|
||||
pages: {
|
||||
home: 'Home',
|
||||
profile: 'Profilo',
|
||||
install_site: 'Installa Sito',
|
||||
profile2: 'ProfiloU',
|
||||
mypage2: 'mypage2',
|
||||
myservice2: 'myservice2',
|
||||
myhosps2: 'myhosps2',
|
||||
mygood2: 'mygood2',
|
||||
catalogo: 'Catalogo',
|
||||
fundraising: 'Sostieni il Progetto',
|
||||
notifs: 'Configura le Notifiche',
|
||||
unsubscribe: 'Disiscriviti',
|
||||
unsubscribe_user: 'Disiscriviti User',
|
||||
test: 'Test',
|
||||
projects: 'Progetti',
|
||||
report: 'Report Ore',
|
||||
producer: 'Produttore',
|
||||
orderinfo: 'Ordini Effettuati',
|
||||
products: 'Prodotti',
|
||||
cash: 'Cassa',
|
||||
productInfos: 'Info Prodotti',
|
||||
listinoprodotti: 'Listino Prodotti',
|
||||
productslist: 'Lista Prodotti',
|
||||
collabora: 'Collabora',
|
||||
categories: 'Categorie',
|
||||
storehouses: 'Magazzino',
|
||||
providers: 'Fornitori',
|
||||
catprods: 'Categorie',
|
||||
subcatprods: 'Sotto-Categorie',
|
||||
gasordine: 'Gas Ordine',
|
||||
scontisticas: 'Scontistica',
|
||||
departments: 'Uffici',
|
||||
orders: 'Ordini Ricevuti',
|
||||
orders2: 'Ordini Ricevuti',
|
||||
@@ -133,11 +121,9 @@ const msg_website_it = {
|
||||
only_residenti: 'Solo Residenti',
|
||||
only_consiglio: 'Solo Consiglieri',
|
||||
color: 'Colore',
|
||||
gasordini: 'Gas Ordini',
|
||||
gestoreordini: 'Gestore Ordini',
|
||||
},
|
||||
msg: {
|
||||
myAppName: 'Più che Buono',
|
||||
myAppName: 'Riso',
|
||||
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
|
||||
underconstruction: 'App in costruzione...',
|
||||
myDescriz: '',
|
||||
|
||||
@@ -7,6 +7,30 @@ import {
|
||||
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 = {
|
||||
active: true,
|
||||
order: 5,
|
||||
@@ -33,7 +57,72 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
inmenu: 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,
|
||||
order: 20,
|
||||
path: '/events',
|
||||
@@ -43,17 +132,6 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: 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,
|
||||
@@ -67,7 +145,18 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: site.confpages && site.confpages.showProfile,
|
||||
active: true,
|
||||
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,
|
||||
path: '/editprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
@@ -78,7 +167,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: site.confpages && site.confpages.showiscrittiMenu,
|
||||
active: true,
|
||||
order: 130,
|
||||
path: '/friends',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
@@ -88,19 +177,6 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
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,
|
||||
onlyAdmin: true,
|
||||
onlyManager: true,
|
||||
},
|
||||
{
|
||||
active: site.confpages && site.confpages.enableGroups,
|
||||
order: 132,
|
||||
@@ -111,8 +187,6 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: false,
|
||||
onlyAdmin: true,
|
||||
onlyManager: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
|
||||
@@ -618,7 +618,8 @@ export const colProvinces = [
|
||||
AddCol({ name: 'prov', label_trans: 'city.prov' }),
|
||||
AddCol({ name: 'card', label_trans: 'city.card' }),
|
||||
AddCol({ name: 'descr', label_trans: 'store.description' }),
|
||||
AddCol({ name: 'link_grp', label_trans: 'city.link_grp' }),
|
||||
AddCol({ name: 'lat', label_trans: 'city.lat' }),
|
||||
AddCol({ name: 'long', label_trans: 'city.long' }),
|
||||
AddCol(DeleteRec),
|
||||
AddCol(DuplicateRec),
|
||||
]
|
||||
|
||||
@@ -15,7 +15,7 @@ import {
|
||||
IColGridTable,
|
||||
ISignupIscrizioneConacreisOptions,
|
||||
ISignupIscrizioneArcadeiOptions,
|
||||
ISettings,
|
||||
ISettings,
|
||||
} from '@src/model'
|
||||
import { tools } from '@store/Modules/tools'
|
||||
import translate from '@src/globalroutines/util'
|
||||
@@ -1034,6 +1034,15 @@ export const useUserStore = defineStore('UserStore', {
|
||||
}
|
||||
},
|
||||
|
||||
async getProvincesForMap() {
|
||||
return Api.SendReq('/users/infomap', 'POST', null)
|
||||
.then((res) => {
|
||||
return res ? res.data.ris : []
|
||||
}).catch((error) => {
|
||||
return null
|
||||
})
|
||||
},
|
||||
|
||||
async newsletterload(force: boolean) {
|
||||
|
||||
const globalStore = useGlobalStore()
|
||||
|
||||
@@ -673,6 +673,14 @@
|
||||
@click="EseguiFunz('CorreggiTransazioniCircuiti')"
|
||||
></q-btn>
|
||||
<br />
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn
|
||||
label="Aggiorna Coordinate Provincia"
|
||||
color="positive"
|
||||
@click="EseguiFunz('UpdateCoordProv')"
|
||||
></q-btn>
|
||||
<br />
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
|
||||
82
yarn.lock
@@ -93,7 +93,7 @@
|
||||
lru-cache "^5.1.1"
|
||||
semver "^6.3.1"
|
||||
|
||||
"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.24.0":
|
||||
"@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.24.0":
|
||||
version "7.24.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz#fc7554141bdbfa2d17f7b4b80153b9b090e5d158"
|
||||
integrity sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==
|
||||
@@ -180,7 +180,7 @@
|
||||
dependencies:
|
||||
"@babel/types" "^7.22.5"
|
||||
|
||||
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
|
||||
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
|
||||
version "7.24.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz#945681931a52f15ce879fd5b86ce2dae6d3d7f2a"
|
||||
integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==
|
||||
@@ -295,14 +295,6 @@
|
||||
"@babel/helper-environment-visitor" "^7.22.20"
|
||||
"@babel/helper-plugin-utils" "^7.22.5"
|
||||
|
||||
"@babel/plugin-proposal-class-properties@^7.5.5":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3"
|
||||
integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==
|
||||
dependencies:
|
||||
"@babel/helper-create-class-features-plugin" "^7.18.6"
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-proposal-decorators@^7.4.4":
|
||||
version "7.24.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.0.tgz#845b42189e7441faa60a37682de1038eae97c382"
|
||||
@@ -312,14 +304,6 @@
|
||||
"@babel/helper-plugin-utils" "^7.24.0"
|
||||
"@babel/plugin-syntax-decorators" "^7.24.0"
|
||||
|
||||
"@babel/plugin-proposal-export-namespace-from@^7.2.0":
|
||||
version "7.18.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203"
|
||||
integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.9"
|
||||
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
|
||||
|
||||
"@babel/plugin-proposal-function-sent@^7.2.0":
|
||||
version "7.23.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-sent/-/plugin-proposal-function-sent-7.23.3.tgz#6b81145902030945edfd94aa263a9601b862f06f"
|
||||
@@ -329,22 +313,6 @@
|
||||
"@babel/helper-wrap-function" "^7.22.20"
|
||||
"@babel/plugin-syntax-function-sent" "^7.23.3"
|
||||
|
||||
"@babel/plugin-proposal-json-strings@^7.2.0":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b"
|
||||
integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
"@babel/plugin-syntax-json-strings" "^7.8.3"
|
||||
|
||||
"@babel/plugin-proposal-numeric-separator@^7.2.0":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75"
|
||||
integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
|
||||
|
||||
"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2":
|
||||
version "7.21.0-placeholder-for-preset-env.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703"
|
||||
@@ -2488,12 +2456,12 @@
|
||||
promise-limit "^2.5.0"
|
||||
puppeteer "^1.7.0"
|
||||
|
||||
"@quasar/app-webpack@^3.12.3":
|
||||
version "3.12.3"
|
||||
resolved "https://registry.yarnpkg.com/@quasar/app-webpack/-/app-webpack-3.12.3.tgz#ada30dd1e8a580b10c608e87a2d6ee273710f5c9"
|
||||
integrity sha512-9uFg087ztMLsYX7x0MAJvdQwdnDsWeGl1AKwhN3cfaCD0va9qzjgbj1xT9nf3k3Vr3pwLbKMJ6LDIT8zRTeFcQ==
|
||||
"@quasar/app-webpack@^3.12.4":
|
||||
version "3.12.4"
|
||||
resolved "https://registry.yarnpkg.com/@quasar/app-webpack/-/app-webpack-3.12.4.tgz#d58afbb58df6d4275c6cdabcc8d45d85bf87393e"
|
||||
integrity sha512-5KYq5Va19bfRJaNH4fXvwIYfMvukDVw1SX9RGlDWG/YZEwnxuQAIELs0MqwRJBc7VfiswOzAa8EjpzygXMAlEQ==
|
||||
dependencies:
|
||||
"@quasar/babel-preset-app" "2.0.2"
|
||||
"@quasar/babel-preset-app" "^2.0.3"
|
||||
"@quasar/render-ssr-error" "^1.0.3"
|
||||
"@quasar/ssr-helpers" "2.2.2"
|
||||
"@types/chrome" "^0.0.208"
|
||||
@@ -2555,23 +2523,23 @@
|
||||
webpack-merge "5.8.0"
|
||||
webpack-node-externals "3.0.0"
|
||||
|
||||
"@quasar/babel-preset-app@2.0.2":
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@quasar/babel-preset-app/-/babel-preset-app-2.0.2.tgz#0ba6c7600c0f0d4b65305361eaf9da27420bb5cc"
|
||||
integrity sha512-2mM4d3F53vSLwgqEoRqN2imgiEjQTO1rPrfwmo3uBvM+rJRFc4TUOqZrbIoGhKSIb4V+PTvWeFDl4pgej8eHoA==
|
||||
"@quasar/babel-preset-app@^2.0.3":
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@quasar/babel-preset-app/-/babel-preset-app-2.0.3.tgz#7f821e17eac7fdeee48e44e56eb01e848f369ec7"
|
||||
integrity sha512-PYvVXU/TBwF1JU+nEKw8VTsbNi4mdhu7l+l9HIqfY0XZGWbDQLOGjBR8TO6A8dn5SUoilvRh85TG3ZQV01VCBQ==
|
||||
dependencies:
|
||||
"@babel/core" "^7.12.0"
|
||||
"@babel/helper-compilation-targets" "^7.9.6"
|
||||
"@babel/helper-module-imports" "^7.8.3"
|
||||
"@babel/plugin-proposal-class-properties" "^7.5.5"
|
||||
"@babel/plugin-proposal-decorators" "^7.4.4"
|
||||
"@babel/plugin-proposal-export-namespace-from" "^7.2.0"
|
||||
"@babel/plugin-proposal-function-sent" "^7.2.0"
|
||||
"@babel/plugin-proposal-json-strings" "^7.2.0"
|
||||
"@babel/plugin-proposal-numeric-separator" "^7.2.0"
|
||||
"@babel/plugin-proposal-throw-expressions" "^7.2.0"
|
||||
"@babel/plugin-syntax-dynamic-import" "^7.2.0"
|
||||
"@babel/plugin-syntax-import-meta" "^7.2.0"
|
||||
"@babel/plugin-transform-class-properties" "^7.23.3"
|
||||
"@babel/plugin-transform-export-namespace-from" "^7.23.4"
|
||||
"@babel/plugin-transform-json-strings" "^7.23.4"
|
||||
"@babel/plugin-transform-numeric-separator" "^7.23.4"
|
||||
"@babel/plugin-transform-runtime" "^7.9.0"
|
||||
"@babel/preset-env" "^7.9.0"
|
||||
"@babel/runtime" "^7.9.0"
|
||||
@@ -3377,13 +3345,6 @@
|
||||
resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
|
||||
integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
|
||||
|
||||
"@vue-leaflet/vue-leaflet@^0.10.1":
|
||||
version "0.10.1"
|
||||
resolved "https://registry.yarnpkg.com/@vue-leaflet/vue-leaflet/-/vue-leaflet-0.10.1.tgz#17330515629d500ac113009a49f8cf98d140e8cc"
|
||||
integrity sha512-RNEDk8TbnwrJl8ujdbKgZRFygLCxd0aBcWLQ05q/pGv4+d0jamE3KXQgQBqGAteE1mbQsk3xoNcqqUgaIGfWVg==
|
||||
dependencies:
|
||||
vue "^3.2.25"
|
||||
|
||||
"@vue/compat@^3.3.9":
|
||||
version "3.4.21"
|
||||
resolved "https://registry.yarnpkg.com/@vue/compat/-/compat-3.4.21.tgz#c15ac3f90eb30c2a0e4fc28251f8590f57a2280a"
|
||||
@@ -8847,6 +8808,11 @@ lazystream@^1.0.0:
|
||||
dependencies:
|
||||
readable-stream "^2.0.5"
|
||||
|
||||
leaflet.markercluster@^1.5.3:
|
||||
version "1.5.3"
|
||||
resolved "https://registry.yarnpkg.com/leaflet.markercluster/-/leaflet.markercluster-1.5.3.tgz#9cdb52a4eab92671832e1ef9899669e80efc4056"
|
||||
integrity sha512-vPTw/Bndq7eQHjLBVlWpnGeLa3t+3zGiuM7fJwCkiMFq+nmRuG3RI3f7f4N4TDX7T4NpbAXpR2+NTRSEGfCSeA==
|
||||
|
||||
leaflet@^1.9.4:
|
||||
version "1.9.4"
|
||||
resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.9.4.tgz#23fae724e282fa25745aff82ca4d394748db7d8d"
|
||||
@@ -11569,10 +11535,10 @@ quasar-extras@^2.0.9:
|
||||
resolved "https://registry.yarnpkg.com/quasar-extras/-/quasar-extras-2.0.9.tgz#f3274f8cd8e054a76d0b52a2410ccf0cdfb197fd"
|
||||
integrity sha512-ifwaaop0GNuxlcD7Ams0X3f7S49es+2NlR/fI4YAMAOW70ZxTkD4QkAFsVhk7dNPcpPodSOTKAWDOPaO+MqsBg==
|
||||
|
||||
quasar@^2.12.07:
|
||||
version "2.14.5"
|
||||
resolved "https://registry.yarnpkg.com/quasar/-/quasar-2.14.5.tgz#49b593801bedf72b549ed639717043bab704e417"
|
||||
integrity sha512-N+iRYoby09P9l+R5nKfA0tCPXdXJJHCPifjP8CkL/JASX5yHEjuwh7KoNiWzYLZPbsYXVuQKqwtDy0qXuXTv2g==
|
||||
quasar@^2.15.1:
|
||||
version "2.15.1"
|
||||
resolved "https://registry.yarnpkg.com/quasar/-/quasar-2.15.1.tgz#558bdaf7352e292b8adf89d4bd0e85a07a226a2a"
|
||||
integrity sha512-YONHT5i+znZ/4msKZXdODv+DAUnLhe6/c3d+q9vuUkwLbSdGkroc2GeDCI52YVmmw8hrF+Fiik/ZSr1wynxHIA==
|
||||
|
||||
query-string@^4.1.0:
|
||||
version "4.3.4"
|
||||
|
||||