- ho migliorato la grafica della generazione del PDF e PDF Stampa.

This commit is contained in:
Surya Paolo
2025-05-15 19:18:50 +02:00
parent 9e0634da05
commit 685bc34bd0
16 changed files with 570 additions and 476 deletions

4
.env
View File

@@ -1,6 +1,6 @@
VITE_APP_VERSION="1.2.44"
VITE_APP_VERSION="1.2.46"
VITE_LANG_DEFAULT="it"
VITE_PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
VITE_SERVICE_WORKER_FILE="sw-1.2.44.js"
VITE_SERVICE_WORKER_FILE="sw-1.2.46.js"
VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
VITE_VUE_ROUTER_MODE="history"

View File

@@ -1,11 +1,13 @@
VITE_APP_ID="18"
VITE_APP_URL="https://test.gruppomacro.app"
VITE_MONGODB_HOST="https://testapi.gruppomacro.app"
VITE_LOGO_REG="gruppomacro-logo-full.png"
VITE_APP_URL="https://gruppomacro.app"
VITE_MONGODB_HOST="https://api.gruppomacro.app"
VITE_LOGO_REG='gruppomacro-logo-full.png'
VITE_PUBLICKEY_PUSH="BJgo8XR_upbnbMLWgCAUELo6DK7dRXffYAnFOxbaMMz5favBgcQBKT-eISqouO-jRad4Sw8l5nd2wCF6KorGiTc"
VITE_DEBUG="1"
VITE_VUE_APP_ISTEST="1"
VITE_DEBUG="0"
VITE_VUE_APP_ISTEST="0"
DIRECTORY_LOCAL="myprojplanet_vite"
DIRECTORY_SERVER="/var/www/nodejs_test.piuchebuono_server"
SERVERDIR_WEBSITE="/var/www/test.gruppomacro.app"
DIRECTORY_SERVER="/var/www/nodejs_piuchebuono_server"
SERVERDIR_WEBSITE="/var/www/gruppomacro.app"
SERVERPW_WEBSITE="pwdadmin@1AOK"
PORT_SPA="8089"
PORT_PWA="8099"

View File

@@ -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.44">
<meta name="version" content="1.2.46">
<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<% } %>">

View File

@@ -1,6 +1,6 @@
{
"name": "gruppomacro",
"version": "1.2.44",
"version": "1.2.46",
"description": "Gruppo Macro",
"productName": "Gruppo Macro",
"author": "Surya",
@@ -9,20 +9,20 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "PORT=8089 APP_VERSION='1.2.44' quasar dev",
"dev": "PORT=8089 APP_VERSION='1.2.46' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.44' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.44' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.46' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.46' quasar build -m pwa",
"type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "APP_VERSION='1.2.44' quasar build -m spa",
"buildspa": "APP_VERSION='1.2.46' 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.44' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.44' quasar dev",
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.46' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.46' quasar dev",
"debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -1,6 +1,6 @@
{
"name": "cnm",
"version": "1.2.44",
"version": "1.2.46",
"description": "Comunita Nuovo Mondo",
"productName": "ComunitaNuovoMondo",
"author": "Surya",
@@ -9,7 +9,7 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "PORT=8083 APP_VERSION='1.2.44' quasar dev",
"dev": "PORT=8083 APP_VERSION='1.2.46' 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.44' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.44' quasar dev",
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.46' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.46' quasar dev",
"debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -1,6 +1,6 @@
{
"name": "freeplanet",
"version": "1.2.44",
"version": "1.2.46",
"description": "freeplanet",
"productName": "freeplanet",
"author": "Surya",
@@ -9,11 +9,11 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "PORT=8087 APP_VERSION='1.2.44' quasar dev",
"dev": "PORT=8087 APP_VERSION='1.2.46' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.44' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.44' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.46' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.46' 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.44' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.44' quasar dev",
"pwa": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.46' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.46' quasar dev",
"debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -1,6 +1,6 @@
{
"name": "gruppomacro",
"version": "1.2.44",
"version": "1.2.46",
"description": "Gruppo Macro",
"productName": "Gruppo Macro",
"author": "Surya",
@@ -9,20 +9,20 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "PORT=8089 APP_VERSION='1.2.44' quasar dev",
"dev": "PORT=8089 APP_VERSION='1.2.46' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.44' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.44' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.46' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.46' quasar build -m pwa",
"type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "APP_VERSION='1.2.44' quasar build -m spa",
"buildspa": "APP_VERSION='1.2.46' 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.44' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.44' quasar dev",
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.46' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.46' quasar dev",
"debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -1,6 +1,6 @@
{
"name": "kolibrilab",
"version": "1.2.44",
"version": "1.2.46",
"description": "kolibrilab",
"productName": "kolibrilab",
"author": "Surya Paolo",
@@ -8,11 +8,11 @@
"keywords": [],
"license": "MIT",
"scripts": {
"dev": "PORT=8083 APP_VERSION='1.2.44' quasar dev",
"dev": "PORT=8083 APP_VERSION='1.2.46' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.44' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.44' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.46' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.46' 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.44' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.44' quasar dev",
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.46' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.46' 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"

View File

@@ -1,6 +1,6 @@
{
"name": "nutriben",
"version": "1.2.44",
"version": "1.2.46",
"description": "Nutriben",
"productName": "Nutriben",
"author": "Surya",
@@ -9,20 +9,20 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "PORT=8093 APP_VERSION='1.2.44' quasar dev",
"dev": "PORT=8093 APP_VERSION='1.2.46' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.44' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.44' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.46' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.46' quasar build -m pwa",
"type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "APP_VERSION='1.2.44' quasar build -m spa",
"buildspa": "APP_VERSION='1.2.46' 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.44' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.44' quasar dev",
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.46' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.46' quasar dev",
"debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -1,6 +1,6 @@
{
"name": "piuchebuono",
"version": "1.2.44",
"version": "1.2.46",
"description": "PiuCheBuono",
"productName": "PiuCheBuono",
"author": "Surya",
@@ -9,11 +9,11 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "PORT=8085 APP_VERSION='1.2.44' quasar dev",
"dev": "PORT=8085 APP_VERSION='1.2.46' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.44' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.44' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.46' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.46' 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.44' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.44' quasar dev",
"pwa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.46' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.46' quasar dev",
"debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -1,6 +1,6 @@
{
"name": "riso",
"version": "1.2.44",
"version": "1.2.46",
"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.44' PORT=8084 quasar dev",
"dev": "APP_VERSION='1.2.46' PORT=8084 quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.44' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.44' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.46' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.46' 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.44' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.44' quasar dev",
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.46' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.46' quasar dev",
"debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -3,7 +3,7 @@
/* global workbox */
/* global cfgenv */
const VITE_APP_VERSION = '1.2.44';
const VITE_APP_VERSION = '1.2.46';
// Costanti di configurazione
const DYNAMIC_CACHE = 'dynamic-cache-v2';
@@ -83,6 +83,7 @@ cleanupOutdatedCaches();
self.addEventListener('install', () => {
console.log('[Service Worker] Installing ...');
self.skipWaiting();
clientsClaim();
});

View File

@@ -1,40 +1,54 @@
import { useQuasar } from 'quasar'
import { useQuasar } from 'quasar';
import {
defineComponent, onBeforeMount, onBeforeUnmount, onMounted, ref, toRefs, watch, inject, computed, nextTick,
} from 'vue'
defineComponent,
onBeforeMount,
onBeforeUnmount,
onMounted,
ref,
toRefs,
watch,
inject,
computed,
nextTick,
} from 'vue';
import { tools } from '@tools'
import { tools } from '@tools';
import { shared_consts } from '@src/common/shared_vuejs'
import { useI18n } from 'vue-i18n'
import { boot } from 'quasar/wrappers'
import { useRouter } from 'vue-router'
import { static_data } from '@src/db/static_data'
import messagePopover from '../../layouts/toolbar/messagePopover/messagePopover.vue'
import notifPopover from '../../layouts/toolbar/notifPopover/notifPopover.vue'
import coinsPopover from '../../layouts/toolbar/coinsPopover/coinsPopover.vue'
import drawer from '../../layouts/drawer/drawer.vue'
import { CMyAvatar } from '@src/components/CMyAvatar'
import { CMyFieldDb } from '@src/components/CMyFieldDb'
import { CSelectUserActive } from '@src/components/CSelectUserActive'
import { toolsext } from '@store/Modules/toolsext'
import { useGlobalStore } from '@store/globalStore'
import { useUserStore } from '@store/UserStore'
import { useProducts } from '@store/Products'
import MixinUsers from '../../mixins/mixin-users'
import { CMyCart, CSigninNoreg } from '@src/components'
import { costanti } from '@costanti'
import { useNotifStore } from '@src/store/NotifStore'
import { shared_consts } from '@src/common/shared_vuejs';
import { useI18n } from 'vue-i18n';
import { boot } from 'quasar/wrappers';
import { useRouter } from 'vue-router';
import { static_data } from '@src/db/static_data';
import messagePopover from '../../layouts/toolbar/messagePopover/messagePopover.vue';
import notifPopover from '../../layouts/toolbar/notifPopover/notifPopover.vue';
import coinsPopover from '../../layouts/toolbar/coinsPopover/coinsPopover.vue';
import drawer from '../../layouts/drawer/drawer.vue';
import { CMyAvatar } from '@src/components/CMyAvatar';
import { CMyFieldDb } from '@src/components/CMyFieldDb';
import { CSelectUserActive } from '@src/components/CSelectUserActive';
import { toolsext } from '@store/Modules/toolsext';
import { useGlobalStore } from '@store/globalStore';
import { useUserStore } from '@store/UserStore';
import { useProducts } from '@store/Products';
import MixinUsers from '../../mixins/mixin-users';
import { CMyCart, CSigninNoreg } from '@src/components';
import { costanti } from '@costanti';
import { useNotifStore } from '@src/store/NotifStore';
import { Platform } from 'quasar';
export default defineComponent({
name: 'MyHeader',
components: {
drawer, messagePopover,
CMyFieldDb, CMyAvatar, CSigninNoreg, CMyCart, notifPopover, coinsPopover,
drawer,
messagePopover,
CMyFieldDb,
CMyAvatar,
CSigninNoreg,
CMyCart,
notifPopover,
coinsPopover,
CSelectUserActive,
},
props: {
@@ -49,131 +63,143 @@ export default defineComponent({
},
setup() {
const $q = useQuasar()
const { t } = useI18n()
const $router = useRouter()
const $q = useQuasar();
const { t } = useI18n();
const $router = useRouter();
const isUserNotAuth = ref(false)
const iconConn = ref('wifi')
const clIconConn = ref('clIconOnline')
const strConn = ref('')
const langshort = ref('')
const clCloudUpload = ref('')
const clCloudDownload = ref('')
const clCloudUp_Indexeddb = ref('')
const tabcmd = ref('')
const clCloudDown_Indexeddb = ref('clIndexeddbsend')
const photo = ref('')
const visuimg = ref(true)
const isUserNotAuth = ref(false);
const iconConn = ref('wifi');
const clIconConn = ref('clIconOnline');
const strConn = ref('');
const langshort = ref('');
const clCloudUpload = ref('');
const clCloudDownload = ref('');
const clCloudUp_Indexeddb = ref('');
const tabcmd = ref('');
const clCloudDown_Indexeddb = ref('clIndexeddbsend');
const photo = ref('');
const visuimg = ref(true);
const userStore = useUserStore()
const globalStore = useGlobalStore()
const products = useProducts()
const notifStore = useNotifStore()
const userStore = useUserStore();
const globalStore = useGlobalStore();
const products = useProducts();
const notifStore = useNotifStore();
const { getnumItemsCart } = MixinUsers()
const { getnumItemsCart } = MixinUsers();
const site = computed(() => globalStore.site)
const isfinishLoading = computed(() => globalStore.finishLoading)
const site = computed(() => globalStore.site);
const isfinishLoading = computed(() => globalStore.finishLoading);
const dark = ref(false)
const dark = ref(false);
const leftDrawerOpen = ref(globalStore.leftDrawerOpen)
const leftDrawerOpen = ref(globalStore.leftDrawerOpen);
const editOn = computed({
get: () => globalStore.editOn,
set: val => {
tools.updateEditOn(val)
set: (val) => {
tools.updateEditOn(val);
},
})
});
const getClassColorHeader = computed(() => {
// if (tools.isTest()) return 'bg-light-blue'
// if (tools.isDebug()) return 'bg-info'
if (globalStore.site && globalStore.site.confpages?.col_toolbar)
return 'bg-' + globalStore.site.confpages?.col_toolbar
return 'bg-' + globalStore.site.confpages?.col_toolbar;
else {
if (globalStore.homescreen) {
return 'bg-blue'
return 'bg-blue';
} else {
return 'bg-light-blue'
return 'bg-light-blue';
}
}
})
});
const getColorText = computed(() => {
if (globalStore.site && globalStore.site.confpages?.col_toolbar === 'white')
return 'black'
else
return 'white'
})
if (globalStore.site && globalStore.site.confpages?.col_toolbar === 'white') return 'black';
else return 'white';
});
watch(() => dark.value, (value: any, oldval: any) => {
watch(
() => dark.value,
(value: any, oldval: any) => {
if (isfinishLoading.value) {
$q.dark.set(value)
tools.setCookie('darkmode', value ? '-1' : '0')
$q.dark.set(value);
tools.setCookie('darkmode', value ? '-1' : '0');
}
})
}
);
function setDarkMode() {
dark.value = tools.getCookie('darkmode', false, false, false) === '-1'
dark.value = tools.getCookie('darkmode', false, false, false) === '-1';
$q.dark.set(dark.value)
$q.dark.set(dark.value);
}
function uploadStart() {
BeforeMount()
BeforeMount();
}
watch(() => globalStore.finishLoading, (value: any, oldval: any) => {
watch(
() => globalStore.finishLoading,
(value: any, oldval: any) => {
if (value) {
uploadStart()
uploadStart();
}
})
}
);
const data = ref({
registration: null,
updateExists: false,
} as any)
} as any);
const refreshing = ref(false)
const refreshing = ref(false);
const stateconn = ref(globalStore.stateConnection)
const stateconn = ref(globalStore.stateConnection);
function updateAvailable(event: any) {
console.log(event)
data.value.registration = event.detail
data.value.updateExists = true
RefreshApp() // update automatically
console.log(event);
data.value.registration = event.detail;
data.value.updateExists = true;
RefreshApp(); // update automatically
}
function created() {
if (isfinishLoading.value) {
uploadStart()
uploadStart();
}
try {
if (window) {
window.addEventListener('swUpdated', updateAvailable, { once: true })
// Ascolta evento custom 'swUpdated' per notifica aggiornamento
window.addEventListener(
'swUpdated',
async (event) => {
// Chiedi conferma allutente (qui con confirm, sostituisci con dialog Quasar se vuoi)
const doUpdate = confirm('È disponibile una nuova versione. Vuoi aggiornare ora?');
if (doUpdate) {
// Invia messaggio al service worker per skipWaiting
if (event.detail?.swWaiting) {
event.detail.swWaiting.postMessage({ action: 'skipWaiting' });
}
}
},
{ once: true }
);
if ('serviceWorker' in navigator) {
navigator.serviceWorker.addEventListener('controllerchange', () => {
// We'll also need to add 'refreshing' to our data originally set to false.
if (refreshing.value)
return
refreshing.value = true
// Here the actual reload of the page occurs
window.location.reload()
})
if (refreshing.value) return;
refreshing.value = true;
window.location.reload();
});
}
}
} catch (e) {
console.error('Err', e.message)
console.error('Err', e.message);
}
}
const {
@@ -194,76 +220,76 @@ export default defineComponent({
getNumMsg,
getNumMsgUnread,
getMsgText,
paotest } = MixinUsers()
paotest,
} = MixinUsers();
function isonline() {
return globalStore.stateConnection === 'online'
return globalStore.stateConnection === 'online';
}
function isAdmin() {
return userStore.isAdmin
return userStore.isAdmin;
}
function isManager() {
return userStore.isManager
return userStore.isManager;
}
function isEditor() {
return userStore.isEditor
return userStore.isEditor;
}
const isSocio = computed(() => userStore.my.profile.socio)
const isSocio = computed(() => userStore.my.profile.socio);
function isSocioResidente() {
return userStore.my.profile.socioresidente
return userStore.my.profile.socioresidente;
}
function isConsiglio() {
return userStore.my.profile.consiglio
return userStore.my.profile.consiglio;
}
function getcolormenu() {
return isSocio.value ? 'green-7' : 'white'
return isSocio.value ? 'green-7' : 'white';
}
function isFacilitatore() {
return userStore.isFacilitatore
return userStore.isFacilitatore;
}
function isZoomeri() {
return userStore.isZoomeri
return userStore.isZoomeri;
}
function isTratuttrici() {
return userStore.isTratuttrici
return userStore.isTratuttrici;
}
function conndata_changed() {
return globalStore.connData
return globalStore.connData;
}
function snakeToCamel(str: string) {
return str.replace(/(-\w)/g, (m) => m[1].toUpperCase())
return str.replace(/(-\w)/g, (m) => m[1].toUpperCase());
}
function setshortlang(mylang: string) {
static_data.lang_available.forEach((langavail: any) => {
if (langavail.value === mylang) {
langshort.value = langavail.short
return langshort.value
langshort.value = langavail.short;
return langshort.value;
}
})
});
}
function isNewVersionAvailable() {
return globalStore.isNewVersionAvailable
return globalStore.isNewVersionAvailable;
}
function closeAll() {
globalStore.rightNotifOpen = false
globalStore.rightCartOpen = false
globalStore.rightDrawerOpen = false
globalStore.rightCoinsOpen = false
globalStore.rightNotifOpen = false;
globalStore.rightCartOpen = false;
globalStore.rightDrawerOpen = false;
globalStore.rightCoinsOpen = false;
}
/*const leftDrawerOpen = computed({
@@ -276,73 +302,71 @@ export default defineComponent({
const rightDrawerOpen = computed({
get: () => globalStore.rightDrawerOpen,
set: val => {
closeAll()
globalStore.rightDrawerOpen = val
set: (val) => {
closeAll();
globalStore.rightDrawerOpen = val;
},
})
});
const rightCartOpen = computed({
get: () => globalStore.rightCartOpen,
set: val => {
closeAll()
globalStore.rightCartOpen = val
set: (val) => {
closeAll();
globalStore.rightCartOpen = val;
},
})
});
const rightNotifOpen = computed({
get: () => globalStore.rightNotifOpen,
set: val => {
closeAll()
globalStore.rightNotifOpen = val
set: (val) => {
closeAll();
globalStore.rightNotifOpen = val;
},
})
});
const rightCoinsOpen = computed({
get: () => globalStore.rightCoinsOpen,
set: val => {
closeAll()
globalStore.rightCoinsOpen = val
set: (val) => {
closeAll();
globalStore.rightCoinsOpen = val;
},
})
});
const lang = computed({
get: () => $q.lang.isoName,
set: mylang => {
set: (mylang) => {
// console.log('set lang', $q.lang.getLocale(), 'passato', mylang)
$q.lang.set(snakeToCamel(mylang))
$q.lang.set(snakeToCamel(mylang));
// tools.showNotif($q, 'IMPOSTA LANG= ' + $i18n.locale)
// console.log('IMPOSTA LANG= ' + $i18n.locale)
let mylangtopass = mylang
let mylangtopass = mylang;
mylangtopass = toolsext.checkLangPassed($q, $router, mylangtopass)
mylangtopass = toolsext.checkLangPassed($q, $router, mylangtopass);
userStore.setlang($q, $router, mylangtopass)
userStore.setlang($q, $router, mylangtopass);
setshortlang(mylangtopass)
setshortlang(mylangtopass);
tools.setLangAtt($q, $router, mylangtopass)
tools.setLangAtt($q, $router, mylangtopass);
userStore.setLangServer()
userStore.setLangServer();
},
})
watch(() =>
stateconn,
// @ts-ignore
(value: string, oldValue: string) => {
globalStore.stateConnection = value
},
)
});
watch(
conndata_changed,
(value, oldValue) => {
clCloudUpload.value = (value.uploading_server === 1) ? 'clCloudUpload send' : 'clCloudUpload'
clCloudUpload.value = (value.downloading_server === 1) ? 'clCloudUpload receive' : 'clCloudUpload'
clCloudUp_Indexeddb.value = (value.uploading_indexeddb === 1) ? 'clIndexeddb send' : 'clIndexeddb'
clCloudUp_Indexeddb.value = (value.downloading_indexeddb === 1) ? 'clIndexeddb receive' : 'clIndexeddb'
() => stateconn,
// @ts-ignore
(value: string, oldValue: string) => {
globalStore.stateConnection = value;
}
);
watch(conndata_changed, (value, oldValue) => {
clCloudUpload.value = value.uploading_server === 1 ? 'clCloudUpload send' : 'clCloudUpload';
clCloudUpload.value = value.downloading_server === 1 ? 'clCloudUpload receive' : 'clCloudUpload';
clCloudUp_Indexeddb.value = value.uploading_indexeddb === 1 ? 'clIndexeddb send' : 'clIndexeddb';
clCloudUp_Indexeddb.value = value.downloading_indexeddb === 1 ? 'clIndexeddb receive' : 'clIndexeddb';
/* clCloudUpload.value = (value.uploading_server === -1) ? 'clCloudUpload error' : clCloudUpload
clCloudUpload.value = (value.downloading_server === -1) ? 'clCloudUpload error' : clCloudDownload
@@ -350,8 +374,7 @@ export default defineComponent({
clCloudUp_Indexeddb.value = (value.downloading_indexeddb === -1) ? 'clIndexeddb error' : clCloudDown_Indexeddb
*/
},
)
});
/*
@Watch('conn_changed', { immediate: true, deep: true })
@@ -380,82 +403,78 @@ export default defineComponent({
*/
function RefreshApp() {
if (Platform.is.ios) {
// Unregister Service Worker
if ('serviceWorker' in navigator) {
navigator.serviceWorker.getRegistrations().then((registrations) => {
for (const registration of registrations) {
registration.unregister()
registration.unregister();
}
})
});
}
// window.location.reload()
} else {
data.value.updateExists = false
data.value.updateExists = false;
// Make sure we only send a 'skip waiting' message if the SW is waiting
if (!data.value.registration || !data.value.registration.waiting) return
if (!data.value.registration || !data.value.registration.waiting) return;
// Send message to SW to skip the waiting and activate the new SW
data.value.registration.waiting.postMessage({ type: 'SKIP_WAITING' })
data.value.registration.waiting.postMessage({ type: 'SKIP_WAITING' });
}
}
function changeIconConn() {
iconConn.value = globalStore.stateConnection === 'online' ? 'wifi' : 'wifi_off'
clIconConn.value = globalStore.stateConnection === 'online' ? 'clIconOnline' : 'clIconOffline'
iconConn.value = globalStore.stateConnection === 'online' ? 'wifi' : 'wifi_off';
clIconConn.value = globalStore.stateConnection === 'online' ? 'clIconOnline' : 'clIconOffline';
}
function getAppVersion() {
// return "AA"
let strv = ''
let strv = '';
if (import.meta.env.DEV) {
strv = 'DEV '
strv = 'DEV ';
} else if (tools.isTest()) {
strv = 'TEST '
strv = 'TEST ';
}
return `${strv}v. ${import.meta.env.VITE_APP_VERSION}`
return `${strv}v. ${import.meta.env.VITE_APP_VERSION}`;
}
function getLangAtt() {
return $q.lang.isoName
return $q.lang.isoName;
}
function BeforeMount() {
setDarkMode()
setDarkMode();
// Estrai la Lang dal Localstorage
if (!globalStore.finishLoading)
return;
if (!globalStore.finishLoading) return;
// console.log('$q.i18n=', $q.i18n, '$q.getLocale()=', $q.lang.isoName)
const mybrowserLang = getLangAtt()
const mybrowserLang = getLangAtt();
// tools.showNotif($q, 'prima: ' + String(my))
let mylang = tools.getItemLS(toolsext.localStorage.lang)
let mylang = tools.getItemLS(toolsext.localStorage.lang);
if (mylang === '') {
if (navigator) {
mylang = navigator.language
mylang = navigator.language;
// console.log(`LANG2 NAVIGATOR ${mylang}`)
} else {
mylang = $q.lang.isoName
mylang = $q.lang.isoName;
}
// console.log('IMPOSTA LANGMY', mylang)
}
mylang = toolsext.checkLangPassed($q, $router, mylang)
mylang = toolsext.checkLangPassed($q, $router, mylang);
tools.setLangAtt($q, $router, mylang)
setshortlang(mylang)
tools.setLangAtt($q, $router, mylang);
setshortlang(mylang);
}
function mounted() {
// Test this by running the code snippet below and then
// use the "TableOnlyView" checkbox in DevTools Network panel
// console.log('Event LOAD')
if (window) {
window.addEventListener('load', () => {
@@ -463,78 +482,73 @@ export default defineComponent({
function updateOnlineStatus(event: any) {
if (navigator.onLine) {
console.log('EVENT ONLINE!')
console.log('EVENT ONLINE!');
// handle online status
globalStore.setStateConnection('online')
globalStore.setStateConnection('online');
// mychangeIconConn()
} else {
console.log('EVENT OFFLINE!')
console.log('EVENT OFFLINE!');
// handle offline status
globalStore.setStateConnection('offline')
globalStore.setStateConnection('offline');
// mychangeIconConn()
}
}
window.addEventListener('online', updateOnlineStatus)
window.addEventListener('offline', updateOnlineStatus)
})
window.addEventListener('online', updateOnlineStatus);
window.addEventListener('offline', updateOnlineStatus);
});
}
nextTick(() => {
if (tools.getCookie('menu3oriz') === '1') {
if ($q.screen.width < 800) {
leftDrawerOpen.value = false
leftDrawerOpen.value = false;
// globalStore.leftDrawerOpen = false
} else {
leftDrawerOpen.value = true
globalStore.leftDrawerOpen = true
leftDrawerOpen.value = true;
globalStore.leftDrawerOpen = true;
}
} else if (tools.getCookie('menu3oriz') === '0') {
leftDrawerOpen.value = false;
globalStore.leftDrawerOpen = false;
}
else if (tools.getCookie('menu3oriz') === '0') {
leftDrawerOpen.value = false
globalStore.leftDrawerOpen = false
}
})
});
}
function imglogo() {
return `../../${tools.getimglogo()}`
return `../../${tools.getimglogo()}`;
}
function getappname() {
return tools.getappname(tools.isMobile())
return tools.getappname(tools.isMobile());
}
function toggleanimation() {
console.log('toggleanimation')
visuimg.value = false
console.log('toggleanimation');
visuimg.value = false;
setTimeout(() => {
visuimg.value = true
}, 100)
visuimg.value = true;
}, 100);
}
function logoutHandler() {
userStore.logout()
.then(() => {
userStore.logout().then(() => {
// $router.replace('/logout')
//
// setTimeout(() => {
// $router.replace('/')
// }, 1000)
tools.showNotif($q, t('logout.uscito'), { icon: 'exit_to_app' })
})
tools.showNotif($q, t('logout.uscito'), { icon: 'exit_to_app' });
});
}
function clickregister() {
rightDrawerOpen.value = false
rightDrawerOpen.value = false;
$router.replace('/signup')
$router.replace('/signup');
}
function getnumOrdersCart() {
/* const arrorderscart = Products.orders.filter((rec) => rec.status < shared_consts.OrderStatus.COMPLETED)
// const arrorderscart = Products.orders
@@ -543,36 +557,34 @@ export default defineComponent({
}
*/
return 0
return 0;
}
function getcart() {
// return Products.cart
return null
return null;
}
function toHome() {
$router.push('/')
$router.push('/');
}
function changecmd(value: any) {
console.log('changecmd', value)
globalStore.changeCmdClick(value)
console.log('changecmd', value);
globalStore.changeCmdClick(value);
}
function clickMenu3Orizz() {
leftDrawerOpen.value = !leftDrawerOpen.value;
globalStore.leftDrawerOpen = leftDrawerOpen.value;
leftDrawerOpen.value = !leftDrawerOpen.value
globalStore.leftDrawerOpen = leftDrawerOpen.value
tools.setCookie('menu3oriz', globalStore.leftDrawerOpen ? '1' : '0')
tools.setCookie('menu3oriz', globalStore.leftDrawerOpen ? '1' : '0');
}
onBeforeMount(BeforeMount)
onMounted(mounted)
onBeforeMount(BeforeMount);
onMounted(mounted);
created()
created();
return {
static_data,
@@ -588,7 +600,11 @@ export default defineComponent({
t,
isonline,
isAdmin,
isManager, isSocio, isSocioResidente, isConsiglio, getcolormenu,
isManager,
isSocio,
isSocioResidente,
isConsiglio,
getcolormenu,
isNewVersionAvailable,
getAppVersion,
RefreshApp,
@@ -637,7 +653,6 @@ export default defineComponent({
clickMenu3Orizz,
isEditor,
editOn,
}
};
},
})
});

View File

@@ -8396,6 +8396,8 @@ export const tools = {
console.log('beforeinstallprompt !');
// Stash the event so it can be triggered later.
globalStore.deferredPrompt = event;
// showInstallButton(true);
});
} catch (e) {
console.error('err', e);

View File

@@ -14,6 +14,7 @@ import { shared_consts } from '@src/common/shared_vuejs';
import { CProductCard } from '@src/components/CProductCard';
import { CMyDialog } from '@src/components/CMyDialog';
import { CTitleBanner } from '@src/components/CTitleBanner';
import { CMySelect } from '@src/components/CMySelect';
import { CMyValueDb } from '@src/components/CMyValueDb';
import { CProductTable } from '@src/components/CProductTable';
@@ -57,6 +58,7 @@ export default defineComponent({
CSearchProduct,
CMyDialog,
CMyValueDb,
CTitleBanner,
},
emits: ['update:modelValue', 'updateCatalogo'],
props: {
@@ -90,7 +92,33 @@ export default defineComponent({
const heightpdf = ref('12.31');
const compressionepdf = ref('prepress');
const ismounting = ref(false)
const ismounting = ref(false);
const pdfColumns = [
{ name: 'name', label: 'Nome', field: 'name', align: 'left' },
{ name: 'pdf', label: 'PDF', field: 'pdf', align: 'left' },
{ name: 'data', label: 'Data', field: 'data', align: 'left' },
{ name: 'azioni', label: 'Azioni', field: 'azioni', align: 'center' },
];
const pdfRows = computed(() => [
{
name: 'PDF Generato',
pdf: getCatalogoByMyPage.value.pdf_generato,
data: getCatalogoByMyPage.value.data_generato,
showButton: getCatalogoByMyPage.value.data_generato !== getCatalogoByMyPage.value.data_online,
buttonLabel: 'Pubblica PDF OnLine',
action: pubblicaPDF,
},
{
name: 'PDF Generato Stampa',
pdf: getCatalogoByMyPage.value.pdf_generato_stampa,
data: getCatalogoByMyPage.value.data_generato_stampa,
showButton: getCatalogoByMyPage.value.data_generato_stampa !== getCatalogoByMyPage.value.data_online_stampa,
buttonLabel: 'Pubblica PDF Stampa',
action: pubblicaPDFStampa,
},
]);
const optDisp = ref([
{ label: 'Tutti', value: costanti.DISP.TUTTI },
@@ -585,14 +613,20 @@ export default defineComponent({
if (optcatalogo.value) {
// LINK PAGINA
if (optcatalogo.value.dimensioni_def.linkIdTemplate) {
const reccatalog = globalStore.sovrascriviPaginaDefaultFromTemplate(optcatalogo.value.dimensioni_def.linkIdTemplate, optcatalogo.value.dimensioni_def);
const reccatalog = globalStore.sovrascriviPaginaDefaultFromTemplate(
optcatalogo.value.dimensioni_def.linkIdTemplate,
optcatalogo.value.dimensioni_def
);
if (reccatalog) {
optcatalogo.value.dimensioni_def.pagina = { ...reccatalog.dimensioni_def.pagina };
}
}
if (optcatalogo.value.print_linkIdTemplate) {
const reccat2 = globalStore.sovrascriviAreadistampaFromTemplate(optcatalogo.value.print_linkIdTemplate, optcatalogo.value);
const reccat2 = globalStore.sovrascriviAreadistampaFromTemplate(
optcatalogo.value.print_linkIdTemplate,
optcatalogo.value
);
if (reccat2) {
const optcatalogo2 = { ...optcatalogo.value };
// optcatalogo2.areadistampa = { ...reccat2.areadistampa};
@@ -847,7 +881,6 @@ export default defineComponent({
await productStore.loadProducts(true);
}
if (!loadpage.value) return;
generatinglist.value = true;
@@ -1333,7 +1366,7 @@ export default defineComponent({
async function mounted() {
// console.log('mounted Catalogo')
ismounting.value = true
ismounting.value = true;
generatinglist.value = true;
if (optcatalogo.value.showListaArgomenti) cat.value = tools.getCookie(getKeyCatAtLoad(), '');
@@ -1400,7 +1433,7 @@ export default defineComponent({
calcArrProducts();
ismounting.value = false
ismounting.value = false;
}
function loaddata() {
@@ -1752,13 +1785,14 @@ export default defineComponent({
if (element) {
// add this record to lista_prodotti
if (getCatalogoByMyPage.value && !getCatalogoByMyPage.value.lista_prodotti?.some((p) => p._id === element._id)) {
if (
getCatalogoByMyPage.value &&
!getCatalogoByMyPage.value.lista_prodotti?.some((p) => p._id === element._id)
) {
// inserire il record in cima
const arr = getCatalogoByMyPage.value.lista_prodotti || [];
if (where === shared_consts.WHERE_INSERT.ONTOP)
arr.unshift(element);
else if (where === shared_consts.WHERE_INSERT.ONBOTTOM)
arr.push(element)
if (where === shared_consts.WHERE_INSERT.ONTOP) arr.unshift(element);
else if (where === shared_consts.WHERE_INSERT.ONBOTTOM) arr.push(element);
updateProducts(arr);
@@ -1989,6 +2023,21 @@ export default defineComponent({
const pubblicaPDF = async () => {
const catalog = getCatalogoByMyPage.value;
const confirm = await $q
.dialog({
title: 'Conferma',
message: 'Vuoi pubblicare OnLine questo PDF?',
ok: {
label: 'S ',
push: true,
},
cancel: {
label: 'Annulla',
},
})
.onOk(async () => {
if (!confirm) return;
const ris = await globalStore.execOnlinePDF({ id_catalog: catalog._id, stampa: false });
if (ris) {
@@ -2009,11 +2058,25 @@ export default defineComponent({
icon: 'error',
});
}
});
};
const pubblicaPDFStampa = async () => {
const catalog = getCatalogoByMyPage.value;
const confirm = await $q
.dialog({
title: 'Conferma',
message: 'Vuoi pubblicare OnLine questo PDF di STAMPA ?',
ok: {
label: 'S ',
push: true,
},
cancel: {
label: 'Annulla',
},
})
.onOk(async () => {
const ris = await globalStore.execOnlinePDF({ id_catalog: catalog._id, stampa: true });
if (ris) {
@@ -2034,6 +2097,7 @@ export default defineComponent({
icon: 'error',
});
}
});
// await saveCatalog();
};
@@ -2118,6 +2182,8 @@ export default defineComponent({
pubblicaPDF,
pubblicaPDFStampa,
ismounting,
pdfColumns,
pdfRows,
};
},
});

View File

@@ -298,21 +298,142 @@
>1</q-badge
>
</q-tab>
<q-tab
v-if="!tools.isUtente()"
name="visu"
icon="fas fa-book-reader"
label="Catalogo"
>
</q-tab>
<q-tab
v-if="!tools.isUtente()"
name="genera"
icon="fas fa-file-pdf"
label="Genera PDF"
>
</q-tab>
</q-tabs>
<CTitleBanner
v-show="tabcatalogo === 'visu'"
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
v-if="!tools.isUtente()"
class="row justify-center"
>
<q-btn
v-if="optcatalogo.pdf && !optcatalogo.generazionePDFInCorso"
:label="`1) PREPARA PDF`"
@click="preparePDF"
></q-btn>
<q-btn
v-if="optcatalogo.generazionePDFInCorso"
:label="`Termina Generazione`"
@click="terminaPDF"
></q-btn>
<q-btn
v-if="optcatalogo.pdf && optcatalogo.generazionePDFInCorso"
:label="`2) Genera PDF ` + getPdfFilename()"
@click="generatePDF()"
color="positive"
></q-btn>
<q-btn
v-if="tools.isAdmin() && false"
label="Debug"
@click="toggleDebug()"
:push="optcatalogo.indebug"
:color="optcatalogo.indebug ? `positive` : 'primary'"
></q-btn>
</div>
<div
v-if="getCatalogoByMyPage.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>
<q-table
:rows="pdfRows"
:columns="pdfColumns"
flat
bordered
dense
row-key="name"
>
<template v-slot:body-cell-pdf="props">
<q-td :props="props">
<a
v-if="props.row.pdf"
:href="tools.getHost() + props.row.pdf"
target="_blank"
class="text-bold"
>
{{ tools.getHost() + props.row.pdf }}
</a>
<span v-else>-</span>
</q-td>
</template>
<template v-slot:body-cell-data="props">
<q-td :props="props">
{{ tools.getstrDateTime(props.row.data) }}
</q-td>
</template>
<template v-slot:body-cell-azioni="props">
<q-td :props="props">
<q-btn
v-if="props.row.showButton"
rounded
color="positive"
size="md"
:label="props.row.buttonLabel"
@click="props.row.action"
/>
</q-td>
</template>
</q-table>
<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>
<table class="q-table q-table--flat q-table--dense q-ma-none q-pa-none">
<tbody>
<tr>
<td><strong>PDF OnLine:</strong></td>
<td>
<a
v-if="getCatalogoByMyPage.pdf_online"
:href="tools.getHost() + getCatalogoByMyPage.pdf_online"
target="_blank"
class="text-bold"
>
{{ tools.getHost() + getCatalogoByMyPage.pdf_online }}
</a>
<span v-else>-</span>
</td>
<td>{{ tools.getstrDateTime(getCatalogoByMyPage.data_online) }}</td>
</tr>
<tr>
<td><strong>PDF OnLine Stampa:</strong></td>
<td>
<a
v-if="getCatalogoByMyPage.pdf_online_stampa"
:href="tools.getHost() + getCatalogoByMyPage.pdf_online_stampa"
target="_blank"
class="text-bold"
>
{{ tools.getHost() + getCatalogoByMyPage.pdf_online_stampa }}
</a>
<span v-else>-</span>
</td>
<td>{{ tools.getstrDateTime(getCatalogoByMyPage.data_online_stampa) }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</CTitleBanner>
<q-tab-panels
v-model="tabvisu"
animated
@@ -404,119 +525,6 @@
/>-->
</q-toolbar>
</q-tab-panel>
<q-tab-panel name="genera">
<div
v-if="!tools.isUtente()"
class="row justify-center"
>
<q-btn
v-if="optcatalogo.pdf && !optcatalogo.generazionePDFInCorso"
:label="`1) PREPARA PDF`"
@click="preparePDF"
></q-btn>
<q-btn
v-if="optcatalogo.generazionePDFInCorso"
:label="`Termina Generazione`"
@click="terminaPDF"
></q-btn>
<q-btn
v-if="optcatalogo.pdf && optcatalogo.generazionePDFInCorso"
:label="`2) Genera PDF ` + getPdfFilename()"
@click="generatePDF()"
color="positive"
></q-btn>
<q-btn
v-if="tools.isAdmin() && false"
label="Debug"
@click="toggleDebug()"
:push="optcatalogo.indebug"
:color="optcatalogo.indebug ? `positive` : 'primary'"
></q-btn>
</div>
<div
v-if="getCatalogoByMyPage.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>
<div v-if="getCatalogoByMyPage.data_generato !== getCatalogoByMyPage.data_online">
PDF Generato:
<a
:href="tools.getHost() + getCatalogoByMyPage.pdf_generato"
target="_blank"
v-if="getCatalogoByMyPage.pdf_generato"
class="text-bold"
>
{{ tools.getHost() + getCatalogoByMyPage.pdf_generato }}
</a>
<span v-else>-</span>
<br />(del {{ tools.getstrDateTime(getCatalogoByMyPage.data_generato) }})
<br />
<q-btn
v-if="getCatalogoByMyPage.data_generato !== getCatalogoByMyPage.data_online"
rounded
label="Pubblica PDF OnLine"
color="positive"
@click="pubblicaPDF()"
></q-btn>
</div>
<br />
<div v-if="getCatalogoByMyPage.data_generato_stampa !== getCatalogoByMyPage.data_online_stampa">
PDF Generato Stampa:
<a
:href="tools.getHost() + getCatalogoByMyPage.pdf_generato_stampa"
target="_blank"
v-if="getCatalogoByMyPage.pdf_generato_stampa"
class="text-bold"
>
{{ tools.getHost() + getCatalogoByMyPage.pdf_generato_stampa }}
</a>
<span v-else>-</span>
<br />(del {{ tools.getstrDateTime(getCatalogoByMyPage.data_generato_stampa) }})
<br />
<q-btn
v-if="getCatalogoByMyPage.data_generato_stampa !== getCatalogoByMyPage.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>
PDF OnLine:
<a
:href="tools.getHost() + getCatalogoByMyPage.pdf_online"
target="_blank"
v-if="getCatalogoByMyPage.pdf_online"
class="text-bold"
>
{{ tools.getHost() + getCatalogoByMyPage.pdf_online }}
</a>
<span v-else>-</span>
<br />(del {{ tools.getstrDateTime(getCatalogoByMyPage.data_online) }})
</div>
<br />
<div>
PDF OnLine Stampa:
<a
:href="tools.getHost() + getCatalogoByMyPage.pdf_online_stampa"
target="_blank"
v-if="getCatalogoByMyPage.pdf_online_stampa"
class="text-bold"
>
{{ tools.getHost() + getCatalogoByMyPage.pdf_online_stampa }}
</a>
<span v-else>-</span>
<br />(del {{ tools.getstrDateTime(getCatalogoByMyPage.data_online_stampa) }})
</div>
</div>
</div>
</q-tab-panel>
<q-tab-panel name="ricerca">
<div
class="col"