- Raccolte Cataloghi corretto e migliorato.
- Bottoni "Apri" e "PDF".
This commit is contained in:
4
.env
4
.env
@@ -1,6 +1,6 @@
|
||||
VITE_APP_VERSION="1.2.59"
|
||||
VITE_APP_VERSION="1.2.62"
|
||||
VITE_LANG_DEFAULT="it"
|
||||
VITE_PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||
VITE_SERVICE_WORKER_FILE="sw-1.2.59.js"
|
||||
VITE_SERVICE_WORKER_FILE="sw-1.2.62.js"
|
||||
VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
|
||||
VITE_VUE_ROUTER_MODE="history"
|
||||
@@ -10,7 +10,7 @@
|
||||
<meta name="description" content="<%= productDescription %>">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<meta name="msapplication-tap-highlight" content="no">
|
||||
<meta name="version" content="1.2.59">
|
||||
<meta name="version" content="1.2.62">
|
||||
<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<% } %>">
|
||||
|
||||
|
||||
14
package.json
14
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gruppomacro",
|
||||
"version": "1.2.59",
|
||||
"version": "1.2.62",
|
||||
"description": "Gruppo Macro",
|
||||
"productName": "Gruppo Macro",
|
||||
"author": "Surya",
|
||||
@@ -9,20 +9,20 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8089 APP_VERSION='1.2.59' quasar dev",
|
||||
"dev": "PORT=8089 APP_VERSION='1.2.62' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.59' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.59' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.62' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.62' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "APP_VERSION='1.2.59' quasar build -m spa",
|
||||
"buildspa": "APP_VERSION='1.2.62' 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.59' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.59' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.62' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.62' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cnm",
|
||||
"version": "1.2.59",
|
||||
"version": "1.2.62",
|
||||
"description": "Comunita Nuovo Mondo",
|
||||
"productName": "ComunitaNuovoMondo",
|
||||
"author": "Surya",
|
||||
@@ -9,7 +9,7 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8083 APP_VERSION='1.2.59' quasar dev",
|
||||
"dev": "PORT=8083 APP_VERSION='1.2.62' 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.59' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.59' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.62' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.62' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "freeplanet",
|
||||
"version": "1.2.59",
|
||||
"version": "1.2.62",
|
||||
"description": "freeplanet",
|
||||
"productName": "freeplanet",
|
||||
"author": "Surya",
|
||||
@@ -9,11 +9,11 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8087 APP_VERSION='1.2.59' quasar dev",
|
||||
"dev": "PORT=8087 APP_VERSION='1.2.62' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.59' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.59' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.62' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.62' 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.59' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.59' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.62' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.62' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gruppomacro",
|
||||
"version": "1.2.59",
|
||||
"version": "1.2.62",
|
||||
"description": "Gruppo Macro",
|
||||
"productName": "Gruppo Macro",
|
||||
"author": "Surya",
|
||||
@@ -9,20 +9,20 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8089 APP_VERSION='1.2.59' quasar dev",
|
||||
"dev": "PORT=8089 APP_VERSION='1.2.62' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.59' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.59' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.62' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.62' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "APP_VERSION='1.2.59' quasar build -m spa",
|
||||
"buildspa": "APP_VERSION='1.2.62' 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.59' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.59' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.62' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.62' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "kolibrilab",
|
||||
"version": "1.2.59",
|
||||
"version": "1.2.62",
|
||||
"description": "kolibrilab",
|
||||
"productName": "kolibrilab",
|
||||
"author": "Surya Paolo",
|
||||
@@ -8,11 +8,11 @@
|
||||
"keywords": [],
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"dev": "PORT=8083 APP_VERSION='1.2.59' quasar dev",
|
||||
"dev": "PORT=8083 APP_VERSION='1.2.62' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.59' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.59' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.62' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.62' 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.59' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.59' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.62' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.62' 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"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "nutriben",
|
||||
"version": "1.2.59",
|
||||
"version": "1.2.62",
|
||||
"description": "Nutriben",
|
||||
"productName": "Nutriben",
|
||||
"author": "Surya",
|
||||
@@ -9,20 +9,20 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8093 APP_VERSION='1.2.59' quasar dev",
|
||||
"dev": "PORT=8093 APP_VERSION='1.2.62' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.59' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.59' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.62' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.62' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "APP_VERSION='1.2.59' quasar build -m spa",
|
||||
"buildspa": "APP_VERSION='1.2.62' 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.59' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.59' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.62' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.62' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "piuchebuono",
|
||||
"version": "1.2.59",
|
||||
"version": "1.2.62",
|
||||
"description": "PiuCheBuono",
|
||||
"productName": "PiuCheBuono",
|
||||
"author": "Surya",
|
||||
@@ -9,11 +9,11 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8085 APP_VERSION='1.2.59' quasar dev",
|
||||
"dev": "PORT=8085 APP_VERSION='1.2.62' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.59' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.59' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.62' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.62' 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.59' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.59' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.62' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.62' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "riso",
|
||||
"version": "1.2.59",
|
||||
"version": "1.2.62",
|
||||
"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.59' PORT=8084 quasar dev",
|
||||
"dev": "APP_VERSION='1.2.62' PORT=8084 quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.59' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.59' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.62' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.62' 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.59' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.59' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.62' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.62' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/* global workbox */
|
||||
/* global cfgenv */
|
||||
|
||||
const VITE_APP_VERSION = '1.2.59';
|
||||
const VITE_APP_VERSION = '1.2.62';
|
||||
|
||||
// Costanti di configurazione
|
||||
const DYNAMIC_CACHE = 'dynamic-cache-v2';
|
||||
|
||||
@@ -11,6 +11,7 @@ const SW_FILE = `/${import.meta.env.VITE_SERVICE_WORKER_FILE}`;
|
||||
console.log('SWFILE: ', SW_FILE);
|
||||
|
||||
register(SW_FILE, {
|
||||
updateViaCache: 'none',
|
||||
scope: '/',
|
||||
/************* ✨ Codeium Command ⭐ *************/
|
||||
/**
|
||||
|
||||
@@ -180,37 +180,72 @@
|
||||
|
||||
<q-card-actions
|
||||
align="center"
|
||||
class="q-mt-auto q-mx-auto q-mb-sm"
|
||||
class="q-mt-auto q-mx-auto q-mb-xs"
|
||||
>
|
||||
<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, myrec.data_online ? (new Date(myrec.data_online)).getTime() : undefined)"
|
||||
icon="fas fa-external-link-alt"
|
||||
:label="`Apri`"
|
||||
@click="naviga(pagina_collegata)"
|
||||
size="md"
|
||||
class="hover-lift"
|
||||
class="hover-lift q-mx-sm"
|
||||
padding="sm"
|
||||
/>
|
||||
<q-btn
|
||||
<q-fab
|
||||
v-if="myrec.pdf_online"
|
||||
unelevated
|
||||
rounded
|
||||
color="primary"
|
||||
icon="download"
|
||||
:label="`Scarica PDF`"
|
||||
:href="tools.getURLByHostAndFilePath(myrec.pdf_online, myrec.data_online ? (new Date(myrec.data_online)).getTime() : undefined)"
|
||||
download
|
||||
color="accent"
|
||||
icon="fas fa-file-pdf"
|
||||
label="PDF"
|
||||
direction="up"
|
||||
dense
|
||||
size="md"
|
||||
class="hover-lift"
|
||||
/>
|
||||
padding="sm"
|
||||
>
|
||||
<a
|
||||
:href="
|
||||
tools.getURLByHostAndFilePath(
|
||||
myrec.pdf_online,
|
||||
myrec.data_online ? new Date(myrec.data_online).getTime() : undefined
|
||||
)
|
||||
"
|
||||
download
|
||||
>
|
||||
<q-fab-action
|
||||
icon="download"
|
||||
color="positive"
|
||||
label="Scarica PDF"
|
||||
size="md"
|
||||
class="hover-lift"
|
||||
/>
|
||||
</a>
|
||||
<a
|
||||
:href="
|
||||
tools.getURLByHostAndFilePath(
|
||||
myrec.pdf_online,
|
||||
myrec.data_online ? new Date(myrec.data_online).getTime() : undefined
|
||||
)
|
||||
"
|
||||
target="_blank"
|
||||
>
|
||||
<q-fab-action
|
||||
icon="fas fa-file-pdf"
|
||||
label="Leggi PDF"
|
||||
color="primary"
|
||||
size="md"
|
||||
class="hover-lift"
|
||||
/>
|
||||
</a>
|
||||
</q-fab>
|
||||
<q-fab
|
||||
v-if="!tools.isUtente() && dettagli"
|
||||
color="primary"
|
||||
icon="fas fa-caret-down"
|
||||
label="Menu"
|
||||
direction="up"
|
||||
outlined
|
||||
flat
|
||||
dense
|
||||
>
|
||||
|
||||
@@ -62,26 +62,39 @@
|
||||
>
|
||||
aggiornato al ({{ tools.getstrDate(myrec.data_online_stampa) }})
|
||||
</div>
|
||||
<div
|
||||
v-if="!tools.isUtente() && dettagli"
|
||||
class="text-caption text-h7 text-grey q-pb-xs"
|
||||
>
|
||||
<q-icon name="fas fa-list" /> Lista generata il:
|
||||
<span :class="`text-` + (tools.isDateValid(myrec.data_lista_generata) ? 'blue' : 'red')"
|
||||
>{{ tools.getstrDate(myrec.data_lista_generata) || '(non ancora generata)' }} da
|
||||
{{ myrec.username_lista_generata }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<!--<div class="text-overline text-orange-9">{{collanestr}}</div>-->
|
||||
</q-card-section>
|
||||
|
||||
<q-card-actions
|
||||
v-if="!tools.isUtente() && dettagli"
|
||||
align="center"
|
||||
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, myrec.data_online ? (new Date(myrec.data_online)).getTime() : undefined)"
|
||||
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, myrec.data_online ? (new Date(myrec.data_online)).getTime() : undefined)"
|
||||
download
|
||||
size="md"
|
||||
class="hover-lift"
|
||||
/>
|
||||
<q-fab
|
||||
v-if="!tools.isUtente() && dettagli"
|
||||
color="primary"
|
||||
icon="fas fa-caret-down"
|
||||
label="Menu"
|
||||
|
||||
@@ -151,9 +151,12 @@ export default defineComponent({
|
||||
),
|
||||
{ deep: true };
|
||||
|
||||
watch(() => searchText.value, () => {
|
||||
searchProducts();
|
||||
});
|
||||
watch(
|
||||
() => searchText.value,
|
||||
() => {
|
||||
searchProducts();
|
||||
}
|
||||
);
|
||||
|
||||
const allColumns = ref([]);
|
||||
|
||||
@@ -178,6 +181,7 @@ export default defineComponent({
|
||||
edit: true,
|
||||
noexp: true,
|
||||
notsortable: true,
|
||||
visu: costanti.VISUCAMPI.PER_EDITORE,
|
||||
},
|
||||
{
|
||||
name: 'drag',
|
||||
@@ -188,6 +192,7 @@ export default defineComponent({
|
||||
edit: true,
|
||||
noexp: true,
|
||||
notsortable: true,
|
||||
visu: costanti.VISUCAMPI.PER_LOGGATI,
|
||||
},
|
||||
{
|
||||
name: 'image',
|
||||
@@ -296,6 +301,7 @@ export default defineComponent({
|
||||
edit: true,
|
||||
noexp: true,
|
||||
notsortable: true,
|
||||
visu: costanti.VISUCAMPI.PER_EDITORE,
|
||||
},
|
||||
{
|
||||
name: 'drag',
|
||||
@@ -306,6 +312,7 @@ export default defineComponent({
|
||||
edit: true,
|
||||
noexp: true,
|
||||
notsortable: true,
|
||||
visu: costanti.VISUCAMPI.PER_LOGGATI,
|
||||
},
|
||||
{
|
||||
name: 'validato',
|
||||
@@ -346,6 +353,7 @@ export default defineComponent({
|
||||
align: 'center',
|
||||
noexp: true,
|
||||
notsortable: true,
|
||||
visu: costanti.VISUCAMPI.PER_LOGGATI,
|
||||
},
|
||||
{ name: 'name', label: 'Titolo', field: 'name', align: 'left' },
|
||||
{
|
||||
@@ -396,13 +404,13 @@ export default defineComponent({
|
||||
align: 'left',
|
||||
},
|
||||
{ name: 'pagine', label: 'Pag.', field: 'pagine', align: 'right' },
|
||||
{ name: 'prezzo', label: '€', field: 'prezzo', align: 'right' },
|
||||
{
|
||||
{ name: 'prezzo', label: 'Prezzo Intero', field: 'prezzo', align: 'right' },
|
||||
/*{
|
||||
name: 'prezzo_sconto',
|
||||
label: '€ (sconto)',
|
||||
field: 'prezzo_sconto',
|
||||
align: 'right',
|
||||
},
|
||||
},*/
|
||||
{
|
||||
name: 'date_pub',
|
||||
label: 'Pubblicato',
|
||||
@@ -464,7 +472,7 @@ export default defineComponent({
|
||||
},
|
||||
{
|
||||
name: 'quantity',
|
||||
label: 'Magazz.',
|
||||
label: 'Disponib.',
|
||||
field: 'quantity',
|
||||
align: 'right',
|
||||
},
|
||||
@@ -484,7 +492,8 @@ export default defineComponent({
|
||||
(col) =>
|
||||
!col.visu ||
|
||||
col.visu === costanti.VISUCAMPI.PER_TUTTI ||
|
||||
(col.visu === costanti.VISUCAMPI.PER_EDITORE && tools.isCollaboratore())
|
||||
(col.visu === costanti.VISUCAMPI.PER_EDITORE && tools.isCollaboratore()) ||
|
||||
(col.visu === costanti.VISUCAMPI.PER_LOGGATI && tools.isLogged())
|
||||
);
|
||||
});
|
||||
|
||||
@@ -542,7 +551,7 @@ export default defineComponent({
|
||||
loading.value = false;
|
||||
}
|
||||
|
||||
function getFieldValue(element: any, field: any): any {
|
||||
function getFieldValue(element: any, field: any, colexport: boolean = false): any {
|
||||
if (!element) return '';
|
||||
|
||||
try {
|
||||
@@ -664,11 +673,13 @@ export default defineComponent({
|
||||
|
||||
case 'prezzo':
|
||||
// return element.price ? '€ ' + element.price.toFixed(2) : '';
|
||||
return '€ ' + element.arrvariazioni?.[0]?.price?.toFixed(2);
|
||||
const add = colexport ? '' : ' '
|
||||
return '€' + add + element.arrvariazioni?.[0]?.price?.toFixed(2);
|
||||
|
||||
case 'prezzo_sconto':
|
||||
const add2 = colexport ? '' : ' '
|
||||
// return element.sale_price ? '€ ' + element.sale_price.toFixed(2) : '';
|
||||
return '€ ' + element.arrvariazioni?.[0]?.sale_price?.toFixed(2);
|
||||
return '€' + add2 + element.arrvariazioni?.[0]?.sale_price?.toFixed(2);
|
||||
|
||||
case 'rank3M':
|
||||
return element.productInfo?.rank3M;
|
||||
@@ -884,10 +895,9 @@ export default defineComponent({
|
||||
|
||||
const faiConfronto = () => {
|
||||
return (
|
||||
Array.isArray(props.lista_prod_confronto) &&
|
||||
props.lista_prod_confronto.length > 0
|
||||
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) => {
|
||||
@@ -915,7 +925,7 @@ export default defineComponent({
|
||||
|
||||
if (column === 'addtolist') {
|
||||
if (!faiConfronto()) {
|
||||
ok = false
|
||||
ok = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -923,7 +933,7 @@ export default defineComponent({
|
||||
};
|
||||
|
||||
function isElementVisible(col: string, element: any) {
|
||||
let ok = true
|
||||
let ok = true;
|
||||
|
||||
if (col === 'addtolist') {
|
||||
if (
|
||||
@@ -935,7 +945,7 @@ export default defineComponent({
|
||||
}
|
||||
}
|
||||
|
||||
return ok
|
||||
return ok;
|
||||
}
|
||||
|
||||
const getColumnLabelByName = (name: string): string => {
|
||||
@@ -1193,7 +1203,7 @@ export default defineComponent({
|
||||
const field = { field: col };
|
||||
return field.field === 'pos'
|
||||
? internalProducts.value.indexOf(product) + 1
|
||||
: getFieldValue(product, field);
|
||||
: getFieldValue(product, field, true);
|
||||
})
|
||||
.join('|');
|
||||
}),
|
||||
|
||||
@@ -19,7 +19,10 @@
|
||||
:key="index"
|
||||
>
|
||||
<CMySelect
|
||||
v-if="item.type === costanti.FieldType.select || item.type === costanti.FieldType.select_by_server"
|
||||
v-if="
|
||||
item.type === costanti.FieldType.select ||
|
||||
item.type === costanti.FieldType.select_by_server
|
||||
"
|
||||
:col="fieldsTable.getColByColumns(mycolumns, item.key)"
|
||||
:label="item.value && item.value._id > 0 ? undefined : labelcombo(item)"
|
||||
v-model:value="item.value"
|
||||
@@ -29,7 +32,9 @@
|
||||
:addnone="item.addnone"
|
||||
:focus="focus"
|
||||
:addlast="true"
|
||||
:tablesel="item.type === costanti.FieldType.select_by_server ? item.tablesel : ''"
|
||||
:tablesel="
|
||||
item.type === costanti.FieldType.select_by_server ? item.tablesel : ''
|
||||
"
|
||||
:pickup="item.type === costanti.FieldType.select_by_server"
|
||||
color="primary"
|
||||
myclass=""
|
||||
@@ -69,6 +74,27 @@
|
||||
dense
|
||||
/>
|
||||
</div>
|
||||
<div class="row justify-center q-ma-md">
|
||||
<div v-if="visu === shared_consts.VISU_SEARCHPROD_MODE.INSERT">
|
||||
<q-btn
|
||||
rounded
|
||||
class="q-ma-sm"
|
||||
color="secondary"
|
||||
icon="fas fa-plus"
|
||||
label="Inserisci"
|
||||
@click="insertProd"
|
||||
></q-btn>
|
||||
<!-- Button Close window -->
|
||||
<q-btn
|
||||
rounded
|
||||
class="q-ma-sm"
|
||||
color="primary"
|
||||
icon="fas fa-times-circle"
|
||||
label="Chiudi"
|
||||
@click="clickClose"
|
||||
></q-btn>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="myproduct?._id && optcatalogo.arrSchede?.length > 0"
|
||||
@@ -91,29 +117,6 @@
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column text-center">
|
||||
<div class="row justify-center q-ma-md">
|
||||
<div v-if="visu === shared_consts.VISU_SEARCHPROD_MODE.INSERT">
|
||||
<q-btn
|
||||
rounded
|
||||
class="q-ma-sm"
|
||||
color="secondary"
|
||||
icon="fas fa-plus"
|
||||
label="Inserisci"
|
||||
@click="insertProd"
|
||||
></q-btn>
|
||||
<!-- Button Close window -->
|
||||
<q-btn
|
||||
rounded
|
||||
class="q-ma-sm"
|
||||
color="primary"
|
||||
icon="fas fa-times-circle"
|
||||
label="Chiudi"
|
||||
@click="clickClose"
|
||||
></q-btn>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -553,6 +553,7 @@ export const costanti = {
|
||||
PER_TUTTI: 0,
|
||||
PER_EDITORE: 1,
|
||||
PER_ADMIN: 16,
|
||||
PER_LOGGATI: 32,
|
||||
},
|
||||
|
||||
OP_ANDOR: {
|
||||
|
||||
@@ -8271,7 +8271,7 @@ export const tools = {
|
||||
},
|
||||
|
||||
getFullFileName(
|
||||
arrimage: IImgGallery[],
|
||||
arrimage: IImgGallery[] | IImg[],
|
||||
table: string,
|
||||
username: string,
|
||||
groupname: string
|
||||
@@ -8942,7 +8942,7 @@ export const tools = {
|
||||
} else if (table === 'catalogs') {
|
||||
ris = 'catalogs/' + id;
|
||||
} else if (table === 'raccoltacataloghis') {
|
||||
ris = 'raccoltacatalogs/' + id;
|
||||
ris = 'raccoltacataloghis/' + id;
|
||||
} else if (!!myrow && !!myrow.directory) {
|
||||
ris = myrow.directory;
|
||||
} else if (table === 'myelems') {
|
||||
@@ -11099,7 +11099,7 @@ export const tools = {
|
||||
return 0;
|
||||
}
|
||||
},
|
||||
getURLByHostAndFilePath(filepath: string, timestamp: string = '') {
|
||||
getURLByHostAndFilePath(filepath: string, timestamp: number = 0) {
|
||||
try {
|
||||
let myurl = filepath.startsWith('/')
|
||||
? tools.getHost() + filepath
|
||||
|
||||
@@ -96,7 +96,8 @@ body {
|
||||
text-align: justify;
|
||||
word-wrap: break-word;
|
||||
|
||||
hyphens: auto; /* Sillabazione automatica */
|
||||
hyphens: auto;
|
||||
/* Sillabazione automatica */
|
||||
|
||||
}
|
||||
|
||||
@@ -124,7 +125,8 @@ body {
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
text-shadow: 1px 1px 2px black;
|
||||
|
||||
overflow: hidden; /* Nasconde il testo che esce dalla height fissa */
|
||||
overflow: hidden;
|
||||
/* Nasconde il testo che esce dalla height fissa */
|
||||
|
||||
}
|
||||
|
||||
@@ -240,7 +242,7 @@ body {
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
.text-link{
|
||||
.text-link {
|
||||
font-family: 'Arial', sans-serif;
|
||||
font-size: 1.1rem;
|
||||
color: #1a3f8a;
|
||||
@@ -252,8 +254,13 @@ body {
|
||||
color: #5c8ef4;
|
||||
}
|
||||
}
|
||||
|
||||
.clCondiz {
|
||||
margin-bottom: 2px;
|
||||
margin-left: 2px;
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
||||
.title_Catalogo {
|
||||
text-shadow: 1px 1px 2px black;
|
||||
}
|
||||
@@ -213,7 +213,11 @@ export default defineComponent({
|
||||
});
|
||||
|
||||
const onlyCatalogoPDF = computed(() => {
|
||||
return optcatalogo.value.showOnlyCatalogoPDF;
|
||||
return optcatalogo.value.showOnlyCatalogoPDF || $route.query?.hideHeader;
|
||||
});
|
||||
|
||||
const mostraTuttiITab = computed(() => {
|
||||
return !onlyCatalogoPDF.value;
|
||||
});
|
||||
|
||||
const showListaFiltrata = computed(() => {
|
||||
@@ -577,6 +581,15 @@ export default defineComponent({
|
||||
}
|
||||
}
|
||||
|
||||
function esistePagIntroduttiva(): boolean {
|
||||
for (const recscheda of optcatalogo.value.arrSchede!) {
|
||||
if (recscheda.scheda?.isPagIntro) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
const getImgIntroCatalogo = (scheda: IMyScheda): IImg => {
|
||||
const trovatocatalogo = myCatalog.value;
|
||||
|
||||
@@ -1003,7 +1016,7 @@ export default defineComponent({
|
||||
return arrris;
|
||||
}
|
||||
|
||||
async function calcArrProducts(generalista?: boolean, salva_listatemp: boolean) {
|
||||
async function calcArrProducts(generalista?: boolean, salva_listatemp?: boolean) {
|
||||
// console.log('calcArrProducts (generalista=' + generalista + ')');
|
||||
|
||||
if (generalista) {
|
||||
@@ -1139,7 +1152,7 @@ export default defineComponent({
|
||||
await globalStore.saveTable(mydata);
|
||||
}
|
||||
|
||||
function generaListaLibri() {
|
||||
async function generaListaLibri() {
|
||||
// chiedi prima "Sei sicuro di rigenerare il catalogo?"
|
||||
let risposta_si = false;
|
||||
|
||||
@@ -1154,16 +1167,27 @@ export default defineComponent({
|
||||
message: msg,
|
||||
cancel: true,
|
||||
persistent: false,
|
||||
}).onOk(() => {
|
||||
calcArrProducts(true);
|
||||
}).onOk(async () => {
|
||||
$q.loading.show({
|
||||
message: `Rigenera lista in corso, attendere ...`,
|
||||
});
|
||||
|
||||
await calcArrProducts(true);
|
||||
$q.loading.hide();
|
||||
});
|
||||
}
|
||||
|
||||
function generaListaTempLibri() {
|
||||
async function generaListaTempLibri() {
|
||||
// chiedi prima "Sei sicuro di rigenerare il catalogo?"
|
||||
let risposta_si = false;
|
||||
|
||||
calcArrProducts(true, true);
|
||||
$q.loading.show({
|
||||
message: `Mostra lista, attendere ...`,
|
||||
});
|
||||
|
||||
await calcArrProducts(true, true);
|
||||
|
||||
$q.loading.hide();
|
||||
}
|
||||
|
||||
function reSortList() {
|
||||
@@ -1586,9 +1610,13 @@ export default defineComponent({
|
||||
// controlla se è stato passato l'id dalla pagina:
|
||||
let idcatsel = '';
|
||||
|
||||
if ($route.query.id) idcatsel = $route.query.id as string;
|
||||
if ($route.query.stampa) instampa = $route.query.stampa === '1';
|
||||
else idcatsel = optcatalogo.value.idCatalogSel;
|
||||
if ($route.query.id) {
|
||||
idcatsel = $route.query.id as string;
|
||||
} else {
|
||||
idcatsel = optcatalogo.value.idCatalogSel;
|
||||
}
|
||||
|
||||
instampa = $route.query?.stampa === '1';
|
||||
|
||||
mycat = catalogStore.getCatalogById(idcatsel);
|
||||
} else {
|
||||
@@ -2399,7 +2427,7 @@ export default defineComponent({
|
||||
generaPdfCatalogo(true);
|
||||
};
|
||||
|
||||
const preparePDF = (instampa: boolean, senzachiedere: boolean) => {
|
||||
async function preparePDF(instampa: boolean, senzachiedere = false) {
|
||||
let str = '';
|
||||
if (instampa) {
|
||||
str = 'per la stampa';
|
||||
@@ -2416,7 +2444,7 @@ export default defineComponent({
|
||||
label: t('dialog.cancel'),
|
||||
},
|
||||
title: 'Generazione PDF',
|
||||
}).onOk(async () => {
|
||||
}).onOk(() => {
|
||||
parti = true;
|
||||
});
|
||||
}
|
||||
@@ -2427,8 +2455,8 @@ export default defineComponent({
|
||||
: shared_consts.PREPARA_PDF.WEB;
|
||||
|
||||
arrProducts.value = [];
|
||||
console.log('aggiorna... ');
|
||||
calcArrProducts(false);
|
||||
console.log('aggiorna... ', optcatalogo.value.selectedVersionStampabile);
|
||||
await calcArrProducts(false);
|
||||
updateCatalogoPadre();
|
||||
|
||||
optcatalogo.value.generazionePDFInCorso = true;
|
||||
@@ -2444,10 +2472,15 @@ export default defineComponent({
|
||||
optcatalogo.value.selectedVersionStampabile = instampa
|
||||
? shared_consts.PREPARA_PDF.STAMPA
|
||||
: shared_consts.PREPARA_PDF.WEB;
|
||||
|
||||
console.log(
|
||||
'selectedVersionStampabile',
|
||||
optcatalogo.value.selectedVersionStampabile
|
||||
);
|
||||
}, 500);
|
||||
}, 200);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
const terminaPDF = () => {
|
||||
optcatalogo.value.generazionePDFInCorso = false;
|
||||
@@ -2806,6 +2839,8 @@ export default defineComponent({
|
||||
generaListaTempLibri,
|
||||
globalStore,
|
||||
showColorPicker,
|
||||
mostraTuttiITab,
|
||||
esistePagIntroduttiva,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<q-page>
|
||||
<div>
|
||||
<div
|
||||
v-if="ispageCatalogata && !optcatalogo.showOnlyCatalogoPDF"
|
||||
v-if="ispageCatalogata && mostraTuttiITab"
|
||||
class="text-bold text-h6 text-center text-blue"
|
||||
>
|
||||
{{ getTitoloCatalogo() }}
|
||||
@@ -10,8 +10,8 @@
|
||||
<div
|
||||
v-if="
|
||||
ispageCatalogata &&
|
||||
!optcatalogo.showOnlyCatalogoPDF &&
|
||||
(tools.isCollaboratore()) &&
|
||||
mostraTuttiITab &&
|
||||
tools.isCollaboratore() &&
|
||||
myCatalog?.referenti?.length > 0
|
||||
"
|
||||
class="text-h7 text-center text-red q-ma-sm"
|
||||
@@ -20,7 +20,7 @@
|
||||
<span class="text-bold">{{ getReferentiCatalogo() }}</span>
|
||||
</div>
|
||||
<q-tabs
|
||||
v-if="!optcatalogo.showOnlyCatalogoPDF"
|
||||
v-if="mostraTuttiITab"
|
||||
v-model="tabcatalogo"
|
||||
dense
|
||||
class="bg-green text-white"
|
||||
@@ -142,7 +142,7 @@
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="!generatinglist && !optcatalogo.showOnlyCatalogoPDF"
|
||||
v-if="!generatinglist && mostraTuttiITab"
|
||||
class="text-center q-py-sm prod_trov"
|
||||
>
|
||||
<div
|
||||
@@ -183,7 +183,7 @@
|
||||
</q-inner-loading>
|
||||
|
||||
<q-btn
|
||||
v-if="!showListaFiltrata && (tools.isCollaboratore())"
|
||||
v-if="!showListaFiltrata && tools.isCollaboratore()"
|
||||
rounded
|
||||
icon="fas fa-redo"
|
||||
label="Rigenera Lista"
|
||||
@@ -827,7 +827,7 @@
|
||||
<q-tab-panel
|
||||
name="visu"
|
||||
v-if="optcatalogo"
|
||||
:style="{ padding: optcatalogo.showOnlyCatalogoPDF ? '0px !important' : '' }"
|
||||
:style="{ padding: !mostraTuttiITab ? '0px !important' : '' }"
|
||||
>
|
||||
<q-inner-loading
|
||||
id="spinner"
|
||||
@@ -847,7 +847,7 @@
|
||||
v-if="!ismounting"
|
||||
class="panel"
|
||||
>
|
||||
<div :class="{ container: !optcatalogo.showOnlyCatalogoPDF }">
|
||||
<div :class="{ container: mostraTuttiITab }">
|
||||
<q-tabs
|
||||
v-model="tabvisu"
|
||||
dense
|
||||
@@ -1065,14 +1065,14 @@
|
||||
|
||||
<div
|
||||
class="text-center q-py-sm prod_trov"
|
||||
v-if="!optcatalogo.showOnlyCatalogoPDF"
|
||||
v-if="mostraTuttiITab"
|
||||
>
|
||||
<div
|
||||
v-if="
|
||||
cat === '' &&
|
||||
arrProducts.length === 0 &&
|
||||
showListaFiltrata &&
|
||||
!optcatalogo.showOnlyCatalogoPDF
|
||||
mostraTuttiITab
|
||||
"
|
||||
class="row justify-center text-h6"
|
||||
>
|
||||
@@ -1148,6 +1148,19 @@
|
||||
v-for="(product, index) in arrLoaded"
|
||||
:key="index"
|
||||
>
|
||||
<div
|
||||
v-if="!esistePagIntroduttiva() && index === 0"
|
||||
class="title_Catalogo text-bold text-h6 text-center text-blue"
|
||||
style="
|
||||
position: absolute;
|
||||
top: 30;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
"
|
||||
>
|
||||
<div>{{ getTitoloCatalogo() }}</div>
|
||||
</div>
|
||||
|
||||
<CContainerCatalogoCard
|
||||
v-if="
|
||||
product.active ||
|
||||
@@ -1198,6 +1211,20 @@
|
||||
v-for="(recscheda, schedaIndex) in optcatalogo.arrSchede"
|
||||
:key="schedaIndex"
|
||||
>
|
||||
<div
|
||||
v-if="!esistePagIntroduttiva() && schedaIndex === 0"
|
||||
class="title_Catalogo text-bold text-h6 text-center text-blue"
|
||||
style="
|
||||
position: absolute;
|
||||
top: 30;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
z-Index: 1000;
|
||||
"
|
||||
>
|
||||
<div>{{ getTitoloCatalogo() }}</div>
|
||||
</div>
|
||||
|
||||
<div v-if="recscheda && recscheda.scheda">
|
||||
<!-- Itera sulle pagine -->
|
||||
<div
|
||||
@@ -1255,10 +1282,7 @@
|
||||
icon="fas fa-pencil-alt"
|
||||
@click="showColorPicker = !showColorPicker"
|
||||
color="primary"
|
||||
style="
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
"
|
||||
style="position: absolute; z-index: 1000"
|
||||
></q-btn>
|
||||
|
||||
<q-dialog
|
||||
|
||||
@@ -387,7 +387,7 @@ export default defineComponent({
|
||||
id_raccolta: getRaccoltaCataloghiByMyPage.value._id,
|
||||
stampa,
|
||||
metti_online: false,
|
||||
dir_out: '/upload/raccolte/',
|
||||
dir_out: '/upload/raccoltacataloghis/' + getRaccoltaCataloghiByMyPage.value._id + '/',
|
||||
};
|
||||
const ris = await globalStore.execJoinPDF({ options });
|
||||
|
||||
|
||||
@@ -19,10 +19,9 @@
|
||||
>
|
||||
</q-tab>
|
||||
<q-tab
|
||||
v-if="!tools.isUtente()"
|
||||
name="genera"
|
||||
icon="fas fa-book"
|
||||
label="Genera"
|
||||
label="PDF Completo"
|
||||
>
|
||||
</q-tab>
|
||||
</q-tabs>
|
||||
@@ -34,6 +33,7 @@
|
||||
>
|
||||
<q-tab-panel name="lista">
|
||||
<q-btn
|
||||
v-if="!tools.isUtente()"
|
||||
rounded
|
||||
label="Aggiungi"
|
||||
icon="fas fa-plus"
|
||||
@@ -52,204 +52,363 @@
|
||||
</q-tab-panel>
|
||||
|
||||
<q-tab-panel name="genera">
|
||||
<div
|
||||
v-if="!tools.isUtente()"
|
||||
class="column justify-center"
|
||||
>
|
||||
<div>
|
||||
<div class="row justify-center">
|
||||
<q-btn
|
||||
rounded
|
||||
label="Rigenera TUTTI i Cataloghi"
|
||||
icon="fas fa-redo"
|
||||
color="primary"
|
||||
@click="rigeneraTUTTI()"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
rounded
|
||||
label="Online TUTTI i Cataloghi"
|
||||
icon="fas fa-redo"
|
||||
color="positive"
|
||||
@click="onlineTUTTI()"
|
||||
></q-btn>
|
||||
</div>
|
||||
<br />
|
||||
<div class="row justify-center">
|
||||
<q-btn
|
||||
rounded
|
||||
label="Rigenera TUTTI per STAMPA"
|
||||
icon="fas fa-print"
|
||||
color="primary"
|
||||
@click="rigeneraTUTTI(true)"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
rounded
|
||||
label="Online TUTTI per STAMPA"
|
||||
icon="fas fa-redo"
|
||||
color="positive"
|
||||
@click="onlineTUTTI(true)"
|
||||
></q-btn>
|
||||
</div>
|
||||
<div
|
||||
v-if="getRaccoltaCataloghiByMyPage.pdf_online"
|
||||
class="catalog-download-section"
|
||||
>
|
||||
<q-card class="catalog-card shadow-8">
|
||||
<q-card-section class="text-center">
|
||||
<q-img
|
||||
:src="
|
||||
tools.getFullFileName(
|
||||
[getRaccoltaCataloghiByMyPage.foto_raccolta],
|
||||
'raccoltacataloghis',
|
||||
'',
|
||||
getRaccoltaCataloghiByMyPage._id
|
||||
)
|
||||
"
|
||||
class="catalog-image"
|
||||
height="128px"
|
||||
fit="contain"
|
||||
style="max-width: 100%"
|
||||
/>
|
||||
<div class="text-h5 q-mt-sm q-mb-xs">
|
||||
{{ `${getRaccoltaCataloghiByMyPage.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">
|
||||
{{
|
||||
getRaccoltaCataloghiByMyPage.pdf_online
|
||||
? `${getRaccoltaCataloghiByMyPage.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>
|
||||
|
||||
<br /><br />
|
||||
<span class="q-ml-xs">
|
||||
{{
|
||||
getRaccoltaCataloghiByMyPage.pdf_online
|
||||
? tools.getstrDate(getRaccoltaCataloghiByMyPage.data_online)
|
||||
: ''
|
||||
}}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
||||
<div class="row justify-center">
|
||||
<q-btn
|
||||
v-if="!optcatalogo.generazionePDFInCorso"
|
||||
:label="`GENERA PDF ` + getTitoloRaccolta()"
|
||||
color="red"
|
||||
@click="preparePDF(false)"
|
||||
rounded
|
||||
></q-btn>
|
||||
<q-btn
|
||||
v-if="!optcatalogo.generazionePDFInCorso"
|
||||
:label="`GENERA PDF ${getTitoloRaccolta()} per STAMPA`"
|
||||
@click="preparePDF(true)"
|
||||
color="orange"
|
||||
rounded
|
||||
></q-btn>
|
||||
<q-btn
|
||||
v-if="optcatalogo.generazionePDFInCorso"
|
||||
:label="`Termina Generazione`"
|
||||
@click="terminaPDF"
|
||||
></q-btn>
|
||||
<q-card-actions
|
||||
align="center"
|
||||
class="q-pb-md"
|
||||
>
|
||||
<q-btn
|
||||
v-if="getRaccoltaCataloghiByMyPage.pdf_online"
|
||||
unelevated
|
||||
rounded
|
||||
color="primary"
|
||||
icon="fas fa-file-pdf"
|
||||
:label="`Apri PDF`"
|
||||
:href="
|
||||
tools.getURLByHostAndFilePath(
|
||||
getRaccoltaCataloghiByMyPage.pdf_online,
|
||||
getRaccoltaCataloghiByMyPage.data_online
|
||||
? new Date(getRaccoltaCataloghiByMyPage.data_online).getTime()
|
||||
: undefined
|
||||
)
|
||||
"
|
||||
size="md"
|
||||
class="hover-lift"
|
||||
/>
|
||||
<q-btn
|
||||
v-if="getRaccoltaCataloghiByMyPage.pdf_online"
|
||||
unelevated
|
||||
rounded
|
||||
color="primary"
|
||||
icon="download"
|
||||
:label="`Scarica PDF`"
|
||||
:href="
|
||||
tools.getURLByHostAndFilePath(
|
||||
getRaccoltaCataloghiByMyPage.pdf_online,
|
||||
getRaccoltaCataloghiByMyPage.data_online
|
||||
? new Date(getRaccoltaCataloghiByMyPage.data_online).getTime()
|
||||
: undefined
|
||||
)
|
||||
"
|
||||
download
|
||||
size="md"
|
||||
class="hover-lift"
|
||||
/>
|
||||
</q-card-actions>
|
||||
</q-card>
|
||||
</div>
|
||||
<div
|
||||
v-if="
|
||||
tools.isCollStampa() && getRaccoltaCataloghiByMyPage.pdf_online_stampa
|
||||
"
|
||||
class="catalog-download-section"
|
||||
>
|
||||
<q-card class="catalog-card shadow-8">
|
||||
<q-card-section class="text-center">
|
||||
<q-img
|
||||
:src="
|
||||
tools.getFullFileName(
|
||||
[getRaccoltaCataloghiByMyPage.foto_raccolta],
|
||||
'raccoltacataloghis',
|
||||
'',
|
||||
getRaccoltaCataloghiByMyPage._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">
|
||||
{{
|
||||
getRaccoltaCataloghiByMyPage.pdf_online
|
||||
? `${getRaccoltaCataloghiByMyPage.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">
|
||||
{{
|
||||
getRaccoltaCataloghiByMyPage.pdf_online_stampa
|
||||
? tools.getstrDate(
|
||||
getRaccoltaCataloghiByMyPage.data_online_stampa
|
||||
)
|
||||
: ''
|
||||
}}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
||||
<q-card-actions
|
||||
align="center"
|
||||
class="q-pb-md"
|
||||
>
|
||||
<q-btn
|
||||
v-if="getRaccoltaCataloghiByMyPage.pdf_online_stampa"
|
||||
unelevated
|
||||
rounded
|
||||
color="primary"
|
||||
icon="fas fa-file-pdf"
|
||||
:label="`Apri PDF`"
|
||||
:href="
|
||||
tools.getURLByHostAndFilePath(
|
||||
getRaccoltaCataloghiByMyPage.pdf_online_stampa,
|
||||
getRaccoltaCataloghiByMyPage.data_online_stampa
|
||||
? new Date(
|
||||
getRaccoltaCataloghiByMyPage.data_online_stampa
|
||||
).getTime()
|
||||
: undefined
|
||||
)
|
||||
"
|
||||
size="md"
|
||||
class="hover-lift"
|
||||
/>
|
||||
<q-btn
|
||||
v-if="getRaccoltaCataloghiByMyPage.pdf_online_stampa"
|
||||
unelevated
|
||||
rounded
|
||||
color="primary"
|
||||
icon="download"
|
||||
:label="`Scarica PDF`"
|
||||
:href="
|
||||
tools.getURLByHostAndFilePath(
|
||||
getRaccoltaCataloghiByMyPage.pdf_online_stampa,
|
||||
getRaccoltaCataloghiByMyPage.data_online_stampa
|
||||
? new Date(
|
||||
getRaccoltaCataloghiByMyPage.data_online_stampa
|
||||
).getTime()
|
||||
: undefined
|
||||
)
|
||||
"
|
||||
download
|
||||
size="md"
|
||||
class="hover-lift"
|
||||
/>
|
||||
</q-card-actions>
|
||||
</q-card>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="getRaccoltaCataloghiByMyPage?.pdf_generato"
|
||||
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">
|
||||
<strong>PDF generati Temporanei</strong>
|
||||
<div v-if="!tools.isUtente()">
|
||||
<div
|
||||
v-if="!tools.isUtente()"
|
||||
class="column justify-center"
|
||||
>
|
||||
<div class="row justify-center">
|
||||
<q-btn
|
||||
rounded
|
||||
label="Rigenera TUTTI i Cataloghi"
|
||||
icon="fas fa-redo"
|
||||
color="primary"
|
||||
@click="rigeneraTUTTI()"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
rounded
|
||||
label="Online TUTTI i Cataloghi"
|
||||
icon="fas fa-redo"
|
||||
color="positive"
|
||||
@click="onlineTUTTI()"
|
||||
></q-btn>
|
||||
</div>
|
||||
<br />
|
||||
<div class="row justify-center">
|
||||
<q-btn
|
||||
rounded
|
||||
label="Rigenera TUTTI per STAMPA"
|
||||
icon="fas fa-print"
|
||||
color="primary"
|
||||
@click="rigeneraTUTTI(true)"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
rounded
|
||||
label="Online TUTTI per STAMPA"
|
||||
icon="fas fa-redo"
|
||||
color="positive"
|
||||
@click="onlineTUTTI(true)"
|
||||
></q-btn>
|
||||
</div>
|
||||
|
||||
<br /><br />
|
||||
</div>
|
||||
<div>
|
||||
<div class="row justify-center">
|
||||
<q-btn
|
||||
v-if="!optcatalogo.generazionePDFInCorso"
|
||||
:label="`GENERA PDF ` + getTitoloRaccolta()"
|
||||
color="red"
|
||||
@click="preparePDF(false)"
|
||||
rounded
|
||||
></q-btn>
|
||||
<q-btn
|
||||
v-if="!optcatalogo.generazionePDFInCorso"
|
||||
:label="`GENERA PDF ${getTitoloRaccolta()} per STAMPA`"
|
||||
@click="preparePDF(true)"
|
||||
color="orange"
|
||||
rounded
|
||||
></q-btn>
|
||||
<q-btn
|
||||
v-if="optcatalogo.generazionePDFInCorso"
|
||||
:label="`Termina Generazione`"
|
||||
@click="terminaPDF"
|
||||
></q-btn>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="
|
||||
getRaccoltaCataloghiByMyPage?.data_generato !==
|
||||
getRaccoltaCataloghiByMyPage?.data_online
|
||||
"
|
||||
v-if="getRaccoltaCataloghiByMyPage?.pdf_generato"
|
||||
class="bg-green-1 q-ma-sm q-pa-sm"
|
||||
>
|
||||
PDF Generato:
|
||||
<a
|
||||
:href="
|
||||
tools.getURLByHostAndFilePath(
|
||||
getRaccoltaCataloghiByMyPage?.pdf_generato
|
||||
)
|
||||
"
|
||||
target="_blank"
|
||||
v-if="getRaccoltaCataloghiByMyPage?.pdf_generato"
|
||||
class="text-bold"
|
||||
>
|
||||
{{
|
||||
tools.getURLByHostAndFilePath(
|
||||
getRaccoltaCataloghiByMyPage?.pdf_generato
|
||||
)
|
||||
}}
|
||||
</a>
|
||||
<span v-else>-</span>
|
||||
<br />(del
|
||||
{{ tools.getstrDateTime(getRaccoltaCataloghiByMyPage?.data_generato) }})
|
||||
<br />
|
||||
<q-btn
|
||||
<div class="bg-blue-1 text-red text-bold text-h6 q-ma-sm q-pa-sm">
|
||||
<strong>PDF generati Temporanei</strong>
|
||||
</div>
|
||||
<div
|
||||
v-if="
|
||||
getRaccoltaCataloghiByMyPage?.data_generato !==
|
||||
getRaccoltaCataloghiByMyPage?.data_online
|
||||
"
|
||||
rounded
|
||||
label="Pubblica PDF OnLine"
|
||||
color="positive"
|
||||
@click="pubblicaPDF()"
|
||||
></q-btn>
|
||||
</div>
|
||||
<br />
|
||||
<div
|
||||
v-if="
|
||||
getRaccoltaCataloghiByMyPage?.data_generato_stampa !==
|
||||
getRaccoltaCataloghiByMyPage?.data_online_stampa
|
||||
"
|
||||
>
|
||||
PDF Generato Stampa:
|
||||
<a
|
||||
:href="
|
||||
tools.getURLByHostAndFilePath(
|
||||
getRaccoltaCataloghiByMyPage?.pdf_generato_stampa
|
||||
)
|
||||
"
|
||||
target="_blank"
|
||||
v-if="getRaccoltaCataloghiByMyPage?.pdf_generato_stampa"
|
||||
class="text-bold"
|
||||
>
|
||||
{{
|
||||
tools.getURLByHostAndFilePath(
|
||||
getRaccoltaCataloghiByMyPage?.pdf_generato_stampa
|
||||
)
|
||||
}}
|
||||
</a>
|
||||
<span v-else>-</span>
|
||||
<br />(del
|
||||
{{
|
||||
tools.getstrDateTime(getRaccoltaCataloghiByMyPage?.data_generato_stampa)
|
||||
}})
|
||||
PDF Generato:
|
||||
<a
|
||||
:href="
|
||||
tools.getURLByHostAndFilePath(
|
||||
getRaccoltaCataloghiByMyPage?.pdf_generato
|
||||
)
|
||||
"
|
||||
target="_blank"
|
||||
v-if="getRaccoltaCataloghiByMyPage?.pdf_generato"
|
||||
class="text-bold"
|
||||
>
|
||||
{{
|
||||
tools.getURLByHostAndFilePath(
|
||||
getRaccoltaCataloghiByMyPage?.pdf_generato
|
||||
)
|
||||
}}
|
||||
</a>
|
||||
<span v-else>-</span>
|
||||
<br />(del
|
||||
{{ tools.getstrDateTime(getRaccoltaCataloghiByMyPage?.data_generato) }})
|
||||
<br />
|
||||
<q-btn
|
||||
v-if="
|
||||
getRaccoltaCataloghiByMyPage?.data_generato !==
|
||||
getRaccoltaCataloghiByMyPage?.data_online
|
||||
"
|
||||
rounded
|
||||
label="Pubblica PDF OnLine"
|
||||
color="positive"
|
||||
@click="pubblicaPDF()"
|
||||
></q-btn>
|
||||
</div>
|
||||
<br />
|
||||
<q-btn
|
||||
<div
|
||||
v-if="
|
||||
getRaccoltaCataloghiByMyPage?.data_generato_stampa !==
|
||||
getRaccoltaCataloghiByMyPage?.data_online_stampa
|
||||
"
|
||||
rounded
|
||||
label="Pubblica PDF Stampa"
|
||||
color="positive"
|
||||
@click="pubblicaPDFStampa()"
|
||||
></q-btn>
|
||||
</div>
|
||||
<div class="bg-green-1">
|
||||
<div class="bg-blue-1 text-green text-bold text-h6 q-ma-sm q-pa-sm">
|
||||
<strong>PDF Pubblicati OnLine</strong>
|
||||
</div>
|
||||
<div v-if="getRaccoltaCataloghiByMyPage?.data_online">
|
||||
PDF OnLine:
|
||||
>
|
||||
PDF Generato Stampa:
|
||||
<a
|
||||
:href="
|
||||
tools.getURLByHostAndFilePath(
|
||||
getRaccoltaCataloghiByMyPage?.pdf_online
|
||||
getRaccoltaCataloghiByMyPage?.pdf_generato_stampa
|
||||
)
|
||||
"
|
||||
target="_blank"
|
||||
v-if="getRaccoltaCataloghiByMyPage?.pdf_online"
|
||||
v-if="getRaccoltaCataloghiByMyPage?.pdf_generato_stampa"
|
||||
class="text-bold"
|
||||
>
|
||||
{{
|
||||
tools.getURLByHostAndFilePath(
|
||||
getRaccoltaCataloghiByMyPage?.pdf_online
|
||||
)
|
||||
}}
|
||||
</a>
|
||||
<span v-else>-</span>
|
||||
<br />(del
|
||||
{{ tools.getstrDateTime(getRaccoltaCataloghiByMyPage?.data_online) }})
|
||||
</div>
|
||||
<br />
|
||||
<div v-if="getRaccoltaCataloghiByMyPage?.data_online_stampa">
|
||||
> PDF OnLine Stampa:
|
||||
<a
|
||||
:href="
|
||||
tools.getURLByHostAndFilePath(
|
||||
getRaccoltaCataloghiByMyPage?.pdf_online_stampa
|
||||
)
|
||||
"
|
||||
target="_blank"
|
||||
class="text-bold"
|
||||
v-if="getRaccoltaCataloghiByMyPage?.pdf_online_stampa"
|
||||
>
|
||||
{{
|
||||
tools.getURLByHostAndFilePath(
|
||||
getRaccoltaCataloghiByMyPage?.pdf_online_stampa
|
||||
getRaccoltaCataloghiByMyPage?.pdf_generato_stampa
|
||||
)
|
||||
}}
|
||||
</a>
|
||||
<span v-else>-</span>
|
||||
<br />(del
|
||||
{{
|
||||
tools.getstrDateTime(getRaccoltaCataloghiByMyPage?.data_online_stampa)
|
||||
tools.getstrDateTime(
|
||||
getRaccoltaCataloghiByMyPage?.data_generato_stampa
|
||||
)
|
||||
}})
|
||||
<br />
|
||||
<q-btn
|
||||
v-if="
|
||||
getRaccoltaCataloghiByMyPage?.data_generato_stampa !==
|
||||
getRaccoltaCataloghiByMyPage?.data_online_stampa
|
||||
"
|
||||
rounded
|
||||
label="Pubblica PDF Stampa"
|
||||
color="positive"
|
||||
@click="pubblicaPDFStampa()"
|
||||
></q-btn>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user