- asggiunto bottone "installa app" sulla email di conferma registrazione e anche la Guida "/guida".

- migliorato InvitaAmico
This commit is contained in:
Surya Paolo
2025-11-19 11:39:36 +01:00
parent 05a3617103
commit 57436f088b
25 changed files with 270 additions and 113 deletions

4
.env
View File

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

View File

@@ -1,11 +1,11 @@
VITE_APP_ID="13"
VITE_APP_URL="https://riso.app"
VITE_MONGODB_HOST="https://api.riso.app"
VITE_LOGO_REG='riso-logo-full.png'
VITE_APP_URL="https://test.riso.app"
VITE_MONGODB_HOST="https://testapi.riso.app"
VITE_LOGO_REG="riso-logo-full.png"
VITE_PUBLICKEY_PUSH="BGXRf1TgcqocqD6J7qnRgCG7AvM2lxAoW7peb7UEzB4SxBb6DxGRdJ0UvD9ewnrB9KrSrh0-aDCODXBm7sZ1DDs"
VITE_DEBUG="0"
VITE_VUE_APP_ISTEST="0"
DIRECTORY_LOCAL=myprojplanet_vite
DIRECTORY_SERVER=/var/www/nodejs_riso_server
SERVERDIR_WEBSITE="/var/www/riso.app"
VITE_DEBUG="1"
VITE_VUE_APP_ISTEST="1"
DIRECTORY_LOCAL="myprojplanet_vite"
DIRECTORY_SERVER="/var/www/nodejs_test.riso_server"
SERVERDIR_WEBSITE="/var/www/test.riso.app"
SERVERPW_WEBSITE="pwdadmin@1AOK"

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.78">
<meta name="version" content="1.2.79">
<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": "riso",
"version": "1.2.78",
"version": "1.2.79",
"productName": "Riso 💚 - Rete Italiana Scambi Orizzontali",
"description": "Progetto RISO (Rete Italiana Scambi Orizzontali) promuove una rete di comunità locali che favoriscono scambi di beni, servizi e ospitalità. Con l'App RISO, sviluppata per facilitare il baratto, il dono e l'uso di monete alternative come i RIS, il progetto crea legami autentici basati sulla fiducia e sostenibilità. Partecipa agli scambi e costruisci una comunità più consapevole e autosufficiente.",
"author": "Surya",
@@ -9,11 +9,11 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "APP_VERSION='1.2.78' PORT=8084 quasar dev",
"dev": "APP_VERSION='1.2.79' PORT=8084 quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.78' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.78' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.79' 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.78' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.78' quasar dev",
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.79' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.79' 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.78",
"version": "1.2.79",
"description": "Comunita Nuovo Mondo",
"productName": "ComunitaNuovoMondo",
"author": "Surya",
@@ -9,7 +9,7 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "PORT=8083 APP_VERSION='1.2.78' quasar dev",
"dev": "PORT=8083 APP_VERSION='1.2.79' 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.78' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.78' quasar dev",
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.79' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.79' quasar dev",
"debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -22,6 +22,7 @@ const msg_website_it = {
myhosps2: 'myhosps2',
mygood2: 'mygood2',
InvitoReg: 'Invito',
installaApp: 'Installa App',
fundraising: 'Sostieni il Progetto',
notifs: 'Configura le Notifiche',
unsubscribe: 'Disiscriviti',

View File

@@ -1,6 +1,6 @@
{
"name": "freeplanet",
"version": "1.2.78",
"version": "1.2.79",
"description": "freeplanet",
"productName": "freeplanet",
"author": "Surya",
@@ -9,11 +9,11 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "PORT=8087 APP_VERSION='1.2.78' quasar dev",
"dev": "PORT=8087 APP_VERSION='1.2.79' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.78' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.78' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.79' 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.78' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.78' quasar dev",
"pwa": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.79' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.79' 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.78",
"version": "1.2.79",
"productName": "Gruppo Macro",
"description": "Il Gruppo Editoriale Macro, attivo dal 1987, è leader europeo nella pubblicazione di libri per il benessere e la consapevolezza. Con oltre 1.500 titoli, promuove una visione armonica del mondo, offrendo opere di autori internazionali e italiani come Gregg Braden, Bruce Lipton, Joe Dispenza, Louise Hay, Eckhart Tolle e molti altri. Scopri un'editoria che abbraccia il corpo, la mente, lo spirito e l'ecologia.",
"author": "Surya",
@@ -9,20 +9,20 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "PORT=8089 APP_VERSION='1.2.78' quasar dev",
"dev": "PORT=8089 APP_VERSION='1.2.79' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.78' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.78' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
"type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "APP_VERSION='1.2.78' quasar build -m spa",
"buildspa": "APP_VERSION='1.2.79' 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.78' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.78' quasar dev",
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.79' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.79' 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": "nuovomondo",
"version": "1.2.78",
"version": "1.2.79",
"description": "Nuovo Mondo",
"productName": "Nuovo Mondo",
"author": "Surya",
@@ -9,11 +9,11 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "APP_VERSION='1.2.78' PORT=8083 quasar dev",
"dev": "APP_VERSION='1.2.79' PORT=8083 quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.78' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.78' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.79' 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.78' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.78' quasar dev",
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.79' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.79' 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": "nutriben",
"version": "1.2.78",
"version": "1.2.79",
"description": "Nutriben",
"productName": "Nutriben",
"author": "Surya",
@@ -9,20 +9,20 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "PORT=8093 APP_VERSION='1.2.78' quasar dev",
"dev": "PORT=8093 APP_VERSION='1.2.79' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.78' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.78' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
"type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "APP_VERSION='1.2.78' quasar build -m spa",
"buildspa": "APP_VERSION='1.2.79' 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.78' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.78' quasar dev",
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.79' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.79' 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.78",
"version": "1.2.79",
"description": "PiuCheBuono",
"productName": "PiuCheBuono",
"author": "Surya",
@@ -9,11 +9,11 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "PORT=8085 APP_VERSION='1.2.78' quasar dev",
"dev": "PORT=8085 APP_VERSION='1.2.79' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.78' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.78' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.79' 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.78' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.78' quasar dev",
"pwa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.79' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.79' 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.78",
"version": "1.2.79",
"productName": "Riso 💚 - Rete Italiana Scambi Orizzontali",
"description": "Progetto RISO (Rete Italiana Scambi Orizzontali) promuove una rete di comunità locali che favoriscono scambi di beni, servizi e ospitalità. Con l'App RISO, sviluppata per facilitare il baratto, il dono e l'uso di monete alternative come i RIS, il progetto crea legami autentici basati sulla fiducia e sostenibilità. Partecipa agli scambi e costruisci una comunità più consapevole e autosufficiente.",
"author": "Surya",
@@ -9,11 +9,11 @@
"license": "MIT",
"type": "module",
"scripts": {
"dev": "APP_VERSION='1.2.78' PORT=8084 quasar dev",
"dev": "APP_VERSION='1.2.79' PORT=8084 quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.78' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.78' quasar build -m pwa",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.79' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.79' 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.78' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.78' quasar dev",
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.79' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.79' 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.78';
const VITE_APP_VERSION = '1.2.79';
// Costanti di configurazione
const DYNAMIC_CACHE = 'dynamic-cache-v2';

View File

@@ -353,11 +353,11 @@
// Responsive
@media (max-width: 768px) {
.install-app-container {
padding: 1rem;
padding: 0rem;
}
.install-card {
padding: 1.5rem;
padding: 0.5rem;
}
.icon-wrapper {
@@ -401,10 +401,10 @@
}
.platform-header {
padding: 1rem;
padding: 0.5rem;
.platform-info {
gap: 0.75rem;
gap: 0.5rem;
.platform-text {
h4 {
@@ -419,7 +419,7 @@
}
.platform-content {
padding: 1rem;
padding: 0.5rem;
.screenshots {
grid-template-columns: 1fr;
@@ -427,36 +427,6 @@
}
}
@media (max-width: 480px) {
.card-title {
font-size: 1.25rem;
}
.card-description {
font-size: 0.95rem;
}
.instructions-box {
.instructions-header {
flex-direction: column;
text-align: center;
h4 {
font-size: 1.1rem;
}
}
}
.platform-header {
.platform-info {
.icon-wrapper {
width: 50px;
height: 50px;
}
}
}
}
// Dark mode
body.body--dark {
.install-card {

View File

@@ -5,7 +5,14 @@ import { useQuasar } from 'quasar';
export default defineComponent({
name: 'CCheckAppRunning',
setup() {
props: {
isPageApp: {
type: Boolean,
required: false,
default: false,
}
},
setup(props) {
const globalStore = useGlobalStore();
const $q = useQuasar();

View File

@@ -248,7 +248,7 @@
<div class="platform-info">
<div class="icon-wrapper android">
<q-icon
name="fab fa-android"
name="fas fa-mobile-alt"
size="48px"
/>
</div>
@@ -393,6 +393,67 @@
</div>
</div>
</div>
<!-- ✅ App già installata -->
<div
v-else-if="isAppRunning && isPageApp"
class="install-card app-installed"
>
<div class="card-center">
<div class="icon-wrapper success">
<q-icon
name="fas fa-check-circle"
size="64px"
/>
</div>
<h3 class="card-title">App già installata! 🎉</h3>
<p class="card-description">
Ottimo! Stai già usando RISO come app installata. Puoi accedere sempre dalla
tua schermata home.
</p>
<div class="benefits-list">
<div class="benefit-item">
<q-icon
name="fas fa-bolt"
color="primary"
size="24px"
/>
<span>Accesso rapido dalla home</span>
</div>
<div class="benefit-item">
<q-icon
name="fas fa-bell"
color="primary"
size="24px"
/>
<span>Notifiche in tempo reale</span>
</div>
<div class="benefit-item">
<q-icon
name="fas fa-mobile-alt"
color="primary"
size="24px"
/>
<span>Esperienza nativa</span>
</div>
</div>
<q-btn
unelevated
rounded
size="lg"
color="primary"
class="install-btn"
to="/"
>
<q-icon
name="fas fa-home"
class="q-mr-sm"
/>
Vai alla Home
</q-btn>
</div>
</div>
</transition>
</div>
</template>

View File

@@ -826,7 +826,6 @@ export default defineComponent({
globalStore,
costanti,
t,
$q,
};
},
});

View File

@@ -62,8 +62,8 @@
.selection-btn {
flex: 0 1 calc(33.33% - 8px); // Desktop: max 1/3 dello spazio, non cresce
min-width: 140px;
min-height: 140px;
min-width: 120px;
min-height: 120px;
border-radius: 12px;
border: 2px solid #e0e0e0;
background: white;

View File

@@ -156,6 +156,17 @@ function getDynamicPages(site: ISites): IListRoutes[] {
inmenu: false,
infooter: false,
},
{
active: true,
order: 120,
path: '/installaapp',
materialIcon: 'fas fa-user',
name: 'pages.installaApp',
component: () => import('@src/views/admin/installaApp/installaApp.vue'),
meta: { },
inmenu: false,
infooter: false,
},
{
active: true,
order: 120,

View File

@@ -165,11 +165,10 @@ export const Api = {
} else {
// Se il refresh token fallisce, logout dell'utente
// userStore.setAuth('', '');
const $router = useRouter();
throw { code: toolsext.ERR_RETRY_LOGIN };
}
} catch (err2) {
console.error('Errore durante il refresh token:', err2);
console.error('Errore durante il check Token Scaduto:', err2);
let mystatus = err2?.code || err2?.status;
@@ -192,7 +191,6 @@ export const Api = {
// || statuscode2 === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN
) {
userStore.setAuth('', '');
const $router = useRouter();
throw { status: toolsext.ERR_RETRY_LOGIN };
}

View File

@@ -2726,7 +2726,7 @@ export const tools = {
getEmailSupport() {
const globalStore = useGlobalStore();
const site = globalStore.site;
return this.getemailto(site?.contacts.email)
return this.getemailto(site?.contacts.email);
},
visumenu(elem: IListRoutes) {
@@ -5651,9 +5651,9 @@ export const tools = {
const globalStore = useGlobalStore();
const site = globalStore.site;
if (tools.isTest() && !import.meta.env.DEV) {
mylink = 'https://t.me/' + site.telegram_bot_name_test
mylink = 'https://t.me/' + site.telegram_bot_name_test;
} else {
mylink = 'https://t.me/' + site.telegram_bot_name
mylink = 'https://t.me/' + site.telegram_bot_name;
}
let add = '';
@@ -6397,7 +6397,7 @@ export const tools = {
)
.then((res: any) => {
if (res) {
tools.showPositiveNotif($q, t('db.trusted', {username: usernameDest}));
tools.showPositiveNotif($q, t('db.trusted', { username: usernameDest }));
}
});
});
@@ -11273,21 +11273,37 @@ export const tools = {
.toLowerCase()
: undefined;
},
isInTelegramWebView() {
try {
return /Telegram/.test(navigator.userAgent);
// Verifica che siamo lato client
if (typeof window === 'undefined') {
return false;
}
// Metodo 1: Controlla oggetti globali di Telegram
const win = window as any;
if (win.Telegram || win.TelegramWebviewProxy || win.TelegramWebApp) {
return true;
}
// Metodo 2: User Agent (case-insensitive)
const ua = navigator.userAgent.toLowerCase();
if (ua.includes('telegram')) {
return true;
}
return false;
} catch (e) {
console.error('Errore rilevamento Telegram:', e);
return false;
}
},
pageExist(path: string) {
const globalStore = useGlobalStore();
const page = globalStore.getPage(path)
const page = globalStore.getPage(path);
return !!page
}
return !!page;
},
// FINE !

View File

@@ -0,0 +1 @@
export { default as gestoreordini } from './installaApp.vue'

View File

@@ -0,0 +1,41 @@
$heightBtn: 100%;
.card .product-image {
height: 300px;
}
.mycol{
color:gray;
}
.q-item__label--caption{
color: blue;
}
.ordstat{
text-align: center;
border: 1px solid #8778cb;
border-radius: 10px;
padding: 5px;
}
.confermato {
font-weight: bold;
color: green;
}
.note {
font-style: italic;
color:blue;
}
.totali {
font-weight: bold;
color: blue;
font-size: 1rem;
}
.totaliacq {
font-weight: bold;
color: red;
font-size: 1rem;
}

View File

@@ -0,0 +1,39 @@
import { defineComponent, onMounted, ref, watch } from 'vue'
import { tools } from '@tools'
import { useRouter } from 'vue-router'
import { useI18n } from 'vue-i18n'
import { toolsext } from '@store/Modules/toolsext'
import { useQuasar } from 'quasar'
import { costanti } from '@costanti'
import { shared_consts } from '@src/common/shared_vuejs'
import { CTitleBanner } from '@src/components/CTitleBanner'
import { CCheckAppRunning } from '@src/components/CCheckAppRunning'
export default defineComponent({
name: 'installaApp',
components: { CTitleBanner, CCheckAppRunning },
props: {},
setup() {
const $router = useRouter()
const $q = useQuasar()
const { t } = useI18n()
async function mounted() {
}
onMounted(mounted)
return {
costanti,
tools,
toolsext,
shared_consts,
t,
}
}
})

View File

@@ -0,0 +1,13 @@
<template>
<q-page>
<CTitleBanner title="Installa App"></CTitleBanner>
<CCheckAppRunning :isPageApp="true" />
</q-page>
</template>
<script lang="ts" src="./installaApp.ts">
</script>
<style lang="scss" scoped>
@import "./installaApp.scss";
</style>