Compare commits
150 Commits
VITE_1
...
feat/new_r
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
99d623da79 | ||
|
|
a305bd8493 | ||
|
|
d1a66ef4ea | ||
|
|
7c1946debe | ||
|
|
7aeced4232 | ||
|
|
6d78f82099 | ||
|
|
89a8d10eae | ||
|
|
6fdb101092 | ||
|
|
f238630dd7 | ||
|
|
a22eca0f58 | ||
|
|
a4ca394e49 | ||
|
|
5d35930dc8 | ||
|
|
a51bc5a8a2 | ||
|
|
8b6a636a96 | ||
|
|
2abdda3b44 | ||
|
|
3018542868 | ||
|
|
cfb830a0ad | ||
|
|
1bd41058a6 | ||
|
|
281be361ba | ||
|
|
2dca358cd3 | ||
|
|
05bf8ad495 | ||
|
|
145327a6ca | ||
|
|
b37204f543 | ||
|
|
e9fa53a637 | ||
|
|
9faaa1a4c3 | ||
|
|
8ab7594f16 | ||
|
|
3c5287a13c | ||
|
|
57436f088b | ||
|
|
05a3617103 | ||
|
|
05dc22dac6 | ||
|
|
4985e7565d | ||
|
|
fc569192e7 | ||
|
|
4eb8838dbc | ||
|
|
b8df3ea721 | ||
|
|
d812c6c799 | ||
|
|
a164db8bf3 | ||
|
|
7e156ca820 | ||
|
|
d179581b23 | ||
|
|
df98ec9471 | ||
|
|
eb0fb72c70 | ||
|
|
2f39d4f1d9 | ||
|
|
58db59a751 | ||
|
|
e827744f51 | ||
|
|
b07d4c822f | ||
|
|
fc1e9d4666 | ||
|
|
05c97ab231 | ||
|
|
d6c0bcf879 | ||
|
|
c8589e794f | ||
|
|
917cdaa754 | ||
|
|
e40bf8b73d | ||
|
|
95fa0b9ac0 | ||
|
|
cb3baf3dbb | ||
|
|
ac84755dbb | ||
|
|
cb0c26a43c | ||
|
|
63d0f865fd | ||
|
|
574f389200 | ||
|
|
4f4297ca21 | ||
|
|
5d8e38fea6 | ||
|
|
f1f3f5ad07 | ||
|
|
6013a624f6 | ||
|
|
85db3b4a61 | ||
|
|
31161b6a32 | ||
|
|
6779b0ea25 | ||
|
|
f12341f780 | ||
|
|
43938023ee | ||
|
|
969e7b726e | ||
|
|
d37797fdad | ||
|
|
2ce8a72286 | ||
|
|
be0d7efca2 | ||
|
|
68dac1b2f4 | ||
|
|
40ec5465b2 | ||
|
|
7f5ff3da64 | ||
|
|
ee5ac4e554 | ||
|
|
e7ead2e66a | ||
|
|
9e95fe622b | ||
|
|
4b65400d50 | ||
|
|
99fab39c4b | ||
|
|
bfc6ec04f6 | ||
|
|
1298184b2e | ||
|
|
f146b36173 | ||
|
|
286cc4e3a7 | ||
|
|
2dac04fb16 | ||
|
|
d99ad47483 | ||
|
|
56d1870bc1 | ||
|
|
664975b1fd | ||
|
|
06fe6eb861 | ||
|
|
12f816b738 | ||
|
|
94d844c104 | ||
|
|
72d5574fab | ||
|
|
5ba3bef8a1 | ||
|
|
67aaf719f4 | ||
|
|
884afe4eb5 | ||
|
|
3d2d1cbdd7 | ||
|
|
e0583044d7 | ||
|
|
fea40922cb | ||
|
|
8ff204657e | ||
|
|
859ba022fa | ||
|
|
810815a12a | ||
|
|
b7ecd60fc3 | ||
|
|
daeb865e93 | ||
|
|
685bc34bd0 | ||
|
|
9e0634da05 | ||
|
|
50015712f5 | ||
|
|
300b8434ef | ||
|
|
f30cbf072a | ||
|
|
fc8a954eb0 | ||
|
|
85faf11d27 | ||
|
|
89bbda59b3 | ||
|
|
ef48d7e741 | ||
|
|
6ed648f8b3 | ||
|
|
f9d73ae836 | ||
|
|
ef36cd5e11 | ||
|
|
82e10ef6cf | ||
|
|
6eb6f236e4 | ||
|
|
2cc8fcda03 | ||
|
|
57cfa5858b | ||
|
|
70f1e5cbf1 | ||
|
|
8a20186e59 | ||
|
|
721d2ac38c | ||
|
|
358f0d6816 | ||
|
|
493ebf51f3 | ||
|
|
ec19bc3b87 | ||
|
|
8d6c53803e | ||
|
|
fc015404a6 | ||
|
|
ae4efab0f3 | ||
|
|
6d0efaadb9 | ||
|
|
14375d6b15 | ||
|
|
383e0bb484 | ||
|
|
3616e2ca0f | ||
|
|
cea3bcfa0e | ||
|
|
9cfc308d09 | ||
|
|
79d1c5fe1d | ||
|
|
61c1dc3d0d | ||
|
|
7624f16723 | ||
|
|
285db5f995 | ||
|
|
2ba26f67cd | ||
|
|
4c82015f27 | ||
|
|
a09a49ac37 | ||
|
|
e9f37b3678 | ||
|
|
201b739c8c | ||
|
|
dfce2bc5eb | ||
|
|
564a621aad | ||
|
|
d190d4800e | ||
|
|
0f8721b144 | ||
|
|
f5b0e693d0 | ||
|
|
f187fb2146 | ||
|
|
404194b873 | ||
|
|
09d738f4e9 | ||
|
|
834203ffbb | ||
|
|
cc541b1e6f |
4
.env
@@ -1,6 +1,6 @@
|
|||||||
VITE_APP_VERSION="1.2.2"
|
VITE_APP_VERSION="1.2.87"
|
||||||
VITE_LANG_DEFAULT="it"
|
VITE_LANG_DEFAULT="it"
|
||||||
VITE_PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
VITE_PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||||
VITE_SERVICE_WORKER_FILE="sw-1.2.2.js"
|
VITE_SERVICE_WORKER_FILE="sw-1.2.87.js"
|
||||||
VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
|
VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
|
||||||
VITE_VUE_ROUTER_MODE="history"
|
VITE_VUE_ROUTER_MODE="history"
|
||||||
@@ -1,13 +1,14 @@
|
|||||||
VITE_MONGODB_HOST="https://localhost:3000"
|
|
||||||
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_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
|
DEBUG_VITE_APP_URL="https://192.168.8.182"
|
||||||
|
DEBUG_VITE_MONGODB_HOST="https://192.168.8.182:3000"
|
||||||
|
VITE_LOGO_REG='riso-logo-full.png'
|
||||||
|
VITE_PUBLICKEY_PUSH='BDncvMiUZmjaCG2Kr1V9N0_33hOG-AuNSbHSvL24y2dzBiUjAxKm02emx5SeJvz2IGmtRf6YqCgopeQwCwUmZw8'
|
||||||
|
VITE_DEBUG="1"
|
||||||
|
VITE_VUE_APP_ISTEST=0
|
||||||
|
VITE_VUE_APP_INLOCALE=1
|
||||||
|
DIRECTORY_LOCAL="myprojplanet_vite"
|
||||||
|
DIRECTORY_SERVER="freeplanet_serverside"
|
||||||
SERVERDIR_WEBSITE=""
|
SERVERDIR_WEBSITE=""
|
||||||
SERVERPW_WEBSITE=""
|
SERVERPW_WEBSITE=""
|
||||||
|
|||||||
@@ -3,9 +3,11 @@ VITE_APP_URL="https://gruppomacro.app"
|
|||||||
VITE_MONGODB_HOST="https://api.gruppomacro.app"
|
VITE_MONGODB_HOST="https://api.gruppomacro.app"
|
||||||
VITE_LOGO_REG='gruppomacro-logo-full.png'
|
VITE_LOGO_REG='gruppomacro-logo-full.png'
|
||||||
VITE_PUBLICKEY_PUSH="BJgo8XR_upbnbMLWgCAUELo6DK7dRXffYAnFOxbaMMz5favBgcQBKT-eISqouO-jRad4Sw8l5nd2wCF6KorGiTc"
|
VITE_PUBLICKEY_PUSH="BJgo8XR_upbnbMLWgCAUELo6DK7dRXffYAnFOxbaMMz5favBgcQBKT-eISqouO-jRad4Sw8l5nd2wCF6KorGiTc"
|
||||||
VITE_DEBUG="1"
|
VITE_DEBUG="0"
|
||||||
VITE_VUE_APP_ISTEST="0"
|
VITE_VUE_APP_ISTEST="0"
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL="myprojplanet_vite"
|
||||||
DIRECTORY_SERVER=/var/www/freeplanet_serverside
|
DIRECTORY_SERVER="/var/www/nodejs_piuchebuono_server"
|
||||||
SERVERDIR_WEBSITE="/var/www/gruppomacro.app"
|
SERVERDIR_WEBSITE="/var/www/gruppomacro.app"
|
||||||
SERVERPW_WEBSITE=pwdadmin@1AOK
|
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
||||||
|
PORT_SPA="8089"
|
||||||
|
PORT_PWA="8099"
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
VITE_APP_ID="13"
|
VITE_APP_ID="13"
|
||||||
VITE_APP_URL="https://test.riso.app"
|
VITE_APP_URL="https://riso.app"
|
||||||
VITE_MONGODB_HOST="https://testapi.riso.app"
|
VITE_MONGODB_HOST="https://api.riso.app"
|
||||||
VITE_LOGO_REG='riso-logo-full.png'
|
VITE_LOGO_REG='riso-logo-full.png'
|
||||||
VITE_PUBLICKEY_PUSH="BGXRf1TgcqocqD6J7qnRgCG7AvM2lxAoW7peb7UEzB4SxBb6DxGRdJ0UvD9ewnrB9KrSrh0-aDCODXBm7sZ1DDs"
|
VITE_PUBLICKEY_PUSH="BGXRf1TgcqocqD6J7qnRgCG7AvM2lxAoW7peb7UEzB4SxBb6DxGRdJ0UvD9ewnrB9KrSrh0-aDCODXBm7sZ1DDs"
|
||||||
VITE_DEBUG="1"
|
VITE_DEBUG="0"
|
||||||
VITE_VUE_APP_ISTEST=1
|
VITE_VUE_APP_ISTEST="0"
|
||||||
DIRECTORY_LOCAL=myprojplanet_vite
|
DIRECTORY_LOCAL=myprojplanet_vite
|
||||||
DIRECTORY_SERVER=/var/www/nodejs_test.riso_server
|
DIRECTORY_SERVER=/var/www/nodejs_riso_server
|
||||||
SERVERDIR_WEBSITE="/var/www/test.riso.app"
|
SERVERDIR_WEBSITE="/var/www/riso.app"
|
||||||
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
VITE_APP_ID="18"
|
VITE_APP_ID="18"
|
||||||
VITE_APP_URL="https://test.gruppomacro.app"
|
VITE_APP_URL="https://test.gruppomacro.app"
|
||||||
VITE_MONGODB_HOST="https://testapi.gruppomacro.app"
|
VITE_MONGODB_HOST="https://testapi.gruppomacro.app"
|
||||||
VITE_LOGO_REG='gruppomacro-logo-full.png'
|
VITE_LOGO_REG="gruppomacro-logo-full.png"
|
||||||
VITE_PUBLICKEY_PUSH="BJgo8XR_upbnbMLWgCAUELo6DK7dRXffYAnFOxbaMMz5favBgcQBKT-eISqouO-jRad4Sw8l5nd2wCF6KorGiTc"
|
VITE_PUBLICKEY_PUSH="BJgo8XR_upbnbMLWgCAUELo6DK7dRXffYAnFOxbaMMz5favBgcQBKT-eISqouO-jRad4Sw8l5nd2wCF6KorGiTc"
|
||||||
VITE_DEBUG="1"
|
VITE_DEBUG="1"
|
||||||
VITE_VUE_APP_ISTEST=1
|
VITE_VUE_APP_ISTEST="1"
|
||||||
DIRECTORY_LOCAL=myprojplanet_vite
|
DIRECTORY_LOCAL="myprojplanet_vite"
|
||||||
DIRECTORY_SERVER=/var/www/nodejs_test.piuchebuono_server
|
DIRECTORY_SERVER="/var/www/nodejs_test.piuchebuono_server"
|
||||||
SERVERDIR_WEBSITE="/var/www/test.gruppomacro.app"
|
SERVERDIR_WEBSITE="/var/www/test.gruppomacro.app"
|
||||||
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
||||||
@@ -5,7 +5,7 @@ VITE_LOGO_REG="piuchebuono-logo-full.png"
|
|||||||
VITE_PUBLICKEY_PUSH="BJgo8XR_upbnbMLWgCAUELo6DK7dRXffYAnFOxbaMMz5favBgcQBKT-eISqouO-jRad4Sw8l5nd2wCF6KorGiTc"
|
VITE_PUBLICKEY_PUSH="BJgo8XR_upbnbMLWgCAUELo6DK7dRXffYAnFOxbaMMz5favBgcQBKT-eISqouO-jRad4Sw8l5nd2wCF6KorGiTc"
|
||||||
VITE_DEBUG="1"
|
VITE_DEBUG="1"
|
||||||
VITE_VUE_APP_ISTEST="1"
|
VITE_VUE_APP_ISTEST="1"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="myprojplanet_vite"
|
||||||
DIRECTORY_SERVER="/var/www/nodejs_test.piuchebuono_server"
|
DIRECTORY_SERVER="/var/www/nodejs_test.piuchebuono_server"
|
||||||
SERVERDIR_WEBSITE="/var/www/test.piuchebuono.app"
|
SERVERDIR_WEBSITE="/var/www/test.piuchebuono.app"
|
||||||
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
VITE_APP_ID="13"
|
VITE_APP_ID="13"
|
||||||
VITE_APP_URL="https://test.riso.app"
|
VITE_APP_URL="https://test.riso.app"
|
||||||
VITE_MONGODB_HOST="https://testapi.riso.app"
|
VITE_MONGODB_HOST="https://testapi.riso.app"
|
||||||
VITE_LOGO_REG='riso-logo-full.png'
|
VITE_LOGO_REG="riso-logo-full.png"
|
||||||
VITE_PUBLICKEY_PUSH="BGXRf1TgcqocqD6J7qnRgCG7AvM2lxAoW7peb7UEzB4SxBb6DxGRdJ0UvD9ewnrB9KrSrh0-aDCODXBm7sZ1DDs"
|
VITE_PUBLICKEY_PUSH="BGXRf1TgcqocqD6J7qnRgCG7AvM2lxAoW7peb7UEzB4SxBb6DxGRdJ0UvD9ewnrB9KrSrh0-aDCODXBm7sZ1DDs"
|
||||||
VITE_DEBUG="1"
|
VITE_DEBUG="1"
|
||||||
VITE_VUE_APP_ISTEST=1
|
VITE_VUE_APP_ISTEST="1"
|
||||||
DIRECTORY_LOCAL=myprojplanet_vite
|
DIRECTORY_LOCAL="myprojplanet_vite"
|
||||||
DIRECTORY_SERVER=/var/www/nodejs_test.riso_server
|
DIRECTORY_SERVER="/var/www/nodejs_test.riso_server"
|
||||||
SERVERDIR_WEBSITE="/var/www/test.riso.app"
|
SERVERDIR_WEBSITE="/var/www/test.riso.app"
|
||||||
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
||||||
@@ -122,7 +122,7 @@ export default {
|
|||||||
'@typescript-eslint/no-unsafe-argument': 'off',
|
'@typescript-eslint/no-unsafe-argument': 'off',
|
||||||
|
|
||||||
// allow debugger during development only
|
// allow debugger during development only
|
||||||
'no-debugger': import.meta.env.NODE_ENV === 'production' ? 'error' : 'off',
|
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
||||||
|
|
||||||
'max-classes-per-file': 'off',
|
'max-classes-per-file': 'off',
|
||||||
'no-useless-constructor': 'off',
|
'no-useless-constructor': 'off',
|
||||||
|
|||||||
6
.gitignore
vendored
@@ -30,7 +30,11 @@ yarn-error.log
|
|||||||
/.scripts
|
/.scripts
|
||||||
key.pem
|
key.pem
|
||||||
public/upload/
|
public/upload/
|
||||||
upload/
|
/upload/
|
||||||
|
scripts/_ALL_SITES/gruppomacro.app/public/upload/
|
||||||
._yarn.lock
|
._yarn.lock
|
||||||
.gitignore
|
.gitignore
|
||||||
._upload
|
._upload
|
||||||
|
scripts/localhost.pem
|
||||||
|
scripts/localhost-key.pem
|
||||||
|
scripts/_ALL_SITES/gruppomacro.app/products/
|
||||||
10
.prettierrc
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"singleAttributePerLine": true,
|
||||||
|
"printWidth": 90,
|
||||||
|
"tabWidth": 2,
|
||||||
|
"useTabs": false,
|
||||||
|
"singleQuote": true,
|
||||||
|
"trailingComma": "es5",
|
||||||
|
"bracketSpacing": true,
|
||||||
|
"arrowParens": "always"
|
||||||
|
}
|
||||||
21
.vscode/launch.json
vendored
@@ -4,13 +4,6 @@
|
|||||||
// Per altre informazioni, visitare: https://go.microsoft.com/fwlink/?linkid=830387
|
// Per altre informazioni, visitare: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
|
||||||
"command": "npm run dev_noCheck",
|
|
||||||
"name": "DEV (no-check-TS)",
|
|
||||||
"request": "launch",
|
|
||||||
"type": "node-terminal",
|
|
||||||
"sourceMaps": false,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"command": "npm run dev",
|
"command": "npm run dev",
|
||||||
"name": "DEV",
|
"name": "DEV",
|
||||||
@@ -24,13 +17,6 @@
|
|||||||
"type": "node-terminal",
|
"type": "node-terminal",
|
||||||
"sourceMaps": false,
|
"sourceMaps": false,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"command": "npm run lint",
|
|
||||||
"name": "Lint (Check ERRORI)",
|
|
||||||
"request": "launch",
|
|
||||||
"type": "node-terminal",
|
|
||||||
"sourceMaps": false
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"command": "npm run pwa",
|
"command": "npm run pwa",
|
||||||
"name": "PWA",
|
"name": "PWA",
|
||||||
@@ -40,6 +26,13 @@
|
|||||||
"NODE_ENV": "development"
|
"NODE_ENV": "development"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"command": "npm run lint",
|
||||||
|
"name": "Lint (Check ERRORI)",
|
||||||
|
"request": "launch",
|
||||||
|
"type": "node-terminal",
|
||||||
|
"sourceMaps": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "chrome",
|
"type": "chrome",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
|
|||||||
10
.vscode/settings.json
vendored
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"editor.bracketPairColorization.enabled": true,
|
"editor.bracketPairColorization.enabled": true,
|
||||||
"editor.guides.bracketPairs": true,
|
"editor.guides.bracketPairs": true,
|
||||||
"editor.formatOnSave": true,
|
"editor.formatOnSave": false,
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||||
"editor.codeActionsOnSave": [],
|
"editor.codeActionsOnSave": [],
|
||||||
"eslint.validate": [
|
"eslint.validate": [
|
||||||
@@ -10,5 +10,11 @@
|
|||||||
"typescript",
|
"typescript",
|
||||||
"vue"
|
"vue"
|
||||||
],
|
],
|
||||||
"typescript.tsdk": "node_modules/typescript/lib"
|
"typescript.tsdk": "node_modules/typescript/lib",
|
||||||
|
"[vue]": {
|
||||||
|
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||||
|
},
|
||||||
|
"[typescript]": {
|
||||||
|
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
BIN
1_module copia.jpg
Normal file
|
After Width: | Height: | Size: 536 KiB |
1778
_LIMBO/Casi d'Uso Ollama - Esempi Pratici.html
Normal file
234
_LIMBO/QueryFdevCatalogo.sql
Normal file
@@ -0,0 +1,234 @@
|
|||||||
|
SELECT T.*
|
||||||
|
|
||||||
|
,i.DescrizioneTipologia
|
||||||
|
,f.DescrizioneStatoProdotto
|
||||||
|
,n.DescrizioneFormato
|
||||||
|
,y.DescrizioneCollana
|
||||||
|
,z.AutoriCompleti
|
||||||
|
,i2.DescrArgomento
|
||||||
|
,z3.CasaEditrice
|
||||||
|
,q.QtaDisponibile
|
||||||
|
FROM
|
||||||
|
T_WEB_Articoli T
|
||||||
|
WITH (noLock)
|
||||||
|
|
||||||
|
RIGHT JOIN
|
||||||
|
( SELECT IdArticolo,
|
||||||
|
MAX(DataOra) AS data
|
||||||
|
FROM
|
||||||
|
T_WEB_Articoli
|
||||||
|
GROUP BY
|
||||||
|
IdArticolo ) b
|
||||||
|
ON
|
||||||
|
T.IdArticolo = b.IdArticolo
|
||||||
|
AND T.DataOra = b.data
|
||||||
|
|
||||||
|
RIGHT JOIN
|
||||||
|
( SELECT
|
||||||
|
e.IdStatoProdotto,
|
||||||
|
e.Descrizione as DescrizioneStatoProdotto
|
||||||
|
FROM
|
||||||
|
T_WEB_StatiProdotto e
|
||||||
|
JOIN
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
IdStatoProdotto,
|
||||||
|
MAX(DataOra) as data1
|
||||||
|
FROM
|
||||||
|
T_WEB_StatiProdotto
|
||||||
|
GROUP BY
|
||||||
|
IdStatoProdotto ) c
|
||||||
|
ON
|
||||||
|
e.IdStatoProdotto = c.IdStatoProdotto
|
||||||
|
AND e.DataOra = c.data1 ) f
|
||||||
|
ON
|
||||||
|
T.IdStatoProdotto = f.IdStatoProdotto
|
||||||
|
RIGHT JOIN
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
g.IdTipologia,
|
||||||
|
g.Descrizione as DescrizioneTipologia
|
||||||
|
FROM
|
||||||
|
T_WEB_Tipologie g
|
||||||
|
JOIN
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
IdTipologia,
|
||||||
|
MAX(DataOra) as data1
|
||||||
|
FROM
|
||||||
|
T_WEB_Tipologie
|
||||||
|
GROUP BY
|
||||||
|
IdTipologia ) h
|
||||||
|
ON
|
||||||
|
g.IdTipologia = h.IdTipologia
|
||||||
|
AND g.DataOra = h.data1 ) i
|
||||||
|
ON
|
||||||
|
T.IdTipologia = i.IdTipologia
|
||||||
|
RIGHT JOIN
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
l.IdTipoFormato,
|
||||||
|
l.Descrizione as DescrizioneFormato
|
||||||
|
FROM
|
||||||
|
T_WEB_TipiFormato l
|
||||||
|
JOIN
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
IdTipoFormato,
|
||||||
|
MAX(DataOra) as data1
|
||||||
|
FROM
|
||||||
|
T_WEB_TipiFormato
|
||||||
|
GROUP BY
|
||||||
|
IdTipoFormato ) m
|
||||||
|
ON
|
||||||
|
l.IdTipoFormato = m.IdTipoFormato
|
||||||
|
AND l.DataOra = m.data1 ) n
|
||||||
|
ON
|
||||||
|
T.IdTipoFormato = n.IdTipoFormato
|
||||||
|
RIGHT JOIN
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
v.IdCollana,
|
||||||
|
v.Descrizione as DescrizioneCollana
|
||||||
|
FROM
|
||||||
|
T_WEB_Collane v
|
||||||
|
INNER JOIN
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
IdCollana,
|
||||||
|
MAX(ID) as MaxID
|
||||||
|
FROM
|
||||||
|
T_WEB_Collane
|
||||||
|
GROUP BY
|
||||||
|
IdCollana ) x
|
||||||
|
ON
|
||||||
|
v.IdCollana = x.IdCollana
|
||||||
|
AND v.ID = x.MaxID ) y
|
||||||
|
ON
|
||||||
|
T.IdCollana = y.IdCollana
|
||||||
|
RIGHT JOIN
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
g2.IdArgomento,
|
||||||
|
g2.Descrizione as DescrArgomento
|
||||||
|
FROM
|
||||||
|
T_WEB_Argomenti g2
|
||||||
|
INNER JOIN
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
IdArgomento,
|
||||||
|
MAX(DataOra) as data12
|
||||||
|
FROM
|
||||||
|
T_WEB_Argomenti
|
||||||
|
GROUP BY
|
||||||
|
IdArgomento ) h
|
||||||
|
ON
|
||||||
|
g2.IdArgomento = h.IdArgomento
|
||||||
|
AND g2.DataOra = h.data12 ) i2
|
||||||
|
ON
|
||||||
|
T.ListaArgomenti = i2.IdArgomento
|
||||||
|
RIGHT JOIN ( SELECT
|
||||||
|
o.Codice,
|
||||||
|
o.QtaDisponibile
|
||||||
|
FROM
|
||||||
|
T_WEB_Disponibile o
|
||||||
|
JOIN
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
Codice,
|
||||||
|
MAX(DataOra) as data1
|
||||||
|
FROM
|
||||||
|
T_WEB_Disponibile
|
||||||
|
GROUP BY
|
||||||
|
Codice ) p
|
||||||
|
ON
|
||||||
|
o.Codice = p.Codice
|
||||||
|
AND o.DataOra = p.data1 ) q
|
||||||
|
ON
|
||||||
|
T.IdArticolo = q.Codice
|
||||||
|
RIGHT JOIN
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
a3.IdMarchioEditoriale,
|
||||||
|
a3.Descrizione as CasaEditrice
|
||||||
|
FROM
|
||||||
|
T_WEB_MarchiEditoriali a3
|
||||||
|
JOIN
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
IdMarchioEditoriale,
|
||||||
|
MAX(DataOra) as maxData
|
||||||
|
FROM
|
||||||
|
T_WEB_MarchiEditoriali
|
||||||
|
GROUP BY
|
||||||
|
IdMarchioEditoriale ) aa3
|
||||||
|
ON
|
||||||
|
a3.IdMarchioEditoriale = aa3.IdMarchioEditoriale
|
||||||
|
AND a3.DataOra = aa3.maxData ) z3
|
||||||
|
ON
|
||||||
|
T.IdMarchioEditoriale = z3.IdMarchioEditoriale
|
||||||
|
RIGHT JOIN
|
||||||
|
(
|
||||||
|
SELECT T1.IdArticolo, STUFF((
|
||||||
|
SELECT
|
||||||
|
',' + ISNULL(A2.AutoreCompleto, '')
|
||||||
|
FROM
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
CAST('<root><x>' + REPLACE(T1.ListaAutori, ',', '</x><x>') + '</x></root>' AS XML) AS DataXML ) X
|
||||||
|
CROSS APPLY
|
||||||
|
X.DataXML.nodes('/root/x') AS A(x)
|
||||||
|
CROSS APPLY
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
TRY_CAST(LTRIM(RTRIM(A.x.value('.', 'VARCHAR(100)'))) AS INT) AS AutoreID ) CA
|
||||||
|
LEFT JOIN
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
a.IdAutore,
|
||||||
|
CONCAT(a.Nome, ' ', a.Cognome) AS AutoreCompleto
|
||||||
|
FROM
|
||||||
|
T_WEB_Autori a
|
||||||
|
RIGHT JOIN
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
IdAutore,
|
||||||
|
MAX(DataOra) AS maxData
|
||||||
|
FROM
|
||||||
|
T_WEB_Autori
|
||||||
|
GROUP BY
|
||||||
|
IdAutore ) aa
|
||||||
|
ON
|
||||||
|
a.IdAutore = aa.IdAutore
|
||||||
|
AND a.DataOra = aa.maxData
|
||||||
|
) A2
|
||||||
|
ON
|
||||||
|
CA.AutoreID = A2.IdAutore FOR XML PATH(''),
|
||||||
|
TYPE ).value('.', 'NVARCHAR(MAX)') ,
|
||||||
|
1 ,
|
||||||
|
1 ,
|
||||||
|
'') AS AutoriCompleti
|
||||||
|
FROM T_WEB_Articoli T1
|
||||||
|
WHERE t1.DataOra = (select max(DataOra) AS DataOra from T_web_articoli As h WHERE h.IdArticolo = T1.IdArticolo)
|
||||||
|
|
||||||
|
GROUP BY T1.IdArticolo, T1.ListaAutori ) z ON T.IdArticolo = z.IdArticolo
|
||||||
|
WHERE
|
||||||
|
(
|
||||||
|
DescrizioneStatoProdotto = 'In commercio'
|
||||||
|
OR DescrizioneStatoProdotto = 'Prossima uscita/pubblicazione'
|
||||||
|
OR DescrizioneStatoProdotto = 'Prossima uscita'
|
||||||
|
OR DescrizioneStatoProdotto = 'In prevendita'
|
||||||
|
OR DescrizioneStatoProdotto = '2023 in commercio')
|
||||||
|
AND (
|
||||||
|
DescrizioneTipologia = 'Libri'
|
||||||
|
OR DescrizioneTipologia = 'Cartolibro'
|
||||||
|
OR DescrizioneTipologia = 'Carte')
|
||||||
|
AND (
|
||||||
|
Ean13 NOT LIKE 'USATO%')
|
||||||
|
ORDER BY T.IdArticolo DESC, Id DESC
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1026
_LIMBO/aaa.scss
Normal file
284201
_LIMBO/dati.js
Normal file
467
_LIMBO/esempio.htm
Normal file
@@ -0,0 +1,467 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="it">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Carrello Prodotti - Design Moderno</title>
|
||||||
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
|
||||||
|
<style>
|
||||||
|
* {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||||
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||||
|
min-height: 100vh;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cart-container {
|
||||||
|
max-width: 800px;
|
||||||
|
margin: 0 auto;
|
||||||
|
background: rgba(255, 255, 255, 0.95);
|
||||||
|
backdrop-filter: blur(20px);
|
||||||
|
border-radius: 24px;
|
||||||
|
padding: 32px;
|
||||||
|
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.15);
|
||||||
|
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cart-header {
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cart-title {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
font-weight: 700;
|
||||||
|
background: linear-gradient(135deg, #667eea, #764ba2);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cart-subtitle {
|
||||||
|
color: #6b7280;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-card {
|
||||||
|
background: #ffffff;
|
||||||
|
border-radius: 20px;
|
||||||
|
padding: 24px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0.05);
|
||||||
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-card:hover {
|
||||||
|
transform: translateY(-4px);
|
||||||
|
box-shadow: 0 16px 40px rgba(0, 0, 0, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-card.removing {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateX(100px);
|
||||||
|
transition: all 0.5s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-content {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-image {
|
||||||
|
width: 80px;
|
||||||
|
height: 80px;
|
||||||
|
border-radius: 16px;
|
||||||
|
background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-size: 2rem;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-info {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-name {
|
||||||
|
font-size: 1.3rem;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #1f2937;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-price {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
color: #6b7280;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-total {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #059669;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quantity-controls {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 16px;
|
||||||
|
margin-top: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quantity-btn {
|
||||||
|
width: 48px;
|
||||||
|
height: 48px;
|
||||||
|
border: none;
|
||||||
|
border-radius: 12px;
|
||||||
|
background: linear-gradient(135deg, #667eea, #764ba2);
|
||||||
|
color: white;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.quantity-btn:hover:not(:disabled) {
|
||||||
|
transform: translateY(-2px);
|
||||||
|
box-shadow: 0 8px 20px rgba(102, 126, 234, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.quantity-btn:active {
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
.quantity-btn:disabled {
|
||||||
|
opacity: 0.5;
|
||||||
|
cursor: not-allowed;
|
||||||
|
transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quantity-display {
|
||||||
|
min-width: 60px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #1f2937;
|
||||||
|
background: #f8fafc;
|
||||||
|
border-radius: 12px;
|
||||||
|
padding: 12px 16px;
|
||||||
|
border: 2px solid #e2e8f0;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quantity-display.updating {
|
||||||
|
transform: scale(1.1);
|
||||||
|
border-color: #667eea;
|
||||||
|
background: #eff6ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.remove-btn {
|
||||||
|
background: linear-gradient(135deg, #ef4444, #dc2626);
|
||||||
|
color: white;
|
||||||
|
border: none;
|
||||||
|
border-radius: 12px;
|
||||||
|
padding: 12px 20px;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
font-weight: 500;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.remove-btn:hover {
|
||||||
|
transform: translateY(-2px);
|
||||||
|
box-shadow: 0 8px 20px rgba(239, 68, 68, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cart-summary {
|
||||||
|
background: linear-gradient(135deg, #667eea, #764ba2);
|
||||||
|
color: white;
|
||||||
|
border-radius: 20px;
|
||||||
|
padding: 24px;
|
||||||
|
margin-top: 32px;
|
||||||
|
text-align: center;
|
||||||
|
opacity: 1;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cart-summary.hidden {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateY(20px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.total-amount {
|
||||||
|
font-size: 2rem;
|
||||||
|
font-weight: 700;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.total-items {
|
||||||
|
opacity: 0.9;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkout-btn {
|
||||||
|
background: rgba(255, 255, 255, 0.2);
|
||||||
|
border: 2px solid rgba(255, 255, 255, 0.3);
|
||||||
|
color: white;
|
||||||
|
padding: 16px 32px;
|
||||||
|
border-radius: 12px;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
font-weight: 600;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
backdrop-filter: blur(10px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkout-btn:hover {
|
||||||
|
background: rgba(255, 255, 255, 0.3);
|
||||||
|
transform: translateY(-2px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.empty-cart {
|
||||||
|
text-align: center;
|
||||||
|
padding: 60px 20px;
|
||||||
|
color: #6b7280;
|
||||||
|
opacity: 0;
|
||||||
|
transition: opacity 0.5s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.empty-cart.show {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.empty-cart i {
|
||||||
|
font-size: 4rem;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes pulse {
|
||||||
|
0%, 100% { transform: scale(1); }
|
||||||
|
50% { transform: scale(1.05); }
|
||||||
|
}
|
||||||
|
|
||||||
|
.pulse {
|
||||||
|
animation: pulse 0.3s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fadeInUp {
|
||||||
|
from {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateY(30px);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
opacity: 1;
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.fade-in {
|
||||||
|
animation: fadeInUp 0.5s ease forwards;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.product-content {
|
||||||
|
flex-direction: column;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quantity-controls {
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.remove-btn {
|
||||||
|
margin: 16px auto 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="cart-container">
|
||||||
|
<div class="cart-header">
|
||||||
|
<h1 class="cart-title">
|
||||||
|
<i class="fas fa-shopping-cart"></i>
|
||||||
|
Il Tuo Carrello
|
||||||
|
</h1>
|
||||||
|
<p class="cart-subtitle">Gestisci i tuoi prodotti preferiti</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="empty-cart" class="empty-cart">
|
||||||
|
<i class="fas fa-shopping-bag"></i>
|
||||||
|
<h3>Il tuo carrello è vuoto</h3>
|
||||||
|
<p>Aggiungi alcuni prodotti per iniziare!</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="cart-items"></div>
|
||||||
|
|
||||||
|
<div id="cart-summary" class="cart-summary">
|
||||||
|
<div class="total-amount" id="total-amount">€0.00</div>
|
||||||
|
<p class="total-items" id="total-items">0 articoli nel carrello</p>
|
||||||
|
<button class="checkout-btn" onclick="checkout()">
|
||||||
|
<i class="fas fa-credit-card"></i>
|
||||||
|
Procedi al Checkout
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// Dati del carrello
|
||||||
|
let cartItems = [
|
||||||
|
{ id: 1, name: 'iPhone 15 Pro', price: 1199.99, quantity: 1, emoji: '📱' },
|
||||||
|
{ id: 2, name: 'MacBook Air M3', price: 1299.99, quantity: 2, emoji: '💻' },
|
||||||
|
{ id: 3, name: 'AirPods Pro', price: 279.99, quantity: 1, emoji: '🎧' },
|
||||||
|
{ id: 4, name: 'Apple Watch', price: 399.99, quantity: 1, emoji: '⌚' }
|
||||||
|
];
|
||||||
|
|
||||||
|
// Elementi DOM
|
||||||
|
const cartItemsContainer = document.getElementById('cart-items');
|
||||||
|
const emptyCartDiv = document.getElementById('empty-cart');
|
||||||
|
const cartSummaryDiv = document.getElementById('cart-summary');
|
||||||
|
const totalAmountSpan = document.getElementById('total-amount');
|
||||||
|
const totalItemsSpan = document.getElementById('total-items');
|
||||||
|
|
||||||
|
// Funzioni di calcolo
|
||||||
|
function calculateTotal() {
|
||||||
|
return cartItems.reduce((total, item) => total + (item.price * item.quantity), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
function calculateTotalItems() {
|
||||||
|
return cartItems.reduce((total, item) => total + item.quantity, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Funzione per creare HTML di un prodotto
|
||||||
|
function createProductHTML(item) {
|
||||||
|
return `
|
||||||
|
<div class="product-card fade-in" data-id="${item.id}">
|
||||||
|
<div class="product-content">
|
||||||
|
<div class="product-image">
|
||||||
|
${item.emoji}
|
||||||
|
</div>
|
||||||
|
<div class="product-info">
|
||||||
|
<h3 class="product-name">${item.name}</h3>
|
||||||
|
<p class="product-price">€${item.price.toFixed(2)} / unità</p>
|
||||||
|
<p class="product-total">Totale: €${(item.price * item.quantity).toFixed(2)}</p>
|
||||||
|
|
||||||
|
<div class="quantity-controls">
|
||||||
|
<button
|
||||||
|
class="quantity-btn"
|
||||||
|
onclick="decreaseQuantity(${item.id})"
|
||||||
|
${item.quantity <= 1 ? 'disabled' : ''}
|
||||||
|
>
|
||||||
|
<i class="fas fa-minus"></i>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div class="quantity-display" id="qty-${item.id}">
|
||||||
|
${item.quantity}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button
|
||||||
|
class="quantity-btn"
|
||||||
|
onclick="increaseQuantity(${item.id})"
|
||||||
|
>
|
||||||
|
<i class="fas fa-plus"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button
|
||||||
|
class="remove-btn"
|
||||||
|
onclick="removeItem(${item.id})"
|
||||||
|
>
|
||||||
|
<i class="fas fa-trash"></i>
|
||||||
|
Rimuovi
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Funzione per aggiornare l'interfaccia
|
||||||
|
function updateUI() {
|
||||||
|
// Aggiorna contenuto carrello
|
||||||
|
if (cartItems.length === 0) {
|
||||||
|
cartItemsContainer.innerHTML = '';
|
||||||
|
emptyCartDiv.classList.add('show');
|
||||||
|
cartSummaryDiv.classList.add('hidden');
|
||||||
|
} else {
|
||||||
|
emptyCartDiv.classList.remove('show');
|
||||||
|
cartSummaryDiv.classList.remove('hidden');
|
||||||
|
cartItemsContainer.innerHTML = cartItems.map(createProductHTML).join('');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Aggiorna totali
|
||||||
|
const total = calculateTotal();
|
||||||
|
const totalItems = calculateTotalItems();
|
||||||
|
|
||||||
|
totalAmountSpan.textContent = `€${total.toFixed(2)}`;
|
||||||
|
totalItemsSpan.textContent = `${totalItems} ${totalItems === 1 ? 'articolo' : 'articoli'} nel carrello`;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Funzioni per gestire quantità
|
||||||
|
function increaseQuantity(itemId) {
|
||||||
|
const item = cartItems.find(item => item.id === itemId);
|
||||||
|
if (item) {
|
||||||
|
item.quantity++;
|
||||||
|
|
||||||
|
// Animazione feedback
|
||||||
|
const qtyDisplay = document.getElementById(`qty-${itemId}`);
|
||||||
|
qtyDisplay.classList.add('updating');
|
||||||
|
setTimeout(() => qtyDisplay.classList.remove('updating'), 300);
|
||||||
|
|
||||||
|
updateUI();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function decreaseQuantity(itemId) {
|
||||||
|
const item = cartItems.find(item => item.id === itemId);
|
||||||
|
if (item && item.quantity > 1) {
|
||||||
|
item.quantity--;
|
||||||
|
|
||||||
|
// Animazione feedback
|
||||||
|
const qtyDisplay = document.getElementById(`qty-${itemId}`);
|
||||||
|
qtyDisplay.classList.add('updating');
|
||||||
|
setTimeout(() => qtyDisplay.classList.remove('updating'), 300);
|
||||||
|
|
||||||
|
updateUI();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Funzione per rimuovere prodotto
|
||||||
|
function removeItem(itemId) {
|
||||||
|
const productCard = document.querySelector(`[data-id="${itemId}"]`);
|
||||||
|
productCard.classList.add('removing');
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
cartItems = cartItems.filter(item => item.id !== itemId);
|
||||||
|
updateUI();
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Funzione checkout
|
||||||
|
function checkout() {
|
||||||
|
const total = calculateTotal();
|
||||||
|
const totalItems = calculateTotalItems();
|
||||||
|
alert(`Checkout per €${total.toFixed(2)} - ${totalItems} articoli`);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Inizializza l'interfaccia
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
updateUI();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
2969
_LIMBO/faq_ris.html
Normal file
0
src/rootgen/admin/gestoreordini_old/gestoreordini.scss → _LIMBO/grid.html
Executable file → Normal file
482
_LIMBO/prova.json
Normal file
@@ -0,0 +1,482 @@
|
|||||||
|
{
|
||||||
|
"_id": "67c081c848070128c51a85f9",
|
||||||
|
"idCity": [
|
||||||
|
6846
|
||||||
|
],
|
||||||
|
"visibility": [
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"photos": [],
|
||||||
|
"date_created": "2025-02-27T15:16:24.794Z",
|
||||||
|
"admins": [
|
||||||
|
{
|
||||||
|
"username": "EmanuelaBattiston",
|
||||||
|
"_id": "68e677e16e7cd5feeb0bb540",
|
||||||
|
"profile": {
|
||||||
|
"img": "file_1558.jpg"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Surya1977",
|
||||||
|
"_id": "68e677e16e7cd5feeb0bb541"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"date_updated": "2025-10-08T14:40:33.593Z",
|
||||||
|
"idCatGrp": [
|
||||||
|
34,
|
||||||
|
37,
|
||||||
|
18,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
41
|
||||||
|
],
|
||||||
|
"note": "",
|
||||||
|
"groupname": "GruppoYurta",
|
||||||
|
"website": "",
|
||||||
|
"link_telegram": "",
|
||||||
|
"title": "Gruppo Yurta Bagnarola Pn",
|
||||||
|
"descr": "Gruppo Yurta ",
|
||||||
|
"mycircuits": [
|
||||||
|
{
|
||||||
|
"_id": "64ede1fb25cbe40cd4a5f156",
|
||||||
|
"idCity": [
|
||||||
|
5429
|
||||||
|
],
|
||||||
|
"visibility": [],
|
||||||
|
"compara_valuta": 1,
|
||||||
|
"compara_euro": 1,
|
||||||
|
"valuta_per_euro": 1,
|
||||||
|
"deleted": false,
|
||||||
|
"numMembers": 48,
|
||||||
|
"status": 3,
|
||||||
|
"idapp": "13",
|
||||||
|
"name": "Circuito RIS Pordenone",
|
||||||
|
"path": "rispordenone",
|
||||||
|
"strProv": "PN",
|
||||||
|
"photos": [],
|
||||||
|
"color": "#ff5500",
|
||||||
|
"deperimento": false,
|
||||||
|
"transactionsEnabled": true,
|
||||||
|
"symbol": "RIS",
|
||||||
|
"fido_scoperto_default": 100,
|
||||||
|
"qta_max_default": 200,
|
||||||
|
"fido_scoperto_default_grp": 200,
|
||||||
|
"qta_max_default_grp": 400,
|
||||||
|
"totTransato": 1239.67,
|
||||||
|
"totCircolante": 298.8,
|
||||||
|
"date_created": "2023-08-29T12:18:03.441Z",
|
||||||
|
"admins": [
|
||||||
|
{
|
||||||
|
"_id": "652daab56db4df3e408322f7",
|
||||||
|
"username": "vivy_BORGO_cohousing",
|
||||||
|
"date": "2023-10-16T21:27:17.466Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "6771a4d6e9c03f06f5a6c8d1",
|
||||||
|
"username": "Rita_Lila",
|
||||||
|
"date": "2024-12-29T19:36:54.054Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"req_users": [
|
||||||
|
{
|
||||||
|
"username": "elpapais",
|
||||||
|
"date": "2024-07-26T13:48:57.280Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Funnyface",
|
||||||
|
"date": "2025-07-09T03:54:40.132Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"refused_users": [],
|
||||||
|
"req_groups": [
|
||||||
|
{
|
||||||
|
"groupname": "GruppoYurta",
|
||||||
|
"date": "2025-03-02T17:40:09.375Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"refused_groups": [],
|
||||||
|
"__v": 0,
|
||||||
|
"date_updated": "2024-12-12T17:10:07.913Z",
|
||||||
|
"createdBy": "surya1977",
|
||||||
|
"link_group": "https://t.me/+xXhBrUdnAL5mMjQ0",
|
||||||
|
"regulation": "",
|
||||||
|
"account": {
|
||||||
|
"_id": "67c497f9da76b7d9485f947d",
|
||||||
|
"importo_iniziale": 0,
|
||||||
|
"saldo": -4,
|
||||||
|
"totTransato": 4,
|
||||||
|
"saldo_pend": -4,
|
||||||
|
"totTransato_pend": 4,
|
||||||
|
"deleted": false,
|
||||||
|
"idapp": "13",
|
||||||
|
"username": "",
|
||||||
|
"groupname": "GruppoYurta",
|
||||||
|
"contocom": "",
|
||||||
|
"circuitId": "64ede1fb25cbe40cd4a5f156",
|
||||||
|
"deperibile": false,
|
||||||
|
"fidoConcesso": 200,
|
||||||
|
"qta_maxConcessa": 400,
|
||||||
|
"numtransactions": 1,
|
||||||
|
"date_created": "2025-03-02T17:40:09.370Z",
|
||||||
|
"__v": 0,
|
||||||
|
"date_updated": "2025-04-16T21:37:20.921Z"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "6530e646e6173ad77d585a59",
|
||||||
|
"idCity": [
|
||||||
|
4647
|
||||||
|
],
|
||||||
|
"visibility": [],
|
||||||
|
"compara_valuta": 1,
|
||||||
|
"compara_euro": 1,
|
||||||
|
"valuta_per_euro": 1,
|
||||||
|
"deleted": false,
|
||||||
|
"numMembers": 642,
|
||||||
|
"status": 3,
|
||||||
|
"name": "Circuito RIS Italia",
|
||||||
|
"subname": "",
|
||||||
|
"photos": [
|
||||||
|
{
|
||||||
|
"imagefile": "italia.jpg",
|
||||||
|
"_id": "65f4a4fced899d0f453a446e"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"admins": [
|
||||||
|
{
|
||||||
|
"username": "surya1977",
|
||||||
|
"_id": "6530e6466db4df3e4084e559"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "ElenaEspx",
|
||||||
|
"date": "2023-12-02T13:58:54.136Z",
|
||||||
|
"_id": "656b381e896ebebd4352fee5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "LorenzoVT",
|
||||||
|
"date": "2023-12-02T16:23:01.100Z",
|
||||||
|
"_id": "656b59e5896ebebd43537648"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "sergiomazzanti",
|
||||||
|
"date": "2023-12-03T19:26:14.691Z",
|
||||||
|
"_id": "656cd656e5afbcdb03401577"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "GaetanoSant",
|
||||||
|
"date": "2024-04-01T15:08:31.262Z",
|
||||||
|
"_id": "660acdef3d8585261113e378"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"color": "#ff5500",
|
||||||
|
"deperimento": false,
|
||||||
|
"transactionsEnabled": true,
|
||||||
|
"symbol": "RIS",
|
||||||
|
"fido_scoperto_default": 200,
|
||||||
|
"qta_max_default": 400,
|
||||||
|
"fido_scoperto_default_grp": 400,
|
||||||
|
"qta_max_default_grp": 800,
|
||||||
|
"totTransato": 3235.98,
|
||||||
|
"totCircolante": 1788.66,
|
||||||
|
"idapp": "13",
|
||||||
|
"path": "ris_italia",
|
||||||
|
"longdescr": "Questo è il Circuito RIS Italia Nazionale",
|
||||||
|
"strProv": "ITA",
|
||||||
|
"createdBy": "surya1977",
|
||||||
|
"date_updated": "2025-11-19T16:49:21.786Z",
|
||||||
|
"req_users": [
|
||||||
|
{
|
||||||
|
"username": "MaxCerba",
|
||||||
|
"date": "2024-01-12T19:30:09.852Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "moretta369",
|
||||||
|
"date": "2024-02-09T11:18:39.053Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Pennyboh",
|
||||||
|
"date": "2024-05-05T13:26:41.414Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "matslats",
|
||||||
|
"date": "2024-05-11T07:35:03.008Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Versolaluce",
|
||||||
|
"date": "2024-05-13T14:59:17.053Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Nonnapapera",
|
||||||
|
"date": "2024-05-25T16:02:41.456Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "bluvero",
|
||||||
|
"date": "2024-06-01T19:33:42.158Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "HERMESRISO",
|
||||||
|
"date": "2024-06-01T19:48:33.955Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "FrancescaM68",
|
||||||
|
"date": "2024-06-08T15:59:07.476Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "lucamop",
|
||||||
|
"date": "2024-06-09T19:06:30.339Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Cinestesico",
|
||||||
|
"date": "2024-06-14T13:51:24.025Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "BeataLei",
|
||||||
|
"date": "2024-06-25T08:10:37.853Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Fabiozero",
|
||||||
|
"date": "2024-06-30T18:46:27.545Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Giory73",
|
||||||
|
"date": "2024-07-03T06:37:53.633Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "nadia_blu",
|
||||||
|
"date": "2024-07-20T10:49:53.924Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "evi4evi",
|
||||||
|
"date": "2024-07-26T14:23:55.533Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "edellatorre",
|
||||||
|
"date": "2024-07-27T18:26:24.688Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Carlo",
|
||||||
|
"date": "2024-07-27T19:45:29.135Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Moscadri",
|
||||||
|
"date": "2024-08-01T16:00:26.567Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "LaMis69",
|
||||||
|
"date": "2024-08-03T18:59:12.520Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Lamary",
|
||||||
|
"date": "2024-08-05T04:42:44.688Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Germana69",
|
||||||
|
"date": "2024-08-20T20:05:04.213Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "A_tempesta",
|
||||||
|
"date": "2024-09-22T11:56:09.201Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "mammalella960",
|
||||||
|
"date": "2024-10-05T10:37:22.645Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "stefanci87",
|
||||||
|
"date": "2024-10-12T12:18:00.174Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "clarajam",
|
||||||
|
"date": "2024-10-17T09:25:01.462Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "iceborg500",
|
||||||
|
"date": "2024-11-20T12:14:51.302Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "francomario",
|
||||||
|
"date": "2024-12-09T21:57:33.730Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "cristy",
|
||||||
|
"date": "2024-12-17T11:40:35.792Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Carla57",
|
||||||
|
"date": "2025-01-22T17:50:35.640Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Dasete68",
|
||||||
|
"date": "2025-02-01T20:31:10.078Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Mariarosa2025",
|
||||||
|
"date": "2025-02-02T17:41:51.850Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Lisa_Logozzo_albergo_del_pastore",
|
||||||
|
"date": "2025-02-23T18:37:27.362Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "ClaudioPoliPaneArtigianale",
|
||||||
|
"date": "2025-03-11T11:15:59.012Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Dantib93",
|
||||||
|
"date": "2025-03-13T19:49:58.109Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "sbubovic",
|
||||||
|
"date": "2025-03-16T21:52:00.958Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "sdhc5Giancarlo",
|
||||||
|
"date": "2025-03-18T20:38:16.668Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Nicmestre",
|
||||||
|
"date": "2025-05-08T15:50:19.266Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "ginoarrigo",
|
||||||
|
"date": "2025-07-30T14:03:30.143Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "FaniaFida",
|
||||||
|
"date": "2025-08-12T06:38:18.063Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "SismaLux",
|
||||||
|
"date": "2025-08-16T14:49:00.704Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "valeindaco27",
|
||||||
|
"date": "2025-09-10T10:19:55.354Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "WellnessProfessionalTreatments1",
|
||||||
|
"date": "2025-09-17T19:24:29.998Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "manuelaFio",
|
||||||
|
"date": "2025-10-01T09:20:05.388Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Merylilith",
|
||||||
|
"date": "2025-10-02T09:48:26.045Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Fabiobrent",
|
||||||
|
"date": "2025-10-05T12:21:03.635Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "attenomis67",
|
||||||
|
"date": "2025-10-08T22:31:40.981Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "fioretav",
|
||||||
|
"date": "2025-10-18T03:13:23.773Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "Toninonature",
|
||||||
|
"date": "2025-10-19T21:18:37.796Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "surya4",
|
||||||
|
"date": "2025-11-11T16:37:40.467Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "surya8",
|
||||||
|
"date": "2025-11-18T22:20:20.964Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"refused_users": [],
|
||||||
|
"req_groups": [
|
||||||
|
{
|
||||||
|
"groupname": "PiuCheBuono(GaseBottega)",
|
||||||
|
"date": "2024-01-03T10:32:03.312Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"groupname": "GruppoYurta",
|
||||||
|
"date": "2025-03-02T17:41:12.653Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"groupname": "LaValledelMirto",
|
||||||
|
"date": "2025-05-17T06:42:18.212Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"refused_groups": [],
|
||||||
|
"date_created": "2023-10-19T08:18:14.701Z",
|
||||||
|
"__v": 0,
|
||||||
|
"regulation": "",
|
||||||
|
"showAlways": true,
|
||||||
|
"isCircItalia": true,
|
||||||
|
"circuitiExtraProv": true,
|
||||||
|
"account": {
|
||||||
|
"_id": "67c49838da76b7d9485f947f",
|
||||||
|
"importo_iniziale": 0,
|
||||||
|
"saldo": 17,
|
||||||
|
"totTransato": 17,
|
||||||
|
"saldo_pend": 17,
|
||||||
|
"totTransato_pend": 17,
|
||||||
|
"deleted": false,
|
||||||
|
"idapp": "13",
|
||||||
|
"username": "",
|
||||||
|
"groupname": "GruppoYurta",
|
||||||
|
"contocom": "",
|
||||||
|
"circuitId": "6530e646e6173ad77d585a59",
|
||||||
|
"deperibile": false,
|
||||||
|
"fidoConcesso": 400,
|
||||||
|
"qta_maxConcessa": 800,
|
||||||
|
"numtransactions": 4,
|
||||||
|
"date_created": "2025-03-02T17:41:12.650Z",
|
||||||
|
"__v": 0,
|
||||||
|
"date_updated": "2025-04-16T20:33:06.262Z"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"recCatGrp": [
|
||||||
|
{
|
||||||
|
"_id": 4,
|
||||||
|
"descr": "Prodotti Artigianali e Artistici",
|
||||||
|
"__v": 0,
|
||||||
|
"color": "#9C27B0",
|
||||||
|
"icon": "fa fa-paint-brush"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": 8,
|
||||||
|
"descr": "Servizi Formativi ed Educativi",
|
||||||
|
"__v": 0,
|
||||||
|
"color": "#FFC107",
|
||||||
|
"icon": "fa fa-book"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": 18,
|
||||||
|
"descr": "Salute e Benessere",
|
||||||
|
"__v": 0,
|
||||||
|
"color": "#E91E63",
|
||||||
|
"icon": "fa fa-heart"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": 34,
|
||||||
|
"descr": "Attività Ricreative e di Intrattenim.",
|
||||||
|
"__v": 0,
|
||||||
|
"color": "#FF5722",
|
||||||
|
"icon": "fa fa-music"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": 37,
|
||||||
|
"descr": "Cura della persona",
|
||||||
|
"__v": 0,
|
||||||
|
"color": "#FFEB3B",
|
||||||
|
"icon": "fa fa-user"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": 41,
|
||||||
|
"descr": "Servizi e prodotti per la casa",
|
||||||
|
"__v": 0,
|
||||||
|
"color": "#FF9800",
|
||||||
|
"icon": "fa fa-home"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
113
_LIMBO/queryoriginale.sql
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
SELECT TOP 10000
|
||||||
|
T.*
|
||||||
|
|
||||||
|
,i.DescrizioneTipologia
|
||||||
|
,f.DescrizioneStatoProdotto
|
||||||
|
,n.DescrizioneFormato
|
||||||
|
,y.DescrizioneCollana
|
||||||
|
,z.AutoriCompleti
|
||||||
|
,i2.DescrArgomento
|
||||||
|
,z3.CasaEditrice ,q.QtaDisponibile FROM T_WEB_Articoli T
|
||||||
|
JOIN(
|
||||||
|
SELECT IdArticolo, MAX(DataOra) AS data
|
||||||
|
FROM T_WEB_Articoli
|
||||||
|
GROUP BY IdArticolo
|
||||||
|
) b ON T.IdArticolo = b.IdArticolo AND T.DataOra = b.data LEFT JOIN(
|
||||||
|
SELECT e.IdStatoProdotto, e.Descrizione as DescrizioneStatoProdotto
|
||||||
|
FROM T_WEB_StatiProdotto e
|
||||||
|
JOIN(
|
||||||
|
SELECT IdStatoProdotto, MAX(DataOra) as data1
|
||||||
|
FROM T_WEB_StatiProdotto
|
||||||
|
GROUP BY IdStatoProdotto
|
||||||
|
) c ON e.IdStatoProdotto = c.IdStatoProdotto AND e.DataOra = c.data1
|
||||||
|
) f ON T.IdStatoProdotto = f.IdStatoProdotto
|
||||||
|
LEFT JOIN(
|
||||||
|
SELECT g.IdTipologia, g.Descrizione as DescrizioneTipologia
|
||||||
|
FROM T_WEB_Tipologie g
|
||||||
|
JOIN(
|
||||||
|
SELECT IdTipologia, MAX(DataOra) as data1
|
||||||
|
FROM T_WEB_Tipologie
|
||||||
|
GROUP BY IdTipologia
|
||||||
|
) h ON g.IdTipologia = h.IdTipologia AND g.DataOra = h.data1
|
||||||
|
) i ON T.IdTipologia = i.IdTipologia
|
||||||
|
LEFT JOIN(
|
||||||
|
SELECT l.IdTipoFormato, l.Descrizione as DescrizioneFormato
|
||||||
|
FROM T_WEB_TipiFormato l
|
||||||
|
JOIN(
|
||||||
|
SELECT IdTipoFormato, MAX(DataOra) as data1
|
||||||
|
FROM T_WEB_TipiFormato
|
||||||
|
GROUP BY IdTipoFormato
|
||||||
|
) m ON l.IdTipoFormato = m.IdTipoFormato AND l.DataOra = m.data1
|
||||||
|
) n ON T.IdTipoFormato = n.IdTipoFormato
|
||||||
|
LEFT JOIN(
|
||||||
|
SELECT v.IdCollana, v.Descrizione as DescrizioneCollana
|
||||||
|
FROM T_WEB_Collane v
|
||||||
|
INNER JOIN(
|
||||||
|
SELECT IdCollana, MAX(ID) as MaxID
|
||||||
|
FROM T_WEB_Collane
|
||||||
|
GROUP BY IdCollana
|
||||||
|
) x ON v.IdCollana = x.IdCollana AND v.ID = x.MaxID
|
||||||
|
) y ON T.IdCollana = y.IdCollana
|
||||||
|
LEFT JOIN(
|
||||||
|
SELECT g2.IdArgomento, g2.Descrizione as DescrArgomento
|
||||||
|
FROM T_WEB_Argomenti g2
|
||||||
|
INNER JOIN(
|
||||||
|
SELECT IdArgomento, MAX(DataOra) as data12
|
||||||
|
FROM T_WEB_Argomenti
|
||||||
|
GROUP BY IdArgomento
|
||||||
|
) h ON g2.IdArgomento = h.IdArgomento AND g2.DataOra = h.data12
|
||||||
|
) i2 ON T.ListaArgomenti = i2.IdArgomento
|
||||||
|
LEFT JOIN(
|
||||||
|
SELECT
|
||||||
|
T1.IdArticolo,
|
||||||
|
STUFF((
|
||||||
|
SELECT ',' + ISNULL(A2.AutoreCompleto, '')
|
||||||
|
FROM(
|
||||||
|
SELECT CAST('<root><x>' + REPLACE(T1.ListaAutori, ',', '</x><x>') + '</x></root>' AS XML) AS DataXML
|
||||||
|
) X
|
||||||
|
CROSS APPLY X.DataXML.nodes('/root/x') AS A(x)
|
||||||
|
CROSS APPLY(
|
||||||
|
SELECT TRY_CAST(LTRIM(RTRIM(A.x.value('.', 'VARCHAR(100)'))) AS INT) AS AutoreID
|
||||||
|
) CA
|
||||||
|
JOIN(
|
||||||
|
SELECT a.IdAutore, CONCAT(a.Nome, ' ', a.Cognome) AS AutoreCompleto
|
||||||
|
FROM T_WEB_Autori a
|
||||||
|
JOIN(
|
||||||
|
SELECT IdAutore, MAX(DataOra) AS maxData
|
||||||
|
FROM T_WEB_Autori
|
||||||
|
GROUP BY IdAutore
|
||||||
|
) aa ON a.IdAutore = aa.IdAutore AND a.DataOra = aa.maxData
|
||||||
|
) A2 ON CA.AutoreID = A2.IdAutore
|
||||||
|
FOR XML PATH(''), TYPE
|
||||||
|
).value('.', 'NVARCHAR(MAX)'), 1, 1, '') AS AutoriCompleti
|
||||||
|
FROM T_WEB_Articoli T1
|
||||||
|
GROUP BY T1.IdArticolo, T1.ListaAutori
|
||||||
|
) z ON T.IdArticolo = z.IdArticolo
|
||||||
|
LEFT JOIN(
|
||||||
|
SELECT a3.IdMarchioEditoriale, a3.Descrizione as CasaEditrice
|
||||||
|
FROM T_WEB_MarchiEditoriali a3
|
||||||
|
JOIN(
|
||||||
|
SELECT IdMarchioEditoriale, MAX(DataOra) as maxData
|
||||||
|
FROM T_WEB_MarchiEditoriali
|
||||||
|
GROUP BY IdMarchioEditoriale
|
||||||
|
) aa3 ON a3.IdMarchioEditoriale = aa3.IdMarchioEditoriale AND a3.DataOra = aa3.maxData
|
||||||
|
) z3 ON T.IdMarchioEditoriale = z3.IdMarchioEditoriale LEFT JOIN(
|
||||||
|
SELECT o.Codice, o.QtaDisponibile
|
||||||
|
FROM T_WEB_Disponibile o
|
||||||
|
JOIN(
|
||||||
|
SELECT Codice, MAX(DataOra) as data1
|
||||||
|
FROM T_WEB_Disponibile
|
||||||
|
GROUP BY Codice
|
||||||
|
) p ON o.Codice = p.Codice AND o.DataOra = p.data1
|
||||||
|
) q ON T.IdArticolo = q.Codice WHERE
|
||||||
|
(DescrizioneStatoProdotto = 'In commercio' OR
|
||||||
|
DescrizioneStatoProdotto = 'Prossima uscita/pubblicazione' OR
|
||||||
|
DescrizioneStatoProdotto = 'Prossima uscita' OR
|
||||||
|
DescrizioneStatoProdotto = 'In prevendita' OR
|
||||||
|
DescrizioneStatoProdotto = '2023 in commercio')
|
||||||
|
AND
|
||||||
|
(DescrizioneTipologia = 'Libri' OR
|
||||||
|
DescrizioneTipologia = 'Cartolibro' OR
|
||||||
|
DescrizioneTipologia = 'Carte')
|
||||||
|
AND
|
||||||
|
(Ean13 NOT LIKE 'USATO%')
|
||||||
2293
_LIMBO/risospiegazione.html
Normal file
63
_LIMBO/tutorial.htm
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
<div>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<b>
|
||||||
|
<font size="4">TUTORIAL</font>
|
||||||
|
</b>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<font size="4">
|
||||||
|
<a href="https://gruppomacro.app/upload/video/Come_generare_un_Catalogo_Personalizzato.mp4?id=1">
|
||||||
|
Come generare un Catalogo Personalizzato
|
||||||
|
</a>
|
||||||
|
(1 luglio 2025)
|
||||||
|
</font>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<font size="4">
|
||||||
|
<a href="https://gruppomacro.app/upload/video/Come_cercare_un_Libro.mp4">
|
||||||
|
Come cercare un Libro
|
||||||
|
</a>
|
||||||
|
(23 giugno 2025)
|
||||||
|
</font>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<font size="4">
|
||||||
|
<a href="https://gruppomacro.app/upload/video/Come_Inserire_la_sinossi_del_libri_sul_Catalogo.mp4">
|
||||||
|
Come inserire la Sinossi di un libro
|
||||||
|
</a>
|
||||||
|
(30 maggio 2025)
|
||||||
|
</font>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<font size="4">
|
||||||
|
<a href="https://gruppomacro.app/upload/video/Come_generare_un_catalogo_per_argomento.mp4">
|
||||||
|
Come generare un Catalogo per argomento
|
||||||
|
</a>
|
||||||
|
(30 maggio 2025)
|
||||||
|
</font>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<font size="4">
|
||||||
|
<a href="https://gruppomacro.app/upload/video/Creazione_di_una_Lista_di_un_Catalogo.mp4">
|
||||||
|
Come creare (ed aggiornare) una lista di libri del Catalogo
|
||||||
|
</a>
|
||||||
|
(6 maggio 2025)
|
||||||
|
</font>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<font size="4">
|
||||||
|
<a href="https://gruppomacro.app/upload/video/Aggiungere_la_Sinossi_di_un_libro.mp4">
|
||||||
|
Come aggiungere la sinossi (trafiletto) di un libro
|
||||||
|
</a>
|
||||||
|
(6 maggio 2025)
|
||||||
|
</font>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
BIN
favicon.ico
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -10,7 +10,7 @@
|
|||||||
<meta name="description" content="<%= productDescription %>">
|
<meta name="description" content="<%= productDescription %>">
|
||||||
<meta name="format-detection" content="telephone=no">
|
<meta name="format-detection" content="telephone=no">
|
||||||
<meta name="msapplication-tap-highlight" content="no">
|
<meta name="msapplication-tap-highlight" content="no">
|
||||||
<meta name="version" content="1.2.2">
|
<meta name="version" content="1.2.87">
|
||||||
<meta name="viewport"
|
<meta name="viewport"
|
||||||
content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>">
|
content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>">
|
||||||
|
|
||||||
|
|||||||
BIN
install_app_on_ios_safari_butt.jpg
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
install_app_on_safari.jpg
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
28
localhost-key.pem
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDMj4l7a8snvjVf
|
||||||
|
3kj1WqOJPm5JV54l/GSOi6WQvjMfiW+nQoDgUINBbq7NrVgfdCMtDFmCInBxKQ6y
|
||||||
|
fD/jmOMfAjchr0xqkKil6JD6xU3IO5vTmn7wbnC3av5iwRrM8EoAQs2QqQCdCj8v
|
||||||
|
8ykxVzr2LxgEXIvtBaJLzq6KR4fHs7QHxDA6hF45MTzB+Ea8T2NKuoTLEfZKY7VA
|
||||||
|
oVYz2i+q5Elc+9w8LrZvp+6j3feSS3QlTj9IezblXj7dTApfkniwPuG756IzuaYo
|
||||||
|
ko7mnwxxruADI/4mXn/9K/KVFsUQ7I0vQ5SAB+YHHM/JMxTykfJCPjlM3BfblfXE
|
||||||
|
xhayCcLlAgMBAAECggEAPXPBcXpohX/2uN4mPM8F4e0HZLEVqYOxEcGR83GwGgFH
|
||||||
|
sY+g98I4LCf8C33Pw2M4Tggvu5BtBxG2gJgi+VSsplwcA9qNslXS1ESRiURMoaKG
|
||||||
|
pYL8L25+HhveX/xy+K4XDQ0EhDjBHmw9n0IFVfVGmT58kJLc1k+i+fMVLCVg/PTN
|
||||||
|
hmjp04tFEBQz8jZCkYBwX7bOiZ15A6rrQtvvafaM4AcYn9cJIEi1SPUEC5HuWvpY
|
||||||
|
JrqBP3MW1OBVj/XE3dEOaO0jt8E4Mhbef/VQzFatdgw7/NlJCFMpqgqzSYRmpz9i
|
||||||
|
riQhipnorrz7E63qzR5XbkpKcWN9d+xZJvtWmBS64QKBgQD1MOZqtouCVac5xduY
|
||||||
|
Ah/AzqlTi2IuX4Gv3xCYu7a1CCxpWFEGeI1pVD3SiADS7wf6rGSWrES6dLdHfPNn
|
||||||
|
OM7pK0tJL9xhIn3c6qWuJTWNE6MQoc4CIEBSJVqwVqLBsIToNHV2GuU6S2UXNkpu
|
||||||
|
f+mga0XcWEq+e5sgEKEXEgVQCwKBgQDVlBqfLVvhdmccmFNWGl42ZytTJ5rxMyCo
|
||||||
|
GgIYaZoUgPaXodmh+D3jFhRUe0dt6PMg1Lrz5bNV87tStFpybBHwVrgjdTLjMh3s
|
||||||
|
hVbeB4e+p+FXos042zS55N4WmoRyUkiEPqS4yAQmQ39ry+Z8R3kjYqZ8160jV70I
|
||||||
|
AeUo+05ezwKBgQCBU/G1h+O+M3+pMXvKihRFlrwpnPOEkkvNgFM4vIp6on0Kc9MJ
|
||||||
|
Hr04OX8CdUo5+Gq1BglokCUQVE/4HSgl4gkBZByp1dzgP1k0FXCeknHUn+767t3C
|
||||||
|
sVA8BAf5yzi+AWWZNVJfoYAXZ31C6RgJgN6yBuMqfkeugXQpTZwqlw7GUQKBgGku
|
||||||
|
Ven8OZqQZ/lSHwBxXeJm7pQ2Ff0hE70VieCh6Qqd9FL6lyZIDZpPHlX4nFXJeiq5
|
||||||
|
+RPyFF6I+MCjJ0Pgavk0i9ySdCwlW01G4V/Yz4YaQUSaXXzZn17JEoKJOB7g3Oub
|
||||||
|
uh1yC3EYnqDkuq6LuGGvzJQA1zhnliViYYvML21LAoGBAJ5JOztBX/6vXpBF0/JJ
|
||||||
|
BNuKr9CPQ5qjyThX0lJF0+o8ZVD/tttwAgA/FfmePqKSrrWs5RJfbjt5NUFXYykx
|
||||||
|
7UF9bitWfSVqERkZcOp4NgRjx/A6l27T5e6+zu0Ze7es1oUzR3Ov2FUDUt9skpdC
|
||||||
|
O8iSMszloFwh/gOG9F1vLLAz
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
26
localhost.pem
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEczCCAtugAwIBAgIQPkGxv6Tr58lKZlWBrK31KzANBgkqhkiG9w0BAQsFADCB
|
||||||
|
ozEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMTwwOgYDVQQLDDNzdXJ5
|
||||||
|
YXBhb2xvQE1hY0Jvb2stQWlyLWRpLVN1cnlhLmxvY2FsIChTdXJ5YSBQYW9sbykx
|
||||||
|
QzBBBgNVBAMMOm1rY2VydCBzdXJ5YXBhb2xvQE1hY0Jvb2stQWlyLWRpLVN1cnlh
|
||||||
|
LmxvY2FsIChTdXJ5YSBQYW9sbykwHhcNMjUwMzEzMDgxODIxWhcNMjcwNjEzMDcx
|
||||||
|
ODIxWjBnMScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUx
|
||||||
|
PDA6BgNVBAsMM3N1cnlhcGFvbG9ATWFjQm9vay1BaXItZGktU3VyeWEubG9jYWwg
|
||||||
|
KFN1cnlhIFBhb2xvKTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMyP
|
||||||
|
iXtryye+NV/eSPVao4k+bklXniX8ZI6LpZC+Mx+Jb6dCgOBQg0Furs2tWB90Iy0M
|
||||||
|
WYIicHEpDrJ8P+OY4x8CNyGvTGqQqKXokPrFTcg7m9OafvBucLdq/mLBGszwSgBC
|
||||||
|
zZCpAJ0KPy/zKTFXOvYvGARci+0FokvOropHh8eztAfEMDqEXjkxPMH4RrxPY0q6
|
||||||
|
hMsR9kpjtUChVjPaL6rkSVz73Dwutm+n7qPd95JLdCVOP0h7NuVePt1MCl+SeLA+
|
||||||
|
4bvnojO5piiSjuafDHGu4AMj/iZef/0r8pUWxRDsjS9DlIAH5gccz8kzFPKR8kI+
|
||||||
|
OUzcF9uV9cTGFrIJwuUCAwEAAaNeMFwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM
|
||||||
|
MAoGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFLFuWFq/xnNJeprfAy5ACMa9SjguMBQG
|
||||||
|
A1UdEQQNMAuCCWxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAYEAtstXoeWi9WY/
|
||||||
|
4URXA4uUSFItGhmWmVkNI1Ak+iM4w7OgerohZ1bfDY/0vVDmX8aGtacnU9cwnz+H
|
||||||
|
y7yxrA42pJjk9GF1cKO+AKGr5oj6LJ8MQ7XfHhJ7Phv+QJHFo6sMBb0P5qR/TI4r
|
||||||
|
UNmzda8jBDpSE9vCe0XdM89R2UB/G0UBu4Gc2+tTpcG+2/B3P+L6dNrDbHcFHU6W
|
||||||
|
L/UpFiHUaKqFvTz62oYqCicgftXPrGy6RNd4tWj+YETxdYRRlUkLHgAQaj8QAs1g
|
||||||
|
9Krj0KOfyk3Kmxeis7XW7O3FglI3D/PDyOwWTN76EIzjGteNj3OZ49Ys4jt9V0pr
|
||||||
|
CeCnjq3lbSvX8xj139fc2fb/bvd3vzGjv39rRDQ3BDHwaWZrlyHhSGy/mLKQC/SH
|
||||||
|
FGhr/v+NcMe9uGh8aDM60Hm+wQEM+WOWCJkDG3Ajv+Rf0V8N03foS0ngAO0PQlDp
|
||||||
|
ZlhOlMNxkUSQkwMawOX33mzEaVALTQ6/OKMWbR8K5bjAIWUtG1AN
|
||||||
|
-----END CERTIFICATE-----
|
||||||
28
migrate-repos.sh
Executable file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Salva come migrate-repos.sh
|
||||||
|
|
||||||
|
GITEA_URL="http://95.216.147.38:3000"
|
||||||
|
USERNAME="surya"
|
||||||
|
TOKEN="8ed0622aac269414f4d333d0c89e22b1c42dd4d1" # Crea su Gitea: Settings → Applications → Generate Token
|
||||||
|
SEARCH_PATH="$HOME/myproject"
|
||||||
|
|
||||||
|
# Trova tutti i repository
|
||||||
|
find "$SEARCH_PATH" -name ".git" -type d 2>/dev/null | while read gitdir; do
|
||||||
|
REPO_PATH=$(dirname "$gitdir")
|
||||||
|
REPO_NAME=$(basename "$REPO_PATH")
|
||||||
|
|
||||||
|
echo "Processing: $REPO_NAME"
|
||||||
|
|
||||||
|
# Crea repository su Gitea via API
|
||||||
|
curl -X POST "$GITEA_URL/api/v1/user/repos" \
|
||||||
|
-H "Authorization: token $TOKEN" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d "{\"name\":\"$REPO_NAME\",\"private\":false}"
|
||||||
|
|
||||||
|
# Push
|
||||||
|
cd "$REPO_PATH"
|
||||||
|
git remote remove origin 2>/dev/null
|
||||||
|
git remote add origin "$GITEA_URL/$USERNAME/$REPO_NAME.git"
|
||||||
|
git push -u origin --all
|
||||||
|
git push -u origin --tags
|
||||||
|
done
|
||||||
134
package.json
@@ -1,19 +1,19 @@
|
|||||||
{
|
{
|
||||||
"name": "riso",
|
"name": "riso",
|
||||||
"version": "1.2.2",
|
"version": "1.2.87",
|
||||||
"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 💚 - Rete Italiana Scambio orizzontale",
|
||||||
"productName": "Riso",
|
"description": "Progetto RISO (Rete Italiana Scambio orizzontale) promuove una rete di comunità locali che favoriscono scambi di beni, servizi e ospitalità. Con l'App RISO, sviluppata per facilitare il baratto, il dono e l'uso di monete alternative come i RIS, il progetto crea legami autentici basati sulla fiducia e sostenibilità. Partecipa agli scambi e costruisci una comunità più consapevole e autosufficiente.",
|
||||||
"author": "Surya",
|
"author": "Surya",
|
||||||
"private": true,
|
"private": true,
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "quasar dev",
|
"dev": "APP_VERSION='1.2.87' PORT=8084 quasar dev",
|
||||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||||
"build": "quasar build",
|
"build": "quasar build",
|
||||||
"buildpwa": "quasar build -m pwa",
|
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.87' quasar build -m pwa",
|
||||||
"buildpwatest": "NODE_ENV=test quasar build -m pwa",
|
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.87' 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": "quasar build -m spa",
|
||||||
@@ -21,121 +21,123 @@
|
|||||||
"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": "quasar dev -m pwa",
|
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.87' quasar dev -m pwa",
|
||||||
"spa": "quasar dev",
|
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.87' 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.19",
|
"@cubejs-client/core": "^1.5.11",
|
||||||
"@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/leaflet": "^1.9.16",
|
"@types/jsbarcode": "^3.11.4",
|
||||||
"@vue/compat": "^3.5.13",
|
"@types/leaflet": "^1.9.21",
|
||||||
"@vue/compiler-sfc": "^3.5.13",
|
"@vue/compat": "^3.5.25",
|
||||||
|
"@vue/compiler-sfc": "^3.5.25",
|
||||||
"@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",
|
||||||
"autoprefixer": "^10.4.21",
|
"apexcharts": "^5.3.6",
|
||||||
"axios": "^1.8.2",
|
"autoprefixer": "^10.4.22",
|
||||||
"bcryptjs": "^3.0.2",
|
"axios": "^1.13.2",
|
||||||
"chart.js": "^4.4.8",
|
"bcryptjs": "^3.0.3",
|
||||||
"core-js": "^3.41.0",
|
"chart.js": "^4.5.1",
|
||||||
|
"core-js": "^3.47.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": "6.0.0",
|
||||||
"eslint-plugin-n": "^17.16.2",
|
"eslint-plugin-n": "^17.23.1",
|
||||||
"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",
|
|
||||||
"jquery": "^3.7.1",
|
"jquery": "^3.7.1",
|
||||||
"js-cookie": "^3.0.5",
|
"js-cookie": "^3.0.5",
|
||||||
|
"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",
|
||||||
"localforage": "^1.10.0",
|
"localforage": "^1.10.0",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
|
"mongoose-paginate-v2": "^1.9.1",
|
||||||
"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.4",
|
||||||
"qrcode-vue3": "^1.7.1",
|
"qrcode-vue3": "^1.7.1",
|
||||||
"quasar": "^2.18.1",
|
"quasar": "^2.18.6",
|
||||||
"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.26.0",
|
"typescript-eslint": "^8.48.1",
|
||||||
"vee-validate": "^4.15.0",
|
"vee-validate": "^4.15.1",
|
||||||
"vue": "^3.5.13",
|
"vue": "^3.5.25",
|
||||||
"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": "^8.0.1",
|
||||||
"vue-i18n": "^11.1.2",
|
"vue-i18n": "^11.2.2",
|
||||||
"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.6.3",
|
||||||
"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.10.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.4.0",
|
||||||
"workbox-precaching": "^7.3.0",
|
"workbox-precaching": "^7.4.0",
|
||||||
"workbox-routing": "^7.3.0",
|
"workbox-routing": "^7.4.0",
|
||||||
"workbox-strategies": "^7.3.0",
|
"workbox-strategies": "^7.4.0",
|
||||||
"workbox-window": "^7.3.0"
|
"workbox-window": "^7.4.0",
|
||||||
|
"xlsx": "^0.18.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/js": "^9.22.0",
|
"@eslint/js": "^9.39.1",
|
||||||
"@intlify/unplugin-vue-i18n": "^6.0.3",
|
"@intlify/unplugin-vue-i18n": "^11.0.1",
|
||||||
"@quasar/app-vite": "^2.1.4",
|
"@quasar/app-vite": "^2.4.0",
|
||||||
"@types/bcryptjs": "^2.4.6",
|
|
||||||
"@types/google.maps": "^3.58.1",
|
"@types/google.maps": "^3.58.1",
|
||||||
"@types/jest": "^29.5.14",
|
"@types/jest": "^30.0.0",
|
||||||
"@types/js-cookie": "^3.0.6",
|
"@types/js-cookie": "^3.0.6",
|
||||||
"@types/node": "^22.13.10",
|
"@types/node": "^24.10.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": "^8.0.5",
|
||||||
"@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.6.0",
|
||||||
"autoprefixer": "^10.4.21",
|
"autoprefixer": "^10.4.22",
|
||||||
"eslint": "9",
|
"eslint": "9",
|
||||||
"eslint-plugin-import": "^2.31.0",
|
"eslint-plugin-import": "^2.32.0",
|
||||||
"eslint-plugin-vue": "^10.0.0",
|
"eslint-plugin-vue": "^10.6.2",
|
||||||
"file-loader": "^6.2.0",
|
"file-loader": "^6.2.0",
|
||||||
"globals": "^16.0.0",
|
"globals": "^16.5.0",
|
||||||
"http-proxy-middleware": "^3.0.3",
|
"http-proxy-middleware": "^3.0.5",
|
||||||
"jest": "^29.7.0",
|
"jest": "^30.2.0",
|
||||||
"json-loader": "^0.5.7",
|
"json-loader": "^0.5.7",
|
||||||
"nodemon": "^3.1.9",
|
"nodemon": "^3.1.11",
|
||||||
"npm-check-updates": "^17.1.15",
|
"npm-check-updates": "^19.1.2",
|
||||||
"parcel": "^2.13.3",
|
"parcel": "^2.16.1",
|
||||||
"postcss": "^8.5.3",
|
"postcss": "^8.5.6",
|
||||||
"postcss-loader": "^8.1.1",
|
"postcss-loader": "^8.2.0",
|
||||||
"prettier": "3",
|
"prettier": "3",
|
||||||
"strip-ansi": "=7.1.0",
|
"strip-ansi": "=7.1.2",
|
||||||
"ts-jest": "^29.2.6",
|
"ts-jest": "^29.4.6",
|
||||||
"typescript": "5.7.3",
|
"typescript": "5.9.3",
|
||||||
"vite-plugin-checker": "^0.9.0",
|
"vite-plugin-checker": "^0.11.0",
|
||||||
"vue-cli-plugin-element-ui": "^1.1.4",
|
"vue-cli-plugin-element-ui": "^1.1.4",
|
||||||
"vue-tsc": "^2.2.8",
|
"vue-eslint-parser": "^10.2.0",
|
||||||
|
"vue-tsc": "^3.1.5",
|
||||||
"vueify": "^9.4.1",
|
"vueify": "^9.4.1",
|
||||||
"workbox-build": "^7.3.0"
|
"workbox-build": "^7.4.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^28 || ^26 || ^24 || ^22 || ^20 || ^18",
|
"node": "^28 || ^26 || ^24 || ^22 || ^20 || ^18",
|
||||||
"npm": ">= 6.13.4",
|
"npm": ">= 6.13.4",
|
||||||
"yarn": ">= 1.21.1"
|
"yarn": ">= 1.21.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
public/images/cerchio_riso.jpg
Normal file
|
After Width: | Height: | Size: 323 KiB |
BIN
public/images/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
public/images/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
public/images/favicon-96x96.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
public/images/hero/cerchio_riso.jpg
Normal file
|
After Width: | Height: | Size: 323 KiB |
BIN
public/images/hero/mercatino_riso.jpg
Normal file
|
After Width: | Height: | Size: 217 KiB |
|
Before Width: | Height: | Size: 279 KiB After Width: | Height: | Size: 279 KiB |
BIN
public/images/install_app_on_safari.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
public/images/logo.png
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
BIN
public/images/mappa_mentale_riso.jpg
Normal file
|
After Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 61 KiB |
BIN
public/images/riso-android-icon-36x36.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 138 KiB After Width: | Height: | Size: 180 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 185 KiB After Width: | Height: | Size: 276 KiB |
BIN
public/images/riso-android-icon-72x72.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 9.7 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 424 KiB After Width: | Height: | Size: 1.0 MiB |
BIN
public/images/riso_quadrato.jpg
Normal file
|
After Width: | Height: | Size: 140 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
413
quasar.config.ts
@@ -1,68 +1,106 @@
|
|||||||
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)
|
|
||||||
|
|
||||||
export default defineConfig((ctx) => {
|
export default defineConfig((ctx) => {
|
||||||
return {
|
return {
|
||||||
// https://v2.quasar.dev/quasar-cli/supporting-ts
|
boot: [
|
||||||
|
'i18n',
|
||||||
// https://v2.quasar.dev/quasar-cli/prefetch-feature
|
'axios',
|
||||||
// preFetch: true,
|
'pinia',
|
||||||
|
'vee-validate',
|
||||||
// app boot file (/src/boot)
|
|
||||||
// --> 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', 'pinia', 'vee-validate',
|
|
||||||
'myconfig',
|
'myconfig',
|
||||||
'local-storage', 'error-handler', 'globalroutines',
|
'local-storage',
|
||||||
'calendar', 'social-sharing', 'timeago', 'guard'],
|
'globalroutines',
|
||||||
|
'calendar',
|
||||||
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
|
'social-sharing',
|
||||||
css: [
|
'timeago',
|
||||||
'app.scss',
|
'guard',
|
||||||
// '~quasar-ui-qcalendar/src/css/calendar-day.sass'
|
'trackPageViews',
|
||||||
],
|
],
|
||||||
|
|
||||||
// https://github.com/quasarframework/quasar/tree/dev/extras
|
css: ['app.scss'],
|
||||||
|
|
||||||
extras: [
|
extras: [
|
||||||
// 'ionicons-v4',
|
|
||||||
// 'mdi-v5',
|
|
||||||
// 'eva-icons',
|
|
||||||
// 'themify',
|
|
||||||
// 'line-awesome',
|
|
||||||
'ionicons-v4',
|
'ionicons-v4',
|
||||||
// 'mdi-v3',
|
|
||||||
'fontawesome-v5',
|
'fontawesome-v5',
|
||||||
'roboto-font', // optional, you are not bound to it
|
'roboto-font',
|
||||||
'material-icons', // optional, you are not bound to it
|
'material-icons',
|
||||||
'material-icons-outlined',
|
'material-icons-outlined',
|
||||||
],
|
],
|
||||||
|
|
||||||
// Full list of options: https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build
|
|
||||||
|
|
||||||
build: {
|
build: {
|
||||||
target: {
|
target: {
|
||||||
browser: ['es2022', 'firefox115', 'chrome115', 'safari14'],
|
browser: ['es2021', 'chrome100', 'firefox100', 'safari14'],
|
||||||
node: 'node20'
|
node: 'node20',
|
||||||
},
|
},
|
||||||
// env: envparser(),
|
|
||||||
// versionCode: package.version,
|
sassVariables: 'src/css/variables.scss',
|
||||||
|
|
||||||
vueRouterMode: 'history',
|
vueRouterMode: 'history',
|
||||||
analyze: false, // true
|
analyze: false,
|
||||||
transpile: true,
|
transpile: true,
|
||||||
transpileDependencies: [
|
transpileDependencies: [/quasar-ui-qcalendar[\\/]src/],
|
||||||
/quasar-ui-qcalendar[\\/]src/
|
|
||||||
],
|
typescript: {
|
||||||
|
strict: false,
|
||||||
|
vueShim: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// ✅ AGGIUNTO: Config SCSS globale per Vite
|
||||||
|
extendViteConf(viteConf, { isServer, isClient }) {
|
||||||
|
// Alias puliti
|
||||||
|
viteConf.resolve = {
|
||||||
|
...(viteConf.resolve || {}),
|
||||||
|
alias: {
|
||||||
|
...viteConf.resolve.alias,
|
||||||
|
'#q-app': path.resolve(__dirname, 'node_modules/quasar/app'),
|
||||||
|
|
||||||
|
// Alias essenziali (rimuovi duplicati)
|
||||||
|
'@': path.resolve(__dirname, 'src'),
|
||||||
|
'@components': path.resolve(__dirname, 'src/components'),
|
||||||
|
'@views': path.resolve(__dirname, 'src/views'),
|
||||||
|
'@boot': path.resolve(__dirname, 'src/boot'),
|
||||||
|
'@store': path.resolve(__dirname, 'src/store'),
|
||||||
|
'@storemod': path.resolve(__dirname, 'src/store/Modules'),
|
||||||
|
'@tools': path.resolve(__dirname, 'src/store/Modules/tools.ts'), // ✅ AGGIUNTO
|
||||||
|
'@costanti': path.resolve(__dirname, 'src/store/Modules/costanti.ts'), // ✅ AGGIUNTO
|
||||||
|
'@api': path.resolve(__dirname, 'src/store/Api'),
|
||||||
|
'@utils': path.resolve(__dirname, 'src/utils'),
|
||||||
|
'@model': path.resolve(__dirname, 'src/model'),
|
||||||
|
'@classes': path.resolve(__dirname, 'src/classes'),
|
||||||
|
'@router': path.resolve(__dirname, 'src/router'),
|
||||||
|
'@css': path.resolve(__dirname, 'src/css'),
|
||||||
|
'@paths': path.resolve(__dirname, 'src/store/Api/ApiRoutes.ts'),
|
||||||
|
'@images': path.resolve(__dirname, 'src/assets/images'),
|
||||||
|
'@icons': path.resolve(__dirname, 'src/public/myicons'),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
// ✅ AGGIUNTO: SCSS preprocessor con variables.scss globale
|
||||||
|
viteConf.css = {
|
||||||
|
...(viteConf.css || {}),
|
||||||
|
preprocessorOptions: {
|
||||||
|
scss: {
|
||||||
|
additionalData: `@use "sass:color"; @use "src/css/variables.scss" as *;`,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
viteConf: {
|
||||||
|
server: {
|
||||||
|
hmr: {
|
||||||
|
protocol: 'wss',
|
||||||
|
host: 'localhost',
|
||||||
|
port: 8094,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
beforeDev(api) {
|
beforeDev(api) {
|
||||||
// Se la variabile d'ambiente SKIP_TSC è impostata, disabilita il type checking
|
|
||||||
if (process.env.SKIP_TSC === 'true') {
|
if (process.env.SKIP_TSC === 'true') {
|
||||||
console.log('⚠️ TypeScript type checking is disabled');
|
console.log('⚠️ TypeScript type checking is disabled');
|
||||||
|
|
||||||
// Disattiva TypeScript checking per Vite
|
|
||||||
if (api && api.chainWebpack) {
|
if (api && api.chainWebpack) {
|
||||||
api.chainWebpack((chain) => {
|
api.chainWebpack((chain) => {
|
||||||
chain.plugin('fork-ts-checker').tap((args) => {
|
chain.plugin('fork-ts-checker').tap((args) => {
|
||||||
@@ -73,170 +111,51 @@ export default defineConfig((ctx) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// @quasar/app-vite v2.0.3+
|
|
||||||
envFilter(originalEnv) {
|
envFilter(originalEnv) {
|
||||||
const newEnv = {}
|
return originalEnv; // Ritorna tutto per semplicità
|
||||||
for (const key in originalEnv) {
|
|
||||||
/* ...decide if it goes in or not... */
|
|
||||||
if (true) {
|
|
||||||
newEnv[key] = originalEnv[key]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// remember to return your processed env
|
|
||||||
return newEnv
|
|
||||||
},
|
|
||||||
|
|
||||||
typescript: {
|
|
||||||
strict: false,
|
|
||||||
vueShim: true,
|
|
||||||
extendTsConfig(tsConfig) {
|
|
||||||
// You can use this hook to extend tsConfig dynamically
|
|
||||||
// For basic use cases, you can still update the usual tsconfig.json file to override some settings
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Folder where Quasar CLI should look for .env* files.
|
|
||||||
* Can be an absolute path or a relative path to project root directory.
|
|
||||||
*
|
|
||||||
* @default project root directory
|
|
||||||
*/
|
|
||||||
// envFolder?: string
|
|
||||||
/**
|
|
||||||
* Additional .env* files to be loaded.
|
|
||||||
* Each entry can be an absolute path or a relative path to quasar.config > build > envFolder.
|
|
||||||
*
|
|
||||||
* @example ['.env.somefile', '../.env.someotherfile']
|
|
||||||
*/
|
|
||||||
// envFiles?: string[];
|
|
||||||
},
|
|
||||||
|
|
||||||
extendViteConf(viteConf, { isServer, isClient }) {
|
|
||||||
viteConf.resolve = {
|
|
||||||
...(viteConf.resolve || {}),
|
|
||||||
alias: {
|
|
||||||
...viteConf.resolve.alias,
|
|
||||||
'#q-app': path.resolve(__dirname, 'node_modules/quasar/app'), // Alias per #q-app
|
|
||||||
'app': path.resolve(__dirname),
|
|
||||||
'boot': path.resolve(__dirname, 'src/boot'),
|
|
||||||
'src': path.resolve(__dirname, 'src'),
|
|
||||||
'statics': path.resolve(__dirname, 'src/statics'),
|
|
||||||
'components': path.resolve(__dirname, 'src/components'),
|
|
||||||
'views': path.resolve(__dirname, 'src/views/index.ts'),
|
|
||||||
'images': path.resolve(__dirname, 'src/assets/images'),
|
|
||||||
'maps': path.resolve(__dirname, 'public/maps'),
|
|
||||||
'classes': path.resolve(__dirname, 'src/classes/index.ts'),
|
|
||||||
'fonts': path.resolve(__dirname, 'src/assets/fonts'),
|
|
||||||
'utils': path.resolve(__dirname, 'src/utils/index.ts'),
|
|
||||||
'css': path.resolve(__dirname, 'public/css/variables.scss'),
|
|
||||||
'router': path.resolve(__dirname, 'src/router/index.ts'),
|
|
||||||
'validators': path.resolve(__dirname, 'src/utils/validators.ts'),
|
|
||||||
'methods': path.resolve(__dirname, 'src/utils/methods.ts'),
|
|
||||||
'filters': path.resolve(__dirname, 'src/utils/filters.ts'),
|
|
||||||
'api': path.resolve(__dirname, 'src/store/Api/index.ts'),
|
|
||||||
'paths': path.resolve(__dirname, 'src/store/Api/ApiRoutes.ts'),
|
|
||||||
'modules': path.resolve(__dirname, 'src/store/Modules/index.ts'),
|
|
||||||
'model': path.resolve(__dirname, 'src/model/index.ts'),
|
|
||||||
'@components': path.resolve(__dirname, 'src/components'),
|
|
||||||
'@boot': path.resolve(__dirname, 'src/boot'),
|
|
||||||
'@costanti': path.resolve(__dirname, 'src/store/Modules/costanti.ts'),
|
|
||||||
'@views': path.resolve(__dirname, 'src/views/index.ts'),
|
|
||||||
'@src': path.resolve(__dirname, 'src'),
|
|
||||||
'@css': path.resolve(__dirname, 'src/public/css/variables.scss'),
|
|
||||||
'@icons': path.resolve(__dirname, 'src/public/public/myicons'),
|
|
||||||
'@images': path.resolve(__dirname, 'src/public/images/*'),
|
|
||||||
'@maps': path.resolve(__dirname, 'src/public/maps/*'),
|
|
||||||
'@classes': path.resolve(__dirname, 'src/classes/index.ts'),
|
|
||||||
'@utils': path.resolve(__dirname, 'src/utils/index.ts'),
|
|
||||||
'@router': path.resolve(__dirname, 'src/router/index.ts'),
|
|
||||||
'@validators': path.resolve(__dirname, 'src/utils/validators.ts'),
|
|
||||||
'@methods': path.resolve(__dirname, 'src/utils/methods.ts'),
|
|
||||||
'@api': path.resolve(__dirname, 'src/store/Api/index.ts'),
|
|
||||||
'@paths': path.resolve(__dirname, 'src/store/Api/ApiRoutes.ts'),
|
|
||||||
'@storemod': path.resolve(__dirname, 'src/store/Modules'),
|
|
||||||
'@store': path.resolve(__dirname, 'src/store'),
|
|
||||||
'@tools': path.resolve(__dirname, 'src/store/Modules/tools.ts'),
|
|
||||||
'@modules': path.resolve(__dirname, 'src/store/Modules/index.ts'),
|
|
||||||
'@model': path.resolve(__dirname, 'src/model/index.ts'),
|
|
||||||
},
|
|
||||||
};
|
|
||||||
},
|
},
|
||||||
|
|
||||||
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,
|
{
|
||||||
|
ssr: ctx.modeName === 'ssr',
|
||||||
// if you want to use named tokens in your Vue I18n messages, such as 'Hello {name}',
|
include: [fileURLToPath(new URL('./src/i18n', import.meta.url))],
|
||||||
// you need to set `runtimeOnly: false`
|
},
|
||||||
// runtimeOnly: false,
|
],
|
||||||
|
[
|
||||||
ssr: ctx.modeName === 'ssr',
|
'vite-plugin-checker',
|
||||||
|
{
|
||||||
// you need to set i18n resource including paths !
|
vueTsc: false,
|
||||||
include: [fileURLToPath(new URL('./src/i18n', import.meta.url))]
|
OFF_eslint: {
|
||||||
}],
|
lintCommand:
|
||||||
|
'eslint -c ./eslint.config.js "./src*/**/*.{ts,js,mjs,cjs,vue}"',
|
||||||
['vite-plugin-checker', {
|
useFlatConfig: true,
|
||||||
vueTsc: false,
|
},
|
||||||
OFF_eslint: {
|
},
|
||||||
lintCommand: 'eslint -c ./eslint.config.js "./src*/**/*.{ts,js,mjs,cjs,vue}"',
|
{ server: false },
|
||||||
useFlatConfig: true
|
],
|
||||||
}
|
],
|
||||||
}, { server: false }]
|
|
||||||
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
// polyfillModulePreload: true,
|
|
||||||
|
|
||||||
// viteVuePluginOptions: {},
|
|
||||||
|
|
||||||
// extractCSS: false,
|
|
||||||
// transpile: false,
|
|
||||||
|
|
||||||
// Add dependencies for transpiling with Babel (Array of string/regex)
|
|
||||||
// (from node_modules, which are by default not transpiled).
|
|
||||||
// Applies only if "transpile" is set to true.
|
|
||||||
// transpileDependencies: [],
|
|
||||||
|
|
||||||
// rtl: true, // https://v2.quasar.dev/options/rtl-support
|
|
||||||
// preloadChunks: true,
|
|
||||||
// showProgress: false,
|
|
||||||
// gzip: true,
|
|
||||||
// analyze: true,
|
|
||||||
|
|
||||||
// Options below are automatically set depending on the env, set them if you want to override
|
|
||||||
// extractCSS: false,
|
|
||||||
|
|
||||||
// https://v2.quasar.dev/quasar-cli/handling-webpack
|
|
||||||
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// Full list of options: https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-devServer
|
|
||||||
devServer: {
|
devServer: {
|
||||||
https: false,
|
https: {
|
||||||
port: ctx.mode.spa ? 8084 : 8094,
|
key: path.resolve(__dirname, 'localhost-key.pem'),
|
||||||
vueDevtools: false, // automatically opening remote Vue Devtools
|
cert: path.resolve(__dirname, 'localhost.pem'),
|
||||||
open: false, // opens browser window automatically
|
},
|
||||||
hot: true, // Disable hot module replacement
|
port: parseInt(process.env.PORT, 10),
|
||||||
|
vueDevtools: false,
|
||||||
|
open: false,
|
||||||
|
hot: true,
|
||||||
headers: {
|
headers: {
|
||||||
'Access-Control-Allow-Origin': '*',
|
'Access-Control-Allow-Origin': '*',
|
||||||
'Access-Control-Allow-Headers': '*',
|
'Access-Control-Allow-Headers': '*',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework
|
|
||||||
framework: {
|
framework: {
|
||||||
config: {},
|
config: {},
|
||||||
|
|
||||||
// iconSet: 'material-icons', // Quasar icon set
|
|
||||||
// lang: 'en-US', // Quasar language pack
|
|
||||||
|
|
||||||
// For special cases outside of where the auto-import strategy can have an impact
|
|
||||||
// (like functional components as one of the examples),
|
|
||||||
// you can manually specify Quasar components/directives to be available everywhere:
|
|
||||||
//
|
|
||||||
components: [
|
components: [
|
||||||
'QLayout',
|
'QLayout',
|
||||||
'QDrawer',
|
'QDrawer',
|
||||||
@@ -304,12 +223,10 @@ export default defineConfig((ctx) => {
|
|||||||
'QTabPanel',
|
'QTabPanel',
|
||||||
'QTree',
|
'QTree',
|
||||||
'QSeparator',
|
'QSeparator',
|
||||||
|
'QPageSticky',
|
||||||
],
|
],
|
||||||
directives: [
|
directives: ['Ripple', 'ClosePopup'],
|
||||||
'Ripple',
|
plugins: [
|
||||||
'ClosePopup',
|
|
||||||
],
|
|
||||||
_plugins: [
|
|
||||||
'Meta',
|
'Meta',
|
||||||
'Dialog',
|
'Dialog',
|
||||||
'Notify',
|
'Notify',
|
||||||
@@ -319,101 +236,41 @@ export default defineConfig((ctx) => {
|
|||||||
'LocalStorage',
|
'LocalStorage',
|
||||||
'SessionStorage',
|
'SessionStorage',
|
||||||
],
|
],
|
||||||
get plugins_1() {
|
iconSet: 'material-icons',
|
||||||
return this._plugins;
|
lang: 'it',
|
||||||
},
|
|
||||||
set plugins_1(value) {
|
|
||||||
this._plugins = value;
|
|
||||||
},
|
|
||||||
get plugins() {
|
|
||||||
return this._plugins;
|
|
||||||
},
|
|
||||||
set plugins(value) {
|
|
||||||
this._plugins = value;
|
|
||||||
},
|
|
||||||
iconSet: 'fontawesome-v5',
|
|
||||||
lang: 'it', // Quasar language
|
|
||||||
},
|
},
|
||||||
|
|
||||||
animations: 'all', // --- includes all animations
|
animations: 'all',
|
||||||
// https://v2.quasar.dev/options/animations
|
|
||||||
// animations: [],
|
|
||||||
|
|
||||||
// https://v2.quasar.dev/quasar-cli/developing-ssr/configuring-ssr
|
|
||||||
ssr: {
|
ssr: {
|
||||||
pwa: false,
|
pwa: false,
|
||||||
|
prodPort: 3000,
|
||||||
// manualStoreHydration: true,
|
|
||||||
// manualPostHydrationTrigger: true,
|
|
||||||
|
|
||||||
prodPort: 3000, // The default port that the production server should use
|
|
||||||
// (gets superseded if import.meta.env.PORT is specified at runtime)
|
|
||||||
|
|
||||||
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)
|
middlewares: [ctx.prod ? 'compression' : '', 'render'],
|
||||||
|
|
||||||
|
|
||||||
middlewares: [
|
|
||||||
ctx.prod ? 'compression' : '',
|
|
||||||
'render', // keep this as last one
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
// https://v2.quasar.dev/quasar-cli/developing-pwa/configuring-pwa
|
|
||||||
pwa: {
|
pwa: {
|
||||||
workboxMode: 'InjectManifest', // 'GenerateSW' or 'InjectManifest'
|
workboxMode: 'InjectManifest',
|
||||||
swFilename: 'sw-' + "1.2.2" + '.js',
|
swFilename: 'sw-' + process.env.APP_VERSION + '.js',
|
||||||
workboxOptions: {
|
workboxOptions: {
|
||||||
swSrc: 'src-pwa/custom-service-worker.js', // Assicurati che il file esista
|
swSrc: 'src-pwa/custom-service-worker.js',
|
||||||
},
|
include: [/\.html$/, /\.js$/, /\.css$/, /\.png$/, /\.svg$/, /\.json$/],
|
||||||
extendGenerateSWOptions(cfg) {
|
|
||||||
cfg.skipWaiting = false
|
|
||||||
cfg.clientsClaim = false
|
|
||||||
},
|
},
|
||||||
|
suppressWarnings: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
sourceFiles: {
|
sourceFiles: {
|
||||||
// DEFAULT: pwaRegisterServiceWorker: 'src-pwa/register-service-worker',
|
pwaRegisterServiceWorker: 'src-pwa/register-service-worker',
|
||||||
// DEFAULT: pwaServiceWorker: 'src-pwa/custom-service-worker',
|
pwaServiceWorker: 'src-pwa/custom-service-worker',
|
||||||
// DEFAULT: pwaManifestFile: 'src-pwa/manifest.json',
|
pwaManifestFile: 'src-pwa/manifest.json',
|
||||||
// ...
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// Full list of options: https://v2.quasar.dev/quasar-cli/developing-cordova-apps/configuring-cordova
|
cordova: {},
|
||||||
cordova: {
|
capacitor: { hideSplashscreen: true },
|
||||||
// noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing
|
|
||||||
},
|
|
||||||
|
|
||||||
// Full list of options: https://v2.quasar.dev/quasar-cli/developing-capacitor-apps/configuring-capacitor
|
|
||||||
capacitor: {
|
|
||||||
hideSplashscreen: true,
|
|
||||||
},
|
|
||||||
|
|
||||||
// Full list of options: https://v2.quasar.dev/quasar-cli/developing-electron-apps/configuring-electron
|
|
||||||
electron: {
|
electron: {
|
||||||
bundler: 'packager', // 'packager' or 'builder'
|
bundler: 'packager',
|
||||||
|
packager: {},
|
||||||
packager: {
|
builder: { appId: '-' },
|
||||||
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
|
|
||||||
|
|
||||||
// OS X / Mac App Store
|
|
||||||
// appBundleId: '',
|
|
||||||
// appCategoryType: '',
|
|
||||||
// osxSign: '',
|
|
||||||
// protocol: 'myapp://path',
|
|
||||||
|
|
||||||
// Windows only
|
|
||||||
// win32metadata: { ... }
|
|
||||||
},
|
|
||||||
|
|
||||||
builder: {
|
|
||||||
// https://www.electron.build/configuration/configuration
|
|
||||||
|
|
||||||
appId: 'Riso',
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
}
|
};
|
||||||
})
|
});
|
||||||
|
|||||||
BIN
riso-logo-full.jpg
Normal file
|
After Width: | Height: | Size: 142 KiB |
@@ -1,11 +1,11 @@
|
|||||||
VITE_APP_ID="...."
|
VITE_APP_ID="10"
|
||||||
VITE_APP_URL="https://riso.app"
|
VITE_APP_URL="https://comunitanuovomondo.app"
|
||||||
VITE_MONGODB_HOST="https://www.freeplanet.app:3000"
|
VITE_MONGODB_HOST="https://www.freeplanet.app:3000"
|
||||||
VITE_LOGO_REG='riso-logo-full.png'
|
VITE_LOGO_REG='cnm-logo-full.png'
|
||||||
VITE_PUBLICKEY_PUSH="BNM-cEpTbPVc_ujXf3QOC8ggf7b-X44P44esfJUWqNOFq1XhWCoZJpOi71_cbXC5SnfO9HassQ6OouAYgtBA9Pw"
|
VITE_PUBLICKEY_PUSH="BNM-cEpTbPVc_ujXf3QOC8ggf7b-X44P44esfJUWqNOFq1XhWCoZJpOi71_cbXC5SnfO9HassQ6OouAYgtBA9Pw"
|
||||||
VITE_DEBUG="1"
|
VITE_DEBUG="1"
|
||||||
VITE_VUE_APP_ISTEST=0
|
VITE_VUE_APP_ISTEST=0
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL="myprojplanet_vite"
|
||||||
DIRECTORY_SERVER=freeplanet_serverside
|
DIRECTORY_SERVER="/var/www/nodejs_riso_server"
|
||||||
SERVERDIR_WEBSITE=riso.app
|
SERVERDIR_WEBSITE="/var/www/comunitanuovomondo.app"
|
||||||
SERVERPW_WEBSITE=pwdadmin@1AOK
|
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
VITE_APP_ID="16"
|
VITE_APP_ID="10"
|
||||||
VITE_APP_URL="https://test.piuchebuono.app"
|
VITE_APP_URL="https://test.comunitanuovomondo.app"
|
||||||
VITE_MONGODB_HOST="https://test.freeplanet.app:3001"
|
VITE_MONGODB_HOST="https://test.freeplanet.app:3001"
|
||||||
VITE_LOGO_REG='piuchebuono-logo-full.png'
|
VITE_LOGO_REG='cmn-logo-full.png'
|
||||||
VITE_PUBLICKEY_PUSH="BGXRf1TgcqocqD6J7qnRgCG7AvM2lxAoW7peb7UEzB4SxBb6DxGRdJ0UvD9ewnrB9KrSrh0-aDCODXBm7sZ1DDs"
|
VITE_PUBLICKEY_PUSH="BGXRf1TgcqocqD6J7qnRgCG7AvM2lxAoW7peb7UEzB4SxBb6DxGRdJ0UvD9ewnrB9KrSrh0-aDCODXBm7sZ1DDs"
|
||||||
VITE_DEBUG="1"
|
VITE_DEBUG="1"
|
||||||
VITE_VUE_APP_ISTEST=1
|
VITE_VUE_APP_ISTEST=1
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL="myprojplanet_vite"
|
||||||
DIRECTORY_SERVER=test.freeplanet_serverside
|
DIRECTORY_SERVER="/var/www/nodejs_test.riso_server"
|
||||||
SERVERDIR_WEBSITE="test.piuchebuono.app"
|
SERVERDIR_WEBSITE="/var/www/test.comunitanuovomondo.app"
|
||||||
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
||||||
|
Before Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 138 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 185 KiB |
|
Before Width: | Height: | Size: 11 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: 634 KiB |
|
Before Width: | Height: | Size: 258 KiB |
|
Before Width: | Height: | Size: 124 KiB |
@@ -1,87 +1,86 @@
|
|||||||
{
|
{
|
||||||
"name": "riso",
|
"name": "cnm",
|
||||||
"version": "1.2.2",
|
"version": "1.2.87",
|
||||||
"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": "Comunita Nuovo Mondo",
|
||||||
"productName": "Riso",
|
"productName": "ComunitaNuovoMondo",
|
||||||
"author": "Surya",
|
"author": "Surya",
|
||||||
"private": true,
|
"private": true,
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "quasar dev",
|
"dev": "PORT=8083 APP_VERSION='1.2.87' quasar dev",
|
||||||
"build": "NODE_ENV=production quasar build",
|
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||||
|
"build": "quasar build",
|
||||||
"buildpwa": "NODE_ENV=production quasar build -m pwa",
|
"buildpwa": "NODE_ENV=production quasar build -m pwa",
|
||||||
"buildpwatest": "NODE_ENV=test quasar build -m pwa",
|
"buildpwatest": "NODE_ENV=production quasar build -m pwa",
|
||||||
"buildspa": "NODE_ENV=production quasar build -m spa",
|
"type-check": "vue-tsc --noEmit",
|
||||||
"lint": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./",
|
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||||
|
"buildspa": "quasar build -m spa",
|
||||||
|
"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 --ext .ts,.vue --ignore-path .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 NODE_OPTIONS=--max_old_space_size=6096 DEBUG=v8:* quasar dev -m pwa",
|
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.87' quasar dev -m pwa",
|
||||||
"spa": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev --debug",
|
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.87' quasar dev",
|
||||||
"debug": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* 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"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
"@cubejs-client/core": "^1.2.26",
|
||||||
"@babel/plugin-proposal-export-namespace-from": "^7.18.9",
|
"@quasar/extras": "^1.16.17",
|
||||||
"@babel/plugin-proposal-json-strings": "^7.18.6",
|
"@quasar/quasar-ui-qcalendar": "^4.1.2",
|
||||||
"@babel/plugin-proposal-numeric-separator": "^7.18.6",
|
"@types/jsbarcode": "^3.11.4",
|
||||||
"@babel/runtime": "^7.25.7",
|
"@types/leaflet": "^1.9.17",
|
||||||
"@cubejs-client/core": "^0.36.4",
|
"@vue/compat": "^3.5.13",
|
||||||
"@quasar/extras": "^1.16.12",
|
"@vue/compiler-sfc": "^3.5.13",
|
||||||
"@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/core": "^2.0.3",
|
||||||
"@vuelidate/validators": "^2.0.4",
|
"@vuelidate/validators": "^2.0.4",
|
||||||
"acorn": "^8.12.1",
|
"acorn": "^8.14.1",
|
||||||
"animate.css": "^4.1.1",
|
"animate.css": "^4.1.1",
|
||||||
"autoprefixer": "^10.4.20",
|
"autoprefixer": "^10.4.21",
|
||||||
"axios": "^1.7.7",
|
"axios": "^1.8.4",
|
||||||
"bcryptjs": "^2.4.3",
|
"bcryptjs": "^3.0.2",
|
||||||
"chart.js": "^4.4.4",
|
"chart.js": "^4.4.8",
|
||||||
"core-js": "^3.38.1",
|
"core-js": "^3.41.0",
|
||||||
"crypto-browserify": "^3.12.0",
|
"crypto-browserify": "^3.12.1",
|
||||||
"date-fns": "^4.1.0",
|
"date-fns": "^4.1.0",
|
||||||
"dotenv": "^16.4.5",
|
"echarts": "5.6.0",
|
||||||
"echarts": "5.5.1",
|
"eslint-plugin-n": "^17.16.2",
|
||||||
"eslint-plugin-n": "^17.10.3",
|
|
||||||
"eslint-plugin-quasar": "^1.1.0",
|
"eslint-plugin-quasar": "^1.1.0",
|
||||||
"graphql": "^16.9.0",
|
"graphql": "^16.10.0",
|
||||||
"graphql-tag": "^2.12.6",
|
"graphql-tag": "^2.12.6",
|
||||||
"gsap": "^3.12.5",
|
"gsap": "^3.12.7",
|
||||||
"html2pdf.js": "^0.10.2",
|
"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",
|
||||||
"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",
|
||||||
"localforage": "^1.10.0",
|
"localforage": "^1.10.0",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"normalize.css": "^8.0.1",
|
"normalize.css": "^8.0.1",
|
||||||
"npm": "^10.8.3",
|
|
||||||
"nprogress": "^0.2.0",
|
"nprogress": "^0.2.0",
|
||||||
"pinia": "^2.2.4",
|
"pinia": "^3.0.1",
|
||||||
"qrcode-vue3": "^1.7.1",
|
"qrcode-vue3": "^1.7.1",
|
||||||
"quasar": "^2.17.0",
|
"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",
|
||||||
"typescript-eslint": "^8.8.0",
|
"scrollreveal": "^4.0.9",
|
||||||
"vee-validate": "^4.13.2",
|
"typescript-eslint": "^8.27.0",
|
||||||
"vue": "^3.5.10",
|
"vee-validate": "^4.15.0",
|
||||||
|
"vue": "^3.5.13",
|
||||||
"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": "^9.14.1",
|
"vue-i18n": "^11.1.2",
|
||||||
"vue-idb": "^0.2.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-property-decorator": "^10.0.0-rc.3",
|
||||||
"vue-router": "^4.4.5",
|
"vue-router": "^4.5.0",
|
||||||
"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",
|
||||||
@@ -90,79 +89,55 @@
|
|||||||
"vue3-pdf-app": "^1.0.3",
|
"vue3-pdf-app": "^1.0.3",
|
||||||
"vue3-qr-reader": "^1.0.0",
|
"vue3-qr-reader": "^1.0.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-precaching": "^7.3.0",
|
||||||
|
"workbox-routing": "^7.3.0",
|
||||||
|
"workbox-strategies": "^7.3.0",
|
||||||
|
"workbox-window": "^7.3.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.25.7",
|
"@eslint/js": "^9.23.0",
|
||||||
"@babel/plugin-transform-class-properties": "^7.25.7",
|
"@intlify/unplugin-vue-i18n": "^6.0.5",
|
||||||
"@babel/plugin-transform-export-namespace-from": "^7.25.7",
|
"@quasar/app-vite": "^2.1.4",
|
||||||
"@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/google.maps": "^3.58.1",
|
||||||
"@types/jest": "^29.5.13",
|
"@types/jest": "^29.5.14",
|
||||||
"@types/js-cookie": "^3.0.6",
|
"@types/js-cookie": "^3.0.6",
|
||||||
"@types/node": "22.7.4",
|
"@types/node": "^22.13.11",
|
||||||
"@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.21",
|
"@types/vuelidate": "^0.7.22",
|
||||||
"@typescript-eslint/eslint-plugin": "^8.8.0",
|
"@vue/devtools": "^7.7.2",
|
||||||
"@typescript-eslint/parser": "^8.8.0",
|
"@vue/eslint-config-prettier": "^10.2.0",
|
||||||
"babel-loader": "^9.2.1",
|
"@vue/eslint-config-typescript": "^14.5.0",
|
||||||
"copy-webpack-plugin": "^12.0.2",
|
"autoprefixer": "^10.4.21",
|
||||||
"eslint": "^9.11.1",
|
"eslint": "9",
|
||||||
"eslint-config-prettier": "^9.1.0",
|
|
||||||
"eslint-plugin-import": "^2.31.0",
|
"eslint-plugin-import": "^2.31.0",
|
||||||
"eslint-plugin-node": "^11.1.0",
|
"eslint-plugin-vue": "^10.0.0",
|
||||||
"eslint-plugin-promise": "^7.1.0",
|
|
||||||
"eslint-plugin-vue": "^9.28.0",
|
|
||||||
"file-loader": "^6.2.0",
|
"file-loader": "^6.2.0",
|
||||||
"fork-ts-checker-webpack-plugin": "^9.0.2",
|
"globals": "^16.0.0",
|
||||||
"friendly-errors-webpack-plugin": "^1.7.0",
|
"http-proxy-middleware": "^3.0.3",
|
||||||
"html-webpack-plugin": "^5.6.0",
|
|
||||||
"http-proxy-middleware": "^3.0.2",
|
|
||||||
"jest": "^29.7.0",
|
"jest": "^29.7.0",
|
||||||
"json-loader": "^0.5.7",
|
"json-loader": "^0.5.7",
|
||||||
"node-sass": "^9.0.0",
|
"nodemon": "^3.1.9",
|
||||||
"nodemon": "^3.1.7",
|
"npm-check-updates": "^17.1.16",
|
||||||
"npm-check-updates": "^17.1.3",
|
"parcel": "^2.14.1",
|
||||||
"optimize-css-assets-webpack-plugin": "^6.0.1",
|
"postcss": "^8.5.3",
|
||||||
"parcel": "^2.12.0",
|
|
||||||
"postcss": "^8.4.47",
|
|
||||||
"postcss-loader": "^8.1.1",
|
"postcss-loader": "^8.1.1",
|
||||||
"sass-loader": "^16.0.2",
|
"prettier": "3",
|
||||||
"strip-ansi": "=7.1.0",
|
"strip-ansi": "=7.1.0",
|
||||||
"ts-jest": "^29.2.5",
|
"ts-jest": "^29.2.6",
|
||||||
"ts-loader": "^9.5.1",
|
"typescript": "5.7.3",
|
||||||
"typescript": "5.6.2",
|
"vite-plugin-checker": "^0.9.1",
|
||||||
"vue-cli-plugin-element-ui": "^1.1.4",
|
"vue-cli-plugin-element-ui": "^1.1.4",
|
||||||
|
"vue-eslint-parser": "^10.1.1",
|
||||||
|
"vue-tsc": "^2.2.8",
|
||||||
"vueify": "^9.4.1",
|
"vueify": "^9.4.1",
|
||||||
"webpack": "^5.95.0",
|
"workbox-build": "^7.3.0"
|
||||||
"webpack-dashboard": "^3.3.8",
|
|
||||||
"workbox-webpack-plugin": "^7.1.0"
|
|
||||||
},
|
},
|
||||||
"browser": {
|
|
||||||
"crypto": false
|
|
||||||
},
|
|
||||||
"browserslist": [
|
|
||||||
"last 100 Chrome versions",
|
|
||||||
"last 40 Firefox versions",
|
|
||||||
"last 20 Edge versions",
|
|
||||||
"last 55 Safari versions",
|
|
||||||
"last 90 Android versions",
|
|
||||||
"last 250 ChromeAndroid versions",
|
|
||||||
"last 60 FirefoxAndroid versions",
|
|
||||||
"last 35 iOS versions",
|
|
||||||
"last 10 Opera versions",
|
|
||||||
"> 0.03%",
|
|
||||||
"not dead"
|
|
||||||
],
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 18.18.0",
|
"node": "^28 || ^26 || ^24 || ^22 || ^20 || ^18",
|
||||||
"npm": ">= 6.14.8",
|
"npm": ">= 6.13.4",
|
||||||
"yarn": ">= 1.21.1"
|
"yarn": ">= 1.21.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
22
scripts/_ALL_SITES/comunitanuovomondo.app/public/css/dragula.css
Executable file
@@ -0,0 +1,22 @@
|
|||||||
|
.gu-mirror {
|
||||||
|
position: fixed !important;
|
||||||
|
margin: 0 !important;
|
||||||
|
z-index: 9999 !important;
|
||||||
|
opacity: 0.8;
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
|
||||||
|
filter: alpha(opacity=80);
|
||||||
|
}
|
||||||
|
.gu-hide {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
.gu-unselectable {
|
||||||
|
-webkit-user-select: none !important;
|
||||||
|
-moz-user-select: none !important;
|
||||||
|
-ms-user-select: none !important;
|
||||||
|
user-select: none !important;
|
||||||
|
}
|
||||||
|
.gu-transit {
|
||||||
|
opacity: 0.2;
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";
|
||||||
|
filter: alpha(opacity=20);
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |