- Aggiunto le Statistiche di visualizzazione delle pagine.
- Aggiunto il componente per visualizzare le statistiche
@@ -1,13 +1,12 @@
|
|||||||
VITE_MONGODB_HOST="https://localhost:3000"
|
VITE_APP_ID="18"
|
||||||
VITE_PUBLICKEY_PUSH='BDncvMiUZmjaCG2Kr1V9N0_33hOG-AuNSbHSvL24y2dzBiUjAxKm02emx5SeJvz2IGmtRf6YqCgopeQwCwUmZw8'
|
|
||||||
VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
|
|
||||||
VITE_VUE_APP_ISTEST="1"
|
|
||||||
VITE_VUE_APP_INLOCALE="1"
|
|
||||||
VITE_DEBUG="1"
|
|
||||||
VITE_APP_ID="13"
|
|
||||||
VITE_LOGO_REG='riso-logo-full.png'
|
|
||||||
VITE_APP_URL="https://localhost"
|
VITE_APP_URL="https://localhost"
|
||||||
DIRECTORY_LOCAL=myprojplanet_vite
|
VITE_MONGODB_HOST="https://localhost:3000"
|
||||||
DIRECTORY_SERVER=freeplanet_serverside
|
VITE_LOGO_REG='gruppomacro-logo-full.png'
|
||||||
|
VITE_PUBLICKEY_PUSH='BDncvMiUZmjaCG2Kr1V9N0_33hOG-AuNSbHSvL24y2dzBiUjAxKm02emx5SeJvz2IGmtRf6YqCgopeQwCwUmZw8'
|
||||||
|
VITE_DEBUG="1"
|
||||||
|
VITE_VUE_APP_ISTEST=0
|
||||||
|
VITE_VUE_APP_INLOCALE=1
|
||||||
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
|
DIRECTORY_SERVER="freeplanet_serverside"
|
||||||
SERVERDIR_WEBSITE=""
|
SERVERDIR_WEBSITE=""
|
||||||
SERVERPW_WEBSITE=""
|
SERVERPW_WEBSITE=""
|
||||||
@@ -1,11 +1,13 @@
|
|||||||
VITE_APP_ID="13"
|
VITE_APP_ID="18"
|
||||||
VITE_APP_URL="https://riso.app"
|
VITE_APP_URL="https://gruppomacro.app"
|
||||||
VITE_MONGODB_HOST="https://api.riso.app"
|
VITE_MONGODB_HOST="https://api.gruppomacro.app"
|
||||||
VITE_LOGO_REG='riso-logo-full.png'
|
VITE_LOGO_REG='gruppomacro-logo-full.png'
|
||||||
VITE_PUBLICKEY_PUSH="BGXRf1TgcqocqD6J7qnRgCG7AvM2lxAoW7peb7UEzB4SxBb6DxGRdJ0UvD9ewnrB9KrSrh0-aDCODXBm7sZ1DDs"
|
VITE_PUBLICKEY_PUSH="BJgo8XR_upbnbMLWgCAUELo6DK7dRXffYAnFOxbaMMz5favBgcQBKT-eISqouO-jRad4Sw8l5nd2wCF6KorGiTc"
|
||||||
VITE_DEBUG="0"
|
VITE_DEBUG="0"
|
||||||
VITE_VUE_APP_ISTEST="0"
|
VITE_VUE_APP_ISTEST="0"
|
||||||
DIRECTORY_LOCAL=myprojplanet_vite
|
DIRECTORY_LOCAL="myprojplanet_vite"
|
||||||
DIRECTORY_SERVER=/var/www/nodejs_riso_server
|
DIRECTORY_SERVER="/var/www/nodejs_piuchebuono_server"
|
||||||
SERVERDIR_WEBSITE="/var/www/riso.app"
|
SERVERDIR_WEBSITE="/var/www/gruppomacro.app"
|
||||||
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
||||||
|
PORT_SPA="8089"
|
||||||
|
PORT_PWA="8099"
|
||||||
94
package.json
@@ -1,62 +1,61 @@
|
|||||||
{
|
{
|
||||||
"name": "riso",
|
"name": "gruppomacro",
|
||||||
"version": "1.2.62",
|
"version": "1.2.62",
|
||||||
"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": "Gruppo Macro",
|
||||||
"productName": "Riso",
|
"productName": "Gruppo Macro",
|
||||||
"author": "Surya",
|
"author": "Surya",
|
||||||
"private": true,
|
"private": true,
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "APP_VERSION='1.2.62' PORT=8084 quasar dev",
|
"dev": "PORT=8089 APP_VERSION='1.2.62' quasar dev",
|
||||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||||
"build": "quasar build",
|
"build": "quasar build",
|
||||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.62' quasar build -m pwa",
|
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.62' quasar build -m pwa",
|
||||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.62' quasar build -m pwa",
|
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.62' quasar build -m pwa",
|
||||||
"type-check": "vue-tsc --noEmit",
|
"type-check": "vue-tsc --noEmit",
|
||||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||||
"buildspa": "quasar build -m spa",
|
"buildspa": "APP_VERSION='1.2.62' quasar build -m spa",
|
||||||
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
|
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
|
||||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.62' quasar dev -m pwa",
|
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.62' quasar dev -m pwa",
|
||||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.62' quasar dev",
|
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.62' quasar dev",
|
||||||
"debug": "quasar dev --mode debug",
|
"debug": "quasar dev --mode debug",
|
||||||
"test": "echo \"No test specified\" && exit 0",
|
"test": "echo \"No test specified\" && exit 0",
|
||||||
"generate-sw": "workbox generateSW workbox-config.js",
|
"generate-sw": "workbox generateSW workbox-config.js",
|
||||||
"postinstall": "quasar prepare"
|
"postinstall": "quasar prepare"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@cubejs-client/core": "^1.2.26",
|
"@cubejs-client/core": "^1.3.21",
|
||||||
"@quasar/extras": "^1.16.17",
|
"@quasar/extras": "^1.17.0",
|
||||||
"@quasar/quasar-ui-qcalendar": "^4.1.2",
|
"@quasar/quasar-ui-qcalendar": "^4.1.2",
|
||||||
"@types/jsbarcode": "^3.11.4",
|
"@types/jsbarcode": "^3.11.4",
|
||||||
"@types/leaflet": "^1.9.17",
|
"@types/leaflet": "^1.9.18",
|
||||||
"@vue/compat": "^3.5.13",
|
"@vue/compat": "^3.5.16",
|
||||||
"@vue/compiler-sfc": "^3.5.13",
|
"@vue/compiler-sfc": "^3.5.16",
|
||||||
"@vuelidate/core": "^2.0.3",
|
"@vuelidate/core": "^2.0.3",
|
||||||
"@vuelidate/validators": "^2.0.4",
|
"@vuelidate/validators": "^2.0.4",
|
||||||
"acorn": "^8.14.1",
|
"acorn": "^8.15.0",
|
||||||
"animate.css": "^4.1.1",
|
"animate.css": "^4.1.1",
|
||||||
|
"apexcharts": "^4.7.0",
|
||||||
"autoprefixer": "^10.4.21",
|
"autoprefixer": "^10.4.21",
|
||||||
"axios": "^1.8.4",
|
"axios": "^1.9.0",
|
||||||
"bcryptjs": "^3.0.2",
|
"bcryptjs": "^3.0.2",
|
||||||
"chart.js": "^4.4.8",
|
"chart.js": "^4.4.9",
|
||||||
"core-js": "^3.41.0",
|
"core-js": "^3.43.0",
|
||||||
"crypto-browserify": "^3.12.1",
|
"crypto-browserify": "^3.12.1",
|
||||||
"date-fns": "^4.1.0",
|
"date-fns": "^4.1.0",
|
||||||
"echarts": "5.6.0",
|
"echarts": "5.6.0",
|
||||||
"eslint-plugin-n": "^17.16.2",
|
"eslint-plugin-n": "^17.19.0",
|
||||||
"eslint-plugin-quasar": "^1.1.0",
|
"eslint-plugin-quasar": "^1.1.0",
|
||||||
"graphql": "^16.10.0",
|
"gsap": "^3.13.0",
|
||||||
"graphql-tag": "^2.12.6",
|
|
||||||
"gsap": "^3.12.7",
|
|
||||||
"html2pdf.js": "^0.10.3",
|
"html2pdf.js": "^0.10.3",
|
||||||
"jquery": "^3.7.1",
|
"jquery": "^3.7.1",
|
||||||
"js-cookie": "^3.0.5",
|
"js-cookie": "^3.0.5",
|
||||||
"jsbarcode": "^3.11.6",
|
"jsbarcode": "^3.12.1",
|
||||||
"leaflet": "^1.9.4",
|
"leaflet": "^1.9.4",
|
||||||
"leaflet-routing-machine": "^3.2.12",
|
"leaflet-routing-machine": "^3.2.12",
|
||||||
"leaflet.markercluster": "^1.5.3",
|
"leaflet.markercluster": "^1.5.3",
|
||||||
@@ -64,30 +63,29 @@
|
|||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"normalize.css": "^8.0.1",
|
"normalize.css": "^8.0.1",
|
||||||
"nprogress": "^0.2.0",
|
"nprogress": "^0.2.0",
|
||||||
"pinia": "^3.0.1",
|
"pinia": "^3.0.3",
|
||||||
"qrcode-vue3": "^1.7.1",
|
|
||||||
"quasar": "^2.18.1",
|
"quasar": "^2.18.1",
|
||||||
"quasar-extras": "^2.0.9",
|
"quasar-extras": "^2.0.9",
|
||||||
"register-service-worker": "^1.7.2",
|
"register-service-worker": "^1.7.2",
|
||||||
"scrollreveal": "^4.0.9",
|
"scrollreveal": "^4.0.9",
|
||||||
"typescript-eslint": "^8.27.0",
|
"typescript-eslint": "^8.34.0",
|
||||||
"vee-validate": "^4.15.0",
|
"vee-validate": "^4.15.1",
|
||||||
"vue": "^3.5.13",
|
"vue": "^3.5.16",
|
||||||
"vue-class-component": "^8.0.0-rc.1",
|
"vue-class-component": "^8.0.0-rc.1",
|
||||||
"vue-country-code": "^1.1.3",
|
"vue-country-code": "^1.1.3",
|
||||||
"vue-echarts": "^7.0.3",
|
"vue-echarts": "^7.0.3",
|
||||||
"vue-i18n": "^11.1.2",
|
"vue-i18n": "^11.1.5",
|
||||||
"vue-idb": "^0.2.0",
|
"vue-idb": "^0.2.0",
|
||||||
"vue-image-zoomer": "^2.4.4",
|
|
||||||
"vue-property-decorator": "^10.0.0-rc.3",
|
"vue-property-decorator": "^10.0.0-rc.3",
|
||||||
"vue-router": "^4.5.0",
|
"vue-router": "^4.5.1",
|
||||||
"vue-scroll-reveal": "^2.1.0",
|
"vue-scroll-reveal": "^2.1.0",
|
||||||
"vue-social-sharing": "^4.0.0-alpha4",
|
"vue-social-sharing": "^4.0.0-alpha4",
|
||||||
"vue-svgicon": "^4.0.0-alpha.3",
|
"vue-svgicon": "^4.0.0-alpha.3",
|
||||||
"vue-timeago3": "^2.3.2",
|
"vue-timeago3": "^2.3.2",
|
||||||
"vue2-dragula": "^2.5.5",
|
"vue2-dragula": "^2.5.5",
|
||||||
"vue3-pdf-app": "^1.0.3",
|
"vue3-apexcharts": "^1.8.0",
|
||||||
"vue3-qr-reader": "^1.0.0",
|
"vue3-qr-reader": "^1.0.0",
|
||||||
|
"vuedraggable": "^4.1.0",
|
||||||
"vuex": "^4.1.0",
|
"vuex": "^4.1.0",
|
||||||
"vuex-router-sync": "^6.0.0-rc.1",
|
"vuex-router-sync": "^6.0.0-rc.1",
|
||||||
"workbox-core": "^7.3.0",
|
"workbox-core": "^7.3.0",
|
||||||
@@ -97,41 +95,41 @@
|
|||||||
"workbox-window": "^7.3.0"
|
"workbox-window": "^7.3.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/js": "^9.23.0",
|
"@eslint/js": "^9.28.0",
|
||||||
"@intlify/unplugin-vue-i18n": "^6.0.5",
|
"@intlify/unplugin-vue-i18n": "^6.0.8",
|
||||||
"@quasar/app-vite": "^2.1.4",
|
"@quasar/app-vite": "^2.2.1",
|
||||||
"@types/google.maps": "^3.58.1",
|
"@types/google.maps": "^3.58.1",
|
||||||
"@types/jest": "^29.5.14",
|
"@types/jest": "^29.5.14",
|
||||||
"@types/js-cookie": "^3.0.6",
|
"@types/js-cookie": "^3.0.6",
|
||||||
"@types/node": "^22.13.11",
|
"@types/node": "^24.0.1",
|
||||||
"@types/nprogress": "^0.2.3",
|
"@types/nprogress": "^0.2.3",
|
||||||
"@types/vue-tel-input": "^2.1.7",
|
"@types/vue-tel-input": "^2.1.7",
|
||||||
"@types/vuelidate": "^0.7.22",
|
"@types/vuelidate": "^0.7.22",
|
||||||
"@vue/devtools": "^7.7.2",
|
"@vue/devtools": "^7.7.6",
|
||||||
"@vue/eslint-config-prettier": "^10.2.0",
|
"@vue/eslint-config-prettier": "^10.2.0",
|
||||||
"@vue/eslint-config-typescript": "^14.5.0",
|
"@vue/eslint-config-typescript": "^14.5.0",
|
||||||
"autoprefixer": "^10.4.21",
|
"autoprefixer": "^10.4.21",
|
||||||
"eslint": "9",
|
"eslint": "9",
|
||||||
"eslint-plugin-import": "^2.31.0",
|
"eslint-plugin-import": "^2.31.0",
|
||||||
"eslint-plugin-vue": "^10.0.0",
|
"eslint-plugin-vue": "^10.2.0",
|
||||||
"file-loader": "^6.2.0",
|
"file-loader": "^6.2.0",
|
||||||
"globals": "^16.0.0",
|
"globals": "^16.2.0",
|
||||||
"http-proxy-middleware": "^3.0.3",
|
"http-proxy-middleware": "^3.0.5",
|
||||||
"jest": "^29.7.0",
|
"jest": "^30.0.0",
|
||||||
"json-loader": "^0.5.7",
|
"json-loader": "^0.5.7",
|
||||||
"nodemon": "^3.1.9",
|
"nodemon": "^3.1.10",
|
||||||
"npm-check-updates": "^17.1.16",
|
"npm-check-updates": "^18.0.1",
|
||||||
"parcel": "^2.14.1",
|
"parcel": "^2.15.2",
|
||||||
"postcss": "^8.5.3",
|
"postcss": "^8.5.5",
|
||||||
"postcss-loader": "^8.1.1",
|
"postcss-loader": "^8.1.1",
|
||||||
"prettier": "3",
|
"prettier": "3",
|
||||||
"strip-ansi": "=7.1.0",
|
"strip-ansi": "=7.1.0",
|
||||||
"ts-jest": "^29.2.6",
|
"ts-jest": "^29.4.0",
|
||||||
"typescript": "5.7.3",
|
"typescript": "5.8.3",
|
||||||
"vite-plugin-checker": "^0.9.1",
|
"vite-plugin-checker": "^0.9.3",
|
||||||
"vue-cli-plugin-element-ui": "^1.1.4",
|
"vue-cli-plugin-element-ui": "^1.1.4",
|
||||||
"vue-eslint-parser": "^10.1.1",
|
"vue-eslint-parser": "^10.1.3",
|
||||||
"vue-tsc": "^2.2.8",
|
"vue-tsc": "^2.2.10",
|
||||||
"vueify": "^9.4.1",
|
"vueify": "^9.4.1",
|
||||||
"workbox-build": "^7.3.0"
|
"workbox-build": "^7.3.0"
|
||||||
},
|
},
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
BIN
public/images/bestseller.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
3592316
public/images/comuni_italia.geojson
Normal file
BIN
public/images/foto1.jpg
Executable file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/images/foto2.jpg
Executable file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/images/foto3.jpg
Executable file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/images/gm-android-icon-192x192.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
public/images/gm-android-icon-512x512.png
Normal file
|
After Width: | Height: | Size: 158 KiB |
BIN
public/images/gm-apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
public/images/gruppomacro-logo-full.png
Normal file
|
After Width: | Height: | Size: 81 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 696 B |
|
Before Width: | Height: | Size: 424 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
BIN
public/images/novita.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
public/images/ombra.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 138 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 185 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 424 KiB |
|
Before Width: | Height: | Size: 279 KiB |
|
Before Width: | Height: | Size: 258 KiB |
|
Before Width: | Height: | Size: 124 KiB |
2
public/js/workbox-sw-6-1.js
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
!function(){'use strict';try{self['workbox:sw:6.1.0']&&_()}catch(t){}const t={backgroundSync:'background-sync',broadcastUpdate:'broadcast-update',cacheableResponse:'cacheable-response',core:'core',expiration:'expiration',googleAnalytics:'offline-ga',navigationPreload:'navigation-preload',precaching:'precaching',rangeRequests:'range-requests',routing:'routing',strategies:'strategies',streams:'streams',recipes:'recipes'};self.workbox=new class{constructor(){return this.v={},this.Pt={debug:'localhost'===self.location.hostname,modulePathPrefix:null,modulePathCb:null},this.$t=this.Pt.debug?'dev':'prod',this.jt=!1,new Proxy(this,{get(e,s){if(e[s])return e[s];const o=t[s];return o&&e.loadModule('workbox-'+o),e[s]}})}setConfig(t={}){if(this.jt)throw new Error('Config must be set before accessing workbox.* modules');Object.assign(this.Pt,t),this.$t=this.Pt.debug?'dev':'prod'}loadModule(t){const e=this.St(t);try{importScripts(e),this.jt=!0}catch(s){throw console.error(`Unable to import module '${t}' from '${e}'.`),s}}St(t){if(this.Pt.modulePathCb)return this.Pt.modulePathCb(t,this.Pt.debug);let e=['https://storage.googleapis.com/workbox-cdn/releases/6.1.0'];const s=`${t}.${this.$t}.js`,o=this.Pt.modulePathPrefix;return o&&(e=o.split('/'),''===e[e.length-1]&&e.splice(e.length-1,1)),e.push(s),e.join('/')}}}();
|
||||||
|
//# sourceMappingURL=workbox-sw.js.map
|
||||||
2
public/js/workbox-sw.js
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
!function(){"use strict";try{self["workbox:sw:5.1.4"]&&_()}catch(t){}const t={backgroundSync:"background-sync",broadcastUpdate:"broadcast-update",cacheableResponse:"cacheable-response",core:"core",expiration:"expiration",googleAnalytics:"offline-ga",navigationPreload:"navigation-preload",precaching:"precaching",rangeRequests:"range-requests",routing:"routing",strategies:"strategies",streams:"streams"};self.workbox=new class{constructor(){return this.v={},this.t={debug:"localhost"===self.location.hostname,modulePathPrefix:null,modulePathCb:null},this.s=this.t.debug?"dev":"prod",this.o=!1,new Proxy(this,{get(e,s){if(e[s])return e[s];const o=t[s];return o&&e.loadModule("workbox-"+o),e[s]}})}setConfig(t={}){if(this.o)throw new Error("Config must be set before accessing workbox.* modules");Object.assign(this.t,t),this.s=this.t.debug?"dev":"prod"}loadModule(t){const e=this.i(t);try{importScripts(e),this.o=!0}catch(s){throw console.error(`Unable to import module '${t}' from '${e}'.`),s}}i(t){if(this.t.modulePathCb)return this.t.modulePathCb(t,this.t.debug);let e=["https://storage.googleapis.com/workbox-cdn/releases/5.1.4"];const s=`${t}.${this.s}.js`,o=this.t.modulePathPrefix;return o&&(e=o.split("/"),""===e[e.length-1]&&e.splice(e.length-1,1)),e.push(s),e.join("/")}}}();
|
||||||
|
//# sourceMappingURL=workbox-sw.js.map
|
||||||
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 15 KiB |
@@ -1,2 +1,2 @@
|
|||||||
!function(){"use strict";try{self["workbox:sw:7.3.0"]&&_()}catch(t){}const t={backgroundSync:"background-sync",broadcastUpdate:"broadcast-update",cacheableResponse:"cacheable-response",core:"core",expiration:"expiration",googleAnalytics:"offline-ga",navigationPreload:"navigation-preload",precaching:"precaching",rangeRequests:"range-requests",routing:"routing",strategies:"strategies",streams:"streams",recipes:"recipes"};self.workbox=new class{constructor(){return this.v={},this.Pt={debug:"localhost"===self.location.hostname,modulePathPrefix:null,modulePathCb:null},this.$t=this.Pt.debug?"dev":"prod",this.jt=!1,new Proxy(this,{get(e,s){if(e[s])return e[s];const o=t[s];return o&&e.loadModule(`workbox-${o}`),e[s]}})}setConfig(t={}){if(this.jt)throw new Error("Config must be set before accessing workbox.* modules");Object.assign(this.Pt,t),this.$t=this.Pt.debug?"dev":"prod"}loadModule(t){const e=this.St(t);try{importScripts(e),this.jt=!0}catch(s){throw console.error(`Unable to import module '${t}' from '${e}'.`),s}}St(t){if(this.Pt.modulePathCb)return this.Pt.modulePathCb(t,this.Pt.debug);let e=["https://storage.googleapis.com/workbox-cdn/releases/7.3.0"];const s=`${t}.${this.$t}.js`,o=this.Pt.modulePathPrefix;return o&&(e=o.split("/"),""===e[e.length-1]&&e.splice(e.length-1,1)),e.push(s),e.join("/")}}}();
|
!function(){"use strict";try{self["workbox:sw:5.1.4"]&&_()}catch(t){}const t={backgroundSync:"background-sync",broadcastUpdate:"broadcast-update",cacheableResponse:"cacheable-response",core:"core",expiration:"expiration",googleAnalytics:"offline-ga",navigationPreload:"navigation-preload",precaching:"precaching",rangeRequests:"range-requests",routing:"routing",strategies:"strategies",streams:"streams"};self.workbox=new class{constructor(){return this.v={},this.t={debug:"localhost"===self.location.hostname,modulePathPrefix:null,modulePathCb:null},this.s=this.t.debug?"dev":"prod",this.o=!1,new Proxy(this,{get(e,s){if(e[s])return e[s];const o=t[s];return o&&e.loadModule("workbox-"+o),e[s]}})}setConfig(t={}){if(this.o)throw new Error("Config must be set before accessing workbox.* modules");Object.assign(this.t,t),this.s=this.t.debug?"dev":"prod"}loadModule(t){const e=this.i(t);try{importScripts(e),this.o=!0}catch(s){throw console.error(`Unable to import module '${t}' from '${e}'.`),s}}i(t){if(this.t.modulePathCb)return this.t.modulePathCb(t,this.t.debug);let e=["https://storage.googleapis.com/workbox-cdn/releases/5.1.4"];const s=`${t}.${this.s}.js`,o=this.t.modulePathPrefix;return o&&(e=o.split("/"),""===e[e.length-1]&&e.splice(e.length-1,1)),e.push(s),e.join("/")}}}();
|
||||||
//# sourceMappingURL=workbox-sw.js.map
|
//# sourceMappingURL=workbox-sw.js.map
|
||||||
|
|||||||
143
quasar.config.ts
@@ -1,7 +1,7 @@
|
|||||||
import { defineConfig } from '#q-app/wrappers'
|
import { defineConfig } from '#q-app/wrappers';
|
||||||
import { fileURLToPath } from 'node:url';
|
import { fileURLToPath } from 'node:url';
|
||||||
|
|
||||||
import path from 'path'
|
import path from 'path';
|
||||||
|
|
||||||
// console.log(process.env)
|
// console.log(process.env)
|
||||||
|
|
||||||
@@ -16,10 +16,20 @@ export default defineConfig((ctx) => {
|
|||||||
// --> boot files are part of "main.js"
|
// --> boot files are part of "main.js"
|
||||||
// https://v2.quasar.dev/quasar-cli/boot-files
|
// https://v2.quasar.dev/quasar-cli/boot-files
|
||||||
// boot: ['vue-i18n', 'vue-meta', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'vue-idb', 'dragula', 'guard'],
|
// boot: ['vue-i18n', 'vue-meta', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'vue-idb', 'dragula', 'guard'],
|
||||||
boot: ['i18n', 'axios', 'pinia', 'vee-validate',
|
boot: [
|
||||||
|
'i18n',
|
||||||
|
'axios',
|
||||||
|
'pinia',
|
||||||
|
'vee-validate',
|
||||||
'myconfig',
|
'myconfig',
|
||||||
'local-storage', 'globalroutines',
|
'local-storage',
|
||||||
'calendar', 'social-sharing', 'timeago', 'guard'],
|
'globalroutines',
|
||||||
|
'calendar',
|
||||||
|
'social-sharing',
|
||||||
|
'timeago',
|
||||||
|
'guard',
|
||||||
|
'trackPageViews',
|
||||||
|
],
|
||||||
|
|
||||||
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
|
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
|
||||||
css: [
|
css: [
|
||||||
@@ -47,7 +57,7 @@ export default defineConfig((ctx) => {
|
|||||||
build: {
|
build: {
|
||||||
target: {
|
target: {
|
||||||
browser: ['es2022', 'firefox115', 'chrome115', 'safari14'],
|
browser: ['es2022', 'firefox115', 'chrome115', 'safari14'],
|
||||||
node: 'node20'
|
node: 'node20',
|
||||||
},
|
},
|
||||||
sassVariables: 'src/css/variables.scss',
|
sassVariables: 'src/css/variables.scss',
|
||||||
// env: envparser(),
|
// env: envparser(),
|
||||||
@@ -55,9 +65,7 @@ export default defineConfig((ctx) => {
|
|||||||
vueRouterMode: 'history',
|
vueRouterMode: 'history',
|
||||||
analyze: false, // true
|
analyze: false, // true
|
||||||
transpile: true,
|
transpile: true,
|
||||||
transpileDependencies: [
|
transpileDependencies: [/quasar-ui-qcalendar[\\/]src/],
|
||||||
/quasar-ui-qcalendar[\\/]src/
|
|
||||||
],
|
|
||||||
beforeDev(api) {
|
beforeDev(api) {
|
||||||
// Se la variabile d'ambiente SKIP_TSC è impostata, disabilita il type checking
|
// Se la variabile d'ambiente SKIP_TSC è impostata, disabilita il type checking
|
||||||
if (process.env.SKIP_TSC === 'true') {
|
if (process.env.SKIP_TSC === 'true') {
|
||||||
@@ -76,16 +84,16 @@ export default defineConfig((ctx) => {
|
|||||||
},
|
},
|
||||||
// @quasar/app-vite v2.0.3+
|
// @quasar/app-vite v2.0.3+
|
||||||
envFilter(originalEnv) {
|
envFilter(originalEnv) {
|
||||||
const newEnv = {}
|
const newEnv = {};
|
||||||
for (const key in originalEnv) {
|
for (const key in originalEnv) {
|
||||||
/* ...decide if it goes in or not... */
|
/* ...decide if it goes in or not... */
|
||||||
if (true) {
|
if (true) {
|
||||||
newEnv[key] = originalEnv[key]
|
newEnv[key] = originalEnv[key];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// remember to return your processed env
|
// remember to return your processed env
|
||||||
return newEnv
|
return newEnv;
|
||||||
},
|
},
|
||||||
|
|
||||||
typescript: {
|
typescript: {
|
||||||
@@ -97,11 +105,11 @@ export default defineConfig((ctx) => {
|
|||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Folder where Quasar CLI should look for .env* files.
|
* Folder where Quasar CLI should look for .env* files.
|
||||||
* Can be an absolute path or a relative path to project root directory.
|
* Can be an absolute path or a relative path to project root directory.
|
||||||
*
|
*
|
||||||
* @default project root directory
|
* @default project root directory
|
||||||
*/
|
*/
|
||||||
// envFolder?: string
|
// envFolder?: string
|
||||||
/**
|
/**
|
||||||
* Additional .env* files to be loaded.
|
* Additional .env* files to be loaded.
|
||||||
@@ -118,26 +126,26 @@ export default defineConfig((ctx) => {
|
|||||||
alias: {
|
alias: {
|
||||||
...viteConf.resolve.alias,
|
...viteConf.resolve.alias,
|
||||||
'#q-app': path.resolve(__dirname, 'node_modules/quasar/app'), // Alias per #q-app
|
'#q-app': path.resolve(__dirname, 'node_modules/quasar/app'), // Alias per #q-app
|
||||||
'app': path.resolve(__dirname),
|
app: path.resolve(__dirname),
|
||||||
'boot': path.resolve(__dirname, 'src/boot'),
|
boot: path.resolve(__dirname, 'src/boot'),
|
||||||
'src': path.resolve(__dirname, 'src'),
|
src: path.resolve(__dirname, 'src'),
|
||||||
'statics': path.resolve(__dirname, 'src/statics'),
|
statics: path.resolve(__dirname, 'src/statics'),
|
||||||
'components': path.resolve(__dirname, 'src/components'),
|
components: path.resolve(__dirname, 'src/components'),
|
||||||
'views': path.resolve(__dirname, 'src/views/index.ts'),
|
views: path.resolve(__dirname, 'src/views/index.ts'),
|
||||||
'images': path.resolve(__dirname, 'src/assets/images'),
|
images: path.resolve(__dirname, 'src/assets/images'),
|
||||||
'maps': path.resolve(__dirname, 'public/maps'),
|
maps: path.resolve(__dirname, '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'),
|
||||||
'css': path.resolve(__dirname, 'src/css/variables.scss'),
|
css: path.resolve(__dirname, 'src/css/variables.scss'),
|
||||||
'router': path.resolve(__dirname, 'src/router/index.ts'),
|
router: path.resolve(__dirname, 'src/router/index.ts'),
|
||||||
'validators': path.resolve(__dirname, 'src/utils/validators.ts'),
|
validators: path.resolve(__dirname, 'src/utils/validators.ts'),
|
||||||
'methods': path.resolve(__dirname, 'src/utils/methods.ts'),
|
methods: path.resolve(__dirname, 'src/utils/methods.ts'),
|
||||||
'filters': path.resolve(__dirname, 'src/utils/filters.ts'),
|
filters: path.resolve(__dirname, 'src/utils/filters.ts'),
|
||||||
'api': path.resolve(__dirname, 'src/store/Api/index.ts'),
|
api: path.resolve(__dirname, 'src/store/Api/index.ts'),
|
||||||
'paths': path.resolve(__dirname, 'src/store/Api/ApiRoutes.ts'),
|
paths: path.resolve(__dirname, 'src/store/Api/ApiRoutes.ts'),
|
||||||
'modules': path.resolve(__dirname, 'src/store/Modules/index.ts'),
|
modules: path.resolve(__dirname, 'src/store/Modules/index.ts'),
|
||||||
'model': path.resolve(__dirname, 'src/model/index.ts'),
|
model: path.resolve(__dirname, 'src/model/index.ts'),
|
||||||
'@components': path.resolve(__dirname, 'src/components'),
|
'@components': path.resolve(__dirname, 'src/components'),
|
||||||
'@boot': path.resolve(__dirname, 'src/boot'),
|
'@boot': path.resolve(__dirname, 'src/boot'),
|
||||||
'@costanti': path.resolve(__dirname, 'src/store/Modules/costanti.ts'),
|
'@costanti': path.resolve(__dirname, 'src/store/Modules/costanti.ts'),
|
||||||
@@ -164,30 +172,36 @@ export default defineConfig((ctx) => {
|
|||||||
},
|
},
|
||||||
|
|
||||||
vitePlugins: [
|
vitePlugins: [
|
||||||
['@intlify/unplugin-vue-i18n/vite', {
|
[
|
||||||
// if you want to use Vue I18n Legacy API, you need to set `compositionOnly: false`
|
'@intlify/unplugin-vue-i18n/vite',
|
||||||
// compositionOnly: false,
|
{
|
||||||
|
// if you want to use Vue I18n Legacy API, you need to set `compositionOnly: false`
|
||||||
|
// compositionOnly: false,
|
||||||
|
|
||||||
// if you want to use named tokens in your Vue I18n messages, such as 'Hello {name}',
|
// if you want to use named tokens in your Vue I18n messages, such as 'Hello {name}',
|
||||||
// you need to set `runtimeOnly: false`
|
// you need to set `runtimeOnly: false`
|
||||||
// runtimeOnly: false,
|
// runtimeOnly: false,
|
||||||
|
|
||||||
ssr: ctx.modeName === 'ssr',
|
ssr: ctx.modeName === 'ssr',
|
||||||
|
|
||||||
// you need to set i18n resource including paths !
|
// you need to set i18n resource including paths !
|
||||||
include: [fileURLToPath(new URL('./src/i18n', import.meta.url))]
|
include: [fileURLToPath(new URL('./src/i18n', import.meta.url))],
|
||||||
}],
|
},
|
||||||
|
],
|
||||||
|
|
||||||
['vite-plugin-checker', {
|
[
|
||||||
vueTsc: false,
|
'vite-plugin-checker',
|
||||||
OFF_eslint: {
|
{
|
||||||
lintCommand: 'eslint -c ./eslint.config.js "./src*/**/*.{ts,js,mjs,cjs,vue}"',
|
vueTsc: false,
|
||||||
useFlatConfig: true
|
OFF_eslint: {
|
||||||
}
|
lintCommand:
|
||||||
}, { server: false }]
|
'eslint -c ./eslint.config.js "./src*/**/*.{ts,js,mjs,cjs,vue}"',
|
||||||
|
useFlatConfig: true,
|
||||||
|
},
|
||||||
]
|
},
|
||||||
|
{ server: false },
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
// polyfillModulePreload: true,
|
// polyfillModulePreload: true,
|
||||||
|
|
||||||
@@ -310,10 +324,7 @@ export default defineConfig((ctx) => {
|
|||||||
'QTree',
|
'QTree',
|
||||||
'QSeparator',
|
'QSeparator',
|
||||||
],
|
],
|
||||||
directives: [
|
directives: ['Ripple', 'ClosePopup'],
|
||||||
'Ripple',
|
|
||||||
'ClosePopup',
|
|
||||||
],
|
|
||||||
_plugins: [
|
_plugins: [
|
||||||
'Meta',
|
'Meta',
|
||||||
'Dialog',
|
'Dialog',
|
||||||
@@ -357,14 +368,12 @@ export default defineConfig((ctx) => {
|
|||||||
maxAge: 1000 * 60 * 60 * 24 * 30,
|
maxAge: 1000 * 60 * 60 * 24 * 30,
|
||||||
// Tell browser when a file from the server should expire from cache (in ms)
|
// Tell browser when a file from the server should expire from cache (in ms)
|
||||||
|
|
||||||
|
|
||||||
middlewares: [
|
middlewares: [
|
||||||
ctx.prod ? 'compression' : '',
|
ctx.prod ? 'compression' : '',
|
||||||
'render', // keep this as last one
|
'render', // keep this as last one
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
// https://v2.quasar.dev/quasar-cli/developing-pwa/configuring-pwa
|
// https://v2.quasar.dev/quasar-cli/developing-pwa/configuring-pwa
|
||||||
pwa: {
|
pwa: {
|
||||||
workboxMode: 'InjectManifest', // 'GenerateSW' or 'InjectManifest'
|
workboxMode: 'InjectManifest', // 'GenerateSW' or 'InjectManifest'
|
||||||
@@ -401,13 +410,11 @@ export default defineConfig((ctx) => {
|
|||||||
|
|
||||||
packager: {
|
packager: {
|
||||||
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
|
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
|
||||||
|
|
||||||
// OS X / Mac App Store
|
// OS X / Mac App Store
|
||||||
// appBundleId: '',
|
// appBundleId: '',
|
||||||
// appCategoryType: '',
|
// appCategoryType: '',
|
||||||
// osxSign: '',
|
// osxSign: '',
|
||||||
// protocol: 'myapp://path',
|
// protocol: 'myapp://path',
|
||||||
|
|
||||||
// Windows only
|
// Windows only
|
||||||
// win32metadata: { ... }
|
// win32metadata: { ... }
|
||||||
},
|
},
|
||||||
@@ -417,8 +424,6 @@ export default defineConfig((ctx) => {
|
|||||||
|
|
||||||
appId: '-',
|
appId: '-',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
}
|
};
|
||||||
})
|
});
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
TERMINA DI LAVORARE SU gruppomacro.app: (Sovrascrivo!)
|
TERMINA DI LAVORARE SU riso.app: (Sovrascrivo!)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "Riso",
|
"name": "Gruppo Macro",
|
||||||
"short_name": "Riso",
|
"short_name": "GruppoMacro",
|
||||||
"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": "",
|
||||||
"display": "standalone",
|
"display": "standalone",
|
||||||
"orientation": "portrait",
|
"orientation": "portrait",
|
||||||
"background_color": "#fff",
|
"background_color": "#fff",
|
||||||
@@ -11,47 +11,17 @@
|
|||||||
"start_url": "/?homescreen=1",
|
"start_url": "/?homescreen=1",
|
||||||
"icons": [
|
"icons": [
|
||||||
{
|
{
|
||||||
"src:": "/images/riso-android-icon-512x512.png",
|
"src": "/images/gm-android-icon-512x512.png",
|
||||||
"sizes": "512x512",
|
"sizes": "512x512",
|
||||||
"type": "image/png"
|
"type": "image/png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"src:": "/images/riso-android-icon-384x384.png",
|
"src": "/images/gm-android-icon-192x192.png",
|
||||||
"sizes": "384x384",
|
|
||||||
"type": "image/png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src:": "/images/riso-android-icon-192x192.png",
|
|
||||||
"sizes": "192x192",
|
"sizes": "192x192",
|
||||||
"type": "image/png"
|
"type": "image/png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"src:": "/images/riso-android-icon-144x144.png",
|
"src": "/images/gm-apple-touch-icon.png",
|
||||||
"sizes": "144x144",
|
|
||||||
"type": "image/png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src:": "/images/riso-android-icon-96x96.png",
|
|
||||||
"sizes": "96x96",
|
|
||||||
"type": "image/png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src:": "/images/riso-apple-icon-120x120.png",
|
|
||||||
"sizes": "120x120",
|
|
||||||
"type": "image/png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src:": "/images/riso-apple-icon-144x144.png",
|
|
||||||
"sizes": "144x144",
|
|
||||||
"type": "image/png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src:": "/images/riso-apple-icon-152x152.png",
|
|
||||||
"sizes": "152x152",
|
|
||||||
"type": "image/png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src:": "/images/riso-apple-icon-180x180.png",
|
|
||||||
"sizes": "180x180",
|
"sizes": "180x180",
|
||||||
"type": "image/png"
|
"type": "image/png"
|
||||||
}
|
}
|
||||||
|
|||||||
25
src/boot/trackPageViews.js
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
// src/boot/trackPageViews.js
|
||||||
|
|
||||||
|
import { Api } from '@api';
|
||||||
|
import { useUserStore } from '@store/UserStore';
|
||||||
|
|
||||||
|
export default ({ router }) => {
|
||||||
|
router.afterEach((to) => {
|
||||||
|
const pageUrl = window.location.href;
|
||||||
|
const userAgent = navigator.userAgent;
|
||||||
|
|
||||||
|
const userStore = useUserStore();
|
||||||
|
|
||||||
|
const mydata = {
|
||||||
|
url: pageUrl,
|
||||||
|
userAgent,
|
||||||
|
username: userStore.my?.username,
|
||||||
|
userId: userStore.my?._id,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Invia il tracciamento al backend
|
||||||
|
Api.SendReq('/api/track-pageview', 'POST', mydata).catch((err) => {
|
||||||
|
console.error('Errore nel tracking:', err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
export const shared_consts = {
|
export const shared_consts = {
|
||||||
Accepted: {
|
Accepted: {
|
||||||
CHECK_READ_GUIDELINES: {
|
CHECK_READ_GUIDELINES: {
|
||||||
@@ -173,6 +172,7 @@ export const shared_consts = {
|
|||||||
CATALOGLIST: 420,
|
CATALOGLIST: 420,
|
||||||
SEARCHPRODUCT: 430,
|
SEARCHPRODUCT: 430,
|
||||||
RACCOLTE_CATALOGHI: 450,
|
RACCOLTE_CATALOGHI: 450,
|
||||||
|
STAT_PAGES: 460,
|
||||||
},
|
},
|
||||||
|
|
||||||
QUERYTYPE_MYGROUP: 1,
|
QUERYTYPE_MYGROUP: 1,
|
||||||
@@ -291,12 +291,7 @@ export const shared_consts = {
|
|||||||
|
|
||||||
PARAM_SHOW_PROVINCE: 1,
|
PARAM_SHOW_PROVINCE: 1,
|
||||||
|
|
||||||
TABLES_ID_STRING: [
|
TABLES_ID_STRING: ['circuits', 'accounts', 'movements', 'mygroups'],
|
||||||
'circuits',
|
|
||||||
'accounts',
|
|
||||||
'movements',
|
|
||||||
'mygroups',
|
|
||||||
],
|
|
||||||
|
|
||||||
TABLES_ID_NUMBER: [
|
TABLES_ID_NUMBER: [
|
||||||
'permissions',
|
'permissions',
|
||||||
@@ -359,7 +354,6 @@ export const shared_consts = {
|
|||||||
label: 'Con Provincia inserita',
|
label: 'Con Provincia inserita',
|
||||||
value: 16777216, //FILTER_USER_PROVINCE:
|
value: 16777216, //FILTER_USER_PROVINCE:
|
||||||
},
|
},
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
RECFILTRI_UTENTE_FACIL: [
|
RECFILTRI_UTENTE_FACIL: [
|
||||||
@@ -368,7 +362,7 @@ export const shared_consts = {
|
|||||||
value: 4294967296, //FILTER_FACILITATORE: ,:
|
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
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -397,22 +391,19 @@ export const shared_consts = {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
MYTABS: [{ id: 0, table: 'none' },
|
MYTABS: [
|
||||||
{ id: 1, table: 'myskills' },
|
{ id: 0, table: 'none' },
|
||||||
{ id: 2, table: 'mybachecas' },
|
{ id: 1, table: 'myskills' },
|
||||||
{ id: 3, table: 'myhosps' },
|
{ id: 2, table: 'mybachecas' },
|
||||||
{ id: 4, table: 'mygoods' },
|
{ id: 3, table: 'myhosps' },
|
||||||
{ id: 5, table: 'myevents' },
|
{ id: 4, table: 'mygoods' },
|
||||||
{ id: 6, table: 'attivitas' }],
|
{ id: 5, table: 'myevents' },
|
||||||
|
{ id: 6, table: 'attivitas' },
|
||||||
|
],
|
||||||
|
|
||||||
// Condivise
|
// Condivise
|
||||||
TABLES_FAVORITE_BOOKMARK: ['myskills', 'mygoods', 'mybachecas', 'myhosps', 'attivitas'],
|
TABLES_FAVORITE_BOOKMARK: ['myskills', 'mygoods', 'mybachecas', 'myhosps', 'attivitas'],
|
||||||
TABLEFORUSERS: [
|
TABLEFORUSERS: ['myskills', 'mygoods', 'mybachecas', 'myhosps'],
|
||||||
'myskills',
|
|
||||||
'mygoods',
|
|
||||||
'mybachecas',
|
|
||||||
'myhosps',
|
|
||||||
],
|
|
||||||
|
|
||||||
// Solo per VUE.JS
|
// Solo per VUE.JS
|
||||||
|
|
||||||
@@ -423,14 +414,30 @@ export const shared_consts = {
|
|||||||
COL_WITH_ARRFILTER_IN_AND: ['preferences'],
|
COL_WITH_ARRFILTER_IN_AND: ['preferences'],
|
||||||
TABLES_WITH_DATE: ['mybachecas', 'myhosps'], // 'mybachecas'
|
TABLES_WITH_DATE: ['mybachecas', 'myhosps'], // 'mybachecas'
|
||||||
TABLES_WITH_SORTING: ['mybachecas', 'myhosps'],
|
TABLES_WITH_SORTING: ['mybachecas', 'myhosps'],
|
||||||
TABLES_REC_ID: ['skills', 'goods', 'subskills', 'myskills', 'mybachecas', 'myhosps', 'mygoods'],
|
TABLES_REC_ID: [
|
||||||
|
'skills',
|
||||||
|
'goods',
|
||||||
|
'subskills',
|
||||||
|
'myskills',
|
||||||
|
'mybachecas',
|
||||||
|
'myhosps',
|
||||||
|
'mygoods',
|
||||||
|
],
|
||||||
|
|
||||||
// costanti.VISUTABLE_SCHEDA_USER, VISUTABLE_SCHEDA_GROUP, VISUTABLE_USER_TABGROUP, VISUTABLE_USER_TABCIRCUIT, VISUTABLE_GROUP_CIRCUIT, VISUTABLE_
|
// costanti.VISUTABLE_SCHEDA_USER, VISUTABLE_SCHEDA_GROUP, VISUTABLE_USER_TABGROUP, VISUTABLE_USER_TABCIRCUIT, VISUTABLE_GROUP_CIRCUIT, VISUTABLE_
|
||||||
VERTIC_SHOW_GRID: [-1, 2, -3, -4, -5, -6, -10],
|
VERTIC_SHOW_GRID: [-1, 2, -3, -4, -5, -6, -10],
|
||||||
|
|
||||||
TABLES_UPDATE_LASTIFIED: ['myskills', 'mybachecas', 'myhosps', 'mygoods', 'bots'],
|
TABLES_UPDATE_LASTIFIED: ['myskills', 'mybachecas', 'myhosps', 'mygoods', 'bots'],
|
||||||
TABLES_FINDER: ['myskills', 'mybachecas', 'myhosps', 'mygoods', 'mygroups'],
|
TABLES_FINDER: ['myskills', 'mybachecas', 'myhosps', 'mygoods', 'mygroups'],
|
||||||
TABLES_VISU_CMYSRECCARD: ['myskills', 'mybachecas', 'myhosps', 'mygoods', 'mygroups', 'catalogs', 'raccoltacataloghis'],
|
TABLES_VISU_CMYSRECCARD: [
|
||||||
|
'myskills',
|
||||||
|
'mybachecas',
|
||||||
|
'myhosps',
|
||||||
|
'mygoods',
|
||||||
|
'mygroups',
|
||||||
|
'catalogs',
|
||||||
|
'raccoltacataloghis',
|
||||||
|
],
|
||||||
TABLES_SHOW_ADTYPE: ['myskills', 'mygoods', 'myhosps'],
|
TABLES_SHOW_ADTYPE: ['myskills', 'mygoods', 'myhosps'],
|
||||||
|
|
||||||
TABLES_VISU_LISTA_USER: ['myskills', 'mybachecas', 'myhosps', 'mygoods', 'users'],
|
TABLES_VISU_LISTA_USER: ['myskills', 'mybachecas', 'myhosps', 'mygoods', 'users'],
|
||||||
@@ -575,7 +582,7 @@ export const shared_consts = {
|
|||||||
{
|
{
|
||||||
value: 2,
|
value: 2,
|
||||||
label: 'Ospitalità',
|
label: 'Ospitalità',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
TipoDiAttivita: [
|
TipoDiAttivita: [
|
||||||
@@ -672,7 +679,7 @@ export const shared_consts = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 7,
|
value: 7,
|
||||||
label: 'Casetta sull\'Albero',
|
label: "Casetta sull'Albero",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 8,
|
value: 8,
|
||||||
@@ -688,7 +695,6 @@ export const shared_consts = {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
||||||
People: [
|
People: [
|
||||||
{
|
{
|
||||||
value: 0,
|
value: 0,
|
||||||
@@ -763,7 +769,7 @@ export const shared_consts = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 4,
|
value: 4,
|
||||||
label: 'E\' consentito fumare in casa',
|
label: "E' consentito fumare in casa",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 5,
|
value: 5,
|
||||||
@@ -807,7 +813,7 @@ export const shared_consts = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 15,
|
value: 15,
|
||||||
label: 'Doccia all\'aperto',
|
label: "Doccia all'aperto",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 16,
|
value: 16,
|
||||||
@@ -930,7 +936,7 @@ export const shared_consts = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 'VDA',
|
value: 'VDA',
|
||||||
label: 'Valle d\'Aosta',
|
label: "Valle d'Aosta",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 'VEN',
|
value: 'VEN',
|
||||||
@@ -983,19 +989,23 @@ export const shared_consts = {
|
|||||||
Cat_Interesse_Arcadei: [
|
Cat_Interesse_Arcadei: [
|
||||||
{
|
{
|
||||||
value: 1,
|
value: 1,
|
||||||
label: 'Agricoltura sostenibile e naturale, autonomia alimentare locale (orto, g.a.s.)',
|
label:
|
||||||
|
'Agricoltura sostenibile e naturale, autonomia alimentare locale (orto, g.a.s.)',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 2,
|
value: 2,
|
||||||
label: 'Creazione ed Integrazione ecologica di nuove strutture Abitative, rimboschimento, conservazione del territorio.',
|
label:
|
||||||
|
'Creazione ed Integrazione ecologica di nuove strutture Abitative, rimboschimento, conservazione del territorio.',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 4,
|
value: 4,
|
||||||
label: 'Economia circolare e creazione di sistemi di unità di conto scambio beni e servizi, sistemi di baratto, dono e solidarietà.',
|
label:
|
||||||
|
'Economia circolare e creazione di sistemi di unità di conto scambio beni e servizi, sistemi di baratto, dono e solidarietà.',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 8,
|
value: 8,
|
||||||
label: 'Ricerca, sviluppo e implementazione di tecnologie di approvigionamento energetico.',
|
label:
|
||||||
|
'Ricerca, sviluppo e implementazione di tecnologie di approvigionamento energetico.',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 16,
|
value: 16,
|
||||||
@@ -1007,11 +1017,13 @@ export const shared_consts = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 64,
|
value: 64,
|
||||||
label: 'Formazione, informazione, divulgazione, Educazione e trasmissione generazionale della conoscenza.',
|
label:
|
||||||
|
'Formazione, informazione, divulgazione, Educazione e trasmissione generazionale della conoscenza.',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 128,
|
value: 128,
|
||||||
label: 'Convivialità, Arte e Cultura. Tutela, conservazione e promozione delle tradizioni e culture locali.',
|
label:
|
||||||
|
'Convivialità, Arte e Cultura. Tutela, conservazione e promozione delle tradizioni e culture locali.',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
@@ -1026,17 +1038,16 @@ export const shared_consts = {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
||||||
VisibilGroup: [
|
VisibilGroup: [
|
||||||
{
|
{
|
||||||
value: 1,
|
value: 1,
|
||||||
label: 'Privato',
|
label: 'Privato',
|
||||||
hint: 'Solo i membri possono vedere chi fa parte del gruppo'
|
hint: 'Solo i membri possono vedere chi fa parte del gruppo',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 2,
|
value: 2,
|
||||||
label: 'Nascosto',
|
label: 'Nascosto',
|
||||||
hint: 'il Gruppo non sarà visibile nella ricerca'
|
hint: 'il Gruppo non sarà visibile nella ricerca',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
@@ -1044,7 +1055,7 @@ export const shared_consts = {
|
|||||||
{
|
{
|
||||||
value: 0,
|
value: 0,
|
||||||
label: '',
|
label: '',
|
||||||
hint: ''
|
hint: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 1,
|
value: 1,
|
||||||
@@ -1162,12 +1173,12 @@ export const shared_consts = {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
label: 'Messaggio su Template',
|
label: 'Messaggio su Template',
|
||||||
value: 1, //MSG_OF_TEMPLATE
|
value: 1, //MSG_OF_TEMPLATE
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 2,
|
id: 2,
|
||||||
label: 'Messaggio di Testo',
|
label: 'Messaggio di Testo',
|
||||||
value: 2, // MSG_TEXT
|
value: 2, // MSG_TEXT
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
@@ -1230,31 +1241,27 @@ export const shared_consts = {
|
|||||||
{
|
{
|
||||||
id: 5,
|
id: 5,
|
||||||
label: 'a un Utente',
|
label: 'a un Utente',
|
||||||
value: 25, //TypeMsg.SEND_TO_USER
|
value: 25, //TypeMsg.SEND_TO_USER
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 6,
|
id: 6,
|
||||||
label: 'a un Gruppo',
|
label: 'a un Gruppo',
|
||||||
value: 30, //SEND_TO_GROUP: 30,
|
value: 30, //SEND_TO_GROUP: 30,
|
||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 7,
|
id: 7,
|
||||||
label: 'a me stesso',
|
label: 'a me stesso',
|
||||||
value: 40, //SEND_TO_MYSELF: 40,
|
value: 40, //SEND_TO_MYSELF: 40,
|
||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 8,
|
id: 8,
|
||||||
label: 'Abilitati Telegram (senza Username telegram)',
|
label: 'Abilitati Telegram (senza Username telegram)',
|
||||||
value: 50, //SEND_TO_TELEG_NO_USERNAME_TELEG: 50,
|
value: 50, //SEND_TO_TELEG_NO_USERNAME_TELEG: 50,
|
||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 9,
|
id: 9,
|
||||||
label: 'Abilitati Telegram (Non Verificati dall\'Invitante)',
|
label: "Abilitati Telegram (Non Verificati dall'Invitante)",
|
||||||
value: 60, //SEND_TO_TELEG_NO_VERIF_BY_APORTADOR: 60,
|
value: 60, //SEND_TO_TELEG_NO_VERIF_BY_APORTADOR: 60,
|
||||||
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
@@ -1270,8 +1277,8 @@ export const shared_consts = {
|
|||||||
CHECKOUT_SENT: 2,
|
CHECKOUT_SENT: 2,
|
||||||
ORDER_CONFIRMED: 3,
|
ORDER_CONFIRMED: 3,
|
||||||
PAYED: 4,
|
PAYED: 4,
|
||||||
DELIVERED: 5, // Consegnato
|
DELIVERED: 5, // Consegnato
|
||||||
SHIPPED: 6, //Spedito
|
SHIPPED: 6, //Spedito
|
||||||
RECEIVED: 7,
|
RECEIVED: 7,
|
||||||
COMPLETED: 6,
|
COMPLETED: 6,
|
||||||
CANCELED: 10,
|
CANCELED: 10,
|
||||||
@@ -1280,25 +1287,54 @@ export const shared_consts = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
OrderPages: {
|
OrderPages: {
|
||||||
LISTA_TOTALI: { label: 'Lista Totali', value: 1, icon: 'fas fa-chart-bar', color: 'text-green' },
|
LISTA_TOTALI: {
|
||||||
|
label: 'Lista Totali',
|
||||||
|
value: 1,
|
||||||
|
icon: 'fas fa-chart-bar',
|
||||||
|
color: 'text-green',
|
||||||
|
},
|
||||||
ORDINI: { label: 'Ordini', value: 2, icon: 'fas fa-tasks', color: 'text-blue' },
|
ORDINI: { label: 'Ordini', value: 2, icon: 'fas fa-tasks', color: 'text-blue' },
|
||||||
},
|
},
|
||||||
|
|
||||||
OrderStat: {
|
OrderStat: {
|
||||||
// IN_CART: { label: 'In Carrello', value: 1 }, //IN_CART
|
// IN_CART: { label: 'In Carrello', value: 1 }, //IN_CART
|
||||||
IN_CORSO: { label: 'In Corso', value: 2, icon: 'fas fa-tasks', color: 'text-black' }, //CHECKOUT_SENT
|
IN_CORSO: { label: 'In Corso', value: 2, icon: 'fas fa-tasks', color: 'text-black' }, //CHECKOUT_SENT
|
||||||
PREPARED: { label: 'Preparati', value: 15, icon: 'fas fa-archive', color: 'text-orange' },
|
PREPARED: {
|
||||||
CONFERMATI: { label: 'Confermati', value: 3, icon: 'fas fa-calendar', color: 'text-blue' }, //ORDER_CONFIRMED
|
label: 'Preparati',
|
||||||
PAGATI: { label: 'Pagati', value: 4, icon: 'money', color: 'text-green' }, //PAYED
|
value: 15,
|
||||||
DELIVERED: { label: 'Consegnato', value: 5, icon: 'fas fa-calendar', color: 'text-blue' }, //DELIVERED
|
icon: 'fas fa-archive',
|
||||||
SHIPPED: { label: 'Spediti', value: 6, icon: 'fas fa-shipping-fast', color: 'text-green' }, //SHIPPED
|
color: 'text-orange',
|
||||||
|
},
|
||||||
|
CONFERMATI: {
|
||||||
|
label: 'Confermati',
|
||||||
|
value: 3,
|
||||||
|
icon: 'fas fa-calendar',
|
||||||
|
color: 'text-blue',
|
||||||
|
}, //ORDER_CONFIRMED
|
||||||
|
PAGATI: { label: 'Pagati', value: 4, icon: 'money', color: 'text-green' }, //PAYED
|
||||||
|
DELIVERED: {
|
||||||
|
label: 'Consegnato',
|
||||||
|
value: 5,
|
||||||
|
icon: 'fas fa-calendar',
|
||||||
|
color: 'text-blue',
|
||||||
|
}, //DELIVERED
|
||||||
|
SHIPPED: {
|
||||||
|
label: 'Spediti',
|
||||||
|
value: 6,
|
||||||
|
icon: 'fas fa-shipping-fast',
|
||||||
|
color: 'text-green',
|
||||||
|
}, //SHIPPED
|
||||||
RECEIVED: { label: 'Ricevuti', value: 7, icon: '', color: 'text-blue' }, //RECEIVED
|
RECEIVED: { label: 'Ricevuti', value: 7, icon: '', color: 'text-blue' }, //RECEIVED
|
||||||
COMPLETATI: { label: 'Completati', value: 8, icon: 'fas fa-check', color: 'text-blue' }, //COMPLETED
|
COMPLETATI: {
|
||||||
|
label: 'Completati',
|
||||||
|
value: 8,
|
||||||
|
icon: 'fas fa-check',
|
||||||
|
color: 'text-blue',
|
||||||
|
}, //COMPLETED
|
||||||
CANCELLATI: { label: 'Cancellati', value: 10, icon: 'delete', color: 'text-red' }, //CANCELED
|
CANCELLATI: { label: 'Cancellati', value: 10, icon: 'delete', color: 'text-red' }, //CANCELED
|
||||||
},
|
},
|
||||||
|
|
||||||
REACTIONS_FIELD:
|
REACTIONS_FIELD: {
|
||||||
{
|
|
||||||
numseen: 1,
|
numseen: 1,
|
||||||
numbook: 1,
|
numbook: 1,
|
||||||
numfav: 1,
|
numfav: 1,
|
||||||
@@ -1355,42 +1391,41 @@ export const shared_consts = {
|
|||||||
label: 'Elimina Definitivamente !!',
|
label: 'Elimina Definitivamente !!',
|
||||||
value: 20,
|
value: 20,
|
||||||
},
|
},
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
OrderCmdStr: [
|
OrderCmdStr: [
|
||||||
{
|
{
|
||||||
label: 'Imposta Ordine in Lavorazione', //CHECKOUT_SENT
|
label: 'Imposta Ordine in Lavorazione', //CHECKOUT_SENT
|
||||||
value: 2,
|
value: 2,
|
||||||
icon: 'fas fa-list-ol',
|
icon: 'fas fa-list-ol',
|
||||||
color: 'secondary',
|
color: 'secondary',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '📩 Conferma Ordine Evaso (e aggiorna le quantità in Magsazzino)', //ORDER_CONFIRMED
|
label: '📩 Conferma Ordine Evaso (e aggiorna le quantità in Magsazzino)', //ORDER_CONFIRMED
|
||||||
value: 3,
|
value: 3,
|
||||||
icon: 'fas fa-calendar-check',
|
icon: 'fas fa-calendar-check',
|
||||||
color: 'primary',
|
color: 'primary',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '📩 Imposta come Consegnato', //DELIVERED
|
label: '📩 Imposta come Consegnato', //DELIVERED
|
||||||
value: 5,
|
value: 5,
|
||||||
icon: 'fas fa-shipping-fast',
|
icon: 'fas fa-shipping-fast',
|
||||||
color: 'blue',
|
color: 'blue',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Imposta come Preparato', //PREPARED
|
label: 'Imposta come Preparato', //PREPARED
|
||||||
value: 15,
|
value: 15,
|
||||||
icon: 'fas fa-archive',
|
icon: 'fas fa-archive',
|
||||||
color: 'blue',
|
color: 'blue',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Imposta come Pagato', //PAYED
|
label: 'Imposta come Pagato', //PAYED
|
||||||
value: 4,
|
value: 4,
|
||||||
icon: 'money',
|
icon: 'money',
|
||||||
color: 'positive',
|
color: 'positive',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Imposta come Spedito', //DELIVERED
|
label: 'Imposta come Spedito', //DELIVERED
|
||||||
value: 5,
|
value: 5,
|
||||||
icon: 'fas fa-shipping-fast',
|
icon: 'fas fa-shipping-fast',
|
||||||
color: 'blue',
|
color: 'blue',
|
||||||
@@ -1593,7 +1628,7 @@ export const shared_consts = {
|
|||||||
{
|
{
|
||||||
value: 1, // ID_FAVORITE_ADDED
|
value: 1, // ID_FAVORITE_ADDED
|
||||||
labeltrans: 'notifsid.favorite_new',
|
labeltrans: 'notifsid.favorite_new',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1609,7 +1644,7 @@ export const shared_consts = {
|
|||||||
{
|
{
|
||||||
value: 4, // ID_EVENTS_ATTEND
|
value: 4, // ID_EVENTS_ATTEND
|
||||||
labeltrans: 'notifsid.attend_new',
|
labeltrans: 'notifsid.attend_new',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1621,7 +1656,7 @@ export const shared_consts = {
|
|||||||
{
|
{
|
||||||
value: 1, // ID_FRIENDS_NEW_REC
|
value: 1, // ID_FRIENDS_NEW_REC
|
||||||
labeltrans: 'notifsid.friends_new',
|
labeltrans: 'notifsid.friends_new',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1633,7 +1668,7 @@ export const shared_consts = {
|
|||||||
{
|
{
|
||||||
value: 1, // ID_GROUP_NEW_REC
|
value: 1, // ID_GROUP_NEW_REC
|
||||||
labeltrans: 'notifsid.groups_new',
|
labeltrans: 'notifsid.groups_new',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1645,7 +1680,7 @@ export const shared_consts = {
|
|||||||
{
|
{
|
||||||
value: 1, // ID_CIRCUIT_NEW_REC
|
value: 1, // ID_CIRCUIT_NEW_REC
|
||||||
labeltrans: 'notifsid.circuits_new',
|
labeltrans: 'notifsid.circuits_new',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1656,8 +1691,6 @@ export const shared_consts = {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
UsersNotif_Adv_List: [
|
UsersNotif_Adv_List: [
|
||||||
/*{
|
/*{
|
||||||
value: 1, // NEW_ADV_CITY
|
value: 1, // NEW_ADV_CITY
|
||||||
@@ -1743,27 +1776,27 @@ export const shared_consts = {
|
|||||||
FontsInstalled: [
|
FontsInstalled: [
|
||||||
{
|
{
|
||||||
label: 'Arial',
|
label: 'Arial',
|
||||||
value: 'font-Arial'
|
value: 'font-Arial',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Baskervville',
|
label: 'Baskervville',
|
||||||
value: 'font-Baskervville'
|
value: 'font-Baskervville',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Montserrat',
|
label: 'Montserrat',
|
||||||
value: 'font-Montserrat'
|
value: 'font-Montserrat',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Verdana',
|
label: 'Verdana',
|
||||||
value: 'font-Verdana'
|
value: 'font-Verdana',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Lato',
|
label: 'Lato',
|
||||||
value: 'font-Lato'
|
value: 'font-Lato',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Source Sans Pro',
|
label: 'Source Sans Pro',
|
||||||
value: 'font-SourceSansPro'
|
value: 'font-SourceSansPro',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 80,
|
value: 80,
|
||||||
@@ -1832,6 +1865,10 @@ export const shared_consts = {
|
|||||||
value: 450,
|
value: 450,
|
||||||
label: 'Raccolte Cataloghi',
|
label: 'Raccolte Cataloghi',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
value: 460,
|
||||||
|
label: 'Statistiche Pagine',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
value: 430, // SEARCHPRODUCT
|
value: 430, // SEARCHPRODUCT
|
||||||
label: 'Cerca Prodotto',
|
label: 'Cerca Prodotto',
|
||||||
@@ -1959,7 +1996,6 @@ export const shared_consts = {
|
|||||||
value: 390,
|
value: 390,
|
||||||
label: 'EDIT ADDRESS BY COORD',
|
label: 'EDIT ADDRESS BY COORD',
|
||||||
},
|
},
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
TypesElem: [
|
TypesElem: [
|
||||||
@@ -2001,7 +2037,7 @@ export const shared_consts = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 110,
|
value: 110,
|
||||||
label: 'Galleria d\'Immagini',
|
label: "Galleria d'Immagini",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 6,
|
value: 6,
|
||||||
@@ -2012,55 +2048,55 @@ export const shared_consts = {
|
|||||||
LISTBESTCOLORS: [
|
LISTBESTCOLORS: [
|
||||||
{
|
{
|
||||||
label: 'blue',
|
label: 'blue',
|
||||||
value: 'blue'
|
value: 'blue',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'green',
|
label: 'green',
|
||||||
value: 'green'
|
value: 'green',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'purple',
|
label: 'purple',
|
||||||
value: 'purple'
|
value: 'purple',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'deep-purple',
|
label: 'deep-purple',
|
||||||
value: 'deep-purple'
|
value: 'deep-purple',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'indigo',
|
label: 'indigo',
|
||||||
value: 'indigo'
|
value: 'indigo',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'light-blue',
|
label: 'light-blue',
|
||||||
value: 'light-blue'
|
value: 'light-blue',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'cyan',
|
label: 'cyan',
|
||||||
value: 'cyan'
|
value: 'cyan',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'teal',
|
label: 'teal',
|
||||||
value: 'teal'
|
value: 'teal',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'lime',
|
label: 'lime',
|
||||||
value: 'lime'
|
value: 'lime',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'orange',
|
label: 'orange',
|
||||||
value: 'orange'
|
value: 'orange',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'deeporange',
|
label: 'deeporange',
|
||||||
value: 'deeporange'
|
value: 'deeporange',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'yellow',
|
label: 'yellow',
|
||||||
value: 'yellow'
|
value: 'yellow',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'white',
|
label: 'white',
|
||||||
value: 'white'
|
value: 'white',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
@@ -2089,43 +2125,59 @@ export const shared_consts = {
|
|||||||
MAX_QTA_NON_IMPOSTATA: -1,
|
MAX_QTA_NON_IMPOSTATA: -1,
|
||||||
|
|
||||||
getStatusStr(status: number) {
|
getStatusStr(status: number) {
|
||||||
const trovatorec = this.OrderStatusStr.find((rec) => rec.value === status)
|
const trovatorec = this.OrderStatusStr.find((rec) => rec.value === status);
|
||||||
return (trovatorec) ? trovatorec.label : ''
|
return trovatorec ? trovatorec.label : '';
|
||||||
},
|
},
|
||||||
|
|
||||||
getDirectoryImgByTable(table: string, username: string) {
|
getDirectoryImgByTable(table: string, username: string) {
|
||||||
let ris = ''
|
let ris = '';
|
||||||
if (this.TABLEFORUSERS.includes(table)) {
|
if (this.TABLEFORUSERS.includes(table)) {
|
||||||
ris = 'profile/' + username + '/' + table + '/';
|
ris = 'profile/' + username + '/' + table + '/';
|
||||||
}
|
}
|
||||||
|
|
||||||
return ris;
|
return ris;
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
getLabelByValueAndArr(value: number, array: any) {
|
getLabelByValueAndArr(value: number, array: any) {
|
||||||
const trovatorec = array.find((rec: any) => rec.value === value)
|
const trovatorec = array.find((rec: any) => rec.value === value);
|
||||||
return (trovatorec) ? trovatorec.label : ''
|
return trovatorec ? trovatorec.label : '';
|
||||||
},
|
},
|
||||||
|
|
||||||
fieldsUserToChange() {
|
fieldsUserToChange() {
|
||||||
return ['_id', 'username', 'group', 'email', 'name', 'surname', 'perm', 'date_reg', 'verified_email', 'notask_verif', 'verified_by_aportador', 'trust_modified', 'img', 'ipaddr', 'lasttimeonline', 'profile', 'news_on']
|
return [
|
||||||
|
'_id',
|
||||||
|
'username',
|
||||||
|
'group',
|
||||||
|
'email',
|
||||||
|
'name',
|
||||||
|
'surname',
|
||||||
|
'perm',
|
||||||
|
'date_reg',
|
||||||
|
'verified_email',
|
||||||
|
'notask_verif',
|
||||||
|
'verified_by_aportador',
|
||||||
|
'trust_modified',
|
||||||
|
'img',
|
||||||
|
'ipaddr',
|
||||||
|
'lasttimeonline',
|
||||||
|
'profile',
|
||||||
|
'news_on',
|
||||||
|
];
|
||||||
},
|
},
|
||||||
|
|
||||||
getProjectByTable(table: string, proj_add?: any) {
|
getProjectByTable(table: string, proj_add?: any) {
|
||||||
let proj = {}
|
let proj = {};
|
||||||
if (table === this.TABLES_MYGOODS) {
|
if (table === this.TABLES_MYGOODS) {
|
||||||
proj = {
|
proj = {
|
||||||
'recGood': 1,
|
recGood: 1,
|
||||||
'sectorGood': 1,
|
sectorGood: 1,
|
||||||
'idSectorGood': 1,
|
idSectorGood: 1,
|
||||||
'idGood': 1,
|
idGood: 1,
|
||||||
'idShipping': 1,
|
idShipping: 1,
|
||||||
'idStatusGood': 1,
|
idStatusGood: 1,
|
||||||
groupname: 1,
|
groupname: 1,
|
||||||
//**ADDFIELD_MYGOOD
|
//**ADDFIELD_MYGOOD
|
||||||
}
|
};
|
||||||
|
|
||||||
} else if (table === this.TABLES_MYGROUPS) {
|
} else if (table === this.TABLES_MYGROUPS) {
|
||||||
proj = {
|
proj = {
|
||||||
groupname: 1,
|
groupname: 1,
|
||||||
@@ -2146,7 +2198,7 @@ export const shared_consts = {
|
|||||||
mycities: 1,
|
mycities: 1,
|
||||||
sector: 1,
|
sector: 1,
|
||||||
recCatGrp: 1,
|
recCatGrp: 1,
|
||||||
}
|
};
|
||||||
} else if (table === this.TABLES_CIRCUITS) {
|
} else if (table === this.TABLES_CIRCUITS) {
|
||||||
proj = {
|
proj = {
|
||||||
_id: 1,
|
_id: 1,
|
||||||
@@ -2193,9 +2245,9 @@ export const shared_consts = {
|
|||||||
admins: 1,
|
admins: 1,
|
||||||
req_users: 1,
|
req_users: 1,
|
||||||
refused_users: 1,
|
refused_users: 1,
|
||||||
'mycities': 1,
|
mycities: 1,
|
||||||
//**ADDFIELD_CIRCUITS
|
//**ADDFIELD_CIRCUITS
|
||||||
}
|
};
|
||||||
} else if (table === this.TABLES_MYSKILLS) {
|
} else if (table === this.TABLES_MYSKILLS) {
|
||||||
proj = {
|
proj = {
|
||||||
recSkill: 1,
|
recSkill: 1,
|
||||||
@@ -2212,8 +2264,7 @@ export const shared_consts = {
|
|||||||
website: 1,
|
website: 1,
|
||||||
groupname: 1,
|
groupname: 1,
|
||||||
//**ADDFIELD_MYSKILL
|
//**ADDFIELD_MYSKILL
|
||||||
}
|
};
|
||||||
|
|
||||||
} else if (table === this.TABLES_MYHOSPS) {
|
} else if (table === this.TABLES_MYHOSPS) {
|
||||||
proj = {
|
proj = {
|
||||||
visibile: 1,
|
visibile: 1,
|
||||||
@@ -2229,8 +2280,7 @@ export const shared_consts = {
|
|||||||
website: 1,
|
website: 1,
|
||||||
link_maplocation: 1,
|
link_maplocation: 1,
|
||||||
groupname: 1,
|
groupname: 1,
|
||||||
}
|
};
|
||||||
|
|
||||||
} else if (table === this.TABLES_ATTIVITAS) {
|
} else if (table === this.TABLES_ATTIVITAS) {
|
||||||
proj = {
|
proj = {
|
||||||
recSkill: 1,
|
recSkill: 1,
|
||||||
@@ -2254,7 +2304,6 @@ export const shared_consts = {
|
|||||||
createdBy: 1,
|
createdBy: 1,
|
||||||
//**ADDFIELD_ATTIVITA
|
//**ADDFIELD_ATTIVITA
|
||||||
};
|
};
|
||||||
|
|
||||||
} else if (table === this.TABLES_MYBACHECAS) {
|
} else if (table === this.TABLES_MYBACHECAS) {
|
||||||
proj = {
|
proj = {
|
||||||
recSkill: 1,
|
recSkill: 1,
|
||||||
@@ -2278,25 +2327,23 @@ export const shared_consts = {
|
|||||||
link_maplocation: 1,
|
link_maplocation: 1,
|
||||||
groupname: 1,
|
groupname: 1,
|
||||||
//**ADDFIELD_MYBACHECAS
|
//**ADDFIELD_MYBACHECAS
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const proj_common = {
|
const proj_common = {
|
||||||
'mygrp.groupname': 1,
|
'mygrp.groupname': 1,
|
||||||
'mygrp.title': 1,
|
'mygrp.title': 1,
|
||||||
'mygrp.photos': 1,
|
'mygrp.photos': 1,
|
||||||
}
|
};
|
||||||
|
|
||||||
proj = Object.assign({}, proj, proj_common);
|
proj = Object.assign({}, proj, proj_common);
|
||||||
|
|
||||||
if (proj_add)
|
if (proj_add) proj = Object.assign({}, proj, proj_add);
|
||||||
proj = Object.assign({}, proj, proj_add);
|
|
||||||
|
|
||||||
return proj;
|
return proj;
|
||||||
},
|
},
|
||||||
|
|
||||||
getProjectForAll(proj_add: any, table?: string) {
|
getProjectForAll(proj_add: any, table?: string) {
|
||||||
|
|
||||||
let proj = {
|
let proj = {
|
||||||
idContribType: 1,
|
idContribType: 1,
|
||||||
idCity: 1,
|
idCity: 1,
|
||||||
@@ -2341,8 +2388,7 @@ export const shared_consts = {
|
|||||||
perm: 1,
|
perm: 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (proj_add)
|
if (proj_add) proj = Object.assign({}, proj, proj_add);
|
||||||
proj = Object.assign({}, proj, proj_add);
|
|
||||||
|
|
||||||
proj = { ...proj, ...this.REACTIONS_FIELD };
|
proj = { ...proj, ...this.REACTIONS_FIELD };
|
||||||
proj = { ...proj, ...this.ANNUNCI_FIELDS };
|
proj = { ...proj, ...this.ANNUNCI_FIELDS };
|
||||||
@@ -2356,28 +2402,26 @@ export const shared_consts = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
getDirectoryByTable(table: string, barre?: boolean) {
|
getDirectoryByTable(table: string, barre?: boolean) {
|
||||||
|
|
||||||
let add = '';
|
let add = '';
|
||||||
if (barre)
|
if (barre) add = '/';
|
||||||
add = '/';
|
|
||||||
|
|
||||||
if (table === 'myskills') {
|
if (table === 'myskills') {
|
||||||
return add + 'myservice' + add
|
return add + 'myservice' + add;
|
||||||
} else if (table === 'mybachecas') {
|
} else if (table === 'mybachecas') {
|
||||||
return add + 'mypage' + add
|
return add + 'mypage' + add;
|
||||||
} else if (table === 'myhosps') {
|
} else if (table === 'myhosps') {
|
||||||
return add + 'myhosps' + add
|
return add + 'myhosps' + add;
|
||||||
} else if (table === 'mygoods') {
|
} else if (table === 'mygoods') {
|
||||||
return add + 'mygood' + add
|
return add + 'mygood' + add;
|
||||||
} else if (table === 'mygroups') {
|
} else if (table === 'mygroups') {
|
||||||
return add + 'grp' + add
|
return add + 'grp' + add;
|
||||||
} else if (table === 'circuits') {
|
} else if (table === 'circuits') {
|
||||||
return add + 'circuit' + add
|
return add + 'circuit' + add;
|
||||||
} else if (table === 'catalogs') {
|
} else if (table === 'catalogs') {
|
||||||
return add + 'catalogs' + add
|
return add + 'catalogs' + add;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ''
|
return '';
|
||||||
},
|
},
|
||||||
|
|
||||||
STATUSSKILL_DI_PERSONA: 1,
|
STATUSSKILL_DI_PERSONA: 1,
|
||||||
@@ -2437,7 +2481,6 @@ export const shared_consts = {
|
|||||||
{ label: 'Discendente', value: -1 },
|
{ label: 'Discendente', value: -1 },
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
||||||
VERSIONI_PRODOTTO: [
|
VERSIONI_PRODOTTO: [
|
||||||
{
|
{
|
||||||
label: '[Nessuno]',
|
label: '[Nessuno]',
|
||||||
@@ -2484,7 +2527,6 @@ export const shared_consts = {
|
|||||||
value: 108,
|
value: 108,
|
||||||
color: 'red',
|
color: 'red',
|
||||||
},
|
},
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
AccountType: {
|
AccountType: {
|
||||||
@@ -2518,10 +2560,10 @@ export const shared_consts = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
DESTNEWSLETTER_ARRAY: [
|
DESTNEWSLETTER_ARRAY: [
|
||||||
{value: 0, label: 'LISTA_NEWSLETTER'},
|
{ value: 0, label: 'LISTA_NEWSLETTER' },
|
||||||
{value: 1, label: 'UTENTI'},
|
{ value: 1, label: 'UTENTI' },
|
||||||
{value: 2, label: 'DIARIO'},
|
{ value: 2, label: 'DIARIO' },
|
||||||
{value: 10, label: 'TEST'},
|
{ value: 10, label: 'TEST' },
|
||||||
],
|
],
|
||||||
|
|
||||||
WHERE_INSERT: {
|
WHERE_INSERT: {
|
||||||
@@ -2538,6 +2580,5 @@ export const shared_consts = {
|
|||||||
SCONTI_APPLICA: {
|
SCONTI_APPLICA: {
|
||||||
NESSUNO: 0,
|
NESSUNO: 0,
|
||||||
A_TUTTI: 1,
|
A_TUTTI: 1,
|
||||||
}
|
},
|
||||||
|
};
|
||||||
}
|
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import { CMyActivities } from '@src/components/CMyActivities'
|
|||||||
import { CECommerce } from '@src/components/CECommerce'
|
import { CECommerce } from '@src/components/CECommerce'
|
||||||
import { CStatMacro } from '@src/components/CStatMacro'
|
import { CStatMacro } from '@src/components/CStatMacro'
|
||||||
import { CSearchProduct } from '@src/components/CSearchProduct'
|
import { CSearchProduct } from '@src/components/CSearchProduct'
|
||||||
|
import { CPageViewStats } from '@src/components/CPageViewStats'
|
||||||
import { CQRCode } from '@src/components/CQRCode'
|
import { CQRCode } from '@src/components/CQRCode'
|
||||||
import { CAITools } from '@src/components/CAITools'
|
import { CAITools } from '@src/components/CAITools'
|
||||||
import { CCatalogo } from '@src/components/CCatalogo'
|
import { CCatalogo } from '@src/components/CCatalogo'
|
||||||
@@ -78,7 +79,7 @@ export default defineComponent({
|
|||||||
CVisuVideoPromoAndPDF, CECommerce, CCatalogo, CRaccolta, CAITools, CStatMacro,
|
CVisuVideoPromoAndPDF, CECommerce, CCatalogo, CRaccolta, CAITools, CStatMacro,
|
||||||
CMapComuni, CMapUsers, CMapGetCoordinates, CMapEditAddressByCoord,
|
CMapComuni, CMapUsers, CMapGetCoordinates, CMapEditAddressByCoord,
|
||||||
CDashGroup, CMovements, CGridOriz, CQRCode, CCatalogList,
|
CDashGroup, CMovements, CGridOriz, CQRCode, CCatalogList,
|
||||||
CSearchProduct, CRaccoltaCataloghi,
|
CSearchProduct, CRaccoltaCataloghi, CPageViewStats,
|
||||||
// , //CMapMarker,
|
// , //CMapMarker,
|
||||||
},
|
},
|
||||||
emits: ['selElemClick'],
|
emits: ['selElemClick'],
|
||||||
|
|||||||
0
src/components/CPageViewStats/CPageViewStats.scss
Executable file
120
src/components/CPageViewStats/CPageViewStats.ts
Executable file
@@ -0,0 +1,120 @@
|
|||||||
|
import { defineComponent, ref, onMounted } from 'vue';
|
||||||
|
import { tools } from '@tools';
|
||||||
|
import { Api } from 'app/src/store/Api';
|
||||||
|
|
||||||
|
interface WeeklyStat {
|
||||||
|
year: number;
|
||||||
|
week: number;
|
||||||
|
topPages: Array<{ url: string; count: number }>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default defineComponent({
|
||||||
|
name: 'CPageViewStats',
|
||||||
|
props: {},
|
||||||
|
emits: [],
|
||||||
|
setup() {
|
||||||
|
// Stati
|
||||||
|
const stats = ref({
|
||||||
|
total: 0,
|
||||||
|
today: 0,
|
||||||
|
week: 0,
|
||||||
|
month: 0,
|
||||||
|
topPages: [],
|
||||||
|
});
|
||||||
|
|
||||||
|
const selectedYear = ref(new Date().getFullYear());
|
||||||
|
const selectedWeek = ref(1);
|
||||||
|
const weeklyStats = ref([]);
|
||||||
|
|
||||||
|
const years = Array.from({ length: 3 }, (_, i) => new Date().getFullYear() - i);
|
||||||
|
const weeks = Array.from({ length: 52 }, (_, i) => i + 1);
|
||||||
|
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
name: 'url',
|
||||||
|
label: 'Pagina',
|
||||||
|
field: (row) => row.url,
|
||||||
|
format: (val) => val.replace(/^https?:\/\/[^/]+/, ''),
|
||||||
|
align: 'left',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'count',
|
||||||
|
label: 'Visite',
|
||||||
|
field: 'count',
|
||||||
|
align: 'right',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const users = ref([]);
|
||||||
|
const selectedUser = ref<{ label: string; value: string } | null>(null);
|
||||||
|
const uniqueMode = ref(false);
|
||||||
|
const userOptions = ref<{ label: string; value: string }[]>([]);
|
||||||
|
|
||||||
|
async function loadStats() {
|
||||||
|
try {
|
||||||
|
const params = {} as any;
|
||||||
|
if (selectedUser.value?.value) {
|
||||||
|
params.userId = selectedUser.value.value;
|
||||||
|
}
|
||||||
|
if (uniqueMode.value) {
|
||||||
|
params.unique = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
params.year = selectedYear.value;
|
||||||
|
params.week = selectedWeek.value;
|
||||||
|
|
||||||
|
// Carica statistiche generali
|
||||||
|
const statsRes = await Api.SendReq('/api/pageviews/stats', 'GET', params);
|
||||||
|
stats.value = statsRes.data;
|
||||||
|
|
||||||
|
// Carica statistiche settimanali
|
||||||
|
const weeklyRes = await Api.SendReq(
|
||||||
|
'/api/pageviews/weekly-top-pages',
|
||||||
|
'GET',
|
||||||
|
params
|
||||||
|
);
|
||||||
|
weeklyStats.value = weeklyRes.data;
|
||||||
|
|
||||||
|
// Se non ci sono utenti ancora caricati
|
||||||
|
if (users.value.length === 0) {
|
||||||
|
const usersRes = await Api.SendReq('/api/pageviews/users', 'GET', null);
|
||||||
|
users.value = usersRes.data;
|
||||||
|
|
||||||
|
const uniqueUsernamesOrIds = [
|
||||||
|
...new Set(
|
||||||
|
users.value.map((u: any) => u.username || u.userId).filter(Boolean)
|
||||||
|
),
|
||||||
|
];
|
||||||
|
|
||||||
|
userOptions.value = [
|
||||||
|
{ label: 'Tutti gli utenti', value: '' },
|
||||||
|
...uniqueUsernamesOrIds.map((name) => ({ label: name, value: name })),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Errore nel caricamento delle statistiche:', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
selectedWeek.value = tools.getWeekOfYear(new Date());
|
||||||
|
loadStats();
|
||||||
|
});
|
||||||
|
|
||||||
|
return {
|
||||||
|
stats,
|
||||||
|
weeklyStats,
|
||||||
|
users,
|
||||||
|
selectedUser,
|
||||||
|
userOptions,
|
||||||
|
loadStats,
|
||||||
|
tools,
|
||||||
|
uniqueMode,
|
||||||
|
columns,
|
||||||
|
years,
|
||||||
|
weeks,
|
||||||
|
selectedYear,
|
||||||
|
selectedWeek,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
});
|
||||||
153
src/components/CPageViewStats/CPageViewStats.vue
Executable file
@@ -0,0 +1,153 @@
|
|||||||
|
<template>
|
||||||
|
<q-page
|
||||||
|
class="q-pa-md"
|
||||||
|
v-if="stats"
|
||||||
|
>
|
||||||
|
<div class="row q-mb-md">
|
||||||
|
<div class="col">
|
||||||
|
<h5>Statistiche Visite</h5>
|
||||||
|
</div>
|
||||||
|
<div class="row q-mb-md items-center">
|
||||||
|
<q-toggle
|
||||||
|
v-model="uniqueMode"
|
||||||
|
label="Mostra solo pagine uniche per utente"
|
||||||
|
@update:model-value="loadStats"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<q-select
|
||||||
|
v-model="selectedUser"
|
||||||
|
:options="userOptions"
|
||||||
|
label="Filtra per utente"
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
style="min-width: 200px"
|
||||||
|
@update:model-value="loadStats"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row q-col-gutter-md">
|
||||||
|
<div class="col-xs-12 col-sm-6 col-md-4">
|
||||||
|
<q-card>
|
||||||
|
<q-card-section>
|
||||||
|
<div class="text-h6">Totale Pagine Visitate</div>
|
||||||
|
<div class="text-h4">{{ stats?.total }}</div>
|
||||||
|
</q-card-section>
|
||||||
|
</q-card>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-xs-12 col-sm-6 col-md-4">
|
||||||
|
<q-card>
|
||||||
|
<q-card-section>
|
||||||
|
<div class="text-h6">Pagine Oggi</div>
|
||||||
|
<div class="text-h4">{{ stats.today }}</div>
|
||||||
|
</q-card-section>
|
||||||
|
</q-card>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-xs-12 col-sm-6 col-md-4">
|
||||||
|
<q-card>
|
||||||
|
<q-card-section>
|
||||||
|
<div class="text-h6">Pagine Questa Settimana</div>
|
||||||
|
<div class="text-h4">{{ stats.week }}</div>
|
||||||
|
</q-card-section>
|
||||||
|
</q-card>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-xs-12 col-sm-6 col-md-4">
|
||||||
|
<q-card>
|
||||||
|
<q-card-section>
|
||||||
|
<div class="text-h6">Pagine Questo Mese</div>
|
||||||
|
<div class="text-h4">{{ stats.month }}</div>
|
||||||
|
</q-card-section>
|
||||||
|
</q-card>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="q-mt-md">
|
||||||
|
<h6>Pagine più visitate</h6>
|
||||||
|
<q-list
|
||||||
|
bordered
|
||||||
|
separator
|
||||||
|
>
|
||||||
|
<q-item
|
||||||
|
v-for="(page, index) in stats.topPages"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<q-item-section>{{ tools.escludiUrlDominio(page._id) }}</q-item-section>
|
||||||
|
<q-item-section side>{{ page.count }} visite</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</q-list>
|
||||||
|
</div>
|
||||||
|
<div class="q-mt-md">
|
||||||
|
<h6>Top Pagine per Settimana</h6>
|
||||||
|
<div class="row q-col-gutter-md">
|
||||||
|
<div class="col-6">
|
||||||
|
<q-select
|
||||||
|
v-model="selectedYear"
|
||||||
|
:options="years"
|
||||||
|
label="Anno"
|
||||||
|
style="max-width: 300px"
|
||||||
|
outlined
|
||||||
|
@update:model-value="loadStats"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<q-select
|
||||||
|
v-model="selectedWeek"
|
||||||
|
:options="
|
||||||
|
weeks.map((w) => {
|
||||||
|
const date = new Date(Date.UTC(selectedYear, 0, 4 + (w - 1) * 7));
|
||||||
|
const start = new Date(Date.UTC(selectedYear, 0, 1 + (w - 1) * 7));
|
||||||
|
const end = new Date(Date.UTC(selectedYear, 0, 7 + (w - 1) * 7));
|
||||||
|
return {
|
||||||
|
label: `dal ${start.toLocaleString('it-IT', { day: '2-digit', month: 'long' })} al ${end.toLocaleString('it-IT', { day: '2-digit', month: 'long' })}`,
|
||||||
|
value: w,
|
||||||
|
};
|
||||||
|
})
|
||||||
|
"
|
||||||
|
label="Settimana"
|
||||||
|
outlined
|
||||||
|
emit-value
|
||||||
|
map-options
|
||||||
|
@update:model-value="loadStats"
|
||||||
|
/>
|
||||||
|
<div class="col-auto">
|
||||||
|
<q-btn
|
||||||
|
:disable="selectedWeek === 1"
|
||||||
|
icon="chevron_left"
|
||||||
|
flat
|
||||||
|
round
|
||||||
|
dense
|
||||||
|
@click="selectedWeek--; loadStats()"
|
||||||
|
/>
|
||||||
|
<q-btn
|
||||||
|
:disable="selectedWeek === weeks.length"
|
||||||
|
icon="chevron_right"
|
||||||
|
flat
|
||||||
|
round
|
||||||
|
dense
|
||||||
|
@click="selectedWeek++; loadStats()"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<q-table
|
||||||
|
class="q-mt-md q-pa-sm"
|
||||||
|
:rows="weeklyStats"
|
||||||
|
:columns="columns"
|
||||||
|
row-key="url"
|
||||||
|
flat
|
||||||
|
bordered
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</q-page>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" src="./CPageViewStats.ts"></script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import './CPageViewStats.scss';
|
||||||
|
</style>
|
||||||
1
src/components/CPageViewStats/index.ts
Executable file
@@ -0,0 +1 @@
|
|||||||
|
export {default as CPageViewStats} from './CPageViewStats.vue'
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
const msg_website_it = {
|
const msg_website_it = {
|
||||||
ws: {
|
ws: {
|
||||||
sitename: 'Riso',
|
sitename: 'Gruppo Macro',
|
||||||
siteshortname: 'RISO',
|
siteshortname: 'Gruppo Macro',
|
||||||
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,29 +16,20 @@ 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',
|
|
||||||
orderinfo: 'Ordini Effettuati',
|
|
||||||
products: 'Prodotti',
|
|
||||||
productslist: 'Lista Prodotti',
|
|
||||||
collabora: 'Collabora',
|
|
||||||
storehouses: 'Magazzino',
|
|
||||||
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',
|
||||||
@@ -84,14 +75,12 @@ const msg_website_it = {
|
|||||||
eventodef: 'Evento:',
|
eventodef: 'Evento:',
|
||||||
prova: 'prova',
|
prova: 'prova',
|
||||||
dbop: 'Operazioni',
|
dbop: 'Operazioni',
|
||||||
|
dbopmacro: 'Operazioni Macro',
|
||||||
projall: 'Comunitari',
|
projall: 'Comunitari',
|
||||||
groups: 'Lista Gruppi',
|
groups: 'Lista Gruppi',
|
||||||
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',
|
||||||
@@ -120,16 +109,11 @@ const msg_website_it = {
|
|||||||
onlyif_logged: 'Solo se Loggati',
|
onlyif_logged: 'Solo se Loggati',
|
||||||
only_residenti: 'Solo Residenti',
|
only_residenti: 'Solo Residenti',
|
||||||
only_consiglio: 'Solo Consiglieri',
|
only_consiglio: 'Solo Consiglieri',
|
||||||
|
only_collab: 'Solo Collaboratori',
|
||||||
color: 'Colore',
|
color: 'Colore',
|
||||||
mainMenu: 'Menu Principale',
|
|
||||||
subtitle: 'Sottotitolo',
|
|
||||||
lang: 'Lingua',
|
|
||||||
keywords: 'Parole Chiave',
|
|
||||||
desctiption: 'Descrizione',
|
|
||||||
heightimg: 'Altezza Immagine',
|
|
||||||
},
|
},
|
||||||
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: '',
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* RISO APP
|
/* GRUPPOMACRO APP
|
||||||
*/
|
*/
|
||||||
import type {
|
import {
|
||||||
IListRoutes,
|
IListRoutes,
|
||||||
ILang,
|
ILang,
|
||||||
IPreloadImages,
|
IPreloadImages,
|
||||||
@@ -44,6 +44,7 @@ const firstPage = {
|
|||||||
infooter: true,
|
infooter: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function getDynamicPages(site: ISites): IListRoutes[] {
|
function getDynamicPages(site: ISites): IListRoutes[] {
|
||||||
|
|
||||||
const baseroutes: IListRoutes[] = [
|
const baseroutes: IListRoutes[] = [
|
||||||
@@ -70,34 +71,11 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 12,
|
order: 400,
|
||||||
path: '/goods',
|
path: '/test-lungo',
|
||||||
materialIcon: 'fas fa-tshirt',
|
materialIcon: 'fas fa-test',
|
||||||
name: 'mypages.goods',
|
name: 'mypages.test_lungo',
|
||||||
component: () => import('@src/root/goods/goods.vue'),
|
component: () => import('@src/views/testLungo/testLungo.vue'),
|
||||||
meta: { requiresAuth: true },
|
|
||||||
inmenu: true,
|
|
||||||
infooter: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
active: true,
|
|
||||||
order: 15,
|
|
||||||
path: '/services',
|
|
||||||
materialIcon: 'fas fa-house-user',
|
|
||||||
name: 'mypages.services',
|
|
||||||
component: () => import('@src/root/services/services.vue'),
|
|
||||||
meta: { requiresAuth: true },
|
|
||||||
inmenu: true,
|
|
||||||
infooter: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
active: true,
|
|
||||||
order: 15,
|
|
||||||
path: '/activities',
|
|
||||||
materialIcon: 'fas fa-house-user',
|
|
||||||
name: 'mypages.activities',
|
|
||||||
component: () => import('@src/root/activities/activities.vue'),
|
|
||||||
meta: { requiresAuth: true },
|
|
||||||
inmenu: false,
|
inmenu: false,
|
||||||
infooter: false,
|
infooter: false,
|
||||||
},
|
},
|
||||||
@@ -112,17 +90,6 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
inmenu: false,
|
inmenu: false,
|
||||||
infooter: false,
|
infooter: false,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
active: true,
|
|
||||||
order: 15,
|
|
||||||
path: '/hosps',
|
|
||||||
materialIcon: 'fas fa-bed',
|
|
||||||
name: 'mypages.hosp',
|
|
||||||
component: () => import('@src/root/hosp/hosp.vue'),
|
|
||||||
meta: { requiresAuth: true },
|
|
||||||
inmenu: true,
|
|
||||||
infooter: true,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
active: site.confpages && site.confpages.enableCircuits,
|
active: site.confpages && site.confpages.enableCircuits,
|
||||||
order: 16,
|
order: 16,
|
||||||
@@ -135,7 +102,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
infooter: true,
|
infooter: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
active: true,
|
active: site.confpages && site.confpages.enableEvents,
|
||||||
order: 20,
|
order: 20,
|
||||||
path: '/events',
|
path: '/events',
|
||||||
materialIcon: 'fas fa-bullhorn',
|
materialIcon: 'fas fa-bullhorn',
|
||||||
@@ -157,7 +124,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
infooter: false,
|
infooter: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
active: true,
|
active: site.confpages && site.confpages.showProfile,
|
||||||
order: 120,
|
order: 120,
|
||||||
path: '/myprofile',
|
path: '/myprofile',
|
||||||
materialIcon: 'fas fa-user',
|
materialIcon: 'fas fa-user',
|
||||||
@@ -168,7 +135,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
infooter: true,
|
infooter: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
active: true,
|
active: site.confpages && site.confpages.showProfile,
|
||||||
order: 120,
|
order: 120,
|
||||||
path: '/editprofile',
|
path: '/editprofile',
|
||||||
materialIcon: 'fas fa-user',
|
materialIcon: 'fas fa-user',
|
||||||
@@ -179,7 +146,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',
|
||||||
@@ -274,16 +241,6 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
inmenu: false,
|
inmenu: false,
|
||||||
infooter: false,
|
infooter: false,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
active: true,
|
|
||||||
order: 150,
|
|
||||||
path: '/sostieniilprogetto',
|
|
||||||
materialIcon: 'fas fa-hand-holding-heart',
|
|
||||||
name: 'pages.fundraising',
|
|
||||||
component: () => import('@src/root/fundraising/fundraising.vue'),
|
|
||||||
inmenu: false,
|
|
||||||
infooter: false,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 80,
|
order: 80,
|
||||||
@@ -302,7 +259,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
|||||||
|
|
||||||
export function firstimagehome() {
|
export function firstimagehome() {
|
||||||
|
|
||||||
const img = 'statics/images/background.jpg'
|
let img = 'statics/images/background.jpg'
|
||||||
return img
|
return img
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11138,6 +11138,19 @@ export const tools = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
escludiUrlDominio(url: string) {
|
||||||
|
const urlObj = new URL(url);
|
||||||
|
// da 'https://miodominio.com/...' diventa '/...'
|
||||||
|
|
||||||
|
return urlObj.pathname;
|
||||||
|
},
|
||||||
|
|
||||||
|
getWeekOfYear(data: Date) {
|
||||||
|
const startOfYear = new Date(data.getFullYear(), 0, 1);
|
||||||
|
const pastDaysOfYear = (data.getTime() - startOfYear.getTime()) / 86400000;
|
||||||
|
return Math.ceil((pastDaysOfYear + startOfYear.getDay() + 1) / 7);
|
||||||
|
},
|
||||||
|
|
||||||
// FINE !
|
// FINE !
|
||||||
|
|
||||||
// getLocale() {
|
// getLocale() {
|
||||||
|
|||||||
@@ -1056,6 +1056,8 @@ export const useUserStore = defineStore('UserStore', {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async addNewSite(paramquery: any) {
|
async addNewSite(paramquery: any) {
|
||||||
console.log(paramquery);
|
console.log(paramquery);
|
||||||
|
|
||||||
|
|||||||