- Aggiornate tutte le categorie ottimizzandole.
- Migrazione delle vecchie categ. con quelle nuove. - Create le Categorie e sottocategorie degli Eventi (a parte). - Aggiornato la card dell'Ospitalità
This commit is contained in:
4
.env
4
.env
@@ -1,6 +1,6 @@
|
|||||||
VITE_APP_VERSION="1.2.85"
|
VITE_APP_VERSION="1.2.86"
|
||||||
VITE_LANG_DEFAULT="it"
|
VITE_LANG_DEFAULT="it"
|
||||||
VITE_PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
VITE_PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||||
VITE_SERVICE_WORKER_FILE="sw-1.2.85.js"
|
VITE_SERVICE_WORKER_FILE="sw-1.2.86.js"
|
||||||
VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
|
VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
|
||||||
VITE_VUE_ROUTER_MODE="history"
|
VITE_VUE_ROUTER_MODE="history"
|
||||||
0
_LIMBO/grid.html
Normal file
0
_LIMBO/grid.html
Normal file
@@ -10,7 +10,7 @@
|
|||||||
<meta name="description" content="<%= productDescription %>">
|
<meta name="description" content="<%= productDescription %>">
|
||||||
<meta name="format-detection" content="telephone=no">
|
<meta name="format-detection" content="telephone=no">
|
||||||
<meta name="msapplication-tap-highlight" content="no">
|
<meta name="msapplication-tap-highlight" content="no">
|
||||||
<meta name="version" content="1.2.85">
|
<meta name="version" content="1.2.86">
|
||||||
<meta name="viewport"
|
<meta name="viewport"
|
||||||
content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>">
|
content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>">
|
||||||
|
|
||||||
|
|||||||
12
package.json
12
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "riso",
|
"name": "riso",
|
||||||
"version": "1.2.85",
|
"version": "1.2.86",
|
||||||
"productName": "Riso 💚 - Rete Italiana Scambio orizzontale",
|
"productName": "Riso 💚 - Rete Italiana Scambio orizzontale",
|
||||||
"description": "Progetto RISO (Rete Italiana Scambio orizzontale) promuove una rete di comunità locali che favoriscono scambi di beni, servizi e ospitalità. Con l'App RISO, sviluppata per facilitare il baratto, il dono e l'uso di monete alternative come i RIS, il progetto crea legami autentici basati sulla fiducia e sostenibilità. Partecipa agli scambi e costruisci una comunità più consapevole e autosufficiente.",
|
"description": "Progetto RISO (Rete Italiana Scambio orizzontale) promuove una rete di comunità locali che favoriscono scambi di beni, servizi e ospitalità. Con l'App RISO, sviluppata per facilitare il baratto, il dono e l'uso di monete alternative come i RIS, il progetto crea legami autentici basati sulla fiducia e sostenibilità. Partecipa agli scambi e costruisci una comunità più consapevole e autosufficiente.",
|
||||||
"author": "Surya",
|
"author": "Surya",
|
||||||
@@ -9,11 +9,11 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "APP_VERSION='1.2.85' PORT=8084 quasar dev",
|
"dev": "APP_VERSION='1.2.86' PORT=8084 quasar dev",
|
||||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||||
"build": "quasar build",
|
"build": "quasar build",
|
||||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||||
"type-check": "vue-tsc --noEmit",
|
"type-check": "vue-tsc --noEmit",
|
||||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||||
"buildspa": "quasar build -m spa",
|
"buildspa": "quasar build -m spa",
|
||||||
@@ -21,8 +21,8 @@
|
|||||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.85' quasar dev -m pwa",
|
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.85' quasar dev",
|
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.86' quasar dev",
|
||||||
"debug": "quasar dev --mode debug",
|
"debug": "quasar dev --mode debug",
|
||||||
"test": "echo \"No test specified\" && exit 0",
|
"test": "echo \"No test specified\" && exit 0",
|
||||||
"generate-sw": "workbox generateSW workbox-config.js",
|
"generate-sw": "workbox generateSW workbox-config.js",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "cnm",
|
"name": "cnm",
|
||||||
"version": "1.2.85",
|
"version": "1.2.86",
|
||||||
"description": "Comunita Nuovo Mondo",
|
"description": "Comunita Nuovo Mondo",
|
||||||
"productName": "ComunitaNuovoMondo",
|
"productName": "ComunitaNuovoMondo",
|
||||||
"author": "Surya",
|
"author": "Surya",
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "PORT=8083 APP_VERSION='1.2.85' quasar dev",
|
"dev": "PORT=8083 APP_VERSION='1.2.86' quasar dev",
|
||||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||||
"build": "quasar build",
|
"build": "quasar build",
|
||||||
"buildpwa": "NODE_ENV=production quasar build -m pwa",
|
"buildpwa": "NODE_ENV=production quasar build -m pwa",
|
||||||
@@ -21,8 +21,8 @@
|
|||||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||||
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.85' quasar dev -m pwa",
|
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.85' quasar dev",
|
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.86' quasar dev",
|
||||||
"debug": "quasar dev --mode debug",
|
"debug": "quasar dev --mode debug",
|
||||||
"test": "echo \"No test specified\" && exit 0",
|
"test": "echo \"No test specified\" && exit 0",
|
||||||
"generate-sw": "workbox generateSW workbox-config.js",
|
"generate-sw": "workbox generateSW workbox-config.js",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "freeplanet",
|
"name": "freeplanet",
|
||||||
"version": "1.2.85",
|
"version": "1.2.86",
|
||||||
"description": "freeplanet",
|
"description": "freeplanet",
|
||||||
"productName": "freeplanet",
|
"productName": "freeplanet",
|
||||||
"author": "Surya",
|
"author": "Surya",
|
||||||
@@ -9,11 +9,11 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "PORT=8087 APP_VERSION='1.2.85' quasar dev",
|
"dev": "PORT=8087 APP_VERSION='1.2.86' quasar dev",
|
||||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||||
"build": "quasar build",
|
"build": "quasar build",
|
||||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||||
"type-check": "vue-tsc --noEmit",
|
"type-check": "vue-tsc --noEmit",
|
||||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||||
"buildspa": "quasar build -m spa",
|
"buildspa": "quasar build -m spa",
|
||||||
@@ -21,8 +21,8 @@
|
|||||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||||
"pwa": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.85' quasar dev -m pwa",
|
"pwa": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||||
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.85' quasar dev",
|
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.86' quasar dev",
|
||||||
"debug": "quasar dev --mode debug",
|
"debug": "quasar dev --mode debug",
|
||||||
"test": "echo \"No test specified\" && exit 0",
|
"test": "echo \"No test specified\" && exit 0",
|
||||||
"generate-sw": "workbox generateSW workbox-config.js",
|
"generate-sw": "workbox generateSW workbox-config.js",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "riso",
|
"name": "riso",
|
||||||
"version": "1.2.85",
|
"version": "1.2.86",
|
||||||
"productName": "Riso 💚 - Rete Italiana Scambio orizzontale",
|
"productName": "Riso 💚 - Rete Italiana Scambio orizzontale",
|
||||||
"description": "Progetto RISO (Rete Italiana Scambio orizzontale) promuove una rete di comunità locali che favoriscono scambi di beni, servizi e ospitalità. Con l'App RISO, sviluppata per facilitare il baratto, il dono e l'uso di monete alternative come i RIS, il progetto crea legami autentici basati sulla fiducia e sostenibilità. Partecipa agli scambi e costruisci una comunità più consapevole e autosufficiente.",
|
"description": "Progetto RISO (Rete Italiana Scambio orizzontale) promuove una rete di comunità locali che favoriscono scambi di beni, servizi e ospitalità. Con l'App RISO, sviluppata per facilitare il baratto, il dono e l'uso di monete alternative come i RIS, il progetto crea legami autentici basati sulla fiducia e sostenibilità. Partecipa agli scambi e costruisci una comunità più consapevole e autosufficiente.",
|
||||||
"author": "Surya",
|
"author": "Surya",
|
||||||
@@ -9,11 +9,11 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "APP_VERSION='1.2.85' PORT=8084 quasar dev",
|
"dev": "APP_VERSION='1.2.86' PORT=8084 quasar dev",
|
||||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||||
"build": "quasar build",
|
"build": "quasar build",
|
||||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||||
"type-check": "vue-tsc --noEmit",
|
"type-check": "vue-tsc --noEmit",
|
||||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||||
"buildspa": "quasar build -m spa",
|
"buildspa": "quasar build -m spa",
|
||||||
@@ -21,8 +21,8 @@
|
|||||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.85' quasar dev -m pwa",
|
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.85' quasar dev",
|
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.86' quasar dev",
|
||||||
"debug": "quasar dev --mode debug",
|
"debug": "quasar dev --mode debug",
|
||||||
"test": "echo \"No test specified\" && exit 0",
|
"test": "echo \"No test specified\" && exit 0",
|
||||||
"generate-sw": "workbox generateSW workbox-config.js",
|
"generate-sw": "workbox generateSW workbox-config.js",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "gruppomacro",
|
"name": "gruppomacro",
|
||||||
"version": "1.2.85",
|
"version": "1.2.86",
|
||||||
"productName": "Gruppo Macro",
|
"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.",
|
"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",
|
"author": "Surya",
|
||||||
@@ -9,20 +9,20 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "PORT=8089 APP_VERSION='1.2.85' quasar dev",
|
"dev": "PORT=8089 APP_VERSION='1.2.86' quasar dev",
|
||||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||||
"build": "quasar build",
|
"build": "quasar build",
|
||||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||||
"type-check": "vue-tsc --noEmit",
|
"type-check": "vue-tsc --noEmit",
|
||||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||||
"buildspa": "APP_VERSION='1.2.85' quasar build -m spa",
|
"buildspa": "APP_VERSION='1.2.86' quasar build -m spa",
|
||||||
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
|
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
|
||||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.85' quasar dev -m pwa",
|
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||||
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.85' quasar dev",
|
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.86' quasar dev",
|
||||||
"debug": "quasar dev --mode debug",
|
"debug": "quasar dev --mode debug",
|
||||||
"test": "echo \"No test specified\" && exit 0",
|
"test": "echo \"No test specified\" && exit 0",
|
||||||
"generate-sw": "workbox generateSW workbox-config.js",
|
"generate-sw": "workbox generateSW workbox-config.js",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "nuovomondo",
|
"name": "nuovomondo",
|
||||||
"version": "1.2.85",
|
"version": "1.2.86",
|
||||||
"description": "Nuovo Mondo",
|
"description": "Nuovo Mondo",
|
||||||
"productName": "Nuovo Mondo",
|
"productName": "Nuovo Mondo",
|
||||||
"author": "Surya",
|
"author": "Surya",
|
||||||
@@ -9,11 +9,11 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "APP_VERSION='1.2.85' PORT=8083 quasar dev",
|
"dev": "APP_VERSION='1.2.86' PORT=8083 quasar dev",
|
||||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||||
"build": "quasar build",
|
"build": "quasar build",
|
||||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||||
"type-check": "vue-tsc --noEmit",
|
"type-check": "vue-tsc --noEmit",
|
||||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||||
"buildspa": "quasar build -m spa",
|
"buildspa": "quasar build -m spa",
|
||||||
@@ -21,8 +21,8 @@
|
|||||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.85' quasar dev -m pwa",
|
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.85' quasar dev",
|
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.86' quasar dev",
|
||||||
"debug": "quasar dev --mode debug",
|
"debug": "quasar dev --mode debug",
|
||||||
"test": "echo \"No test specified\" && exit 0",
|
"test": "echo \"No test specified\" && exit 0",
|
||||||
"generate-sw": "workbox generateSW workbox-config.js",
|
"generate-sw": "workbox generateSW workbox-config.js",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "nutriben",
|
"name": "nutriben",
|
||||||
"version": "1.2.85",
|
"version": "1.2.86",
|
||||||
"description": "Nutriben",
|
"description": "Nutriben",
|
||||||
"productName": "Nutriben",
|
"productName": "Nutriben",
|
||||||
"author": "Surya",
|
"author": "Surya",
|
||||||
@@ -9,20 +9,20 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "PORT=8093 APP_VERSION='1.2.85' quasar dev",
|
"dev": "PORT=8093 APP_VERSION='1.2.86' quasar dev",
|
||||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||||
"build": "quasar build",
|
"build": "quasar build",
|
||||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||||
"type-check": "vue-tsc --noEmit",
|
"type-check": "vue-tsc --noEmit",
|
||||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||||
"buildspa": "APP_VERSION='1.2.85' quasar build -m spa",
|
"buildspa": "APP_VERSION='1.2.86' quasar build -m spa",
|
||||||
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
|
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
|
||||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.85' quasar dev -m pwa",
|
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||||
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.85' quasar dev",
|
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.86' quasar dev",
|
||||||
"debug": "quasar dev --mode debug",
|
"debug": "quasar dev --mode debug",
|
||||||
"test": "echo \"No test specified\" && exit 0",
|
"test": "echo \"No test specified\" && exit 0",
|
||||||
"generate-sw": "workbox generateSW workbox-config.js",
|
"generate-sw": "workbox generateSW workbox-config.js",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "piuchebuono",
|
"name": "piuchebuono",
|
||||||
"version": "1.2.85",
|
"version": "1.2.86",
|
||||||
"description": "PiuCheBuono",
|
"description": "PiuCheBuono",
|
||||||
"productName": "PiuCheBuono",
|
"productName": "PiuCheBuono",
|
||||||
"author": "Surya",
|
"author": "Surya",
|
||||||
@@ -9,11 +9,11 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "PORT=8085 APP_VERSION='1.2.85' quasar dev",
|
"dev": "PORT=8085 APP_VERSION='1.2.86' quasar dev",
|
||||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||||
"build": "quasar build",
|
"build": "quasar build",
|
||||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||||
"type-check": "vue-tsc --noEmit",
|
"type-check": "vue-tsc --noEmit",
|
||||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||||
"buildspa": "quasar build -m spa",
|
"buildspa": "quasar build -m spa",
|
||||||
@@ -21,8 +21,8 @@
|
|||||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||||
"pwa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.85' quasar dev -m pwa",
|
"pwa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||||
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.85' quasar dev",
|
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.86' quasar dev",
|
||||||
"debug": "quasar dev --mode debug",
|
"debug": "quasar dev --mode debug",
|
||||||
"test": "echo \"No test specified\" && exit 0",
|
"test": "echo \"No test specified\" && exit 0",
|
||||||
"generate-sw": "workbox generateSW workbox-config.js",
|
"generate-sw": "workbox generateSW workbox-config.js",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "riso",
|
"name": "riso",
|
||||||
"version": "1.2.85",
|
"version": "1.2.86",
|
||||||
"productName": "Riso 💚 - Rete Italiana Scambio orizzontale",
|
"productName": "Riso 💚 - Rete Italiana Scambio orizzontale",
|
||||||
"description": "Progetto RISO (Rete Italiana Scambio orizzontale) promuove una rete di comunità locali che favoriscono scambi di beni, servizi e ospitalità. Con l'App RISO, sviluppata per facilitare il baratto, il dono e l'uso di monete alternative come i RIS, il progetto crea legami autentici basati sulla fiducia e sostenibilità. Partecipa agli scambi e costruisci una comunità più consapevole e autosufficiente.",
|
"description": "Progetto RISO (Rete Italiana Scambio orizzontale) promuove una rete di comunità locali che favoriscono scambi di beni, servizi e ospitalità. Con l'App RISO, sviluppata per facilitare il baratto, il dono e l'uso di monete alternative come i RIS, il progetto crea legami autentici basati sulla fiducia e sostenibilità. Partecipa agli scambi e costruisci una comunità più consapevole e autosufficiente.",
|
||||||
"author": "Surya",
|
"author": "Surya",
|
||||||
@@ -9,11 +9,11 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "APP_VERSION='1.2.85' PORT=8084 quasar dev",
|
"dev": "APP_VERSION='1.2.86' PORT=8084 quasar dev",
|
||||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||||
"build": "quasar build",
|
"build": "quasar build",
|
||||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||||
"type-check": "vue-tsc --noEmit",
|
"type-check": "vue-tsc --noEmit",
|
||||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||||
"buildspa": "quasar build -m spa",
|
"buildspa": "quasar build -m spa",
|
||||||
@@ -21,8 +21,8 @@
|
|||||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.85' quasar dev -m pwa",
|
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.85' quasar dev",
|
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.86' quasar dev",
|
||||||
"debug": "quasar dev --mode debug",
|
"debug": "quasar dev --mode debug",
|
||||||
"test": "echo \"No test specified\" && exit 0",
|
"test": "echo \"No test specified\" && exit 0",
|
||||||
"generate-sw": "workbox generateSW workbox-config.js",
|
"generate-sw": "workbox generateSW workbox-config.js",
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
/* global workbox */
|
/* global workbox */
|
||||||
/* global cfgenv */
|
/* global cfgenv */
|
||||||
|
|
||||||
const VITE_APP_VERSION = '1.2.85';
|
const VITE_APP_VERSION = '1.2.86';
|
||||||
|
|
||||||
// Costanti di configurazione
|
// Costanti di configurazione
|
||||||
const DYNAMIC_CACHE = 'dynamic-cache-v2';
|
const DYNAMIC_CACHE = 'dynamic-cache-v2';
|
||||||
|
|||||||
@@ -324,6 +324,8 @@ export const shared_consts = {
|
|||||||
'sectors',
|
'sectors',
|
||||||
'goods',
|
'goods',
|
||||||
'sectorgoods',
|
'sectorgoods',
|
||||||
|
'bachecas',
|
||||||
|
'sectorbachecas',
|
||||||
'catgrps',
|
'catgrps',
|
||||||
'skills',
|
'skills',
|
||||||
'subskills',
|
'subskills',
|
||||||
@@ -443,6 +445,7 @@ export const shared_consts = {
|
|||||||
TABLES_REC_ID: [
|
TABLES_REC_ID: [
|
||||||
'skills',
|
'skills',
|
||||||
'goods',
|
'goods',
|
||||||
|
'bachecas',
|
||||||
'subskills',
|
'subskills',
|
||||||
'myskills',
|
'myskills',
|
||||||
'mybachecas',
|
'mybachecas',
|
||||||
@@ -791,98 +794,266 @@ export const shared_consts = {
|
|||||||
{
|
{
|
||||||
value: 2,
|
value: 2,
|
||||||
label: 'Si accettano cani',
|
label: 'Si accettano cani',
|
||||||
|
icon: 'pets',
|
||||||
|
color: '#795548', // brown
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 3,
|
value: 3,
|
||||||
label: 'Si accettano gatti',
|
label: 'Si accettano gatti',
|
||||||
|
icon: 'pets',
|
||||||
|
color: '#FF9800', // orange
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 4,
|
value: 4,
|
||||||
label: "E' consentito fumare in casa",
|
label: "E' consentito fumare in casa",
|
||||||
|
icon: 'smoking_rooms',
|
||||||
|
color: '#9E9E9E', // grey
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 5,
|
value: 5,
|
||||||
label: 'Accessibile con sedia a rotelle',
|
label: 'Accessibile con sedia a rotelle',
|
||||||
|
icon: 'accessible',
|
||||||
|
color: '#2196F3', // blue
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 6,
|
value: 6,
|
||||||
label: 'Parcheggio gratuito nella proprietà',
|
label: 'Parcheggio gratuito nella proprietà',
|
||||||
|
icon: 'local_parking',
|
||||||
|
color: '#3F51B5', // indigo
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 7,
|
value: 7,
|
||||||
label: 'Wi-fi disponibile',
|
label: 'Wi-fi disponibile',
|
||||||
|
icon: 'wifi',
|
||||||
|
color: '#00BCD4', // cyan
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 8,
|
value: 8,
|
||||||
label: 'Sono permessi soggiorni a lungo termine',
|
label: 'Sono permessi soggiorni a lungo termine',
|
||||||
|
icon: 'calendar_month',
|
||||||
|
color: '#009688', // teal
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 9,
|
value: 9,
|
||||||
label: 'Cucina Vegetariana',
|
label: 'Cucina Vegetariana',
|
||||||
|
icon: 'restaurant',
|
||||||
|
color: '#4CAF50', // green
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 10,
|
value: 10,
|
||||||
label: 'Cucina Vegana',
|
label: 'Cucina Vegana',
|
||||||
|
icon: 'spa',
|
||||||
|
color: '#8BC34A', // light-green
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 11,
|
value: 11,
|
||||||
label: 'Uso della Cucina',
|
label: 'Uso della Cucina',
|
||||||
|
icon: 'kitchen',
|
||||||
|
color: '#FFC107', // amber
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 12,
|
value: 12,
|
||||||
label: 'Uso della Lavatrice',
|
label: 'Uso della Lavatrice',
|
||||||
|
icon: 'local_laundry_service',
|
||||||
|
color: '#607D8B', // blue-grey
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 13,
|
value: 13,
|
||||||
label: 'Aria condizionata',
|
label: 'Aria condizionata',
|
||||||
|
icon: 'ac_unit',
|
||||||
|
color: '#03A9F4', // light-blue
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 14,
|
value: 14,
|
||||||
label: 'Ventilatore',
|
label: 'Ventilatore',
|
||||||
|
icon: 'air',
|
||||||
|
color: '#00BCD4', // cyan
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 15,
|
value: 15,
|
||||||
label: "Doccia all'aperto",
|
label: "Doccia all'aperto",
|
||||||
|
icon: 'shower',
|
||||||
|
color: '#2196F3', // blue
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 16,
|
value: 16,
|
||||||
label: 'TV',
|
label: 'TV',
|
||||||
|
icon: 'tv',
|
||||||
|
color: '#673AB7', // deep-purple
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 17,
|
value: 17,
|
||||||
label: 'Eventi consentiti',
|
label: 'Eventi consentiti',
|
||||||
|
icon: 'celebration',
|
||||||
|
color: '#E91E63', // pink
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 18,
|
value: 18,
|
||||||
label: 'Adatto a bambini da 2 a 12 anni',
|
label: 'Adatto a bambini da 2 a 12 anni',
|
||||||
|
icon: 'child_care',
|
||||||
|
color: '#F9A825'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 19,
|
value: 19,
|
||||||
label: 'Adatto ai neonati (fino ai 2 anni)',
|
label: 'Adatto ai neonati (fino ai 2 anni)',
|
||||||
|
icon: 'baby_changing_station',
|
||||||
|
color: '#F8BBD0', // pink-light
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 20,
|
value: 20,
|
||||||
label: 'Biancheria inclusa',
|
label: 'Biancheria inclusa',
|
||||||
|
icon: 'bed',
|
||||||
|
color: '#9C27B0', // purple
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 21,
|
value: 21,
|
||||||
label: 'Biancheria su richiesta (a parte)',
|
label: 'Biancheria su richiesta (a parte)',
|
||||||
|
icon: 'bedroom_parent',
|
||||||
|
color: '#673AB7', // deep-purple
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 22,
|
value: 22,
|
||||||
label: 'Asciugamani',
|
label: 'Asciugamani',
|
||||||
|
icon: 'dry_cleaning',
|
||||||
|
color: '#009688', // teal
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 23,
|
value: 23,
|
||||||
label: 'Asciugacapelli',
|
label: 'Asciugacapelli',
|
||||||
|
icon: 'iron',
|
||||||
|
color: '#F44336', // red
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 24,
|
value: 24,
|
||||||
label: 'Riscaldamento a legna',
|
label: 'Riscaldamento a legna',
|
||||||
|
icon: 'fireplace',
|
||||||
|
color: '#FF5722', // deep-orange
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 25,
|
value: 25,
|
||||||
label: 'Riscaldamento a gas',
|
label: 'Riscaldamento a gas',
|
||||||
|
icon: 'heat_pump',
|
||||||
|
color: '#FF9800', // orange
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 26,
|
||||||
|
label: 'Colazione inclusa',
|
||||||
|
icon: 'free_breakfast',
|
||||||
|
color: '#FFC107', // amber
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 27,
|
||||||
|
label: 'Giardino/Spazio esterno',
|
||||||
|
icon: 'yard',
|
||||||
|
color: '#4CAF50', // green
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 28,
|
||||||
|
label: 'Terrazzo/Balcone',
|
||||||
|
icon: 'balcony',
|
||||||
|
color: '#CDDC39', // lime
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 29,
|
||||||
|
label: 'Silenzioso/Zona tranquilla',
|
||||||
|
icon: 'volume_off',
|
||||||
|
color: '#607D8B', // blue-grey
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 30,
|
||||||
|
label: 'Vicino a mezzi pubblici',
|
||||||
|
icon: 'directions_bus',
|
||||||
|
color: '#3F51B5', // indigo
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 31,
|
||||||
|
label: 'Biciclette disponibili',
|
||||||
|
icon: 'directions_bike',
|
||||||
|
color: '#009688', // teal
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 32,
|
||||||
|
label: 'Camino',
|
||||||
|
icon: 'fireplace',
|
||||||
|
color: '#795548', // brown
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 33,
|
||||||
|
label: 'Barbecue',
|
||||||
|
icon: 'outdoor_grill',
|
||||||
|
color: '#F44336', // red
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 34,
|
||||||
|
label: 'Piscina',
|
||||||
|
icon: 'pool',
|
||||||
|
color: '#03A9F4', // light-blue
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 35,
|
||||||
|
label: 'Sauna',
|
||||||
|
icon: 'hot_tub',
|
||||||
|
color: '#FF5722', // deep-orange
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 36,
|
||||||
|
label: 'Vista panoramica',
|
||||||
|
icon: 'landscape',
|
||||||
|
color: '#9C27B0', // purple
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 37,
|
||||||
|
label: 'In campagna',
|
||||||
|
icon: 'nature',
|
||||||
|
color: '#4CAF50', // green
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 38,
|
||||||
|
label: 'In montagna',
|
||||||
|
icon: 'terrain',
|
||||||
|
color: '#795548', // brown
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 39,
|
||||||
|
label: 'Vicino al mare',
|
||||||
|
icon: 'beach_access',
|
||||||
|
color: '#2196F3', // blue
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 40,
|
||||||
|
label: 'Animali da fattoria',
|
||||||
|
icon: 'agriculture',
|
||||||
|
color: '#795548', // brown
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 41,
|
||||||
|
label: 'Orto/Permacultura',
|
||||||
|
icon: 'eco',
|
||||||
|
color: '#4CAF50', // green
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 42,
|
||||||
|
label: 'Prodotti biologici/km zero',
|
||||||
|
icon: 'local_florist',
|
||||||
|
color: '#8BC34A', // light-green
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 43,
|
||||||
|
label: 'Scambio lavoro/volontariato',
|
||||||
|
icon: 'handshake',
|
||||||
|
color: '#FF9800', // orange
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 44,
|
||||||
|
label: 'Comunità/Ecovillaggio',
|
||||||
|
icon: 'groups',
|
||||||
|
color: '#9C27B0', // purple
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 45,
|
||||||
|
label: 'Energie rinnovabili',
|
||||||
|
icon: 'solar_power',
|
||||||
|
color: '#FFEB3B', // yellow
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
@@ -2406,9 +2577,9 @@ export const shared_consts = {
|
|||||||
} else if (table === this.TABLES_MYBACHECAS) {
|
} else if (table === this.TABLES_MYBACHECAS) {
|
||||||
proj = {
|
proj = {
|
||||||
recSkill: 1,
|
recSkill: 1,
|
||||||
sector: 1,
|
sectorBacheca: 1,
|
||||||
idSector: 1,
|
idSectorBacheca: 1,
|
||||||
idSkill: 1,
|
idBacheca: 1,
|
||||||
// 'idSubSkill': 1,
|
// 'idSubSkill': 1,
|
||||||
idStatusSkill: 1,
|
idStatusSkill: 1,
|
||||||
idContribType: 1,
|
idContribType: 1,
|
||||||
@@ -2690,5 +2861,5 @@ export const shared_consts = {
|
|||||||
FILETYPE: {
|
FILETYPE: {
|
||||||
IMG: 1,
|
IMG: 1,
|
||||||
PDF: 2,
|
PDF: 2,
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -256,7 +256,11 @@ export default defineComponent({
|
|||||||
if (recSector) {
|
if (recSector) {
|
||||||
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + recSector.value, newval)
|
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + recSector.value, newval)
|
||||||
}
|
}
|
||||||
// setCategBySector('sectorgoods', table, newval)
|
} else if (table === toolsext.TABMYBACHECAS) {
|
||||||
|
const recSector = searchList.value.find((rec) => rec.table === toolsext.TABSECTORBACHECAS)
|
||||||
|
if (recSector) {
|
||||||
|
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + recSector.value, newval)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -107,6 +107,13 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<div class="row justify-center">
|
<div class="row justify-center">
|
||||||
|
<q-btn
|
||||||
|
label="Annulla"
|
||||||
|
v-close-popup
|
||||||
|
color="primary"
|
||||||
|
flat
|
||||||
|
class="q-ml-sm"
|
||||||
|
/>
|
||||||
<q-btn
|
<q-btn
|
||||||
label="Aggiungi"
|
label="Aggiungi"
|
||||||
type="submit"
|
type="submit"
|
||||||
@@ -120,13 +127,6 @@
|
|||||||
"
|
"
|
||||||
color="primary"
|
color="primary"
|
||||||
/>
|
/>
|
||||||
<q-btn
|
|
||||||
label="Annulla"
|
|
||||||
v-close-popup
|
|
||||||
color="primary"
|
|
||||||
flat
|
|
||||||
class="q-ml-sm"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</q-form>
|
</q-form>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
|
|||||||
@@ -10,24 +10,48 @@
|
|||||||
</div>-->
|
</div>-->
|
||||||
<div>
|
<div>
|
||||||
<!-- display an myevent -->
|
<!-- display an myevent -->
|
||||||
<q-dialog v-model="displayEvent" :maximized="$q.screen.lt.sm">
|
<q-dialog
|
||||||
<q-card v-if="myevent" class="dialog_card">
|
v-model="displayEvent"
|
||||||
|
:maximized="$q.screen.lt.sm"
|
||||||
|
>
|
||||||
|
<q-card
|
||||||
|
v-if="myevent"
|
||||||
|
class="dialog_card"
|
||||||
|
>
|
||||||
<q-toolbar class="bg-primary text-white">
|
<q-toolbar class="bg-primary text-white">
|
||||||
<!--<q-toolbar :class="tools.displayClasses(myevent)"-->
|
<!--<q-toolbar :class="tools.displayClasses(myevent)"-->
|
||||||
<!--:style="tools.displayStyles(myevent) + ` min-width: `+ tools.myheight_dialog() + `px;`">-->
|
<!--:style="tools.displayStyles(myevent) + ` min-width: `+ tools.myheight_dialog() + `px;`">-->
|
||||||
<q-toolbar-title>
|
<q-toolbar-title>
|
||||||
{{ t('cal.event') }}
|
{{ t('cal.event') }}
|
||||||
</q-toolbar-title>
|
</q-toolbar-title>
|
||||||
<q-btn v-if="editable" flat round color="white" icon="fas fa-copy">
|
<q-btn
|
||||||
<q-menu transition-show="flip-right" transition-hide="flip-left">
|
v-if="editable"
|
||||||
|
flat
|
||||||
|
round
|
||||||
|
color="white"
|
||||||
|
icon="fas fa-copy"
|
||||||
|
>
|
||||||
|
<q-menu
|
||||||
|
transition-show="flip-right"
|
||||||
|
transition-hide="flip-left"
|
||||||
|
>
|
||||||
<q-list style="min-width: 100px">
|
<q-list style="min-width: 100px">
|
||||||
<q-item clickable @click="duplicateEvent(myevent, 7)">
|
<q-item
|
||||||
|
clickable
|
||||||
|
@click="duplicateEvent(myevent, 7)"
|
||||||
|
>
|
||||||
<q-item-section>Tra 1 Settimana</q-item-section>
|
<q-item-section>Tra 1 Settimana</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
<q-item clickable @click="duplicateEvent(myevent, 14)">
|
<q-item
|
||||||
|
clickable
|
||||||
|
@click="duplicateEvent(myevent, 14)"
|
||||||
|
>
|
||||||
<q-item-section>Tra 2 Settimane</q-item-section>
|
<q-item-section>Tra 2 Settimane</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
<q-item clickable @click="duplicateEvent(myevent, 7, 4)">
|
<q-item
|
||||||
|
clickable
|
||||||
|
@click="duplicateEvent(myevent, 7, 4)"
|
||||||
|
>
|
||||||
<q-item-section>4 Eventi ogni Settimana</q-item-section>
|
<q-item-section>4 Eventi ogni Settimana</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
@@ -86,7 +110,10 @@
|
|||||||
:class="`cal__details` + ($q.dark.isActive ? `_darktheme` : ``)"
|
:class="`cal__details` + ($q.dark.isActive ? `_darktheme` : ``)"
|
||||||
v-html="myevent.details"
|
v-html="myevent.details"
|
||||||
></div>
|
></div>
|
||||||
<div v-if="myevent.teacher" class="cal__teacher">
|
<div
|
||||||
|
v-if="myevent.teacher"
|
||||||
|
class="cal__teacher"
|
||||||
|
>
|
||||||
<span class="cal__teacher-title"
|
<span class="cal__teacher-title"
|
||||||
>{{ t('cal.teacher') }}: <span class="margin_with"></span
|
>{{ t('cal.teacher') }}: <span class="margin_with"></span
|
||||||
></span>
|
></span>
|
||||||
@@ -96,16 +123,17 @@
|
|||||||
<CMyTeacher :username="myevent.teacher3"></CMyTeacher>
|
<CMyTeacher :username="myevent.teacher3"></CMyTeacher>
|
||||||
<CMyTeacher :username="myevent.teacher4"></CMyTeacher>
|
<CMyTeacher :username="myevent.teacher4"></CMyTeacher>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="myevent.wherecode" class="cal__where">
|
<div
|
||||||
|
v-if="myevent.wherecode"
|
||||||
|
class="cal__where"
|
||||||
|
>
|
||||||
<!--<span v-if="tools.isMobile()"><br/></span>-->
|
<!--<span v-if="tools.isMobile()"><br/></span>-->
|
||||||
<span class="cal__where-title">{{ t('cal.where') }}: </span>
|
<span class="cal__where-title">{{ t('cal.where') }}: </span>
|
||||||
<span class="cal__where-content">
|
<span class="cal__where-content">
|
||||||
<q-chip>
|
<q-chip>
|
||||||
<q-avatar v-if="getWhereIcon(myevent.wherecode)">
|
<q-avatar v-if="getWhereIcon(myevent.wherecode)">
|
||||||
<img
|
<img
|
||||||
:src="
|
:src="`/images/avatar/` + getWhereIcon(myevent.wherecode)"
|
||||||
`/images/avatar/` + getWhereIcon(myevent.wherecode)
|
|
||||||
"
|
|
||||||
alt="Località"
|
alt="Località"
|
||||||
/>
|
/>
|
||||||
</q-avatar>
|
</q-avatar>
|
||||||
@@ -129,17 +157,16 @@
|
|||||||
>
|
>
|
||||||
<span class="cal__quota-title">{{ t('event.price') }}:</span>
|
<span class="cal__quota-title">{{ t('event.price') }}:</span>
|
||||||
<q-chip>
|
<q-chip>
|
||||||
<span class="cal__quota-content">{{
|
<span class="cal__quota-content">{{ getPrice(myevent) }}</span>
|
||||||
getPrice(myevent)
|
|
||||||
}}</span>
|
|
||||||
</q-chip>
|
</q-chip>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="myevent.dateTimeStart" class="cal__when">
|
<div
|
||||||
|
v-if="myevent.dateTimeStart"
|
||||||
|
class="cal__when"
|
||||||
|
>
|
||||||
<span class="cal__where-title"
|
<span class="cal__where-title"
|
||||||
>{{ t('cal.when') }}:
|
>{{ t('cal.when') }}:
|
||||||
<span
|
<span v-html="tools.getstrDateTimeEvent($t, myevent, true)"></span>
|
||||||
v-html="tools.getstrDateTimeEvent($t, myevent, true)"
|
|
||||||
></span>
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<p
|
<p
|
||||||
@@ -181,16 +208,33 @@
|
|||||||
</q-dialog>
|
</q-dialog>
|
||||||
<!-- id_bookedeventadd/edit an myevent -->
|
<!-- id_bookedeventadd/edit an myevent -->
|
||||||
|
|
||||||
<q-dialog v-model="addEvent" no-backdrop-dismiss persistent>
|
<q-dialog
|
||||||
<q-card v-if="addEvent" class="dialog_card">
|
v-model="addEvent"
|
||||||
|
no-backdrop-dismiss
|
||||||
|
persistent
|
||||||
|
>
|
||||||
|
<q-card
|
||||||
|
v-if="addEvent"
|
||||||
|
class="dialog_card"
|
||||||
|
>
|
||||||
<q-toolbar class="bg-primary text-white">
|
<q-toolbar class="bg-primary text-white">
|
||||||
<q-toolbar-title>
|
<q-toolbar-title>
|
||||||
{{ addOrUpdateEvent() }} {{ t('cal.event') }}
|
{{ addOrUpdateEvent() }} {{ t('cal.event') }}
|
||||||
</q-toolbar-title>
|
</q-toolbar-title>
|
||||||
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
<q-btn
|
||||||
|
flat
|
||||||
|
round
|
||||||
|
color="white"
|
||||||
|
icon="close"
|
||||||
|
v-close-popup
|
||||||
|
></q-btn>
|
||||||
</q-toolbar>
|
</q-toolbar>
|
||||||
<q-card-section class="inset-shadow">
|
<q-card-section class="inset-shadow">
|
||||||
<q-form v-if="contextDay" ref="myevent" class="q-gutter-sm">
|
<q-form
|
||||||
|
v-if="contextDay"
|
||||||
|
ref="myevent"
|
||||||
|
class="q-gutter-sm"
|
||||||
|
>
|
||||||
<CMySelect
|
<CMySelect
|
||||||
:label="$t('event.typol')"
|
:label="$t('event.typol')"
|
||||||
v-model:value="eventForm.typol"
|
v-model:value="eventForm.typol"
|
||||||
@@ -254,7 +298,10 @@
|
|||||||
/>
|
/>
|
||||||
</q-tabs>
|
</q-tabs>
|
||||||
|
|
||||||
<q-tab-panels v-model="tabeditor" animated>
|
<q-tab-panels
|
||||||
|
v-model="tabeditor"
|
||||||
|
animated
|
||||||
|
>
|
||||||
<q-tab-panel name="details">
|
<q-tab-panel name="details">
|
||||||
<div class="q-gutter-sm myflex">
|
<div class="q-gutter-sm myflex">
|
||||||
<q-input
|
<q-input
|
||||||
@@ -320,7 +367,10 @@
|
|||||||
</CMyEditor>
|
</CMyEditor>
|
||||||
</q-tab-panel>
|
</q-tab-panel>
|
||||||
|
|
||||||
<q-tab-panel name="settings" class="q-gutter-sm">
|
<q-tab-panel
|
||||||
|
name="settings"
|
||||||
|
class="q-gutter-sm"
|
||||||
|
>
|
||||||
<!--<q-checkbox v-model="eventForm.allday" :label="$t('cal.alldayevent')"></q-checkbox>-->
|
<!--<q-checkbox v-model="eventForm.allday" :label="$t('cal.alldayevent')"></q-checkbox>-->
|
||||||
|
|
||||||
<div class="q-gutter-sm row myflex">
|
<div class="q-gutter-sm row myflex">
|
||||||
@@ -507,28 +557,40 @@
|
|||||||
</q-form>
|
</q-form>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-actions align="right">
|
<q-card-actions align="right">
|
||||||
<q-btn
|
|
||||||
:label="$t('dialog.ok')"
|
|
||||||
color="primary"
|
|
||||||
@click="saveEvent"
|
|
||||||
></q-btn>
|
|
||||||
<q-btn
|
<q-btn
|
||||||
flat
|
flat
|
||||||
:label="$t('dialog.cancel')"
|
:label="$t('dialog.cancel')"
|
||||||
color="primary"
|
color="primary"
|
||||||
v-close-popup
|
v-close-popup
|
||||||
></q-btn>
|
></q-btn>
|
||||||
|
<q-btn
|
||||||
|
:label="$t('dialog.ok')"
|
||||||
|
color="primary"
|
||||||
|
@click="saveEvent"
|
||||||
|
></q-btn>
|
||||||
</q-card-actions>
|
</q-card-actions>
|
||||||
</q-card>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
|
||||||
<q-dialog v-model="bookEventpage.show" no-backdrop-dismiss>
|
<q-dialog
|
||||||
<q-card v-if="bookEventpage.show" class="dialog_card">
|
v-model="bookEventpage.show"
|
||||||
|
no-backdrop-dismiss
|
||||||
|
>
|
||||||
|
<q-card
|
||||||
|
v-if="bookEventpage.show"
|
||||||
|
class="dialog_card"
|
||||||
|
>
|
||||||
<q-toolbar class="bg-primary text-white">
|
<q-toolbar class="bg-primary text-white">
|
||||||
<q-toolbar-title>
|
<q-toolbar-title>
|
||||||
{{ t('cal.booking') }}
|
{{ t('cal.booking') }}
|
||||||
</q-toolbar-title>
|
</q-toolbar-title>
|
||||||
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
<q-btn
|
||||||
|
flat
|
||||||
|
round
|
||||||
|
color="white"
|
||||||
|
icon="close"
|
||||||
|
v-close-popup
|
||||||
|
></q-btn>
|
||||||
</q-toolbar>
|
</q-toolbar>
|
||||||
|
|
||||||
<q-card-section class="inset-shadow">
|
<q-card-section class="inset-shadow">
|
||||||
@@ -548,16 +610,20 @@
|
|||||||
>
|
>
|
||||||
{{ myevent.title }}
|
{{ myevent.title }}
|
||||||
</q-chip>
|
</q-chip>
|
||||||
<div v-if="myevent.dateTimeStart" class="cal__when">
|
<div
|
||||||
|
v-if="myevent.dateTimeStart"
|
||||||
|
class="cal__when"
|
||||||
|
>
|
||||||
<span class="cal__where-title"
|
<span class="cal__where-title"
|
||||||
>{{ t('cal.when') }}:
|
>{{ t('cal.when') }}:
|
||||||
<span
|
<span v-html="tools.getstrDateTimeEvent($t, myevent, true)"></span>
|
||||||
v-html="tools.getstrDateTimeEvent($t, myevent, true)"
|
|
||||||
></span>
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="q-pa-xs">
|
<div class="q-pa-xs">
|
||||||
<q-card class="text-white windowcol" style="display: block">
|
<q-card
|
||||||
|
class="text-white windowcol"
|
||||||
|
style="display: block"
|
||||||
|
>
|
||||||
<q-card-section class="q-pa-xs">
|
<q-card-section class="q-pa-xs">
|
||||||
<div
|
<div
|
||||||
style="display: inline-flex"
|
style="display: inline-flex"
|
||||||
@@ -583,9 +649,7 @@
|
|||||||
style="min-width: 140px"
|
style="min-width: 140px"
|
||||||
>
|
>
|
||||||
<q-select
|
<q-select
|
||||||
:behavior="
|
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||||
$q.platform.is.ios === true ? 'dialog' : 'menu'
|
|
||||||
"
|
|
||||||
rounded
|
rounded
|
||||||
outlined
|
outlined
|
||||||
v-model="bookEventForm.numpeople"
|
v-model="bookEventForm.numpeople"
|
||||||
@@ -614,9 +678,7 @@
|
|||||||
style="min-width: 140px; margin-left: 10px"
|
style="min-width: 140px; margin-left: 10px"
|
||||||
>
|
>
|
||||||
<q-select
|
<q-select
|
||||||
:behavior="
|
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||||
$q.platform.is.ios === true ? 'dialog' : 'menu'
|
|
||||||
"
|
|
||||||
rounded
|
rounded
|
||||||
outlined
|
outlined
|
||||||
v-model="bookEventForm.numpeopleLunch"
|
v-model="bookEventForm.numpeopleLunch"
|
||||||
@@ -647,9 +709,7 @@
|
|||||||
style="min-width: 180px; margin-left: 10px"
|
style="min-width: 180px; margin-left: 10px"
|
||||||
>
|
>
|
||||||
<q-select
|
<q-select
|
||||||
:behavior="
|
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||||
$q.platform.is.ios === true ? 'dialog' : 'menu'
|
|
||||||
"
|
|
||||||
rounded
|
rounded
|
||||||
outlined
|
outlined
|
||||||
v-model="bookEventForm.numpeopleDinner"
|
v-model="bookEventForm.numpeopleDinner"
|
||||||
@@ -679,9 +739,7 @@
|
|||||||
style="min-width: 180px; margin-left: 10px"
|
style="min-width: 180px; margin-left: 10px"
|
||||||
>
|
>
|
||||||
<q-select
|
<q-select
|
||||||
:behavior="
|
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||||
$q.platform.is.ios === true ? 'dialog' : 'menu'
|
|
||||||
"
|
|
||||||
rounded
|
rounded
|
||||||
outlined
|
outlined
|
||||||
v-model="bookEventForm.numpeopleDinnerShared"
|
v-model="bookEventForm.numpeopleDinnerShared"
|
||||||
@@ -726,6 +784,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-actions align="right">
|
<q-card-actions align="right">
|
||||||
|
<q-btn
|
||||||
|
flat
|
||||||
|
:label="$t('dialog.cancel')"
|
||||||
|
color="primary"
|
||||||
|
v-close-popup
|
||||||
|
></q-btn>
|
||||||
|
|
||||||
<q-btn
|
<q-btn
|
||||||
v-if="bookEventpage.state === EState.Modifying"
|
v-if="bookEventpage.state === EState.Modifying"
|
||||||
flat
|
flat
|
||||||
@@ -745,28 +810,31 @@
|
|||||||
:label="getTitleBtnBooking()"
|
:label="getTitleBtnBooking()"
|
||||||
color="primary"
|
color="primary"
|
||||||
@click="saveBookEvent(myevent)"
|
@click="saveBookEvent(myevent)"
|
||||||
:disable="
|
:disable="!(bookEventpage.state === EState.Creating || hasModifiedBooking)"
|
||||||
!(bookEventpage.state === EState.Creating || hasModifiedBooking)
|
|
||||||
"
|
|
||||||
></q-btn>
|
|
||||||
|
|
||||||
<q-btn
|
|
||||||
flat
|
|
||||||
:label="$t('dialog.cancel')"
|
|
||||||
color="primary"
|
|
||||||
v-close-popup
|
|
||||||
></q-btn>
|
></q-btn>
|
||||||
</q-card-actions>
|
</q-card-actions>
|
||||||
</q-card>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
|
||||||
<q-dialog v-model="askInfopage.show" no-backdrop-dismiss>
|
<q-dialog
|
||||||
<q-card v-if="askInfopage.show" class="dialog_card">
|
v-model="askInfopage.show"
|
||||||
|
no-backdrop-dismiss
|
||||||
|
>
|
||||||
|
<q-card
|
||||||
|
v-if="askInfopage.show"
|
||||||
|
class="dialog_card"
|
||||||
|
>
|
||||||
<q-toolbar class="bg-primary text-white">
|
<q-toolbar class="bg-primary text-white">
|
||||||
<q-toolbar-title>
|
<q-toolbar-title>
|
||||||
{{ t('cal.booking') }}
|
{{ t('cal.booking') }}
|
||||||
</q-toolbar-title>
|
</q-toolbar-title>
|
||||||
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
<q-btn
|
||||||
|
flat
|
||||||
|
round
|
||||||
|
color="white"
|
||||||
|
icon="close"
|
||||||
|
v-close-popup
|
||||||
|
></q-btn>
|
||||||
</q-toolbar>
|
</q-toolbar>
|
||||||
|
|
||||||
<q-card-section class="inset-shadow">
|
<q-card-section class="inset-shadow">
|
||||||
@@ -786,12 +854,13 @@
|
|||||||
>
|
>
|
||||||
{{ myevent.title }}
|
{{ myevent.title }}
|
||||||
</q-chip>
|
</q-chip>
|
||||||
<div v-if="myevent.dateTimeStart" class="cal__when">
|
<div
|
||||||
|
v-if="myevent.dateTimeStart"
|
||||||
|
class="cal__when"
|
||||||
|
>
|
||||||
<span class="cal__where-title"
|
<span class="cal__where-title"
|
||||||
>{{ t('cal.when') }}:
|
>{{ t('cal.when') }}:
|
||||||
<span
|
<span v-html="tools.getstrDateTimeEvent($t, myevent, true)"></span>
|
||||||
v-html="tools.getstrDateTimeEvent($t, myevent, true)"
|
|
||||||
></span>
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="q-pa-xs">
|
<div class="q-pa-xs">
|
||||||
@@ -812,18 +881,17 @@
|
|||||||
</div>
|
</div>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-actions align="right">
|
<q-card-actions align="right">
|
||||||
<q-btn
|
|
||||||
flat
|
|
||||||
:label="$t('dialog.sendmsg')"
|
|
||||||
color="primary"
|
|
||||||
@click="sendMsg(myevent)"
|
|
||||||
></q-btn>
|
|
||||||
<q-btn
|
<q-btn
|
||||||
flat
|
flat
|
||||||
:label="$t('dialog.cancel')"
|
:label="$t('dialog.cancel')"
|
||||||
color="primary"
|
color="primary"
|
||||||
v-close-popup
|
v-close-popup
|
||||||
></q-btn>
|
></q-btn>
|
||||||
|
<q-btn
|
||||||
|
:label="$t('dialog.sendmsg')"
|
||||||
|
color="primary"
|
||||||
|
@click="sendMsg(myevent)"
|
||||||
|
></q-btn>
|
||||||
</q-card-actions>
|
</q-card-actions>
|
||||||
</q-card>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
@@ -956,20 +1024,13 @@
|
|||||||
class="q-ma-xs"
|
class="q-ma-xs"
|
||||||
:class="badgeClasses(event, 'header')"
|
:class="badgeClasses(event, 'header')"
|
||||||
:style="badgeStyles(event, 'header')"
|
:style="badgeStyles(event, 'header')"
|
||||||
style="
|
style="width: 10px; max-width: 10px; height: 10px; max-height: 10px"
|
||||||
width: 10px;
|
|
||||||
max-width: 10px;
|
|
||||||
height: 10px;
|
|
||||||
max-height: 10px;
|
|
||||||
"
|
|
||||||
></q-badge>
|
></q-badge>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template
|
<template
|
||||||
#day-body="{
|
#day-body="{ scope: { timestamp, timeStartPos, timeDurationHeight } }"
|
||||||
scope: { timestamp, timeStartPos, timeDurationHeight },
|
|
||||||
}"
|
|
||||||
>
|
>
|
||||||
<template
|
<template
|
||||||
v-for="(event, index) in getEvents(timestamp.date)"
|
v-for="(event, index) in getEvents(timestamp.date)"
|
||||||
@@ -1012,12 +1073,7 @@
|
|||||||
class="my-event-rel justify-center rounded-borders"
|
class="my-event-rel justify-center rounded-borders"
|
||||||
:class="badgeClasses(event, 'body')"
|
:class="badgeClasses(event, 'body')"
|
||||||
:style="
|
:style="
|
||||||
badgeStyles(
|
badgeStyles(event, 'body', timeStartPos, timeDurationHeight)
|
||||||
event,
|
|
||||||
'body',
|
|
||||||
timeStartPos,
|
|
||||||
timeDurationHeight
|
|
||||||
)
|
|
||||||
"
|
"
|
||||||
@click.stop.prevent="showEvent(event)"
|
@click.stop.prevent="showEvent(event)"
|
||||||
:draggable="tools.isManager()"
|
:draggable="tools.isManager()"
|
||||||
@@ -1087,13 +1143,7 @@
|
|||||||
<img
|
<img
|
||||||
:src="getImgEvent(event)"
|
:src="getImgEvent(event)"
|
||||||
@click="selectEvent(event)"
|
@click="selectEvent(event)"
|
||||||
class="
|
class="text-left padding_cell listaev__tdimg listaev__img cursor-pointer q-mx-sm"
|
||||||
text-left
|
|
||||||
padding_cell
|
|
||||||
listaev__tdimg listaev__img
|
|
||||||
cursor-pointer
|
|
||||||
q-mx-sm
|
|
||||||
"
|
|
||||||
:style="getStyleByEvent(event, event === myevent)"
|
:style="getStyleByEvent(event, event === myevent)"
|
||||||
:alt="event.title"
|
:alt="event.title"
|
||||||
/>
|
/>
|
||||||
@@ -1139,9 +1189,7 @@
|
|||||||
clickable
|
clickable
|
||||||
@click="duplicateEvent(myevent, 7, 4)"
|
@click="duplicateEvent(myevent, 7, 4)"
|
||||||
>
|
>
|
||||||
<q-item-section
|
<q-item-section>4 Eventi ogni Settimana</q-item-section>
|
||||||
>4 Eventi ogni Settimana</q-item-section
|
|
||||||
>
|
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
</q-menu>
|
</q-menu>
|
||||||
@@ -1187,22 +1235,17 @@
|
|||||||
</q-chip>
|
</q-chip>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div class="listaev__date listaev__align_center_mobile text-center">
|
||||||
class="
|
<span v-html="tools.getstrDateTimeEvent($t, event, true)"></span>
|
||||||
listaev__date listaev__align_center_mobile
|
|
||||||
text-center
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<span
|
|
||||||
v-html="tools.getstrDateTimeEvent($t, event, true)"
|
|
||||||
></span>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="listaev__align_center_mobile">
|
<div class="listaev__align_center_mobile">
|
||||||
<div style="margin: 10px"></div>
|
<div style="margin: 10px"></div>
|
||||||
|
|
||||||
<div v-if="event.internal">
|
<div v-if="event.internal">
|
||||||
<q-chip color="blue" text-color="white"
|
<q-chip
|
||||||
|
color="blue"
|
||||||
|
text-color="white"
|
||||||
>Evento Interno:</q-chip
|
>Evento Interno:</q-chip
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
@@ -1247,17 +1290,15 @@
|
|||||||
<div style="margin: 10px"></div>
|
<div style="margin: 10px"></div>
|
||||||
|
|
||||||
<p
|
<p
|
||||||
:class="
|
:class="`listaev__details` + ($q.dark.isActive ? `_darktheme` : ``)"
|
||||||
`listaev__details` + ($q.dark.isActive
|
|
||||||
? `_darktheme`
|
|
||||||
: ``)
|
|
||||||
"
|
|
||||||
v-html="event.details"
|
v-html="event.details"
|
||||||
></p>
|
></p>
|
||||||
<div v-if="event.teacher" class="">
|
<div
|
||||||
|
v-if="event.teacher"
|
||||||
|
class=""
|
||||||
|
>
|
||||||
<span class="cal__teacher-title"
|
<span class="cal__teacher-title"
|
||||||
>{{ t('cal.teacher') }}:
|
>{{ t('cal.teacher') }}: <span class="margin_with"></span
|
||||||
<span class="margin_with"></span
|
|
||||||
></span>
|
></span>
|
||||||
|
|
||||||
<CMyTeacher :username="event.teacher"></CMyTeacher>
|
<CMyTeacher :username="event.teacher"></CMyTeacher>
|
||||||
@@ -1265,18 +1306,17 @@
|
|||||||
<CMyTeacher :username="event.teacher3"></CMyTeacher>
|
<CMyTeacher :username="event.teacher3"></CMyTeacher>
|
||||||
<CMyTeacher :username="event.teacher4"></CMyTeacher>
|
<CMyTeacher :username="event.teacher4"></CMyTeacher>
|
||||||
|
|
||||||
<span v-if="event.wherecode" class="">
|
<span
|
||||||
|
v-if="event.wherecode"
|
||||||
|
class=""
|
||||||
|
>
|
||||||
<span v-if="tools.isMobile()"><br /></span>
|
<span v-if="tools.isMobile()"><br /></span>
|
||||||
<span class="cal__where-title"
|
<span class="cal__where-title">{{ t('cal.where') }}: </span>
|
||||||
>{{ t('cal.where') }}:
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<q-chip>
|
<q-chip>
|
||||||
<q-avatar v-if="getWhereIcon(event.wherecode)">
|
<q-avatar v-if="getWhereIcon(event.wherecode)">
|
||||||
<img
|
<img
|
||||||
:src="
|
:src="`/images/avatar/` + getWhereIcon(event.wherecode)"
|
||||||
`/images/avatar/` + getWhereIcon(event.wherecode)
|
|
||||||
"
|
|
||||||
:alt="event.wherecode"
|
:alt="event.wherecode"
|
||||||
/>
|
/>
|
||||||
</q-avatar>
|
</q-avatar>
|
||||||
@@ -1293,13 +1333,17 @@
|
|||||||
</q-chip>
|
</q-chip>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="event.contribtype" class="">
|
<div
|
||||||
|
v-if="event.contribtype"
|
||||||
|
class=""
|
||||||
|
>
|
||||||
<span class="cal__quota-title"
|
<span class="cal__quota-title"
|
||||||
>{{ t('event.price') }}:<span
|
>{{ t('event.price') }}:<span class="margin_with"></span
|
||||||
class="margin_with"
|
|
||||||
></span
|
|
||||||
></span>
|
></span>
|
||||||
<span v-if="!isShowPrice(event)" class="">
|
<span
|
||||||
|
v-if="!isShowPrice(event)"
|
||||||
|
class=""
|
||||||
|
>
|
||||||
<q-chip
|
<q-chip
|
||||||
class="glossy"
|
class="glossy"
|
||||||
color="orange"
|
color="orange"
|
||||||
@@ -1318,9 +1362,7 @@
|
|||||||
text-color="white"
|
text-color="white"
|
||||||
icon-right="star"
|
icon-right="star"
|
||||||
>
|
>
|
||||||
<span class="cal__quota-content">{{
|
<span class="cal__quota-content">{{ getPrice(event) }}</span>
|
||||||
getPrice(event)
|
|
||||||
}}</span>
|
|
||||||
</q-chip>
|
</q-chip>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -1418,8 +1460,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" src="./CEventsCalendar.ts">
|
<script lang="ts" src="./CEventsCalendar.ts"></script>
|
||||||
</script>
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import './CEventsCalendar.scss';
|
@import './CEventsCalendar.scss';
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -306,7 +306,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getFilterGoods(recGood: any, index: number, arr: any) {
|
function getFilterGoods(recGood: any, index: number, arr: any) {
|
||||||
const recsectorGoods: any = searchList.value.find((rec) => rec.table === 'sectorgoods')
|
const recsectorGoods: any = searchList.value.find((rec) => rec.table === toolsext.TABSECTORGOODS)
|
||||||
// console.log('getFilterSkills', recSkill.idSector, recsectors.value)
|
// console.log('getFilterSkills', recSkill.idSector, recsectors.value)
|
||||||
if (recsectorGoods && recGood.idSectorGood) {
|
if (recsectorGoods && recGood.idSectorGood) {
|
||||||
return recGood.idSectorGood.includes(recsectorGoods.value)
|
return recGood.idSectorGood.includes(recsectorGoods.value)
|
||||||
@@ -314,6 +314,15 @@ export default defineComponent({
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function getFilterBachecas(recBacheca: any, index: number, arr: any) {
|
||||||
|
const recsectorBachecas: any = searchList.value.find((rec) => rec.table === toolsext.TABSECTORBACHECAS)
|
||||||
|
// console.log('getFilterSkills', recSkill.idSector, recsectors.value)
|
||||||
|
if (recsectorBachecas && recBacheca.idSectorBacheca) {
|
||||||
|
return recBacheca.idSectorBacheca.includes(recsectorBachecas.value)
|
||||||
|
} else {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getFilterSubSkills(recSubSkill: any, index: number, arr: any) {
|
function getFilterSubSkills(recSubSkill: any, index: number, arr: any) {
|
||||||
const recskills: any = searchList.value.find((rec) => rec.table === 'skills')
|
const recskills: any = searchList.value.find((rec) => rec.table === 'skills')
|
||||||
@@ -614,9 +623,9 @@ export default defineComponent({
|
|||||||
{
|
{
|
||||||
visible: true,
|
visible: true,
|
||||||
label: 'Settore',
|
label: 'Settore',
|
||||||
table: toolsext.TABSECTORS,
|
table: toolsext.TABSECTORBACHECAS,
|
||||||
key: 'idSector',
|
key: 'idSectorBacheca',
|
||||||
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + toolsext.TABSECTORS, 0, true),
|
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + toolsext.TABSECTORBACHECAS, 0, true),
|
||||||
arrvalue: [],
|
arrvalue: [],
|
||||||
type: costanti.FieldType.select,
|
type: costanti.FieldType.select,
|
||||||
filter: null,
|
filter: null,
|
||||||
@@ -624,6 +633,19 @@ export default defineComponent({
|
|||||||
notinsearch: false,
|
notinsearch: false,
|
||||||
useinput: false,
|
useinput: false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
visible: true,
|
||||||
|
label: 'Categoria',
|
||||||
|
table: 'bachecas',
|
||||||
|
key: 'idBacheca',
|
||||||
|
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + tools.getCookie(tools.COOK_SEARCH + toolsext.TABSECTORBACHECAS, costanti.FILTER_TUTTI), costanti.FILTER_TUTTI, true),
|
||||||
|
arrvalue: [],
|
||||||
|
type: costanti.FieldType.select,
|
||||||
|
addall: true,
|
||||||
|
filter: getFilterBachecas,
|
||||||
|
showcount: true,
|
||||||
|
useinput: false,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
visible: true,
|
visible: true,
|
||||||
label: 'Data Inizio',
|
label: 'Data Inizio',
|
||||||
@@ -898,7 +920,7 @@ export default defineComponent({
|
|||||||
{
|
{
|
||||||
visible: true,
|
visible: true,
|
||||||
label: 'Settore',
|
label: 'Settore',
|
||||||
table: 'sectorgoods',
|
table: toolsext.TABSECTORGOODS,
|
||||||
key: 'idSectorGood',
|
key: 'idSectorGood',
|
||||||
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + toolsext.TABSECTORGOODS, 0, true),
|
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + toolsext.TABSECTORGOODS, 0, true),
|
||||||
arrvalue: [],
|
arrvalue: [],
|
||||||
@@ -911,7 +933,7 @@ export default defineComponent({
|
|||||||
{
|
{
|
||||||
visible: true,
|
visible: true,
|
||||||
label: 'Categoria',
|
label: 'Categoria',
|
||||||
table: 'goods',
|
table: toolsext.TABGOODS,
|
||||||
key: 'idGood',
|
key: 'idGood',
|
||||||
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + tools.getCookie(tools.COOK_SEARCH + toolsext.TABSECTORGOODS, costanti.FILTER_TUTTI), costanti.FILTER_TUTTI, true),
|
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + tools.getCookie(tools.COOK_SEARCH + toolsext.TABSECTORGOODS, costanti.FILTER_TUTTI), costanti.FILTER_TUTTI, true),
|
||||||
arrvalue: [],
|
arrvalue: [],
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,14 +1,3 @@
|
|||||||
// ========================================
|
|
||||||
// BASE STYLES
|
|
||||||
// ========================================
|
|
||||||
$primary-color: #1976d2;
|
|
||||||
$border-radius: 10px;
|
|
||||||
$transition-speed: 0.3s;
|
|
||||||
$mobile-breakpoint: 768px;
|
|
||||||
|
|
||||||
@use 'sass:color';
|
|
||||||
|
|
||||||
|
|
||||||
$shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06);
|
$shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06);
|
||||||
$shadow-md: 0 2px 6px rgba(0, 0, 0, 0.08);
|
$shadow-md: 0 2px 6px rgba(0, 0, 0, 0.08);
|
||||||
$shadow-hover: 0 4px 12px rgba(25, 118, 210, 0.15);
|
$shadow-hover: 0 4px 12px rgba(25, 118, 210, 0.15);
|
||||||
@@ -169,7 +158,7 @@ $shadow-hover: 0 4px 12px rgba(25, 118, 210, 0.15);
|
|||||||
gap: 8px;
|
gap: 8px;
|
||||||
|
|
||||||
// Desktop: layout a griglia 2 colonne
|
// Desktop: layout a griglia 2 colonne
|
||||||
@media (min-width: $mobile-breakpoint + 1) {
|
@media (min-width: $mobile-breakpoint) {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
@@ -178,7 +167,7 @@ $shadow-hover: 0 4px 12px rgba(25, 118, 210, 0.15);
|
|||||||
|
|
||||||
// Desktop large: 3 colonne per schermi molto larghi
|
// Desktop large: 3 colonne per schermi molto larghi
|
||||||
@media (min-width: 1400px) {
|
@media (min-width: 1400px) {
|
||||||
grid-template-columns: repeat(3, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 12px;
|
gap: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -854,6 +854,8 @@ export default defineComponent({
|
|||||||
setCategBySector(shared_consts.TABLES_MYSKILLS, table, newval);
|
setCategBySector(shared_consts.TABLES_MYSKILLS, table, newval);
|
||||||
} else if (table === toolsext.TABSECTORGOODS) {
|
} else if (table === toolsext.TABSECTORGOODS) {
|
||||||
setCategBySector(toolsext.TABGOODS, table, newval);
|
setCategBySector(toolsext.TABGOODS, table, newval);
|
||||||
|
} else if (table === toolsext.TABSECTORBACHECAS) {
|
||||||
|
setCategBySector(toolsext.TABBACHECAS, table, newval);
|
||||||
} else if (table === toolsext.TABREGIONS) {
|
} else if (table === toolsext.TABREGIONS) {
|
||||||
setProvinceByRegion(toolsext.TABPROVINCE, table, newval);
|
setProvinceByRegion(toolsext.TABPROVINCE, table, newval);
|
||||||
} else if (table === toolsext.TABGOODS) {
|
} else if (table === toolsext.TABGOODS) {
|
||||||
@@ -872,6 +874,22 @@ export default defineComponent({
|
|||||||
newval
|
newval
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
} else if (table === toolsext.TABBACHECAS) {
|
||||||
|
const recSector = searchList.value.find(
|
||||||
|
(rec) => rec.table === toolsext.TABSECTORBACHECAS
|
||||||
|
);
|
||||||
|
if (recSector) {
|
||||||
|
tools.setCookie(
|
||||||
|
tools.COOK_SEARCH +
|
||||||
|
costanti.FILTER_SEP +
|
||||||
|
mytable.value +
|
||||||
|
costanti.FILTER_SEP +
|
||||||
|
table +
|
||||||
|
costanti.FILTER_SEP +
|
||||||
|
recSector.value,
|
||||||
|
newval
|
||||||
|
);
|
||||||
|
}
|
||||||
} else if (table === shared_consts.TABLES_LISTA_EDITORI) {
|
} else if (table === shared_consts.TABLES_LISTA_EDITORI) {
|
||||||
const rec = searchList.value.find((rec) => rec.table === table);
|
const rec = searchList.value.find((rec) => rec.table === table);
|
||||||
if (rec) {
|
if (rec) {
|
||||||
@@ -1029,12 +1047,14 @@ export default defineComponent({
|
|||||||
|
|
||||||
let recSector = null;
|
let recSector = null;
|
||||||
let recSectorGood = null;
|
let recSectorGood = null;
|
||||||
|
let recSectorBacheca = null;
|
||||||
let recCities = null;
|
let recCities = null;
|
||||||
let recRegion = null;
|
let recRegion = null;
|
||||||
let recProvince = null;
|
let recProvince = null;
|
||||||
let recSkill = null;
|
let recSkill = null;
|
||||||
let idSector = 0;
|
let idSector = 0;
|
||||||
let idSectorGood = 0;
|
let idSectorGood = 0;
|
||||||
|
let idSectorBacheca = 0;
|
||||||
let idProvince = 0;
|
let idProvince = 0;
|
||||||
let idRegion = 0;
|
let idRegion = 0;
|
||||||
let idSkill = 0;
|
let idSkill = 0;
|
||||||
@@ -1046,10 +1066,16 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
if (searchList.value) {
|
if (searchList.value) {
|
||||||
recSectorGood = searchList.value.find(
|
recSectorGood = searchList.value.find(
|
||||||
(item: ISearchList) => item.table === 'sectorgoods'
|
(item: ISearchList) => item.table === toolsext.TABSECTORGOODS
|
||||||
);
|
);
|
||||||
idSectorGood = recSectorGood ? recSectorGood.value : 0;
|
idSectorGood = recSectorGood ? recSectorGood.value : 0;
|
||||||
}
|
}
|
||||||
|
if (searchList.value) {
|
||||||
|
recSectorBacheca = searchList.value.find(
|
||||||
|
(item: ISearchList) => item.table === toolsext.TABSECTORBACHECAS
|
||||||
|
);
|
||||||
|
idSectorBacheca = recSectorBacheca ? recSectorBacheca.value : 0;
|
||||||
|
}
|
||||||
if (searchList.value) {
|
if (searchList.value) {
|
||||||
recProvince = searchList.value.find(
|
recProvince = searchList.value.find(
|
||||||
(item: ISearchList) => item.table === 'provinces'
|
(item: ISearchList) => item.table === 'provinces'
|
||||||
@@ -1315,13 +1341,20 @@ export default defineComponent({
|
|||||||
obj2.idSkill = idSkill;
|
obj2.idSkill = idSkill;
|
||||||
filtersearch2.push(obj2);
|
filtersearch2.push(obj2);
|
||||||
}
|
}
|
||||||
} else if (item.table === 'goods' && item.value === costanti.FILTER_TUTTI) {
|
} else if (item.table === toolsext.TABGOODS && item.value === costanti.FILTER_TUTTI) {
|
||||||
const obj2: any = {};
|
const obj2: any = {};
|
||||||
if (idSectorGood > 0) {
|
if (idSectorGood > 0) {
|
||||||
// idSectorGood
|
// idSectorGood
|
||||||
obj2['sectorGood._id'] = idSectorGood;
|
obj2['sectorGood._id'] = idSectorGood;
|
||||||
filtersearch2.push(obj2);
|
filtersearch2.push(obj2);
|
||||||
}
|
}
|
||||||
|
} else if (item.table === toolsext.TABBACHECAS && item.value === costanti.FILTER_TUTTI) {
|
||||||
|
const obj2: any = {};
|
||||||
|
if (idSectorBacheca > 0) {
|
||||||
|
// idSectorBacheca
|
||||||
|
obj2['sectorBacheca._id'] = idSectorBacheca;
|
||||||
|
filtersearch2.push(obj2);
|
||||||
|
}
|
||||||
} else if (
|
} else if (
|
||||||
item.table === 'subskills' &&
|
item.table === 'subskills' &&
|
||||||
item.value === costanti.FILTER_TUTTI
|
item.value === costanti.FILTER_TUTTI
|
||||||
@@ -1843,6 +1876,14 @@ export default defineComponent({
|
|||||||
newRecord.value.idGood = item.idGood;
|
newRecord.value.idGood = item.idGood;
|
||||||
console.log('newRecord', newRecord);
|
console.log('newRecord', newRecord);
|
||||||
}
|
}
|
||||||
|
} else if (col.jointable === toolsext.TABSECTORBACHECAS) {
|
||||||
|
// Sbianca la select della Categoria Eventi
|
||||||
|
|
||||||
|
if (tools.existProp(item, 'idBacheca')) {
|
||||||
|
item.idGood = costanti.FILTER_NESSUNO;
|
||||||
|
newRecord.value.idBacheca = item.idBacheca;
|
||||||
|
console.log('newRecord', newRecord);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
rowsel.value = item;
|
rowsel.value = item;
|
||||||
idsel = item._id;
|
idsel = item._id;
|
||||||
@@ -2800,7 +2841,7 @@ export default defineComponent({
|
|||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
function cmdExt(cmd: any, id: any, myrec: any) {
|
async function cmdExt(cmd: any, id: any, myrec: any) {
|
||||||
console.log('cmd', cmd);
|
console.log('cmd', cmd);
|
||||||
|
|
||||||
if (cmd === costanti.CMD_CLONE) {
|
if (cmd === costanti.CMD_CLONE) {
|
||||||
@@ -2817,9 +2858,11 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (cmd === costanti.CMD_SHOW_PAGE) {
|
if (cmd === costanti.CMD_SHOW_PAGE) {
|
||||||
visupagedialog.value = true;
|
visupagedialog.value = false;
|
||||||
|
await nextTick();
|
||||||
myrecdialog.value = myrec;
|
myrecdialog.value = myrec;
|
||||||
myIdRecDialog.value = id;
|
myIdRecDialog.value = id;
|
||||||
|
visupagedialog.value = true;
|
||||||
return true;
|
return true;
|
||||||
} else if (cmd === costanti.CMD_OPEN_PAGE) {
|
} else if (cmd === costanti.CMD_OPEN_PAGE) {
|
||||||
router.push(tools.getPathByTableAndRec(mytable.value, myrec));
|
router.push(tools.getPathByTableAndRec(mytable.value, myrec));
|
||||||
|
|||||||
@@ -1318,6 +1318,7 @@
|
|||||||
|
|
||||||
<q-dialog
|
<q-dialog
|
||||||
v-model="showSearchDialog"
|
v-model="showSearchDialog"
|
||||||
|
:seamless="$q.screen.gt.xs"
|
||||||
transition-show="slide-up"
|
transition-show="slide-up"
|
||||||
transition-hide="slide-down"
|
transition-hide="slide-down"
|
||||||
class="q-dialog-fullscreen no-padding-dialog"
|
class="q-dialog-fullscreen no-padding-dialog"
|
||||||
@@ -1404,6 +1405,7 @@
|
|||||||
@hide="hidewindow"
|
@hide="hidewindow"
|
||||||
:maximized="$q.screen.lt.sm"
|
:maximized="$q.screen.lt.sm"
|
||||||
:persistent="false"
|
:persistent="false"
|
||||||
|
:seamless="$q.screen.gt.xs"
|
||||||
:class="
|
:class="
|
||||||
'dialog_annunci ' + ($q.screen.lt.sm ? 'bottom-dialog' : ' right-align-dialog')
|
'dialog_annunci ' + ($q.screen.lt.sm ? 'bottom-dialog' : ' right-align-dialog')
|
||||||
"
|
"
|
||||||
@@ -1504,6 +1506,7 @@
|
|||||||
@hide="hidewindow"
|
@hide="hidewindow"
|
||||||
class="dialog_class"
|
class="dialog_class"
|
||||||
:persistent="true"
|
:persistent="true"
|
||||||
|
:seamless="$q.screen.gt.xs"
|
||||||
:maximized="$q.screen.lt.sm"
|
:maximized="$q.screen.lt.sm"
|
||||||
>
|
>
|
||||||
<q-card class="dialog_card">
|
<q-card class="dialog_card">
|
||||||
@@ -1582,11 +1585,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-actions align="center">
|
<q-card-actions align="center">
|
||||||
<q-btn
|
|
||||||
:label="t('dialog.insert')"
|
|
||||||
color="primary"
|
|
||||||
@click="saveNewRecord"
|
|
||||||
></q-btn>
|
|
||||||
<q-btn
|
<q-btn
|
||||||
flat
|
flat
|
||||||
:label="t('dialog.cancel')"
|
:label="t('dialog.cancel')"
|
||||||
@@ -1594,12 +1592,18 @@
|
|||||||
v-close-popup
|
v-close-popup
|
||||||
@click="annulla"
|
@click="annulla"
|
||||||
></q-btn>
|
></q-btn>
|
||||||
|
<q-btn
|
||||||
|
:label="t('dialog.insert')"
|
||||||
|
color="primary"
|
||||||
|
@click="saveNewRecord"
|
||||||
|
></q-btn>
|
||||||
</q-card-actions>
|
</q-card-actions>
|
||||||
</q-card>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
<q-dialog
|
<q-dialog
|
||||||
v-model="editRecordBool"
|
v-model="editRecordBool"
|
||||||
@hide="hidewindowEdit"
|
@hide="hidewindowEdit"
|
||||||
|
:seamless="$q.screen.gt.xs"
|
||||||
:maximized="$q.screen.lt.sm"
|
:maximized="$q.screen.lt.sm"
|
||||||
>
|
>
|
||||||
<q-card class="dialog_card">
|
<q-card class="dialog_card">
|
||||||
@@ -1672,17 +1676,17 @@
|
|||||||
</div>
|
</div>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-actions align="center">
|
<q-card-actions align="center">
|
||||||
<q-btn
|
|
||||||
:label="t('dialog.save')"
|
|
||||||
color="primary"
|
|
||||||
@click="saverecModif"
|
|
||||||
></q-btn>
|
|
||||||
<q-btn
|
<q-btn
|
||||||
flat
|
flat
|
||||||
:label="t('dialog.cancel')"
|
:label="t('dialog.cancel')"
|
||||||
color="primary"
|
color="primary"
|
||||||
@click="cancelrecModif"
|
@click="cancelrecModif"
|
||||||
></q-btn>
|
></q-btn>
|
||||||
|
<q-btn
|
||||||
|
:label="t('dialog.save')"
|
||||||
|
color="primary"
|
||||||
|
@click="saverecModif"
|
||||||
|
></q-btn>
|
||||||
</q-card-actions>
|
</q-card-actions>
|
||||||
</q-card>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
|||||||
@@ -1,16 +1,3 @@
|
|||||||
// ========================================
|
|
||||||
// VARIABILI
|
|
||||||
// ========================================
|
|
||||||
$primary-color: #1976d2;
|
|
||||||
$grey-color: #666;
|
|
||||||
$grey-light: #999;
|
|
||||||
|
|
||||||
$border-radius: 8px;
|
|
||||||
$border-radius-sm: 6px;
|
|
||||||
$transition-speed: 0.3s;
|
|
||||||
|
|
||||||
$shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
|
|
||||||
$mobile-breakpoint: 768px;
|
|
||||||
|
|
||||||
// ========================================
|
// ========================================
|
||||||
// GRID CONTAINER
|
// GRID CONTAINER
|
||||||
|
|||||||
@@ -593,6 +593,8 @@ export default defineComponent({
|
|||||||
setCategBySector(shared_consts.TABLES_MYSKILLS, table, newval)
|
setCategBySector(shared_consts.TABLES_MYSKILLS, table, newval)
|
||||||
} else if (table === toolsext.TABSECTORGOODS) {
|
} else if (table === toolsext.TABSECTORGOODS) {
|
||||||
setCategBySector(toolsext.TABGOODS, table, newval)
|
setCategBySector(toolsext.TABGOODS, table, newval)
|
||||||
|
} else if (table === toolsext.TABSECTORBACHECAS) {
|
||||||
|
setCategBySector(toolsext.TABBACHECAS, table, newval)
|
||||||
} else if (table === toolsext.TABREGIONS) {
|
} else if (table === toolsext.TABREGIONS) {
|
||||||
setProvinceByRegion(toolsext.TABPROVINCE, table, newval)
|
setProvinceByRegion(toolsext.TABPROVINCE, table, newval)
|
||||||
} else if (table === toolsext.TABGOODS) {
|
} else if (table === toolsext.TABGOODS) {
|
||||||
@@ -600,7 +602,11 @@ export default defineComponent({
|
|||||||
if (recSector) {
|
if (recSector) {
|
||||||
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + table + costanti.FILTER_SEP + recSector.value, newval)
|
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + table + costanti.FILTER_SEP + recSector.value, newval)
|
||||||
}
|
}
|
||||||
// setCategBySector('sectorgoods', table, newval)
|
} else if (table === toolsext.TABBACHECAS) {
|
||||||
|
const recSector = searchList.value.find((rec) => rec.table === toolsext.TABSECTORBACHECAS)
|
||||||
|
if (recSector) {
|
||||||
|
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + table + costanti.FILTER_SEP + recSector.value, newval)
|
||||||
|
}
|
||||||
} else if (table === shared_consts.TAB_CITIES) {
|
} else if (table === shared_consts.TAB_CITIES) {
|
||||||
const rec = searchList.value.find((myrec) => myrec.table === shared_consts.TAB_CITIES) // check if exist
|
const rec = searchList.value.find((myrec) => myrec.table === shared_consts.TAB_CITIES) // check if exist
|
||||||
if (rec) {
|
if (rec) {
|
||||||
@@ -722,12 +728,14 @@ export default defineComponent({
|
|||||||
|
|
||||||
let recSector = null
|
let recSector = null
|
||||||
let recSectorGood = null
|
let recSectorGood = null
|
||||||
|
let recSectorBacheca = null
|
||||||
let recCities = null
|
let recCities = null
|
||||||
let recRegion = null
|
let recRegion = null
|
||||||
let recProvince = null
|
let recProvince = null
|
||||||
let recSkill = null
|
let recSkill = null
|
||||||
let idSector = 0
|
let idSector = 0
|
||||||
let idSectorGood = 0
|
let idSectorGood = 0
|
||||||
|
let idSectorBacheca = 0
|
||||||
let idProvince = 0
|
let idProvince = 0
|
||||||
let idRegion = 0
|
let idRegion = 0
|
||||||
let idSkill = 0
|
let idSkill = 0
|
||||||
@@ -736,9 +744,12 @@ export default defineComponent({
|
|||||||
recSector = searchList.value.find((item: ISearchList) => item.table === toolsext.TABSECTORS)
|
recSector = searchList.value.find((item: ISearchList) => item.table === toolsext.TABSECTORS)
|
||||||
idSector = recSector ? recSector.value : 0
|
idSector = recSector ? recSector.value : 0
|
||||||
|
|
||||||
recSectorGood = searchList.value.find((item: ISearchList) => item.table === 'sectorgoods')
|
recSectorGood = searchList.value.find((item: ISearchList) => item.table === toolsext.TABSECTORGOODS)
|
||||||
idSectorGood = recSectorGood ? recSectorGood.value : 0
|
idSectorGood = recSectorGood ? recSectorGood.value : 0
|
||||||
|
|
||||||
|
recSectorBacheca = searchList.value.find((item: ISearchList) => item.table === toolsext.TABSECTORBACHECAS)
|
||||||
|
idSectorBacheca = recSectorBacheca ? recSectorBacheca.value : 0
|
||||||
|
|
||||||
recProvince = searchList.value.find((item: ISearchList) => item.table === 'provinces')
|
recProvince = searchList.value.find((item: ISearchList) => item.table === 'provinces')
|
||||||
idProvince = recProvince ? recProvince.value : 0
|
idProvince = recProvince ? recProvince.value : 0
|
||||||
|
|
||||||
@@ -888,13 +899,20 @@ export default defineComponent({
|
|||||||
obj2.idSkill = idSkill
|
obj2.idSkill = idSkill
|
||||||
filtersearch2.push(obj2)
|
filtersearch2.push(obj2)
|
||||||
}
|
}
|
||||||
} else if ((item.table === 'goods') && item.value === costanti.FILTER_TUTTI) {
|
} else if ((item.table === toolsext.TABGOODS) && item.value === costanti.FILTER_TUTTI) {
|
||||||
const obj2: any = {}
|
const obj2: any = {}
|
||||||
if (idSectorGood > 0) {
|
if (idSectorGood > 0) {
|
||||||
// idSectorGood
|
// idSectorGood
|
||||||
obj2['sectorGood._id'] = idSectorGood
|
obj2['sectorGood._id'] = idSectorGood
|
||||||
filtersearch2.push(obj2)
|
filtersearch2.push(obj2)
|
||||||
}
|
}
|
||||||
|
} else if (item.table === toolsext.TABBACHECAS && item.value === costanti.FILTER_TUTTI) {
|
||||||
|
const obj2: any = {};
|
||||||
|
if (idSectorBacheca > 0) {
|
||||||
|
// idSectorBacheca
|
||||||
|
obj2['sectorBacheca._id'] = idSectorBacheca;
|
||||||
|
filtersearch2.push(obj2);
|
||||||
|
}
|
||||||
} else if ((item.table === 'subskills') && item.value === costanti.FILTER_TUTTI) {
|
} else if ((item.table === 'subskills') && item.value === costanti.FILTER_TUTTI) {
|
||||||
const obj2: any = {}
|
const obj2: any = {}
|
||||||
// idSector
|
// idSector
|
||||||
@@ -1313,6 +1331,14 @@ export default defineComponent({
|
|||||||
newRecord.value.idGood = item.idGood
|
newRecord.value.idGood = item.idGood
|
||||||
console.log('newRecord', newRecord)
|
console.log('newRecord', newRecord)
|
||||||
}
|
}
|
||||||
|
} else if (col.jointable === toolsext.TABSECTORBACHECAS) {
|
||||||
|
// Sbianca la select della Categoria Bacheca
|
||||||
|
|
||||||
|
if (tools.existProp(item, 'idBacheca')) {
|
||||||
|
item.idBacheca = costanti.FILTER_NESSUNO
|
||||||
|
newRecord.value.idBacheca = item.idBacheca
|
||||||
|
console.log('newRecord', newRecord)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
rowsel.value = item
|
rowsel.value = item
|
||||||
idsel = item._id
|
idsel = item._id
|
||||||
|
|||||||
@@ -354,11 +354,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-actions align="center">
|
<q-card-actions align="center">
|
||||||
<q-btn
|
|
||||||
:label="$t('dialog.insert')"
|
|
||||||
color="primary"
|
|
||||||
@click="saveNewRecord"
|
|
||||||
></q-btn>
|
|
||||||
<q-btn
|
<q-btn
|
||||||
flat
|
flat
|
||||||
:label="$t('dialog.cancel')"
|
:label="$t('dialog.cancel')"
|
||||||
@@ -366,6 +361,11 @@
|
|||||||
v-close-popup
|
v-close-popup
|
||||||
@click="annulla"
|
@click="annulla"
|
||||||
></q-btn>
|
></q-btn>
|
||||||
|
<q-btn
|
||||||
|
:label="$t('dialog.insert')"
|
||||||
|
color="primary"
|
||||||
|
@click="saveNewRecord"
|
||||||
|
></q-btn>
|
||||||
</q-card-actions>
|
</q-card-actions>
|
||||||
</q-card>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
@@ -428,17 +428,17 @@
|
|||||||
</div>
|
</div>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-actions align="center">
|
<q-card-actions align="center">
|
||||||
<q-btn
|
|
||||||
:label="$t('dialog.ok')"
|
|
||||||
color="primary"
|
|
||||||
@click="saverecModif"
|
|
||||||
></q-btn>
|
|
||||||
<q-btn
|
<q-btn
|
||||||
flat
|
flat
|
||||||
:label="$t('dialog.cancel')"
|
:label="$t('dialog.cancel')"
|
||||||
color="primary"
|
color="primary"
|
||||||
@click="cancelrecModif"
|
@click="cancelrecModif"
|
||||||
></q-btn>
|
></q-btn>
|
||||||
|
<q-btn
|
||||||
|
:label="$t('dialog.ok')"
|
||||||
|
color="primary"
|
||||||
|
@click="saverecModif"
|
||||||
|
></q-btn>
|
||||||
</q-card-actions>
|
</q-card-actions>
|
||||||
</q-card>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
|||||||
@@ -18,16 +18,16 @@
|
|||||||
v-if="editing"
|
v-if="editing"
|
||||||
class="button-group"
|
class="button-group"
|
||||||
>
|
>
|
||||||
|
<q-btn
|
||||||
|
flat
|
||||||
|
:label="$t('dialog.cancel')"
|
||||||
|
@click="cancelUpdate"
|
||||||
|
/>
|
||||||
<q-btn
|
<q-btn
|
||||||
:label="$t('dialog.save')"
|
:label="$t('dialog.save')"
|
||||||
color="positive"
|
color="positive"
|
||||||
@click="confirmUpdate"
|
@click="confirmUpdate"
|
||||||
/>
|
/>
|
||||||
<q-btn
|
|
||||||
:label="$t('dialog.cancel')"
|
|
||||||
color="negative"
|
|
||||||
@click="cancelUpdate"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -1,43 +1,3 @@
|
|||||||
// ========================================
|
|
||||||
// VARIABILI MODERNE CON GRADIENTI
|
|
||||||
// ========================================
|
|
||||||
$primary-color: #1976d2;
|
|
||||||
$primary-light: #42a5f5;
|
|
||||||
$primary-dark: #1565c0;
|
|
||||||
$secondary-color: #26a69a;
|
|
||||||
$positive-color: #21ba45;
|
|
||||||
$negative-color: #c10015;
|
|
||||||
$info-color: #31ccec;
|
|
||||||
$warning-color: #f2c037;
|
|
||||||
|
|
||||||
@use 'sass:color';
|
|
||||||
|
|
||||||
$grey-text: #555;
|
|
||||||
$grey-light: #999;
|
|
||||||
$grey-dark: #333;
|
|
||||||
|
|
||||||
$border-radius: 12px;
|
|
||||||
$border-radius-sm: 8px;
|
|
||||||
$border-radius-lg: 16px;
|
|
||||||
|
|
||||||
$transition-speed: 0.3s;
|
|
||||||
$shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
|
|
||||||
$shadow-md: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
||||||
$shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.15);
|
|
||||||
|
|
||||||
$mobile-breakpoint: 768px;
|
|
||||||
$small-breakpoint: 600px;
|
|
||||||
|
|
||||||
// ========================================
|
|
||||||
// GRADIENTI MODERNI
|
|
||||||
// ========================================
|
|
||||||
$gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
||||||
$gradient-secondary: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
|
|
||||||
$gradient-info: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
|
|
||||||
$gradient-positive: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);
|
|
||||||
$gradient-card-light: linear-gradient(135deg, #fdfbfb 0%, #ebedee 100%);
|
|
||||||
$gradient-card-white: linear-gradient(to bottom, #ffffff 0%, #f8f9fa 100%);
|
|
||||||
$gradient-hover: linear-gradient(135deg, rgba(102, 126, 234, 0.05) 0%, rgba(118, 75, 162, 0.05) 100%);
|
|
||||||
|
|
||||||
// ========================================
|
// ========================================
|
||||||
// PROFILE (con gradiente)
|
// PROFILE (con gradiente)
|
||||||
@@ -859,3 +819,76 @@ $gradient-hover: linear-gradient(135deg, rgba(102, 126, 234, 0.05) 0%, rgba(118,
|
|||||||
background: linear-gradient(to right, rgba(33, 186, 69, 0.08), transparent 20%);
|
background: linear-gradient(to right, rgba(33, 186, 69, 0.08), transparent 20%);
|
||||||
box-shadow: 0 2px 12px rgba(33, 186, 69, 0.1);
|
box-shadow: 0 2px 12px rgba(33, 186, 69, 0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.category-hierarchy {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
align-items: center;
|
||||||
|
gap: 2px;
|
||||||
|
|
||||||
|
.hierarchy-arrow {
|
||||||
|
opacity: 0.5;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: $mobile-breakpoint) {
|
||||||
|
gap: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag-chip {
|
||||||
|
height: 20px;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
padding: 0 px;
|
||||||
|
border-radius: 4px;
|
||||||
|
box-shadow: none;
|
||||||
|
font-weight: 500;
|
||||||
|
|
||||||
|
// Categoria principale - più scura e intensa
|
||||||
|
&.sector {
|
||||||
|
background: linear-gradient(135deg, $primary-color, #1976d2);
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sottocategoria - stessa base ma più chiara
|
||||||
|
&.subsector {
|
||||||
|
background: linear-gradient(135deg, color.adjust($primary-color, $lightness: 10%), #42a5f5);
|
||||||
|
color: white;
|
||||||
|
opacity: 0.9; // Opzionale: leggera trasparenza
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: $mobile-breakpoint) {
|
||||||
|
height: 19px;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
padding: 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.q-chip__content) {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.categories-dialog {
|
||||||
|
.dialog-header {
|
||||||
|
padding: 16px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dialog-content {
|
||||||
|
padding: 20px;
|
||||||
|
max-height: 60vh;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.categories-grid {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.category-chip {
|
||||||
|
font-size: 14px;
|
||||||
|
padding: 8px 12px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -87,6 +87,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
const showPic = ref(false)
|
const showPic = ref(false)
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
|
const showPreferencesDialog = ref(false)
|
||||||
|
|
||||||
const $router = useRouter()
|
const $router = useRouter()
|
||||||
|
|
||||||
@@ -275,19 +276,21 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getRecGoodSkillByRec(rec: any) {
|
function getRecGoodSkillByRec(rec: any) {
|
||||||
if (props.table === 'myskills')
|
if ((props.table === toolsext.TABMYSKILLS) || (props.table === toolsext.TABMYBACHECAS))
|
||||||
return rec.recSkill
|
return rec.recSkill
|
||||||
else if (props.table === 'mygoods')
|
else if (props.table === toolsext.TABMYGOODS)
|
||||||
return rec.recGood
|
return rec.recGood
|
||||||
|
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSectorByRec(rec: any) {
|
function getSectorByRec(rec: any) {
|
||||||
if (props.table === 'myskills')
|
if (props.table === toolsext.TABMYSKILLS)
|
||||||
return rec.sector
|
return rec.sector
|
||||||
else if (props.table === 'mygoods')
|
else if (props.table === toolsext.TABMYGOODS)
|
||||||
return rec.sectorGood
|
return rec.sectorGood
|
||||||
|
else if (props.table === toolsext.TABMYBACHECAS)
|
||||||
|
return rec.sectorBacheca
|
||||||
|
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
@@ -674,10 +677,24 @@ export default defineComponent({
|
|||||||
emit('showInMap', rec)
|
emit('showInMap', rec)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const arrSubSector = computed(() => {
|
||||||
|
return tools.getArrSubSector(props.table, myrec.value);
|
||||||
|
});
|
||||||
|
const arrSector = computed(() => {
|
||||||
|
return tools.getArrSector(props.table, myrec.value);
|
||||||
|
});
|
||||||
|
|
||||||
|
const getColorSubSector = computed(() => {
|
||||||
|
return arrSector.value && arrSector.value.length == 1 ? arrSector.value[0].color : 'primary'
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
onMounted(mounted)
|
onMounted(mounted)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
getColorSubSector,
|
||||||
|
arrSector,
|
||||||
|
arrSubSector,
|
||||||
expandDialog,
|
expandDialog,
|
||||||
profile,
|
profile,
|
||||||
tools,
|
tools,
|
||||||
@@ -735,6 +752,7 @@ export default defineComponent({
|
|||||||
updatePart,
|
updatePart,
|
||||||
numpart,
|
numpart,
|
||||||
colmyUserPeople,
|
colmyUserPeople,
|
||||||
|
showPreferencesDialog,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -431,6 +431,30 @@
|
|||||||
>
|
>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
|
<!--<q-item v-if="table === shared_consts.TABLES_MYHOSPS">
|
||||||
|
<div
|
||||||
|
v-if="myrec.preferences && myrec.preferences.length > 0"
|
||||||
|
class="preferences-section q-mb-sm"
|
||||||
|
>
|
||||||
|
<div class="preferences-icons-container">
|
||||||
|
<q-avatar
|
||||||
|
v-for="(prefId, ind) of myrec.preferences"
|
||||||
|
:key="ind"
|
||||||
|
size="32px"
|
||||||
|
:style="`background-color: ${tools.getPreferenceById(prefId)?.color || 'grey'}; cursor: pointer;`"
|
||||||
|
class="preference-icon-avatar"
|
||||||
|
@click.stop="showPreferencesDialog = true"
|
||||||
|
>
|
||||||
|
<q-icon
|
||||||
|
:name="tools.getPreferenceById(prefId)?.icon || 'help'"
|
||||||
|
size="18px"
|
||||||
|
color="white"
|
||||||
|
/>
|
||||||
|
<q-tooltip>{{ tools.getPreferenceById(prefId)?.label }}</q-tooltip>
|
||||||
|
</q-avatar>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-item>-->
|
||||||
<q-item
|
<q-item
|
||||||
v-if="
|
v-if="
|
||||||
myrec.idStatusSkill &&
|
myrec.idStatusSkill &&
|
||||||
@@ -504,28 +528,49 @@
|
|||||||
|
|
||||||
<q-item-section>
|
<q-item-section>
|
||||||
<q-item-label>
|
<q-item-label>
|
||||||
|
<div class="category-hierarchy">
|
||||||
<q-chip
|
<q-chip
|
||||||
v-if="getSectorByRec(myrec) && getSectorByRec(myrec)[0].descr"
|
v-for="(recSect, ind) of arrSector"
|
||||||
class="glossy"
|
:key="'sec-' + ind"
|
||||||
color="blue"
|
class="tag-chip sector"
|
||||||
text-color="white"
|
:style="{
|
||||||
dense
|
background: `linear-gradient(135deg, ${recSect.color}, ${recSect.color})`,
|
||||||
|
}"
|
||||||
|
:color="recSect.color"
|
||||||
>
|
>
|
||||||
<span>{{ getSectorByRec(myrec)[0].descr }}</span>
|
<q-icon
|
||||||
|
v-if="recSect.icon"
|
||||||
|
:name="recSect.icon"
|
||||||
|
size="xs"
|
||||||
|
class="q-mr-xs"
|
||||||
|
/>
|
||||||
|
{{ recSect.descr }}
|
||||||
</q-chip>
|
</q-chip>
|
||||||
|
<q-icon
|
||||||
|
v-if="arrSubSector.length > 0"
|
||||||
|
name="chevron_right"
|
||||||
|
size="sm"
|
||||||
|
class="hierarchy-arrow"
|
||||||
|
/>
|
||||||
<q-chip
|
<q-chip
|
||||||
v-if="
|
v-for="(rec, ind) of arrSubSector"
|
||||||
getRecGoodSkillByRec(myrec) &&
|
:key="'sub-' + ind"
|
||||||
getRecGoodSkillByRec(myrec).length > 0 &&
|
class="tag-chip subsector"
|
||||||
getRecGoodSkillByRec(myrec)[0].descr
|
:style="{
|
||||||
"
|
background: `linear-gradient(135deg, ${getColorSubSector}, ${getColorSubSector})`,
|
||||||
class="glossy"
|
opacity: 0.8,
|
||||||
dense
|
}"
|
||||||
color="blue"
|
:color="getColorSubSector"
|
||||||
text-color="white"
|
|
||||||
>
|
>
|
||||||
<span>{{ getRecGoodSkillByRec(myrec)[0].descr }}</span>
|
<q-icon
|
||||||
|
v-if="rec.icon"
|
||||||
|
:name="rec.icon"
|
||||||
|
size="xs"
|
||||||
|
class="q-mr-xs"
|
||||||
|
/>
|
||||||
|
{{ rec.descr }}
|
||||||
</q-chip>
|
</q-chip>
|
||||||
|
</div>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
@@ -579,6 +624,7 @@
|
|||||||
:rec="myrec"
|
:rec="myrec"
|
||||||
:type="costanti.FieldType.multiselect"
|
:type="costanti.FieldType.multiselect"
|
||||||
:value="myrec.preferences"
|
:value="myrec.preferences"
|
||||||
|
size="md"
|
||||||
:options="
|
:options="
|
||||||
globalStore.getTableJoinByName(
|
globalStore.getTableJoinByName(
|
||||||
toolsext.TABPREF,
|
toolsext.TABPREF,
|
||||||
@@ -589,7 +635,7 @@
|
|||||||
"
|
"
|
||||||
:optval="fieldsTable.getKeyByTable(toolsext.TABPREF)"
|
:optval="fieldsTable.getKeyByTable(toolsext.TABPREF)"
|
||||||
:optlab="fieldsTable.getLabelByTable(toolsext.TABPREF)"
|
:optlab="fieldsTable.getLabelByTable(toolsext.TABPREF)"
|
||||||
:opticon="fieldsTable.getIconByTable(toolsext.TABPREF)"
|
:dense="false"
|
||||||
></CMyChipList>
|
></CMyChipList>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
@@ -1041,7 +1087,9 @@
|
|||||||
<span v-if="myrec.createdBy"
|
<span v-if="myrec.createdBy"
|
||||||
><br />{{ $t('services.createdBy') }}
|
><br />{{ $t('services.createdBy') }}
|
||||||
<span class="text-bold"
|
<span class="text-bold"
|
||||||
><a :href="'my/' + myrec.createdBy">{{ myrec.createdBy }}</a></span
|
><a :href="'my/' + myrec.createdBy">{{
|
||||||
|
myrec.createdBy
|
||||||
|
}}</a></span
|
||||||
></span
|
></span
|
||||||
>
|
>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
@@ -1415,21 +1463,64 @@
|
|||||||
</div>
|
</div>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-actions align="right">
|
<q-card-actions align="right">
|
||||||
<q-btn
|
|
||||||
flat
|
|
||||||
:label="$t('dialog.sendmsg')"
|
|
||||||
color="primary"
|
|
||||||
@click="sendMsg(true)"
|
|
||||||
></q-btn>
|
|
||||||
<q-btn
|
<q-btn
|
||||||
flat
|
flat
|
||||||
:label="$t('dialog.cancel')"
|
:label="$t('dialog.cancel')"
|
||||||
color="primary"
|
color="primary"
|
||||||
v-close-popup
|
v-close-popup
|
||||||
></q-btn>
|
></q-btn>
|
||||||
|
<q-btn
|
||||||
|
flat
|
||||||
|
:label="$t('dialog.sendmsg')"
|
||||||
|
color="primary"
|
||||||
|
@click="sendMsg(true)"
|
||||||
|
></q-btn>
|
||||||
</q-card-actions>
|
</q-card-actions>
|
||||||
</q-card>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
<!-- Categories Dialog -->
|
||||||
|
<q-dialog v-model="showPreferencesDialog">
|
||||||
|
<q-card
|
||||||
|
class="categories-dialog"
|
||||||
|
:style="{ minWidth: $q.screen.lt.sm ? '90vw' : '400px' }"
|
||||||
|
>
|
||||||
|
<q-card-section class="dialog-header">
|
||||||
|
<div class="text-h6">Categorie</div>
|
||||||
|
</q-card-section>
|
||||||
|
|
||||||
|
<q-separator />
|
||||||
|
|
||||||
|
<q-card-section class="dialog-content">
|
||||||
|
<div class="categories-grid">
|
||||||
|
<q-chip
|
||||||
|
v-for="(rec, ind) of myrec.preferences"
|
||||||
|
:key="ind"
|
||||||
|
class="category-chip shadow-3"
|
||||||
|
:style="`background-color: ${tools.getPreferenceById(rec).color}; color: white;`"
|
||||||
|
>
|
||||||
|
<q-icon
|
||||||
|
:name="tools.getPreferenceById(rec).icon"
|
||||||
|
left
|
||||||
|
size="18px"
|
||||||
|
/>
|
||||||
|
{{ tools.getPreferenceById(rec).label }}
|
||||||
|
</q-chip>
|
||||||
|
</div>
|
||||||
|
</q-card-section>
|
||||||
|
|
||||||
|
<q-separator />
|
||||||
|
|
||||||
|
<q-card-actions align="right">
|
||||||
|
<q-btn
|
||||||
|
flat
|
||||||
|
label="Chiudi"
|
||||||
|
color="primary"
|
||||||
|
v-close-popup
|
||||||
|
/>
|
||||||
|
</q-card-actions>
|
||||||
|
</q-card>
|
||||||
|
</q-dialog>
|
||||||
|
|
||||||
<q-dialog
|
<q-dialog
|
||||||
v-model="bookEventpage.show"
|
v-model="bookEventpage.show"
|
||||||
no-backdrop-dismiss
|
no-backdrop-dismiss
|
||||||
@@ -1504,6 +1595,12 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<q-card-actions align="right">
|
<q-card-actions align="right">
|
||||||
|
<q-btn
|
||||||
|
flat
|
||||||
|
:label="$t('dialog.cancel')"
|
||||||
|
color="primary"
|
||||||
|
v-close-popup
|
||||||
|
></q-btn>
|
||||||
<q-btn
|
<q-btn
|
||||||
v-if="bookEventpage.state === EState.Modifying"
|
v-if="bookEventpage.state === EState.Modifying"
|
||||||
flat
|
flat
|
||||||
@@ -1525,13 +1622,6 @@
|
|||||||
@click="saveBookEvent"
|
@click="saveBookEvent"
|
||||||
:disable="!(bookEventpage.state === EState.Creating || hasModifiedBooking)"
|
:disable="!(bookEventpage.state === EState.Creating || hasModifiedBooking)"
|
||||||
></q-btn>
|
></q-btn>
|
||||||
|
|
||||||
<q-btn
|
|
||||||
flat
|
|
||||||
:label="$t('dialog.cancel')"
|
|
||||||
color="primary"
|
|
||||||
v-close-popup
|
|
||||||
></q-btn>
|
|
||||||
</q-card-actions>
|
</q-card-actions>
|
||||||
</q-card>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
|||||||
@@ -1,80 +1,72 @@
|
|||||||
// ========================================
|
// ========================================
|
||||||
// CMyChipList - SCSS Moderno con Gradienti
|
// CMyChipList - RISO Design System
|
||||||
// ========================================
|
// ========================================
|
||||||
|
|
||||||
$primary-color: #1976d2;
|
.c-chiplist {
|
||||||
$primary-light: #42a5f5;
|
margin-bottom: $s-sm;
|
||||||
$secondary-color: #26a69a;
|
|
||||||
$positive-color: #21ba45;
|
|
||||||
$negative-color: #c10015;
|
|
||||||
$info-color: #31ccec;
|
|
||||||
$warning-color: #f2c037;
|
|
||||||
|
|
||||||
@use 'sass:color';
|
@media (max-width: $mobile) {
|
||||||
|
margin-bottom: $s-xs;
|
||||||
$border-radius-sm: 8px;
|
|
||||||
$border-radius: 10px;
|
|
||||||
$transition-speed: 0.3s;
|
|
||||||
$shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
|
|
||||||
$shadow-md: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
||||||
|
|
||||||
$mobile-breakpoint: 768px;
|
|
||||||
|
|
||||||
// ========================================
|
|
||||||
// CONTAINER
|
|
||||||
// ========================================
|
|
||||||
.q-mb-sm {
|
|
||||||
// Padding e margini ottimizzati
|
|
||||||
@media (max-width: $mobile-breakpoint) {
|
|
||||||
margin-bottom: 10px !important;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========================================
|
// ========================================
|
||||||
// LABEL/TITLE (con gradiente sottile)
|
// LABEL
|
||||||
// ========================================
|
// ========================================
|
||||||
.text-subtitle2 {
|
.c-chiplist__label {
|
||||||
&.text-primary {
|
font-size: 0.9125rem;
|
||||||
background: linear-gradient(135deg, $primary-color, color.adjust($primary-color, $lightness: 15%));
|
font-weight: 600;
|
||||||
|
color: $mainColor;
|
||||||
|
margin-bottom: $s-xs;
|
||||||
|
letter-spacing: 0.02em;
|
||||||
|
background: linear-gradient(135deg, $mainColor, lighten($mainColor, 12%));
|
||||||
-webkit-background-clip: text;
|
-webkit-background-clip: text;
|
||||||
-webkit-text-fill-color: transparent;
|
-webkit-text-fill-color: transparent;
|
||||||
background-clip: text;
|
background-clip: text;
|
||||||
font-weight: 600;
|
|
||||||
letter-spacing: 0.02em;
|
|
||||||
margin-bottom: 8px;
|
|
||||||
|
|
||||||
@media (max-width: $mobile-breakpoint) {
|
@media (max-width: $mobile) {
|
||||||
font-size: 0.875rem;
|
font-size: 0.85rem;
|
||||||
margin-bottom: 6px;
|
margin-bottom: 4px;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========================================
|
// ========================================
|
||||||
// CHIPS CONTAINER
|
// CHIPS CONTAINER
|
||||||
// ========================================
|
// ========================================
|
||||||
.q-gutter-sm {
|
.c-chiplist__chips {
|
||||||
&.row.wrap {
|
display: flex;
|
||||||
gap: 8px;
|
flex-wrap: wrap;
|
||||||
|
|
||||||
@media (max-width: $mobile-breakpoint) {
|
|
||||||
gap: 6px;
|
gap: 6px;
|
||||||
}
|
|
||||||
|
@media (max-width: $mobile) {
|
||||||
|
gap: 4px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========================================
|
// ========================================
|
||||||
// SINGLE CHIP (con gradienti bellissimi!)
|
// SINGLE CHIP - RISO Style
|
||||||
// ========================================
|
// ========================================
|
||||||
.q-chip {
|
.c-chip {
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
transition: all $transition-speed cubic-bezier(0.4, 0, 0.2, 1);
|
border-radius: 20px !important;
|
||||||
border-radius: $border-radius !important;
|
font-size: 0.9125rem;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
letter-spacing: 0.01em;
|
letter-spacing: 0.01em;
|
||||||
|
padding: 4px 10px !important;
|
||||||
|
height: auto !important;
|
||||||
|
min-height: 26px;
|
||||||
|
transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.08);
|
||||||
|
|
||||||
// Effetto luce scorrevole
|
@media (max-width: $mobile) {
|
||||||
|
font-size: 0.85rem;
|
||||||
|
padding: 2px 4px !important;
|
||||||
|
min-height: 24px;
|
||||||
|
border-radius: 16px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gradiente di luce animato
|
||||||
&::before {
|
&::before {
|
||||||
content: '';
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -82,171 +74,255 @@ $mobile-breakpoint: 768px;
|
|||||||
left: -100%;
|
left: -100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
|
background: linear-gradient(90deg,
|
||||||
|
transparent,
|
||||||
|
rgba(255, 255, 255, 0.25),
|
||||||
|
transparent
|
||||||
|
);
|
||||||
transition: left 0.5s ease;
|
transition: left 0.5s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Shadow con gradiente
|
// Testo con ombra per leggibilità
|
||||||
&.shadow-1 {
|
&::v-deep(.q-chip__content) {
|
||||||
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
|
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
|
||||||
|
white-space: nowrap;
|
||||||
|
|
||||||
|
@media (max-width: $mobile) {
|
||||||
|
font-size: 0.75rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Padding compatto
|
// Icona
|
||||||
&.q-px-sm {
|
&::v-deep(.q-icon) {
|
||||||
padding-left: 10px !important;
|
font-size: 1rem;
|
||||||
padding-right: 10px !important;
|
margin-right: 4px;
|
||||||
|
transition: transform 0.25s ease;
|
||||||
|
|
||||||
@media (max-width: $mobile-breakpoint) {
|
@media (max-width: $mobile) {
|
||||||
padding-left: 8px !important;
|
font-size: 0.875rem;
|
||||||
padding-right: 8px !important;
|
margin-right: 3px;
|
||||||
font-size: 0.8125rem !important;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hover effect
|
// Hover effect
|
||||||
&:hover {
|
&:hover {
|
||||||
transform: translateY(-2px) scale(1.02);
|
transform: translateY(-1px) scale(1.02);
|
||||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
|
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.16), 0 2px 4px rgba(0, 0, 0, 0.12);
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
left: 100%;
|
left: 100%;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Colori con gradienti
|
&::v-deep(.q-icon) {
|
||||||
&[class*='bg-primary'],
|
|
||||||
&[class*='bg-blue'] {
|
|
||||||
background: linear-gradient(135deg, $primary-color, color.adjust($primary-color, $lightness: 10%)) !important;
|
|
||||||
box-shadow: 0 2px 8px rgba($primary-color, 0.3);
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background: linear-gradient(135deg, color.adjust($primary-color, $lightness: -5%), $primary-color) !important;
|
|
||||||
box-shadow: 0 4px 12px rgba($primary-color, 0.4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&[class*='bg-secondary'],
|
|
||||||
&[class*='bg-teal'] {
|
|
||||||
background: linear-gradient(135deg, $secondary-color, color.adjust($secondary-color, $lightness: 10%)) !important;
|
|
||||||
box-shadow: 0 2px 8px rgba($secondary-color, 0.3);
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background: linear-gradient(135deg, color.adjust($secondary-color, $lightness: -5%), $secondary-color) !important;
|
|
||||||
box-shadow: 0 4px 12px rgba($secondary-color, 0.4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&[class*='bg-positive'],
|
|
||||||
&[class*='bg-green'] {
|
|
||||||
background: linear-gradient(135deg, $positive-color, color.adjust($positive-color, $lightness: 10%)) !important;
|
|
||||||
box-shadow: 0 2px 8px rgba($positive-color, 0.3);
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background: linear-gradient(135deg, color.adjust($positive-color, $lightness: -5%), $positive-color) !important;
|
|
||||||
box-shadow: 0 4px 12px rgba($positive-color, 0.4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&[class*='bg-negative'],
|
|
||||||
&[class*='bg-red'] {
|
|
||||||
background: linear-gradient(135deg, $negative-color, color.adjust($negative-color, $lightness: 10%)) !important;
|
|
||||||
box-shadow: 0 2px 8px rgba($negative-color, 0.3);
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background: linear-gradient(135deg, color.adjust($negative-color, $lightness: -5%), $negative-color) !important;
|
|
||||||
box-shadow: 0 4px 12px rgba($negative-color, 0.4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&[class*='bg-warning'],
|
|
||||||
&[class*='bg-orange'],
|
|
||||||
&[class*='bg-amber'] {
|
|
||||||
background: linear-gradient(135deg, $warning-color, color.adjust($warning-color, $lightness: 10%)) !important;
|
|
||||||
box-shadow: 0 2px 8px rgba($warning-color, 0.3);
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background: linear-gradient(135deg, color.adjust($warning-color, $lightness: -5%), $warning-color) !important;
|
|
||||||
box-shadow: 0 4px 12px rgba($warning-color, 0.4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&[class*='bg-info'],
|
|
||||||
&[class*='bg-cyan'] {
|
|
||||||
background: linear-gradient(135deg, $info-color, color.adjust($info-color, $lightness: 10%)) !important;
|
|
||||||
box-shadow: 0 2px 8px rgba($info-color, 0.3);
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background: linear-gradient(135deg, color.adjust($info-color, $lightness: -5%), $info-color) !important;
|
|
||||||
box-shadow: 0 4px 12px rgba($info-color, 0.4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&[class*='bg-purple'] {
|
|
||||||
background: linear-gradient(135deg, #9c27b0, color.adjust(#9c27b0, $lightness: 10%)) !important;
|
|
||||||
box-shadow: 0 2px 8px rgba(#9c27b0, 0.3);
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background: linear-gradient(135deg, color.adjust(#9c27b0, $lightness: -5%), #9c27b0) !important;
|
|
||||||
box-shadow: 0 4px 12px rgba(#9c27b0, 0.4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&[class*='bg-pink'] {
|
|
||||||
background: linear-gradient(135deg, #e91e63, color.adjust(#e91e63, $lightness: 10%)) !important;
|
|
||||||
box-shadow: 0 2px 8px rgba(#e91e63, 0.3);
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background: linear-gradient(135deg, color.adjust(#e91e63, $lightness: -5%), #e91e63) !important;
|
|
||||||
box-shadow: 0 4px 12px rgba(#e91e63, 0.4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&[class*='bg-grey'],
|
|
||||||
&[class*='bg-gray'] {
|
|
||||||
background: linear-gradient(135deg, #757575, color.adjust(#757575, $lightness: 10%)) !important;
|
|
||||||
box-shadow: 0 2px 8px rgba(#757575, 0.3);
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background: linear-gradient(135deg, color.adjust(#757575, $lightness: -5%), #757575) !important;
|
|
||||||
box-shadow: 0 4px 12px rgba(#757575, 0.4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Icon dentro il chip
|
|
||||||
.q-icon {
|
|
||||||
transition: transform $transition-speed ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:hover .q-icon {
|
|
||||||
transform: scale(1.1) rotate(5deg);
|
transform: scale(1.1) rotate(5deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Text color bianco con ombra sottile per leggibilità
|
|
||||||
&[class*='text-white'] {
|
|
||||||
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// ========================================
|
// Dense variant
|
||||||
// DENSE VARIANT
|
&.q-chip--dense {
|
||||||
// ========================================
|
|
||||||
.q-chip--dense {
|
|
||||||
padding: 3px 8px !important;
|
padding: 3px 8px !important;
|
||||||
font-size: 0.8125rem;
|
min-height: 24px;
|
||||||
|
|
||||||
@media (max-width: $mobile-breakpoint) {
|
|
||||||
padding: 2px 6px !important;
|
|
||||||
font-size: 0.75rem;
|
font-size: 0.75rem;
|
||||||
|
|
||||||
|
@media (max-width: $mobile) {
|
||||||
|
padding: 2px 6px !important;
|
||||||
|
min-height: 22px;
|
||||||
|
font-size: 0.6875rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========================================
|
// ========================================
|
||||||
// ANIMATION
|
// SIZE VARIANTS
|
||||||
// ========================================
|
// ========================================
|
||||||
@keyframes chipAppear {
|
|
||||||
|
// Medium size
|
||||||
|
.c-chip--md {
|
||||||
|
font-size: 0.9375rem !important;
|
||||||
|
padding: 6px 14px !important;
|
||||||
|
min-height: 34px !important;
|
||||||
|
border-radius: 24px !important;
|
||||||
|
|
||||||
|
&::v-deep(.q-chip__content) {
|
||||||
|
font-size: 0.9375rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::v-deep(.q-icon) {
|
||||||
|
font-size: 1.25rem !important;
|
||||||
|
margin-right: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: $mobile) {
|
||||||
|
font-size: 0.875rem !important;
|
||||||
|
padding: 5px 12px !important;
|
||||||
|
min-height: 32px !important;
|
||||||
|
border-radius: 20px !important;
|
||||||
|
|
||||||
|
&::v-deep(.q-chip__content) {
|
||||||
|
font-size: 0.875rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::v-deep(.q-icon) {
|
||||||
|
font-size: 1.125rem !important;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Large size
|
||||||
|
.c-chip--lg {
|
||||||
|
font-size: 1.0625rem !important;
|
||||||
|
padding: 8px 18px !important;
|
||||||
|
min-height: 42px !important;
|
||||||
|
border-radius: 28px !important;
|
||||||
|
font-weight: 600;
|
||||||
|
|
||||||
|
&::v-deep(.q-chip__content) {
|
||||||
|
font-size: 1.0625rem;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::v-deep(.q-icon) {
|
||||||
|
font-size: 1.5rem !important;
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: $mobile) {
|
||||||
|
font-size: 1rem !important;
|
||||||
|
padding: 7px 16px !important;
|
||||||
|
min-height: 38px !important;
|
||||||
|
border-radius: 24px !important;
|
||||||
|
|
||||||
|
&::v-deep(.q-chip__content) {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::v-deep(.q-icon) {
|
||||||
|
font-size: 1.375rem !important;
|
||||||
|
margin-right: 7px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========================================
|
||||||
|
// GRADIENTI PER COLORI - RISO Style
|
||||||
|
// ========================================
|
||||||
|
|
||||||
|
// Blue/Primary
|
||||||
|
.c-chip.bg-blue,
|
||||||
|
.c-chip.bg-primary,
|
||||||
|
.c-chip.bg-indigo,
|
||||||
|
.c-chip.bg-light-blue {
|
||||||
|
background: linear-gradient(135deg, #1976d2, #42a5f5) !important;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background: linear-gradient(135deg, #1565c0, #1976d2) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Teal/Cyan
|
||||||
|
.c-chip.bg-teal,
|
||||||
|
.c-chip.bg-cyan {
|
||||||
|
background: linear-gradient(135deg, #00897b, #26a69a) !important;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background: linear-gradient(135deg, #00796b, #00897b) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Green
|
||||||
|
.c-chip.bg-green,
|
||||||
|
.c-chip.bg-light-green {
|
||||||
|
background: linear-gradient(135deg, #388e3c, #66bb6a) !important;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background: linear-gradient(135deg, #2e7d32, #388e3c) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Purple/Deep Purple
|
||||||
|
.c-chip.bg-purple,
|
||||||
|
.c-chip.bg-deep-purple {
|
||||||
|
background: linear-gradient(135deg, #7b1fa2, #9c27b0) !important;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background: linear-gradient(135deg, #6a1b9a, #7b1fa2) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pink
|
||||||
|
.c-chip.bg-pink {
|
||||||
|
background: linear-gradient(135deg, #c2185b, #e91e63) !important;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background: linear-gradient(135deg, #ad1457, #c2185b) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Orange/Amber
|
||||||
|
.c-chip.bg-orange,
|
||||||
|
.c-chip.bg-amber,
|
||||||
|
.c-chip.bg-deep-orange {
|
||||||
|
background: linear-gradient(135deg, #f57c00, #ff9800) !important;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background: linear-gradient(135deg, #ef6c00, #f57c00) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Yellow/Lime
|
||||||
|
.c-chip.bg-yellow,
|
||||||
|
.c-chip.bg-lime {
|
||||||
|
background: linear-gradient(135deg, #f9a825, #fdd835) !important;
|
||||||
|
color: rgba(0, 0, 0, 0.87) !important;
|
||||||
|
|
||||||
|
&::v-deep(.q-chip__content) {
|
||||||
|
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
|
||||||
|
color: rgba(0, 0, 0, 0.87) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background: linear-gradient(135deg, #f57f17, #f9a825) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Red/Negative
|
||||||
|
.c-chip.bg-red,
|
||||||
|
.c-chip.bg-negative {
|
||||||
|
background: linear-gradient(135deg, #c62828, #e53935) !important;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background: linear-gradient(135deg, #b71c1c, #c62828) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Brown
|
||||||
|
.c-chip.bg-brown {
|
||||||
|
background: linear-gradient(135deg, #5d4037, #6d4c41) !important;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background: linear-gradient(135deg, #4e342e, #5d4037) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Grey/Blue Grey
|
||||||
|
.c-chip.bg-grey,
|
||||||
|
.c-chip.bg-gray,
|
||||||
|
.c-chip.bg-blue-grey {
|
||||||
|
background: linear-gradient(135deg, #546e7a, #78909c) !important;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background: linear-gradient(135deg, #455a64, #546e7a) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========================================
|
||||||
|
// ANIMAZIONE INGRESSO
|
||||||
|
// ========================================
|
||||||
|
@keyframes chipFadeIn {
|
||||||
from {
|
from {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transform: scale(0.8) translateY(10px);
|
transform: scale(0.92) translateY(4px);
|
||||||
}
|
}
|
||||||
to {
|
to {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
@@ -254,29 +330,28 @@ $mobile-breakpoint: 768px;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.q-chip {
|
.c-chip {
|
||||||
animation: chipAppear 0.3s ease-out;
|
animation: chipFadeIn 0.25s ease-out backwards;
|
||||||
animation-fill-mode: both;
|
|
||||||
|
|
||||||
// Stagger animation per chip multipli
|
// Stagger per chip multipli
|
||||||
@for $i from 1 through 20 {
|
@for $i from 1 through 25 {
|
||||||
&:nth-child(#{$i}) {
|
&:nth-child(#{$i}) {
|
||||||
animation-delay: #{$i * 0.05}s;
|
animation-delay: #{$i * 0.04}s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========================================
|
// ========================================
|
||||||
// GLASSMORPHISM VARIANT (opzionale)
|
// RESPONSIVE TOUCH OPTIMIZATION
|
||||||
// ========================================
|
// ========================================
|
||||||
.q-chip.glass-effect {
|
@media (max-width: $mobile) {
|
||||||
background: rgba(255, 255, 255, 0.2) !important;
|
.c-chip {
|
||||||
backdrop-filter: blur(10px);
|
// Touch target più grande su mobile
|
||||||
border: 1px solid rgba(255, 255, 255, 0.3);
|
min-height: 28px;
|
||||||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
|
|
||||||
|
|
||||||
&:hover {
|
&:active {
|
||||||
background: rgba(255, 255, 255, 0.3) !important;
|
transform: scale(0.96);
|
||||||
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
|
transition-duration: 0.1s;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -63,6 +63,12 @@ export default defineComponent({
|
|||||||
required: false,
|
required: false,
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
|
size: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
default: 'sm',
|
||||||
|
validator: (value: string) => ['sm', 'md', 'lg'].includes(value),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
components: {},
|
components: {},
|
||||||
setup(props, { emit }) {
|
setup(props, { emit }) {
|
||||||
@@ -85,7 +91,7 @@ export default defineComponent({
|
|||||||
// --- MULTISELECT: itera sulle selezioni, non sulle options ---
|
// --- MULTISELECT: itera sulle selezioni, non sulle options ---
|
||||||
if (props.type === costanti.FieldType.multiselect) {
|
if (props.type === costanti.FieldType.multiselect) {
|
||||||
if (Array.isArray(myval.value) && myval.value.length) {
|
if (Array.isArray(myval.value) && myval.value.length) {
|
||||||
myval.value.forEach((recout, idx) => {
|
myval.value.forEach((recout: any, idx) => {
|
||||||
// valore "chiave" della selezione
|
// valore "chiave" della selezione
|
||||||
const value =
|
const value =
|
||||||
props.type_out === costanti.FieldType.object
|
props.type_out === costanti.FieldType.object
|
||||||
@@ -105,14 +111,14 @@ export default defineComponent({
|
|||||||
recFromOptions || (typeof recout === 'object' ? recout : null);
|
recFromOptions || (typeof recout === 'object' ? recout : null);
|
||||||
|
|
||||||
const mydata = {
|
const mydata = {
|
||||||
label: null,
|
label: '',
|
||||||
value,
|
value,
|
||||||
valbool: true,
|
valbool: true,
|
||||||
icon: '',
|
icon: baseRec?.icon || '',
|
||||||
// priorità: optcolor -> color su record -> fallback colore
|
// priorità: optcolor -> color su record -> fallback colore
|
||||||
color:
|
color:
|
||||||
(props.optcolor && baseRec?.[props.optcolor]) ||
|
|
||||||
baseRec?.color ||
|
baseRec?.color ||
|
||||||
|
(props.optcolor && baseRec?.[props.optcolor]) ||
|
||||||
tools.getColorByIndexBest(idx),
|
tools.getColorByIndexBest(idx),
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -146,17 +152,17 @@ export default defineComponent({
|
|||||||
} else if (props.type === costanti.FieldType.select) {
|
} else if (props.type === costanti.FieldType.select) {
|
||||||
// --- SELECT: itera sulle options e trova la corrispondenza ---
|
// --- SELECT: itera sulle options e trova la corrispondenza ---
|
||||||
if (Array.isArray(props.options) && props.options.length) {
|
if (Array.isArray(props.options) && props.options.length) {
|
||||||
props.options.forEach((rec, index) => {
|
props.options.forEach((rec: any, index) => {
|
||||||
if (myval.value === rec?.[props.optval]) {
|
if (myval.value === rec?.[props.optval]) {
|
||||||
const mydata = {
|
const mydata = {
|
||||||
value: myval.value,
|
value: myval.value,
|
||||||
valbool: true,
|
valbool: true,
|
||||||
icon: '',
|
icon: '',
|
||||||
color:
|
color:
|
||||||
(props.optcolor && rec?.[props.optcolor]) ||
|
|
||||||
rec?.color ||
|
rec?.color ||
|
||||||
|
(props.optcolor && rec?.[props.optcolor]) ||
|
||||||
tools.getColorByIndexBest(index),
|
tools.getColorByIndexBest(index),
|
||||||
label: null,
|
label: '',
|
||||||
};
|
};
|
||||||
|
|
||||||
if (props.opticon && rec?.[props.opticon]) mydata.icon = rec[props.opticon];
|
if (props.opticon && rec?.[props.opticon]) mydata.icon = rec[props.opticon];
|
||||||
@@ -182,23 +188,26 @@ export default defineComponent({
|
|||||||
} else {
|
} else {
|
||||||
// --- BITMASK (o altro tipo legacy): itera sulle options e verifica i bit attivi ---
|
// --- BITMASK (o altro tipo legacy): itera sulle options e verifica i bit attivi ---
|
||||||
if (Array.isArray(props.options) && props.options.length) {
|
if (Array.isArray(props.options) && props.options.length) {
|
||||||
props.options.forEach((rec, index) => {
|
props.options.forEach((rec: any, index) => {
|
||||||
const optVal = rec?.[props.optval];
|
const optVal = rec?.[props.optval];
|
||||||
if (optVal == null) return;
|
if (optVal == null) return;
|
||||||
|
|
||||||
|
|
||||||
if (tools.isBitActive(myval.value, optVal)) {
|
if (tools.isBitActive(myval.value, optVal)) {
|
||||||
const mydata = {
|
const mydata = {
|
||||||
label: t(tools.getValueByFunzOrVal(rec, props.optlab)),
|
label: t(tools.getValueByFunzOrVal(rec, props.optlab)),
|
||||||
value: optVal,
|
value: optVal,
|
||||||
valbool: true,
|
valbool: true,
|
||||||
icon: '',
|
icon: tools.getValueByFunzOrVal(rec, 'icon') || '',
|
||||||
color:
|
color:
|
||||||
|
rec.color ||
|
||||||
(props.optcolor && rec?.[props.optcolor]) ||
|
(props.optcolor && rec?.[props.optcolor]) ||
|
||||||
rec?.color ||
|
|
||||||
tools.getColorByIndexBest(index),
|
tools.getColorByIndexBest(index),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (rec[props.opticon]) {
|
||||||
if (props.opticon && rec?.[props.opticon]) mydata.icon = rec[props.opticon];
|
if (props.opticon && rec?.[props.opticon]) mydata.icon = rec[props.opticon];
|
||||||
|
}
|
||||||
|
|
||||||
myarrvalues.value.push(mydata);
|
myarrvalues.value.push(mydata);
|
||||||
}
|
}
|
||||||
@@ -215,7 +224,7 @@ export default defineComponent({
|
|||||||
label: props.rec?.[props.optlab],
|
label: props.rec?.[props.optlab],
|
||||||
value: 0,
|
value: 0,
|
||||||
valbool: true,
|
valbool: true,
|
||||||
icon: '',
|
icon: props.rec?.icon || '',
|
||||||
color: tools.getColorByIndexBest(0),
|
color: tools.getColorByIndexBest(0),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,21 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="q-mb-sm">
|
<div class="c-chiplist">
|
||||||
<!-- Etichetta / Titolo -->
|
<div v-if="label" class="c-chiplist__label">
|
||||||
<div class="text-subtitle2 text-primary text-weight-medium q-mb-xs">
|
|
||||||
{{ label }}
|
{{ label }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Chips come valori -->
|
<div class="c-chiplist__chips">
|
||||||
<div class="q-gutter-sm row wrap">
|
|
||||||
<q-chip
|
<q-chip
|
||||||
v-for="(rec, index) in myarrvalues"
|
v-for="(rec, index) in myarrvalues"
|
||||||
:key="index"
|
:key="index"
|
||||||
:dense="dense"
|
:dense="dense"
|
||||||
class="shadow-1 q-px-sm"
|
:class="['c-chip', `c-chip--${size}`]"
|
||||||
:color="rec.color || 'primary'"
|
:style="{ 'background-color': rec.color || 'var(--q-primary)' }"
|
||||||
text-color="white"
|
text-color="white"
|
||||||
:icon="rec.icon || undefined"
|
:icon="rec.icon || undefined"
|
||||||
style="border-radius: 10px;"
|
|
||||||
>
|
>
|
||||||
{{ rec.label }}
|
{{ rec.label }}
|
||||||
</q-chip>
|
</q-chip>
|
||||||
|
|||||||
@@ -580,6 +580,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-actions align="center">
|
<q-card-actions align="center">
|
||||||
|
<q-btn
|
||||||
|
outline
|
||||||
|
:label="$t('dialog.cancel')"
|
||||||
|
icon="close"
|
||||||
|
v-close-popup
|
||||||
|
></q-btn>
|
||||||
<q-btn
|
<q-btn
|
||||||
class="centeritems q-ma-lg"
|
class="centeritems q-ma-lg"
|
||||||
icon="fas fa-user-plus"
|
icon="fas fa-user-plus"
|
||||||
@@ -597,12 +603,6 @@
|
|||||||
);
|
);
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
<q-btn
|
|
||||||
outline
|
|
||||||
:label="$t('dialog.cancel')"
|
|
||||||
icon="close"
|
|
||||||
v-close-popup
|
|
||||||
></q-btn>
|
|
||||||
</q-card-actions>
|
</q-card-actions>
|
||||||
</q-card>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
|||||||
@@ -1,29 +1,3 @@
|
|||||||
// ========================================
|
|
||||||
// CMyGroup - SCSS Moderno con Gradienti
|
|
||||||
// ========================================
|
|
||||||
|
|
||||||
$primary-color: #1976d2;
|
|
||||||
$primary-light: #42a5f5;
|
|
||||||
$primary-dark: #1565c0;
|
|
||||||
$secondary-color: #26a69a;
|
|
||||||
$positive-color: #21ba45;
|
|
||||||
$negative-color: #c10015;
|
|
||||||
$info-color: #31ccec;
|
|
||||||
$warning-color: #f2c037;
|
|
||||||
|
|
||||||
@use 'sass:color';
|
|
||||||
|
|
||||||
$grey-text: #555;
|
|
||||||
$grey-light: #999;
|
|
||||||
|
|
||||||
$border-radius-sm: 8px;
|
|
||||||
$border-radius: 12px;
|
|
||||||
$transition-speed: 0.3s;
|
|
||||||
$shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
|
|
||||||
$shadow-md: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
||||||
$shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.15);
|
|
||||||
|
|
||||||
$mobile-breakpoint: 768px;
|
|
||||||
|
|
||||||
// Gradiente speciale per gruppi
|
// Gradiente speciale per gruppi
|
||||||
$gradient-group-primary: linear-gradient(135deg, $secondary-color 0%, color.adjust($secondary-color, $lightness: 15%) 100%);
|
$gradient-group-primary: linear-gradient(135deg, $secondary-color 0%, color.adjust($secondary-color, $lightness: 15%) 100%);
|
||||||
|
|||||||
@@ -1,23 +1,3 @@
|
|||||||
|
|
||||||
// ========================================
|
|
||||||
// VARIABILI
|
|
||||||
// ========================================
|
|
||||||
$primary-color: #1976d2;
|
|
||||||
$positive-color: #21ba45;
|
|
||||||
$negative-color: #c10015;
|
|
||||||
$grey-color: #666;
|
|
||||||
$grey-light: #999;
|
|
||||||
|
|
||||||
$border-radius: 10px;
|
|
||||||
$border-radius-sm: 6px;
|
|
||||||
$transition-speed: 0.3s;
|
|
||||||
|
|
||||||
$shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06);
|
|
||||||
$shadow-md: 0 2px 6px rgba(0, 0, 0, 0.08);
|
|
||||||
$shadow-hover: 0 4px 12px rgba(0, 0, 0, 0.12);
|
|
||||||
|
|
||||||
$mobile-breakpoint: 768px;
|
|
||||||
|
|
||||||
// ========================================
|
// ========================================
|
||||||
// WRAPPER CARD - ALTERNATING COLORS
|
// WRAPPER CARD - ALTERNATING COLORS
|
||||||
// ========================================
|
// ========================================
|
||||||
@@ -269,10 +249,16 @@ $mobile-breakpoint: 768px;
|
|||||||
|
|
||||||
.tags-row {
|
.tags-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 3px;
|
gap: 3px;
|
||||||
margin-bottom: 3px;
|
margin-bottom: 3px;
|
||||||
align-items: center;
|
|
||||||
|
.status-row {
|
||||||
|
display: flex;
|
||||||
|
gap: $s-xs;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
@media (max-width: $mobile-breakpoint) {
|
@media (max-width: $mobile-breakpoint) {
|
||||||
gap: 2px;
|
gap: 2px;
|
||||||
@@ -329,7 +315,8 @@ $mobile-breakpoint: 768px;
|
|||||||
|
|
||||||
.description-text {
|
.description-text {
|
||||||
font-size: 0.9375rem;
|
font-size: 0.9375rem;
|
||||||
color: #333;
|
color: #2c3e50;
|
||||||
|
font-weight: 500;
|
||||||
line-height: 1.4;
|
line-height: 1.4;
|
||||||
margin: 3px 0;
|
margin: 3px 0;
|
||||||
word-break: break-word;
|
word-break: break-word;
|
||||||
@@ -345,54 +332,84 @@ $mobile-breakpoint: 768px;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ========================================
|
||||||
|
// PREFERENCES ROW (dopo descrizione)
|
||||||
|
// ========================================
|
||||||
|
.preferences-row {
|
||||||
|
margin: 8px 0 6px 0;
|
||||||
|
|
||||||
|
@media (max-width: $mobile-breakpoint) {
|
||||||
|
margin: 6px 0 4px 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.preferences-icons-container {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 6px;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
@media (max-width: $mobile-breakpoint) {
|
||||||
|
gap: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.preference-icon-avatar {
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
transform: translateY(-2px) scale(1.08);
|
||||||
|
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: $mobile-breakpoint) {
|
||||||
|
width: 28px !important;
|
||||||
|
height: 28px !important;
|
||||||
|
|
||||||
|
.q-icon {
|
||||||
|
font-size: 16px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.user-stats-row {
|
.user-stats-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: flex-start;
|
||||||
margin: 3px 0;
|
gap: $s-sm;
|
||||||
font-size: 0.8125rem;
|
flex-wrap: wrap;
|
||||||
color: $grey-color;
|
|
||||||
|
|
||||||
@media (max-width: $mobile-breakpoint) {
|
.user-name {
|
||||||
font-size: 0.75rem;
|
flex: 1 1 auto;
|
||||||
margin: 2px 0;
|
min-width: 0;
|
||||||
}
|
color: $mainColor;
|
||||||
}
|
|
||||||
|
|
||||||
.user-name {
|
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
font-style: italic;
|
font-size: 0.9rem;
|
||||||
color: #333;
|
|
||||||
margin-right: 6px;
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
|
|
||||||
@media (max-width: $mobile-breakpoint) {
|
@media (max-width: $mobile) {
|
||||||
margin-right: 5px;
|
font-size: 0.85rem;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.stats-container {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 5px;
|
|
||||||
flex-shrink: 0;
|
|
||||||
white-space: nowrap;
|
|
||||||
|
|
||||||
@media (max-width: $mobile-breakpoint) {
|
|
||||||
gap: 4px;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.stat-item {
|
.stats-container {
|
||||||
display: inline-flex;
|
flex: 0 0 auto;
|
||||||
align-items: center;
|
white-space: nowrap;
|
||||||
gap: 2px;
|
margin-left: auto;
|
||||||
font-weight: 500;
|
font-size: 0.85rem;
|
||||||
|
|
||||||
|
@media (max-width: $mobile) {
|
||||||
|
font-size: 0.75rem;
|
||||||
|
|
||||||
|
.stat-item {
|
||||||
|
margin-left: 4px;
|
||||||
|
|
||||||
.q-icon {
|
.q-icon {
|
||||||
vertical-align: middle;
|
font-size: 12px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -418,15 +435,14 @@ $mobile-breakpoint: 768px;
|
|||||||
}
|
}
|
||||||
|
|
||||||
.cities-text {
|
.cities-text {
|
||||||
font-size: 0.8125rem;
|
color: rgba(44, 62, 80, 0.7); // Grigio bluastro più caldo del grigio puro
|
||||||
color: $grey-light;
|
font-size: 0.85rem;
|
||||||
|
display: flex;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
margin-top: 2px;
|
gap: 4px;
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
|
|
||||||
@media (max-width: $mobile-breakpoint) {
|
i {
|
||||||
font-size: 0.75rem;
|
color: rgba($mainColor, 0.6); // Icona location con colore primario attenuato
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -527,3 +543,26 @@ $mobile-breakpoint: 768px;
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
.categories-dialog {
|
||||||
|
.dialog-header {
|
||||||
|
padding: 16px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dialog-content {
|
||||||
|
padding: 20px;
|
||||||
|
max-height: 60vh;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.categories-grid {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.category-chip {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
padding: 8px 12px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -55,18 +55,23 @@ export default defineComponent({
|
|||||||
const $router = useRouter();
|
const $router = useRouter();
|
||||||
|
|
||||||
const myrec = ref(<any>null);
|
const myrec = ref(<any>null);
|
||||||
|
const showPreferencesDialog = ref(false);
|
||||||
|
|
||||||
const visupage = ref(false);
|
const visupage = ref(false);
|
||||||
const disabilita = computed(() => {
|
const disabilita = computed(() => {
|
||||||
return props.table === shared_consts.TABLES_MYBACHECAS;
|
return props.table === shared_consts.TABLES_MYBACHECAS;
|
||||||
});
|
});
|
||||||
const arrSubSector = computed(() => {
|
const arrSubSector = computed(() => {
|
||||||
return tools.getArrSubSector(props.table, myrec.value)
|
return tools.getArrSubSector(props.table, myrec.value);
|
||||||
});
|
});
|
||||||
const arrSector = computed(() => {
|
const arrSector = computed(() => {
|
||||||
return tools.getArrSector(props.table, myrec.value)
|
return tools.getArrSector(props.table, myrec.value);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const getColorSubSector = computed(() => {
|
||||||
|
return arrSector.value && arrSector.value.length == 1 ? arrSector.value[0].color : 'primary'
|
||||||
|
})
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => props.prop_myrec,
|
() => props.prop_myrec,
|
||||||
(newval, oldval) => {
|
(newval, oldval) => {
|
||||||
@@ -132,7 +137,12 @@ export default defineComponent({
|
|||||||
function computedWidth() {
|
function computedWidth() {
|
||||||
//const width = tools.getwidth($q) - 20;
|
//const width = tools.getwidth($q) - 20;
|
||||||
//return `${Math.min(width, 600)}px`; // Limita la larghezza massima a 600px
|
//return `${Math.min(width, 600)}px`; // Limita la larghezza massima a 600px
|
||||||
return '100%'; // Rimuovi la limitazione a 600px
|
|
||||||
|
const width = tools.getwidth($q);
|
||||||
|
// Limita la larghezza per evitare overflow
|
||||||
|
return `${Math.min(width - 40, 600)}px`;
|
||||||
|
|
||||||
|
//return '100%'; // Rimuovi la limitazione a 600px
|
||||||
}
|
}
|
||||||
|
|
||||||
function computedEventImageHeight() {
|
function computedEventImageHeight() {
|
||||||
@@ -176,6 +186,8 @@ export default defineComponent({
|
|||||||
computedEventImageHeight,
|
computedEventImageHeight,
|
||||||
arrSubSector,
|
arrSubSector,
|
||||||
arrSector,
|
arrSector,
|
||||||
|
getColorSubSector,
|
||||||
|
showPreferencesDialog,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -121,7 +121,6 @@
|
|||||||
/>
|
/>
|
||||||
</q-avatar>
|
</q-avatar>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
|
|
||||||
<q-item-section
|
<q-item-section
|
||||||
v-else-if="!myrec.organisedBy && table !== shared_consts.TABLES_MYBACHECAS"
|
v-else-if="!myrec.organisedBy && table !== shared_consts.TABLES_MYBACHECAS"
|
||||||
avatar
|
avatar
|
||||||
@@ -155,20 +154,21 @@
|
|||||||
<q-item-label class="tags-row">
|
<q-item-label class="tags-row">
|
||||||
<div class="category-hierarchy">
|
<div class="category-hierarchy">
|
||||||
<q-chip
|
<q-chip
|
||||||
v-for="(rec, ind) of arrSector"
|
v-for="(recSect, ind) of arrSector"
|
||||||
:key="'sec-' + ind"
|
:key="'sec-' + ind"
|
||||||
class="tag-chip sector"
|
class="tag-chip sector"
|
||||||
:style="{
|
:style="{
|
||||||
background: `linear-gradient(135deg, ${rec.color}, ${rec.color})`,
|
background: `linear-gradient(135deg, ${recSect.color}, ${recSect.color})`,
|
||||||
}"
|
}"
|
||||||
|
:color="recSect.color"
|
||||||
>
|
>
|
||||||
<q-icon
|
<q-icon
|
||||||
v-if="rec.icon"
|
v-if="recSect.icon"
|
||||||
:name="rec.icon"
|
:name="recSect.icon"
|
||||||
size="xs"
|
size="xs"
|
||||||
class="q-mr-xs"
|
class="q-mr-xs"
|
||||||
/>
|
/>
|
||||||
{{ rec.descr }}
|
{{ recSect.descr }}
|
||||||
</q-chip>
|
</q-chip>
|
||||||
<q-icon
|
<q-icon
|
||||||
v-if="arrSubSector.length > 0"
|
v-if="arrSubSector.length > 0"
|
||||||
@@ -181,9 +181,10 @@
|
|||||||
:key="'sub-' + ind"
|
:key="'sub-' + ind"
|
||||||
class="tag-chip subsector"
|
class="tag-chip subsector"
|
||||||
:style="{
|
:style="{
|
||||||
background: `linear-gradient(135deg, ${rec.color}, ${rec.color})`,
|
background: `linear-gradient(135deg, ${getColorSubSector}, ${getColorSubSector})`,
|
||||||
opacity: 0.8,
|
opacity: 0.8,
|
||||||
}"
|
}"
|
||||||
|
:color="getColorSubSector"
|
||||||
>
|
>
|
||||||
<q-icon
|
<q-icon
|
||||||
v-if="rec.icon"
|
v-if="rec.icon"
|
||||||
@@ -194,7 +195,8 @@
|
|||||||
{{ rec.descr }}
|
{{ rec.descr }}
|
||||||
</q-chip>
|
</q-chip>
|
||||||
</div>
|
</div>
|
||||||
<template v-for="(recstatus, index) in myrec.idStatusSkill">
|
<div class="status-row">
|
||||||
|
<div v-for="(recstatus, index) in myrec.idStatusSkill">
|
||||||
<q-badge
|
<q-badge
|
||||||
v-if="
|
v-if="
|
||||||
recstatus === shared_consts.STATUSSKILL_ONLINE ||
|
recstatus === shared_consts.STATUSSKILL_ONLINE ||
|
||||||
@@ -210,7 +212,8 @@
|
|||||||
/>
|
/>
|
||||||
{{ globalStore.getStatusSkillById(recstatus) }}
|
{{ globalStore.getStatusSkillById(recstatus) }}
|
||||||
</q-badge>
|
</q-badge>
|
||||||
</template>
|
</div>
|
||||||
|
</div>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
|
|
||||||
<!-- Descrizione -->
|
<!-- Descrizione -->
|
||||||
@@ -225,6 +228,30 @@
|
|||||||
{{ myrec.descr }}
|
{{ myrec.descr }}
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
|
|
||||||
|
<!-- Preferences (solo per MYHOSPS) -->
|
||||||
|
<q-item-label
|
||||||
|
v-if="table === shared_consts.TABLES_MYHOSPS && myrec.preferences && myrec.preferences.length > 0"
|
||||||
|
class="preferences-row"
|
||||||
|
>
|
||||||
|
<div class="preferences-icons-container">
|
||||||
|
<q-avatar
|
||||||
|
v-for="(prefId, ind) of myrec.preferences"
|
||||||
|
:key="ind"
|
||||||
|
size="32px"
|
||||||
|
:style="`background-color: ${tools.getPreferenceById(prefId)?.color || 'grey'}; cursor: pointer;`"
|
||||||
|
class="preference-icon-avatar"
|
||||||
|
@click.stop="showPreferencesDialog = true"
|
||||||
|
>
|
||||||
|
<q-icon
|
||||||
|
:name="tools.getPreferenceById(prefId)?.icon || 'help'"
|
||||||
|
size="18px"
|
||||||
|
color="white"
|
||||||
|
/>
|
||||||
|
<q-tooltip>{{ tools.getPreferenceById(prefId)?.label }}</q-tooltip>
|
||||||
|
</q-avatar>
|
||||||
|
</div>
|
||||||
|
</q-item-label>
|
||||||
|
|
||||||
<!-- Info Utente e Stats -->
|
<!-- Info Utente e Stats -->
|
||||||
<q-item-label class="user-stats-row">
|
<q-item-label class="user-stats-row">
|
||||||
<div class="user-name">
|
<div class="user-name">
|
||||||
@@ -364,6 +391,49 @@
|
|||||||
</q-item>
|
</q-item>
|
||||||
<q-separator />
|
<q-separator />
|
||||||
</div>
|
</div>
|
||||||
|
<!-- Categories Dialog -->
|
||||||
|
<q-dialog v-model="showPreferencesDialog">
|
||||||
|
<q-card
|
||||||
|
class="categories-dialog"
|
||||||
|
:style="{ minWidth: $q.screen.lt.sm ? '90vw' : '400px' }"
|
||||||
|
>
|
||||||
|
<q-card-section class="dialog-header">
|
||||||
|
<div class="text-h6">Categorie</div>
|
||||||
|
</q-card-section>
|
||||||
|
|
||||||
|
<q-separator />
|
||||||
|
|
||||||
|
<q-card-section class="dialog-content">
|
||||||
|
<div class="categories-grid">
|
||||||
|
|
||||||
|
<q-chip
|
||||||
|
v-for="(rec, ind) of myrec.preferences"
|
||||||
|
:key="ind"
|
||||||
|
class="category-chip shadow-3"
|
||||||
|
:style="`background-color: ${tools.getPreferenceById(rec).color}; color: white;`"
|
||||||
|
>
|
||||||
|
<q-icon
|
||||||
|
:name="tools.getPreferenceById(rec).icon"
|
||||||
|
left
|
||||||
|
size="18px"
|
||||||
|
/>
|
||||||
|
{{ tools.getPreferenceById(rec).label }}
|
||||||
|
</q-chip>
|
||||||
|
</div>
|
||||||
|
</q-card-section>
|
||||||
|
|
||||||
|
<q-separator />
|
||||||
|
|
||||||
|
<q-card-actions align="right">
|
||||||
|
<q-btn
|
||||||
|
flat
|
||||||
|
label="Chiudi"
|
||||||
|
color="primary"
|
||||||
|
v-close-popup
|
||||||
|
/>
|
||||||
|
</q-card-actions>
|
||||||
|
</q-card>
|
||||||
|
</q-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" src="./CMyRecCard.ts"></script>
|
<script lang="ts" src="./CMyRecCard.ts"></script>
|
||||||
|
|||||||
@@ -45,13 +45,13 @@
|
|||||||
>
|
>
|
||||||
Clicca qui per cercarlo su GM
|
Clicca qui per cercarlo su GM
|
||||||
</span>
|
</span>
|
||||||
<span v-else>
|
<span v-else> Testo non trovato: '{{ mystr }}' </span>
|
||||||
Testo non trovato: '{{ mystr }}'
|
|
||||||
</span>
|
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
<q-item v-else>
|
<q-item v-else>
|
||||||
<q-item-section class="text-grey"> Digita il testo da cercare </q-item-section>
|
<q-item-section class="text-grey">
|
||||||
|
Digita il testo da cercare
|
||||||
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -80,7 +80,9 @@
|
|||||||
<template v-slot:option="{ itemProps, opt, selected, toggleOption }">
|
<template v-slot:option="{ itemProps, opt, selected, toggleOption }">
|
||||||
<q-item v-bind="itemProps">
|
<q-item v-bind="itemProps">
|
||||||
<q-item-section>
|
<q-item-section>
|
||||||
<q-item-label>{{ opt[fieldsTable.getLabelByTable(tablesel)] }}</q-item-label>
|
<q-item-label>{{
|
||||||
|
opt[fieldsTable.getLabelByTable(tablesel)]
|
||||||
|
}}</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section side>
|
<q-item-section side>
|
||||||
<q-toggle
|
<q-toggle
|
||||||
@@ -137,20 +139,19 @@
|
|||||||
>
|
>
|
||||||
Clicca qui per cercarlo su GM
|
Clicca qui per cercarlo su GM
|
||||||
</span>
|
</span>
|
||||||
<span v-else>
|
<span v-else> Testo non trovato: '{{ mystr }}' </span>
|
||||||
Testo non trovato: '{{ mystr }}'
|
|
||||||
</span>
|
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
<q-item v-else>
|
<q-item v-else>
|
||||||
<q-item-section class="text-grey"> Digita il testo da cercare </q-item-section>
|
<q-item-section class="text-grey">
|
||||||
|
Digita il testo da cercare
|
||||||
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:option="scope">
|
<template v-slot:option="scope">
|
||||||
<q-item v-bind="scope.itemProps">
|
<q-item v-bind="scope.itemProps">
|
||||||
<q-item-section :class="applyLabelColorBasedOnProductStatus(scope.opt)">
|
<q-item-section :class="applyLabelColorBasedOnProductStatus(scope.opt)">
|
||||||
<q-item-label >
|
<q-item-label>
|
||||||
|
|
||||||
{{ tools.getValueByFunzOrVal(scope.opt, optlab) }}
|
{{ tools.getValueByFunzOrVal(scope.opt, optlab) }}
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
@@ -183,8 +184,6 @@
|
|||||||
:option-label="optlab"
|
:option-label="optlab"
|
||||||
:dense="dense"
|
:dense="dense"
|
||||||
>
|
>
|
||||||
<!--options-selected-class="text-deep-blue"-->
|
|
||||||
|
|
||||||
<template
|
<template
|
||||||
v-if="getIcon()"
|
v-if="getIcon()"
|
||||||
v-slot:prepend
|
v-slot:prepend
|
||||||
@@ -198,15 +197,13 @@
|
|||||||
dense
|
dense
|
||||||
@remove="scope.removeAtIndex(scope.index)"
|
@remove="scope.removeAtIndex(scope.index)"
|
||||||
v-if="checkIfShowRec(scope.opt)"
|
v-if="checkIfShowRec(scope.opt)"
|
||||||
:color="$q.dark.isActive ? `black` : `white`"
|
:style="`background-color: ${scope.opt.color || ($q.dark.isActive ? `black` : `white`) }`"
|
||||||
|
:text-color="
|
||||||
|
scope.opt.color ? 'white' : $q.dark.isActive ? `white` : `black`
|
||||||
|
"
|
||||||
|
:icon="scope.opt.icon || undefined"
|
||||||
class="q-my-none q-ml-xs q-mr-none"
|
class="q-my-none q-ml-xs q-mr-none"
|
||||||
>
|
>
|
||||||
<q-avatar
|
|
||||||
color="primary"
|
|
||||||
text-color="white"
|
|
||||||
:icon="scope.opt.icon ? scope.opt.icon : ''"
|
|
||||||
size="12px"
|
|
||||||
/>
|
|
||||||
{{ tools.getValueByFunzOrVal(scope.opt, optlab) }}
|
{{ tools.getValueByFunzOrVal(scope.opt, optlab) }}
|
||||||
</q-chip>
|
</q-chip>
|
||||||
</div>
|
</div>
|
||||||
@@ -216,6 +213,12 @@
|
|||||||
v-slot:option="{ itemProps, opt, selected, toggleOption }"
|
v-slot:option="{ itemProps, opt, selected, toggleOption }"
|
||||||
>
|
>
|
||||||
<q-item v-bind="itemProps">
|
<q-item v-bind="itemProps">
|
||||||
|
<q-item-section avatar>
|
||||||
|
<q-icon
|
||||||
|
:name="opt.icon || ''"
|
||||||
|
:style="`background-color: ${opt.color || 'var(--q-primary)'}`"
|
||||||
|
/>
|
||||||
|
</q-item-section>
|
||||||
<q-item-section>
|
<q-item-section>
|
||||||
<q-item-label>{{ tools.getValueByFunzOrVal(opt, optlab) }}</q-item-label>
|
<q-item-label>{{ tools.getValueByFunzOrVal(opt, optlab) }}</q-item-label>
|
||||||
<q-item-label
|
<q-item-label
|
||||||
@@ -270,7 +273,9 @@
|
|||||||
<q-icon :name="scope.opt.icon ? scope.opt.icon : ''" />
|
<q-icon :name="scope.opt.icon ? scope.opt.icon : ''" />
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section>
|
<q-item-section>
|
||||||
<q-item-label>{{ tools.getValueByFunzOrVal(scope.opt, optlab) }}</q-item-label>
|
<q-item-label>{{
|
||||||
|
tools.getValueByFunzOrVal(scope.opt, optlab)
|
||||||
|
}}</q-item-label>
|
||||||
<q-item-label
|
<q-item-label
|
||||||
v-if="'hint' in scope.opt"
|
v-if="'hint' in scope.opt"
|
||||||
class="hint"
|
class="hint"
|
||||||
|
|||||||
@@ -1,30 +1,3 @@
|
|||||||
// ========================================
|
|
||||||
// CMyUser - SCSS Moderno con Gradienti
|
|
||||||
// ========================================
|
|
||||||
|
|
||||||
$primary-color: #1976d2;
|
|
||||||
$primary-light: #42a5f5;
|
|
||||||
$primary-dark: #1565c0;
|
|
||||||
$secondary-color: #26a69a;
|
|
||||||
$positive-color: #21ba45;
|
|
||||||
$negative-color: #c10015;
|
|
||||||
$info-color: #31ccec;
|
|
||||||
$warning-color: #f2c037;
|
|
||||||
|
|
||||||
@use 'sass:color';
|
|
||||||
|
|
||||||
$grey-text: #555;
|
|
||||||
$grey-light: #999;
|
|
||||||
|
|
||||||
$border-radius-sm: 8px;
|
|
||||||
$border-radius: 12px;
|
|
||||||
$transition-speed: 0.3s;
|
|
||||||
$shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
|
|
||||||
$shadow-md: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
||||||
$shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.15);
|
|
||||||
|
|
||||||
$mobile-breakpoint: 768px;
|
|
||||||
|
|
||||||
// ========================================
|
// ========================================
|
||||||
// Q-ITEM CONTAINER (con gradiente)
|
// Q-ITEM CONTAINER (con gradiente)
|
||||||
// ========================================
|
// ========================================
|
||||||
|
|||||||
@@ -1,24 +1,3 @@
|
|||||||
// ========================================
|
|
||||||
// VARIABILI (Sincronizzate con CSignUp)
|
|
||||||
// ========================================
|
|
||||||
$primary-color: #1976d2;
|
|
||||||
$primary-light: #42a5f5;
|
|
||||||
$primary-dark: #1565c0;
|
|
||||||
$accent-color: #26a69a;
|
|
||||||
$positive-color: #21ba45;
|
|
||||||
$negative-color: #c10015;
|
|
||||||
$info-color: #31ccec;
|
|
||||||
|
|
||||||
$border-radius: 16px;
|
|
||||||
$border-radius-sm: 12px;
|
|
||||||
$border-radius-lg: 24px;
|
|
||||||
|
|
||||||
$transition-speed: 0.3s;
|
|
||||||
$shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
|
|
||||||
$shadow-md: 0 4px 16px rgba(0, 0, 0, 0.12);
|
|
||||||
$shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.16);
|
|
||||||
|
|
||||||
$mobile-breakpoint: 768px;
|
|
||||||
|
|
||||||
// ========================================
|
// ========================================
|
||||||
// CONTAINER PRINCIPALE
|
// CONTAINER PRINCIPALE
|
||||||
|
|||||||
@@ -1,24 +1,3 @@
|
|||||||
// ========================================
|
|
||||||
// VARIABILI (Sincronizzate con CSignUp)
|
|
||||||
// ========================================
|
|
||||||
$primary-color: #1976d2;
|
|
||||||
$primary-light: #42a5f5;
|
|
||||||
$primary-dark: #1565c0;
|
|
||||||
$accent-color: #26a69a;
|
|
||||||
$positive-color: #21ba45;
|
|
||||||
$negative-color: #c10015;
|
|
||||||
|
|
||||||
$border-radius: 16px;
|
|
||||||
$border-radius-sm: 12px;
|
|
||||||
$border-radius-lg: 24px;
|
|
||||||
|
|
||||||
$transition-speed: 0.3s;
|
|
||||||
$shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
|
|
||||||
$shadow-md: 0 4px 16px rgba(0, 0, 0, 0.12);
|
|
||||||
$shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.16);
|
|
||||||
|
|
||||||
$mobile-breakpoint: 768px;
|
|
||||||
|
|
||||||
// ========================================
|
// ========================================
|
||||||
// CONTAINER PRINCIPALE
|
// CONTAINER PRINCIPALE
|
||||||
// ========================================
|
// ========================================
|
||||||
|
|||||||
@@ -1,27 +1,3 @@
|
|||||||
// ========================================
|
|
||||||
// VARIABILI E CONFIGURAZIONE
|
|
||||||
// ========================================
|
|
||||||
$primary-color: #1976d2;
|
|
||||||
$primary-light: #42a5f5;
|
|
||||||
$primary-dark: #1565c0;
|
|
||||||
$accent-color: #26a69a;
|
|
||||||
$positive-color: #21ba45;
|
|
||||||
$negative-color: #c10015;
|
|
||||||
$warning-color: #f2c037;
|
|
||||||
|
|
||||||
@use 'sass:color';
|
|
||||||
|
|
||||||
$border-radius: 16px;
|
|
||||||
$border-radius-sm: 12px;
|
|
||||||
$border-radius-lg: 24px;
|
|
||||||
|
|
||||||
$transition-speed: 0.3s;
|
|
||||||
$shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
|
|
||||||
$shadow-md: 0 4px 16px rgba(0, 0, 0, 0.12);
|
|
||||||
$shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.16);
|
|
||||||
|
|
||||||
$mobile-breakpoint: 768px;
|
|
||||||
$mobile-footer-height: 80px;
|
|
||||||
|
|
||||||
// ========================================
|
// ========================================
|
||||||
// CONTAINER PRINCIPALE
|
// CONTAINER PRINCIPALE
|
||||||
|
|||||||
@@ -6,6 +6,28 @@
|
|||||||
$mainStyle: #4975BA;
|
$mainStyle: #4975BA;
|
||||||
$mainColor: #3c4858;
|
$mainColor: #3c4858;
|
||||||
|
|
||||||
|
// Variables
|
||||||
|
$primary-color: #1976d2;
|
||||||
|
$primary-light: #42a5f5;
|
||||||
|
$primary-dark: #1565c0;
|
||||||
|
$accent-color: #26a69a;
|
||||||
|
|
||||||
|
$secondary-color: #26a69a;
|
||||||
|
$positive-color: #21ba45;
|
||||||
|
$negative-color: #c10015;
|
||||||
|
$success-color: #21ba45;
|
||||||
|
$warning-color: #f2c037;
|
||||||
|
$info-color: #31ccec;
|
||||||
|
$orange-color: #ff9800;
|
||||||
|
$card-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
|
||||||
|
$card-shadow-hover: 0 4px 20px rgba(0, 0, 0, 0.12);
|
||||||
|
$border-radius: 16px;
|
||||||
|
$transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
|
|
||||||
|
$grey-text: #555;
|
||||||
|
$grey-color: #666;
|
||||||
|
$grey-light: #999;
|
||||||
|
|
||||||
// Gialli
|
// Gialli
|
||||||
$yellow1: #f8ab1c;
|
$yellow1: #f8ab1c;
|
||||||
$yellow2: rgb(221, 144, 35);
|
$yellow2: rgb(221, 144, 35);
|
||||||
@@ -65,6 +87,10 @@ $gradient-red: linear-gradient(135deg, #f56565 0%, #ed64a6 100%);
|
|||||||
$gradient-lime: linear-gradient(135deg, #84cc16 0%, #10b981 100%);
|
$gradient-lime: linear-gradient(135deg, #84cc16 0%, #10b981 100%);
|
||||||
$gradient-teal: linear-gradient(135deg, #14b8a6 0%, #06b6d4 100%);
|
$gradient-teal: linear-gradient(135deg, #14b8a6 0%, #06b6d4 100%);
|
||||||
|
|
||||||
|
$gradient-card-light: linear-gradient(135deg, #fdfbfb 0%, #ebedee 100%);
|
||||||
|
$gradient-card-white: linear-gradient(to bottom, #ffffff 0%, #f8f9fa 100%);
|
||||||
|
$gradient-hover: linear-gradient(135deg, rgba(102, 126, 234, 0.05) 0%, rgba(118, 75, 162, 0.05) 100%);
|
||||||
|
|
||||||
|
|
||||||
// ==========================================
|
// ==========================================
|
||||||
// SCALA GRIGI - Stile RISO pulito
|
// SCALA GRIGI - Stile RISO pulito
|
||||||
@@ -116,6 +142,23 @@ $desktop: "(min-width: 1001px)";
|
|||||||
$tablet: "(min-width: 601px) and (max-width: 1000px)";
|
$tablet: "(min-width: 601px) and (max-width: 1000px)";
|
||||||
$mobile: "(max-width: 600px)";
|
$mobile: "(max-width: 600px)";
|
||||||
|
|
||||||
|
$border-radius: 16px;
|
||||||
|
$border-radius-sm: 12px;
|
||||||
|
$border-radius-lg: 24px;
|
||||||
|
|
||||||
|
$transition-speed: 0.3s;
|
||||||
|
$shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
|
||||||
|
$shadow-md: 0 4px 16px rgba(0, 0, 0, 0.12);
|
||||||
|
$shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.16);
|
||||||
|
$shadow-hover: 0 4px 12px rgba(0, 0, 0, 0.12);
|
||||||
|
|
||||||
|
|
||||||
|
$mobile-breakpoint: 768px;
|
||||||
|
$mobile-footer-height: 80px;
|
||||||
|
$small-breakpoint: 600px;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ==========================================
|
// ==========================================
|
||||||
// DIMENSIONI HEADER - Più compatto
|
// DIMENSIONI HEADER - Più compatto
|
||||||
// ==========================================
|
// ==========================================
|
||||||
|
|||||||
@@ -562,10 +562,12 @@ export interface IGlobalState {
|
|||||||
adtypegoods: IAdType[],
|
adtypegoods: IAdType[],
|
||||||
skills: ISkill[],
|
skills: ISkill[],
|
||||||
goods: IGood[],
|
goods: IGood[],
|
||||||
|
bachecas: IBacheca[],
|
||||||
// subSkills: ISubSkill[],
|
// subSkills: ISubSkill[],
|
||||||
statusSkills: IStatusSkill[],
|
statusSkills: IStatusSkill[],
|
||||||
sectors: ISector[],
|
sectors: ISector[],
|
||||||
sectorgoods: ISectorGood[],
|
sectorgoods: ISectorGood[],
|
||||||
|
sectorbachecas: ISectorBacheca[],
|
||||||
catgrps: ICatGrp[],
|
catgrps: ICatGrp[],
|
||||||
catAI: ICatAI[],
|
catAI: ICatAI[],
|
||||||
queryAIList: IQueryAI[],
|
queryAIList: IQueryAI[],
|
||||||
@@ -1237,6 +1239,13 @@ export interface IGood {
|
|||||||
icon?: string
|
icon?: string
|
||||||
img?: string
|
img?: string
|
||||||
}
|
}
|
||||||
|
export interface IBacheca {
|
||||||
|
_id: number
|
||||||
|
descr: string
|
||||||
|
idSectorBacheca: number[]
|
||||||
|
icon?: string
|
||||||
|
img?: string
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
export interface ISubSkill {
|
export interface ISubSkill {
|
||||||
@@ -1278,6 +1287,15 @@ export interface ISectorGood {
|
|||||||
color: string
|
color: string
|
||||||
theme: string
|
theme: string
|
||||||
}
|
}
|
||||||
|
export interface ISectorBacheca {
|
||||||
|
_id: number
|
||||||
|
descr: string
|
||||||
|
idSectorBacheca?: number
|
||||||
|
icon?: string
|
||||||
|
img?: string
|
||||||
|
color: string
|
||||||
|
theme: string
|
||||||
|
}
|
||||||
|
|
||||||
export interface ICatGrp {
|
export interface ICatGrp {
|
||||||
_id: number
|
_id: number
|
||||||
@@ -1348,7 +1366,7 @@ export interface IMyMain {
|
|||||||
|
|
||||||
export interface IMyGoods extends IMyMain {
|
export interface IMyGoods extends IMyMain {
|
||||||
_id: string
|
_id: string
|
||||||
idSector: number
|
idSectorGood: number
|
||||||
idSkill: number
|
idSkill: number
|
||||||
idShipping: number[]
|
idShipping: number[]
|
||||||
idStatusSkill: number[]
|
idStatusSkill: number[]
|
||||||
@@ -1369,8 +1387,10 @@ export interface IMyGoods extends IMyMain {
|
|||||||
|
|
||||||
export interface IMyBacheca extends IMyMain {
|
export interface IMyBacheca extends IMyMain {
|
||||||
_id: string
|
_id: string
|
||||||
idSector: number
|
//idSector: number
|
||||||
idSkill: number
|
//idSkill: number
|
||||||
|
idSectorBacheca: number
|
||||||
|
idBacheca: number
|
||||||
// idSubSkill: number[]
|
// idSubSkill: number[]
|
||||||
idStatusSkill: number[]
|
idStatusSkill: number[]
|
||||||
idContribType: string[]
|
idContribType: string[]
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
const arrSector = ref(<any[]>[])
|
const arrSector = ref(<any[]>[])
|
||||||
const arrSectorGood = ref(<any[]>[])
|
const arrSectorGood = ref(<any[]>[])
|
||||||
|
const arrSectorBacheca = ref(<any[]>[])
|
||||||
const arrSkill = ref(<any[]>[])
|
const arrSkill = ref(<any[]>[])
|
||||||
const arrGood = ref(<any[]>[])
|
const arrGood = ref(<any[]>[])
|
||||||
|
|
||||||
@@ -58,6 +59,7 @@ export default defineComponent({
|
|||||||
if (!caricaDatiToggle.value) {
|
if (!caricaDatiToggle.value) {
|
||||||
arrSector.value = []
|
arrSector.value = []
|
||||||
arrSectorGood.value = []
|
arrSectorGood.value = []
|
||||||
|
arrSectorBacheca.value = []
|
||||||
arrSkill.value = []
|
arrSkill.value = []
|
||||||
arrGood.value = []
|
arrGood.value = []
|
||||||
|
|
||||||
@@ -102,6 +104,11 @@ export default defineComponent({
|
|||||||
arrSectorGood.value = data.rows
|
arrSectorGood.value = data.rows
|
||||||
})
|
})
|
||||||
|
|
||||||
|
params.table = 'sectorbachecas'
|
||||||
|
globalStore.loadTable(params).then((data) => {
|
||||||
|
arrSectorBacheca.value = data.rows
|
||||||
|
})
|
||||||
|
|
||||||
params.table = 'skills'
|
params.table = 'skills'
|
||||||
globalStore.loadTable(params).then((data) => {
|
globalStore.loadTable(params).then((data) => {
|
||||||
arrSkill.value = data.rows
|
arrSkill.value = data.rows
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
const arrSector = ref(<any[]>[])
|
const arrSector = ref(<any[]>[])
|
||||||
const arrSectorGood = ref(<any[]>[])
|
const arrSectorGood = ref(<any[]>[])
|
||||||
|
const arrSectorBacheca = ref(<any[]>[])
|
||||||
const arrSkill = ref(<any[]>[])
|
const arrSkill = ref(<any[]>[])
|
||||||
const arrGood = ref(<any[]>[])
|
const arrGood = ref(<any[]>[])
|
||||||
|
|
||||||
@@ -98,6 +99,7 @@ export default defineComponent({
|
|||||||
if (!caricaDatiToggle.value) {
|
if (!caricaDatiToggle.value) {
|
||||||
arrSector.value = []
|
arrSector.value = []
|
||||||
arrSectorGood.value = []
|
arrSectorGood.value = []
|
||||||
|
arrSectorBacheca.value = []
|
||||||
arrSkill.value = []
|
arrSkill.value = []
|
||||||
arrGood.value = []
|
arrGood.value = []
|
||||||
|
|
||||||
@@ -142,6 +144,11 @@ export default defineComponent({
|
|||||||
arrSectorGood.value = data.rows
|
arrSectorGood.value = data.rows
|
||||||
})
|
})
|
||||||
|
|
||||||
|
params.table = 'sectorbachecas'
|
||||||
|
globalStore.loadTable(params).then((data) => {
|
||||||
|
arrSectorBacheca.value = data.rows
|
||||||
|
})
|
||||||
|
|
||||||
params.table = 'skills'
|
params.table = 'skills'
|
||||||
globalStore.loadTable(params).then((data) => {
|
globalStore.loadTable(params).then((data) => {
|
||||||
arrSkill.value = data.rows
|
arrSkill.value = data.rows
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// src/services/SyncService.js
|
// src/services/SyncService.js
|
||||||
import syncIDB from './idb'; // Usa il wrapper sopra
|
import syncIDB from './idb'; // Usa il wrapper sopra
|
||||||
import Api from './Api';
|
import { Api } from '@api';
|
||||||
|
|
||||||
class SyncService {
|
class SyncService {
|
||||||
constructor() {
|
constructor() {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// src/services/idb.js (nuovo, usa storage.js esistente)
|
// src/services/idb.js (nuovo, usa storage.js esistente)
|
||||||
import { idbKeyval } from '@/storage';
|
import { idbKeyval } from '../js/storage';
|
||||||
|
|
||||||
class SyncIDB {
|
class SyncIDB {
|
||||||
constructor() {
|
constructor() {
|
||||||
|
|||||||
@@ -1197,6 +1197,7 @@ const msg_it = {
|
|||||||
sector_select_details: 'Ti arriveranno le notifiche dei nuovi annunci, solo per i Settori selezionati qui sotto (se lasci su "nessuno" arriveranno tutti).',
|
sector_select_details: 'Ti arriveranno le notifiche dei nuovi annunci, solo per i Settori selezionati qui sotto (se lasci su "nessuno" arriveranno tutti).',
|
||||||
sector_goods: 'Settori dei Beni',
|
sector_goods: 'Settori dei Beni',
|
||||||
sector_goods_select: 'Scegli i Settori Preferiti dei Beni',
|
sector_goods_select: 'Scegli i Settori Preferiti dei Beni',
|
||||||
|
sector_bacheca_select: 'Scegli i Settori Preferiti degli Eventi',
|
||||||
},
|
},
|
||||||
services: {
|
services: {
|
||||||
visit_website: 'Visita il Sito Web "{link}"',
|
visit_website: 'Visita il Sito Web "{link}"',
|
||||||
|
|||||||
@@ -1812,6 +1812,28 @@ export const colSectorGoods = [
|
|||||||
AddCol(DuplicateRec),
|
AddCol(DuplicateRec),
|
||||||
];
|
];
|
||||||
|
|
||||||
|
export const colSectorBachecas = [
|
||||||
|
AddCol({ name: '_id', label_trans: 'index', fieldtype: costanti.FieldType.number }),
|
||||||
|
AddCol({ name: 'descr', label_trans: 'store.description' }),
|
||||||
|
AddCol({
|
||||||
|
name: 'idSectorBacheca',
|
||||||
|
label_trans: 'sectors.name',
|
||||||
|
fieldtype: costanti.FieldType.select,
|
||||||
|
jointable: 'sectorbachecas',
|
||||||
|
}),
|
||||||
|
AddCol({
|
||||||
|
name: 'main',
|
||||||
|
label_trans: 'store.main',
|
||||||
|
fieldtype: costanti.FieldType.boolean,
|
||||||
|
}),
|
||||||
|
AddCol({ name: 'color', label_trans: 'products.color' }),
|
||||||
|
AddCol({ name: 'theme', label_trans: 'products.theme' }),
|
||||||
|
AddCol({ name: 'img', label_trans: 'store.img' }),
|
||||||
|
AddCol({ name: 'icon', label_trans: 'store.icon' }),
|
||||||
|
AddCol(DeleteRec),
|
||||||
|
AddCol(DuplicateRec),
|
||||||
|
];
|
||||||
|
|
||||||
export const colCatGrps = [
|
export const colCatGrps = [
|
||||||
AddCol({ name: '_id', label_trans: 'index', fieldtype: costanti.FieldType.number }),
|
AddCol({ name: '_id', label_trans: 'index', fieldtype: costanti.FieldType.number }),
|
||||||
AddCol({ name: 'descr', label_trans: 'store.description' }),
|
AddCol({ name: 'descr', label_trans: 'store.description' }),
|
||||||
@@ -1938,7 +1960,7 @@ export const colSkills = [
|
|||||||
AddCol(DeleteRec),
|
AddCol(DeleteRec),
|
||||||
];
|
];
|
||||||
export const colGoods = [
|
export const colGoods = [
|
||||||
// AddCol({ name: '_id', label_trans: 'index', fieldtype: costanti.FieldType.number }),
|
AddCol({ name: '_id', label_trans: 'index', fieldtype: costanti.FieldType.number }),
|
||||||
AddCol({ name: 'descr', label_trans: 'store.description' }),
|
AddCol({ name: 'descr', label_trans: 'store.description' }),
|
||||||
AddCol({ name: 'img', label_trans: 'store.img' }),
|
AddCol({ name: 'img', label_trans: 'store.img' }),
|
||||||
AddCol({ name: 'icon', label_trans: 'store.icon' }),
|
AddCol({ name: 'icon', label_trans: 'store.icon' }),
|
||||||
@@ -1953,6 +1975,22 @@ export const colGoods = [
|
|||||||
AddCol(DuplicateRec),
|
AddCol(DuplicateRec),
|
||||||
AddCol(DeleteRec),
|
AddCol(DeleteRec),
|
||||||
];
|
];
|
||||||
|
export const colBachecas = [
|
||||||
|
AddCol({ name: '_id', label_trans: 'index', fieldtype: costanti.FieldType.number }),
|
||||||
|
AddCol({ name: 'descr', label_trans: 'store.description' }),
|
||||||
|
AddCol({ name: 'img', label_trans: 'store.img' }),
|
||||||
|
AddCol({ name: 'icon', label_trans: 'store.icon' }),
|
||||||
|
AddCol({
|
||||||
|
name: 'idSectorBacheca',
|
||||||
|
label_trans: 'sectors.name',
|
||||||
|
fieldtype: costanti.FieldType.multiselect,
|
||||||
|
jointable: 'sectorbachecas',
|
||||||
|
}),
|
||||||
|
AddCol({ name: 'color', label_trans: 'products.color' }),
|
||||||
|
AddCol({ name: 'theme', label_trans: 'products.theme' }),
|
||||||
|
AddCol(DuplicateRec),
|
||||||
|
AddCol(DeleteRec),
|
||||||
|
];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
export const colSubSkills = [
|
export const colSubSkills = [
|
||||||
@@ -3348,7 +3386,7 @@ export const colmyBachecas = [
|
|||||||
showifIsStatusDiPersona: true,
|
showifIsStatusDiPersona: true,
|
||||||
showifIsStatusOnLine: false,
|
showifIsStatusOnLine: false,
|
||||||
}),
|
}),
|
||||||
AddCol({
|
/*AddCol({
|
||||||
name: 'idSector',
|
name: 'idSector',
|
||||||
label_trans: 'sectors.name',
|
label_trans: 'sectors.name',
|
||||||
fieldtype: costanti.FieldType.select,
|
fieldtype: costanti.FieldType.select,
|
||||||
@@ -3380,7 +3418,39 @@ export const colmyBachecas = [
|
|||||||
allowNewValue: false,
|
allowNewValue: false,
|
||||||
required: false,
|
required: false,
|
||||||
sortable: false,
|
sortable: false,
|
||||||
|
}),*/
|
||||||
|
AddCol({
|
||||||
|
name: 'idSectorBacheca',
|
||||||
|
label_trans: 'sectors.name',
|
||||||
|
fieldtype: costanti.FieldType.select,
|
||||||
|
required: true,
|
||||||
|
jointable: 'sectorbachecas',
|
||||||
|
showWhen:
|
||||||
|
costanti.showWhen.NewRec +
|
||||||
|
costanti.showWhen.InEdit +
|
||||||
|
costanti.showWhen.InView_OnlyifExist,
|
||||||
|
visible: true,
|
||||||
|
icon: 'category',
|
||||||
}),
|
}),
|
||||||
|
AddCol({
|
||||||
|
name: 'idBacheca',
|
||||||
|
label_trans: 'skill.name',
|
||||||
|
fieldtype: costanti.FieldType.select,
|
||||||
|
required: false,
|
||||||
|
jointable: 'bachecas',
|
||||||
|
addnone: true,
|
||||||
|
filter_table: 'sectorbachecas',
|
||||||
|
filter_field: 'idSectorBacheca',
|
||||||
|
noshowlabel: true,
|
||||||
|
icon: 'engineering',
|
||||||
|
showWhen:
|
||||||
|
costanti.showWhen.NewRec +
|
||||||
|
costanti.showWhen.InPage +
|
||||||
|
costanti.showWhen.InEdit +
|
||||||
|
costanti.showWhen.InView_OnlyifExist,
|
||||||
|
allowNewValue: false,
|
||||||
|
}),
|
||||||
|
|
||||||
AddCol({
|
AddCol({
|
||||||
name: 'note',
|
name: 'note',
|
||||||
label_trans: 'proj.descrapprof',
|
label_trans: 'proj.descrapprof',
|
||||||
@@ -7605,6 +7675,13 @@ export const fieldsTable = {
|
|||||||
colkey: '_id',
|
colkey: '_id',
|
||||||
collabel: 'descr',
|
collabel: 'descr',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
value: 'bachecas',
|
||||||
|
label: 'Sottocategorie Eventi',
|
||||||
|
columns: colBachecas,
|
||||||
|
colkey: '_id',
|
||||||
|
collabel: 'descr',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
value: 'caldate', // toolsext.TABCALDATE,
|
value: 'caldate', // toolsext.TABCALDATE,
|
||||||
label: 'Date',
|
label: 'Date',
|
||||||
@@ -7651,6 +7728,13 @@ export const fieldsTable = {
|
|||||||
colkey: '_id',
|
colkey: '_id',
|
||||||
collabel: 'descr',
|
collabel: 'descr',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
value: 'sectorbachecas',
|
||||||
|
label: 'Settori Eventi',
|
||||||
|
columns: colSectorBachecas,
|
||||||
|
colkey: '_id',
|
||||||
|
collabel: 'descr',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
value: 'catgrps',
|
value: 'catgrps',
|
||||||
label: 'Categorie Gruppi',
|
label: 'Categorie Gruppi',
|
||||||
|
|||||||
@@ -63,7 +63,6 @@ export const serv_constants = {
|
|||||||
TypeProj: {
|
TypeProj: {
|
||||||
TYPE_PROJECT: 1,
|
TYPE_PROJECT: 1,
|
||||||
TYPE_SUBDIR: 2,
|
TYPE_SUBDIR: 2,
|
||||||
}
|
},
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8161,7 +8161,7 @@ export const tools = {
|
|||||||
obj.col_footer = 'idCity';
|
obj.col_footer = 'idCity';
|
||||||
obj.col_tabfooter = 'mycities';
|
obj.col_tabfooter = 'mycities';
|
||||||
} else if (table === toolsext.TABMYBACHECAS) {
|
} else if (table === toolsext.TABMYBACHECAS) {
|
||||||
obj.prop_colkey = 'idSkill';
|
obj.prop_colkey = 'idBacheca';
|
||||||
obj.col_title = 'descr';
|
obj.col_title = 'descr';
|
||||||
obj.col_footer = 'idCity';
|
obj.col_footer = 'idCity';
|
||||||
obj.col_tabfooter = 'mycities';
|
obj.col_tabfooter = 'mycities';
|
||||||
@@ -8199,6 +8199,7 @@ export const tools = {
|
|||||||
'contribtypes',
|
'contribtypes',
|
||||||
'adtypes',
|
'adtypes',
|
||||||
'sectorgoods',
|
'sectorgoods',
|
||||||
|
'sectorbachecas',
|
||||||
'otherfilters',
|
'otherfilters',
|
||||||
'shippings',
|
'shippings',
|
||||||
'pub_to_share',
|
'pub_to_share',
|
||||||
@@ -8207,6 +8208,7 @@ export const tools = {
|
|||||||
const arrmultisel = [
|
const arrmultisel = [
|
||||||
{ table: 'skills', join: 'sectors' },
|
{ table: 'skills', join: 'sectors' },
|
||||||
{ table: 'goods', join: 'sectorgoods' },
|
{ table: 'goods', join: 'sectorgoods' },
|
||||||
|
{ table: 'bachecas', join: 'sectorbachecas' },
|
||||||
];
|
];
|
||||||
|
|
||||||
let ris = mydef;
|
let ris = mydef;
|
||||||
@@ -8354,8 +8356,11 @@ export const tools = {
|
|||||||
|
|
||||||
getdefaultnewrec_MyBacheca(extrarec: any): any {
|
getdefaultnewrec_MyBacheca(extrarec: any): any {
|
||||||
return {
|
return {
|
||||||
idSector: tools.getSelectionByTable('sectors', 0, true),
|
//idSector: tools.getSelectionByTable('sectors', 0, true),
|
||||||
idSkill: tools.getSelectionByTable('skills', 0, true),
|
//idSkill: tools.getSelectionByTable('skills', 0, true),
|
||||||
|
idSectorBacheca: tools.getSelectionByTable('sectorbachecas', 0),
|
||||||
|
idBacheca: tools.getSelectionByTable('bachecas', 0),
|
||||||
|
|
||||||
idStatusSkill: tools.getSelectionByTable('statusSkills', [
|
idStatusSkill: tools.getSelectionByTable('statusSkills', [
|
||||||
shared_consts.STATUSSKILL_DI_PERSONA,
|
shared_consts.STATUSSKILL_DI_PERSONA,
|
||||||
]),
|
]),
|
||||||
@@ -8881,20 +8886,17 @@ export const tools = {
|
|||||||
|
|
||||||
getArrSector(table: string, rec: any) {
|
getArrSector(table: string, rec: any) {
|
||||||
if (table === toolsext.TABMYGOODS) return rec.sectorGood;
|
if (table === toolsext.TABMYGOODS) return rec.sectorGood;
|
||||||
else if (table === toolsext.TABMYBACHECAS || table === toolsext.TABMYSKILLS)
|
else if (table === toolsext.TABMYSKILLS) return rec.sector;
|
||||||
return rec.sector;
|
else if (table === toolsext.TABMYBACHECAS) return rec.sectorBacheca;
|
||||||
else if (table === toolsext.TABMYGROUPS) return [{ descr: rec.sector }];
|
else if (table === toolsext.TABMYGROUPS) return [{ descr: rec.sector }];
|
||||||
else if (table === toolsext.TABMYHOSPS) return [];
|
else if (table === toolsext.TABMYHOSPS) return [];
|
||||||
},
|
},
|
||||||
|
|
||||||
getArrSubSector(table: string, rec: any) {
|
getArrSubSector(table: string, rec: any) {
|
||||||
if (table === toolsext.TABMYGOODS) return rec.recGood;
|
if (table === toolsext.TABMYGOODS) return rec.recGood;
|
||||||
else if (
|
else if (table === toolsext.TABMYSKILLS || table === toolsext.TABATTIVITA)
|
||||||
table === toolsext.TABMYBACHECAS ||
|
|
||||||
table === toolsext.TABMYSKILLS ||
|
|
||||||
table === toolsext.TABATTIVITA
|
|
||||||
)
|
|
||||||
return rec.recSkill;
|
return rec.recSkill;
|
||||||
|
else if (table === toolsext.TABMYBACHECAS) return rec.recSkill;
|
||||||
else if (table === toolsext.TABMYGROUPS) return [];
|
else if (table === toolsext.TABMYGROUPS) return [];
|
||||||
else if (table === toolsext.TABMYHOSPS) return [];
|
else if (table === toolsext.TABMYHOSPS) return [];
|
||||||
},
|
},
|
||||||
@@ -9575,7 +9577,7 @@ export const tools = {
|
|||||||
af_objId_tab: 'myId',
|
af_objId_tab: 'myId',
|
||||||
},
|
},
|
||||||
lookup2: {
|
lookup2: {
|
||||||
lk_tab: 'goods',
|
lk_tab: toolsext.TABGOODS,
|
||||||
lk_LF: 'idGood',
|
lk_LF: 'idGood',
|
||||||
lk_FF: '_id',
|
lk_FF: '_id',
|
||||||
lk_as: 'recGood',
|
lk_as: 'recGood',
|
||||||
@@ -9583,7 +9585,7 @@ export const tools = {
|
|||||||
lk_proj: shared_consts.getProjectForAll({}, table),
|
lk_proj: shared_consts.getProjectForAll({}, table),
|
||||||
},
|
},
|
||||||
lookup3: {
|
lookup3: {
|
||||||
lk_tab: 'sectorgoods',
|
lk_tab: toolsext.TABSECTORGOODS,
|
||||||
// lk_LF: 'recGood.idSectorGood',
|
// lk_LF: 'recGood.idSectorGood',
|
||||||
lk_LF: 'idSectorGood',
|
lk_LF: 'idSectorGood',
|
||||||
lk_FF: '_id',
|
lk_FF: '_id',
|
||||||
@@ -9617,19 +9619,18 @@ export const tools = {
|
|||||||
af_objId_tab: 'myId',
|
af_objId_tab: 'myId',
|
||||||
},
|
},
|
||||||
lookup2: {
|
lookup2: {
|
||||||
lk_tab: 'skills',
|
lk_tab: toolsext.TABBACHECAS,
|
||||||
lk_LF: 'idSkill',
|
lk_LF: 'idBacheca',
|
||||||
lk_FF: '_id',
|
lk_FF: '_id',
|
||||||
lk_as: 'recSkill',
|
lk_as: 'recSkill',
|
||||||
af_objId_tab: '',
|
af_objId_tab: '',
|
||||||
lk_proj: shared_consts.getProjectForAll({}, table),
|
lk_proj: shared_consts.getProjectForAll({}, table),
|
||||||
},
|
},
|
||||||
lookup3: {
|
lookup3: {
|
||||||
lk_tab: toolsext.TABSECTORS,
|
lk_tab: toolsext.TABSECTORBACHECAS,
|
||||||
// lk_LF: 'recSkill.idSector',
|
lk_LF: 'idSectorBacheca',
|
||||||
lk_LF: 'idSector',
|
|
||||||
lk_FF: '_id',
|
lk_FF: '_id',
|
||||||
lk_as: 'sector',
|
lk_as: 'sectorBacheca',
|
||||||
af_objId_tab: '',
|
af_objId_tab: '',
|
||||||
},
|
},
|
||||||
lookup4: {
|
lookup4: {
|
||||||
@@ -11479,6 +11480,10 @@ export const tools = {
|
|||||||
return this.getIdApp() === this.IDAPP_MACRO;
|
return this.getIdApp() === this.IDAPP_MACRO;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getPreferenceById(id: number) {
|
||||||
|
return shared_consts.Preferences.find((p) => p.value === id);
|
||||||
|
},
|
||||||
|
|
||||||
// FINE !
|
// FINE !
|
||||||
|
|
||||||
// getLocale() {
|
// getLocale() {
|
||||||
|
|||||||
@@ -64,8 +64,10 @@ export const toolsext = {
|
|||||||
TABMYGROUPS: 'mygroups',
|
TABMYGROUPS: 'mygroups',
|
||||||
TABSKILLS: 'skills',
|
TABSKILLS: 'skills',
|
||||||
TABGOODS: 'goods',
|
TABGOODS: 'goods',
|
||||||
|
TABBACHECAS: 'bachecas',
|
||||||
TABSECTORS: 'sectors',
|
TABSECTORS: 'sectors',
|
||||||
TABSECTORGOODS: 'sectorgoods',
|
TABSECTORGOODS: 'sectorgoods',
|
||||||
|
TABSECTORBACHECAS: 'sectorbachecas',
|
||||||
TABREGIONS: 'regions',
|
TABREGIONS: 'regions',
|
||||||
TABCITIES: 'cities',
|
TABCITIES: 'cities',
|
||||||
TABPROVINCE: 'provinces',
|
TABPROVINCE: 'provinces',
|
||||||
|
|||||||
@@ -148,7 +148,9 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
|||||||
// subSkills: [],
|
// subSkills: [],
|
||||||
statusSkills: [],
|
statusSkills: [],
|
||||||
sectors: [],
|
sectors: [],
|
||||||
|
bachecas: [],
|
||||||
sectorgoods: [],
|
sectorgoods: [],
|
||||||
|
sectorbachecas: [],
|
||||||
catgrps: [],
|
catgrps: [],
|
||||||
catAI: [],
|
catAI: [],
|
||||||
queryAIList: [],
|
queryAIList: [],
|
||||||
@@ -590,12 +592,14 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
|||||||
else if (table === 'adtypes') return state.adtypes;
|
else if (table === 'adtypes') return state.adtypes;
|
||||||
else if (table === 'adtypegoods') return state.adtypegoods;
|
else if (table === 'adtypegoods') return state.adtypegoods;
|
||||||
else if (table === 'skills') return state.skills;
|
else if (table === 'skills') return state.skills;
|
||||||
else if (table === 'goods') return state.goods;
|
else if (table === toolsext.TABGOODS) return state.goods;
|
||||||
|
else if (table === toolsext.TABBACHECAS) return state.bachecas;
|
||||||
// else if (table === 'subskills')
|
// else if (table === 'subskills')
|
||||||
// return state.subSkills
|
// return state.subSkills
|
||||||
else if (table === 'statusSkills') return state.statusSkills;
|
else if (table === 'statusSkills') return state.statusSkills;
|
||||||
else if (table === toolsext.TABSECTORS) return state.sectors;
|
else if (table === toolsext.TABSECTORS) return state.sectors;
|
||||||
else if (table === 'sectorgoods') return state.sectorgoods;
|
else if (table === toolsext.TABSECTORGOODS) return state.sectorgoods;
|
||||||
|
else if (table === toolsext.TABSECTORBACHECAS) return state.sectorbachecas;
|
||||||
else if (table === 'catgrps') return state.catgrps;
|
else if (table === 'catgrps') return state.catgrps;
|
||||||
else if (table === 'schedeopt')
|
else if (table === 'schedeopt')
|
||||||
return Products.getSchedeOptByArrSchede(state.myschedas);
|
return Products.getSchedeOptByArrSchede(state.myschedas);
|
||||||
@@ -2196,10 +2200,11 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
|||||||
this.levels = res.data.levels ? [...res.data.levels] : [];
|
this.levels = res.data.levels ? [...res.data.levels] : [];
|
||||||
this.skills = res.data.skills ? [...res.data.skills] : [];
|
this.skills = res.data.skills ? [...res.data.skills] : [];
|
||||||
this.goods = res.data.goods ? [...res.data.goods] : [];
|
this.goods = res.data.goods ? [...res.data.goods] : [];
|
||||||
// this.subSkills = (res.data.subSkills) ? [...res.data.subSkills] : []
|
this.bachecas = res.data.bachecas ? [...res.data.bachecas] : [];
|
||||||
this.statusSkills = res.data.statusSkills ? [...res.data.statusSkills] : [];
|
this.statusSkills = res.data.statusSkills ? [...res.data.statusSkills] : [];
|
||||||
this.sectors = res.data.sectors ? [...res.data.sectors] : [];
|
this.sectors = res.data.sectors ? [...res.data.sectors] : [];
|
||||||
this.sectorgoods = res.data.sectorgoods ? [...res.data.sectorgoods] : [];
|
this.sectorgoods = res.data.sectorgoods ? [...res.data.sectorgoods] : [];
|
||||||
|
this.sectorbachecas = res.data.sectorbachecas ? [...res.data.sectorbachecas] : [];
|
||||||
this.provinces = res.data.provinces ? [...res.data.provinces] : [];
|
this.provinces = res.data.provinces ? [...res.data.provinces] : [];
|
||||||
this.catgrps = res.data.catgrps ? [...res.data.catgrps] : [];
|
this.catgrps = res.data.catgrps ? [...res.data.catgrps] : [];
|
||||||
this.catAI = res.data.catAI ? [...res.data.catAI] : [];
|
this.catAI = res.data.catAI ? [...res.data.catAI] : [];
|
||||||
@@ -2747,6 +2752,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
|||||||
obj.idSectorGood = [];
|
obj.idSectorGood = [];
|
||||||
} else if (table === shared_consts.TABLES_MYSKILLS) {
|
} else if (table === shared_consts.TABLES_MYSKILLS) {
|
||||||
obj.idSector = [];
|
obj.idSector = [];
|
||||||
|
} else if (table === shared_consts.TABLES_MYBACHECAS) {
|
||||||
|
obj.idSectorBacheca = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (table === 'cards') {
|
if (table === 'cards') {
|
||||||
|
|||||||
@@ -1,23 +1,3 @@
|
|||||||
// ========================================
|
|
||||||
// VARIABILI (Sincronizzate)
|
|
||||||
// ========================================
|
|
||||||
$primary-color: #1976d2;
|
|
||||||
$primary-light: #42a5f5;
|
|
||||||
$primary-dark: #1565c0;
|
|
||||||
$accent-color: #26a69a;
|
|
||||||
$positive-color: #21ba45;
|
|
||||||
$negative-color: #c10015;
|
|
||||||
|
|
||||||
$border-radius: 16px;
|
|
||||||
$border-radius-sm: 12px;
|
|
||||||
$border-radius-lg: 24px;
|
|
||||||
|
|
||||||
$transition-speed: 0.3s;
|
|
||||||
$shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
|
|
||||||
$shadow-md: 0 4px 16px rgba(0, 0, 0, 0.12);
|
|
||||||
$shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.16);
|
|
||||||
|
|
||||||
$mobile-breakpoint: 768px;
|
|
||||||
|
|
||||||
// ========================================
|
// ========================================
|
||||||
// CONTAINER PRINCIPALE
|
// CONTAINER PRINCIPALE
|
||||||
|
|||||||
@@ -1,23 +1,3 @@
|
|||||||
// ========================================
|
|
||||||
// VARIABILI (Sincronizzate)
|
|
||||||
// ========================================
|
|
||||||
$primary-color: #1976d2;
|
|
||||||
$primary-light: #42a5f5;
|
|
||||||
$primary-dark: #1565c0;
|
|
||||||
$accent-color: #26a69a;
|
|
||||||
$positive-color: #21ba45;
|
|
||||||
$negative-color: #c10015;
|
|
||||||
|
|
||||||
$border-radius: 16px;
|
|
||||||
$border-radius-sm: 12px;
|
|
||||||
$border-radius-lg: 24px;
|
|
||||||
|
|
||||||
$transition-speed: 0.3s;
|
|
||||||
$shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
|
|
||||||
$shadow-md: 0 4px 16px rgba(0, 0, 0, 0.12);
|
|
||||||
$shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.16);
|
|
||||||
|
|
||||||
$mobile-breakpoint: 768px;
|
|
||||||
|
|
||||||
// ========================================
|
// ========================================
|
||||||
// CONTAINER PRINCIPALE
|
// CONTAINER PRINCIPALE
|
||||||
|
|||||||
@@ -83,6 +83,12 @@
|
|||||||
></div>
|
></div>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-actions align="center">
|
<q-card-actions align="center">
|
||||||
|
<q-btn
|
||||||
|
outline
|
||||||
|
:label="$t('dialog.cancel')"
|
||||||
|
icon="close"
|
||||||
|
v-close-popup
|
||||||
|
></q-btn>
|
||||||
<q-btn
|
<q-btn
|
||||||
class="centeritems"
|
class="centeritems"
|
||||||
icon="fas fa-user-plus"
|
icon="fas fa-user-plus"
|
||||||
@@ -100,12 +106,6 @@
|
|||||||
);
|
);
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
<q-btn
|
|
||||||
outline
|
|
||||||
:label="$t('dialog.cancel')"
|
|
||||||
icon="close"
|
|
||||||
v-close-popup
|
|
||||||
></q-btn>
|
|
||||||
</q-card-actions>
|
</q-card-actions>
|
||||||
</q-card>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
|||||||
@@ -943,6 +943,12 @@
|
|||||||
></div>
|
></div>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-actions align="center">
|
<q-card-actions align="center">
|
||||||
|
<q-btn
|
||||||
|
outline
|
||||||
|
:label="$t('dialog.cancel')"
|
||||||
|
icon="close"
|
||||||
|
v-close-popup
|
||||||
|
></q-btn>
|
||||||
<q-btn
|
<q-btn
|
||||||
class="centeritems"
|
class="centeritems"
|
||||||
icon="fas fa-user-plus"
|
icon="fas fa-user-plus"
|
||||||
@@ -961,12 +967,6 @@
|
|||||||
requestToEnterCircuit = false;
|
requestToEnterCircuit = false;
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
<q-btn
|
|
||||||
outline
|
|
||||||
:label="$t('dialog.cancel')"
|
|
||||||
icon="close"
|
|
||||||
v-close-popup
|
|
||||||
></q-btn>
|
|
||||||
</q-card-actions>
|
</q-card-actions>
|
||||||
</q-card>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
|||||||
Reference in New Issue
Block a user