- aggiunto filtro nella lista producttable

- ora compare il bottone aggiungi alla lista solo se non è presente.
This commit is contained in:
Surya Paolo
2025-06-25 17:48:21 +02:00
parent bfc6ec04f6
commit 99fab39c4b
14 changed files with 162 additions and 66 deletions

4
.env
View File

@@ -1,6 +1,6 @@
VITE_APP_VERSION="1.2.57" VITE_APP_VERSION="1.2.58"
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.57.js" VITE_SERVICE_WORKER_FILE="sw-1.2.58.js"
VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a" VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
VITE_VUE_ROUTER_MODE="history" VITE_VUE_ROUTER_MODE="history"

View 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.57"> <meta name="version" content="1.2.58">
<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<% } %>">

View File

@@ -1,6 +1,6 @@
{ {
"name": "gruppomacro", "name": "gruppomacro",
"version": "1.2.57", "version": "1.2.58",
"description": "Gruppo Macro", "description": "Gruppo Macro",
"productName": "Gruppo Macro", "productName": "Gruppo Macro",
"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.57' quasar dev", "dev": "PORT=8089 APP_VERSION='1.2.58' 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.57' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.58' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.58' 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.57' quasar build -m spa", "buildspa": "APP_VERSION='1.2.58' 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.57' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.58' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.57' quasar dev", "spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.58' 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",

View File

@@ -1,6 +1,6 @@
{ {
"name": "cnm", "name": "cnm",
"version": "1.2.57", "version": "1.2.58",
"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.57' quasar dev", "dev": "PORT=8083 APP_VERSION='1.2.58' 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.57' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.58' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.57' quasar dev", "spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.58' 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",

View File

@@ -1,6 +1,6 @@
{ {
"name": "freeplanet", "name": "freeplanet",
"version": "1.2.57", "version": "1.2.58",
"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.57' quasar dev", "dev": "PORT=8087 APP_VERSION='1.2.58' 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.57' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.58' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.58' 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.57' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.58' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.57' quasar dev", "spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.58' 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",

View File

@@ -1,6 +1,6 @@
{ {
"name": "gruppomacro", "name": "gruppomacro",
"version": "1.2.57", "version": "1.2.58",
"description": "Gruppo Macro", "description": "Gruppo Macro",
"productName": "Gruppo Macro", "productName": "Gruppo Macro",
"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.57' quasar dev", "dev": "PORT=8089 APP_VERSION='1.2.58' 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.57' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.58' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.58' 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.57' quasar build -m spa", "buildspa": "APP_VERSION='1.2.58' 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.57' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.58' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.57' quasar dev", "spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.58' 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",

View File

@@ -1,6 +1,6 @@
{ {
"name": "kolibrilab", "name": "kolibrilab",
"version": "1.2.57", "version": "1.2.58",
"description": "kolibrilab", "description": "kolibrilab",
"productName": "kolibrilab", "productName": "kolibrilab",
"author": "Surya Paolo", "author": "Surya Paolo",
@@ -8,11 +8,11 @@
"keywords": [], "keywords": [],
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
"dev": "PORT=8083 APP_VERSION='1.2.57' quasar dev", "dev": "PORT=8083 APP_VERSION='1.2.58' 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.57' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.58' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.58' 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",
@@ -20,8 +20,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 --ext .ts,.vue --ignore-path .gitignore ./ --fix > file.out.txt", "fix": "eslint --ext .ts,.vue --ignore-path .gitignore ./ --fix > file.out.txt",
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.57' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.58' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.57' quasar dev", "spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.58' quasar dev",
"spanorefresh": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m spa", "spanorefresh": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m spa",
"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"

View File

@@ -1,6 +1,6 @@
{ {
"name": "nutriben", "name": "nutriben",
"version": "1.2.57", "version": "1.2.58",
"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.57' quasar dev", "dev": "PORT=8093 APP_VERSION='1.2.58' 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.57' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.58' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.58' 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.57' quasar build -m spa", "buildspa": "APP_VERSION='1.2.58' 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.57' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.58' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.57' quasar dev", "spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.58' 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",

View File

@@ -1,6 +1,6 @@
{ {
"name": "piuchebuono", "name": "piuchebuono",
"version": "1.2.57", "version": "1.2.58",
"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.57' quasar dev", "dev": "PORT=8085 APP_VERSION='1.2.58' 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.57' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.58' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.58' 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.57' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.58' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.57' quasar dev", "spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.58' 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",

View File

@@ -1,6 +1,6 @@
{ {
"name": "riso", "name": "riso",
"version": "1.2.57", "version": "1.2.58",
"description": "Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.", "description": "Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.",
"productName": "Riso", "productName": "Riso",
"author": "Surya", "author": "Surya",
@@ -9,11 +9,11 @@
"license": "MIT", "license": "MIT",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "APP_VERSION='1.2.57' PORT=8084 quasar dev", "dev": "APP_VERSION='1.2.58' 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.57' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.58' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.58' 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.57' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.58' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.57' quasar dev", "spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.58' 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",

View File

@@ -3,7 +3,7 @@
/* global workbox */ /* global workbox */
/* global cfgenv */ /* global cfgenv */
const VITE_APP_VERSION = '1.2.57'; const VITE_APP_VERSION = '1.2.58';
// Costanti di configurazione // Costanti di configurazione
const DYNAMIC_CACHE = 'dynamic-cache-v2'; const DYNAMIC_CACHE = 'dynamic-cache-v2';

View File

@@ -79,7 +79,7 @@ export default defineComponent({
type: Object, type: Object,
required: false, required: false,
default: () => ({}), default: () => ({}),
} },
}, },
setup(props, { emit }) { setup(props, { emit }) {
// Copia locale della lista_prodotti per manipolazione interna // Copia locale della lista_prodotti per manipolazione interna
@@ -91,6 +91,8 @@ export default defineComponent({
const $q = useQuasar(); const $q = useQuasar();
const searchText = ref('');
const arrordersCart = ref(<IOrderCart[]>[]); const arrordersCart = ref(<IOrderCart[]>[]);
const globalStore = useGlobalStore(); const globalStore = useGlobalStore();
@@ -149,6 +151,10 @@ export default defineComponent({
), ),
{ deep: true }; { deep: true };
watch(() => searchText.value, () => {
searchProducts();
});
const allColumns = ref([]); const allColumns = ref([]);
const isVisibleEditBtn = ref(false); const isVisibleEditBtn = ref(false);
@@ -874,7 +880,14 @@ export default defineComponent({
function isEditColumn(name: string): boolean { function isEditColumn(name: string): boolean {
const column = allColumns.value.find((col) => col.name === name); const column = allColumns.value.find((col) => col.name === name);
return column ? column.edit : false; return column ? column.edit : false;
}; }
const faiConfronto = () => {
return (
Array.isArray(props.lista_prod_confronto) &&
props.lista_prod_confronto.length > 0
);
}
// 3. Funzione per verificare se una colonna è visibile (isColumnVisible) // 3. Funzione per verificare se una colonna è visibile (isColumnVisible)
const isColumnVisible = (column: string, real?: boolean, element?: any) => { const isColumnVisible = (column: string, real?: boolean, element?: any) => {
@@ -891,20 +904,40 @@ export default defineComponent({
(!props.optcatalogo.showListaArgomenti || (!props.optcatalogo.showListaArgomenti ||
(props.optcatalogo.showListaArgomenti && !isEditColumn(column))); (props.optcatalogo.showListaArgomenti && !isEditColumn(column)));
if (props.options?.showbuttAdd && column === 'addtolist' if (
&& (!element || !props.lista_prod_confronto.some((prod: any) => prod._id === element?._id)) props.options?.showbuttAdd &&
column === 'addtolist' &&
(!element ||
!props.lista_prod_confronto.some((prod: any) => prod._id === element?._id))
) { ) {
if (tools.isCollaboratore()) if (tools.isCollaboratore()) ok = true;
ok = true
} }
if (!props.options?.showbuttAdd && column === 'addtolist' && (element && props.lista_prod_confronto.some((prod: any) => prod._id === element?._id))) { if (column === 'addtolist') {
ok = false if (!faiConfronto()) {
ok = false
}
} }
return selectedColumns.value.includes(column) && ok; return selectedColumns.value.includes(column) && ok;
}; };
function isElementVisible(col: string, element: any) {
let ok = true
if (col === 'addtolist') {
if (
props.options?.showbuttAdd &&
element &&
props.lista_prod_confronto.some((prod: any) => prod._id === element?._id)
) {
ok = false;
}
}
return ok
}
const getColumnLabelByName = (name: string): string => { const getColumnLabelByName = (name: string): string => {
const column = allColumns.value.find((col) => col.name === name); const column = allColumns.value.find((col) => col.name === name);
return column ? column.label : ''; return column ? column.label : '';
@@ -1118,7 +1151,7 @@ export default defineComponent({
} }
function addtolist(element) { function addtolist(element) {
emit('addtolist', element) emit('addtolist', element);
} }
function getFieldClick(element: any, field: any): (() => void) | null { function getFieldClick(element: any, field: any): (() => void) | null {
@@ -1242,6 +1275,41 @@ export default defineComponent({
updateProduct(element); updateProduct(element);
} }
function searchProducts() {
console.log('searchProducts');
if (!searchText.value) {
internalProducts.value = [...props.lista_prodotti];
return;
}
// Funzione per "escapare" i caratteri speciali nelle regex
const escapeRegex = (w: any) => {
return w.replace(/[.*+?^${}()|[\]\\]/g, '\\$&').replace(/#/g, '\\#');
};
// Escape del testo di ricerca per evitare conflitti con caratteri speciali
const searchTextEscaped = escapeRegex(searchText.value.toLowerCase());
const searchRegex = new RegExp(searchTextEscaped, 'i');
internalProducts.value = props.lista_prodotti.filter((prod: any) => {
// Controllo se il titolo corrisponde alla regex
const titleMatch = searchRegex.test(`${prod.productInfo?.name}`);
// Controllo se uno degli autori corrisponde alla regex
const authorMatch =
prod.productInfo?.authors &&
prod.productInfo.authors.some((author: IAuthor) =>
searchRegex.test(`${author.name} ${author.surname}`)
);
// Controllo se il codice corrisponde alla regex
const codeMatch = searchRegex.test(`${prod.productInfo?.code}`);
return titleMatch || authorMatch || codeMatch;
});
}
onMounted(mounted); onMounted(mounted);
return { return {
@@ -1292,6 +1360,9 @@ export default defineComponent({
addtoCart, addtoCart,
arrordersCart, arrordersCart,
addtolist, addtolist,
searchProducts,
searchText,
isElementVisible,
}; };
}, },
}); });

View File

@@ -5,6 +5,26 @@
<div class="row justify-center q-mx-auto q-pt-sm text-italic"> <div class="row justify-center q-mx-auto q-pt-sm text-italic">
{{ internalProducts?.length }} elementi nella lista {{ internalProducts?.length }} elementi nella lista
</div> </div>
<div class="row justify-center q-mx-auto q-pt-sm">
<q-input
v-model="searchText"
dense
outlined
clearable
debounce="250"
placeholder="Cerca titolo se presente in lista"
class="col-12 col-md-6"
:style="{ 'min-width': '300px' }"
>
</q-input>
<div
v-if="searchText"
class="row justify-center q-mx-auto q-pa-sm text-caption text-red-7 "
>
Lista filtrata con il termine "{{ searchText }}"
</div>
</div>
<div class="q-mb-md text-right"> <div class="q-mb-md text-right">
<q-select <q-select
v-model="selectedColumns" v-model="selectedColumns"
@@ -129,7 +149,7 @@
/> />
</span> </span>
</td> </td>
<td v-else-if="field.name === 'addtocart' && isColumnVisible('addtocart')"> <td v-else-if="field.name === 'addtocart' && isColumnVisible('addtocart') ">
<q-btn <q-btn
icon-right="fas fa-cart-plus" icon-right="fas fa-cart-plus"
color="positive" color="positive"
@@ -160,7 +180,12 @@
> >
</q-btn> </q-btn>
</td> </td>
<td v-else-if="field.name === 'addtolist' && isColumnVisible('addtolist', false, element)"> <td
v-else-if="
field.name === 'addtolist' &&
isColumnVisible('addtolist') && isElementVisible('addtolist', element)
"
>
<q-btn <q-btn
icon="fas fa-plus" icon="fas fa-plus"
color="primary" color="primary"

View File

@@ -315,7 +315,7 @@ export default defineComponent({
const catalogStore = useCatalogStore(); const catalogStore = useCatalogStore();
const tabvisu = ref('categorie'); const tabvisu = ref('categorie');
const tabcatalogo = ref('visu'); const tabcatalogo = ref('');
const tabgen = ref('condizioni'); const tabgen = ref('condizioni');
const searchList = ref([] as ISearchList[]); const searchList = ref([] as ISearchList[]);
@@ -1574,7 +1574,7 @@ export default defineComponent({
// controlla se è stato passato l'id dalla pagina: // controlla se è stato passato l'id dalla pagina:
let idcatsel = ''; let idcatsel = '';
if ($route.query.id) idcatsel = $route.query.id; if ($route.query.id) idcatsel = $route.query.id as string;
if ($route.query.stampa) instampa = $route.query.stampa === '1'; if ($route.query.stampa) instampa = $route.query.stampa === '1';
else idcatsel = optcatalogo.value.idCatalogSel; else idcatsel = optcatalogo.value.idCatalogSel;