- sistemazioni Email : registrazione, invio invito, email di benvenuto
- fix circuito - profilo
4
.env
@@ -1,6 +1,6 @@
|
||||
VITE_APP_VERSION="1.2.79"
|
||||
VITE_APP_VERSION="1.2.84"
|
||||
VITE_LANG_DEFAULT="it"
|
||||
VITE_PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||
VITE_SERVICE_WORKER_FILE="sw-1.2.79.js"
|
||||
VITE_SERVICE_WORKER_FILE="sw-1.2.84.js"
|
||||
VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
|
||||
VITE_VUE_ROUTER_MODE="history"
|
||||
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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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.79">
|
||||
<meta name="version" content="1.2.84">
|
||||
<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<% } %>">
|
||||
|
||||
|
||||
12
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "riso",
|
||||
"version": "1.2.79",
|
||||
"version": "1.2.84",
|
||||
"productName": "Riso 💚 - Rete Italiana Scambi Orizzontali",
|
||||
"description": "Progetto RISO (Rete Italiana Scambi Orizzontali) 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",
|
||||
@@ -9,11 +9,11 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "APP_VERSION='1.2.79' PORT=8084 quasar dev",
|
||||
"dev": "APP_VERSION='1.2.84' PORT=8084 quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.84' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.84' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "quasar build -m spa",
|
||||
@@ -21,8 +21,8 @@
|
||||
"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": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.79' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.79' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.84' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.84' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
BIN
public/images/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
public/images/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
public/images/favicon-96x96.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 237 KiB After Width: | Height: | Size: 217 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 202 KiB After Width: | Height: | Size: 181 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 316 KiB After Width: | Height: | Size: 275 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 9.8 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: 61 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 424 KiB After Width: | Height: | Size: 1.0 MiB |
BIN
riso-logo-full.jpg
Normal file
|
After Width: | Height: | Size: 142 KiB |
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cnm",
|
||||
"version": "1.2.79",
|
||||
"version": "1.2.84",
|
||||
"description": "Comunita Nuovo Mondo",
|
||||
"productName": "ComunitaNuovoMondo",
|
||||
"author": "Surya",
|
||||
@@ -9,7 +9,7 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8083 APP_VERSION='1.2.79' quasar dev",
|
||||
"dev": "PORT=8083 APP_VERSION='1.2.84' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production quasar build -m pwa",
|
||||
@@ -21,8 +21,8 @@
|
||||
"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": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.79' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.79' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.84' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.84' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -4,7 +4,7 @@ const msg_website = {
|
||||
home: 'Principale',
|
||||
SignUp: 'Registrazione',
|
||||
SignUp2: 'Registrazione2',
|
||||
SignIn: 'Login',
|
||||
SignIn: 'Login',Accedi
|
||||
vreg: 'Verifica Reg',
|
||||
Test: 'Test',
|
||||
TestLocal: 'TestLocal',
|
||||
@@ -35,7 +35,7 @@ const msg_website = {
|
||||
},
|
||||
homepage: {
|
||||
descrapp_title1: 'Uniti per Evolvere e Sperimentare',
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana di Scambio Orizzontale</strong>, abbiamo creato questa pittaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana Scambi orizzontali</strong>, abbiamo creato questa pittaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
'Valori semplici e profondi che ci aiutano a ritrovare il <strong>senso della vita</strong>, perduto in questa società consumista, e riporti quei <strong>Sani Pricìpi Naturali</strong> ed Umani di <strong>Fratellanza</strong>'
|
||||
+ ' che intere popolazioni antiche conoscevano bene.',
|
||||
descrapp_pag2: 'E\' giunta l\'ora di utilizzare i nuovi strumenti <strong>Tecnologici</strong> a nostro <strong>favore</strong>, per <strong>Liberarci</strong> '
|
||||
|
||||
@@ -60,7 +60,7 @@ const msg_website_it = {
|
||||
SignUp7: 'Registra',
|
||||
SignUp11: 'Registra',
|
||||
SignUpBot: 'Registrati con Telegram',
|
||||
SignIn: 'Login',
|
||||
SignIn: 'Accedi',
|
||||
status: 'Statistiche',
|
||||
nextzoom: 'Conferenze',
|
||||
requestresetpwd: 'Richiesta Reset Password',
|
||||
@@ -136,12 +136,12 @@ const msg_website_it = {
|
||||
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
|
||||
underconstruction: 'App in costruzione...',
|
||||
myDescriz: '',
|
||||
sottoTitoloApp: 'Rete Italiana di Scambio Orizzontale',
|
||||
sottoTitoloApp: 'Rete Italiana Scambi orizzontali',
|
||||
sottoTitoloApp2: '',
|
||||
},
|
||||
homepage: {
|
||||
descrapp_title1: 'Uniti per Evolvere e Sperimentare',
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana di Scambio Orizzontale</strong>, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana Scambi orizzontali</strong>, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
'Valori semplici e profondi che ci aiutano a ritrovare il <strong>Senso della Vita</strong>, perduto in questa società consumista, e riporti quei <strong>Sani Pricìpi Naturali</strong> ed Umani di <strong>Fratellanza</strong>'
|
||||
+ ' che intere popolazioni antiche conoscevano bene.',
|
||||
descrapp_pag2: 'E\' giunta l\'ora di utilizzare i nuovi strumenti <strong>Tecnologici</strong> a nostro <strong>favore</strong>, per <strong>Liberarci</strong> '
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "freeplanet",
|
||||
"version": "1.2.79",
|
||||
"version": "1.2.84",
|
||||
"description": "freeplanet",
|
||||
"productName": "freeplanet",
|
||||
"author": "Surya",
|
||||
@@ -9,11 +9,11 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8087 APP_VERSION='1.2.79' quasar dev",
|
||||
"dev": "PORT=8087 APP_VERSION='1.2.84' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.84' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.84' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "quasar build -m spa",
|
||||
@@ -21,8 +21,8 @@
|
||||
"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": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.79' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.79' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.84' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.84' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gruppomacro",
|
||||
"version": "1.2.79",
|
||||
"version": "1.2.84",
|
||||
"productName": "Gruppo Macro",
|
||||
"description": "Il Gruppo Editoriale Macro, attivo dal 1987, è leader europeo nella pubblicazione di libri per il benessere e la consapevolezza. Con oltre 1.500 titoli, promuove una visione armonica del mondo, offrendo opere di autori internazionali e italiani come Gregg Braden, Bruce Lipton, Joe Dispenza, Louise Hay, Eckhart Tolle e molti altri. Scopri un'editoria che abbraccia il corpo, la mente, lo spirito e l'ecologia.",
|
||||
"author": "Surya",
|
||||
@@ -9,20 +9,20 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8089 APP_VERSION='1.2.79' quasar dev",
|
||||
"dev": "PORT=8089 APP_VERSION='1.2.84' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.84' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.84' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "APP_VERSION='1.2.79' quasar build -m spa",
|
||||
"buildspa": "APP_VERSION='1.2.84' 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 -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.79' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.79' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.84' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.84' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -35,7 +35,7 @@ const msg_website = {
|
||||
},
|
||||
homepage: {
|
||||
descrapp_title1: 'Uniti per Evolvere e Sperimentare',
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana di Scambio Orizzontale</strong>, abbiamo creato questa pittaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana Scambi orizzontali</strong>, abbiamo creato questa pittaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
'Valori semplici e profondi che ci aiutano a ritrovare il <strong>senso della vita</strong>, perduto in questa società consumista, e riporti quei <strong>Sani Pricìpi Naturali</strong> ed Umani di <strong>Fratellanza</strong>'
|
||||
+ ' che intere popolazioni antiche conoscevano bene.',
|
||||
descrapp_pag2: 'E\' giunta l\'ora di utilizzare i nuovi strumenti <strong>Tecnologici</strong> a nostro <strong>favore</strong>, per <strong>Liberarci</strong> '
|
||||
|
||||
@@ -117,12 +117,12 @@ const msg_website_it = {
|
||||
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
|
||||
underconstruction: 'App in costruzione...',
|
||||
myDescriz: '',
|
||||
sottoTitoloApp: 'Rete Italiana di Scambio Orizzontale',
|
||||
sottoTitoloApp: 'Rete Italiana Scambi orizzontali',
|
||||
sottoTitoloApp2: '',
|
||||
},
|
||||
homepage: {
|
||||
descrapp_title1: 'Uniti per Evolvere e Sperimentare',
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana di Scambio Orizzontale</strong>, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana Scambi orizzontali</strong>, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
'Valori semplici e profondi che ci aiutano a ritrovare il <strong>Senso della Vita</strong>, perduto in questa società consumista, e riporti quei <strong>Sani Pricìpi Naturali</strong> ed Umani di <strong>Fratellanza</strong>'
|
||||
+ ' che intere popolazioni antiche conoscevano bene.',
|
||||
descrapp_pag2: 'E\' giunta l\'ora di utilizzare i nuovi strumenti <strong>Tecnologici</strong> a nostro <strong>favore</strong>, per <strong>Liberarci</strong> '
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "nuovomondo",
|
||||
"version": "1.2.79",
|
||||
"version": "1.2.84",
|
||||
"description": "Nuovo Mondo",
|
||||
"productName": "Nuovo Mondo",
|
||||
"author": "Surya",
|
||||
@@ -9,11 +9,11 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "APP_VERSION='1.2.79' PORT=8083 quasar dev",
|
||||
"dev": "APP_VERSION='1.2.84' PORT=8083 quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.84' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.84' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "quasar build -m spa",
|
||||
@@ -21,8 +21,8 @@
|
||||
"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": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.79' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.79' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.84' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.84' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -35,7 +35,7 @@ const msg_website = {
|
||||
},
|
||||
homepage: {
|
||||
descrapp_title1: 'Uniti per Evolvere e Sperimentare',
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana di Scambio Orizzontale</strong>, abbiamo creato questa pittaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana Scambi orizzontali</strong>, abbiamo creato questa pittaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
'Valori semplici e profondi che ci aiutano a ritrovare il <strong>senso della vita</strong>, perduto in questa società consumista, e riporti quei <strong>Sani Pricìpi Naturali</strong> ed Umani di <strong>Fratellanza</strong>'
|
||||
+ ' che intere popolazioni antiche conoscevano bene.',
|
||||
descrapp_pag2: 'E\' giunta l\'ora di utilizzare i nuovi strumenti <strong>Tecnologici</strong> a nostro <strong>favore</strong>, per <strong>Liberarci</strong> '
|
||||
|
||||
@@ -139,12 +139,12 @@ const msg_website_it = {
|
||||
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
|
||||
underconstruction: 'App in costruzione...',
|
||||
myDescriz: '',
|
||||
sottoTitoloApp: 'Rete Italiana di Scambio Orizzontale',
|
||||
sottoTitoloApp: 'Rete Italiana Scambi orizzontali',
|
||||
sottoTitoloApp2: '',
|
||||
},
|
||||
homepage: {
|
||||
descrapp_title1: 'Uniti per Evolvere e Sperimentare',
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana di Scambio Orizzontale</strong>, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana Scambi orizzontali</strong>, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
'Valori semplici e profondi che ci aiutano a ritrovare il <strong>Senso della Vita</strong>, perduto in questa società consumista, e riporti quei <strong>Sani Pricìpi Naturali</strong> ed Umani di <strong>Fratellanza</strong>'
|
||||
+ ' che intere popolazioni antiche conoscevano bene.',
|
||||
descrapp_pag2: 'E\' giunta l\'ora di utilizzare i nuovi strumenti <strong>Tecnologici</strong> a nostro <strong>favore</strong>, per <strong>Liberarci</strong> '
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "nutriben",
|
||||
"version": "1.2.79",
|
||||
"version": "1.2.84",
|
||||
"description": "Nutriben",
|
||||
"productName": "Nutriben",
|
||||
"author": "Surya",
|
||||
@@ -9,20 +9,20 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8093 APP_VERSION='1.2.79' quasar dev",
|
||||
"dev": "PORT=8093 APP_VERSION='1.2.84' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.84' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.84' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "APP_VERSION='1.2.79' quasar build -m spa",
|
||||
"buildspa": "APP_VERSION='1.2.84' 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 -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.79' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.79' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.84' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.84' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -35,7 +35,7 @@ const msg_website = {
|
||||
},
|
||||
homepage: {
|
||||
descrapp_title1: 'Uniti per Evolvere e Sperimentare',
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana di Scambio Orizzontale</strong>, abbiamo creato questa pittaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana Scambi orizzontali</strong>, abbiamo creato questa pittaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
'Valori semplici e profondi che ci aiutano a ritrovare il <strong>senso della vita</strong>, perduto in questa società consumista, e riporti quei <strong>Sani Pricìpi Naturali</strong> ed Umani di <strong>Fratellanza</strong>'
|
||||
+ ' che intere popolazioni antiche conoscevano bene.',
|
||||
descrapp_pag2: 'E\' giunta l\'ora di utilizzare i nuovi strumenti <strong>Tecnologici</strong> a nostro <strong>favore</strong>, per <strong>Liberarci</strong> '
|
||||
|
||||
@@ -116,12 +116,12 @@ const msg_website_it = {
|
||||
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
|
||||
underconstruction: 'App in costruzione...',
|
||||
myDescriz: '',
|
||||
sottoTitoloApp: 'Rete Italiana di Scambio Orizzontale',
|
||||
sottoTitoloApp: 'Rete Italiana Scambi orizzontali',
|
||||
sottoTitoloApp2: '',
|
||||
},
|
||||
homepage: {
|
||||
descrapp_title1: 'Uniti per Evolvere e Sperimentare',
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana di Scambio Orizzontale</strong>, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana Scambi orizzontali</strong>, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
'Valori semplici e profondi che ci aiutano a ritrovare il <strong>Senso della Vita</strong>, perduto in questa società consumista, e riporti quei <strong>Sani Pricìpi Naturali</strong> ed Umani di <strong>Fratellanza</strong>'
|
||||
+ ' che intere popolazioni antiche conoscevano bene.',
|
||||
descrapp_pag2: 'E\' giunta l\'ora di utilizzare i nuovi strumenti <strong>Tecnologici</strong> a nostro <strong>favore</strong>, per <strong>Liberarci</strong> '
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "piuchebuono",
|
||||
"version": "1.2.79",
|
||||
"version": "1.2.84",
|
||||
"description": "PiuCheBuono",
|
||||
"productName": "PiuCheBuono",
|
||||
"author": "Surya",
|
||||
@@ -9,11 +9,11 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8085 APP_VERSION='1.2.79' quasar dev",
|
||||
"dev": "PORT=8085 APP_VERSION='1.2.84' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.84' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.84' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "quasar build -m spa",
|
||||
@@ -21,8 +21,8 @@
|
||||
"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": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.79' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.79' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.84' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.84' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -35,7 +35,7 @@ const msg_website = {
|
||||
},
|
||||
homepage: {
|
||||
descrapp_title1: 'Uniti per Evolvere e Sperimentare',
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana di Scambio Orizzontale</strong>, abbiamo creato questa pittaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana Scambi orizzontali</strong>, abbiamo creato questa pittaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
'Valori semplici e profondi che ci aiutano a ritrovare il <strong>senso della vita</strong>, perduto in questa società consumista, e riporti quei <strong>Sani Pricìpi Naturali</strong> ed Umani di <strong>Fratellanza</strong>'
|
||||
+ ' che intere popolazioni antiche conoscevano bene.',
|
||||
descrapp_pag2: 'E\' giunta l\'ora di utilizzare i nuovi strumenti <strong>Tecnologici</strong> a nostro <strong>favore</strong>, per <strong>Liberarci</strong> '
|
||||
|
||||
@@ -139,12 +139,12 @@ const msg_website_it = {
|
||||
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
|
||||
underconstruction: 'App in costruzione...',
|
||||
myDescriz: '',
|
||||
sottoTitoloApp: 'Rete Italiana di Scambio Orizzontale',
|
||||
sottoTitoloApp: 'Rete Italiana Scambi orizzontali',
|
||||
sottoTitoloApp2: '',
|
||||
},
|
||||
homepage: {
|
||||
descrapp_title1: 'Uniti per Evolvere e Sperimentare',
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana di Scambio Orizzontale</strong>, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana Scambi orizzontali</strong>, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
'Valori semplici e profondi che ci aiutano a ritrovare il <strong>Senso della Vita</strong>, perduto in questa società consumista, e riporti quei <strong>Sani Pricìpi Naturali</strong> ed Umani di <strong>Fratellanza</strong>'
|
||||
+ ' che intere popolazioni antiche conoscevano bene.',
|
||||
descrapp_pag2: 'E\' giunta l\'ora di utilizzare i nuovi strumenti <strong>Tecnologici</strong> a nostro <strong>favore</strong>, per <strong>Liberarci</strong> '
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "riso",
|
||||
"version": "1.2.79",
|
||||
"version": "1.2.84",
|
||||
"productName": "Riso 💚 - Rete Italiana Scambi Orizzontali",
|
||||
"description": "Progetto RISO (Rete Italiana Scambi Orizzontali) 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",
|
||||
@@ -9,11 +9,11 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "APP_VERSION='1.2.79' PORT=8084 quasar dev",
|
||||
"dev": "APP_VERSION='1.2.84' PORT=8084 quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.84' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.84' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "quasar build -m spa",
|
||||
@@ -21,8 +21,8 @@
|
||||
"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": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.79' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.79' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.84' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.84' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "Riso",
|
||||
"short_name": "Riso",
|
||||
"description": "Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.",
|
||||
"description": "Siamo la Rete Italiana Scambi orizzontali, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.",
|
||||
"display": "standalone",
|
||||
"orientation": "portrait",
|
||||
"background_color": "#fff",
|
||||
|
||||
@@ -35,7 +35,7 @@ const msg_website = {
|
||||
},
|
||||
homepage: {
|
||||
descrapp_title1: 'Uniti per Evolvere e Sperimentare',
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana di Scambio Orizzontale</strong>, abbiamo creato questa pittaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana Scambi orizzontali</strong>, abbiamo creato questa pittaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
'Valori semplici e profondi che ci aiutano a ritrovare il <strong>senso della vita</strong>, perduto in questa società consumista, e riporti quei <strong>Sani Pricìpi Naturali</strong> ed Umani di <strong>Fratellanza</strong>'
|
||||
+ ' che intere popolazioni antiche conoscevano bene.',
|
||||
descrapp_pag2: 'E\' giunta l\'ora di utilizzare i nuovi strumenti <strong>Tecnologici</strong> a nostro <strong>favore</strong>, per <strong>Liberarci</strong> '
|
||||
|
||||
@@ -2,8 +2,8 @@ const msg_website_it = {
|
||||
ws: {
|
||||
sitename: 'RISO',
|
||||
siteshortname: 'RISO',
|
||||
description: 'Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.',
|
||||
keywords: 'riso, piattaforma di scambio, rete italiana scambio orizzontale, riso app, riso piattaforma, scambio e baratto, momenta RIS',
|
||||
description: 'Siamo la Rete Italiana Scambi orizzontali, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.',
|
||||
keywords: 'riso, piattaforma di scambio, rete italiana scambi orizzontali, riso app, riso piattaforma, scambio e baratto, momenta RIS',
|
||||
},
|
||||
hours: {
|
||||
descr: 'Descrizione',
|
||||
@@ -133,12 +133,12 @@ const msg_website_it = {
|
||||
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
|
||||
underconstruction: 'App in costruzione...',
|
||||
myDescriz: '',
|
||||
sottoTitoloApp: 'Rete Italiana di Scambio Orizzontale',
|
||||
sottoTitoloApp: 'Rete Italiana Scambi orizzontali',
|
||||
sottoTitoloApp2: '',
|
||||
},
|
||||
homepage: {
|
||||
descrapp_title1: 'Uniti per Evolvere e Sperimentare',
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana di Scambio Orizzontale</strong>, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana Scambi orizzontali</strong>, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
'Valori semplici e profondi che ci aiutano a ritrovare il <strong>Senso della Vita</strong>, perduto in questa società consumista, e riporti quei <strong>Sani Pricìpi Naturali</strong> ed Umani di <strong>Fratellanza</strong>'
|
||||
+ ' che intere popolazioni antiche conoscevano bene.',
|
||||
descrapp_pag2: 'E\' giunta l\'ora di utilizzare i nuovi strumenti <strong>Tecnologici</strong> a nostro <strong>favore</strong>, per <strong>Liberarci</strong> '
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/* global workbox */
|
||||
/* global cfgenv */
|
||||
|
||||
const VITE_APP_VERSION = '1.2.79';
|
||||
const VITE_APP_VERSION = '1.2.84';
|
||||
|
||||
// Costanti di configurazione
|
||||
const DYNAMIC_CACHE = 'dynamic-cache-v2';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "Riso",
|
||||
"short_name": "Riso",
|
||||
"description": "Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.",
|
||||
"description": "Siamo la Rete Italiana Scambi orizzontali, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.",
|
||||
"display": "standalone",
|
||||
"orientation": "portrait",
|
||||
"background_color": "#fff",
|
||||
|
||||
@@ -58,9 +58,9 @@ export function UseAxios(router: any) { // VueRouter
|
||||
}
|
||||
}
|
||||
|
||||
if (response.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN && handle(response.status, exclude)) {
|
||||
if (response.status === serv_constants.RIS_CODE__HTTP_INVALID_TOKEN && handle(response.status, exclude)) {
|
||||
window.setTimeout(() => router.replace('/forbidden'), 200)
|
||||
// } else if (response.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_TOKEN_EXPIRED) {
|
||||
// } else if (response.status === serv_constants.RIS_CODE__HTTP_TOKEN_EXPIRED) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ export function UseAxios(router: any) { // VueRouter
|
||||
}
|
||||
}
|
||||
|
||||
if (response.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN && handle(response.status, exclude)) {
|
||||
if (response.status === serv_constants.RIS_CODE__HTTP_INVALID_TOKEN && handle(response.status, exclude)) {
|
||||
window.setTimeout(() => router.replace('/forbidden'), 200)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,6 +98,14 @@ export const shared_consts = {
|
||||
],
|
||||
|
||||
CallFunz: {
|
||||
REGISTRATION: 6,
|
||||
VERIFICA_TELEGRAM: 7,
|
||||
RICHIESTA_GRUPPO: 10,
|
||||
RICHIESTA_AMICIZIA: 15,
|
||||
RICHIESTA_HANDSHAKE: 16,
|
||||
RICHIESTA_CIRCUIT: 20,
|
||||
RICHIESTA_FIDO: 25,
|
||||
ENTRA_RIS_ITALIA: 30,
|
||||
SOSTITUISCI: 345,
|
||||
AGGIUNGI_NUOVO_IMBARCO: 380,
|
||||
CANCELLA_IMBARCO: 385,
|
||||
@@ -105,13 +113,6 @@ export const shared_consts = {
|
||||
GET_VALBYTABLE: 400,
|
||||
SET_VALBYTABLE: 410,
|
||||
ZOOM_GIA_PARTECIPATO: 510,
|
||||
REGISTRATION: 6,
|
||||
RICHIESTA_GRUPPO: 10,
|
||||
RICHIESTA_AMICIZIA: 15,
|
||||
RICHIESTA_HANDSHAKE: 16,
|
||||
RICHIESTA_CIRCUIT: 20,
|
||||
RICHIESTA_FIDO: 25,
|
||||
ENTRA_RIS_ITALIA: 30,
|
||||
},
|
||||
|
||||
ELEMTYPE: {
|
||||
@@ -253,6 +254,7 @@ export const shared_consts = {
|
||||
UNBLOCK_USER: 156,
|
||||
REPORT_USER: 158,
|
||||
FIND_PEOPLE: 166,
|
||||
DELETE_USER: 170,
|
||||
},
|
||||
|
||||
GROUPSCMD: {
|
||||
|
||||
@@ -13,6 +13,11 @@ export default defineComponent({
|
||||
required: false,
|
||||
default: false,
|
||||
},
|
||||
login: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
setup(props) {
|
||||
const globalStore = useGlobalStore();
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<template>
|
||||
<!-- Debug Info -->
|
||||
<div
|
||||
v-if="tools.isDebugOn()"
|
||||
v-if="tools.isDebugOn() && !login"
|
||||
class="debug-info"
|
||||
>
|
||||
<span class="debug-label">Debug:</span>
|
||||
isAppRunning: {{ isAppRunning }} • deferredPrompt: {{ !!deferredPrompt }} •
|
||||
homescreen: {{ homescreen }} • isInRestrictedWebView: {{ isInRestrictedWebView }} •
|
||||
isInTelegramWebView: {{ tools.isInTelegramWebView() }}
|
||||
isInAppBrowser: {{ tools.isInAppBrowser() }}
|
||||
</div>
|
||||
|
||||
<!-- Main Content -->
|
||||
@@ -68,9 +68,9 @@
|
||||
<h4>Istruzioni per l'installazione</h4>
|
||||
</div>
|
||||
|
||||
<!-- Telegram -->
|
||||
<!-- Mobile (Telegram e altri) -->
|
||||
<div
|
||||
v-if="tools.isInTelegramWebView()"
|
||||
v-if="$q.platform.is.mobile"
|
||||
class="instruction-content"
|
||||
>
|
||||
<div class="step-list">
|
||||
@@ -82,18 +82,24 @@
|
||||
</div>
|
||||
<div class="step-item">
|
||||
<span class="step-number">2</span>
|
||||
<span class="step-text">Scegli <strong>"Apri con..."</strong></span>
|
||||
<span class="step-text">
|
||||
Se in alto vedi <strong>"Apri con..."</strong>, cliccalo e scegli
|
||||
Chrome, Brave o il tuo browser preferito.<br />
|
||||
|
||||
Altrimenti scegli <strong>"Installa app"</strong> o
|
||||
<strong>"Aggiungi alla schermata Home"</strong></span
|
||||
>
|
||||
</div>
|
||||
<div class="step-item">
|
||||
<span class="step-number">3</span>
|
||||
<span class="step-text"
|
||||
>Seleziona il tuo browser (Chrome, Firefox, Safari...)</span
|
||||
>Scegli il tuo browser preferito (Chrome, Safari, Brave...)</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Altri WebView -->
|
||||
<!-- Desktop/Altri -->
|
||||
<div
|
||||
v-else
|
||||
class="instruction-content"
|
||||
@@ -118,9 +124,70 @@
|
||||
</transition>
|
||||
</div>
|
||||
|
||||
<!-- ✅ App già installata -->
|
||||
<div
|
||||
v-else-if="isAppRunning && isPageApp"
|
||||
class="install-card app-installed"
|
||||
>
|
||||
<div class="card-center">
|
||||
<div class="icon-wrapper success">
|
||||
<q-icon
|
||||
name="fas fa-check-circle"
|
||||
size="64px"
|
||||
/>
|
||||
</div>
|
||||
<h3 class="card-title">App già installata! 🎉</h3>
|
||||
<p class="card-description">
|
||||
Ottimo! Stai già usando RISO come app installata. Puoi accedere sempre dalla
|
||||
tua schermata home.
|
||||
</p>
|
||||
|
||||
<div class="benefits-list">
|
||||
<div class="benefit-item">
|
||||
<q-icon
|
||||
name="fas fa-bolt"
|
||||
color="primary"
|
||||
size="24px"
|
||||
/>
|
||||
<span>Accesso rapido dalla home</span>
|
||||
</div>
|
||||
<div class="benefit-item">
|
||||
<q-icon
|
||||
name="fas fa-bell"
|
||||
color="primary"
|
||||
size="24px"
|
||||
/>
|
||||
<span>Notifiche in tempo reale</span>
|
||||
</div>
|
||||
<div class="benefit-item">
|
||||
<q-icon
|
||||
name="fas fa-mobile-alt"
|
||||
color="primary"
|
||||
size="24px"
|
||||
/>
|
||||
<span>Esperienza nativa</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<q-btn
|
||||
unelevated
|
||||
rounded
|
||||
size="lg"
|
||||
color="primary"
|
||||
class="install-btn"
|
||||
to="/"
|
||||
>
|
||||
<q-icon
|
||||
name="fas fa-home"
|
||||
class="q-mr-sm"
|
||||
/>
|
||||
Vai alla Home
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ✅ Browser Esterno - NON in modalità app -->
|
||||
<div
|
||||
v-else-if="!isAppRunning && !hideInstallPrompt"
|
||||
v-else-if="!isAppRunning && (!hideInstallPrompt || isPageApp)"
|
||||
class="install-card browser-install"
|
||||
>
|
||||
<!-- Installazione con Prompt (Android Chrome, Desktop) -->
|
||||
@@ -264,7 +331,6 @@
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Android -->
|
||||
<div
|
||||
v-else-if="$q.platform.is.android"
|
||||
@@ -307,9 +373,12 @@
|
||||
</div>
|
||||
<div class="step-item">
|
||||
<span class="step-number">2</span>
|
||||
<span class="step-text"
|
||||
>Scegli <strong>"Installa app"</strong> o
|
||||
<strong>"Aggiungi alla home"</strong></span
|
||||
<span class="step-text">
|
||||
Se in alto vedi <strong>"Apri con..."</strong>, cliccalo e scegli
|
||||
Chrome, Brave o il tuo browser preferito.<br />
|
||||
|
||||
Altrimenti scegli <strong>"Installa app"</strong> o
|
||||
<strong>"Aggiungi alla schermata home"</strong></span
|
||||
>
|
||||
</div>
|
||||
<div class="step-item">
|
||||
@@ -357,7 +426,6 @@
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Browser Desktop (Chrome, Brave, Edge, Firefox, Safari) -->
|
||||
<div
|
||||
v-else-if="isDesktopBrowser && browserInfo.supported"
|
||||
@@ -456,67 +524,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ✅ App già installata -->
|
||||
<div
|
||||
v-else-if="isAppRunning && isPageApp"
|
||||
class="install-card app-installed"
|
||||
>
|
||||
<div class="card-center">
|
||||
<div class="icon-wrapper success">
|
||||
<q-icon
|
||||
name="fas fa-check-circle"
|
||||
size="64px"
|
||||
/>
|
||||
</div>
|
||||
<h3 class="card-title">App già installata! 🎉</h3>
|
||||
<p class="card-description">
|
||||
Ottimo! Stai già usando RISO come app installata. Puoi accedere sempre dalla
|
||||
tua schermata home.
|
||||
</p>
|
||||
|
||||
<div class="benefits-list">
|
||||
<div class="benefit-item">
|
||||
<q-icon
|
||||
name="fas fa-bolt"
|
||||
color="primary"
|
||||
size="24px"
|
||||
/>
|
||||
<span>Accesso rapido dalla home</span>
|
||||
</div>
|
||||
<div class="benefit-item">
|
||||
<q-icon
|
||||
name="fas fa-bell"
|
||||
color="primary"
|
||||
size="24px"
|
||||
/>
|
||||
<span>Notifiche in tempo reale</span>
|
||||
</div>
|
||||
<div class="benefit-item">
|
||||
<q-icon
|
||||
name="fas fa-mobile-alt"
|
||||
color="primary"
|
||||
size="24px"
|
||||
/>
|
||||
<span>Esperienza nativa</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<q-btn
|
||||
unelevated
|
||||
rounded
|
||||
size="lg"
|
||||
color="primary"
|
||||
class="install-btn"
|
||||
to="/"
|
||||
>
|
||||
<q-icon
|
||||
name="fas fa-home"
|
||||
class="q-mr-sm"
|
||||
/>
|
||||
Vai alla Home
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
</transition>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -70,9 +70,13 @@ export default defineComponent({
|
||||
const globalStore = useGlobalStore();
|
||||
|
||||
const circuit = ref(<IMyCircuit | ICircuit | null>null);
|
||||
const account = computed(() =>
|
||||
circuit.value ? userStore.getAccountByCircuitId(circuit.value._id) : null
|
||||
);
|
||||
const account = computed(() => {
|
||||
if (groupnameSel.value) {
|
||||
return userStore.getAccountGroupByCircuitId(circuit.value._id, groupnameSel.value);
|
||||
} else {
|
||||
return circuit.value ? userStore.getAccountByCircuitId(circuit.value._id) : null;
|
||||
}
|
||||
});
|
||||
|
||||
const qtarem = computed(() =>
|
||||
account.value ? circuitStore.getRemainingCoinsToSend(account.value) : 0
|
||||
@@ -84,7 +88,8 @@ export default defineComponent({
|
||||
circuitStore.getFidoConcessoByUsername(
|
||||
props.myuser,
|
||||
circuit.value._id,
|
||||
props.username
|
||||
groupnameSel.value ? '' : props.username,
|
||||
groupnameSel.value ? groupnameSel.value.groupname : ''
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
@@ -37,13 +37,13 @@
|
||||
v-if="circuit.link_group"
|
||||
:class="` `"
|
||||
>
|
||||
<q-btn
|
||||
<!--<q-btn
|
||||
icon="fab fa-telegram"
|
||||
size="xs"
|
||||
color="blue"
|
||||
rounded
|
||||
@click.stop.prevent="tools.openUrl(circuit.link_group)"
|
||||
></q-btn>
|
||||
></q-btn>-->
|
||||
</div>
|
||||
</q-item-section>
|
||||
|
||||
@@ -321,6 +321,16 @@
|
||||
size="sm"
|
||||
>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
v-else-if="groupnameSel"
|
||||
icon="fas fa-house-user"
|
||||
class="q-ml-sm"
|
||||
:color="Number(account.fidoConcesso) > 0 ? 'primary' : 'grey'"
|
||||
text-color="white"
|
||||
round
|
||||
size="sm"
|
||||
>
|
||||
</q-btn>
|
||||
</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section
|
||||
|
||||
@@ -199,7 +199,9 @@ export default defineComponent({
|
||||
return (
|
||||
userStore.IsMyCircuitByName(circuititalia.value.name) ||
|
||||
userStore.IsAskedCircuitByName(circuititalia.value.name) ||
|
||||
userStore.my.profile.noCircIta || userStore.my.profile.noCircuit || userStore.my.profile.insert_circuito_ita
|
||||
userStore.my.profile.noCircIta ||
|
||||
userStore.my.profile.noCircuit ||
|
||||
userStore.my.profile.insert_circuito_ita
|
||||
);
|
||||
}
|
||||
return false;
|
||||
@@ -257,7 +259,8 @@ export default defineComponent({
|
||||
visible: !isTelegramVerified.value,
|
||||
disabled: false,
|
||||
title: 'Verifica Telegram',
|
||||
description: 'Collega il tuo account Telegram per accedere alle community RISO!',
|
||||
description:
|
||||
'Collega il tuo account Telegram per partecipare alle community RISO ed essere contattato!',
|
||||
completed: isTelegramVerified.value,
|
||||
avatar: {
|
||||
color: isTelegramVerified.value ? 'positive' : telegramStatus.value.color,
|
||||
@@ -266,8 +269,16 @@ export default defineComponent({
|
||||
},
|
||||
caption: isTelegramVerified.value ? 'Completato!' : telegramStatus.value.message,
|
||||
badge: {
|
||||
color: isTelegramVerified.value ? 'positive' : (isTelegramSkipped ? 'red' : 'orange'),
|
||||
label: isTelegramVerified.value ? 'Fatto' : (isTelegramSkipped ? 'Saltato' : 'Da fare'),
|
||||
color: isTelegramVerified.value
|
||||
? 'positive'
|
||||
: (isTelegramSkipped.value
|
||||
? 'red'
|
||||
: 'orange'),
|
||||
label: isTelegramVerified.value
|
||||
? 'Fatto'
|
||||
: (isTelegramSkipped.value
|
||||
? 'Saltato'
|
||||
: 'Da fare'),
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -275,7 +286,8 @@ export default defineComponent({
|
||||
visible: true,
|
||||
disabled: false,
|
||||
title: 'Circuito RIS Locale',
|
||||
description: 'Seleziona la tua provincia di residenza per connetterti con la community locale.',
|
||||
description:
|
||||
'Seleziona la tua provincia di residenza per connetterti con la community locale.',
|
||||
completed: stepCircuit.value.checkOk(),
|
||||
avatar: {
|
||||
color: stepCircuit.value.checkOk() ? 'positive' : 'orange',
|
||||
@@ -287,8 +299,16 @@ export default defineComponent({
|
||||
? 'Completato: ' + stepCircuit.value.extratitle()
|
||||
: stepCircuit.value.extratitle() || 'Unisciti al circuito della tua zona',
|
||||
badge: {
|
||||
color: stepCircuit.value.checkOkReal() ? 'positive' : isSalta(STEP_CIRCUIT) ? 'red' : 'orange',
|
||||
label: stepCircuit.value.checkOkReal() ? 'Fatto' : isSalta(STEP_CIRCUIT) ? 'Saltato' : 'Da fare',
|
||||
color: stepCircuit.value.checkOkReal()
|
||||
? 'positive'
|
||||
: (isSalta(STEP_CIRCUIT)
|
||||
? 'red'
|
||||
: 'orange'),
|
||||
label: stepCircuit.value.checkOkReal()
|
||||
? 'Fatto'
|
||||
: (isSalta(STEP_CIRCUIT)
|
||||
? 'Saltato'
|
||||
: 'Da fare'),
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -296,7 +316,8 @@ export default defineComponent({
|
||||
visible: true,
|
||||
disabled: !(circuititalia.value && stepCircuit.value.checkOkReal()),
|
||||
title: 'Circuito Italia',
|
||||
description: 'Entra nel circuito nazionale per accedere a opportunità in tutta Italia.',
|
||||
description:
|
||||
'Entra nel circuito nazionale per accedere a opportunità in tutta Italia.',
|
||||
completed: stepCircuitItalia.value.checkOk(),
|
||||
avatar: {
|
||||
color: stepCircuitItalia.value.checkOk() ? 'positive' : 'grey-6',
|
||||
@@ -308,8 +329,16 @@ export default defineComponent({
|
||||
? 'Completato!'
|
||||
: 'Unisciti al circuito nazionale (opzionale)',
|
||||
badge: {
|
||||
color: stepCircuitItalia.value.checkOkReal() ? 'positive' : (isSalta(STEP_CIRCUIT_ITALIA)) ? 'red' : 'grey',
|
||||
label: stepCircuitItalia.value.checkOkReal() ? 'Fatto' : (isSalta(STEP_CIRCUIT_ITALIA)) ? 'Saltato' : 'opzionale',
|
||||
color: stepCircuitItalia.value.checkOkReal()
|
||||
? 'positive'
|
||||
: isSalta(STEP_CIRCUIT_ITALIA)
|
||||
? 'red'
|
||||
: 'grey',
|
||||
label: stepCircuitItalia.value.checkOkReal()
|
||||
? 'Fatto'
|
||||
: isSalta(STEP_CIRCUIT_ITALIA)
|
||||
? 'Saltato'
|
||||
: 'opzionale',
|
||||
},
|
||||
},
|
||||
]);
|
||||
@@ -426,8 +455,8 @@ export default defineComponent({
|
||||
$q.notify({
|
||||
type: 'positive',
|
||||
message:
|
||||
'Token generato! Clicca su "Apri Telegram" per completare la verifica.',
|
||||
timeout: 3000,
|
||||
'Token generato! Clicca su "Apri Telegram" per completare la verifica e clicca su START.',
|
||||
timeout: 5000,
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Errore nella generazione del token:', error);
|
||||
@@ -448,7 +477,26 @@ export default defineComponent({
|
||||
};
|
||||
|
||||
const openTelegramDownload = () => {
|
||||
window.open('https://telegram.org/apps', '_blank');
|
||||
const userAgent = navigator.userAgent.toLowerCase();
|
||||
|
||||
// iOS - vai su App Store
|
||||
if (/iphone|ipad|ipod/.test(userAgent)) {
|
||||
window.open(
|
||||
'https://apps.apple.com/app/telegram-messenger/id686449807',
|
||||
'_blank'
|
||||
);
|
||||
}
|
||||
// Android - vai su Google Play
|
||||
else if (/android/.test(userAgent)) {
|
||||
window.open(
|
||||
'https://play.google.com/store/apps/details?id=org.telegram.messenger',
|
||||
'_blank'
|
||||
);
|
||||
}
|
||||
// Desktop - vai alla pagina download
|
||||
else {
|
||||
window.open('https://desktop.telegram.org/', '_blank');
|
||||
}
|
||||
};
|
||||
|
||||
const skipTelegramVerification = () => {
|
||||
@@ -457,6 +505,7 @@ export default defineComponent({
|
||||
message:
|
||||
'<p><strong>RISO utilizza Telegram per connettere la sua community in tutta Italia!</strong></p>' +
|
||||
'<p style="margin-top: 12px;">' +
|
||||
'✅ Contatta direttamente i membri usando il bottone "Messaggia"<br>' +
|
||||
'✅ Chat provinciali e nazionali RISO attive<br>' +
|
||||
'✅ Migliaia di utenti con cui interagire<br>' +
|
||||
'✅ Eventi, iniziative e aggiornamenti in tempo reale<br>' +
|
||||
@@ -516,6 +565,28 @@ export default defineComponent({
|
||||
}
|
||||
});
|
||||
};
|
||||
const infoTelegramVerification = () => {
|
||||
$q.dialog({
|
||||
title: 'Perché Telegram?',
|
||||
message:
|
||||
'<p><strong>RISO utilizza Telegram per connettere la sua community in tutta Italia!</strong></p>' +
|
||||
'<p style="margin-top: 12px;">' +
|
||||
'✅ Contatta direttamente i membri usando il bottone "Messaggia"<br>' +
|
||||
'✅ Chat provinciali e nazionali RISO attive<br>' +
|
||||
'✅ Migliaia di utenti con cui interagire<br>' +
|
||||
'✅ Eventi, iniziative e aggiornamenti in tempo reale<br>' +
|
||||
'✅ Gruppi ampi senza limiti WhatsApp<br>' +
|
||||
'✅ Gratuito, sicuro e senza pubblicità' +
|
||||
'</p>' +
|
||||
'<p style="margin-top: 12px;"><em>Unisciti alla community su Telegram e scopri tutto quello che RISO ha da offrire!</em></p>',
|
||||
html: true,
|
||||
ok: {
|
||||
label: 'Chiudi',
|
||||
color: 'primary',
|
||||
},
|
||||
persistent: true,
|
||||
});
|
||||
};
|
||||
|
||||
const startPolling = () => {
|
||||
pollingInterval.value = setInterval(async () => {
|
||||
@@ -541,7 +612,7 @@ export default defineComponent({
|
||||
} catch (error) {
|
||||
console.error('Errore nel controllo verifica:', error);
|
||||
}
|
||||
}, 3000);
|
||||
}, 5000);
|
||||
};
|
||||
|
||||
const stopPolling = () => {
|
||||
@@ -573,7 +644,9 @@ export default defineComponent({
|
||||
function isSalta(step: number) {
|
||||
return (
|
||||
(step === STEP_CIRCUIT && mycircuit.value && userStore.my.profile.noCircuit) ||
|
||||
(step === STEP_CIRCUIT_ITALIA && circuititalia.value && userStore.my.profile.noCircIta)
|
||||
(step === STEP_CIRCUIT_ITALIA &&
|
||||
circuititalia.value &&
|
||||
userStore.my.profile.noCircIta)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -808,6 +881,7 @@ export default defineComponent({
|
||||
startTelegramVerification,
|
||||
openTelegramBot,
|
||||
skipTelegramVerification,
|
||||
infoTelegramVerification,
|
||||
openTelegramDownload,
|
||||
|
||||
// Methods - Navigation
|
||||
|
||||
@@ -45,7 +45,11 @@
|
||||
v-show="stepConfig.visible"
|
||||
group="gruppo1"
|
||||
:model-value="openedStep === stepConfig.key"
|
||||
@update:model-value="(val) => { if (val) openedStep = stepConfig.key }"
|
||||
@update:model-value="
|
||||
(val) => {
|
||||
if (val) openedStep = stepConfig.key;
|
||||
}
|
||||
"
|
||||
:disable="stepConfig.disabled"
|
||||
class="step-item"
|
||||
:class="{ 'step-completed': stepConfig.completed }"
|
||||
@@ -92,7 +96,10 @@
|
||||
</template>
|
||||
|
||||
<!-- Contenuto specifico per ogni step -->
|
||||
<q-card v-if="!stepConfig.disabled" class="step-content">
|
||||
<q-card
|
||||
v-if="!stepConfig.disabled"
|
||||
class="step-content"
|
||||
>
|
||||
<q-card-section class="q-pa-md">
|
||||
<p class="step-description">
|
||||
{{ stepConfig.description }}
|
||||
@@ -121,26 +128,50 @@
|
||||
rounded
|
||||
color="positive"
|
||||
icon="fab fa-telegram"
|
||||
label="Apri Telegram"
|
||||
label="Apri Bot Telegram"
|
||||
@click="openTelegramBot"
|
||||
class="action-btn"
|
||||
class="action-btn q-mb-md"
|
||||
/>
|
||||
|
||||
<q-banner
|
||||
v-if="verificationToken"
|
||||
class="bg-blue-1 text-blue-9"
|
||||
rounded
|
||||
>
|
||||
<div class="text-body2">
|
||||
<strong>Passo 1:</strong> Clicca il bottone sopra<br />
|
||||
<strong>Passo 2:</strong> Nel bot clicca <strong>AVVIA</strong> o
|
||||
<strong>START</strong> <br />
|
||||
<strong>Passo 3:</strong> Ritorna su questa pagina.
|
||||
</div>
|
||||
</q-banner>
|
||||
|
||||
<div style="display: flex; justify-content: center">
|
||||
<q-spinner-dots
|
||||
v-else
|
||||
v-if="isVerifying && verificationToken"
|
||||
color="primary"
|
||||
size="32px"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<q-btn
|
||||
flat
|
||||
v-if="!verificationToken"
|
||||
rounded
|
||||
dense
|
||||
outline
|
||||
color="grey-7"
|
||||
label="Perché Telegram?"
|
||||
icon="help_outline"
|
||||
@click="skipTelegramVerification"
|
||||
size="sm"
|
||||
@click="infoTelegramVerification"
|
||||
class="skip-btn"
|
||||
/>
|
||||
<q-btn
|
||||
v-if="!verificationToken"
|
||||
rounded
|
||||
outline
|
||||
color="primary"
|
||||
label="Installa Telegram"
|
||||
icon="fab fa-telegram"
|
||||
@click="openTelegramDownload"
|
||||
class="skip-btn"
|
||||
/>
|
||||
</div>
|
||||
@@ -162,7 +193,9 @@
|
||||
|
||||
<div v-if="stepResidence.checkOk()">
|
||||
<CMySelectCity
|
||||
v-if="globalStore.isPresenteCardsByProv(contact.profile.resid_province)"
|
||||
v-if="
|
||||
globalStore.isPresenteCardsByProv(contact.profile.resid_province)
|
||||
"
|
||||
:label="$t('reg.resid_card')"
|
||||
table="users"
|
||||
jointable="cards"
|
||||
|
||||
@@ -64,7 +64,7 @@ export default defineComponent({
|
||||
function created() {
|
||||
onReset()
|
||||
|
||||
if (userStore.resStatus === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN) {
|
||||
if (userStore.resStatus === serv_constants.RIS_CODE__HTTP_INVALID_TOKEN) {
|
||||
emit('showNotif', 'fetch.error_doppiologin')
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<div v-if="enablePwa"><CCheckAppRunning /></div>
|
||||
<div v-if="enablePwa"><CCheckAppRunning :login="true"/></div>
|
||||
<div class="text-center">
|
||||
<p>
|
||||
<logo></logo>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
(site.confpages?.enableRegMultiChoice || !site.confpages?.enabledRegNeedTelegram)
|
||||
"
|
||||
>
|
||||
<CVerifyEmail v-if="isLogged && !isEmailVerified && !telegVerificato" />
|
||||
<CVerifyEmail v-if="isLogged && !isEmailVerified && !telegVerificato && tools.getUserEmail()" />
|
||||
</div>
|
||||
|
||||
<!-- Waiting for Admission Section -->
|
||||
@@ -35,24 +35,9 @@
|
||||
<div class="info-box">
|
||||
<div class="info-text">
|
||||
<p>
|
||||
Sei in attesa di essere ammesso da
|
||||
Siete in attesa di essere ammessi da
|
||||
<strong>{{ tools.getAportadorSolidario() }}</strong>
|
||||
</p>
|
||||
<p class="small-text">
|
||||
Riceverai una notifica sulla chat Telegram
|
||||
|
||||
<a
|
||||
:href="tools.getLinkBotTelegram('', '')"
|
||||
target="_blank"
|
||||
class="telegram-link"
|
||||
>
|
||||
<q-icon
|
||||
name="fab fa-telegram"
|
||||
size="16px"
|
||||
/>
|
||||
{{ tools.getBotName() }}
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<div class="info-text">
|
||||
<p class="instruction-title">Controlla la tua casella email </p>
|
||||
<p class="instruction-text">
|
||||
Ti abbiamo inviato un'email a <strong>{{ tools.getUserEmail() }}</strong>
|
||||
Ti abbiamo inviato un'email a '<strong>{{ tools.getUserEmail() }}</strong>'
|
||||
</p>
|
||||
<p class="instruction-text">
|
||||
Cerca l'email "<strong>Conferma Registrazione</strong>" e clicca sul bottone di verifica
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
</h1>
|
||||
|
||||
<h2 class="hero-subtitle animate-fade-in-delay">
|
||||
Rete Italiana di Scambio Orizzontale
|
||||
Rete Italiana Scambi orizzontali
|
||||
</h2>
|
||||
|
||||
<p class="hero-description animate-fade-in-delay-2">
|
||||
@@ -855,7 +855,7 @@
|
||||
<q-separator class="footer-separator" />
|
||||
|
||||
<div class="footer-bottom">
|
||||
<p>{{ currentYear }} RISO - Rete Italiana di Scambio Orizzontale</p>
|
||||
<p>{{ currentYear }} RISO - Rete Italiana Scambi orizzontali</p>
|
||||
<p class="footer-values">
|
||||
Comunità · Fiducia · Scambi Solidali · Sostenibilità
|
||||
</p>
|
||||
|
||||
@@ -857,6 +857,7 @@ $text-light: #666; // Grigio medio
|
||||
|
||||
.cta-buttons {
|
||||
margin-bottom: 4rem;
|
||||
margin-top: 8px;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
margin-bottom: 1rem;
|
||||
|
||||
@@ -112,7 +112,7 @@ export default defineComponent({
|
||||
},
|
||||
{
|
||||
title: 'Usa i RIS',
|
||||
text: 'Scambia in RIS, anche parzialmente: puoi combinare RIS con Euro, baratto o dono nella stessa transazione. Parti da 0 RIS: quando ricevi vai in positivo, quando offri vai in negativo. Più usi i RIS, meno dipendi dall\'economia tradizionale.'
|
||||
text: 'Scambia in RIS, anche parzialmente: puoi combinare RIS con Euro, baratto o dono nella stessa transazione. Parti da 0 RIS: quando ricevi vai in positivo, quando invii vai in negativo. Più usi i RIS, meno dipendi dall\'economia tradizionale.'
|
||||
},
|
||||
]);
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
</h1>
|
||||
|
||||
<h2 class="hero-subtitle animate-fade-in-delay">
|
||||
Rete Italiana di Scambio Orizzontale
|
||||
Rete Italiana Scambi orizzontali
|
||||
</h2>
|
||||
|
||||
<p class="hero-description animate-fade-in-delay-2">
|
||||
@@ -309,8 +309,8 @@
|
||||
<q-card-section>
|
||||
<p class="ris-description">
|
||||
Il <strong>RIS</strong> è l'unità di misura del valore dei beni e
|
||||
servizi per lo scambio tra i membri di una comunità territoriale. È una
|
||||
moneta complementare basata sulla <strong>fiducia reciproca</strong> tra
|
||||
servizi per lo scambio tra i membri di una comunità territoriale. È uno strumento di scambio
|
||||
basato sulla <strong>fiducia reciproca</strong> tra
|
||||
i membri della comunità.<br />
|
||||
</p>
|
||||
<q-separator class="q-my-md" />
|
||||
@@ -321,7 +321,7 @@
|
||||
color="positive"
|
||||
/>
|
||||
<span
|
||||
>Parti da 0 RIS: ricevere = credito (+), offrire = debito (-)</span
|
||||
>Parti da 0 RIS: ricevere = credito (+), inviare = debito (-)</span
|
||||
>
|
||||
</div>
|
||||
<div class="ris-feature-item">
|
||||
@@ -660,6 +660,8 @@
|
||||
/>
|
||||
</div>
|
||||
|
||||
<CCheckAppRunning />
|
||||
|
||||
<!-- Info App -->
|
||||
<div class="app-features">
|
||||
<div class="feature-badge">
|
||||
@@ -696,7 +698,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<CCheckAppRunning />
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -806,7 +807,7 @@
|
||||
<q-separator class="footer-separator" />
|
||||
|
||||
<div class="footer-bottom">
|
||||
<p>(dal 2021) RISO - Rete Italiana di Scambio Orizzontale</p>
|
||||
<p>(dal 2021) RISO - Rete Italiana Scambi orizzontali</p>
|
||||
<p class="footer-values">
|
||||
Comunità · Fiducia · Scambi Solidali · Sostenibilità
|
||||
</p>
|
||||
|
||||
@@ -35,7 +35,7 @@ const msg_website = {
|
||||
},
|
||||
homepage: {
|
||||
descrapp_title1: 'Uniti per Evolvere e Sperimentare',
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana di Scambio Orizzontale</strong>, abbiamo creato questa pittaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana Scambi orizzontali</strong>, abbiamo creato questa pittaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
'Valori semplici e profondi che ci aiutano a ritrovare il <strong>senso della vita</strong>, perduto in questa società consumista, e riporti quei <strong>Sani Pricìpi Naturali</strong> ed Umani di <strong>Fratellanza</strong>'
|
||||
+ ' che intere popolazioni antiche conoscevano bene.',
|
||||
descrapp_pag2: 'E\' giunta l\'ora di utilizzare i nuovi strumenti <strong>Tecnologici</strong> a nostro <strong>favore</strong>, per <strong>Liberarci</strong> '
|
||||
|
||||
@@ -2,8 +2,8 @@ const msg_website_it = {
|
||||
ws: {
|
||||
sitename: 'RISO',
|
||||
siteshortname: 'RISO',
|
||||
description: 'Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.',
|
||||
keywords: 'riso, piattaforma di scambio, rete italiana scambio orizzontale, riso app, riso piattaforma, scambio e baratto, momenta RIS',
|
||||
description: 'Siamo la Rete Italiana Scambi orizzontali, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.',
|
||||
keywords: 'riso, piattaforma di scambio, rete italiana scambi orizzontali, riso app, riso piattaforma, scambio e baratto, momenta RIS',
|
||||
},
|
||||
hours: {
|
||||
descr: 'Descrizione',
|
||||
@@ -133,12 +133,12 @@ const msg_website_it = {
|
||||
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
|
||||
underconstruction: 'App in costruzione...',
|
||||
myDescriz: '',
|
||||
sottoTitoloApp: 'Rete Italiana di Scambio Orizzontale',
|
||||
sottoTitoloApp: 'Rete Italiana Scambi orizzontali',
|
||||
sottoTitoloApp2: '',
|
||||
},
|
||||
homepage: {
|
||||
descrapp_title1: 'Uniti per Evolvere e Sperimentare',
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana di Scambio Orizzontale</strong>, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana Scambi orizzontali</strong>, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
'Valori semplici e profondi che ci aiutano a ritrovare il <strong>Senso della Vita</strong>, perduto in questa società consumista, e riporti quei <strong>Sani Pricìpi Naturali</strong> ed Umani di <strong>Fratellanza</strong>'
|
||||
+ ' che intere popolazioni antiche conoscevano bene.',
|
||||
descrapp_pag2: 'E\' giunta l\'ora di utilizzare i nuovi strumenti <strong>Tecnologici</strong> a nostro <strong>favore</strong>, per <strong>Liberarci</strong> '
|
||||
|
||||
@@ -68,6 +68,16 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 500,
|
||||
path: '/testweb',
|
||||
materialIcon: 'fas fa-test',
|
||||
name: 'mypages.testweb',
|
||||
component: () => import('@src/pages/TestWeb.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 12,
|
||||
|
||||
@@ -1284,7 +1284,7 @@ export interface ICatGrp {
|
||||
idCatGrp?: number
|
||||
icon?: string
|
||||
img?: string
|
||||
color: string
|
||||
color?: string
|
||||
theme: string
|
||||
}
|
||||
|
||||
|
||||
464
src/pages/TestWeb.vue
Normal file
@@ -0,0 +1,464 @@
|
||||
<template>
|
||||
<q-page class="test-web-page">
|
||||
<div class="q-pa-md">
|
||||
<q-card class="debug-card">
|
||||
<!-- Header -->
|
||||
<q-card-section class="bg-primary text-white">
|
||||
<div class="text-h5">
|
||||
<q-icon name="bug_report" class="q-mr-sm" />
|
||||
Browser Debug Info
|
||||
</div>
|
||||
<div class="text-subtitle2">Informazioni sul browser e ambiente</div>
|
||||
</q-card-section>
|
||||
|
||||
<q-separator />
|
||||
|
||||
<!-- User Agent -->
|
||||
<q-card-section>
|
||||
<div class="info-section">
|
||||
<div class="info-title">
|
||||
<q-icon name="fingerprint" color="primary" size="24px" />
|
||||
<span>User Agent</span>
|
||||
</div>
|
||||
<div class="info-content">
|
||||
<code class="code-block">{{ browserInfo.userAgent }}</code>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
||||
<q-separator inset />
|
||||
|
||||
<!-- User Agent (lowercase) -->
|
||||
<q-card-section>
|
||||
<div class="info-section">
|
||||
<div class="info-title">
|
||||
<q-icon name="text_fields" color="primary" size="24px" />
|
||||
<span>User Agent (lowercase)</span>
|
||||
</div>
|
||||
<div class="info-content">
|
||||
<code class="code-block">{{ browserInfo.userAgentLower }}</code>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
||||
<q-separator inset />
|
||||
|
||||
<!-- Platform Info -->
|
||||
<q-card-section>
|
||||
<div class="info-section">
|
||||
<div class="info-title">
|
||||
<q-icon name="devices" color="primary" size="24px" />
|
||||
<span>Platform Info (Quasar)</span>
|
||||
</div>
|
||||
<div class="info-grid">
|
||||
<div class="info-item">
|
||||
<span class="label">Platform:</span>
|
||||
<q-badge :color="$q.platform.is.mobile ? 'orange' : 'blue'">
|
||||
{{ $q.platform.is.mobile ? 'Mobile' : 'Desktop' }}
|
||||
</q-badge>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">iOS:</span>
|
||||
<q-badge :color="$q.platform.is.ios ? 'positive' : 'grey'">
|
||||
{{ $q.platform.is.ios }}
|
||||
</q-badge>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">Android:</span>
|
||||
<q-badge :color="$q.platform.is.android ? 'positive' : 'grey'">
|
||||
{{ $q.platform.is.android }}
|
||||
</q-badge>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">Safari:</span>
|
||||
<q-badge :color="$q.platform.is.safari ? 'positive' : 'grey'">
|
||||
{{ $q.platform.is.safari }}
|
||||
</q-badge>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">Chrome:</span>
|
||||
<q-badge :color="$q.platform.is.chrome ? 'positive' : 'grey'">
|
||||
{{ $q.platform.is.chrome }}
|
||||
</q-badge>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
||||
<q-separator inset />
|
||||
|
||||
<!-- Telegram Objects -->
|
||||
<q-card-section>
|
||||
<div class="info-section">
|
||||
<div class="info-title">
|
||||
<q-icon name="telegram" color="blue-9" size="24px" />
|
||||
<span>Telegram Objects</span>
|
||||
</div>
|
||||
<div class="info-grid">
|
||||
<div class="info-item">
|
||||
<span class="label">window.Telegram:</span>
|
||||
<q-badge :color="browserInfo.telegram.hasTelegram ? 'positive' : 'negative'">
|
||||
{{ browserInfo.telegram.hasTelegram ? 'Presente' : 'Assente' }}
|
||||
</q-badge>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">window.TelegramWebviewProxy:</span>
|
||||
<q-badge :color="browserInfo.telegram.hasProxy ? 'positive' : 'negative'">
|
||||
{{ browserInfo.telegram.hasProxy ? 'Presente' : 'Assente' }}
|
||||
</q-badge>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">window.TelegramWebApp:</span>
|
||||
<q-badge :color="browserInfo.telegram.hasWebApp ? 'positive' : 'negative'">
|
||||
{{ browserInfo.telegram.hasWebApp ? 'Presente' : 'Assente' }}
|
||||
</q-badge>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
||||
<q-separator inset />
|
||||
|
||||
<!-- Detection Results -->
|
||||
<q-card-section>
|
||||
<div class="info-section">
|
||||
<div class="info-title">
|
||||
<q-icon name="search" color="primary" size="24px" />
|
||||
<span>Detection Results</span>
|
||||
</div>
|
||||
<div class="info-grid">
|
||||
<div class="info-item">
|
||||
<span class="label">In Telegram WebView:</span>
|
||||
<q-badge :color="browserInfo.detection.isInTelegramWebView ? 'positive' : 'grey'">
|
||||
{{ browserInfo.detection.isInTelegramWebView }}
|
||||
</q-badge>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">In App Browser:</span>
|
||||
<q-badge :color="browserInfo.detection.isInAppBrowser ? 'warning' : 'grey'">
|
||||
{{ browserInfo.detection.isInAppBrowser }}
|
||||
</q-badge>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">Is PWA:</span>
|
||||
<q-badge :color="browserInfo.detection.isPWA ? 'positive' : 'grey'">
|
||||
{{ browserInfo.detection.isPWA }}
|
||||
</q-badge>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
||||
<q-separator inset />
|
||||
|
||||
<!-- Window Size -->
|
||||
<q-card-section>
|
||||
<div class="info-section">
|
||||
<div class="info-title">
|
||||
<q-icon name="aspect_ratio" color="primary" size="24px" />
|
||||
<span>Window Size</span>
|
||||
</div>
|
||||
<div class="info-grid">
|
||||
<div class="info-item">
|
||||
<span class="label">Width:</span>
|
||||
<span class="value">{{ browserInfo.window.width }}px</span>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">Height:</span>
|
||||
<span class="value">{{ browserInfo.window.height }}px</span>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">Device Pixel Ratio:</span>
|
||||
<span class="value">{{ browserInfo.window.devicePixelRatio }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
||||
<!-- Actions -->
|
||||
<q-card-actions align="center" class="q-pa-md">
|
||||
<q-btn
|
||||
unelevated
|
||||
color="primary"
|
||||
icon="refresh"
|
||||
label="Aggiorna Info"
|
||||
@click="refreshInfo"
|
||||
/>
|
||||
<q-btn
|
||||
unelevated
|
||||
color="secondary"
|
||||
icon="content_copy"
|
||||
label="Copia JSON"
|
||||
@click="copyToClipboard"
|
||||
/>
|
||||
</q-card-actions>
|
||||
</q-card>
|
||||
|
||||
<!-- Raw JSON -->
|
||||
<q-card class="debug-card q-mt-md">
|
||||
<q-card-section class="bg-grey-9 text-white">
|
||||
<div class="text-h6">
|
||||
<q-icon name="code" class="q-mr-sm" />
|
||||
Raw JSON
|
||||
</div>
|
||||
</q-card-section>
|
||||
<q-card-section>
|
||||
<pre class="json-block">{{ JSON.stringify(browserInfo, null, 2) }}</pre>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
<CCheckAppRunning></CCheckAppRunning>
|
||||
</div>
|
||||
</q-page>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent, ref, onMounted } from 'vue';
|
||||
import { useQuasar } from 'quasar';
|
||||
import { CCheckAppRunning } from '../components/CCheckAppRunning';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'TestWeb',
|
||||
|
||||
setup() {
|
||||
const $q = useQuasar();
|
||||
|
||||
const browserInfo = ref({
|
||||
userAgent: '',
|
||||
userAgentLower: '',
|
||||
telegram: {
|
||||
hasTelegram: false,
|
||||
hasProxy: false,
|
||||
hasWebApp: false,
|
||||
},
|
||||
detection: {
|
||||
isInTelegramWebView: false,
|
||||
isInAppBrowser: false,
|
||||
isPWA: false,
|
||||
},
|
||||
window: {
|
||||
width: 0,
|
||||
height: 0,
|
||||
devicePixelRatio: 0,
|
||||
},
|
||||
});
|
||||
|
||||
const isInTelegramWebView = (): boolean => {
|
||||
const ua = (navigator.userAgent || '').toLowerCase();
|
||||
|
||||
if (ua.includes('telegram')) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const win = window as any;
|
||||
if (win.Telegram || win.TelegramWebviewProxy || win.TelegramWebApp) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
const isInAppBrowser = (): boolean => {
|
||||
const ua = (navigator.userAgent || '').toLowerCase();
|
||||
|
||||
if (isInTelegramWebView()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const inAppPatterns = [
|
||||
'fbav',
|
||||
'fban',
|
||||
'instagram',
|
||||
'tiktok',
|
||||
'snapchat',
|
||||
'twitter',
|
||||
'line',
|
||||
'micromessenger',
|
||||
];
|
||||
|
||||
if (inAppPatterns.some((pattern) => ua.includes(pattern))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (ua.includes('wv') && ua.includes('android')) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (/iphone|ipad|ipod/.test(ua)) {
|
||||
const isSafari = /safari/.test(ua) && !/crios|fxios|edgios/.test(ua);
|
||||
if (!isSafari) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
const isPWA = (): boolean => {
|
||||
return (
|
||||
window.matchMedia('(display-mode: standalone)').matches ||
|
||||
(window.navigator as any).standalone === true
|
||||
);
|
||||
};
|
||||
|
||||
const loadBrowserInfo = () => {
|
||||
const win = window as any;
|
||||
|
||||
browserInfo.value = {
|
||||
userAgent: navigator.userAgent,
|
||||
userAgentLower: navigator.userAgent.toLowerCase(),
|
||||
telegram: {
|
||||
hasTelegram: !!win.Telegram,
|
||||
hasProxy: !!win.TelegramWebviewProxy,
|
||||
hasWebApp: !!win.TelegramWebApp,
|
||||
},
|
||||
detection: {
|
||||
isInTelegramWebView: isInTelegramWebView(),
|
||||
isInAppBrowser: isInAppBrowser(),
|
||||
isPWA: isPWA(),
|
||||
},
|
||||
window: {
|
||||
width: window.innerWidth,
|
||||
height: window.innerHeight,
|
||||
devicePixelRatio: window.devicePixelRatio,
|
||||
},
|
||||
};
|
||||
|
||||
console.log('=== BROWSER DEBUG ===');
|
||||
console.log('User Agent:', browserInfo.value.userAgent);
|
||||
console.log('User Agent (lower):', browserInfo.value.userAgentLower);
|
||||
console.log('window.Telegram:', win.Telegram);
|
||||
console.log('window.TelegramWebviewProxy:', win.TelegramWebviewProxy);
|
||||
console.log('isInAppBrowser:', isInAppBrowser());
|
||||
console.log('isInTelegramWebView:', isInTelegramWebView());
|
||||
console.log('==================');
|
||||
};
|
||||
|
||||
const refreshInfo = () => {
|
||||
loadBrowserInfo();
|
||||
$q.notify({
|
||||
type: 'positive',
|
||||
message: 'Informazioni aggiornate!',
|
||||
icon: 'refresh',
|
||||
timeout: 1500,
|
||||
});
|
||||
};
|
||||
|
||||
const copyToClipboard = async () => {
|
||||
try {
|
||||
await navigator.clipboard.writeText(JSON.stringify(browserInfo.value, null, 2));
|
||||
$q.notify({
|
||||
type: 'positive',
|
||||
message: 'JSON copiato negli appunti!',
|
||||
icon: 'content_copy',
|
||||
timeout: 2000,
|
||||
});
|
||||
} catch (err) {
|
||||
$q.notify({
|
||||
type: 'negative',
|
||||
message: 'Errore nella copia',
|
||||
icon: 'error',
|
||||
timeout: 2000,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
loadBrowserInfo();
|
||||
});
|
||||
|
||||
return {
|
||||
browserInfo,
|
||||
refreshInfo,
|
||||
copyToClipboard,
|
||||
};
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.test-web-page {
|
||||
min-height: 100vh;
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
}
|
||||
|
||||
.debug-card {
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.info-section {
|
||||
.info-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #1a1a1a;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.info-content {
|
||||
margin-top: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.code-block {
|
||||
display: block;
|
||||
padding: 12px;
|
||||
background: #f5f5f5;
|
||||
border-radius: 8px;
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 13px;
|
||||
word-break: break-all;
|
||||
white-space: pre-wrap;
|
||||
color: #333;
|
||||
border-left: 4px solid #027be3;
|
||||
}
|
||||
|
||||
.info-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.info-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 12px;
|
||||
background: #f8f9fa;
|
||||
border-radius: 8px;
|
||||
border: 1px solid #e0e0e0;
|
||||
|
||||
.label {
|
||||
font-weight: 600;
|
||||
color: #555;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.value {
|
||||
font-weight: 500;
|
||||
color: #1a1a1a;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
.json-block {
|
||||
background: #1e1e1e;
|
||||
color: #d4d4d4;
|
||||
padding: 16px;
|
||||
border-radius: 8px;
|
||||
overflow-x: auto;
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 13px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.info-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -10,7 +10,7 @@
|
||||
}}
|
||||
</span>
|
||||
|
||||
<div v-if="tools.isLogged()">
|
||||
<div v-if="tools.isLogged() && tools.getUserEmail()">
|
||||
<div v-if="!tools.isUserOk()">
|
||||
<CUserNonVerif></CUserNonVerif>
|
||||
</div>
|
||||
|
||||
@@ -156,8 +156,6 @@
|
||||
class="action-btn-wrapper"
|
||||
>
|
||||
<q-btn
|
||||
flat
|
||||
dense
|
||||
rounded
|
||||
color="negative"
|
||||
icon="report"
|
||||
@@ -166,6 +164,15 @@
|
||||
no-caps
|
||||
size="sm"
|
||||
/>
|
||||
<q-btn
|
||||
rounded
|
||||
color="negative"
|
||||
icon="report"
|
||||
:label="`Elimina ${myuser.username}`"
|
||||
@click="tools.deleteUser($q, getMyUsername(), myuser.username)"
|
||||
no-caps
|
||||
size="sm"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -750,7 +750,7 @@ function getRoutesAd(site: ISites) {
|
||||
materialIcon: 'account_circle',
|
||||
name: 'pages.SignIn',
|
||||
component: () => import('@src/views/login/signin_noreg/signin_noreg.vue'),
|
||||
inmenu: false,
|
||||
inmenu: true,
|
||||
infooter: true
|
||||
},
|
||||
// --- NOT IN MENU: ---
|
||||
|
||||
@@ -209,6 +209,7 @@ const msg_enUs = {
|
||||
rejected: 'Rifiutato la Fiducia',
|
||||
domanda_blockuser: 'Bloccare {username}?',
|
||||
domanda_reportuser: 'Segnalare l\'utente {username}?',
|
||||
domanda_deleteuser: 'Eliminare l\'utente {username}?',
|
||||
domanda_blockgroup: 'Bloccare il gruppo {groupname}?',
|
||||
blockedfriend: 'Utente Bloccato',
|
||||
domanda: 'Domanda',
|
||||
|
||||
@@ -392,9 +392,11 @@ const msg_it = {
|
||||
domanda_blockuser: 'Bloccare {username}?',
|
||||
domanda_unblockuser: 'Sbloccare {username}?',
|
||||
domanda_reportuser: 'Segnalare l\'utente {username}?',
|
||||
domanda_deleteuser: 'Elimnare l\'utente {username}?',
|
||||
domanda_verifyuser: 'Verifica l\'utente {username}?',
|
||||
domanda_blockgroup: 'Bloccare l\'Organizzazione {groupname}?',
|
||||
reporteduser: 'Utente Segnalato in data {date_report}',
|
||||
deleteduser: 'Utente cancellato',
|
||||
blockedfriend: 'Utente Bloccato',
|
||||
unblockedfriend: 'Utente Sbloccato',
|
||||
domanda: 'Domanda',
|
||||
@@ -1274,6 +1276,7 @@ const msg_it = {
|
||||
},
|
||||
mypages: {
|
||||
gestoreordinigas: 'Gestore Ordini GAS',
|
||||
testweb: 'Test Web',
|
||||
totaliordini: 'Totali Ordini GAS',
|
||||
listadeigas: 'Lista dei GAS',
|
||||
catalogo_new: 'Vuoi andare al Catalogo "{title}" appena creato?',
|
||||
|
||||
@@ -148,8 +148,8 @@ export const Api = {
|
||||
const userStore = useUserStore();
|
||||
|
||||
if (
|
||||
status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_TOKEN_EXPIRED ||
|
||||
statuscode2 === serv_constants.RIS_CODE__HTTP_FORBIDDEN_TOKEN_EXPIRED
|
||||
status === serv_constants.RIS_CODE__HTTP_TOKEN_EXPIRED ||
|
||||
statuscode2 === serv_constants.RIS_CODE__HTTP_TOKEN_EXPIRED
|
||||
) {
|
||||
try {
|
||||
console.log('Token scaduto. Tentativo di refresh...');
|
||||
@@ -173,7 +173,7 @@ export const Api = {
|
||||
let mystatus = err2?.code || err2?.status;
|
||||
|
||||
if (
|
||||
mystatus === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN ||
|
||||
mystatus === serv_constants.RIS_CODE__HTTP_INVALID_TOKEN ||
|
||||
mystatus === serv_constants.RIS_CODE__HTTP_FORBIDDEN_PERMESSI ||
|
||||
mystatus === toolsext.ERR_RETRY_LOGIN
|
||||
) {
|
||||
@@ -183,12 +183,12 @@ export const Api = {
|
||||
}
|
||||
|
||||
// Gestione di altri errori critici
|
||||
throw err2 || { status: serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN };
|
||||
throw err2 || { status: serv_constants.RIS_CODE__HTTP_INVALID_TOKEN };
|
||||
}
|
||||
} else if (
|
||||
// status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN ||
|
||||
// status === serv_constants.RIS_CODE__HTTP_INVALID_TOKEN ||
|
||||
status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_PERMESSI
|
||||
// || statuscode2 === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN
|
||||
// || statuscode2 === serv_constants.RIS_CODE__HTTP_INVALID_TOKEN
|
||||
) {
|
||||
userStore.setAuth('', '');
|
||||
throw { status: toolsext.ERR_RETRY_LOGIN };
|
||||
@@ -239,10 +239,11 @@ export const Api = {
|
||||
}
|
||||
}, 1000);
|
||||
|
||||
if (res.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN) {
|
||||
if (res.status === serv_constants.RIS_CODE__HTTP_INVALID_TOKEN) {
|
||||
userStore.setServerCode(toolsext.ERR_AUTHENTICATION);
|
||||
userStore.setAuth('', '');
|
||||
throw { code: toolsext.ERR_AUTHENTICATION };
|
||||
// throw { code: toolsext.ERR_AUTHENTICATION };
|
||||
throw { status: toolsext.ERR_RETRY_LOGIN };
|
||||
}
|
||||
|
||||
// Verifica sul token (funzione custom)
|
||||
@@ -269,6 +270,13 @@ export const Api = {
|
||||
}
|
||||
}, 1000);
|
||||
|
||||
if (error.status === serv_constants.RIS_CODE__HTTP_INVALID_TOKEN) {
|
||||
userStore.setServerCode(toolsext.ERR_AUTHENTICATION);
|
||||
userStore.setAuth('', '');
|
||||
// throw { code: toolsext.ERR_AUTHENTICATION };
|
||||
throw { status: toolsext.ERR_RETRY_LOGIN };
|
||||
}
|
||||
|
||||
const ret: any = await this.checkTokenScaduto(
|
||||
error.status,
|
||||
evitaloop,
|
||||
@@ -341,9 +349,12 @@ export const Api = {
|
||||
options
|
||||
);
|
||||
} catch (error) {
|
||||
// Se lo status non è 403 e sono rimasti tentativi, eseguo il retry
|
||||
// Se lo status non è 403 (RIS_CODE__HTTP_FORBIDDEN_PERMESSI) e sono rimasti tentativi, eseguo il retry
|
||||
const riprova =
|
||||
error && error.status !== 403 && error.status !== toolsext.ERR_RETRY_LOGIN;
|
||||
error &&
|
||||
error.status !== serv_constants.RIS_CODE__HTTP_INVALID_TOKEN &&
|
||||
error.status !== serv_constants.RIS_CODE__HTTP_FORBIDDEN_PERMESSI &&
|
||||
error.status !== toolsext.ERR_RETRY_LOGIN;
|
||||
if (retryCount > 0 && riprova) {
|
||||
console.log(`❌❌❌ Retrying request. Attempts remaining: ${retryCount}`);
|
||||
await this.delay(retryDelay);
|
||||
|
||||
@@ -127,10 +127,9 @@ export const useCircuitStore = defineStore('CircuitStore', {
|
||||
|
||||
},
|
||||
|
||||
getFidoConcessoByUsername(myuser: IUserFields, circuitId: string, username: string): number|string {
|
||||
const userStore = useUserStore()
|
||||
getFidoConcessoByUsername(myuser: IUserFields, circuitId: string, username: string, groupname?: string): number|string {
|
||||
if (myuser && myuser.profile.useraccounts) {
|
||||
const account = myuser.profile.useraccounts.find((rec: IAccount) => rec.username === username || (rec.groupname === username && username !== '') && rec.circuitId === circuitId)
|
||||
const account = myuser.profile.useraccounts.find((rec: IAccount) => (rec.username === username || (rec.groupname === groupname && groupname !== '')) && rec.circuitId === circuitId)
|
||||
return account ? account.fidoConcesso : 0
|
||||
} else {
|
||||
return ''
|
||||
|
||||
@@ -400,7 +400,7 @@ export async function aftercalling(ris: any, checkPending: boolean, nametabindex
|
||||
if (import.meta.env.VITE_DEBUG === '1') {
|
||||
console.log('ris.status', ris.status)
|
||||
}
|
||||
if (ris.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN) {
|
||||
if (ris.status === serv_constants.RIS_CODE__HTTP_INVALID_TOKEN) {
|
||||
tools.consolelogpao('UNAUTHORIZING... TOKEN EXPIRED... !! ')
|
||||
} else {
|
||||
tools.consolelogpao('NETWORK UNREACHABLE ! (Error in fetch)', userStore.getServerCode, ris.status)
|
||||
|
||||
@@ -27,9 +27,9 @@ export const serv_constants = {
|
||||
RIS_CODE_OK: 1,
|
||||
RIS_CODE_LOGIN_OK: 1,
|
||||
RIS_ISCRIZIONE_OK: 5,
|
||||
RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN: 401,
|
||||
RIS_CODE__HTTP_INVALID_TOKEN: 401,
|
||||
RIS_CODE__HTTP_FORBIDDEN_PERMESSI: 403,
|
||||
RIS_CODE__HTTP_FORBIDDEN_TOKEN_EXPIRED: 408,
|
||||
RIS_CODE__HTTP_TOKEN_EXPIRED: 408,
|
||||
|
||||
RIS_CODE_TOKEN_RESETPASSWORD_NOT_FOUND: -23,
|
||||
|
||||
|
||||
@@ -2720,7 +2720,7 @@ export const tools = {
|
||||
|
||||
getUserEmail() {
|
||||
const userStore = useUserStore();
|
||||
return userStore.my?.email;
|
||||
return userStore.my?.email.trim();
|
||||
},
|
||||
|
||||
getEmailSupport() {
|
||||
@@ -6375,6 +6375,32 @@ export const tools = {
|
||||
});
|
||||
});
|
||||
},
|
||||
deleteUser($q: any, username: string, usernameDest: string) {
|
||||
// Segnala Profilo
|
||||
const userStore = useUserStore();
|
||||
//T_TOLTO
|
||||
$q.dialog({
|
||||
message: t('db.domanda_deleteuser', { username: usernameDest }),
|
||||
ok: { label: t('dialog.yes'), push: true },
|
||||
cancel: { label: t('dialog.cancel') },
|
||||
title: t('db.domanda'),
|
||||
}).onOk(() => {
|
||||
userStore
|
||||
.setFriendsCmd(
|
||||
$q,
|
||||
t,
|
||||
username,
|
||||
usernameDest,
|
||||
shared_consts.FRIENDSCMD.DELETE_USER,
|
||||
null
|
||||
)
|
||||
.then((res: any) => {
|
||||
if (res) {
|
||||
tools.showPositiveNotif($q, t('db.deleteduser'));
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
verifyUser($q: any, username: string, usernameDest: string) {
|
||||
// Segnala Profilo
|
||||
@@ -11282,31 +11308,73 @@ export const tools = {
|
||||
.toLowerCase()
|
||||
: undefined;
|
||||
},
|
||||
isInTelegramWebView() {
|
||||
try {
|
||||
// Verifica che siamo lato client
|
||||
if (typeof window === 'undefined') {
|
||||
return false;
|
||||
isInTelegramWebView(): boolean {
|
||||
const ua = (navigator.userAgent || '').toLowerCase();
|
||||
|
||||
// Controlla user agent
|
||||
if (ua.includes('telegram')) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Metodo 1: Controlla oggetti globali di Telegram
|
||||
// Controlla oggetti globali Telegram
|
||||
const win = window as any;
|
||||
if (win.Telegram || win.TelegramWebviewProxy || win.TelegramWebApp) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Metodo 2: User Agent (case-insensitive)
|
||||
const ua = navigator.userAgent.toLowerCase();
|
||||
if (ua.includes('telegram')) {
|
||||
return false;
|
||||
},
|
||||
|
||||
isInAppBrowser(): boolean {
|
||||
const ua = (
|
||||
navigator.userAgent ||
|
||||
navigator.vendor ||
|
||||
(window as any).opera ||
|
||||
''
|
||||
).toLowerCase();
|
||||
|
||||
// Telegram specifico
|
||||
if (this.isInTelegramWebView()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
} catch (e) {
|
||||
console.error('Errore rilevamento Telegram:', e);
|
||||
return false;
|
||||
// Altri in-app browser
|
||||
const inAppPatterns = [
|
||||
'fbav',
|
||||
'fban', // Facebook
|
||||
'instagram', // Instagram
|
||||
'tiktok', // TikTok
|
||||
'snapchat', // Snapchat
|
||||
'twitter', // Twitter
|
||||
'line', // Line
|
||||
'micromessenger', // WeChat
|
||||
];
|
||||
|
||||
if (inAppPatterns.some((pattern) => ua.includes(pattern))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Android WebView
|
||||
if (ua.includes('wv') && ua.includes('android')) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// iOS WebView (esclude Safari/Chrome/Firefox nativi)
|
||||
if (/iphone|ipad|ipod/.test(ua)) {
|
||||
const isSafari = /safari/.test(ua) && !/crios|fxios|edgios/.test(ua);
|
||||
if (!isSafari) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
isStatusNonAutorizzato() {
|
||||
const userStore = useUserStore();
|
||||
return userStore.servercode === serv_constants.RIS_CODE__HTTP_FORBIDDEN_PERMESSI
|
||||
},
|
||||
|
||||
pageExist(path: string) {
|
||||
const globalStore = useGlobalStore();
|
||||
const page = globalStore.getPage(path);
|
||||
|
||||
@@ -14,6 +14,7 @@ import type {
|
||||
IColGridTable,
|
||||
ISignupIscrizioneConacreisOptions,
|
||||
IMovQuery,
|
||||
IGroup,
|
||||
} from '@src/model';
|
||||
import { IFriends, ISettings } from '@src/model';
|
||||
import { tools } from '@tools';
|
||||
@@ -2595,5 +2596,14 @@ export const useUserStore = defineStore('UserStore', {
|
||||
return ris.data;
|
||||
});
|
||||
},
|
||||
|
||||
getAccountGroupByCircuitId(circuitId: string, group: IMyGroup) {
|
||||
for (const circ of group.mycircuits) {
|
||||
if (circ._id === circuitId) {
|
||||
return circ.account;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
@@ -2206,7 +2206,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
|
||||
userStore.updateLocalStorage(res.data.myuser);
|
||||
|
||||
isLogged = !!res.data.myuser.username;
|
||||
isLogged = !!res.data.myuser.username && res.data.myuser.email;
|
||||
} else {
|
||||
// User not exist !!
|
||||
}
|
||||
@@ -2253,8 +2253,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
if (error.status === toolsext.ERR_RETRY_LOGIN) {
|
||||
} else {
|
||||
if (
|
||||
error.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_TOKEN_EXPIRED ||
|
||||
error.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN
|
||||
error.status === serv_constants.RIS_CODE__HTTP_TOKEN_EXPIRED ||
|
||||
error.status === serv_constants.RIS_CODE__HTTP_INVALID_TOKEN
|
||||
) {
|
||||
} else {
|
||||
this.serverError = true;
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<template>
|
||||
<div class="q-gutter-sm q-pa-sm q-pb-md">
|
||||
<div v-if="!circuit && !loading">
|
||||
<div v-if="mystatus === 401">
|
||||
<div v-if="!tools.isLogged()">
|
||||
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||
</div>
|
||||
<div v-else-if="tools.isStatusNonAutorizzato()">
|
||||
<h3>
|
||||
Non hai i permessi per accedere al Circuito.
|
||||
<br />Occorre prima registrarsi ed accedere alla App
|
||||
</h3>
|
||||
<div v-if="!tools.isLogged()">
|
||||
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="tools.isLogged() && path">
|
||||
<h3>Circuito non Esistente</h3>
|
||||
@@ -49,8 +49,6 @@
|
||||
class="bg-primary text-white"
|
||||
dense
|
||||
>
|
||||
<!--<q-toolbar :class="tools.displayClasses(myevent)"-->
|
||||
<!--:style="tools.displayStyles(myevent) + ` min-width: `+ tools.myheight_dialog() + `px;`">-->
|
||||
<q-toolbar-title>
|
||||
{{ circuit.name }}
|
||||
<div v-if="groupnameSel">Gruppo: {{ groupnameSel.groupname }}</div>
|
||||
@@ -970,31 +968,7 @@
|
||||
:tips="t('circuit.creditodiPartenza_tips')"
|
||||
></CCurrencyValue>
|
||||
</div>
|
||||
<!--<div v-if="circuit.qta_max_default_grp" class="sezioni">
|
||||
<CCurrencyValue
|
||||
:symbol="tools.getSymbolByCircuit(circuit)"
|
||||
:color="tools.getColorByCircuit(circuit)"
|
||||
color_border="red"
|
||||
v-model="circuit.fido_scoperto_default_grp"
|
||||
icon="fas fa-battery-quarter"
|
||||
:label="t('circuit.fido_scoperto_default_grp')"
|
||||
:tips="t('circuit.fido_scoperto_default_tips_grp')"
|
||||
>
|
||||
</CCurrencyValue>
|
||||
</div>
|
||||
<div class="sezioni">
|
||||
<CCurrencyValue
|
||||
:symbol="tools.getSymbolByCircuit(circuit)"
|
||||
:color="tools.getColorByCircuit(circuit)"
|
||||
color_border="green"
|
||||
v-model="circuit.qta_max_default_grp"
|
||||
icon="fas fa-battery-quarter"
|
||||
:label="t('circuit.qta_max_default_grp')"
|
||||
:tips="t('circuit.qta_max_default_tips_grp')"
|
||||
>
|
||||
</CCurrencyValue>
|
||||
</div>
|
||||
--></div>
|
||||
<div
|
||||
v-if="circuit.totTransato"
|
||||
class="sezioni"
|
||||
|
||||
@@ -151,7 +151,7 @@ export default defineComponent({
|
||||
value: i,
|
||||
});
|
||||
const myc = data.mygroup.mycircuits.find(
|
||||
(circ: IMyCircuit) => circ.circuitname === circuitslist.value[i].name
|
||||
(circ: ICircuit) => circ.name === circuitslist.value[i].name
|
||||
);
|
||||
if (myc) {
|
||||
circuitslist.value[i].account = myc.account;
|
||||
@@ -306,7 +306,7 @@ export default defineComponent({
|
||||
function getRegulation(reg: string) {
|
||||
const strreg = reg + '';
|
||||
if (!reg) {
|
||||
let name = CircuitSel.value;
|
||||
let name = circuitSel.value;
|
||||
const mystringa = t('circuit.regolamento', { nomecircuito: name });
|
||||
return mystringa;
|
||||
} else {
|
||||
@@ -379,6 +379,7 @@ export default defineComponent({
|
||||
sendRIS,
|
||||
causalDest,
|
||||
showed,
|
||||
toolsext,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
<CNotifAtTop />
|
||||
<div class="q-gutter-sm q-pa-sm q-pb-md">
|
||||
<div v-if="!mygrp && !loading">
|
||||
<div v-if="mystatus === 401">
|
||||
<div v-if="!tools.isLogged()">
|
||||
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||
</div>
|
||||
<div v-else-if="tools.isStatusNonAutorizzato()">
|
||||
<h3>
|
||||
Non hai i permessi per accedere al Gruppo.
|
||||
<br />Occorre prima registrarsi alla App
|
||||
</h3>
|
||||
<div v-if="!tools.isLogged()">
|
||||
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
<h3>Gruppo non Esistente</h3>
|
||||
@@ -577,17 +577,26 @@
|
||||
<CMyCircuit
|
||||
:mycircuit="circuit"
|
||||
:visu="costanti.USER_CIRCUITS"
|
||||
:prop_groupnameSel="mygrp.groupname"
|
||||
:prop_groupnameSel="mygrp"
|
||||
>
|
||||
</CMyCircuit>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="circuitslistOpt.length > 1"
|
||||
class="text-subtitle2 q-mb-xs q-mt-md"
|
||||
>
|
||||
Scegli il circuito da visualizzare
|
||||
</div>
|
||||
|
||||
<q-select
|
||||
v-if="circuitslistOpt.length > 0"
|
||||
v-if="circuitslistOpt.length > 1"
|
||||
v-model="circuitIndex"
|
||||
:options="circuitslistOpt"
|
||||
emit-value
|
||||
map-options
|
||||
outlined
|
||||
:borderless="false"
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
>
|
||||
<template v-slot:prepend></template>
|
||||
@@ -635,12 +644,24 @@
|
||||
v-for="(circuit, ind) of circuitslist"
|
||||
:key="ind"
|
||||
>
|
||||
<div class="circuit_name">{{ circuit.circuitname }}:</div>
|
||||
<div
|
||||
v-show="
|
||||
circuitIndex >= 0 &&
|
||||
circuitslist[circuitIndex].name === circuit.name
|
||||
"
|
||||
class="circuit_name"
|
||||
>
|
||||
{{ circuit.name }}:
|
||||
</div>
|
||||
<CInfoAccount
|
||||
:circuitname="circuit.circuitname"
|
||||
v-show="
|
||||
circuitIndex >= 0 &&
|
||||
circuitslist[circuitIndex].name === circuit.name
|
||||
"
|
||||
:circuitname="circuit.name"
|
||||
:grp="mygrp"
|
||||
:account="circuit.account"
|
||||
:admin="tools.iAmAdminCircuit(circuit.circuitname)"
|
||||
:admin="tools.iAmAdminCircuit(circuit.name)"
|
||||
/>
|
||||
</div>
|
||||
</q-tab-panel>
|
||||
@@ -810,7 +831,7 @@
|
||||
:showType="costanti.SHOW_USERINFO"
|
||||
:showCol="false"
|
||||
:extrafield="groupname"
|
||||
:extraparams="tools.extraparams(shared_consts.TABMYGROUPS)"
|
||||
:extraparams="tools.extraparams(toolsext.TABMYGROUPS)"
|
||||
:visufind="
|
||||
tools.iAmAdminGroup(groupname)
|
||||
? costanti.REQ_REMOVE_USER_TO_GROUP
|
||||
|
||||