Gestione Refresh Token Completata !

This commit is contained in:
Surya Paolo
2024-04-11 11:43:38 +02:00
parent 62c0f497e5
commit bff31b5fd4
93 changed files with 3592683 additions and 214 deletions

View File

@@ -1,6 +1,6 @@
APP_VERSION="1.0.33" APP_VERSION="1.0.34"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="17" APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"
DIRECTORY_SERVER="freeplanet_serverside" DIRECTORY_SERVER="freeplanet_serverside"
SERVERDIR_WEBSITE="" SERVERDIR_WEBSITE=""
@@ -12,7 +12,7 @@ LANG_DEFAULT="it"
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF" PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T" MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
MONGODB_HOST="https://localhost:3000" MONGODB_HOST="https://localhost:3000"
LOGO_REG='piuchebuono-logo-full.png' LOGO_REG='riso-logo-full.png'
TEST_NAME="Paolo" TEST_NAME="Paolo"
TEST_SURNAME="Arena" TEST_SURNAME="Arena"
TEST_EMAIL="" TEST_EMAIL=""

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.0.33" APP_VERSION="1.0.34"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.0.33" APP_VERSION="1.0.34"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="17" APP_ID="17"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.0.33" APP_VERSION="1.0.34"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="17" APP_ID="17"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.0.33" APP_VERSION="1.0.34"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.0.33" APP_VERSION="1.0.34"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.0.33" APP_VERSION="1.0.34"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="15" APP_ID="15"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.0.33" APP_VERSION="1.0.34"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="15" APP_ID="15"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.0.33" APP_VERSION="1.0.34"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.0.33" APP_VERSION="1.0.34"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="17" APP_ID="17"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.0.33" APP_VERSION="1.0.34"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.0.33" APP_VERSION="1.0.34"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.0.33" APP_VERSION="1.0.34"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.0.33" APP_VERSION="1.0.34"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="16" APP_ID="16"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.0.33" APP_VERSION="1.0.34"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="14" APP_ID="14"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1 +1 @@
TERMINA DI LAVORARE SU riso.app: (Sovrascrivo !) TERMINA DI LAVORARE SU piuchebuono.app: (Sovrascrivo !)

View File

@@ -1,8 +1,8 @@
{ {
"name": "piuchebuono", "name": "riso",
"version": "2.0.1", "version": "0.6.1",
"description": "PiuCheBuono", "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": "PiuCheBuono", "productName": "Riso",
"author": "Paolo Arena", "author": "Paolo Arena",
"private": true, "private": true,
"keywords": [], "keywords": [],
@@ -43,7 +43,6 @@
"bcryptjs": "^2.4.3", "bcryptjs": "^2.4.3",
"chart.js": "^4.4.2", "chart.js": "^4.4.2",
"core-js": "^3.36.1", "core-js": "^3.36.1",
"crypto": "^1.0.1",
"crypto-browserify": "^3.12.0", "crypto-browserify": "^3.12.0",
"date-fns": "^3.6.0", "date-fns": "^3.6.0",
"dotenv": "^16.4.5", "dotenv": "^16.4.5",

File diff suppressed because it is too large Load Diff

BIN
public/images/ferrara.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
public/images/foto1.jpg Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 12 KiB

BIN
public/images/foto2.jpg Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 12 KiB

BIN
public/images/foto3.jpg Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 12 KiB

BIN
public/images/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 618 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 311 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 634 KiB

BIN
public/images/riso_home.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

View File

@@ -68,6 +68,7 @@ module.exports = configure((ctx) => ({
views: path.resolve(__dirname, 'src/views/index.ts'), views: path.resolve(__dirname, 'src/views/index.ts'),
icons: path.resolve(__dirname, 'src/assets/icons'), icons: path.resolve(__dirname, 'src/assets/icons'),
images: path.resolve(__dirname, 'src/assets/images'), images: path.resolve(__dirname, 'src/assets/images'),
maps: path.resolve(__dirname, 'src/public/maps'),
classes: path.resolve(__dirname, 'src/classes/index.ts'), classes: path.resolve(__dirname, 'src/classes/index.ts'),
fonts: path.resolve(__dirname, 'src/assets/fonts'), fonts: path.resolve(__dirname, 'src/assets/fonts'),
utils: path.resolve(__dirname, 'src/utils/index.ts'), utils: path.resolve(__dirname, 'src/utils/index.ts'),
@@ -94,7 +95,6 @@ module.exports = configure((ctx) => ({
transpileDependencies: [ transpileDependencies: [
/quasar-ui-qcalendar[\\/]src/ /quasar-ui-qcalendar[\\/]src/
], ],
devtool: 'source-map',
chainWebpack(chain, { isServer, isClient }) { chainWebpack(chain, { isServer, isClient }) {
chain.resolve.alias chain.resolve.alias
@@ -108,6 +108,7 @@ module.exports = configure((ctx) => ({
.set('@css', path.resolve(__dirname, 'src/public/css/variables.scss')) .set('@css', path.resolve(__dirname, 'src/public/css/variables.scss'))
.set('@icons', path.resolve(__dirname, 'src/public/icons/*')) .set('@icons', path.resolve(__dirname, 'src/public/icons/*'))
.set('@images', path.resolve(__dirname, 'src/public/images/*')) .set('@images', path.resolve(__dirname, 'src/public/images/*'))
.set('@maps', path.resolve(__dirname, 'src/public/maps/*'))
.set('@classes', path.resolve(__dirname, 'src/classes/index.ts')) .set('@classes', path.resolve(__dirname, 'src/classes/index.ts'))
.set('@utils', path.resolve(__dirname, 'src/utils/index.ts')) .set('@utils', path.resolve(__dirname, 'src/utils/index.ts'))
.set('@utils', path.resolve(__dirname, 'src/utils/*')) .set('@utils', path.resolve(__dirname, 'src/utils/*'))
@@ -148,8 +149,9 @@ module.exports = configure((ctx) => ({
}, },
devServer: { devServer: {
https: false, https: false,
port: 8088, port: 8084,
open: false, // opens browser window automatically open: false, // opens browser window automatically
hot: false, // Disable hot module replacement
headers: { headers: {
'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': '*', 'Access-Control-Allow-Headers': '*',
@@ -295,8 +297,8 @@ module.exports = configure((ctx) => ({
workboxPluginMode: 'InjectManifest', // 'GenerateSW' or 'InjectManifest' workboxPluginMode: 'InjectManifest', // 'GenerateSW' or 'InjectManifest'
workboxOptions: {}, // only for GenerateSW workboxOptions: {}, // only for GenerateSW
extendGenerateSWOptions(cfg) { extendGenerateSWOptions(cfg) {
cfg.skipWaiting = true cfg.skipWaiting = false
cfg.clientsClaim = true cfg.clientsClaim = false
}, },
// for the custom service worker ONLY (/src-pwa/custom-service-worker.[js|ts]) // for the custom service worker ONLY (/src-pwa/custom-service-worker.[js|ts])
// if using workbox in InjectManifest mode // if using workbox in InjectManifest mode
@@ -306,9 +308,9 @@ module.exports = configure((ctx) => ({
}, },
manifest: { manifest: {
name: 'Più che Buono', name: 'Riso',
short_name: 'PiuCheBuono', short_name: 'Riso',
description: 'PiuCheBuono è un GAS e Bottega', 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.',
display: 'standalone', display: 'standalone',
orientation: 'portrait', orientation: 'portrait',
background_color: '#fff', background_color: '#fff',
@@ -318,54 +320,54 @@ module.exports = configure((ctx) => ({
start_url: "/?homescreen=1", start_url: "/?homescreen=1",
icons: [ icons: [
{ {
src: 'images/pcb-android-icon-512x512.png', src: 'images/riso-android-icon-512x512.png',
sizes: '512x512', sizes: '512x512',
type: 'image/png', type: 'image/png',
}, },
{ {
src: 'images/pcb-android-icon-384x384.png', src: 'images/riso-android-icon-384x384.png',
sizes: '384x384', sizes: '384x384',
type: 'image/png', type: 'image/png',
}, },
{ {
src: 'images/pcb-android-icon-192x192.png', src: 'images/riso-android-icon-192x192.png',
sizes: '192x192', sizes: '192x192',
type: 'image/png', type: 'image/png',
}, },
{ {
src: 'images/pcb-android-icon-144x144.png', src: 'images/riso-android-icon-144x144.png',
sizes: '144x144', sizes: '144x144',
type: 'image/png', type: 'image/png',
}, },
{ {
src: 'images/pcb-android-icon-96x96.png', src: 'images/riso-android-icon-96x96.png',
sizes: '96x96', sizes: '96x96',
type: 'image/png', type: 'image/png',
}, },
{ {
src: 'images/pcb-apple-icon-120x120.png', src: 'images/riso-apple-icon-120x120.png',
sizes: '120x120', sizes: '120x120',
type: 'image/png', type: 'image/png',
}, },
{ {
src: 'images/pcb-apple-icon-144x144.png', src: 'images/riso-apple-icon-144x144.png',
sizes: '144x144', sizes: '144x144',
type: 'image/png', type: 'image/png',
}, },
{ {
src: 'images/pcb-apple-icon-152x152.png', src: 'images/riso-apple-icon-152x152.png',
sizes: '152x152', sizes: '152x152',
type: 'image/png', type: 'image/png',
}, },
{ {
src: 'images/pcb-apple-icon-180x180.png', src: 'images/riso-apple-icon-180x180.png',
sizes: '180x180', sizes: '180x180',
type: 'image/png', type: 'image/png',
}, },
], ],
related_applications: [{ related_applications: [{
"platform": "webapp", "platform": "webapp",
"url": "https://www.piuchebuono.app/manifest.json" "url": "https://www.riso.app/manifest.json"
}] }]
}, },
}, },
@@ -400,7 +402,7 @@ module.exports = configure((ctx) => ({
builder: { builder: {
// https://www.electron.build/configuration/configuration // https://www.electron.build/configuration/configuration
appId: 'PiuCheBuono', appId: 'Riso',
}, },
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain

View File

@@ -478,7 +478,7 @@ self.addEventListener('sync', function (event) {
headers.append('content-Type', 'application/json') headers.append('content-Type', 'application/json')
headers.append('Accept', 'application/json') headers.append('Accept', 'application/json')
headers.append('x-auth', token) headers.append('x-auth', token)
headers.append('x-refrTok', refreshToken) headers.append('x-refrtok', refreshToken)
// console.log('A1) INIZIO.............................................................'); // console.log('A1) INIZIO.............................................................');

View File

@@ -2,6 +2,43 @@
<div v-if="showalways || (!showalways && !tools.isLogged())"> <div v-if="showalways || (!showalways && !tools.isLogged())">
<div class="q-pa-md q-gutter-sm"> <div class="q-pa-md q-gutter-sm">
<div class=" text-center"> <div class=" text-center">
<transition-group
name="fade"
mode="out-in"
appear
enter-active-class="animazione fadeIn"
leave-active-class="animazione fadeOut"
>
<q-banner
:key="1"
rounded
class="text-white bg-red"
color="primary q-title"
style="text-align: center"
>
<template v-slot:avatar>
<q-icon :key="2" name="fas fa-sign-in-alt" color="white" />
</template>
<div :key="3">
Accedi con le tue credenziali per utilizzare la APP e per unirti
al Circuito di scambio RIS del tuo territorio
</div>
<template v-slot:action>
<div>
<q-btn
flat
color="white"
@click="tools.openrighttoolbar()"
>{{ $t('login.enter') }}
</q-btn>
</div>
<!--<CRegistration />-->
</template>
</q-banner>
</transition-group>
<q-separator inset />
<br>
<q-banner <q-banner
v-if="false" v-if="false"
rounded rounded

View File

@@ -205,8 +205,8 @@ export default defineComponent({
} }
function mounted() { function mounted() {
console.log('mounted elem ') //console.log('mounted elem ')
console.log(props.myelem.type) //console.log(props.myelem.type)
myel.value = props.myelem myel.value = props.myelem
neworder.value = props.myelem.order neworder.value = props.myelem.order

View File

@@ -95,7 +95,7 @@ export default defineComponent({
if (mypathin.value !== '') { if (mypathin.value !== '') {
globalStore.loadPage('/' + mypathin.value, 'cmypageelem').then(ris => { globalStore.loadPage('/' + mypathin.value, 'cmypageelem').then(ris => {
rec.value = ris rec.value = ris
console.log('LoadPage', ris) // console.log('LoadPage', ris)
}) })
} }

View File

@@ -8,8 +8,6 @@ const msg_website_enUs = {
products: { products: {
quantity: 'Quantità', quantity: 'Quantità',
quantityAvailable: 'Disponibili', quantityAvailable: 'Disponibili',
stockQty: 'In Magazzino',
stockBloccatiQty: 'Bloccati In Magazzino',
weight: 'Peso', weight: 'Peso',
stars: 'Voto', stars: 'Voto',
color: 'Colore', color: 'Colore',
@@ -38,7 +36,6 @@ const msg_website_enUs = {
productslist: 'Lista Prodotti', productslist: 'Lista Prodotti',
collabora: 'Collabora', collabora: 'Collabora',
storehouses: 'Magazzino', storehouses: 'Magazzino',
providers: 'Fornitori',
departments: 'Uffici', departments: 'Uffici',
orders: 'Ordini Ricevuti', orders: 'Ordini Ricevuti',
orders2: 'Ordini Ricevuti', orders2: 'Ordini Ricevuti',

View File

@@ -8,7 +8,6 @@ const msg_website_es = {
products: { products: {
quantity: 'Quantità', quantity: 'Quantità',
quantityAvailable: 'Disponibili', quantityAvailable: 'Disponibili',
stockQty: 'In Magazzino',
weight: 'Peso', weight: 'Peso',
stars: 'Voto', stars: 'Voto',
color: 'Colore', color: 'Colore',

View File

@@ -1,9 +1,9 @@
const msg_website_it = { const msg_website_it = {
ws: { ws: {
sitename: 'Più che Buono', sitename: 'Riso',
siteshortname: 'Più che Buono', siteshortname: 'RISO',
description: '', 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.',
keywords: '', keywords: 'riso, piattaforma di scambio, rete italiana scambio orizzontale, riso app, riso piattaforma, scambio e baratto, momenta RIS',
}, },
hours: { hours: {
descr: 'Descrizione', descr: 'Descrizione',
@@ -16,35 +16,23 @@ const msg_website_it = {
pages: { pages: {
home: 'Home', home: 'Home',
profile: 'Profilo', profile: 'Profilo',
install_site: 'Installa Sito',
profile2: 'ProfiloU', profile2: 'ProfiloU',
mypage2: 'mypage2', mypage2: 'mypage2',
myservice2: 'myservice2', myservice2: 'myservice2',
myhosps2: 'myhosps2', myhosps2: 'myhosps2',
mygood2: 'mygood2', mygood2: 'mygood2',
catalogo: 'Catalogo',
fundraising: 'Sostieni il Progetto', fundraising: 'Sostieni il Progetto',
notifs: 'Configura le Notifiche', notifs: 'Configura le Notifiche',
unsubscribe: 'Disiscriviti', unsubscribe: 'Disiscriviti',
unsubscribe_user: 'Disiscriviti User',
test: 'Test', test: 'Test',
projects: 'Progetti', projects: 'Progetti',
report: 'Report Ore', report: 'Report Ore',
producer: 'Produttore', producer: 'Produttore',
orderinfo: 'Ordini Effettuati', orderinfo: 'Ordini Effettuati',
products: 'Prodotti', products: 'Prodotti',
cash: 'Cassa',
productInfos: 'Info Prodotti',
listinoprodotti: 'Listino Prodotti',
productslist: 'Lista Prodotti', productslist: 'Lista Prodotti',
collabora: 'Collabora', collabora: 'Collabora',
categories: 'Categorie',
storehouses: 'Magazzino', storehouses: 'Magazzino',
providers: 'Fornitori',
catprods: 'Categorie',
subcatprods: 'Sotto-Categorie',
gasordine: 'Gas Ordine',
scontisticas: 'Scontistica',
departments: 'Uffici', departments: 'Uffici',
orders: 'Ordini Ricevuti', orders: 'Ordini Ricevuti',
orders2: 'Ordini Ricevuti', orders2: 'Ordini Ricevuti',
@@ -133,11 +121,9 @@ const msg_website_it = {
only_residenti: 'Solo Residenti', only_residenti: 'Solo Residenti',
only_consiglio: 'Solo Consiglieri', only_consiglio: 'Solo Consiglieri',
color: 'Colore', color: 'Colore',
gasordini: 'Gas Ordini',
gestoreordini: 'Gestore Ordini',
}, },
msg: { msg: {
myAppName: 'Più che Buono', myAppName: 'Riso',
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito', myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
underconstruction: 'App in costruzione...', underconstruction: 'App in costruzione...',
myDescriz: '', myDescriz: '',

View File

@@ -7,6 +7,30 @@ import {
import { func } from '@store/Modules/fieldsTable' import { func } from '@store/Modules/fieldsTable'
// const SHOW_PROJINTHEMENU = false
//
// let arrlistafavourite = []
// let arrlistaprojtutti = []
// let arrlistaprojmiei = []
// if (SHOW_PROJINTHEMENU) {
// arrlistaprojtutti = Projects.getters.listaprojects(RouteNames.projectsall)
// arrlistaprojmiei = Projects.getters.listaprojects(RouteNames.myprojects)
// arrlistafavourite = Projects.getters.listaprojects(RouteNames.favouriteprojects)
// }
// PROGETTI -> FAVORITI :
// if (arrlistafavourite.length > 0) {
// arrMenu.push({
// icon: 'favorite_border',
// nametranslate: 'pages.' + RouteNames.favouriteprojects,
// urlroute: RouteNames.favouriteprojects,
// level_parent: 0.0,
// level_child: 0.5,
// routes2: arrlistafavourite,
// idelem: ''
// })
// }
const firstPage = { const firstPage = {
active: true, active: true,
order: 5, order: 5,
@@ -33,7 +57,72 @@ function getDynamicPages(site: ISites): IListRoutes[] {
inmenu: true, inmenu: true,
infooter: true, infooter: true,
}, },
/*{ {
active: true,
order: 400,
path: '/test',
materialIcon: 'fas fa-test',
name: 'mypages.test',
component: () => import('@/views/testServer/testServer.vue'),
inmenu: false,
infooter: false,
},
{
active: true,
order: 12,
path: '/goods',
materialIcon: 'fas fa-tshirt',
name: 'mypages.goods',
component: () => import('@/root/goods/goods.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 15,
path: '/services',
materialIcon: 'fas fa-house-user',
name: 'mypages.services',
component: () => import('@/root/services/services.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 15,
path: '/provapao',
materialIcon: 'fas fa-house-user',
name: 'mypages.provapao',
component: () => import('@/root/provapao/provapao.vue'),
meta: { requiresAuth: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 15,
path: '/hosps',
materialIcon: 'fas fa-bed',
name: 'mypages.hosp',
component: () => import('@/root/hosp/hosp.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: site.confpages && site.confpages.enableCircuits,
order: 16,
path: '/circuits',
materialIcon: 'fas fa-coins',
name: 'mypages.circuits',
component: () => import('@/views/user/mycircuits/mycircuits.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true, active: true,
order: 20, order: 20,
path: '/events', path: '/events',
@@ -43,17 +132,6 @@ function getDynamicPages(site: ISites): IListRoutes[] {
meta: { requiresAuth: true }, meta: { requiresAuth: true },
inmenu: true, inmenu: true,
infooter: true, infooter: true,
},*/
{
active: site.confpages && site.confpages.showProfile,
order: 120,
path: '/myprofile',
materialIcon: 'fas fa-user',
name: 'pages.profile',
component: () => import('@/views/user/myprofile/myprofile.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
}, },
{ {
active: true, active: true,
@@ -67,7 +145,18 @@ function getDynamicPages(site: ISites): IListRoutes[] {
infooter: false, infooter: false,
}, },
{ {
active: site.confpages && site.confpages.showProfile, active: true,
order: 120,
path: '/myprofile',
materialIcon: 'fas fa-user',
name: 'pages.profile',
component: () => import('@/views/user/myprofile/myprofile.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 120, order: 120,
path: '/editprofile', path: '/editprofile',
materialIcon: 'fas fa-user', materialIcon: 'fas fa-user',
@@ -78,7 +167,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
infooter: false, infooter: false,
}, },
{ {
active: site.confpages && site.confpages.showiscrittiMenu, active: true,
order: 130, order: 130,
path: '/friends', path: '/friends',
materialIcon: 'fas fa-user-friends', materialIcon: 'fas fa-user-friends',
@@ -88,19 +177,6 @@ function getDynamicPages(site: ISites): IListRoutes[] {
inmenu: true, inmenu: true,
infooter: true, infooter: true,
}, },
{
active: site.confpages && site.confpages.enableCircuits,
order: 16,
path: '/circuits',
materialIcon: 'fas fa-coins',
name: 'mypages.circuits',
component: () => import('@/views/user/mycircuits/mycircuits.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
onlyAdmin: true,
onlyManager: true,
},
{ {
active: site.confpages && site.confpages.enableGroups, active: site.confpages && site.confpages.enableGroups,
order: 132, order: 132,
@@ -111,8 +187,6 @@ function getDynamicPages(site: ISites): IListRoutes[] {
meta: { requiresAuth: true }, meta: { requiresAuth: true },
inmenu: true, inmenu: true,
infooter: false, infooter: false,
onlyAdmin: true,
onlyManager: true,
}, },
{ {
active: true, active: true,

View File

@@ -10,6 +10,7 @@ import { LandingFooter } from '@/components/LandingFooter'
import { CDashboard } from '@/components/CDashboard' import { CDashboard } from '@/components/CDashboard'
import { CChartMap } from '@src/components/CChartMap' import { CChartMap } from '@src/components/CChartMap'
import { CUserNonVerif } from '@/components/CUserNonVerif' import { CUserNonVerif } from '@/components/CUserNonVerif'
import { CCheckIfIsLogged } from '@components'
import { CTitlePage } from '@/components/CTitlePage' import { CTitlePage } from '@/components/CTitlePage'
import { CVerifyEmail } from '@src/components/CVerifyEmail' import { CVerifyEmail } from '@src/components/CVerifyEmail'
import { CVerifyTelegram } from '@src/components/CVerifyTelegram' import { CVerifyTelegram } from '@src/components/CVerifyTelegram'
@@ -23,7 +24,9 @@ import { colmyBachecas } from '@store/Modules/fieldsTable'
export default defineComponent({ export default defineComponent({
name: 'eventi', name: 'eventi',
components: { CSkill, CChartMap, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif, CTitlePage, LandingFooter }, components: { CSkill, CChartMap, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif, CTitlePage, LandingFooter,
CCheckIfIsLogged
},
setup() { setup() {
return { return {
colmyBachecas, colmyBachecas,

View File

@@ -16,6 +16,9 @@
</div> </div>
</div> </div>
<div v-else>
<CCheckIfIsLogged></CCheckIfIsLogged>
</div>
</q-page> </q-page>

View File

@@ -12,19 +12,21 @@ import { CUserNonVerif } from '@/components/CUserNonVerif'
import { CTitlePage } from '@/components/CTitlePage' import { CTitlePage } from '@/components/CTitlePage'
// import { CMapsEsempio } from '@src/components/CMapsEsempio' // import { CMapsEsempio } from '@src/components/CMapsEsempio'
import { CVerifyEmail } from '@src/components/CVerifyEmail' import { CVerifyEmail } from '@src/components/CVerifyEmail'
import { CCheckIfIsLogged } from '@components'
import { CNotifAtTop } from '@src/components/CNotifAtTop' import { CNotifAtTop } from '@src/components/CNotifAtTop'
import { CVerifyTelegram } from '@src/components/CVerifyTelegram' import { CVerifyTelegram } from '@src/components/CVerifyTelegram'
import { LandingFooter } from '@/components/LandingFooter' import { LandingFooter } from '@/components/LandingFooter'
import { useGlobalStore } from '@store/globalStore' import { useGlobalStore } from '@store/globalStore'
import { useUserStore } from '@store/UserStore' import { useUserStore } from '@store/UserStore'
import { static_data } from '@/db/static_data' import { static_data } from '@/db/static_data'
import MixinBase from '@/mixins/mixin-base' import MixinBase from '@/mixins/mixin-base'
import MixinUsers from '@/mixins/mixin-users' import MixinUsers from '@/mixins/mixin-users'
export default defineComponent({ export default defineComponent({
name: 'Goods', name: 'Goods',
components: { CSkill, CChartMap, CFinder, components: { CSkill, CChartMap, CFinder,
CNotifAtTop, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif, CTitlePage, LandingFooter }, CNotifAtTop, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif, CTitlePage, LandingFooter, CCheckIfIsLogged },
setup() { setup() {
return { return {

View File

@@ -1,28 +1,25 @@
<template> <template>
<q-page class=""> <q-page class>
<div v-if="tools.isLogged()"> <div v-if="tools.isLogged()">
<CNotifAtTop /> <CNotifAtTop />
<div v-if="tools.isUserOk()"> <div v-if="tools.isUserOk()">
<CFinder <CFinder
:ind="tools.getIndMainCardsByTable(toolsext.TABMYGOODS)" :ind="tools.getIndMainCardsByTable(toolsext.TABMYGOODS)"
:table="toolsext.TABMYGOODS" :table="toolsext.TABMYGOODS"
/> />
</div> </div>
<div v-else> <div v-else>
<CUserNonVerif></CUserNonVerif> <CUserNonVerif></CUserNonVerif>
</div> </div>
</div> </div>
<div v-else>
<CCheckIfIsLogged></CCheckIfIsLogged>
</div>
</q-page> </q-page>
</template> </template>
<script lang="ts" src="./goods.ts"> <script lang="ts" src="./goods.ts">
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import './goods.scss'; @import "./goods.scss";
</style> </style>

View File

@@ -21,10 +21,11 @@ import { static_data } from '@/db/static_data'
import MixinBase from '@/mixins/mixin-base' import MixinBase from '@/mixins/mixin-base'
import MixinUsers from '@/mixins/mixin-users' import MixinUsers from '@/mixins/mixin-users'
import { costanti } from '@costanti' import { costanti } from '@costanti'
import { CCheckIfIsLogged } from '@components'
export default defineComponent({ export default defineComponent({
name: 'Services', name: 'Services',
components: { CSkill, CChartMap, CNotifAtTop, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif, CTitlePage, LandingFooter }, components: { CSkill, CChartMap, CNotifAtTop, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif, CTitlePage, LandingFooter, CCheckIfIsLogged },
setup() { setup() {
return { return {
tools, tools,

View File

@@ -18,6 +18,9 @@
</div> </div>
</div> </div>
<div v-else>
<CCheckIfIsLogged></CCheckIfIsLogged>
</div>
</q-page> </q-page>

View File

@@ -435,10 +435,13 @@ export default defineComponent({
strris += addfield(col, 'unit', rec, {}); col++; strris += addfield(col, 'unit', rec, {}); col++;
strris += addfield(col, 'link', rec, {}); col++; strris += addfield(col, 'link', rec, {}); col++;
strris += addfield(col, 'perc_iva', rec, {}); col++; strris += addfield(col, 'perc_iva', rec, {}); col++;
strris += addfield(col, 'price_acquistato', rec, { isnumero: true, iseuro: true }); col++; strris += addfield(col, 'price_acquistato', rec, { isnumero: true, iseuro: true }); col++;
strris += addfield(col, 'minBuyQty', rec, { isnumero: true }); col++; strris += addfield(col, 'minBuyQty', rec, { isnumero: true }); col++;
strris += addfield(col, 'minStepQty', rec, { isnumero: true }); col++; strris += addfield(col, 'minStepQty', rec, { isnumero: true }); col++;
strris += addfield(col, 'sconto', rec, {}); col++;
strris += addfield(col, 'cat_name', rec, {}); col++; strris += addfield(col, 'cat_name', rec, {}); col++;
strris += addfield(col, 'subcat_name', rec, {}); col++; strris += addfield(col, 'subcat_name', rec, {}); col++;

View File

@@ -63,14 +63,14 @@ async function Request(type: string, path: string, payload: any): Promise<Types.
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'x-auth': userStore.x_auth_token, 'x-auth': userStore.x_auth_token,
'x-refrTok': userStore.refreshToken, 'x-refrtok': userStore.refreshToken,
}, },
}) })
ricevuto = true ricevuto = true
// console.log('Request Response: ', response) // console.log('Request Response: ', response)
// console.log(new Types.AxiosSuccess(response.data, response.status)) // console.log(new Types.AxiosSuccess(response.data, response.status))
const setAuthToken = (path === '/updatepwd') const setAuthToken = (path === '/updatepwd') || (path === '/users/login')
// console.log('--------- 0 ') // console.log('--------- 0 ')
@@ -80,7 +80,7 @@ async function Request(type: string, path: string, payload: any): Promise<Types.
try { try {
if (setAuthToken || (path === '/users/login')) { if (setAuthToken || (path === '/users/login')) {
x_auth_token = String(response.headers['x-auth']) x_auth_token = String(response.headers['x-auth'])
refreshToken = String(response.headers['x-refrTok']) refreshToken = String(response.headers['x-refrtok'])
if (x_auth_token === '') { if (x_auth_token === '') {
userStore.setServerCode(toolsext.ERR_AUTHENTICATION) userStore.setServerCode(toolsext.ERR_AUTHENTICATION)
@@ -117,7 +117,7 @@ async function Request(type: string, path: string, payload: any): Promise<Types.
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'x-auth': userStore.x_auth_token, 'x-auth': userStore.x_auth_token,
'x-refrTok': userStore.refreshToken, 'x-refrtok': userStore.refreshToken,
}, },
}) })
ricevuto = true ricevuto = true
@@ -128,7 +128,7 @@ async function Request(type: string, path: string, payload: any): Promise<Types.
headers: { headers: {
'Content-Type': 'multipart/form-data', 'Content-Type': 'multipart/form-data',
'x-auth': userStore.x_auth_token, 'x-auth': userStore.x_auth_token,
'x-refrTok': userStore.refreshToken, 'x-refrtok': userStore.refreshToken,
}, },
}) })
ricevuto = true ricevuto = true

View File

@@ -18,6 +18,7 @@ import * as ApiTables from '@src/store/Modules/ApiTables'
import sendRequest from './Inst-Pao' import sendRequest from './Inst-Pao'
import Request from './Instance' import Request from './Instance'
import globalroutines from '../../globalroutines/index' import globalroutines from '../../globalroutines/index'
import { useRouter } from 'vue-router'
function ReceiveResponsefromServer(tablesync: string, nametab: string, method: string, risdata: any) { function ReceiveResponsefromServer(tablesync: string, nametab: string, method: string, risdata: any) {
// console.log('ReceiveResponsefromServer', nametab, method, risdata) // console.log('ReceiveResponsefromServer', nametab, method, risdata)
@@ -92,32 +93,45 @@ export const Api = {
// Altrimenti, gestisci il caso di refreshToken scaduto o invalido, e.g., redirecting to login // Altrimenti, gestisci il caso di refreshToken scaduto o invalido, e.g., redirecting to login
try { try {
const userStore = useUserStore()
console.log('refreshToken') console.log('refreshToken')
const response = await axios.post('/users/newTok', { const refrTok = localStorage.getItem(toolsext.localStorage.refreshToken)
refreshToken: localStorage.getItem(toolsext.localStorage.refreshToken) let response = null
}); if (refrTok && refrTok !== 'undefined') {
// console.log('refreshToken=', refrTok)
response = await sendRequest('/users/newtok', 'POST', { refreshToken: refrTok })
// Save the new access token in local storage if (response) {
localStorage.setItem(toolsext.localStorage.token, response.data.accessToken);
// Reset the refresh token if it was reset by the server // Save the new access token in local storage
if (response.data.refreshToken) { localStorage.setItem(toolsext.localStorage.token, response.data.token);
localStorage.setItem(toolsext.localStorage.refreshToken, response.data.refreshToken);
// Reset the refresh token if it was reset by the server
if (response.data.refreshToken) {
console.log('salva refreshtoken', response.data.refreshToken)
userStore.setRefreshToken(response.data.refreshToken)
}
// Return the new access token
return response.data.token;
} else {
userStore.setAuth('', '')
localStorage.removeItem(toolsext.localStorage.token)
localStorage.removeItem(toolsext.localStorage.refreshToken)
}
} }
// Return the new access token
return response.data.accessToken;
} catch (error) { } catch (error) {
// Handle the error, for example by logging out the user // Handle the error, for example by logging out the user
console.error(error); console.error(error)
localStorage.removeItem(toolsext.localStorage.token); localStorage.removeItem(toolsext.localStorage.token)
localStorage.removeItem(toolsext.localStorage.refreshToken); localStorage.removeItem(toolsext.localStorage.refreshToken)
throw error; throw error
} }
}, },
async SendReq(url: string, method: string, mydata: any, setAuthToken = false): Promise<Types.AxiosSuccess | Types.AxiosError> { async SendReq(url: string, method: string, mydata: any, setAuthToken = false, evitaloop = false): Promise<Types.AxiosSuccess | Types.AxiosError> {
const mydataout = { const mydataout = {
...mydata, ...mydata,
keyappid: process.env.PAO_APP_ID, keyappid: process.env.PAO_APP_ID,
@@ -129,13 +143,13 @@ export const Api = {
const userStore = useUserStore() const userStore = useUserStore()
const globalStore = useGlobalStore() const globalStore = useGlobalStore()
// const $router = useRouter() const $router = useRouter()
userStore.setServerCode(tools.EMPTY) userStore.setServerCode(tools.EMPTY)
userStore.setResStatus(0) userStore.setResStatus(0)
// eslint-disable-next-line @typescript-eslint/no-misused-promises // eslint-disable-next-line @typescript-eslint/no-misused-promises
return new Promise((resolve, reject) => sendRequest(url, method, mydataout) return new Promise((resolve, reject) => sendRequest(url, method, mydataout)
.then(async (res) => { .then((res) => {
// console.log('status:', res.status) // console.log('status:', res.status)
setTimeout(() => { setTimeout(() => {
@@ -156,28 +170,13 @@ export const Api = {
userStore.setAuth('', '') userStore.setAuth('', '')
// $router.push('/signin') // $router.push('/signin')
return reject({ code: toolsext.ERR_AUTHENTICATION }) return reject({ code: toolsext.ERR_AUTHENTICATION })
} else if (res.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_TOKEN_EXPIRED) {
console.log('Token Expired')
// Prova ad ottenere un nuovo token di accesso
try {
// Se il token è scaduto, allora faccio la richiesta di un NUOVO TOKEN, passandogli refreshToken
const newAccessToken = await this.refreshToken();
userStore.setAuth(newAccessToken, userStore.refreshToken);
// Riprova l'originale SendReq con il nuovo token.
// Assicurati di evitare un loop infinito in caso di errori continui
return resolve(this.SendReq(url, method, mydata, setAuthToken));
} catch (error) {
// Gestisci errore di refresh token (es. redirect a signin)
return reject(error);
}
} }
} }
if (tools.isDebug()) if (tools.isDebug())
console.log(' ----> ', res) console.log(' ----> ', res)
return resolve(res) return resolve(res)
}) })
.catch((error) => { .catch(async (error) => {
setTimeout(() => { setTimeout(() => {
if (method === 'get') { if (method === 'get') {
globalStore.connData.downloading_server = -1 globalStore.connData.downloading_server = -1
@@ -187,6 +186,37 @@ export const Api = {
} }
}, 1000) }, 1000)
if (error.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_TOKEN_EXPIRED) {
console.log('Token Expired')
// Prova ad ottenere un nuovo token di accesso
try {
// Se il token è scaduto, allora faccio la richiesta di un NUOVO TOKEN, passandogli refreshToken
const newAccessToken = await this.refreshToken();
if (newAccessToken) {
userStore.setAuth(newAccessToken, userStore.refreshToken);
// Riprova l'originale SendReq con il nuovo token.
// Assicurati di evitare un loop infinito in caso di errori continui
if (!evitaloop)
return resolve(this.SendReq(url, method, mydata, setAuthToken, true));
} else {
$router.push('/signin')
}
} catch (err2: any) {
// Gestisci errore di refresh token (es. redirect a signin)
console.error('err2', err2)
if (err2 && err2.hasOwnProperty('code') && err2.code === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN) {
// Forbidden
// You probably is connectiong with other page...
userStore.setServerCode(toolsext.ERR_AUTHENTICATION)
userStore.setAuth('', '')
return reject({ code: toolsext.ERR_AUTHENTICATION })
}
// return reject(err2);
}
}
console.log('ERROR', error) console.log('ERROR', error)
return reject(error) return reject(error)
})) }))

View File

@@ -4396,7 +4396,7 @@ export const tools = {
}, },
getheaders() { getheaders() {
const userStore = useUserStore() const userStore = useUserStore()
return [{ name: 'x-auth', value: userStore.x_auth_token }, { name: 'x-refrTok', value: userStore.refreshToken }] return [{ name: 'x-auth', value: userStore.x_auth_token }, { name: 'x-refrtok', value: userStore.refreshToken }]
}, },
getextfile(filename: string) { getextfile(filename: string) {

View File

@@ -1126,29 +1126,34 @@ export const useUserStore = defineStore('UserStore', {
}, },
updateLocalStorage(myuser: IUserFields) { updateLocalStorage(myuser: IUserFields) {
const globalStore = useGlobalStore() try {
const globalStore = useGlobalStore()
const now = tools.getDateNow() const now = tools.getDateNow()
// const expirationDate = new Date(now.getTime() + myres.data.expiresIn * 1000); // const expirationDate = new Date(now.getTime() + myres.data.expiresIn * 1000);
const expirationDate = new Date(now.getTime() * 1000) const expirationDate = new Date(now.getTime() * 1000)
tools.localStSetItem(toolsext.localStorage.lang, this.lang) tools.localStSetItem(toolsext.localStorage.lang, this.lang)
tools.localStSetItem(toolsext.localStorage.userId, myuser._id) tools.localStSetItem(toolsext.localStorage.userId, myuser._id)
tools.localStSetItem(toolsext.localStorage.username, myuser.username) tools.localStSetItem(toolsext.localStorage.username, myuser.username)
tools.localStSetItem(toolsext.localStorage.name, myuser.name) tools.localStSetItem(toolsext.localStorage.name, myuser.name)
tools.localStSetItem(toolsext.localStorage.surname, myuser.surname) tools.localStSetItem(toolsext.localStorage.surname, myuser.surname)
tools.localStSetItem(toolsext.localStorage.perm, String(myuser.perm) || '') tools.localStSetItem(toolsext.localStorage.perm, String(myuser.perm) || '')
if (myuser.profile !== undefined) tools.localStSetItem(toolsext.localStorage.img, (myuser.profile.img) ? String(myuser.profile.img) || '' : '') if (myuser.profile !== undefined) tools.localStSetItem(toolsext.localStorage.img, (myuser.profile.img) ? String(myuser.profile.img) || '' : '')
else tools.localStSetItem(toolsext.localStorage.img, '') else tools.localStSetItem(toolsext.localStorage.img, '')
localStorage.setItem(toolsext.localStorage.token, this.x_auth_token) localStorage.setItem(toolsext.localStorage.token, this.x_auth_token)
localStorage.setItem(toolsext.localStorage.refreshToken, this.refreshToken) console.log('updateLocalStorage: salva refreshtoken', this.refreshToken)
localStorage.setItem(toolsext.localStorage.expirationDate, expirationDate.toString()) localStorage.setItem(toolsext.localStorage.refreshToken, this.refreshToken)
tools.localStSetItem(toolsext.localStorage.isLogged, String(true)) localStorage.setItem(toolsext.localStorage.expirationDate, expirationDate.toString())
tools.localStSetItem(toolsext.localStorage.verified_email, String(myuser.verified_email)) tools.localStSetItem(toolsext.localStorage.isLogged, String(true))
tools.localStSetItem(toolsext.localStorage.verified_by_aportador, String(myuser.verified_by_aportador)) tools.localStSetItem(toolsext.localStorage.verified_email, String(myuser.verified_email))
tools.localStSetItem(toolsext.localStorage.teleg_id, String(myuser.profile.teleg_id)) tools.localStSetItem(toolsext.localStorage.verified_by_aportador, String(myuser.verified_by_aportador))
tools.localStSetItem(toolsext.localStorage.made_gift, String(myuser.made_gift)) tools.localStSetItem(toolsext.localStorage.teleg_id, String(myuser.profile.teleg_id))
tools.localStSetItem(toolsext.localStorage.wasAlreadySubOnDb, String(globalStore.wasAlreadySubOnDb)) tools.localStSetItem(toolsext.localStorage.made_gift, String(myuser.made_gift))
tools.localStSetItem(toolsext.localStorage.wasAlreadySubOnDb, String(globalStore.wasAlreadySubOnDb))
} catch (e) {
console.error('updateLocalStorage', e)
}
}, },
setusersList(usersList: IUserFields[]) { setusersList(usersList: IUserFields[]) {
@@ -1244,9 +1249,15 @@ export const useUserStore = defineStore('UserStore', {
this.resStatus = status this.resStatus = status
}, },
setRefreshToken(refreshToken: string) {
this.refreshToken = refreshToken
localStorage.setItem(toolsext.localStorage.refreshToken, refreshToken)
console.log('setRefreshToken', refreshToken)
},
setAuth(x_auth_token: string, refreshToken: string) { setAuth(x_auth_token: string, refreshToken: string) {
this.x_auth_token = x_auth_token this.x_auth_token = x_auth_token
this.refreshToken = refreshToken this.setRefreshToken(refreshToken)
}, },
resetArrToken(arrtokens: IToken[]) { resetArrToken(arrtokens: IToken[]) {
@@ -1434,7 +1445,7 @@ export const useUserStore = defineStore('UserStore', {
globalStore.setleftDrawerOpen(localStorage.getItem(toolsext.localStorage.leftDrawerOpen) === 'true') globalStore.setleftDrawerOpen(localStorage.getItem(toolsext.localStorage.leftDrawerOpen) === 'true')
globalStore.setCategorySel(localStorage.getItem(toolsext.localStorage.categorySel)) globalStore.setCategorySel(localStorage.getItem(toolsext.localStorage.categorySel))
globalStore.checkUpdates() await globalStore.checkUpdates()
} }
const isok = await globalStore.loadAfterLogin() const isok = await globalStore.loadAfterLogin()
@@ -1496,6 +1507,10 @@ export const useUserStore = defineStore('UserStore', {
isLogged = true isLogged = true
} }
} }
} else {
if (token) {
isLogged = true
}
} }
} else { } else {
isLogged = tools.isLogged() isLogged = tools.isLogged()

View File

@@ -1646,6 +1646,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
this.rightDrawerOpen = true this.rightDrawerOpen = true
return false return false
} else { } else {
console.log('Sbianca cmq i dati')
// Sbianca cmq i dati // Sbianca cmq i dati
const token = localStorage.getItem(toolsext.localStorage.token) const token = localStorage.getItem(toolsext.localStorage.token)
if (token) { if (token) {
@@ -1659,6 +1660,9 @@ export const useGlobalStore = defineStore('GlobalStore', {
return true return true
}).then((res) => res).catch((error) => { }).then((res) => res).catch((error) => {
if (error.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_TOKEN_EXPIRED) {
}
console.log('error dbLoad', error) console.log('error dbLoad', error)
// userStore.setErrorCatch(error) // userStore.setErrorCatch(error)
this.serverError = true this.serverError = true

View File

@@ -1,4 +1,5 @@
import { CMyCircuits } from '@/components/CMyCircuits' import { CMyCircuits } from '@/components/CMyCircuits'
import { CCheckIfIsLogged } from '@components'
import { CFinder } from '@/components/CFinder' import { CFinder } from '@/components/CFinder'
import { CGridTableRec } from '@/components/CGridTableRec' import { CGridTableRec } from '@/components/CGridTableRec'
import { CNotifAtTop } from '@/components/CNotifAtTop' import { CNotifAtTop } from '@/components/CNotifAtTop'
@@ -15,7 +16,7 @@ import { shared_consts } from '@/common/shared_vuejs'
export default defineComponent({ export default defineComponent({
name: 'mycircuits', name: 'mycircuits',
components: { CMyCircuits, CGridTableRec, CFinder, CNotifAtTop }, components: { CMyCircuits, CGridTableRec, CFinder, CNotifAtTop, CCheckIfIsLogged },
props: {}, props: {},
setup() { setup() {
const userStore = useUserStore() const userStore = useUserStore()

View File

@@ -1,23 +1,20 @@
<template> <template>
<div v-if="isfinishLoading" class=""> <div v-if="isfinishLoading" class>
<CNotifAtTop /> <div v-if="tools.isLogged()">
<CMyCircuits <CNotifAtTop />
v-model="filter" <CMyCircuits v-model="filter" :finder="true" :showfinder="true" :showBarSelection="true">
:finder="true" <CFinder
:showfinder="true" :ind="tools.getIndMainCardsByTable(toolsext.TABCIRCUITS)"
:showBarSelection="true" :table="toolsext.TABCIRCUITS"
> :noButtAdd="!tools.isManager()"
:showFilterPersonal="true"
<CFinder :showBarSelection="true"
:ind="tools.getIndMainCardsByTable(toolsext.TABCIRCUITS)" />
:table="toolsext.TABCIRCUITS" </CMyCircuits>
:noButtAdd="!tools.isManager()" </div>
:showFilterPersonal="true" <div v-else>
:showBarSelection="true" <CCheckIfIsLogged></CCheckIfIsLogged>
/> </div>
</CMyCircuits>
</div> </div>
</template> </template>
@@ -25,6 +22,6 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import './mycircuits.scss'; @import "./mycircuits.scss";
</style> </style>

View File

@@ -8,6 +8,7 @@ import { computed, defineComponent, onMounted, ref, watch } from 'vue'
import { useUserStore } from '@store/UserStore' import { useUserStore } from '@store/UserStore'
import { useRoute, useRouter } from 'vue-router' import { useRoute, useRouter } from 'vue-router'
import { useGlobalStore } from '@store/globalStore' import { useGlobalStore } from '@store/globalStore'
import { CCheckIfIsLogged } from '@components'
import { useI18n } from '@/boot/i18n' import { useI18n } from '@/boot/i18n'
import { colmyUserGroup } from '@store/Modules/fieldsTable' import { colmyUserGroup } from '@store/Modules/fieldsTable'
import { costanti } from '@costanti' import { costanti } from '@costanti'
@@ -15,7 +16,7 @@ import { shared_consts } from '@/common/shared_vuejs'
export default defineComponent({ export default defineComponent({
name: 'mygroups', name: 'mygroups',
components: { CMyGroups, CGridTableRec, CNotifAtTop, CFinder }, components: { CMyGroups, CGridTableRec, CNotifAtTop, CFinder, CCheckIfIsLogged },
props: {}, props: {},
setup() { setup() {
const userStore = useUserStore() const userStore = useUserStore()

View File

@@ -1,7 +1,8 @@
<template> <template>
<div class="q-my-sm"> <div class="q-my-sm">
<CNotifAtTop /> <div v-if="tools.isLogged()">
<!--<q-banner <CNotifAtTop />
<!--<q-banner
rounded rounded
dense dense
class="bg-warning text-white" class="bg-warning text-white"
@@ -12,20 +13,16 @@
</template> </template>
<span class="mybanner">Questa sezione è ancora in fase di miglioramento.</span> <span class="mybanner">Questa sezione è ancora in fase di miglioramento.</span>
</q-banner>--> </q-banner>-->
<CMyGroups <CMyGroups v-model="filter" :finder="true">
v-model="filter" <CFinder
:finder="true" :ind="tools.getIndMainCardsByTable(toolsext.TABMYGROUPS)"
> :table="toolsext.TABMYGROUPS"
:showFilterPersonal="true"
/>
<CFinder <!--
:ind="tools.getIndMainCardsByTable(toolsext.TABMYGROUPS)"
:table="toolsext.TABMYGROUPS"
:showFilterPersonal="true"
/>
<!--
<CGridTableRec <CGridTableRec
prop_mytable="mygroups" prop_mytable="mygroups"
prop_mytitle="" prop_mytitle=""
@@ -51,11 +48,13 @@
:extraparams="extraparams()"> :extraparams="extraparams()">
</CGridTableRec> </CGridTableRec>
--> -->
</CMyGroups> </CMyGroups>
<div v-if="filter === costanti.CREATE_GROUP"> <div v-if="filter === costanti.CREATE_GROUP">Nuovo Gruppo:</div>
Nuovo Gruppo: </div>
<div v-else>
<CCheckIfIsLogged></CCheckIfIsLogged>
</div> </div>
</div> </div>
</template> </template>
@@ -64,6 +63,6 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import './mygroups.scss'; @import "./mygroups.scss";
</style> </style>