diff --git a/.env b/.env
index f810ac1b..329c8d5e 100755
--- a/.env
+++ b/.env
@@ -1,6 +1,6 @@
-VITE_APP_VERSION="1.2.19"
+VITE_APP_VERSION="1.2.21"
VITE_LANG_DEFAULT="it"
VITE_PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
-VITE_SERVICE_WORKER_FILE="sw-1.2.19.js"
+VITE_SERVICE_WORKER_FILE="sw-1.2.21.js"
VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
VITE_VUE_ROUTER_MODE="history"
\ No newline at end of file
diff --git a/index.html b/index.html
index 6b47784b..6c454cf6 100755
--- a/index.html
+++ b/index.html
@@ -10,7 +10,7 @@
-
+
diff --git a/package.json b/package.json
index 3e72b934..3c69ba02 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "riso",
- "version": "1.2.19",
+ "version": "1.2.21",
"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",
diff --git a/quasar.config.ts b/quasar.config.ts
index d0136a99..e91df5dc 100644
--- a/quasar.config.ts
+++ b/quasar.config.ts
@@ -366,7 +366,7 @@ export default defineConfig((ctx) => {
// https://v2.quasar.dev/quasar-cli/developing-pwa/configuring-pwa
pwa: {
workboxMode: 'InjectManifest', // 'GenerateSW' or 'InjectManifest'
- swFilename: 'sw-' + "1.2.19" + '.js',
+ swFilename: 'sw-' + "1.2.21" + '.js',
workboxOptions: {
swSrc: 'src-pwa/custom-service-worker.js', // Assicurati che il file esista
include: [/\.html$/, /\.js$/, /\.css$/, /\.png$/, /\.svg$/, /\.json$/], // File da precacheare
diff --git a/scripts/_ALL_SITES/comunitanuovomondo.app/package.json b/scripts/_ALL_SITES/comunitanuovomondo.app/package.json
index 0bb8fa49..4da5d081 100755
--- a/scripts/_ALL_SITES/comunitanuovomondo.app/package.json
+++ b/scripts/_ALL_SITES/comunitanuovomondo.app/package.json
@@ -1,6 +1,6 @@
{
"name": "riso",
- "version": "1.2.19",
+ "version": "1.2.21",
"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",
diff --git a/scripts/_ALL_SITES/gruppomacro.app/package.json b/scripts/_ALL_SITES/gruppomacro.app/package.json
index a9062e09..7ed29d90 100755
--- a/scripts/_ALL_SITES/gruppomacro.app/package.json
+++ b/scripts/_ALL_SITES/gruppomacro.app/package.json
@@ -1,6 +1,6 @@
{
"name": "gruppomacro",
- "version": "1.2.19",
+ "version": "1.2.21",
"description": "Gruppo Macro",
"productName": "Gruppo Macro",
"author": "Surya",
diff --git a/scripts/_ALL_SITES/gruppomacro.app/quasar.config.ts b/scripts/_ALL_SITES/gruppomacro.app/quasar.config.ts
index 32780b05..76db667b 100644
--- a/scripts/_ALL_SITES/gruppomacro.app/quasar.config.ts
+++ b/scripts/_ALL_SITES/gruppomacro.app/quasar.config.ts
@@ -360,7 +360,7 @@ export default defineConfig((ctx) => {
pwa: {
workboxMode: 'InjectManifest', // 'GenerateSW' or 'InjectManifest'
- swFilename: 'sw-' + "1.2.19" + '.js',
+ swFilename: 'sw-' + "1.2.21" + '.js',
workboxOptions: {
swSrc: 'src-pwa/custom-service-worker.js', // Assicurati che il file esista
include: [/\.html$/, /\.js$/, /\.css$/, /\.png$/, /\.svg$/, /\.json$/], // File da precacheare
diff --git a/scripts/_ALL_SITES/piuchebuono.app/package.json b/scripts/_ALL_SITES/piuchebuono.app/package.json
index c6766d8c..8f244214 100755
--- a/scripts/_ALL_SITES/piuchebuono.app/package.json
+++ b/scripts/_ALL_SITES/piuchebuono.app/package.json
@@ -1,6 +1,6 @@
{
"name": "piuchebuono",
- "version": "1.2.19",
+ "version": "1.2.21",
"description": "PiuCheBuono",
"productName": "PiuCheBuono",
"author": "Surya",
diff --git a/scripts/_ALL_SITES/piuchebuono.app/quasar.config.ts b/scripts/_ALL_SITES/piuchebuono.app/quasar.config.ts
index 7888ad3e..f1f55688 100644
--- a/scripts/_ALL_SITES/piuchebuono.app/quasar.config.ts
+++ b/scripts/_ALL_SITES/piuchebuono.app/quasar.config.ts
@@ -360,7 +360,7 @@ export default defineConfig((ctx) => {
pwa: {
workboxMode: 'InjectManifest', // 'GenerateSW' or 'InjectManifest'
- swFilename: 'sw-' + "1.2.19" + '.js',
+ swFilename: 'sw-' + "1.2.21" + '.js',
workboxOptions: {
swSrc: 'src-pwa/custom-service-worker.js', // Assicurati che il file esista
include: [/\.html$/, /\.js$/, /\.css$/, /\.png$/, /\.svg$/, /\.json$/], // File da precacheare
diff --git a/scripts/_ALL_SITES/riso.app/package.json b/scripts/_ALL_SITES/riso.app/package.json
index 3e72b934..3c69ba02 100755
--- a/scripts/_ALL_SITES/riso.app/package.json
+++ b/scripts/_ALL_SITES/riso.app/package.json
@@ -1,6 +1,6 @@
{
"name": "riso",
- "version": "1.2.19",
+ "version": "1.2.21",
"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",
diff --git a/scripts/_ALL_SITES/riso.app/quasar.config.ts b/scripts/_ALL_SITES/riso.app/quasar.config.ts
index d0136a99..e91df5dc 100644
--- a/scripts/_ALL_SITES/riso.app/quasar.config.ts
+++ b/scripts/_ALL_SITES/riso.app/quasar.config.ts
@@ -366,7 +366,7 @@ export default defineConfig((ctx) => {
// https://v2.quasar.dev/quasar-cli/developing-pwa/configuring-pwa
pwa: {
workboxMode: 'InjectManifest', // 'GenerateSW' or 'InjectManifest'
- swFilename: 'sw-' + "1.2.19" + '.js',
+ swFilename: 'sw-' + "1.2.21" + '.js',
workboxOptions: {
swSrc: 'src-pwa/custom-service-worker.js', // Assicurati che il file esista
include: [/\.html$/, /\.js$/, /\.css$/, /\.png$/, /\.svg$/, /\.json$/], // File da precacheare
diff --git a/src-pwa/custom-service-worker.js b/src-pwa/custom-service-worker.js
index 98ca5fd4..d618ec56 100755
--- a/src-pwa/custom-service-worker.js
+++ b/src-pwa/custom-service-worker.js
@@ -3,7 +3,7 @@
/* global workbox */
/* global cfgenv */
-const VITE_APP_VERSION = "1.2.19";
+const VITE_APP_VERSION = "1.2.21";
const CACHE_NAME = 'pwa-cache-' + VITE_APP_VERSION; // Nome della cache
diff --git a/src/App.ts b/src/App.ts
index 4fbc9cdc..6fbb9af6 100755
--- a/src/App.ts
+++ b/src/App.ts
@@ -10,6 +10,7 @@ import { CFirstPageApp } from '@src/components/CFirstPageApp'
import { computed, onMounted, ref, watch } from 'vue'
import { CProvaPao } from '@src/components/CProvaPao'
import { tools } from '@tools'
+import { toolsext } from '@store/Modules/toolsext'
import { Vue } from 'vue-class-component'
@@ -133,7 +134,12 @@ export default {
if (chiamaautologin) {
// console.log('CHIAMA autologin_FromLocalStorage')
- await userStore.autologin_FromLocalStorage($router, $q)
+ const ris = await userStore.autologin_FromLocalStorage($router, $q)
+ if (ris?.code === toolsext.ERR_RETRY_LOGIN) {
+ setTimeout(() => {
+ $router.replace('/signin');
+ }, 100);
+ }
} else {
globalStore.finishLoading = true
}
diff --git a/src/store/Api/index.ts b/src/store/Api/index.ts
index 89cb0d59..53310782 100755
--- a/src/store/Api/index.ts
+++ b/src/store/Api/index.ts
@@ -139,7 +139,8 @@ export const Api = {
} else {
// Se il refresh token fallisce, logout dell'utente
userStore.setAuth('', '');
- throw { code: toolsext.ERR_AUTHENTICATION };
+ const $router = useRouter()
+ throw { code: toolsext.ERR_RETRY_LOGIN };
}
} catch (err2) {
console.error('Errore durante il refresh token:', err2);
@@ -147,12 +148,16 @@ export const Api = {
if (err2?.code === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN) {
userStore.setServerCode(toolsext.ERR_AUTHENTICATION);
userStore.setAuth('', '');
- throw { code: toolsext.ERR_AUTHENTICATION };
+ throw { status: toolsext.ERR_RETRY_LOGIN };
}
// Gestione di altri errori critici
throw err2;
}
+ } else if (status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN) {
+ userStore.setAuth('', '');
+ const $router = useRouter()
+ throw { status: toolsext.ERR_RETRY_LOGIN };
}
return null;
@@ -252,7 +257,7 @@ export const Api = {
return await this.SendReqBase(url, method, mydata, setAuthToken, evitaloop, myformdata, responsedata, options);
} catch (error) {
// Se lo status non è 403 e sono rimasti tentativi, eseguo il retry
- const riprova = error.status !== 403;
+ const riprova = error.status !== 403 && error.status !== toolsext.ERR_RETRY_LOGIN;
if (retryCount > 0 && riprova) {
console.log(`❌❌❌ Retrying request. Attempts remaining: ${retryCount}`);
await this.delay(retryDelay);
diff --git a/src/store/Modules/toolsext.ts b/src/store/Modules/toolsext.ts
index be008da6..7ab33ac5 100755
--- a/src/store/Modules/toolsext.ts
+++ b/src/store/Modules/toolsext.ts
@@ -106,6 +106,7 @@ export const toolsext = {
ERR_GENERICO: -1,
ERR_SERVERFETCH: -2,
ERR_AUTHENTICATION: -5,
+ ERR_RETRY_LOGIN: -40,
localStorage: {
diff --git a/src/store/UserStore.ts b/src/store/UserStore.ts
index 9b19ac33..644cfa4a 100755
--- a/src/store/UserStore.ts
+++ b/src/store/UserStore.ts
@@ -1550,32 +1550,39 @@ export const useUserStore = defineStore('UserStore', {
await globalStore.checkUpdates()
}
- const isok = await globalStore.loadLoginSite(router)
+ const { isok, stop, code } = await globalStore.loadLoginSite(router)
- this.isLogged = isok && isLogged
+ this.isLogged = isok && isLogged && !stop
- await globalStore.loadAfterLogin()
+ if (!stop) {
- // console.log('this.isLogged', this.isLogged, 'isok', isok, 'isLogged', isLogged)
- if (globalStore.site.confpages && globalStore.site.confpages.enableTodos)
- await todos.dbLoad({ checkPending: true })
+ await globalStore.loadAfterLogin()
- if (globalStore.site.confpages?.enableProj)
- await projects.dbLoad({ checkPending: true, onlyiffirsttime: true })
+ // console.log('this.isLogged', this.isLogged, 'isok', isok, 'isLogged', isLogged)
- globalStore.addDynamicPages(router)
+ if (globalStore.site.confpages && globalStore.site.confpages.enableTodos)
+ await todos.dbLoad({ checkPending: true })
- static_data.lang_available = globalStore.getLangAvailable()
+ if (globalStore.site.confpages?.enableProj)
+ await projects.dbLoad({ checkPending: true, onlyiffirsttime: true })
- static_data.arrLangUsed = tools.getLangUsed()
+ globalStore.addDynamicPages(router)
- // console.log('$router', $router)
+ static_data.lang_available = globalStore.getLangAvailable()
+
+ static_data.arrLangUsed = tools.getLangUsed()
+
+ // console.log('$router', $router)
+
+ // document.dispatchEvent(new Event('custom-post-render-event'))
+ }
globalStore.finishLoading = true
if (tools.isDebug()) console.log('finishLoading', globalStore.finishLoading)
- // document.dispatchEvent(new Event('custom-post-render-event'))
+ return { code }
+
} catch (e) {
console.error('Error', e)
globalStore.finishLoading = true
@@ -1623,13 +1630,13 @@ export const useUserStore = defineStore('UserStore', {
return await this.setGlobal(router, isLogged)
.then((loadstorage: any) => {
// console.log('RISULT setGlobal:', loadstorage)
- if (loadstorage) {
-
+ if (loadstorage.code === 200) {
globalroutines('loadapp', '')
// Create Subscription to Push Notification
globalStore.createPushSubscription()
}
+ return loadstorage
})
} catch (e: any) {
diff --git a/src/store/globalStore.ts b/src/store/globalStore.ts
index ec0a359d..8058c25e 100644
--- a/src/store/globalStore.ts
+++ b/src/store/globalStore.ts
@@ -1019,14 +1019,18 @@ export const useGlobalStore = defineStore('GlobalStore', {
async loadLoginSite(router: Router) {
let isok = false
+ let code = 200
+
+ let stop = false
if (!await this.loadSite()) {
- router.push('/signin')
+ stop = true
+ code = toolsext.ERR_RETRY_LOGIN
} else {
isok = true
}
- return isok
+ return { isok, stop, code }
},
async loadAfterLogin() {
@@ -1891,8 +1895,11 @@ export const useGlobalStore = defineStore('GlobalStore', {
// userStore.setErrorCatch(error)
this.serverError = true
this.serverMsgError = error
- return new Types.AxiosError(serv_constants.RIS_CODE_ERR, null, toolsext.ERR_GENERICO, error)
+ //return new Types.AxiosError(serv_constants.RIS_CODE_ERR, null, toolsext.ERR_GENERICO, error)
+ return false
}
+
+ return false
},
getProvinceByProv(provstr: string) {