- aggiornato la visualoizzazione per scaricare il PDF e per aprirlo

This commit is contained in:
Surya Paolo
2025-05-30 10:49:25 +02:00
parent 5ba3bef8a1
commit 72d5574fab
19 changed files with 827 additions and 543 deletions

4
.env
View File

@@ -1,6 +1,6 @@
VITE_APP_VERSION="1.2.50" VITE_APP_VERSION="1.2.52"
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.50.js" VITE_SERVICE_WORKER_FILE="sw-1.2.52.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.50"> <meta name="version" content="1.2.52">
<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.50", "version": "1.2.52",
"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.50' quasar dev", "dev": "PORT=8089 APP_VERSION='1.2.52' 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.50' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.50' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.52' 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.50' quasar build -m spa", "buildspa": "APP_VERSION='1.2.52' 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.50' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.52' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.50' quasar dev", "spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.52' 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.50", "version": "1.2.52",
"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.50' quasar dev", "dev": "PORT=8083 APP_VERSION='1.2.52' 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.50' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.52' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.50' quasar dev", "spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.52' 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.50", "version": "1.2.52",
"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.50' quasar dev", "dev": "PORT=8087 APP_VERSION='1.2.52' 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.50' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.50' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.52' 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.50' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.52' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.50' quasar dev", "spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.52' 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.50", "version": "1.2.52",
"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.50' quasar dev", "dev": "PORT=8089 APP_VERSION='1.2.52' 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.50' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.50' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.52' 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.50' quasar build -m spa", "buildspa": "APP_VERSION='1.2.52' 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.50' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.52' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.50' quasar dev", "spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.52' 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.50", "version": "1.2.52",
"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.50' quasar dev", "dev": "PORT=8083 APP_VERSION='1.2.52' 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.50' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.50' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.52' 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.50' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.52' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.50' quasar dev", "spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.52' 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.50", "version": "1.2.52",
"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.50' quasar dev", "dev": "PORT=8093 APP_VERSION='1.2.52' 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.50' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.50' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.52' 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.50' quasar build -m spa", "buildspa": "APP_VERSION='1.2.52' 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.50' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.52' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.50' quasar dev", "spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.52' 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.50", "version": "1.2.52",
"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.50' quasar dev", "dev": "PORT=8085 APP_VERSION='1.2.52' 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.50' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.50' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.52' 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.50' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.52' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.50' quasar dev", "spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.52' 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.50", "version": "1.2.52",
"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.50' PORT=8084 quasar dev", "dev": "APP_VERSION='1.2.52' 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.50' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.50' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.52' 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.50' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.52' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.50' quasar dev", "spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.52' 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.50'; const VITE_APP_VERSION = '1.2.52';
// Costanti di configurazione // Costanti di configurazione
const DYNAMIC_CACHE = 'dynamic-cache-v2'; const DYNAMIC_CACHE = 'dynamic-cache-v2';

View File

@@ -6,7 +6,7 @@
:prop_mytable="table" :prop_mytable="table"
:options="tools.optionsTable(table)" :options="tools.optionsTable(table)"
:prop_mytitlenew="tools.getTitleAnnuncio(table)" :prop_mytitlenew="tools.getTitleAnnuncio(table)"
prop_mytitle="Cataloghi" prop_mytitle=""
:prop_mycolumns="col" :prop_mycolumns="col"
:prop_colkey="prop_colkey" :prop_colkey="prop_colkey"
:col_title="col_title" :col_title="col_title"

View File

@@ -524,6 +524,7 @@
row: opt.rowclass, row: opt.rowclass,
'items-stretch': opt.rowclass, 'items-stretch': opt.rowclass,
'justify-evenly': opt.rowclass, 'justify-evenly': opt.rowclass,
'q-col-gutter-y-md': opt.rowclass,
}" }"
> >
<div <div

View File

@@ -2,8 +2,13 @@
<q-card <q-card
v-if="myrec" v-if="myrec"
bordered bordered
class="full-height flex flex-column justify-evenly" class="full-height justify-evenly catalog-card"
:style="`width: ` + opt.widthcard + `; ` + (opt.heightcard ? `height: ` + opt.heightcard + `;` : '')" :style="
`width: ` +
opt.widthcard +
`; ` +
(opt.heightcard ? `height: ` + opt.heightcard + `;` : '')
"
> >
<q-img <q-img
:width="opt.widthimg" :width="opt.widthimg"
@@ -14,29 +19,38 @@
:src="tools.getFullFileName([myrec.foto_collana], table, '', myrec._id)" :src="tools.getFullFileName([myrec.foto_collana], table, '', myrec._id)"
> >
<template v-slot:error> <template v-slot:error>
<div class="absolute-full flex flex-center text-white">immagine non impostata</div> <div class="absolute-full flex flex-center text-white">
immagine non impostata
</div>
</template> </template>
<!--<div class="text-h6 absolute-bottom text-left"> <!--<div class="text-h6 absolute-bottom text-left">
{{ myrec.title }} {{ myrec.title }}
</div>--> </div>-->
</q-img> </q-img>
<q-card-section class="q-px-sm" style="margin-top: 0; flex-grow: 0; align-self: flex-start;"> <q-card-section
class="q-px-sm"
style="margin-top: 0; flex-grow: 0; align-self: flex-start"
>
<div <div
class="q-mb-md text-center text-bold" class="q-mb-md text-center text-bold"
style="font-size: 1.15rem" style="font-size: 1.15rem"
> >
<a <div class="q-mb-md text-center text-bold">
:href="pagina_collegata" <span
target="_blank" class="text-link"
>{{ myrec.title }}</a @click="naviga(pagina_collegata)"
> >
{{ myrec.title }}
</span>
</div>
</div> </div>
<div class="q-px-md"> <div class="q-px-md">
<div class="text-caption text-h7 text-grey q-pb-xs"> <div class="text-caption text-h7 text-grey q-pb-xs">
<q-icon name="fas fa-list-ol" /> {{ $t('cataloglist.numprodotti') }}: <q-icon name="fas fa-list-ol" />&nbsp; {{ $t('cataloglist.numprodotti') }}:
<span :class="`text-` + (numprodottistr === 0 ? 'red' : 'blue')">{{ numprodottistr }}</span> <span :class="`text-` + (numprodottistr === 0 ? 'red' : 'blue')">{{
numprodottistr
}}</span>
</div> </div>
<div <div
v-if="!tools.isUtente() && dettagli" v-if="!tools.isUtente() && dettagli"
@@ -45,7 +59,11 @@
<q-icon name="fas fa-user" /> {{ $t('cataloglist.referenti') }}: <q-icon name="fas fa-user" /> {{ $t('cataloglist.referenti') }}:
<span <span
v-if="myrec.referenti && myrec.referenti.length > 0" v-if="myrec.referenti && myrec.referenti.length > 0"
:class="`text-bold ` + myrec.referenti && myrec.referenti.length > 0 ? 'text-blue' : 'text-red'" :class="
`text-bold ` + myrec.referenti && myrec.referenti.length > 0
? 'text-blue'
: 'text-red'
"
> >
{{ myrec.referenti ? myrec.referenti.join(', ') : '' }} {{ myrec.referenti ? myrec.referenti.join(', ') : '' }}
</span> </span>
@@ -103,15 +121,11 @@
</div> </div>
<div <div
v-if="myrec.pdf_online" v-if="myrec.pdf_online"
class="text-caption text-h7 text-blue q-pb-xs" class="text-caption text-h7 text-grey q-pb-xs"
> >
<q-icon name="fas fa-book" />&nbsp; <q-icon name="fas fa-book" />&nbsp; Aggiornato al ({{
<a tools.getstrDate(myrec.data_online)
:href="myrec.pdf_online" }})
target="_blank"
>PDF OnLine</a
>
aggiornato al ({{ tools.getstrDate(myrec.data_online) }})
</div> </div>
<div <div
v-if="!tools.isUtente() && myrec.pdf_online_stampa && dettagli" v-if="!tools.isUtente() && myrec.pdf_online_stampa && dettagli"
@@ -130,8 +144,12 @@
class="text-caption text-h7 text-grey q-pb-xs" class="text-caption text-h7 text-grey q-pb-xs"
> >
<q-icon name="fas fa-list" /> Lista generata il: <q-icon name="fas fa-list" /> Lista generata il:
<span :class="`text-` + (tools.isDateValid(myrec.data_lista_generata) ? 'blue' : 'red')" <span
>{{ tools.getstrDate(myrec.data_lista_generata) || '(non ancora generata)' }} da :class="
`text-` + (tools.isDateValid(myrec.data_lista_generata) ? 'blue' : 'red')
"
>{{ tools.getstrDate(myrec.data_lista_generata) || '(non ancora generata)' }}
da
{{ myrec.username_lista_generata }} {{ myrec.username_lista_generata }}
</span> </span>
</div> </div>
@@ -140,11 +158,34 @@
</q-card-section> </q-card-section>
<q-card-actions <q-card-actions
v-if="!tools.isUtente() && dettagli"
align="center" align="center"
class="q-mt-auto q-mx-auto q-mb-sm" class="q-mt-auto q-mx-auto q-mb-sm"
> >
<q-btn
v-if="myrec.pdf_online"
unelevated
rounded
color="primary"
icon="fas fa-file-pdf"
:label="`Apri PDF`"
:href="tools.getURLByHostAndFilePath(myrec.pdf_online)"
size="md"
class="hover-lift"
/>
<q-btn
v-if="myrec.pdf_online"
unelevated
rounded
color="primary"
icon="download"
:label="`Scarica PDF`"
:href="tools.getURLByHostAndFilePath(myrec.pdf_online)"
download
size="md"
class="hover-lift"
/>
<q-fab <q-fab
v-if="!tools.isUtente() && dettagli"
color="primary" color="primary"
icon="fas fa-caret-down" icon="fas fa-caret-down"
label="Menu" label="Menu"
@@ -182,13 +223,13 @@
icon="fas fa-pencil-alt" icon="fas fa-pencil-alt"
/> />
</q-fab> </q-fab>
<q-btn <!--<q-btn
flat flat
color="primary" color="primary"
label="Info" label="Info"
icon="fas fa-info" icon="fas fa-info"
@click="apriInfo = true" @click="apriInfo = true"
/> />-->
</q-card-actions> </q-card-actions>
</q-card> </q-card>
@@ -214,9 +255,15 @@
class="q-ma-sm" class="q-ma-sm"
> >
<CLabel <CLabel
:value="myrec.referenti && myrec.referenti.length > 0 ? myrec.referenti.join(', ') : '[Non Assegnato]'" :value="
myrec.referenti && myrec.referenti.length > 0
? myrec.referenti.join(', ')
: '[Non Assegnato]'
"
:label="$t('cataloglist.referenti') + `:`" :label="$t('cataloglist.referenti') + `:`"
:color="myrec.referenti && myrec.referenti.length > 0 ? 'text-blue' : 'text-red'" :color="
myrec.referenti && myrec.referenti.length > 0 ? 'text-blue' : 'text-red'
"
/> />
</div> </div>
<div <div
@@ -256,8 +303,9 @@
> >
<CLabel <CLabel
:value=" :value="
tools.getstrDate(myrec.data_lista_generata) + ' da ' + myrec.username_lista_generata || tools.getstrDate(myrec.data_lista_generata) +
'ancora non è stata generata' ' da ' +
myrec.username_lista_generata || 'ancora non è stata generata'
" "
label="Lista generata" label="Lista generata"
:color="myrec.pdf_generato ? 'green' : 'red'" :color="myrec.pdf_generato ? 'green' : 'red'"

View File

@@ -422,7 +422,6 @@ export default defineComponent({
label: 'Magazz.', label: 'Magazz.',
field: 'quantity', field: 'quantity',
align: 'right', align: 'right',
visu: costanti.VISUCAMPI.PER_EDITORE,
}, },
{ {
name: 'actions', name: 'actions',
@@ -437,7 +436,7 @@ export default defineComponent({
const allColumnsComputed = computed(() => { const allColumnsComputed = computed(() => {
return allColumns.value.filter( return allColumns.value.filter(
(col) => !col.visu || col.visu === costanti.VISUCAMPI.PER_TUTTI (col) => !col.visu || col.visu === costanti.VISUCAMPI.PER_TUTTI || (col.visu === costanti.VISUCAMPI.PER_EDITORE && tools.isCollaboratore())
); );
}); });
@@ -448,6 +447,7 @@ export default defineComponent({
if (props.table === shared_consts.TABLES_CATALOG) { if (props.table === shared_consts.TABLES_CATALOG) {
selectedColumns.value = selectedColumns_Catalogs.value; selectedColumns.value = selectedColumns_Catalogs.value;
} else { } else {
// "products"
selectedColumns.value = tools.isUtente() selectedColumns.value = tools.isUtente()
? selectedColumns_Utenti.value ? selectedColumns_Utenti.value
: selectedColumns_Editori.value; : selectedColumns_Editori.value;

View File

@@ -10351,6 +10351,22 @@ export const tools = {
); );
}, },
isCollStampa() {
const userStore = useUserStore();
return (userStore.isGrafico || userStore.isAdmin)
},
isCollaboratore() {
const userStore = useUserStore();
return (
userStore.isEditor ||
userStore.isCommerciale ||
userStore.isAdmin ||
userStore.isManager || userStore.isGrafico
);
},
getsearchList_RaccoltaCataloghi() { getsearchList_RaccoltaCataloghi() {
const lista = [ const lista = [
{ {

View File

@@ -187,3 +187,60 @@ body {
border-color: #5c8ef4 !important; border-color: #5c8ef4 !important;
box-shadow: 0 0 0 2px rgba(92, 142, 244, 0.3); box-shadow: 0 0 0 2px rgba(92, 142, 244, 0.3);
} }
.pdf-link {
font-family: 'Arial', sans-serif;
font-size: 1.1rem;
color: #1a3f8a;
text-decoration: underline;
cursor: pointer;
transition: color 0.2s ease-in-out;
&:hover {
color: #5c8ef4;
}
}
.intestaz-col {
font-size: 1.10rem;
}
.catalog-download-section {
padding: 2rem;
display: flex;
justify-content: center;
align-items: center;
background-color: #f9f9f9;
}
.catalog-card {
border-radius: 16px;
max-width: 400px;
width: 100%;
transition: transform 0.2s ease-in-out;
}
.catalog-card:hover {
transform: translateY(-5px);
}
.hover-lift {
transition: transform 0.2s ease;
}
.hover-lift:hover {
transform: translateY(-2px);
}
.text-link{
font-family: 'Arial', sans-serif;
font-size: 1.1rem;
color: #1a3f8a;
text-decoration: underline;
cursor: pointer;
transition: color 0.2s ease-in-out;
&:hover {
color: #5c8ef4;
}
}

View File

@@ -124,8 +124,13 @@ export default defineComponent({
{ name: 'azioni', label: 'Azioni', field: 'azioni', align: 'center' }, { name: 'azioni', label: 'Azioni', field: 'azioni', align: 'center' },
]; ];
const pdfRows = computed(() => [ const pdfRows = computed(() => {
return pdfRowsall.value.filter((row) => row.visible);
});
const pdfRowsall = computed(() => [
{ {
visible: true,
name: 'PDF Generato', name: 'PDF Generato',
pdf: myCatalog.value.pdf_generato, pdf: myCatalog.value.pdf_generato,
data: myCatalog.value.data_generato, data: myCatalog.value.data_generato,
@@ -135,15 +140,17 @@ export default defineComponent({
action: () => pubblicaPDF(false), action: () => pubblicaPDF(false),
}, },
{ {
visible: true,
name: 'PDF Generato (Compresso)', name: 'PDF Generato (Compresso)',
pdf: myCatalog.value.pdf_generato_compressed, pdf: myCatalog.value.pdf_generato_compressed,
data: myCatalog.value.data_generato, data: myCatalog.value.data_generato,
showButton: true, showButton: true,
buttonLabel: 'Pubblica PDF OnLine (Compr)', buttonLabel: 'Pubblica PDF Compresso',
size: myCatalog.value.pdf_generato_compr_size, size: myCatalog.value.pdf_generato_compr_size,
action: () => pubblicaPDF(true), action: () => pubblicaPDF(true),
}, },
{ {
visible: tools.isCollStampa(),
name: 'PDF Generato Stampa', name: 'PDF Generato Stampa',
pdf: myCatalog.value.pdf_generato_stampa, pdf: myCatalog.value.pdf_generato_stampa,
data: myCatalog.value.data_generato_stampa, data: myCatalog.value.data_generato_stampa,
@@ -153,11 +160,12 @@ export default defineComponent({
action: () => pubblicaPDFStampa(false), action: () => pubblicaPDFStampa(false),
}, },
{ {
visible: tools.isCollStampa(),
name: 'PDF Generato Stampa (Compresso)', name: 'PDF Generato Stampa (Compresso)',
pdf: myCatalog.value.pdf_generato_stampa_compressed, pdf: myCatalog.value.pdf_generato_stampa_compressed,
data: myCatalog.value.data_generato_stampa, data: myCatalog.value.data_generato_stampa,
showButton: true, showButton: true,
buttonLabel: 'Pubblica PDF Stampa (Compr)', buttonLabel: 'Pubblica PDF Stampa (Compresso)',
size: myCatalog.value.pdf_generato_stampa_compr_size, size: myCatalog.value.pdf_generato_stampa_compr_size,
action: () => pubblicaPDFStampa(true), action: () => pubblicaPDFStampa(true),
}, },
@@ -326,6 +334,7 @@ export default defineComponent({
() => tabcatalogo.value, () => tabcatalogo.value,
() => { () => {
if (!onlyCatalogoPDF.value) { if (!onlyCatalogoPDF.value) {
if (tabcatalogo.value === 'lista' || tabcatalogo.value === 'visu')
tools.setCookie('TAB_CAT', tabcatalogo.value); tools.setCookie('TAB_CAT', tabcatalogo.value);
} }
} }
@@ -2534,7 +2543,6 @@ export default defineComponent({
idCatalog: myCatalog.value._id, idCatalog: myCatalog.value._id,
stampa: instampa, stampa: instampa,
comprimi: true, comprimi: true,
compressione: 'printer',
path: 'upload/cataloghi/', path: 'upload/cataloghi/',
// idtag_pdfcontent: 'tag-catalogo', // idtag_pdfcontent: 'tag-catalogo',
compressione: 'printer', compressione: 'printer',

View File

@@ -9,8 +9,9 @@
</div> </div>
<div <div
v-if=" v-if="
ispageCatalogata && !optcatalogo.showOnlyCatalogoPDF ispageCatalogata &&
&& (tools.isEditor() || tools.isCommerciale()) && !optcatalogo.showOnlyCatalogoPDF &&
(tools.isEditor() || tools.isCommerciale()) &&
myCatalog?.referenti?.length > 0 myCatalog?.referenti?.length > 0
" "
class="text-h7 text-center text-red q-ma-sm" class="text-h7 text-center text-red q-ma-sm"
@@ -33,6 +34,12 @@
toggle-color="primary" toggle-color="primary"
></q-toggle> ></q-toggle>
--> -->
<q-tab
name="visu"
icon="fas fa-book"
label="Catalogo"
>
</q-tab>
<q-tab <q-tab
v-if="myCatalog?.lista_prodotti" v-if="myCatalog?.lista_prodotti"
name="lista" name="lista"
@@ -41,20 +48,20 @@
> >
</q-tab> </q-tab>
<q-tab <q-tab
name="visu" name="pdf"
icon="fas fa-book" icon="fas fa-file-pdf"
label="Catalogo" label="PDF"
> >
</q-tab> </q-tab>
<q-tab <q-tab
v-if="tools.isGrafico()" v-if="tools.isGrafico() && false"
name="sfondo" name="sfondo"
icon="fas fa-image" icon="fas fa-image"
label="Sfondo" label="Sfondo"
> >
</q-tab> </q-tab>
<q-tab <q-tab
v-if="tools.isGrafico()" v-if="tools.isGrafico() && false"
name="pagine" name="pagine"
icon="fas fa-book-reader" icon="fas fa-book-reader"
label="Pagine" label="Pagine"
@@ -244,102 +251,30 @@
@rigenera="generaListaLibri()" @rigenera="generaListaLibri()"
/> />
</q-tab-panel> </q-tab-panel>
<q-tab-panel <q-tab-panel
name="visu" name="pdf"
v-if="optcatalogo" v-if="optcatalogo"
:style="{ 'padding': optcatalogo.showOnlyCatalogoPDF ? '0px !important' : '' }"
> >
<q-inner-loading <div>
id="spinner" <div>
:showing="generatinglist"
>
</q-inner-loading>
<div class="">
<div class="text-center">
<q-spinner
v-if="ismounting"
color="primary"
size="3em"
:thickness="2"
/>
</div>
<div
v-if="!ismounting"
class="panel"
>
<div :class="{container: !optcatalogo.showOnlyCatalogoPDF}">
<q-tabs
v-model="tabvisu"
dense
class="bg-indigo text-white"
>
<q-tab
v-if="showListaFiltrata"
name="categorie"
icon="fas fa-folder-open"
label="Categorie"
>
<q-badge
v-if="cat"
color="red"
floating
>1</q-badge
>
</q-tab>
<q-tab
v-if="showListaFiltrata && false"
name="autori"
icon="fas fa-user"
label="Autori"
>
<q-badge
v-if="filter.author"
color="red"
floating
>1</q-badge
>
</q-tab>
<q-tab
v-if="showListaFiltrata && false"
name="ricerca"
icon="fas fa-search"
label="Cerca"
>
<q-badge
v-if="getSearchText()"
color="red"
floating
>1</q-badge
>
</q-tab>
</q-tabs>
<CTitleBanner
v-if="!optcatalogo.showOnlyCatalogoPDF"
v-show="tabcatalogo === 'visu' && !tools.isUtente() && arrProducts?.length > 0"
class="q-pa-xs"
title="Genera PDF"
bgcolor="bg-blue"
clcolor="text-white"
mystyle=""
myclass="myshad"
:canopen="true"
:visible="false"
>
<div v-if="tabcatalogo === 'visu'">
<div <div
v-if="!tools.isUtente()" v-if="!tools.isUtente()"
class="row justify-center" class="row justify-center"
> >
<q-btn <q-btn
v-if="optcatalogo.pdf && !optcatalogo.generazionePDFInCorso" v-if="optcatalogo.pdf && !optcatalogo.generazionePDFInCorso"
:label="`PREPARA PDF WEB`" icon="fas fa-file-pdf"
:label="`GENERA PDF`"
@click="preparePDFWeb" @click="preparePDFWeb"
></q-btn> ></q-btn>
<q-btn <q-btn
v-if="optcatalogo.pdf && !optcatalogo.generazionePDFInCorso" v-if="
:label="`PREPARA PDF STAMPA`" optcatalogo.pdf &&
!optcatalogo.generazionePDFInCorso &&
tools.isCollStampa()
"
icon="fas fa-print"
:label="`GENERA PDF STAMPA`"
@click="preparePDFStampa" @click="preparePDFStampa"
></q-btn> ></q-btn>
@@ -348,7 +283,10 @@
v-model="optcatalogo.selectedVersionStampabile" v-model="optcatalogo.selectedVersionStampabile"
:options="[ :options="[
{ label: 'Versione Web', value: shared_consts.PREPARA_PDF.WEB }, { label: 'Versione Web', value: shared_consts.PREPARA_PDF.WEB },
{ label: 'Versione Stampabile', value: shared_consts.PREPARA_PDF.STAMPA }, {
label: 'Versione Stampabile',
value: shared_consts.PREPARA_PDF.STAMPA,
},
]" ]"
label="Seleziona Versione" label="Seleziona Versione"
emit-value emit-value
@@ -427,8 +365,7 @@
{ parteesternafissa: true } { parteesternafissa: true }
) )
}}<br /> }}<br />
Margine Margine Top:
Top:
{{ {{
tools.adjustSize( tools.adjustSize(
optcatalogo, optcatalogo,
@@ -437,7 +374,8 @@
true, true,
{ paddingTop: true, parteesternafissa: true } { paddingTop: true, parteesternafissa: true }
) )
}} - Bottom: }}
- Bottom:
{{ {{
tools.adjustSize( tools.adjustSize(
optcatalogo, optcatalogo,
@@ -450,9 +388,8 @@
</div> </div>
</div> </div>
<CTitleBanner <CTitleBanner
v-show=" v-if="false"
tabcatalogo === 'visu' && tools.isAdmin() && arrProducts?.length > 0 v-show="tools.isAdmin() && arrProducts?.length > 0"
"
class="q-pa-xs" class="q-pa-xs"
title="Configurazione" title="Configurazione"
bgcolor="bg-blue" bgcolor="bg-blue"
@@ -620,25 +557,14 @@
<div v-if="strout"> <div v-if="strout">
{{ strout }} {{ strout }}
</div> </div>
<CTitleBanner <div>
v-show="
tabcatalogo === 'visu' && !tools.isUtente() && arrProducts?.length > 0
"
class="q-pa-xs"
title="Lista PDF"
bgcolor="bg-blue"
clcolor="text-white"
mystyle=""
myclass="myshad"
:canopen="true"
:visible="true"
>
<div v-if="myCatalog"> <div v-if="myCatalog">
<div <div
v-if="myCatalog.pdf_generato" v-if="myCatalog.pdf_generato"
class="bg-green-1 q-ma-sm q-pa-sm" class="bg-green-1 q-ma-sm q-pa-sm"
> >
<div class="bg-blue-1 text-red text-bold text-h6 q-ma-sm q-pa-sm"> <div v-if="tools.isCollaboratore()">
<div class="bg-blue-1 text-red text-bold text-h7 q-ma-sm q-pa-sm">
<strong>PDF generati Temporanei</strong> <strong>PDF generati Temporanei</strong>
</div> </div>
@@ -689,58 +615,253 @@
</q-td> </q-td>
</template> </template>
</q-table> </q-table>
</div>
<div class="bg-red-1 q-pa-md q-mt-md">
<div class="bg-blue-1 text-green text-bold text-h6 q-ma-sm q-pa-sm">
<strong>PDF Pubblicati OnLine</strong>
</div> </div>
<table class="q-table q-table--flat q-table--dense q-ma-none q-pa-none"> <div class="row">
<tbody> <div class="catalog-download-section">
<tr> <q-card class="catalog-card shadow-8">
<td> <q-card-section class="text-center">
<strong <q-img
><a :src="
v-if="myCatalog.pdf_online" tools.getFullFileName(
:href="tools.getURLByHostAndFilePath(myCatalog.pdf_online)" [myCatalog.foto_collana],
target="_blank" 'catalogs',
class="text-bold" '',
>PDF OnLine</a myCatalog._id
></strong )
"
class="catalog-image"
height="128px"
fit="contain"
style="max-width: 100%"
/>
<div class="text-h5 q-mt-sm q-mb-xs">
Catalogo {{ `${myCatalog.title}` }}
</div>
<div class="text-caption text-grey-8 text-center q-mt-sm">
<div class="row items-center justify-center">
<q-icon
name="fas fa-file-pdf"
size="sm"
/>
<span class="q-ml-xs">
{{
myCatalog.pdf_online
? `${myCatalog.pdf_online_size} MB`
: ''
}}
</span>
<q-icon
name="fas fa-clock"
size="sm"
class="q-ml-sm"
/>
<span class="q-ml-xs"> Pubblicato il </span>
<span class="q-ml-xs">
{{
myCatalog.pdf_online
? tools.getstrDate(myCatalog.data_online)
: ''
}}
</span>
</div>
</div>
</q-card-section>
<q-card-actions
align="center"
class="q-pb-md"
> >
</td> <q-btn
<td>{{ myCatalog.pdf_online_size }} MB</td> v-if="myCatalog.pdf_online"
<td> unelevated
{{ tools.getstrDateTime(myCatalog.data_online) }} rounded
</td> color="primary"
</tr> icon="fas fa-file-pdf"
<tr> :label="`Apri PDF`"
<td> :href="tools.getURLByHostAndFilePath(myCatalog.pdf_online)"
<strong size="md"
><a class="hover-lift"
/>
<q-btn
v-if="myCatalog.pdf_online"
unelevated
rounded
color="primary"
icon="download"
:label="`Scarica PDF`"
:href="tools.getURLByHostAndFilePath(myCatalog.pdf_online)"
download
size="md"
class="hover-lift"
/>
</q-card-actions>
</q-card>
</div>
<div
v-if="tools.isCollStampa()"
class="catalog-download-section"
>
<q-card class="catalog-card shadow-8">
<q-card-section class="text-center">
<q-img
:src="
tools.getFullFileName(
[myCatalog.foto_collana],
'catalogs',
'',
myCatalog._id
)
"
class="catalog-image"
height="128px"
fit="contain"
style="max-width: 100%"
/>
<div class="text-h5 q-mt-sm q-mb-xs">Versione per STAMPA</div>
<div class="text-caption text-grey-8 text-center q-mt-sm">
<div class="row items-center justify-center">
<q-icon
name="fas fa-print"
size="sm"
/>
<span class="q-ml-xs">
{{
myCatalog.pdf_online
? `${myCatalog.pdf_online_stampa_size} MB`
: ''
}}
</span>
<q-icon
name="fas fa-clock"
size="sm"
class="q-ml-sm"
/>
<span class="q-ml-xs"> Pubblicato il </span>
<span class="q-ml-xs">
{{
myCatalog.pdf_online_stampa
? tools.getstrDate(myCatalog.data_online_stampa)
: ''
}}
</span>
</div>
</div>
</q-card-section>
<q-card-actions
align="center"
class="q-pb-md"
>
<q-btn
v-if="myCatalog.pdf_online_stampa" v-if="myCatalog.pdf_online_stampa"
unelevated
rounded
color="primary"
icon="fas fa-file-pdf"
:label="`Apri PDF`"
:href=" :href="
tools.getURLByHostAndFilePath(myCatalog.pdf_online_stampa) tools.getURLByHostAndFilePath(myCatalog.pdf_online_stampa)
" "
target="_blank" size="md"
class="text-bold" class="hover-lift"
>PDF OnLine Stampa</a />
></strong <q-btn
v-if="myCatalog.pdf_online_stampa"
unelevated
rounded
color="primary"
icon="download"
:label="`Scarica PDF`"
:href="
tools.getURLByHostAndFilePath(myCatalog.pdf_online_stampa)
"
download
size="md"
class="hover-lift"
/>
</q-card-actions>
</q-card>
</div>
</div>
</div>
</div>
</div>
</div>
</q-tab-panel>
<q-tab-panel
name="visu"
v-if="optcatalogo"
:style="{ padding: optcatalogo.showOnlyCatalogoPDF ? '0px !important' : '' }"
> >
</td> <q-inner-loading
<td>{{ myCatalog.pdf_online_stampa_size }} MB</td> id="spinner"
<td> :showing="generatinglist"
{{ tools.getstrDateTime(myCatalog.data_online_stampa) }} >
</td> </q-inner-loading>
</tr> <div class="">
</tbody> <div class="text-center">
</table> <q-spinner
v-if="ismounting"
color="primary"
size="3em"
:thickness="2"
/>
</div> </div>
</div> <div
</div> v-if="!ismounting"
</CTitleBanner> class="panel"
</div> >
</CTitleBanner> <div :class="{ container: !optcatalogo.showOnlyCatalogoPDF }">
<q-tabs
v-model="tabvisu"
dense
class="bg-indigo text-white"
>
<q-tab
v-if="showListaFiltrata"
name="categorie"
icon="fas fa-folder-open"
label="Categorie"
>
<q-badge
v-if="cat"
color="red"
floating
>1</q-badge
>
</q-tab>
<q-tab
v-if="showListaFiltrata && false"
name="autori"
icon="fas fa-user"
label="Autori"
>
<q-badge
v-if="filter.author"
color="red"
floating
>1</q-badge
>
</q-tab>
<q-tab
v-if="showListaFiltrata && false"
name="ricerca"
icon="fas fa-search"
label="Cerca"
>
<q-badge
v-if="getSearchText()"
color="red"
floating
>1</q-badge
>
</q-tab>
</q-tabs>
<q-tab-panels <q-tab-panels
v-model="tabvisu" v-model="tabvisu"
@@ -849,13 +970,17 @@
item.type === costanti.FieldType.select || item.type === costanti.FieldType.select ||
item.type === costanti.FieldType.select_by_server item.type === costanti.FieldType.select_by_server
" "
:label="item.value && item.value._id > 0 ? undefined : labelcombo(item)" :label="
item.value && item.value._id > 0 ? undefined : labelcombo(item)
"
v-model:value="item.value" v-model:value="item.value"
:addall="item.addall" :addall="item.addall"
:addnone="item.addnone" :addnone="item.addnone"
:addlast="true" :addlast="true"
:tablesel=" :tablesel="
item.type === costanti.FieldType.select_by_server ? item.tablesel : '' item.type === costanti.FieldType.select_by_server
? item.tablesel
: ''
" "
:pickup="item.type === costanti.FieldType.select_by_server" :pickup="item.type === costanti.FieldType.select_by_server"
:label-color="$q.dark.isActive ? 'white' : 'black'" :label-color="$q.dark.isActive ? 'white' : 'black'"
@@ -870,7 +995,8 @@
:filter_extra="item.filter_extra" :filter_extra="item.filter_extra"
style="font-size: 0.8rem !important" style="font-size: 0.8rem !important"
:useinput=" :useinput="
item.useinput && item.type !== costanti.FieldType.select_by_server item.useinput &&
item.type !== costanti.FieldType.select_by_server
" "
> >
</CMySelect> </CMySelect>
@@ -906,9 +1032,17 @@
></q-select> ></q-select>
</div> </div>
<div class="text-center q-py-sm prod_trov" v-if="!optcatalogo.showOnlyCatalogoPDF">
<div <div
v-if="cat === '' && arrProducts.length === 0 && showListaFiltrata && !optcatalogo.showOnlyCatalogoPDF" class="text-center q-py-sm prod_trov"
v-if="!optcatalogo.showOnlyCatalogoPDF"
>
<div
v-if="
cat === '' &&
arrProducts.length === 0 &&
showListaFiltrata &&
!optcatalogo.showOnlyCatalogoPDF
"
class="row justify-center text-h6" class="row justify-center text-h6"
> >
Seleziona {{ filtroStrApplicato }} Seleziona {{ filtroStrApplicato }}
@@ -965,7 +1099,12 @@
> >
<div class="flex-container-book"> <div class="flex-container-book">
<q-infinite-scroll <q-infinite-scroll
v-if="!optcatalogo.pdf && arrLoaded && arrLoaded.length > 0 && !ismounting" v-if="
!optcatalogo.pdf &&
arrLoaded &&
arrLoaded.length > 0 &&
!ismounting
"
ref="myinfscroll" ref="myinfscroll"
:initial-index="0" :initial-index="0"
@load="onLoadScroll" @load="onLoadScroll"
@@ -1042,11 +1181,16 @@
'card-page': false, 'card-page': false,
'pdf-section': true, 'pdf-section': true,
}" }"
:style="generateStylePageScheda(optcatalogo, recscheda.scheda)" :style="
generateStylePageScheda(optcatalogo, recscheda.scheda)
"
> >
<!--style {{generateStylePageScheda(optcatalogo, recscheda.scheda)}}--> <!--style {{generateStylePageScheda(optcatalogo, recscheda.scheda)}}-->
<div <div
v-if="recscheda.scheda.dimensioni.pagina?.testo_title?.contenuto" v-if="
recscheda.scheda.dimensioni.pagina?.testo_title
?.contenuto
"
:style="{ :style="{
'--scalecatalogx': tools.getScaleX( '--scalecatalogx': tools.getScaleX(
optcatalogo, optcatalogo,
@@ -1057,8 +1201,8 @@
recscheda.scheda recscheda.scheda
), ),
'line-height': 'line-height':
recscheda.scheda.dimensioni.pagina?.testo_title?.font recscheda.scheda.dimensioni.pagina?.testo_title
.line_height, ?.font.line_height,
display: 'flex', display: 'flex',
flexDirection: 'column', flexDirection: 'column',
position: 'relative', // Posizionamento assoluto position: 'relative', // Posizionamento assoluto
@@ -1080,7 +1224,10 @@
></div> ></div>
</div> </div>
<div <div
v-if="recscheda.scheda.dimensioni.pagina?.testo_up?.contenuto" v-if="
recscheda.scheda.dimensioni.pagina?.testo_up
?.contenuto
"
:style="{ :style="{
'--scalecatalogx': tools.getScaleX( '--scalecatalogx': tools.getScaleX(
optcatalogo, optcatalogo,
@@ -1116,8 +1263,8 @@
recscheda.scheda recscheda.scheda
), ),
'line-height': 'line-height':
recscheda.scheda.dimensioni.pagina?.testo_title?.font recscheda.scheda.dimensioni.pagina?.testo_title
.line_height, ?.font.line_height,
display: 'flex', display: 'flex',
flexDirection: 'column', flexDirection: 'column',
position: 'absolute', // Posizione assoluta rispetto al contenitore padre position: 'absolute', // Posizione assoluta rispetto al contenitore padre
@@ -1130,14 +1277,21 @@
}" }"
> >
<div <div
v-html="getTitoloPagina(null, optcatalogo.arrSchede[0], true)" v-html="
getTitoloPagina(
null,
optcatalogo.arrSchede[0],
true
)
"
></div> ></div>
</div> </div>
<div v-if="optcatalogo.indebug"> <div v-if="optcatalogo.indebug">
isStampa: {{ isStampa }} generazionePDFInCorso: isStampa: {{ isStampa }} generazionePDFInCorso:
{{ optcatalogo.generazionePDFInCorso }} getScaleX: {{ optcatalogo.generazionePDFInCorso }} getScaleX:
{{ tools.getScaleX(optcatalogo, recscheda.scheda) }} getScaleY: {{ tools.getScaleX(optcatalogo, recscheda.scheda) }}
getScaleY:
{{ tools.getScaleY(optcatalogo, recscheda.scheda) }} {{ tools.getScaleY(optcatalogo, recscheda.scheda) }}
IMG: IMG:
<span v-if="getTestoIntroduttivo(recscheda)"> <span v-if="getTestoIntroduttivo(recscheda)">