From 99fab39c4b8a7ce1ce72d0cbfae153977270f29b Mon Sep 17 00:00:00 2001 From: Surya Paolo Date: Wed, 25 Jun 2025 17:48:21 +0200 Subject: [PATCH] =?UTF-8?q?-=20aggiunto=20filtro=20nella=20lista=20product?= =?UTF-8?q?table=20-=20ora=20compare=20il=20bottone=20aggiungi=20alla=20li?= =?UTF-8?q?sta=20solo=20se=20non=20=C3=A8=20presente.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 4 +- index.html | 2 +- package.json | 14 +-- .../comunitanuovomondo.app/package.json | 8 +- .../_ALL_SITES/freeplanet.app/package.json | 12 +-- .../_ALL_SITES/gruppomacro.app/package.json | 14 +-- scripts/_ALL_SITES/kolibrilab.it/package.json | 12 +-- .../nutriben-naturopatia.it/package.json | 14 +-- .../_ALL_SITES/piuchebuono.app/package.json | 12 +-- scripts/_ALL_SITES/riso.app/package.json | 12 +-- src-pwa/custom-service-worker.js | 2 +- src/components/CProductTable/CProductTable.ts | 89 +++++++++++++++++-- .../CProductTable/CProductTable.vue | 29 +++++- src/views/ecommerce/catalogo/catalogo.ts | 4 +- 14 files changed, 162 insertions(+), 66 deletions(-) diff --git a/.env b/.env index 4f9058c9..c6a90088 100755 --- a/.env +++ b/.env @@ -1,6 +1,6 @@ -VITE_APP_VERSION="1.2.57" +VITE_APP_VERSION="1.2.58" VITE_LANG_DEFAULT="it" 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_VUE_ROUTER_MODE="history" \ No newline at end of file diff --git a/index.html b/index.html index 8f211017..3e6d07e1 100755 --- a/index.html +++ b/index.html @@ -10,7 +10,7 @@ - + diff --git a/package.json b/package.json index b88e8d3f..a5314957 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gruppomacro", - "version": "1.2.57", + "version": "1.2.58", "description": "Gruppo Macro", "productName": "Gruppo Macro", "author": "Surya", @@ -9,20 +9,20 @@ "license": "MIT", "type": "module", "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", "build": "quasar build", - "buildpwa": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa", - "buildpwatest": "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.58' quasar build -m pwa", "type-check": "vue-tsc --noEmit", "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}\"", "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", - "pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.57' quasar dev -m pwa", - "spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.57' quasar dev", + "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.58' quasar dev", "debug": "quasar dev --mode debug", "test": "echo \"No test specified\" && exit 0", "generate-sw": "workbox generateSW workbox-config.js", diff --git a/scripts/_ALL_SITES/comunitanuovomondo.app/package.json b/scripts/_ALL_SITES/comunitanuovomondo.app/package.json index 38f96642..37ab32fd 100755 --- a/scripts/_ALL_SITES/comunitanuovomondo.app/package.json +++ b/scripts/_ALL_SITES/comunitanuovomondo.app/package.json @@ -1,6 +1,6 @@ { "name": "cnm", - "version": "1.2.57", + "version": "1.2.58", "description": "Comunita Nuovo Mondo", "productName": "ComunitaNuovoMondo", "author": "Surya", @@ -9,7 +9,7 @@ "license": "MIT", "type": "module", "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", "build": "quasar build", "buildpwa": "NODE_ENV=production quasar build -m pwa", @@ -21,8 +21,8 @@ "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", - "pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.57' quasar dev -m pwa", - "spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.57' quasar dev", + "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.58' quasar dev", "debug": "quasar dev --mode debug", "test": "echo \"No test specified\" && exit 0", "generate-sw": "workbox generateSW workbox-config.js", diff --git a/scripts/_ALL_SITES/freeplanet.app/package.json b/scripts/_ALL_SITES/freeplanet.app/package.json index 5aa410ce..cb3ef08a 100755 --- a/scripts/_ALL_SITES/freeplanet.app/package.json +++ b/scripts/_ALL_SITES/freeplanet.app/package.json @@ -1,6 +1,6 @@ { "name": "freeplanet", - "version": "1.2.57", + "version": "1.2.58", "description": "freeplanet", "productName": "freeplanet", "author": "Surya", @@ -9,11 +9,11 @@ "license": "MIT", "type": "module", "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", "build": "quasar build", - "buildpwa": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa", - "buildpwatest": "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.58' quasar build -m pwa", "type-check": "vue-tsc --noEmit", "type-check:watch": "vue-tsc --noEmit --watch", "buildspa": "quasar build -m spa", @@ -21,8 +21,8 @@ "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", - "pwa": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.57' quasar dev -m pwa", - "spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.57' quasar dev", + "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.58' quasar dev", "debug": "quasar dev --mode debug", "test": "echo \"No test specified\" && exit 0", "generate-sw": "workbox generateSW workbox-config.js", diff --git a/scripts/_ALL_SITES/gruppomacro.app/package.json b/scripts/_ALL_SITES/gruppomacro.app/package.json index 7de981c3..731e154e 100755 --- a/scripts/_ALL_SITES/gruppomacro.app/package.json +++ b/scripts/_ALL_SITES/gruppomacro.app/package.json @@ -1,6 +1,6 @@ { "name": "gruppomacro", - "version": "1.2.57", + "version": "1.2.58", "description": "Gruppo Macro", "productName": "Gruppo Macro", "author": "Surya", @@ -9,20 +9,20 @@ "license": "MIT", "type": "module", "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", "build": "quasar build", - "buildpwa": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa", - "buildpwatest": "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.58' quasar build -m pwa", "type-check": "vue-tsc --noEmit", "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}\"", "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", - "pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.57' quasar dev -m pwa", - "spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.57' quasar dev", + "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.58' quasar dev", "debug": "quasar dev --mode debug", "test": "echo \"No test specified\" && exit 0", "generate-sw": "workbox generateSW workbox-config.js", diff --git a/scripts/_ALL_SITES/kolibrilab.it/package.json b/scripts/_ALL_SITES/kolibrilab.it/package.json index a7a6c9f3..3d363274 100755 --- a/scripts/_ALL_SITES/kolibrilab.it/package.json +++ b/scripts/_ALL_SITES/kolibrilab.it/package.json @@ -1,6 +1,6 @@ { "name": "kolibrilab", - "version": "1.2.57", + "version": "1.2.58", "description": "kolibrilab", "productName": "kolibrilab", "author": "Surya Paolo", @@ -8,11 +8,11 @@ "keywords": [], "license": "MIT", "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", "build": "quasar build", - "buildpwa": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa", - "buildpwatest": "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.58' quasar build -m pwa", "type-check": "vue-tsc --noEmit", "type-check:watch": "vue-tsc --noEmit --watch", "buildspa": "quasar build -m spa", @@ -20,8 +20,8 @@ "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "fix": "eslint --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", - "spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.57' quasar dev", + "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.58' quasar dev", "spanorefresh": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m spa", "test": "echo \"No test specified\" && exit 0", "generate-sw": "workbox generateSW workbox-config.js" diff --git a/scripts/_ALL_SITES/nutriben-naturopatia.it/package.json b/scripts/_ALL_SITES/nutriben-naturopatia.it/package.json index bbe6b0b2..15c042e1 100755 --- a/scripts/_ALL_SITES/nutriben-naturopatia.it/package.json +++ b/scripts/_ALL_SITES/nutriben-naturopatia.it/package.json @@ -1,6 +1,6 @@ { "name": "nutriben", - "version": "1.2.57", + "version": "1.2.58", "description": "Nutriben", "productName": "Nutriben", "author": "Surya", @@ -9,20 +9,20 @@ "license": "MIT", "type": "module", "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", "build": "quasar build", - "buildpwa": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa", - "buildpwatest": "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.58' quasar build -m pwa", "type-check": "vue-tsc --noEmit", "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}\"", "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", - "pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.57' quasar dev -m pwa", - "spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.57' quasar dev", + "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.58' quasar dev", "debug": "quasar dev --mode debug", "test": "echo \"No test specified\" && exit 0", "generate-sw": "workbox generateSW workbox-config.js", diff --git a/scripts/_ALL_SITES/piuchebuono.app/package.json b/scripts/_ALL_SITES/piuchebuono.app/package.json index dfcbf808..76be369b 100755 --- a/scripts/_ALL_SITES/piuchebuono.app/package.json +++ b/scripts/_ALL_SITES/piuchebuono.app/package.json @@ -1,6 +1,6 @@ { "name": "piuchebuono", - "version": "1.2.57", + "version": "1.2.58", "description": "PiuCheBuono", "productName": "PiuCheBuono", "author": "Surya", @@ -9,11 +9,11 @@ "license": "MIT", "type": "module", "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", "build": "quasar build", - "buildpwa": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa", - "buildpwatest": "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.58' quasar build -m pwa", "type-check": "vue-tsc --noEmit", "type-check:watch": "vue-tsc --noEmit --watch", "buildspa": "quasar build -m spa", @@ -21,8 +21,8 @@ "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", - "pwa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.57' quasar dev -m pwa", - "spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.57' quasar dev", + "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.58' quasar dev", "debug": "quasar dev --mode debug", "test": "echo \"No test specified\" && exit 0", "generate-sw": "workbox generateSW workbox-config.js", diff --git a/scripts/_ALL_SITES/riso.app/package.json b/scripts/_ALL_SITES/riso.app/package.json index 268a91d3..f6e8ff80 100755 --- a/scripts/_ALL_SITES/riso.app/package.json +++ b/scripts/_ALL_SITES/riso.app/package.json @@ -1,6 +1,6 @@ { "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.", "productName": "Riso", "author": "Surya", @@ -9,11 +9,11 @@ "license": "MIT", "type": "module", "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", "build": "quasar build", - "buildpwa": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa", - "buildpwatest": "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.58' quasar build -m pwa", "type-check": "vue-tsc --noEmit", "type-check:watch": "vue-tsc --noEmit --watch", "buildspa": "quasar build -m spa", @@ -21,8 +21,8 @@ "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", - "pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.57' quasar dev -m pwa", - "spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.57' quasar dev", + "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.58' quasar dev", "debug": "quasar dev --mode debug", "test": "echo \"No test specified\" && exit 0", "generate-sw": "workbox generateSW workbox-config.js", diff --git a/src-pwa/custom-service-worker.js b/src-pwa/custom-service-worker.js index f553cce2..bafc1ab5 100755 --- a/src-pwa/custom-service-worker.js +++ b/src-pwa/custom-service-worker.js @@ -3,7 +3,7 @@ /* global workbox */ /* global cfgenv */ -const VITE_APP_VERSION = '1.2.57'; +const VITE_APP_VERSION = '1.2.58'; // Costanti di configurazione const DYNAMIC_CACHE = 'dynamic-cache-v2'; diff --git a/src/components/CProductTable/CProductTable.ts b/src/components/CProductTable/CProductTable.ts index 28f5329c..3d339931 100755 --- a/src/components/CProductTable/CProductTable.ts +++ b/src/components/CProductTable/CProductTable.ts @@ -79,7 +79,7 @@ export default defineComponent({ type: Object, required: false, default: () => ({}), - } + }, }, setup(props, { emit }) { // Copia locale della lista_prodotti per manipolazione interna @@ -91,6 +91,8 @@ export default defineComponent({ const $q = useQuasar(); + const searchText = ref(''); + const arrordersCart = ref([]); const globalStore = useGlobalStore(); @@ -149,6 +151,10 @@ export default defineComponent({ ), { deep: true }; + watch(() => searchText.value, () => { + searchProducts(); + }); + const allColumns = ref([]); const isVisibleEditBtn = ref(false); @@ -874,7 +880,14 @@ export default defineComponent({ function isEditColumn(name: string): boolean { const column = allColumns.value.find((col) => col.name === name); 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) const isColumnVisible = (column: string, real?: boolean, element?: any) => { @@ -891,20 +904,40 @@ export default defineComponent({ (!props.optcatalogo.showListaArgomenti || (props.optcatalogo.showListaArgomenti && !isEditColumn(column))); - if (props.options?.showbuttAdd && column === 'addtolist' - && (!element || !props.lista_prod_confronto.some((prod: any) => prod._id === element?._id)) + if ( + props.options?.showbuttAdd && + column === 'addtolist' && + (!element || + !props.lista_prod_confronto.some((prod: any) => prod._id === element?._id)) ) { - if (tools.isCollaboratore()) - ok = true + if (tools.isCollaboratore()) ok = true; } - if (!props.options?.showbuttAdd && column === 'addtolist' && (element && props.lista_prod_confronto.some((prod: any) => prod._id === element?._id))) { - ok = false + if (column === 'addtolist') { + if (!faiConfronto()) { + ok = false + } } 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 column = allColumns.value.find((col) => col.name === name); return column ? column.label : ''; @@ -1118,7 +1151,7 @@ export default defineComponent({ } function addtolist(element) { - emit('addtolist', element) + emit('addtolist', element); } function getFieldClick(element: any, field: any): (() => void) | null { @@ -1242,6 +1275,41 @@ export default defineComponent({ 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); return { @@ -1292,6 +1360,9 @@ export default defineComponent({ addtoCart, arrordersCart, addtolist, + searchProducts, + searchText, + isElementVisible, }; }, }); diff --git a/src/components/CProductTable/CProductTable.vue b/src/components/CProductTable/CProductTable.vue index 436f210a..3245f4f2 100755 --- a/src/components/CProductTable/CProductTable.vue +++ b/src/components/CProductTable/CProductTable.vue @@ -5,6 +5,26 @@
{{ internalProducts?.length }} elementi nella lista
+
+ + +
+ Lista filtrata con il termine "{{ searchText }}" +
+
- + - +