Compare commits
147 Commits
VITE_1
...
product_in
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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.86"
|
||||
VITE_LANG_DEFAULT="it"
|
||||
VITE_PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||
VITE_SERVICE_WORKER_FILE="sw-1.2.2.js"
|
||||
VITE_SERVICE_WORKER_FILE="sw-1.2.86.js"
|
||||
VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
|
||||
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_LOGO_REG='riso-logo-full.png'
|
||||
VITE_APP_URL="https://localhost"
|
||||
DIRECTORY_LOCAL=myprojplanet_vite
|
||||
DIRECTORY_SERVER=freeplanet_serverside
|
||||
VITE_MONGODB_HOST="https://localhost:3000"
|
||||
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=""
|
||||
SERVERPW_WEBSITE=""
|
||||
SERVERPW_WEBSITE=""
|
||||
|
||||
@@ -3,9 +3,11 @@ VITE_APP_URL="https://gruppomacro.app"
|
||||
VITE_MONGODB_HOST="https://api.gruppomacro.app"
|
||||
VITE_LOGO_REG='gruppomacro-logo-full.png'
|
||||
VITE_PUBLICKEY_PUSH="BJgo8XR_upbnbMLWgCAUELo6DK7dRXffYAnFOxbaMMz5favBgcQBKT-eISqouO-jRad4Sw8l5nd2wCF6KorGiTc"
|
||||
VITE_DEBUG="1"
|
||||
VITE_DEBUG="0"
|
||||
VITE_VUE_APP_ISTEST="0"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
DIRECTORY_SERVER=/var/www/freeplanet_serverside
|
||||
DIRECTORY_LOCAL="myprojplanet_vite"
|
||||
DIRECTORY_SERVER="/var/www/nodejs_piuchebuono_server"
|
||||
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_URL="https://test.riso.app"
|
||||
VITE_MONGODB_HOST="https://testapi.riso.app"
|
||||
VITE_APP_URL="https://riso.app"
|
||||
VITE_MONGODB_HOST="https://api.riso.app"
|
||||
VITE_LOGO_REG='riso-logo-full.png'
|
||||
VITE_PUBLICKEY_PUSH="BGXRf1TgcqocqD6J7qnRgCG7AvM2lxAoW7peb7UEzB4SxBb6DxGRdJ0UvD9ewnrB9KrSrh0-aDCODXBm7sZ1DDs"
|
||||
VITE_DEBUG="1"
|
||||
VITE_VUE_APP_ISTEST=1
|
||||
VITE_DEBUG="0"
|
||||
VITE_VUE_APP_ISTEST="0"
|
||||
DIRECTORY_LOCAL=myprojplanet_vite
|
||||
DIRECTORY_SERVER=/var/www/nodejs_test.riso_server
|
||||
SERVERDIR_WEBSITE="/var/www/test.riso.app"
|
||||
DIRECTORY_SERVER=/var/www/nodejs_riso_server
|
||||
SERVERDIR_WEBSITE="/var/www/riso.app"
|
||||
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
||||
@@ -1,11 +1,11 @@
|
||||
VITE_APP_ID="18"
|
||||
VITE_APP_URL="https://test.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_DEBUG="1"
|
||||
VITE_VUE_APP_ISTEST=1
|
||||
DIRECTORY_LOCAL=myprojplanet_vite
|
||||
DIRECTORY_SERVER=/var/www/nodejs_test.piuchebuono_server
|
||||
VITE_VUE_APP_ISTEST="1"
|
||||
DIRECTORY_LOCAL="myprojplanet_vite"
|
||||
DIRECTORY_SERVER="/var/www/nodejs_test.piuchebuono_server"
|
||||
SERVERDIR_WEBSITE="/var/www/test.gruppomacro.app"
|
||||
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
||||
@@ -5,7 +5,7 @@ VITE_LOGO_REG="piuchebuono-logo-full.png"
|
||||
VITE_PUBLICKEY_PUSH="BJgo8XR_upbnbMLWgCAUELo6DK7dRXffYAnFOxbaMMz5favBgcQBKT-eISqouO-jRad4Sw8l5nd2wCF6KorGiTc"
|
||||
VITE_DEBUG="1"
|
||||
VITE_VUE_APP_ISTEST="1"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
DIRECTORY_LOCAL="myprojplanet_vite"
|
||||
DIRECTORY_SERVER="/var/www/nodejs_test.piuchebuono_server"
|
||||
SERVERDIR_WEBSITE="/var/www/test.piuchebuono.app"
|
||||
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
||||
@@ -1,11 +1,11 @@
|
||||
VITE_APP_ID="13"
|
||||
VITE_APP_URL="https://test.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_DEBUG="1"
|
||||
VITE_VUE_APP_ISTEST=1
|
||||
DIRECTORY_LOCAL=myprojplanet_vite
|
||||
DIRECTORY_SERVER=/var/www/nodejs_test.riso_server
|
||||
VITE_VUE_APP_ISTEST="1"
|
||||
DIRECTORY_LOCAL="myprojplanet_vite"
|
||||
DIRECTORY_SERVER="/var/www/nodejs_test.riso_server"
|
||||
SERVERDIR_WEBSITE="/var/www/test.riso.app"
|
||||
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
||||
@@ -122,7 +122,7 @@ export default {
|
||||
'@typescript-eslint/no-unsafe-argument': 'off',
|
||||
|
||||
// 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',
|
||||
'no-useless-constructor': 'off',
|
||||
|
||||
6
.gitignore
vendored
@@ -30,7 +30,11 @@ yarn-error.log
|
||||
/.scripts
|
||||
key.pem
|
||||
public/upload/
|
||||
upload/
|
||||
/upload/
|
||||
scripts/_ALL_SITES/gruppomacro.app/public/upload/
|
||||
._yarn.lock
|
||||
.gitignore
|
||||
._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
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"command": "npm run dev_noCheck",
|
||||
"name": "DEV (no-check-TS)",
|
||||
"request": "launch",
|
||||
"type": "node-terminal",
|
||||
"sourceMaps": false,
|
||||
},
|
||||
{
|
||||
"command": "npm run dev",
|
||||
"name": "DEV",
|
||||
@@ -24,13 +17,6 @@
|
||||
"type": "node-terminal",
|
||||
"sourceMaps": false,
|
||||
},
|
||||
{
|
||||
"command": "npm run lint",
|
||||
"name": "Lint (Check ERRORI)",
|
||||
"request": "launch",
|
||||
"type": "node-terminal",
|
||||
"sourceMaps": false
|
||||
},
|
||||
{
|
||||
"command": "npm run pwa",
|
||||
"name": "PWA",
|
||||
@@ -40,6 +26,13 @@
|
||||
"NODE_ENV": "development"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "npm run lint",
|
||||
"name": "Lint (Check ERRORI)",
|
||||
"request": "launch",
|
||||
"type": "node-terminal",
|
||||
"sourceMaps": false
|
||||
},
|
||||
{
|
||||
"type": "chrome",
|
||||
"request": "launch",
|
||||
|
||||
10
.vscode/settings.json
vendored
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"editor.bracketPairColorization.enabled": true,
|
||||
"editor.guides.bracketPairs": true,
|
||||
"editor.formatOnSave": true,
|
||||
"editor.formatOnSave": false,
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||
"editor.codeActionsOnSave": [],
|
||||
"eslint.validate": [
|
||||
@@ -10,5 +10,11 @@
|
||||
"typescript",
|
||||
"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="format-detection" content="telephone=no">
|
||||
<meta name="msapplication-tap-highlight" content="no">
|
||||
<meta name="version" content="1.2.2">
|
||||
<meta name="version" content="1.2.86">
|
||||
<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<% } %>">
|
||||
|
||||
|
||||
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",
|
||||
"version": "1.2.2",
|
||||
"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",
|
||||
"version": "1.2.86",
|
||||
"productName": "Riso 💚 - Rete Italiana Scambio orizzontale",
|
||||
"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",
|
||||
"private": true,
|
||||
"keywords": [],
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "quasar dev",
|
||||
"dev": "APP_VERSION='1.2.86' PORT=8084 quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=test quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "quasar build -m spa",
|
||||
@@ -21,121 +21,123 @@
|
||||
"lintfile": "eslint --ext .js,.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",
|
||||
"pwa": "quasar dev -m pwa",
|
||||
"spa": "quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.86' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
"postinstall": "quasar prepare"
|
||||
},
|
||||
"dependencies": {
|
||||
"@cubejs-client/core": "^1.2.19",
|
||||
"@quasar/extras": "^1.16.17",
|
||||
"@cubejs-client/core": "^1.5.11",
|
||||
"@quasar/extras": "^1.17.0",
|
||||
"@quasar/quasar-ui-qcalendar": "^4.1.2",
|
||||
"@types/leaflet": "^1.9.16",
|
||||
"@vue/compat": "^3.5.13",
|
||||
"@vue/compiler-sfc": "^3.5.13",
|
||||
"@types/jsbarcode": "^3.11.4",
|
||||
"@types/leaflet": "^1.9.21",
|
||||
"@vue/compat": "^3.5.25",
|
||||
"@vue/compiler-sfc": "^3.5.25",
|
||||
"@vuelidate/core": "^2.0.3",
|
||||
"@vuelidate/validators": "^2.0.4",
|
||||
"acorn": "^8.14.1",
|
||||
"acorn": "^8.15.0",
|
||||
"animate.css": "^4.1.1",
|
||||
"autoprefixer": "^10.4.21",
|
||||
"axios": "^1.8.2",
|
||||
"bcryptjs": "^3.0.2",
|
||||
"chart.js": "^4.4.8",
|
||||
"core-js": "^3.41.0",
|
||||
"apexcharts": "^5.3.6",
|
||||
"autoprefixer": "^10.4.22",
|
||||
"axios": "^1.13.2",
|
||||
"bcryptjs": "^3.0.3",
|
||||
"chart.js": "^4.5.1",
|
||||
"core-js": "^3.47.0",
|
||||
"crypto-browserify": "^3.12.1",
|
||||
"date-fns": "^4.1.0",
|
||||
"echarts": "5.6.0",
|
||||
"eslint-plugin-n": "^17.16.2",
|
||||
"echarts": "6.0.0",
|
||||
"eslint-plugin-n": "^17.23.1",
|
||||
"eslint-plugin-quasar": "^1.1.0",
|
||||
"graphql": "^16.10.0",
|
||||
"graphql-tag": "^2.12.6",
|
||||
"gsap": "^3.12.7",
|
||||
"html2pdf.js": "^0.10.3",
|
||||
"gsap": "^3.13.0",
|
||||
"jquery": "^3.7.1",
|
||||
"js-cookie": "^3.0.5",
|
||||
"jsbarcode": "^3.12.1",
|
||||
"leaflet": "^1.9.4",
|
||||
"leaflet-routing-machine": "^3.2.12",
|
||||
"leaflet.markercluster": "^1.5.3",
|
||||
"localforage": "^1.10.0",
|
||||
"lodash": "^4.17.21",
|
||||
"mongoose-paginate-v2": "^1.9.1",
|
||||
"normalize.css": "^8.0.1",
|
||||
"nprogress": "^0.2.0",
|
||||
"pinia": "^3.0.1",
|
||||
"pinia": "^3.0.4",
|
||||
"qrcode-vue3": "^1.7.1",
|
||||
"quasar": "^2.18.1",
|
||||
"quasar": "^2.18.6",
|
||||
"quasar-extras": "^2.0.9",
|
||||
"register-service-worker": "^1.7.2",
|
||||
"scrollreveal": "^4.0.9",
|
||||
"typescript-eslint": "^8.26.0",
|
||||
"vee-validate": "^4.15.0",
|
||||
"vue": "^3.5.13",
|
||||
"typescript-eslint": "^8.48.1",
|
||||
"vee-validate": "^4.15.1",
|
||||
"vue": "^3.5.25",
|
||||
"vue-class-component": "^8.0.0-rc.1",
|
||||
"vue-country-code": "^1.1.3",
|
||||
"vue-echarts": "^7.0.3",
|
||||
"vue-i18n": "^11.1.2",
|
||||
"vue-echarts": "^8.0.1",
|
||||
"vue-i18n": "^11.2.2",
|
||||
"vue-idb": "^0.2.0",
|
||||
"vue-image-zoomer": "^2.4.4",
|
||||
"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-social-sharing": "^4.0.0-alpha4",
|
||||
"vue-svgicon": "^4.0.0-alpha.3",
|
||||
"vue-timeago3": "^2.3.2",
|
||||
"vue2-dragula": "^2.5.5",
|
||||
"vue3-pdf-app": "^1.0.3",
|
||||
"vue3-apexcharts": "^1.10.0",
|
||||
"vue3-qr-reader": "^1.0.0",
|
||||
"vuedraggable": "^4.1.0",
|
||||
"vuex": "^4.1.0",
|
||||
"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"
|
||||
"workbox-core": "^7.4.0",
|
||||
"workbox-precaching": "^7.4.0",
|
||||
"workbox-routing": "^7.4.0",
|
||||
"workbox-strategies": "^7.4.0",
|
||||
"workbox-window": "^7.4.0",
|
||||
"xlsx": "^0.18.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/js": "^9.22.0",
|
||||
"@intlify/unplugin-vue-i18n": "^6.0.3",
|
||||
"@quasar/app-vite": "^2.1.4",
|
||||
"@types/bcryptjs": "^2.4.6",
|
||||
"@eslint/js": "^9.39.1",
|
||||
"@intlify/unplugin-vue-i18n": "^11.0.1",
|
||||
"@quasar/app-vite": "^2.4.0",
|
||||
"@types/google.maps": "^3.58.1",
|
||||
"@types/jest": "^29.5.14",
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/js-cookie": "^3.0.6",
|
||||
"@types/node": "^22.13.10",
|
||||
"@types/node": "^24.10.1",
|
||||
"@types/nprogress": "^0.2.3",
|
||||
"@types/vue-tel-input": "^2.1.7",
|
||||
"@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-typescript": "^14.5.0",
|
||||
"autoprefixer": "^10.4.21",
|
||||
"@vue/eslint-config-typescript": "^14.6.0",
|
||||
"autoprefixer": "^10.4.22",
|
||||
"eslint": "9",
|
||||
"eslint-plugin-import": "^2.31.0",
|
||||
"eslint-plugin-vue": "^10.0.0",
|
||||
"eslint-plugin-import": "^2.32.0",
|
||||
"eslint-plugin-vue": "^10.6.2",
|
||||
"file-loader": "^6.2.0",
|
||||
"globals": "^16.0.0",
|
||||
"http-proxy-middleware": "^3.0.3",
|
||||
"jest": "^29.7.0",
|
||||
"globals": "^16.5.0",
|
||||
"http-proxy-middleware": "^3.0.5",
|
||||
"jest": "^30.2.0",
|
||||
"json-loader": "^0.5.7",
|
||||
"nodemon": "^3.1.9",
|
||||
"npm-check-updates": "^17.1.15",
|
||||
"parcel": "^2.13.3",
|
||||
"postcss": "^8.5.3",
|
||||
"postcss-loader": "^8.1.1",
|
||||
"nodemon": "^3.1.11",
|
||||
"npm-check-updates": "^19.1.2",
|
||||
"parcel": "^2.16.1",
|
||||
"postcss": "^8.5.6",
|
||||
"postcss-loader": "^8.2.0",
|
||||
"prettier": "3",
|
||||
"strip-ansi": "=7.1.0",
|
||||
"ts-jest": "^29.2.6",
|
||||
"typescript": "5.7.3",
|
||||
"vite-plugin-checker": "^0.9.0",
|
||||
"strip-ansi": "=7.1.2",
|
||||
"ts-jest": "^29.4.6",
|
||||
"typescript": "5.9.3",
|
||||
"vite-plugin-checker": "^0.11.0",
|
||||
"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",
|
||||
"workbox-build": "^7.3.0"
|
||||
"workbox-build": "^7.4.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^28 || ^26 || ^24 || ^22 || ^20 || ^18",
|
||||
"npm": ">= 6.13.4",
|
||||
"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 |
414
quasar.config.ts
@@ -1,68 +1,107 @@
|
||||
import { defineConfig } from '#q-app/wrappers'
|
||||
import { defineConfig } from '#q-app/wrappers';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
import path from 'path'
|
||||
|
||||
// console.log(process.env)
|
||||
import path from 'path';
|
||||
|
||||
export default defineConfig((ctx) => {
|
||||
return {
|
||||
// https://v2.quasar.dev/quasar-cli/supporting-ts
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/prefetch-feature
|
||||
// preFetch: true,
|
||||
|
||||
// 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',
|
||||
boot: [
|
||||
'i18n',
|
||||
'axios',
|
||||
'pinia',
|
||||
'vee-validate',
|
||||
'myconfig',
|
||||
'local-storage', 'error-handler', 'globalroutines',
|
||||
'calendar', 'social-sharing', 'timeago', 'guard'],
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
|
||||
css: [
|
||||
'app.scss',
|
||||
// '~quasar-ui-qcalendar/src/css/calendar-day.sass'
|
||||
'local-storage',
|
||||
'globalroutines',
|
||||
'calendar',
|
||||
'social-sharing',
|
||||
'timeago',
|
||||
'guard',
|
||||
'trackPageViews',
|
||||
],
|
||||
|
||||
// https://github.com/quasarframework/quasar/tree/dev/extras
|
||||
css: ['app.scss'],
|
||||
|
||||
extras: [
|
||||
// 'ionicons-v4',
|
||||
// 'mdi-v5',
|
||||
// 'eva-icons',
|
||||
// 'themify',
|
||||
// 'line-awesome',
|
||||
'ionicons-v4',
|
||||
// 'mdi-v3',
|
||||
'fontawesome-v5',
|
||||
'roboto-font', // optional, you are not bound to it
|
||||
'material-icons', // optional, you are not bound to it
|
||||
'roboto-font',
|
||||
'material-icons',
|
||||
'material-icons-outlined',
|
||||
],
|
||||
|
||||
// Full list of options: https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build
|
||||
|
||||
build: {
|
||||
target: {
|
||||
browser: ['es2022', 'firefox115', 'chrome115', 'safari14'],
|
||||
node: 'node20'
|
||||
browser: ['es2021', 'chrome100', 'firefox100', 'safari14'],
|
||||
node: 'node20',
|
||||
},
|
||||
// env: envparser(),
|
||||
// versionCode: package.version,
|
||||
|
||||
// ✅ AGGIUNTO: Importa automaticamente variables.scss ovunque
|
||||
sassVariables: 'src/css/variables.scss',
|
||||
|
||||
vueRouterMode: 'history',
|
||||
analyze: false, // true
|
||||
analyze: false,
|
||||
transpile: true,
|
||||
transpileDependencies: [
|
||||
/quasar-ui-qcalendar[\\/]src/
|
||||
],
|
||||
transpileDependencies: [/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 "@/css/variables.scss" as *;`,
|
||||
},
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
viteConf: {
|
||||
server: {
|
||||
hmr: {
|
||||
protocol: 'wss',
|
||||
host: 'localhost',
|
||||
port: 8094,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
beforeDev(api) {
|
||||
// Se la variabile d'ambiente SKIP_TSC è impostata, disabilita il type checking
|
||||
if (process.env.SKIP_TSC === 'true') {
|
||||
console.log('⚠️ TypeScript type checking is disabled');
|
||||
|
||||
// Disattiva TypeScript checking per Vite
|
||||
if (api && api.chainWebpack) {
|
||||
api.chainWebpack((chain) => {
|
||||
chain.plugin('fork-ts-checker').tap((args) => {
|
||||
@@ -73,170 +112,51 @@ export default defineConfig((ctx) => {
|
||||
}
|
||||
}
|
||||
},
|
||||
// @quasar/app-vite v2.0.3+
|
||||
|
||||
envFilter(originalEnv) {
|
||||
const newEnv = {}
|
||||
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'),
|
||||
},
|
||||
};
|
||||
return originalEnv; // Ritorna tutto per semplicità
|
||||
},
|
||||
|
||||
vitePlugins: [
|
||||
['@intlify/unplugin-vue-i18n/vite', {
|
||||
// if you want to use Vue I18n Legacy API, you need to set `compositionOnly: false`
|
||||
// compositionOnly: false,
|
||||
|
||||
// if you want to use named tokens in your Vue I18n messages, such as 'Hello {name}',
|
||||
// you need to set `runtimeOnly: false`
|
||||
// runtimeOnly: false,
|
||||
|
||||
ssr: ctx.modeName === 'ssr',
|
||||
|
||||
// you need to set i18n resource including paths !
|
||||
include: [fileURLToPath(new URL('./src/i18n', import.meta.url))]
|
||||
}],
|
||||
|
||||
['vite-plugin-checker', {
|
||||
vueTsc: false,
|
||||
OFF_eslint: {
|
||||
lintCommand: 'eslint -c ./eslint.config.js "./src*/**/*.{ts,js,mjs,cjs,vue}"',
|
||||
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
|
||||
[
|
||||
'@intlify/unplugin-vue-i18n/vite',
|
||||
{
|
||||
ssr: ctx.modeName === 'ssr',
|
||||
include: [fileURLToPath(new URL('./src/i18n', import.meta.url))],
|
||||
},
|
||||
],
|
||||
[
|
||||
'vite-plugin-checker',
|
||||
{
|
||||
vueTsc: false,
|
||||
OFF_eslint: {
|
||||
lintCommand:
|
||||
'eslint -c ./eslint.config.js "./src*/**/*.{ts,js,mjs,cjs,vue}"',
|
||||
useFlatConfig: true,
|
||||
},
|
||||
},
|
||||
{ server: false },
|
||||
],
|
||||
],
|
||||
},
|
||||
|
||||
// Full list of options: https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-devServer
|
||||
devServer: {
|
||||
https: false,
|
||||
port: ctx.mode.spa ? 8084 : 8094,
|
||||
vueDevtools: false, // automatically opening remote Vue Devtools
|
||||
open: false, // opens browser window automatically
|
||||
hot: true, // Disable hot module replacement
|
||||
https: {
|
||||
key: path.resolve(__dirname, 'localhost-key.pem'),
|
||||
cert: path.resolve(__dirname, 'localhost.pem'),
|
||||
},
|
||||
port: parseInt(process.env.PORT, 10),
|
||||
vueDevtools: false,
|
||||
open: false,
|
||||
hot: true,
|
||||
headers: {
|
||||
'Access-Control-Allow-Origin': '*',
|
||||
'Access-Control-Allow-Headers': '*',
|
||||
},
|
||||
},
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework
|
||||
framework: {
|
||||
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: [
|
||||
'QLayout',
|
||||
'QDrawer',
|
||||
@@ -304,12 +224,10 @@ export default defineConfig((ctx) => {
|
||||
'QTabPanel',
|
||||
'QTree',
|
||||
'QSeparator',
|
||||
'QPageSticky',
|
||||
],
|
||||
directives: [
|
||||
'Ripple',
|
||||
'ClosePopup',
|
||||
],
|
||||
_plugins: [
|
||||
directives: ['Ripple', 'ClosePopup'],
|
||||
plugins: [
|
||||
'Meta',
|
||||
'Dialog',
|
||||
'Notify',
|
||||
@@ -319,101 +237,41 @@ export default defineConfig((ctx) => {
|
||||
'LocalStorage',
|
||||
'SessionStorage',
|
||||
],
|
||||
get plugins_1() {
|
||||
return this._plugins;
|
||||
},
|
||||
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
|
||||
iconSet: 'material-icons',
|
||||
lang: 'it',
|
||||
},
|
||||
|
||||
animations: 'all', // --- includes all animations
|
||||
// https://v2.quasar.dev/options/animations
|
||||
// animations: [],
|
||||
animations: 'all',
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/developing-ssr/configuring-ssr
|
||||
ssr: {
|
||||
pwa: false,
|
||||
|
||||
// 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)
|
||||
|
||||
prodPort: 3000,
|
||||
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', // keep this as last one
|
||||
],
|
||||
middlewares: [ctx.prod ? 'compression' : '', 'render'],
|
||||
},
|
||||
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/developing-pwa/configuring-pwa
|
||||
pwa: {
|
||||
workboxMode: 'InjectManifest', // 'GenerateSW' or 'InjectManifest'
|
||||
swFilename: 'sw-' + "1.2.2" + '.js',
|
||||
workboxMode: 'InjectManifest',
|
||||
swFilename: 'sw-' + process.env.APP_VERSION + '.js',
|
||||
workboxOptions: {
|
||||
swSrc: 'src-pwa/custom-service-worker.js', // Assicurati che il file esista
|
||||
},
|
||||
extendGenerateSWOptions(cfg) {
|
||||
cfg.skipWaiting = false
|
||||
cfg.clientsClaim = false
|
||||
swSrc: 'src-pwa/custom-service-worker.js',
|
||||
include: [/\.html$/, /\.js$/, /\.css$/, /\.png$/, /\.svg$/, /\.json$/],
|
||||
},
|
||||
suppressWarnings: true,
|
||||
},
|
||||
|
||||
sourceFiles: {
|
||||
// DEFAULT: pwaRegisterServiceWorker: 'src-pwa/register-service-worker',
|
||||
// DEFAULT: pwaServiceWorker: 'src-pwa/custom-service-worker',
|
||||
// DEFAULT: pwaManifestFile: 'src-pwa/manifest.json',
|
||||
// ...
|
||||
pwaRegisterServiceWorker: 'src-pwa/register-service-worker',
|
||||
pwaServiceWorker: 'src-pwa/custom-service-worker',
|
||||
pwaManifestFile: 'src-pwa/manifest.json',
|
||||
},
|
||||
|
||||
// Full list of options: https://v2.quasar.dev/quasar-cli/developing-cordova-apps/configuring-cordova
|
||||
cordova: {
|
||||
// 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
|
||||
cordova: {},
|
||||
capacitor: { hideSplashscreen: true },
|
||||
electron: {
|
||||
bundler: 'packager', // 'packager' or 'builder'
|
||||
|
||||
packager: {
|
||||
// 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',
|
||||
},
|
||||
|
||||
|
||||
bundler: 'packager',
|
||||
packager: {},
|
||||
builder: { appId: '-' },
|
||||
},
|
||||
}
|
||||
})
|
||||
};
|
||||
});
|
||||
|
||||
BIN
riso-logo-full.jpg
Normal file
|
After Width: | Height: | Size: 142 KiB |
@@ -1,11 +1,11 @@
|
||||
VITE_APP_ID="...."
|
||||
VITE_APP_URL="https://riso.app"
|
||||
VITE_APP_ID="10"
|
||||
VITE_APP_URL="https://comunitanuovomondo.app"
|
||||
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_DEBUG="1"
|
||||
VITE_VUE_APP_ISTEST=0
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
DIRECTORY_SERVER=freeplanet_serverside
|
||||
SERVERDIR_WEBSITE=riso.app
|
||||
SERVERPW_WEBSITE=pwdadmin@1AOK
|
||||
DIRECTORY_LOCAL="myprojplanet_vite"
|
||||
DIRECTORY_SERVER="/var/www/nodejs_riso_server"
|
||||
SERVERDIR_WEBSITE="/var/www/comunitanuovomondo.app"
|
||||
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
||||
@@ -1,11 +1,11 @@
|
||||
VITE_APP_ID="16"
|
||||
VITE_APP_URL="https://test.piuchebuono.app"
|
||||
VITE_APP_ID="10"
|
||||
VITE_APP_URL="https://test.comunitanuovomondo.app"
|
||||
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_DEBUG="1"
|
||||
VITE_VUE_APP_ISTEST=1
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
DIRECTORY_SERVER=test.freeplanet_serverside
|
||||
SERVERDIR_WEBSITE="test.piuchebuono.app"
|
||||
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
||||
DIRECTORY_LOCAL="myprojplanet_vite"
|
||||
DIRECTORY_SERVER="/var/www/nodejs_test.riso_server"
|
||||
SERVERDIR_WEBSITE="/var/www/test.comunitanuovomondo.app"
|
||||
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",
|
||||
"version": "1.2.2",
|
||||
"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",
|
||||
"name": "cnm",
|
||||
"version": "1.2.86",
|
||||
"description": "Comunita Nuovo Mondo",
|
||||
"productName": "ComunitaNuovoMondo",
|
||||
"author": "Surya",
|
||||
"private": true,
|
||||
"keywords": [],
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "quasar dev",
|
||||
"build": "NODE_ENV=production quasar build",
|
||||
"dev": "PORT=8083 APP_VERSION='1.2.86' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=test quasar build -m pwa",
|
||||
"buildspa": "NODE_ENV=production quasar build -m spa",
|
||||
"lint": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./",
|
||||
"buildpwatest": "NODE_ENV=production quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"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",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint --ext .ts,.vue --ignore-path .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=6096 DEBUG=v8:* quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev --debug",
|
||||
"debug": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev --mode debug",
|
||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.86' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"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": {
|
||||
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
||||
"@babel/plugin-proposal-export-namespace-from": "^7.18.9",
|
||||
"@babel/plugin-proposal-json-strings": "^7.18.6",
|
||||
"@babel/plugin-proposal-numeric-separator": "^7.18.6",
|
||||
"@babel/runtime": "^7.25.7",
|
||||
"@cubejs-client/core": "^0.36.4",
|
||||
"@quasar/extras": "^1.16.12",
|
||||
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.19",
|
||||
"@types/leaflet": "^1.9.12",
|
||||
"@vue/compat": "^3.5.10",
|
||||
"@vue/compiler-sfc": "^3.5.10",
|
||||
"@vue/eslint-config-standard": "^8.0.1",
|
||||
"@cubejs-client/core": "^1.2.26",
|
||||
"@quasar/extras": "^1.16.17",
|
||||
"@quasar/quasar-ui-qcalendar": "^4.1.2",
|
||||
"@types/jsbarcode": "^3.11.4",
|
||||
"@types/leaflet": "^1.9.17",
|
||||
"@vue/compat": "^3.5.13",
|
||||
"@vue/compiler-sfc": "^3.5.13",
|
||||
"@vuelidate/core": "^2.0.3",
|
||||
"@vuelidate/validators": "^2.0.4",
|
||||
"acorn": "^8.12.1",
|
||||
"acorn": "^8.14.1",
|
||||
"animate.css": "^4.1.1",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"axios": "^1.7.7",
|
||||
"bcryptjs": "^2.4.3",
|
||||
"chart.js": "^4.4.4",
|
||||
"core-js": "^3.38.1",
|
||||
"crypto-browserify": "^3.12.0",
|
||||
"autoprefixer": "^10.4.21",
|
||||
"axios": "^1.8.4",
|
||||
"bcryptjs": "^3.0.2",
|
||||
"chart.js": "^4.4.8",
|
||||
"core-js": "^3.41.0",
|
||||
"crypto-browserify": "^3.12.1",
|
||||
"date-fns": "^4.1.0",
|
||||
"dotenv": "^16.4.5",
|
||||
"echarts": "5.5.1",
|
||||
"eslint-plugin-n": "^17.10.3",
|
||||
"echarts": "5.6.0",
|
||||
"eslint-plugin-n": "^17.16.2",
|
||||
"eslint-plugin-quasar": "^1.1.0",
|
||||
"graphql": "^16.9.0",
|
||||
"graphql": "^16.10.0",
|
||||
"graphql-tag": "^2.12.6",
|
||||
"gsap": "^3.12.5",
|
||||
"html2pdf.js": "^0.10.2",
|
||||
"gsap": "^3.12.7",
|
||||
"html2pdf.js": "^0.10.3",
|
||||
"jquery": "^3.7.1",
|
||||
"js-cookie": "^3.0.5",
|
||||
"jsbarcode": "^3.11.6",
|
||||
"leaflet": "^1.9.4",
|
||||
"leaflet-routing-machine": "^3.2.12",
|
||||
"leaflet.markercluster": "^1.5.3",
|
||||
"localforage": "^1.10.0",
|
||||
"lodash": "^4.17.21",
|
||||
"normalize.css": "^8.0.1",
|
||||
"npm": "^10.8.3",
|
||||
"nprogress": "^0.2.0",
|
||||
"pinia": "^2.2.4",
|
||||
"pinia": "^3.0.1",
|
||||
"qrcode-vue3": "^1.7.1",
|
||||
"quasar": "^2.17.0",
|
||||
"quasar": "^2.18.1",
|
||||
"quasar-extras": "^2.0.9",
|
||||
"register-service-worker": "^1.7.2",
|
||||
"typescript-eslint": "^8.8.0",
|
||||
"vee-validate": "^4.13.2",
|
||||
"vue": "^3.5.10",
|
||||
"scrollreveal": "^4.0.9",
|
||||
"typescript-eslint": "^8.27.0",
|
||||
"vee-validate": "^4.15.0",
|
||||
"vue": "^3.5.13",
|
||||
"vue-class-component": "^8.0.0-rc.1",
|
||||
"vue-country-code": "^1.1.3",
|
||||
"vue-echarts": "^7.0.3",
|
||||
"vue-i18n": "^9.14.1",
|
||||
"vue-i18n": "^11.1.2",
|
||||
"vue-idb": "^0.2.0",
|
||||
"vue-image-zoomer": "^2.4.1",
|
||||
"vue-loader": "^17.4.2",
|
||||
"vue-image-zoomer": "^2.4.4",
|
||||
"vue-property-decorator": "^10.0.0-rc.3",
|
||||
"vue-router": "^4.4.5",
|
||||
"vue-router": "^4.5.0",
|
||||
"vue-scroll-reveal": "^2.1.0",
|
||||
"vue-social-sharing": "^4.0.0-alpha4",
|
||||
"vue-svgicon": "^4.0.0-alpha.3",
|
||||
@@ -90,79 +89,55 @@
|
||||
"vue3-pdf-app": "^1.0.3",
|
||||
"vue3-qr-reader": "^1.0.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": {
|
||||
"@babel/core": "^7.25.7",
|
||||
"@babel/plugin-transform-class-properties": "^7.25.7",
|
||||
"@babel/plugin-transform-export-namespace-from": "^7.25.7",
|
||||
"@babel/plugin-transform-json-strings": "^7.25.7",
|
||||
"@babel/plugin-transform-numeric-separator": "^7.25.7",
|
||||
"@babel/plugin-transform-runtime": "^7.25.7",
|
||||
"@quasar/app-webpack": "^3.14.0",
|
||||
"@types/bcryptjs": "^2.4.6",
|
||||
"@types/dotenv": "^8.2.0",
|
||||
"@eslint/js": "^9.23.0",
|
||||
"@intlify/unplugin-vue-i18n": "^6.0.5",
|
||||
"@quasar/app-vite": "^2.1.4",
|
||||
"@types/google.maps": "^3.58.1",
|
||||
"@types/jest": "^29.5.13",
|
||||
"@types/jest": "^29.5.14",
|
||||
"@types/js-cookie": "^3.0.6",
|
||||
"@types/node": "22.7.4",
|
||||
"@types/node": "^22.13.11",
|
||||
"@types/nprogress": "^0.2.3",
|
||||
"@types/vue-tel-input": "^2.1.7",
|
||||
"@types/vuelidate": "^0.7.21",
|
||||
"@typescript-eslint/eslint-plugin": "^8.8.0",
|
||||
"@typescript-eslint/parser": "^8.8.0",
|
||||
"babel-loader": "^9.2.1",
|
||||
"copy-webpack-plugin": "^12.0.2",
|
||||
"eslint": "^9.11.1",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"@types/vuelidate": "^0.7.22",
|
||||
"@vue/devtools": "^7.7.2",
|
||||
"@vue/eslint-config-prettier": "^10.2.0",
|
||||
"@vue/eslint-config-typescript": "^14.5.0",
|
||||
"autoprefixer": "^10.4.21",
|
||||
"eslint": "9",
|
||||
"eslint-plugin-import": "^2.31.0",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-promise": "^7.1.0",
|
||||
"eslint-plugin-vue": "^9.28.0",
|
||||
"eslint-plugin-vue": "^10.0.0",
|
||||
"file-loader": "^6.2.0",
|
||||
"fork-ts-checker-webpack-plugin": "^9.0.2",
|
||||
"friendly-errors-webpack-plugin": "^1.7.0",
|
||||
"html-webpack-plugin": "^5.6.0",
|
||||
"http-proxy-middleware": "^3.0.2",
|
||||
"globals": "^16.0.0",
|
||||
"http-proxy-middleware": "^3.0.3",
|
||||
"jest": "^29.7.0",
|
||||
"json-loader": "^0.5.7",
|
||||
"node-sass": "^9.0.0",
|
||||
"nodemon": "^3.1.7",
|
||||
"npm-check-updates": "^17.1.3",
|
||||
"optimize-css-assets-webpack-plugin": "^6.0.1",
|
||||
"parcel": "^2.12.0",
|
||||
"postcss": "^8.4.47",
|
||||
"nodemon": "^3.1.9",
|
||||
"npm-check-updates": "^17.1.16",
|
||||
"parcel": "^2.14.1",
|
||||
"postcss": "^8.5.3",
|
||||
"postcss-loader": "^8.1.1",
|
||||
"sass-loader": "^16.0.2",
|
||||
"prettier": "3",
|
||||
"strip-ansi": "=7.1.0",
|
||||
"ts-jest": "^29.2.5",
|
||||
"ts-loader": "^9.5.1",
|
||||
"typescript": "5.6.2",
|
||||
"ts-jest": "^29.2.6",
|
||||
"typescript": "5.7.3",
|
||||
"vite-plugin-checker": "^0.9.1",
|
||||
"vue-cli-plugin-element-ui": "^1.1.4",
|
||||
"vue-eslint-parser": "^10.1.1",
|
||||
"vue-tsc": "^2.2.8",
|
||||
"vueify": "^9.4.1",
|
||||
"webpack": "^5.95.0",
|
||||
"webpack-dashboard": "^3.3.8",
|
||||
"workbox-webpack-plugin": "^7.1.0"
|
||||
"workbox-build": "^7.3.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": {
|
||||
"node": ">= 18.18.0",
|
||||
"npm": ">= 6.14.8",
|
||||
"node": "^28 || ^26 || ^24 || ^22 || ^20 || ^18",
|
||||
"npm": ">= 6.13.4",
|
||||
"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 |