aggiornamenti vari. prima di VITE

This commit is contained in:
Surya Paolo
2025-02-25 18:12:53 +01:00
parent f0098e57b2
commit 793c220f59
73 changed files with 1936 additions and 3592546 deletions

View File

@@ -1,20 +1,19 @@
APP_VERSION="1.1.22"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="18"
APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet"
DIRECTORY_SERVER="freeplanet_serverside"
SERVERDIR_WEBSITE=""
SERVERPW_WEBSITE=""
APP_URL="https://localhost"
URL_FACEBOOK="https://www.facebook.com/freeplanetapp"
PROVA_PAOLO="PROVA ENV FUNZIONA!"
LANG_DEFAULT="it"
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
MONGODB_HOST="https://localhost:3000"
LOGO_REG='gruppomacro-logo-full.png'
TEST_NAME="Surya"
TEST_SURNAME=""
LOGO_REG='riso-logo-full.png'
TEST_NAME="Paolo"
TEST_SURNAME="Arena"
TEST_EMAIL=""
TEST_USERNAME=""
TEST_PASSWORD=""
@@ -25,5 +24,5 @@ DEBUG="1"
TELEGRAM_SUPPORT=""
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
TEST_CELL=""
VUE_APP_ISTEST=1
VUE_APP_INLOCALE=1
VUE_APP_ISTEST="1"
VUE_APP_INLOCALE="1"

View File

@@ -24,4 +24,5 @@ DEBUG="1"
TELEGRAM_SUPPORT=""
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
TEST_CELL=""
VUE_APP_ISTEST=0
VUE_APP_ISTEST=0
API_KEY_MSSQL="m68yADSr123MIVIDA@154$DSAGVOK"

View File

@@ -25,3 +25,4 @@ TELEGRAM_SUPPORT=""
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
TEST_CELL=""
VUE_APP_ISTEST="0"
API_KEY_MSSQL="m68yADSr123MIVIDA@154$DSAGVOK"

View File

@@ -25,3 +25,4 @@ TELEGRAM_SUPPORT=""
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
TEST_CELL=""
VUE_APP_ISTEST=0
API_KEY_MSSQL="m68yADSr123MIVIDA@154$DSAGVOK"

View File

@@ -1,27 +1,27 @@
APP_VERSION="1.1.22"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="18"
APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet
DIRECTORY_SERVER=/var/www/freeplanet_serverside
SERVERDIR_WEBSITE="/var/www/gruppomacro.app"
DIRECTORY_SERVER=freeplanet_serverside
SERVERDIR_WEBSITE=riso.app
SERVERPW_WEBSITE=pwdadmin@1AOK
APP_URL="https://gruppomacro.app"
APP_URL="https://riso.app"
URL_FACEBOOK=""
PROVA_PAOLO=""
LANG_DEFAULT="it"
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
MONGODB_HOST="https://api.gruppomacro.app"
LOGO_REG='gruppomacro-logo-full.png'
MONGODB_HOST="https://www.freeplanet.app:3000"
LOGO_REG='riso-logo-full.png'
TEST_NAME=""
TEST_SURNAME=""
TEST_EMAIL=""
TEST_USERNAME=""
TEST_PASSWORD=""
TEST_APORTADOR="------"
PUBLICKEY_PUSH="BJgo8XR_upbnbMLWgCAUELo6DK7dRXffYAnFOxbaMMz5favBgcQBKT-eISqouO-jRad4Sw8l5nd2wCF6KorGiTc"
PUBLICKEY_PUSH="BNM-cEpTbPVc_ujXf3QOC8ggf7b-X44P44esfJUWqNOFq1XhWCoZJpOi71_cbXC5SnfO9HassQ6OouAYgtBA9Pw"
DEBUG="1"
TELEGRAM_SUPPORT=""
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
TEST_CELL=""
VUE_APP_ISTEST=0
VUE_APP_ISTEST=0

View File

@@ -25,3 +25,4 @@ TELEGRAM_SUPPORT=""
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
TEST_CELL=""
VUE_APP_ISTEST=1
API_KEY_MSSQL="m68yADSr123MIVIDA@154$DSAGVOK"

View File

@@ -25,3 +25,4 @@ TELEGRAM_SUPPORT=""
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
TEST_CELL=""
VUE_APP_ISTEST="1"
API_KEY_MSSQL="m68yADSr123MIVIDA@154$DSAGVOK"

View File

@@ -25,3 +25,4 @@ TELEGRAM_SUPPORT=""
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
TEST_CELL=""
VUE_APP_ISTEST=1
API_KEY_MSSQL="m68yADSr123MIVIDA@154$DSAGVOK"

View File

@@ -26,4 +26,6 @@ TELEGRAM_SUPPORT=""
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
TEST_CELL=""
VUE_APP_ISTEST=1
VUE_APP_INLOCALE=1
VUE_APP_INLOCALE=1
API_KEY_MSSQL="m68yADSr123MIVIDA@154$DSAGVOK"
SERVER_A_URL="http://51.77.156.69:3000"

View File

@@ -25,3 +25,4 @@ TELEGRAM_SUPPORT=""
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
TEST_CELL=""
VUE_APP_ISTEST=1
API_KEY_MSSQL="m68yADSr123MIVIDA@154$DSAGVOK"

View File

@@ -1,7 +1,7 @@
{
"name": "gruppomacro",
"version": "1.1.22",
"description": "GruppoMacro",
"description": "Gruppo Macro",
"productName": "Gruppo Macro",
"author": "Surya",
"private": true,
@@ -28,63 +28,61 @@
"@babel/plugin-proposal-export-namespace-from": "^7.18.9",
"@babel/plugin-proposal-json-strings": "^7.18.6",
"@babel/plugin-proposal-numeric-separator": "^7.18.6",
"@babel/runtime": "^7.25.7",
"@cubejs-client/core": "^0.36.4",
"@quasar/extras": "^1.16.12",
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.19",
"@types/leaflet": "^1.9.12",
"@vue/compat": "^3.5.10",
"@vue/compiler-sfc": "^3.5.10",
"@vue/eslint-config-standard": "^8.0.1",
"@babel/runtime": "^7.26.7",
"@cubejs-client/core": "^1.2.1",
"@quasar/extras": "^1.16.16",
"@quasar/quasar-ui-qcalendar": "^4.1.1",
"@types/leaflet": "^1.9.16",
"@vue/compat": "^3.5.13",
"@vue/compiler-sfc": "^3.5.13",
"@vue/eslint-config-standard": "^9.0.0",
"@vuelidate/core": "^2.0.3",
"@vuelidate/validators": "^2.0.4",
"acorn": "^8.12.1",
"acorn": "^8.14.0",
"animate.css": "^4.1.1",
"autoprefixer": "^10.4.20",
"axios": "^1.7.7",
"axios": "^1.7.9",
"bcryptjs": "^2.4.3",
"chart.js": "^4.4.4",
"core-js": "^3.38.1",
"crypto-browserify": "^3.12.0",
"chart.js": "^4.4.7",
"core-js": "^3.40.0",
"crypto-browserify": "^3.12.1",
"date-fns": "^4.1.0",
"dotenv": "^16.4.5",
"echarts": "5.5.1",
"eslint-plugin-n": "^17.10.3",
"dotenv": "^16.4.7",
"echarts": "5.6.0",
"eslint-plugin-n": "^17.15.1",
"eslint-plugin-quasar": "^1.1.0",
"graphql": "^16.9.0",
"graphql": "^16.10.0",
"graphql-tag": "^2.12.6",
"gsap": "^3.12.5",
"html2canvas": "^1.4.1",
"gsap": "^3.12.7",
"html2pdf.js": "^0.10.2",
"jquery": "^3.7.1",
"js-cookie": "^3.0.5",
"jsbarcode": "^3.11.6",
"jspdf": "^2.5.2",
"leaflet": "^1.9.4",
"leaflet-routing-machine": "^3.2.12",
"leaflet.markercluster": "^1.5.3",
"localforage": "^1.10.0",
"lodash": "^4.17.21",
"normalize.css": "^8.0.1",
"npm": "^10.8.3",
"npm": "^10.8.0",
"nprogress": "^0.2.0",
"pinia": "^2.2.4",
"pinia": "^2.3.1",
"qrcode-vue3": "^1.7.1",
"quasar": "^2.17.0",
"quasar": "^2.17.7",
"quasar-extras": "^2.0.9",
"register-service-worker": "^1.7.2",
"typescript-eslint": "^8.8.0",
"vee-validate": "^4.13.2",
"vue": "^3.5.10",
"rxjs": "^7.8.1",
"typescript-eslint": "^8.23.0",
"vee-validate": "^4.15.0",
"vue": "^3.5.13",
"vue-class-component": "^8.0.0-rc.1",
"vue-country-code": "^1.1.3",
"vue-echarts": "^7.0.3",
"vue-i18n": "^9.14.1",
"vue-i18n": "^11.1.0",
"vue-idb": "^0.2.0",
"vue-image-zoomer": "^2.4.1",
"vue-image-zoomer": "^2.4.4",
"vue-loader": "^17.4.2",
"vue-property-decorator": "^10.0.0-rc.3",
"vue-router": "^4.4.5",
"vue-router": "^4.5.0",
"vue-scroll-reveal": "^2.1.0",
"vue-social-sharing": "^4.0.0-alpha4",
"vue-svgicon": "^4.0.0-alpha.3",
@@ -96,53 +94,54 @@
"vuex-router-sync": "^6.0.0-rc.1"
},
"devDependencies": {
"@babel/core": "^7.25.7",
"@babel/plugin-transform-class-properties": "^7.25.7",
"@babel/plugin-transform-export-namespace-from": "^7.25.7",
"@babel/plugin-transform-json-strings": "^7.25.7",
"@babel/plugin-transform-numeric-separator": "^7.25.7",
"@babel/plugin-transform-runtime": "^7.25.7",
"@quasar/app-webpack": "^3.14.0",
"@babel/core": "^7.26.7",
"@babel/plugin-transform-class-properties": "^7.25.9",
"@babel/plugin-transform-export-namespace-from": "^7.25.9",
"@babel/plugin-transform-json-strings": "^7.25.9",
"@babel/plugin-transform-numeric-separator": "^7.25.9",
"@babel/plugin-transform-runtime": "^7.25.9",
"@quasar/app-webpack": "3.15.1",
"@types/bcryptjs": "^2.4.6",
"@types/dotenv": "^8.2.0",
"@types/google.maps": "^3.58.1",
"@types/jest": "^29.5.13",
"@types/jest": "^29.5.14",
"@types/js-cookie": "^3.0.6",
"@types/node": "22.7.4",
"@types/node": "22.13.1",
"@types/nprogress": "^0.2.3",
"@types/vue-tel-input": "^2.1.7",
"@types/vuelidate": "^0.7.21",
"@typescript-eslint/eslint-plugin": "^8.8.0",
"@typescript-eslint/parser": "^8.8.0",
"@types/vuelidate": "^0.7.22",
"@typescript-eslint/eslint-plugin": "^8.23.0",
"@typescript-eslint/parser": "^8.23.0",
"babel-loader": "^9.2.1",
"copy-webpack-plugin": "^12.0.2",
"eslint": "^9.11.1",
"eslint-config-prettier": "^9.1.0",
"eslint": "^9.19.0",
"eslint-config-prettier": "10.0.1",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^7.1.0",
"eslint-plugin-vue": "^9.28.0",
"eslint-plugin-promise": "^7.2.1",
"eslint-plugin-vue": "^9.32.0",
"file-loader": "^6.2.0",
"fork-ts-checker-webpack-plugin": "^9.0.2",
"friendly-errors-webpack-plugin": "^1.7.0",
"html-webpack-plugin": "^5.6.0",
"http-proxy-middleware": "^3.0.2",
"html-webpack-plugin": "^5.6.3",
"http-proxy-middleware": "^3.0.3",
"jest": "^29.7.0",
"json-loader": "^0.5.7",
"node-sass": "^9.0.0",
"npm-check-updates": "^17.1.3",
"nodemon": "^3.1.9",
"npm-check-updates": "^17.1.14",
"optimize-css-assets-webpack-plugin": "^6.0.1",
"parcel": "^2.12.0",
"postcss": "^8.4.47",
"parcel": "^2.13.3",
"postcss": "^8.5.1",
"postcss-loader": "^8.1.1",
"sass-loader": "^16.0.2",
"sass-loader": "^16.0.4",
"strip-ansi": "=7.1.0",
"ts-jest": "^29.2.5",
"ts-loader": "^9.5.1",
"typescript": "5.6.2",
"ts-loader": "^9.5.2",
"typescript": "5.7.3",
"vue-cli-plugin-element-ui": "^1.1.4",
"vueify": "^9.4.1",
"webpack": "^5.95.0",
"webpack": "^5.97.1",
"webpack-dashboard": "^3.3.8",
"workbox-webpack-plugin": "^7.1.0"
},
@@ -163,7 +162,7 @@
"not dead"
],
"engines": {
"node": ">= 18.18.0",
"node": ">= 22.13.1",
"npm": ">= 6.14.8",
"yarn": ">= 1.21.1"
}

View File

@@ -17,6 +17,8 @@ const webpack = require('webpack')
const helpers = require('./helpers')
const envparser = require('./config/envparser')
const package = require('./package.json');
// const ESLintPlugin = require('eslint-webpack-plugin')
module.exports = configure((ctx) => ({
@@ -37,12 +39,11 @@ module.exports = configure((ctx) => ({
// --> boot files are part of "main.js"
// 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: ['i18n', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'calendar', 'social-sharing', 'timeago'],
boot: ['i18n', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'calendar', 'social-sharing', 'timeago', 'guard'],
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
css: [
'app.scss',
// '~quasar-ui-qcalendar/src/css/calendar-day.sass'
'app.scss' // '~quasar-ui-qcalendar/src/css/calendar-day.sass'
],
// https://github.com/quasarframework/quasar/tree/dev/extras
@@ -87,6 +88,7 @@ module.exports = configure((ctx) => ({
// Full list of options: https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build
build: {
env: envparser(),
versionCode: package.version,
vueRouterMode: 'history',
vueCompiler: true,
gzip: false, // gzip true
@@ -248,6 +250,9 @@ module.exports = configure((ctx) => ({
'Cookies',
'Loading',
'AppVisibility',
'LocalStorage',
'SessionStorage',
],
get plugins_1() {
return this._plugins;

View File

@@ -39,7 +39,7 @@ module.exports = configure((ctx) => ({
// --> boot files are part of "main.js"
// 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: ['i18n', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'calendar', 'social-sharing', 'timeago'],
boot: ['i18n', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'calendar', 'social-sharing', 'timeago', 'guard'],
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
css: [

View File

@@ -39,7 +39,7 @@ module.exports = configure((ctx) => ({
// --> boot files are part of "main.js"
// 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: ['i18n', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'calendar', 'social-sharing', 'timeago'],
boot: ['i18n', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'calendar', 'social-sharing', 'timeago', 'guard'],
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
css: [

View File

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

View File

@@ -1,8 +1,8 @@
{
"name": "gruppomacro",
"name": "riso",
"version": "1.1.22",
"description": "Gruppo Macro",
"productName": "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.",
"productName": "Riso",
"author": "Surya",
"private": true,
"keywords": [],
@@ -28,32 +28,32 @@
"@babel/plugin-proposal-export-namespace-from": "^7.18.9",
"@babel/plugin-proposal-json-strings": "^7.18.6",
"@babel/plugin-proposal-numeric-separator": "^7.18.6",
"@babel/runtime": "^7.26.7",
"@cubejs-client/core": "^1.2.1",
"@quasar/extras": "^1.16.16",
"@quasar/quasar-ui-qcalendar": "^4.1.1",
"@types/leaflet": "^1.9.16",
"@vue/compat": "^3.5.13",
"@vue/compiler-sfc": "^3.5.13",
"@vue/eslint-config-standard": "^9.0.0",
"@babel/runtime": "^7.25.7",
"@cubejs-client/core": "^0.36.4",
"@quasar/extras": "^1.16.12",
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.19",
"@types/leaflet": "^1.9.12",
"@vue/compat": "^3.5.10",
"@vue/compiler-sfc": "^3.5.10",
"@vue/eslint-config-standard": "^8.0.1",
"@vuelidate/core": "^2.0.3",
"@vuelidate/validators": "^2.0.4",
"acorn": "^8.14.0",
"acorn": "^8.12.1",
"animate.css": "^4.1.1",
"autoprefixer": "^10.4.20",
"axios": "^1.7.9",
"axios": "^1.7.7",
"bcryptjs": "^2.4.3",
"chart.js": "^4.4.7",
"core-js": "^3.40.0",
"crypto-browserify": "^3.12.1",
"chart.js": "^4.4.4",
"core-js": "^3.38.1",
"crypto-browserify": "^3.12.0",
"date-fns": "^4.1.0",
"dotenv": "^16.4.7",
"echarts": "5.6.0",
"eslint-plugin-n": "^17.15.1",
"dotenv": "^16.4.5",
"echarts": "5.5.1",
"eslint-plugin-n": "^17.10.3",
"eslint-plugin-quasar": "^1.1.0",
"graphql": "^16.10.0",
"graphql": "^16.9.0",
"graphql-tag": "^2.12.6",
"gsap": "^3.12.7",
"gsap": "^3.12.5",
"html2pdf.js": "^0.10.2",
"jquery": "^3.7.1",
"js-cookie": "^3.0.5",
@@ -63,26 +63,25 @@
"localforage": "^1.10.0",
"lodash": "^4.17.21",
"normalize.css": "^8.0.1",
"npm": "^10.8.0",
"npm": "^10.8.3",
"nprogress": "^0.2.0",
"pinia": "^2.3.1",
"pinia": "^2.2.4",
"qrcode-vue3": "^1.7.1",
"quasar": "^2.17.7",
"quasar": "^2.17.0",
"quasar-extras": "^2.0.9",
"register-service-worker": "^1.7.2",
"rxjs": "^7.8.1",
"typescript-eslint": "^8.23.0",
"vee-validate": "^4.15.0",
"vue": "^3.5.13",
"typescript-eslint": "^8.8.0",
"vee-validate": "^4.13.2",
"vue": "^3.5.10",
"vue-class-component": "^8.0.0-rc.1",
"vue-country-code": "^1.1.3",
"vue-echarts": "^7.0.3",
"vue-i18n": "^11.1.0",
"vue-i18n": "^9.14.1",
"vue-idb": "^0.2.0",
"vue-image-zoomer": "^2.4.4",
"vue-image-zoomer": "^2.4.1",
"vue-loader": "^17.4.2",
"vue-property-decorator": "^10.0.0-rc.3",
"vue-router": "^4.5.0",
"vue-router": "^4.4.5",
"vue-scroll-reveal": "^2.1.0",
"vue-social-sharing": "^4.0.0-alpha4",
"vue-svgicon": "^4.0.0-alpha.3",
@@ -94,54 +93,54 @@
"vuex-router-sync": "^6.0.0-rc.1"
},
"devDependencies": {
"@babel/core": "^7.26.7",
"@babel/plugin-transform-class-properties": "^7.25.9",
"@babel/plugin-transform-export-namespace-from": "^7.25.9",
"@babel/plugin-transform-json-strings": "^7.25.9",
"@babel/plugin-transform-numeric-separator": "^7.25.9",
"@babel/plugin-transform-runtime": "^7.25.9",
"@quasar/app-webpack": "3.15.1",
"@babel/core": "^7.25.7",
"@babel/plugin-transform-class-properties": "^7.25.7",
"@babel/plugin-transform-export-namespace-from": "^7.25.7",
"@babel/plugin-transform-json-strings": "^7.25.7",
"@babel/plugin-transform-numeric-separator": "^7.25.7",
"@babel/plugin-transform-runtime": "^7.25.7",
"@quasar/app-webpack": "^3.14.0",
"@types/bcryptjs": "^2.4.6",
"@types/dotenv": "^8.2.0",
"@types/google.maps": "^3.58.1",
"@types/jest": "^29.5.14",
"@types/jest": "^29.5.13",
"@types/js-cookie": "^3.0.6",
"@types/node": "22.13.1",
"@types/node": "22.7.4",
"@types/nprogress": "^0.2.3",
"@types/vue-tel-input": "^2.1.7",
"@types/vuelidate": "^0.7.22",
"@typescript-eslint/eslint-plugin": "^8.23.0",
"@typescript-eslint/parser": "^8.23.0",
"@types/vuelidate": "^0.7.21",
"@typescript-eslint/eslint-plugin": "^8.8.0",
"@typescript-eslint/parser": "^8.8.0",
"babel-loader": "^9.2.1",
"copy-webpack-plugin": "^12.0.2",
"eslint": "^9.19.0",
"eslint-config-prettier": "10.0.1",
"eslint": "^9.11.1",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^7.2.1",
"eslint-plugin-vue": "^9.32.0",
"eslint-plugin-promise": "^7.1.0",
"eslint-plugin-vue": "^9.28.0",
"file-loader": "^6.2.0",
"fork-ts-checker-webpack-plugin": "^9.0.2",
"friendly-errors-webpack-plugin": "^1.7.0",
"html-webpack-plugin": "^5.6.3",
"http-proxy-middleware": "^3.0.3",
"html-webpack-plugin": "^5.6.0",
"http-proxy-middleware": "^3.0.2",
"jest": "^29.7.0",
"json-loader": "^0.5.7",
"node-sass": "^9.0.0",
"nodemon": "^3.1.9",
"npm-check-updates": "^17.1.14",
"nodemon": "^3.1.7",
"npm-check-updates": "^17.1.3",
"optimize-css-assets-webpack-plugin": "^6.0.1",
"parcel": "^2.13.3",
"postcss": "^8.5.1",
"parcel": "^2.12.0",
"postcss": "^8.4.47",
"postcss-loader": "^8.1.1",
"sass-loader": "^16.0.4",
"sass-loader": "^16.0.2",
"strip-ansi": "=7.1.0",
"ts-jest": "^29.2.5",
"ts-loader": "^9.5.2",
"typescript": "5.7.3",
"ts-loader": "^9.5.1",
"typescript": "5.6.2",
"vue-cli-plugin-element-ui": "^1.1.4",
"vueify": "^9.4.1",
"webpack": "^5.97.1",
"webpack": "^5.95.0",
"webpack-dashboard": "^3.3.8",
"workbox-webpack-plugin": "^7.1.0"
},
@@ -162,7 +161,7 @@
"not dead"
],
"engines": {
"node": ">= 22.13.1",
"node": ">= 18.18.0",
"npm": ">= 6.14.8",
"yarn": ">= 1.21.1"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

File diff suppressed because it is too large Load Diff

BIN
public/images/ferrara.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 KiB

BIN
public/images/riso_home.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

View File

@@ -43,7 +43,8 @@ module.exports = configure((ctx) => ({
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
css: [
'app.scss' // '~quasar-ui-qcalendar/src/css/calendar-day.sass'
'app.scss',
// '~quasar-ui-qcalendar/src/css/calendar-day.sass'
],
// https://github.com/quasarframework/quasar/tree/dev/extras
@@ -151,9 +152,9 @@ module.exports = configure((ctx) => ({
},
devServer: {
https: false,
port: 8089,
port: 8084,
open: false, // opens browser window automatically
hot: true, // Disable hot module replacement
hot: false, // Disable hot module replacement
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': '*',
@@ -252,7 +253,6 @@ module.exports = configure((ctx) => ({
'AppVisibility',
'LocalStorage',
'SessionStorage',
],
get plugins_1() {
return this._plugins;
@@ -313,9 +313,9 @@ module.exports = configure((ctx) => ({
},
manifest: {
name: 'Gruppo Macro',
short_name: 'GruppoMacro',
description: '',
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',
@@ -325,24 +325,54 @@ module.exports = configure((ctx) => ({
start_url: "/?homescreen=1",
icons: [
{
src: 'images/gm-android-icon-512x512.png',
src: 'images/riso-android-icon-512x512.png',
sizes: '512x512',
type: 'image/png',
},
{
src: 'images/gm-android-icon-192x192.png',
src: 'images/riso-android-icon-384x384.png',
sizes: '384x384',
type: 'image/png',
},
{
src: 'images/riso-android-icon-192x192.png',
sizes: '192x192',
type: 'image/png',
},
{
src: 'images/gm-apple-touch-icon.png',
src: 'images/riso-android-icon-144x144.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',
type: 'image/png',
},
],
related_applications: [{
"platform": "webapp",
"url": "https://www.gruppomacro.app/manifest.json"
"url": "https://www.riso.app/manifest.json"
}]
},
},
@@ -377,7 +407,7 @@ module.exports = configure((ctx) => ({
builder: {
// https://www.electron.build/configuration/configuration
appId: 'GruppoMacro',
appId: 'Riso',
},
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain

View File

@@ -8,6 +8,8 @@
import { boot } from 'quasar/wrappers'
import { useGlobalStore } from '@src/store/globalStore';
import { useUserStore } from '@src/store/UserStore';
import { tools } from '@src/store/Modules/tools';
export default boot(({ app, router }) => {
// ******************************************
@@ -19,13 +21,19 @@ export default boot(({ app, router }) => {
// the subsequent Middleware function.
router.beforeEach((to, from, next) => {
console.log('beforeEach ROUTER')
console.log('beforeEach ROUTER', from, to )
// Execute your command before each navigation
// executeCommand();
const globalStore = useGlobalStore()
const userStore = useUserStore()
try {
globalStore.editOn = false
if (userStore.isLogged && from.path !== to.path) {
// console.log('globalStore.editOn = false (prima era = ', globalStore.editOn, ')')
const pageKey = to.path
// console.log('pagek=', pageKey)
globalStore.editOn = tools.getCookie('edn_' + pageKey, '0') === '1'
}
} catch(e) {
}

View File

@@ -2454,5 +2454,9 @@ export const shared_consts = {
COMMUNITY_ACCOUNT: 2,
},
CmdQueryMs: {
GET: 0,
SET: 1,
},
}

View File

@@ -7,6 +7,7 @@ import { useQuasar } from 'quasar'
import { CTitleBanner } from '../CTitleBanner'
import { CCardState } from '../CCardState'
import { CCopyBtn } from '../CCopyBtn'
import { CViewTable } from '../CViewTable'
import { CMyValueDb } from '../CMyValueDb'
import { CPrice } from '../CPrice'
import { CText } from '../CText'
@@ -81,8 +82,8 @@ export default defineComponent({
},
components: {
CTitleBanner, CCardState, CCopyBtn, CMyValueDb, VuePdfApp, CPrice, CBarCode, CLabel,
CText
},
CText, CViewTable
},
setup(props, { emit }) {
const $q = useQuasar()
const { t } = useI18n()
@@ -92,7 +93,7 @@ export default defineComponent({
const listord = ref(<IOrderCart[]>[])
const sumval = ref(0)
const editOn = ref(false)
const loading = ref(false)
const indvariazSel = ref(-1)
@@ -103,10 +104,24 @@ export default defineComponent({
const fullscreenImage = ref(<any>null)
const apriSchedaPDF = ref(false)
const visufromgm = ref(false)
const updatefromgm = ref(false)
const showQtaDisponibile = ref(false)
const field_updated_fromGM = ref('')
// Crea una copia locale reattiva di modelValue
const optcatalogo = ref<IOptCatalogo>({ ...props.modelValue });
const editOn = computed({
get(): boolean {
return !!globalStore.editOn ? globalStore.editOn : false
},
set(value: boolean) {
return tools.updateEditOn(value)
}
})
// Watcher per sincronizzare le modifiche di modelValue
watch(() => props.modelValue, (newVal) => {
optcatalogo.value = { ...newVal };
@@ -309,7 +324,7 @@ export default defineComponent({
}
async function updateproductmodif() {
console.log('updateproductmodif')
// console.log('updateproductmodif')
try {
myproduct.value = await products.getProductById(props.id)
@@ -616,6 +631,20 @@ export default defineComponent({
return optcatalogo.value.areadistampa!.scale
}
async function refreshDataFromGM() {
}
async function refreshFieldFromGM(field: string) {
if (myproduct.value) {
loading.value = true
updatefromgm.value = true
field_updated_fromGM.value = ''
field_updated_fromGM.value = await globalStore.getGM_FieldOf_T_Web_Articoli(myproduct.value!.productInfo.sku!, field, shared_consts.CmdQueryMs.GET)
loading.value = false
}
}
onMounted(mounted)
onBeforeUnmount(beforeDestroy)
@@ -683,6 +712,13 @@ export default defineComponent({
getScale,
updateCatalogo,
optcatalogo,
visufromgm,
updatefromgm,
showQtaDisponibile,
field_updated_fromGM,
refreshFieldFromGM,
refreshDataFromGM,
loading,
}
}
})

View File

@@ -118,19 +118,84 @@
@click="click_opendetail()"
/>
</a>
<q-btn
v-if="
(tools.isManager() || tools.isEditor()) &&
!optcatalogo.generazionePDFInCorso &&
globalStore.editOn
"
icon="fas fa-pencil-alt"
color="primary"
@click.stop="modifOn = !modifOn"
dense
style="position: absolute; top: 0px; left: 0px; z-index: 3"
>
</q-btn>
<q-card-actions align="center" class="q-pa-none absolute-top-left">
<div class="row justify-center">
<q-fab
v-if="
(tools.isManager() || tools.isEditor()) &&
!optcatalogo.generazionePDFInCorso &&
editOn
"
color="primary"
icon="fas fa-pencil-alt"
direction="up"
flat
dense
>
<q-fab-action
v-if="
tools.isManager() &&
!optcatalogo.generazionePDFInCorso &&
editOn
"
icon="fas fa-pencil-alt"
label="Aggiorna da GM"
color="accent"
@click="refreshDataFromGM()"
/>
<q-fab-action
v-if="
tools.isManager() &&
!optcatalogo.generazionePDFInCorso &&
editOn
"
icon="fas fa-pencil-alt"
label="Visualizza su GM"
color="positive"
@click="
showQtaDisponibile = false;
visufromgm = true;
"
/>
<q-fab-action
v-if="
tools.isManager() &&
!optcatalogo.generazionePDFInCorso &&
editOn
"
icon="fas fa-eye"
label="Vedi Numero di Pagine (Da GM)"
color="positive"
@click="refreshFieldFromGM('Pagine')"
/>
<q-fab-action
v-if="
tools.isManager() &&
!optcatalogo.generazionePDFInCorso &&
editOn
"
icon="fas fa-pencil-alt"
label="Visualizza su GM (Tutti i campi)"
color="positive"
@click="
showQtaDisponibile = true;
visufromgm = true;
"
/>
<q-fab-action
v-if="
(tools.isManager() || tools.isEditor()) &&
!optcatalogo.generazionePDFInCorso &&
editOn
"
label="Modifica"
icon="fas fa-pencil-alt"
color="primary"
@click="modifOn = !modifOn"
/>
</q-fab>
</div>
</q-card-actions>
</div>
<!-- Testo sotto all'immagine -->
@@ -172,9 +237,7 @@
<CBarCode
:value="myproduct.productInfo.code"
:format="scheda.barcode.format"
:fontsize="
scheda.barcode.font?.size
"
:fontsize="scheda.barcode.font?.size"
:gap="
tools.adjustSize(optcatalogo, scheda.barcode.size?.gap)
"
@@ -186,7 +249,9 @@
)
)
"
:widthlines="tools.adjustSize(optcatalogo, scheda.barcode.widthlines)"
:widthlines="
tools.adjustSize(optcatalogo, scheda.barcode.widthlines)
"
:height="
tools.adjustSize(
optcatalogo,
@@ -251,9 +316,7 @@
<CBarCode
:value="myproduct.productInfo.code"
:format="scheda.barcode.format"
:fontsize="
scheda.barcode.font?.size
"
:fontsize="scheda.barcode.font?.size"
:gap="
tools.adjustSize(optcatalogo, scheda.barcode.size?.gap)
"
@@ -265,7 +328,9 @@
)
)
"
:widthlines="tools.adjustSize(optcatalogo, scheda.barcode.widthlines)"
:widthlines="
tools.adjustSize(optcatalogo, scheda.barcode.widthlines)
"
:height="
tools.adjustSize(optcatalogo, scheda.barcode.size?.height)
"
@@ -652,7 +717,11 @@
</div>
<div class="boxtitleval">
<div class="etichetta">Argomenti:</div>
{{ products.getCatProdsStrByCatProds(myproduct.productInfo.idCatProds) }}
{{
products.getCatProdsStrByCatProds(
myproduct.productInfo.idCatProds
)
}}
</div>
</div>
<div class="row">
@@ -838,6 +907,43 @@
</q-card-section>
</q-card>
</q-dialog>
<q-dialog v-if="visufromgm && myproduct" v-model="visufromgm">
<q-card class="dialog_card">
<q-toolbar class="bg-primary text-white">
<q-toolbar-title> Visu </q-toolbar-title>
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
</q-toolbar>
<q-card-section class="q-pa-xs inset-shadow">
<CViewTable
:options="{
nameTable: 'T_Web_Articoli',
campispeciali: true,
numrec: 100,
where: 'T.IdArticolo =' + myproduct.productInfo.sku,
showQtaDisponibile,
outhtml: true,
}"
>
</CViewTable>
</q-card-section>
</q-card>
</q-dialog>
<q-dialog v-if="updatefromgm && myproduct" v-model="updatefromgm">
<q-card class="dialog_card">
<q-toolbar class="bg-primary text-white">
<q-toolbar-title> Aggiorna da GM: </q-toolbar-title>
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
</q-toolbar>
<q-card-section class="q-pa-xs inset-shadow">
<q-inner-loading id="spinner" :showing="loading">
<q-spinner-tail color="primary" size="4em"> </q-spinner-tail>
</q-inner-loading>
<br />
Valore: {{ field_updated_fromGM }}
<br />
</q-card-section>
</q-card>
</q-dialog>
</div>
</template>

View File

@@ -1513,7 +1513,7 @@
rounded
outlined
v-model="myel.catalogo.editore"
:options="Products.publishers"
:options="globalStore.getTableJoinByName('publishers')"
@update:model-value="modifElem"
multiple
label="Editori"
@@ -1843,7 +1843,9 @@
rounded
outlined
v-model="recscheda.scheda.editore"
:options="Products.publishers"
:options="
globalStore.getTableJoinByName('publishers')
"
@update:model-value="modifElem"
multiple
label="Editori"

View File

@@ -19,7 +19,7 @@
<q-drawer
v-model="visuEditor"
v-if="selElem && editOn"
v-if="selElem && editOn && !tools.isObjectEmpty(selElem)"
show-if-above
:breakpoint="350"
side="right"

View File

View File

@@ -0,0 +1,59 @@
import {
PropType,
computed,
defineComponent, onBeforeMount, onBeforeUnmount, onMounted, ref, toRef, toRefs, watch,
} from 'vue'
import { tools } from '@store/Modules/tools'
import { IOptCatalogo, IMyScheda, IProduct, ISchedaSingola, IText, IOptQueryGM } from '@src/model'
import { useProducts } from '@store/Products'
import { useGlobalStore } from '@src/store/globalStore'
import { costanti } from '@costanti'
export default defineComponent({
name: 'CViewTable',
props: {
options: {
type: Object as PropType<IOptQueryGM>,
required: true,
},
},
setup(props, { attrs, slots, emit }) {
const globalStore = useGlobalStore()
const risultatoHTML = ref('')
const tabella = ref('')
const loading = ref(false)
async function mounted() {
if (props.options) {
loading.value = true
await getTabellaDaGM()
loading.value = false
}
}
async function getTabellaDaGM() {
tabella.value = props.options.nameTable
risultatoHTML.value = ''
risultatoHTML.value = await globalStore.getGM_Tabella(props.options)
}
onMounted(mounted)
return {
tools,
globalStore,
costanti,
getTabellaDaGM,
risultatoHTML,
tabella,
loading,
}
},
})

View File

@@ -0,0 +1,23 @@
<template>
<q-inner-loading id="spinner" :showing="loading">
<q-spinner-tail color="primary" size="4em"> </q-spinner-tail>
</q-inner-loading>
<div v-if="options">
<div class="text-center text-bold text-h6 text-blue">
Tabella: {{ options.nameTable }}<br>
</div>
<div class="text-center text-h7">
Query: {{ options.where }}<br>
</div>
risultatoHTML: {{risultatoHTML}}
<br><br>
<div v-html="risultatoHTML">
</div>
</div>
</template>
<script lang="ts" src="./CViewTable.ts">
</script>
<style lang="scss" scoped>
@import './CViewTable.scss';
</style>

View File

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

View File

@@ -80,6 +80,14 @@ export default defineComponent({
const leftDrawerOpen = ref(globalStore.leftDrawerOpen)
const editOn = computed({
get: () => globalStore.editOn,
set: val => {
tools.updateEditOn(val!)
},
})
const getClassColorHeader = computed(() => {
// if (tools.isTest()) return 'bg-light-blue'
// if (tools.isDebug()) return 'bg-info'
@@ -632,6 +640,7 @@ export default defineComponent({
userStore,
clickMenu3Orizz,
isEditor,
editOn,
}
},

View File

@@ -74,7 +74,7 @@
v-if="tools.isLogged() && (isAdmin() || tools.isEditor()|| tools.isGrafico())"
class="text-h7"
>
<q-toggle :icon="'fas fa-pencil-alt'" v-model="globalStore.editOn"> </q-toggle>
<q-toggle :icon="'fas fa-pencil-alt'" v-model="editOn"> </q-toggle>
</div>
<q-btn
v-if="!isonline() && site.confpages && site.confpages.showConnected"

View File

@@ -1,9 +1,9 @@
const msg_website_it = {
ws: {
sitename: 'Gruppo Macro',
siteshortname: 'Gruppo Macro',
description: '',
keywords: '',
sitename: 'Riso',
siteshortname: 'RISO',
description: 'Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.',
keywords: 'riso, piattaforma di scambio, rete italiana scambio orizzontale, riso app, riso piattaforma, scambio e baratto, momenta RIS',
},
hours: {
descr: 'Descrizione',
@@ -16,20 +16,29 @@ 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',
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',
presentazione: 'Presentazione',
presentazione2: 'Presentazione',
@@ -80,6 +89,9 @@ const msg_website_it = {
projectsShared: 'Condivisi da me',
myprojects: 'Privati',
favproj: 'Favoriti',
admin_ecommerce: 'ECommerce',
ecommerce: 'Prodotti',
ecommerce_menu: 'ECommerce1',
hours: 'Ore',
department: 'Uffici',
title: 'Titolo',
@@ -109,9 +121,15 @@ const msg_website_it = {
only_residenti: 'Solo Residenti',
only_consiglio: 'Solo Consiglieri',
color: 'Colore',
mainMenu: 'Menu Principale',
subtitle: 'Sottotitolo',
lang: 'Lingua',
keywords: 'Parole Chiave',
desctiption: 'Descrizione',
heightimg: 'Altezza Immagine',
},
msg: {
myAppName: 'Più che Buono',
myAppName: 'Riso',
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
underconstruction: 'App in costruzione...',
myDescriz: '',

View File

@@ -67,6 +67,39 @@ function getDynamicPages(site: ISites): IListRoutes[] {
inmenu: false,
infooter: false,
},
{
active: true,
order: 12,
path: '/goods',
materialIcon: 'fas fa-tshirt',
name: 'mypages.goods',
component: () => import('@/root/goods/goods.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 15,
path: '/services',
materialIcon: 'fas fa-house-user',
name: 'mypages.services',
component: () => import('@/root/services/services.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 15,
path: '/activities',
materialIcon: 'fas fa-house-user',
name: 'mypages.activities',
component: () => import('@/root/activities/activities.vue'),
meta: { requiresAuth: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 15,
@@ -78,6 +111,17 @@ function getDynamicPages(site: ISites): IListRoutes[] {
inmenu: false,
infooter: false,
},
{
active: true,
order: 15,
path: '/hosps',
materialIcon: 'fas fa-bed',
name: 'mypages.hosp',
component: () => import('@/root/hosp/hosp.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: site.confpages && site.confpages.enableCircuits,
order: 16,
@@ -90,7 +134,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
infooter: true,
},
{
active: site.confpages && site.confpages.enableEvents,
active: true,
order: 20,
path: '/events',
materialIcon: 'fas fa-bullhorn',
@@ -112,7 +156,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
infooter: false,
},
{
active: site.confpages && site.confpages.showProfile,
active: true,
order: 120,
path: '/myprofile',
materialIcon: 'fas fa-user',
@@ -123,7 +167,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
infooter: true,
},
{
active: site.confpages && site.confpages.showProfile,
active: true,
order: 120,
path: '/editprofile',
materialIcon: 'fas fa-user',
@@ -134,7 +178,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',
@@ -165,7 +209,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
meta: { requiresAuth: true, newpage: true },
inmenu: false,
infooter: false,
},
},
{
active: true,
order: 137,
@@ -229,6 +273,16 @@ function getDynamicPages(site: ISites): IListRoutes[] {
inmenu: 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,
order: 80,

View File

@@ -1575,4 +1575,16 @@ export interface IAttivita {
date_updated?: Date
createdBy?: string // Username del creatore (proponente)
}
export interface IOptQueryGM {
nameTable: string
campispeciali?: boolean
query?: string
numrec?: number
where?: string
fieldGM?: string
outhtml: boolean
showQtaDisponibile?: boolean
cmd?: number
}

View File

@@ -65,8 +65,6 @@ export interface INotify {
icon?: string
}
const { t } = useI18n()
export const tools = {
CAN_EDIT: 'q-ce',
TABBED_DASHBOARD: 't-db',
@@ -3977,7 +3975,7 @@ export const tools = {
},
appid() {
return process.env.APP_ID
return this.getIdApp()
},
getLabelByItem(item: any) {
@@ -4048,7 +4046,7 @@ export const tools = {
},
getIdApp() {
return process.env.APP_ID
return this.getEnv('APP_ID')
},
getappname(short: boolean) {
@@ -5776,7 +5774,7 @@ export const tools = {
}
console.log('registeredemail', email)
return Axios.post(VALIDATE_USER_URL, { idapp: process.env.APP_ID, email, key: process.env.PAO_APP_ID })
return Axios.post(VALIDATE_USER_URL, { idapp: this.getIdApp(), email, key: process.env.PAO_APP_ID })
.then(onSuccess)
.catch((err) => {
return true
@@ -5793,7 +5791,7 @@ export const tools = {
return res.status === PayloadMessageTypes.statusfound
}
return Axios.get(VALIDATE_USER_URL + '/users/' + process.env.APP_ID + '/' + username)
return Axios.get(VALIDATE_USER_URL + '/users/' + this.getIdApp() + '/' + username)
.then(onSuccess)
.catch((err) => {
return false
@@ -7891,12 +7889,21 @@ export const tools = {
},
getEnv(name: string) {
const config: any = {
try {
const value = import.meta.env[name]
return value
} catch (e) {
return ''
}
/*const config: any = {
// @ts-ignore
VUE_APP_BACKEND_API_URL: window?.appConfig?.VUE_APP_BACKEND_API_URL || process.env.VUE_APP_BACKEND_API_URL
}
return config[name]
return config[name]*/
},
getArrSector(table: string, rec: any) {
@@ -9237,11 +9244,17 @@ export const tools = {
globalStore.editOn = value
if (this.getCookie('edn') === '1' && !value) {
this.setCookie('edn', '0')
const pageKey = window.location.pathname;
const mykey = 'edn_' + pageKey
// console.log('mykey', mykey)
if (this.getCookie(mykey) === '1' && !value) {
this.setCookie(mykey, '0')
}
if (this.getCookie('edn') !== '1' && value) {
this.setCookie('edn', '1')
if (this.getCookie(mykey) !== '1' && value) {
this.setCookie(mykey, '1')
}
},
@@ -9667,6 +9680,7 @@ export const tools = {
},
// FINE !
// getLocale() {

View File

@@ -817,14 +817,18 @@ export const useProducts = defineStore('Products', {
if (product.storehouses.length === 1) {
order.idStorehouse = product.storehouses[0]._id
} else {
order.idStorehouse = globalStore.storehouses ? globalStore.storehouses[0]._id : ''
try {
order.idStorehouse = globalStore.storehouses?.length ? globalStore.storehouses[0]._id : ''
} catch (e) {
}
}
}
if (!order.idGasordine && order.quantitypreordered > 0) {
if (product.gasordine && product.gasordine._id) {
order.idGasordine = product.gasordine._id
} else {
order.idGasordine = globalStore.gasordines ? globalStore.gasordines[0]._id : ''
order.idGasordine = globalStore.gasordines?.length ? globalStore.gasordines[0]._id : ''
}
}

View File

@@ -1541,10 +1541,12 @@ export const useUserStore = defineStore('UserStore', {
await globalStore.checkUpdates()
}
const isok = await globalStore.loadAfterLogin()
const isok = await globalStore.loadLoginSite()
this.isLogged = isok && isLogged
await globalStore.loadAfterLogin()
// console.log('this.isLogged', this.isLogged, 'isok', isok, 'isLogged', isLogged)
if (globalStore.site.confpages && globalStore.site.confpages.enableTodos)

View File

@@ -14,6 +14,7 @@ import {
StateConnection,
IMyScheda,
ISchedaSingola,
IOptQueryGM,
} from '@model'
import { static_data } from '@src/db/static_data'
import * as Types from '@src/store/Api/ApiTypes'
@@ -1029,12 +1030,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
return prova
},
async loadAfterLogin() {
const userStore = useUserStore()
// console.log('loadAfterLogin')
this.clearDataAfterLoginOnlyIfActiveConnection()
async loadLoginSite() {
let isok = false
const $router = useRouter()
@@ -1045,15 +1041,23 @@ export const useGlobalStore = defineStore('GlobalStore', {
isok = true
}
return isok
},
async loadAfterLogin() {
const userStore = useUserStore()
// console.log('loadAfterLogin')
this.clearDataAfterLoginOnlyIfActiveConnection()
await userStore.loadListaEditori()
await globalroutines('readall', 'config', null)
if (tools.isLogged()) {
this.editOn = tools.getCookie('edn', '0') === '1'
const pageKey = window.location.pathname
this.editOn = tools.getCookie('edn_' + pageKey, '0') === '1'
}
return isok
},
async saveCfgServerKey(dataval: ICfgServer) {
@@ -1356,6 +1360,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
// console.log('res', res)
if (res && res.data) {
tools.updateMyData(res.data.ris)
this.aggiornaRecordInLocaleDopoUpdateSulServer(mydata, res.data)
if (res.data.rec) {
return res.data.rec
} else {
@@ -2162,10 +2168,15 @@ export const useGlobalStore = defineStore('GlobalStore', {
}
if (addall) {
myarr = [costanti.FILTER_TUTTI, ...myarr]
}
//myarr = [costanti.FILTER_TUTTI, ...myarr]
const mykey = fieldsTable.getKeyByTable(table)
const collab = fieldsTable.getLabelByTable(table)
let obj: any = {}
obj[mykey] = costanti.FILTER_TUTTI
obj[collab] = costanti.FILTER_TUTTI_STR
myarr = [obj, ...myarr]
}
if (addnone) {
const mykey = fieldsTable.getKeyByTable(table)
@@ -2489,6 +2500,55 @@ export const useGlobalStore = defineStore('GlobalStore', {
})
},
async getGM_Tabella(options: IOptQueryGM) {
const arrrec = await this.fetchTableContent(options);
return arrrec
},
async getGM_Lista_Argomenti(outhtml: boolean) {
const arrrec = await this.fetchTableContent({ nameTable: 'T_Web_Argomenti', numrec: 200, outhtml });
return arrrec
},
async getGM_FieldOf_T_Web_Articoli(sku: string, field: string, cmd: number) {
const options: IOptQueryGM = {
nameTable: 'T_Web_Articoli',
campispeciali: !field,
numrec: 100,
query: '',
where: 'T.IdArticolo =' + sku,
fieldGM: field,
showQtaDisponibile: false,
outhtml: false,
cmd,
}
const valueris = await this.fetchTableContent(options);
if (valueris && valueris[field]) {
console.log('valueris', valueris)
return valueris[field]
}
return null
},
async fetchTableContent(options: IOptQueryGM) {
try {
return Api.SendReq('/apisqlsrv/view-table', 'POST', { options })
.then((res) => {
return res.data.data
}).catch((error: any) => {
console.error('Error fetchTableContent: ', error)
})
} catch (error) {
console.error("Errore nel recupero della tabella:", error);
throw error;
}
},
async getMailInABox(cmd: string, record: any = undefined) {
const mydata = {
@@ -2521,5 +2581,26 @@ export const useGlobalStore = defineStore('GlobalStore', {
return this.getSchedeOpt
},
}
aggiornaRecordInLocaleDopoUpdateSulServer(datain: any, resdata: any) {
try {
if (datain.table) {
const mytablerec = this.getListByTable(datain.table)
if (mytablerec && resdata && resdata.rec) {
// Trova l'indice del record da aggiornare
const index = mytablerec.findIndex((item: any) => item._id === resdata.rec._id)
if (index !== -1 && index !== undefined) {
// Aggiorna il record mantenendo reattività
mytablerec![index] = { ...mytablerec[index], ...resdata.rec }
}
}
}
} catch (e) {
}
},
},
})

View File

@@ -11,6 +11,7 @@ import { useCircuitStore } from '@store/CircuitStore'
import { tools } from '@store/Modules/tools'
import { costanti } from '@costanti'
import { shared_consts } from '@src/common/shared_vuejs'
import { IOptQueryGM } from '@src/model'
export default defineComponent({
name: 'Dbop',
@@ -38,11 +39,13 @@ export default defineComponent({
const search = ref('')
const replace_username = ref('')
const risultato = ref('')
const risultatoHTML = ref('')
const incaricamento = ref(false)
const globalStore = useGlobalStore()
function EseguiFunz(miafunz: string, search_username?: string, replace_username?: string, valmin?: number, valmax?: number, circuitId?: string) {
const userStore = useUserStore()
const globalStore = useGlobalStore()
$q.dialog({
message: t('dialog.continue') + ' ' + miafunz + ' ?',
@@ -90,6 +93,16 @@ export default defineComponent({
})
}
async function getListaArg() {
risultatoHTML.value = ''
risultatoHTML.value = await globalStore.getGM_Lista_Argomenti(true)
}
async function getTabellaDaGM(options: IOptQueryGM) {
risultatoHTML.value = ''
risultatoHTML.value = await globalStore.getGM_Tabella(options)
}
return {
EseguiFunz,
tools,
@@ -108,6 +121,10 @@ export default defineComponent({
ris,
risultato,
search,
globalStore,
risultatoHTML,
getListaArg,
getTabellaDaGM,
}
},
})

View File

@@ -771,6 +771,16 @@
color="positive"
@click="EseguiFunz('MyElemSetIdPageInsteadThePah')"
></q-btn>
<q-btn
label="getGM_Lista_Argomenti"
color="positive"
@click="getListaArg()"
></q-btn>
<q-btn
label="getGM_Tabella Collane"
color="positive"
@click="getTabellaDaGM({ nometable:'T_Web_Collane', numrec: 500, ishtml: true})"
></q-btn>
<br />
</div>
@@ -779,6 +789,10 @@
<div class="results-content">
{{ risultato }}
</div>
<h2 v-if="!!risultatoHTML" class="results-title">Risultati HTML:</h2>
<div v-if="!!risultatoHTML" v-html="risultatoHTML">
</div>
</div>
<br />
<br />

View File

@@ -252,6 +252,12 @@ export default defineComponent({
return lista && lista.value && lista.value.hasOwnProperty('name') ? lista.value.name : ''
}
function getTitoloCatalogo(): string {
let trovatocatalogo = getCatalogoByMyPage.value
return trovatocatalogo ? trovatocatalogo.title : 'Catalogo'
}
function getImgIntroCatalogo(scheda: IMyScheda): IImg {
let trovatocatalogo = getCatalogoByMyPage.value
@@ -331,7 +337,11 @@ export default defineComponent({
if (trovatocatalogo) {
argomenti = trovatocatalogo.argomenti! || []
} else {
argomenti = def_argomenti || []
if (def_argomenti && def_argomenti.length > 0) {
argomenti = def_argomenti
} else {
argomenti = []
}
}
return argomenti
@@ -387,7 +397,7 @@ export default defineComponent({
// ha la priorità questo scelto sul catalogo
arrargomstr = getArgomentiDaFiltrare(optcatalogo.value.argomenti!)
} else {
arrargomstr = getArgomentiDaFiltrare([cat.value || ''])
arrargomstr = getArgomentiDaFiltrare(cat.value ? [cat.value] : [])
// catstr = cat.value || ''
}
@@ -505,7 +515,7 @@ export default defineComponent({
}
function populateDataWithlinkIdTemplate() {
console.log('populateDataWithlinkIdTemplate')
// console.log('populateDataWithlinkIdTemplate')
if (optcatalogo.value) {
@@ -521,7 +531,7 @@ export default defineComponent({
}
}
console.log(' FINE - populateDataWithlinkIdTemplate')
// console.log(' FINE - populateDataWithlinkIdTemplate')
}
@@ -706,7 +716,7 @@ export default defineComponent({
}
function generatearrProdToViewSorted() {
console.log('generatearrProdToViewSorted...')
// console.log('generatearrProdToViewSorted...')
try {
@@ -804,7 +814,7 @@ export default defineComponent({
// console.log('Fine Generazione')
}
console.log(' FINE - generatearrProdToViewSorted !')
// console.log(' FINE - generatearrProdToViewSorted !')
} catch (e) {
console.error('Err', e)
@@ -1207,6 +1217,7 @@ export default defineComponent({
getTestoIntroduttivo,
ispageCatalogata,
naviga,
getTitoloCatalogo,
}
}
})

View File

@@ -1,5 +1,9 @@
<template>
<q-page>
<div v-if="ispageCatalogata" class="text-bold text-h6 text-center text-blue">
{{ getTitoloCatalogo() }}
</div>
<q-tabs
v-if="optcatalogo.pdf && tools.isEditor()"
v-model="tabcatalogo"