versione 1.2.14 :

- aggiornati i file di configurazione, ENV e script non funzionanti., package.
- corretto custom-service-worker.js con CORS
- ottimizzato il server, la chiamata Load iniziale (senza promise, con async/await).
This commit is contained in:
Surya Paolo
2025-03-12 21:02:51 +01:00
parent cc541b1e6f
commit 834203ffbb
135 changed files with 572 additions and 1965 deletions

View File

@@ -103,7 +103,7 @@ export default defineComponent({
}
async function loadProfile() {
console.log('loadProfile...', username.value)
console.log('loadUserActivities...', username.value)
try {
const today = new Date();
today.setHours(0, 0, 0, 0);

View File

@@ -138,7 +138,7 @@
v-model="signup.username"
:readonly="
tools.getAskToVerifyReg() &&
!site.confpages.enableRegMultiChoice
!site.confpages?.enableRegMultiChoice
"
rounded
outlined
@@ -421,7 +421,7 @@
v-model="signup.username"
:readonly="
tools.getAskToVerifyReg() &&
!site.confpages.enableRegMultiChoice
!site.confpages?.enableRegMultiChoice
"
rounded
outlined

View File

@@ -2,7 +2,7 @@
<div v-if="!globalStore.serverError" class="q-ma-sm">
<div v-if="tools.isLogged() && (site.confpages.enableRegMultiChoice || (!site.confpages.enabledRegNeedTelegram))">
<div v-if="tools.isLogged() && (site.confpages?.enableRegMultiChoice || (!site.confpages?.enabledRegNeedTelegram))">
<CVerifyEmail v-if="!tools.isEmailVerified() && !tools.TelegVerificato()">
</CVerifyEmail>
</div>

View File

@@ -155,15 +155,25 @@ export default defineComponent({
if (isfinishLoading.value) {
uploadStart()
}
document.addEventListener('swUpdated', updateAvailable, { once: true })
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()
})
try {
if (window) {
window.addEventListener('swUpdated', updateAvailable, { 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()
})
}
}
} catch (e) {
console.error('Err', e.message)
}
}
const {
@@ -312,7 +322,7 @@ export default defineComponent({
setshortlang(mylangtopass)
tools.setLangAtt(mylangtopass)
tools.setLangAtt($q, $router, mylangtopass)
userStore.setLangServer()
},
@@ -373,11 +383,13 @@ export default defineComponent({
if (Platform.is.ios) {
// Unregister Service Worker
navigator.serviceWorker.getRegistrations().then((registrations) => {
for (const registration of registrations) {
registration.unregister()
}
})
if ('serviceWorker' in navigator) {
navigator.serviceWorker.getRegistrations().then((registrations) => {
for (const registration of registrations) {
registration.unregister()
}
})
}
// window.location.reload()
} else {
@@ -435,7 +447,7 @@ export default defineComponent({
mylang = toolsext.checkLangPassed($q, $router, mylang)
tools.setLangAtt(mylang)
tools.setLangAtt($q, $router, mylang)
setshortlang(mylang)
}

View File

@@ -118,12 +118,7 @@
<div v-if="site.confpages && site.confpages.showMsgs">
<message-popover></message-popover>
</div>
<div
v-if="
(site.confpages && site.confpages.showCoins) ||
site.confpages.showRIS
"
>
<div v-if="site.confpages?.showCoins || site.confpages?.showRIS">
<coinsPopover v-model="rightCoinsOpen"></coinsPopover>
</div>
<div v-if="site.confpages && site.confpages.showNotif">

View File

@@ -1,3 +1,5 @@
/* RISO APP
*/
import type {
IListRoutes,
ILang,

View File

@@ -250,12 +250,12 @@ export interface IConfPages {
showRegButton: boolean
enableReg: boolean
showNL: boolean
sendNewsletter: boolean
sendNewsletter?: boolean
showMsgs: boolean
showNotif: boolean
showCoins: boolean
showRIS: boolean
showMenuCoins: boolean
showRIS?: boolean
showMenuCoins?: boolean
showNameSurname: boolean
showCompetenze: boolean
showConnected: boolean
@@ -264,16 +264,16 @@ export interface IConfPages {
enableAI: boolean
enableGroups: boolean
enableCircuits: boolean
enableProj: boolean
enableTodos: boolean
enableProj?: boolean
enableTodos?: boolean
enableRegByBot: boolean
enableRegMultiChoice: boolean
enableTokenExpired: boolean
enableRegMultiChoice?: boolean
enableTokenExpired?: boolean
enableDebugOn: boolean
enabledRegNeedTelegram: boolean
enableGoods: boolean
enableServices: boolean
enableActivities: boolean
enabledRegNeedTelegram?: boolean
enableGoods?: boolean
enableServices?: boolean
enableActivities?: boolean
enableHosps: boolean
enableEvents: boolean
showViewGroups: boolean

View File

@@ -254,7 +254,7 @@ function getRoutesAd(site: ISites) {
*/
{
active: site.confpages.showMenuCoins,
active: site.confpages?.showMenuCoins,
path: '/admin/ris',
order: 60,
faIcon: 'fa fa-list-alt',
@@ -352,7 +352,7 @@ function getRoutesAd(site: ISites) {
onlyEditor: false
},
{
active: site.confpages && site.confpages.sendNewsletter,
active: site.confpages && site.confpages?.sendNewsletter,
path: '/admin/newsletter',
order: 60,
faIcon: 'fa fa-list-alt',
@@ -565,7 +565,7 @@ function getRoutesAd(site: ISites) {
separator: false
},*/
{
active: site.confpages && site.confpages.enableReg && (!site.confpages.enabledRegNeedTelegram || site.confpages.enableRegMultiChoice),
active: site.confpages && site.confpages?.enableReg && (!site.confpages?.enabledRegNeedTelegram || site.confpages?.enableRegMultiChoice),
order: 1000,
path: '/signup',
materialIcon: 'how_to_reg',
@@ -576,7 +576,7 @@ function getRoutesAd(site: ISites) {
separator: false
},
{
active: site.confpages && site.confpages.enableReg && (!site.confpages.enabledRegNeedTelegram || site.confpages.enableRegMultiChoice),
active: site.confpages && site.confpages?.enableReg && (!site.confpages?.enabledRegNeedTelegram || site.confpages?.enableRegMultiChoice),
order: 1002,
path: '/registrati',
materialIcon: 'how_to_reg',

View File

@@ -117,12 +117,14 @@ async function Request(type: string, path: string, payload: any, responsedata?:
const userStore = useUserStore()
const globalStore = useGlobalStore()
const baseURL = globalStore.getServerHost()
try {
if (tools.isDebug()) console.log('Axios Request', path, type, tools.notshowPwd(payload))
let response: AxiosResponse
const config: AxiosRequestConfig = {
baseURL: globalStore.getServerHost(),
baseURL,
headers: {
'Content-Type': 'application/json',
'x-auth': userStore.x_auth_token,
@@ -216,7 +218,7 @@ async function Request(type: string, path: string, payload: any, responsedata?:
} else if (type === 'get' || type === 'delete') {
// @ts-ignore
response = await axiosInstance[type](path, {
baseURL: globalStore.getServerHost(),
baseURL,
params: payload,
headers: {
'Content-Type': 'application/json',
@@ -230,7 +232,7 @@ async function Request(type: string, path: string, payload: any, responsedata?:
} else if (type === 'postFormData') {
console.log('postFormData', payload)
response = await axiosInstance.post(path, payload, {
baseURL: globalStore.getServerHost(),
baseURL,
headers: {
'Content-Type': 'multipart/form-data',
'x-auth': userStore.x_auth_token,

View File

@@ -111,24 +111,26 @@ async function sendSwMsgIfAvailable() {
const count = await checkPendingMsg()
if (count) {
return navigator.serviceWorker.ready
.then(() => globalroutines('readall', 'swmsg')
.then((arr_recmsg) => {
if (arr_recmsg.length > 0) {
console.log('---------------------- 2) navigator (2) .serviceWorker.ready')
let promiseChain = Promise.resolve()
if (useServiceWorker()) {
return navigator.serviceWorker.ready
.then(() => globalroutines('readall', 'swmsg')
.then((arr_recmsg) => {
if (arr_recmsg.length > 0) {
console.log('---------------------- 2) navigator (2) .serviceWorker.ready')
let promiseChain = Promise.resolve()
for (const rec of arr_recmsg) {
// #Alternative to SyncManager
promiseChain = promiseChain.then(() => Api.syncAlternative(rec._id)
.then(() => {
//++Todo conv: something = true
}))
for (const rec of arr_recmsg) {
// #Alternative to SyncManager
promiseChain = promiseChain.then(() => Api.syncAlternative(rec._id)
.then(() => {
//++Todo conv: something = true
}))
}
return promiseChain
}
return promiseChain
}
return null
}))
return null
}))
}
}
}

View File

@@ -5406,7 +5406,7 @@ export const tools = {
isVerified(): boolean {
const globalStore = useGlobalStore()
const site = globalStore.site
if (site.confpages.enableRegMultiChoice) {
if (site.confpages?.enableRegMultiChoice) {
return this.TelegVerificato() || this.isEmailVerified()
}
@@ -5441,7 +5441,7 @@ export const tools = {
getLinkUserTelegramByUser(userprofile: IUserFields) {
if (userprofile) {
if (userprofile.profile.username_telegram) {
if (userprofile.profile?.username_telegram) {
return 'https://t.me/' + userprofile.profile.username_telegram
}
} else {
@@ -7960,7 +7960,11 @@ export const tools = {
return config[name]*/
try {
return name ? import.meta.env[name] : ''
let myenv = name ? import.meta.env[name] : ''
// console.log('--- ENV: ', name, myenv)
return myenv
} catch (e) {
return ''
}

View File

@@ -721,11 +721,11 @@ export const useUserStore = defineStore('UserStore', {
isUserOk(): boolean {
const globalStore = useGlobalStore()
if (globalStore.site.confpages && globalStore.site.confpages.enableRegMultiChoice) {
if (globalStore.site.confpages && globalStore.site.confpages?.enableRegMultiChoice) {
return ((this.isTelegIdOk() && this.isUsernameTelegOk()) || this.my.verified_email!) && this.my.verified_by_aportador!
} else {
//if (tools.getAskToVerifyReg()) {
if (globalStore.site.confpages && globalStore.site.confpages.enabledRegNeedTelegram) {
if (globalStore.site.confpages && globalStore.site.confpages?.enabledRegNeedTelegram) {
return this.isTelegIdOk() && this.my.verified_by_aportador! && this.isUsernameTelegOk()
} else {
return this.my.verified_email!
@@ -735,7 +735,7 @@ export const useUserStore = defineStore('UserStore', {
},
isUserWaitingVerifAportador(): boolean {
return tools.isLogged() && !this.my.verified_by_aportador
return tools.isLogged() && !this.my.verified_by_aportador && this.getAportadorSolidario()
},
isOldRegNotFinished(): boolean {
@@ -1557,7 +1557,7 @@ export const useUserStore = defineStore('UserStore', {
if (globalStore.site.confpages && globalStore.site.confpages.enableTodos)
await todos.dbLoad({ checkPending: true })
if (globalStore.site.confpages.enableProj)
if (globalStore.site.confpages?.enableProj)
await projects.dbLoad({ checkPending: true, onlyiffirsttime: true })
globalStore.addDynamicPages(router)
@@ -1599,7 +1599,7 @@ export const useUserStore = defineStore('UserStore', {
if (token) {
this.setAuth(token, refreshToken)
if (globalStore.site.confpages.enableTokenExpired) {
if (globalStore.site.confpages?.enableTokenExpired) {
if (token && refreshToken) {
isLogged = true
} else {
@@ -2132,7 +2132,7 @@ export const useUserStore = defineStore('UserStore', {
const globalStore = useGlobalStore()
if (globalStore.site && (!globalStore.site.confpages.showCoins && !globalStore.site.confpages.showRIS)) {
if (globalStore.site && (!globalStore.site.confpages?.showCoins && !globalStore.site.confpages?.showRIS)) {
return false
}

View File

@@ -864,36 +864,38 @@ export const useGlobalStore = defineStore('GlobalStore', {
let reg: any
const mykey = import.meta.env.VITE_PUBLICKEY_PUSH
return navigator.serviceWorker.ready
.then((swreg) => {
reg = swreg
return swreg.pushManager.getSubscription()
})
.then((subscription) => {
console.log('!!!!!!!! subscription = ', subscription)
if (navigator.serviceWorker) {
return navigator.serviceWorker.ready
.then((swreg) => {
reg = swreg
return swreg.pushManager.getSubscription()
})
.then((subscription) => {
console.log('!!!!!!!! subscription = ', subscription)
this.wasAlreadySubscribed = !(subscription === null)
this.wasAlreadySubscribed = !(subscription === null)
if (this.wasAlreadySubscribed) {
// console.log('User is already SAVED Subscribe on DB!')
// return null
return subscription
} else {
// Create a new subscription
console.log('#### Create a new subscription !!!')
const convertedVapidPublicKey = urlBase64ToUint8Array(mykey)
return reg.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: convertedVapidPublicKey,
})
}
})
.then((newSub) => {
this.saveNewSubscriptionToServer(newSub)
})
.catch((err) => {
console.log('ERR createPushSubscription:', err)
})
if (this.wasAlreadySubscribed) {
// console.log('User is already SAVED Subscribe on DB!')
// return null
return subscription
} else {
// Create a new subscription
console.log('#### Create a new subscription !!!')
const convertedVapidPublicKey = urlBase64ToUint8Array(mykey)
return reg.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: convertedVapidPublicKey,
})
}
})
.then((newSub) => {
this.saveNewSubscriptionToServer(newSub)
})
.catch((err) => {
console.log('ERR createPushSubscription:', err)
})
}
},
// Calling the Server to Save in the MongoDB the Subscriber
@@ -985,23 +987,25 @@ export const useGlobalStore = defineStore('GlobalStore', {
if ('serviceWorker' in navigator) {
// REMOVE ALL SUBSCRIPTION
console.log('REMOVE ALL SUBSCRIPTION...')
navigator.serviceWorker.ready
.then((reg) => {
console.log('... Ready')
reg.pushManager.getSubscription().then((subscription) => {
console.log(' Found Subscription...')
if (subscription) {
subscription.unsubscribe().then((successful) => {
// You've successfully unsubscribed
console.log('You\'ve successfully unsubscribed')
}).catch((e) => {
// Unsubscription failed
})
}
if (navigator.serviceWorker) {
navigator.serviceWorker.ready
.then((reg) => {
console.log('... Ready')
reg.pushManager.getSubscription().then((subscription) => {
console.log(' Found Subscription...')
if (subscription) {
subscription.unsubscribe().then((successful) => {
// You've successfully unsubscribed
console.log('You\'ve successfully unsubscribed')
}).catch((e) => {
// Unsubscription failed
})
}
})
}).catch((err) => {
console.error('err ready service worker', err)
})
}).catch((err) => {
console.error('err ready service worker', err)
})
}
}
}
@@ -1838,8 +1842,17 @@ export const useGlobalStore = defineStore('GlobalStore', {
// const isLogged = localStorage.getItem(toolsext.localStorage.username)
// console.log('isLogged', isLogged)
let myidapp = ''
try {
if (res.data?.myuser) {
myidapp = res.data?.myuser?.idapp
}
} catch (e) {
}
// calendarStore.editable = userStore.isAdmin || userStore.isManager || userStore.isFacilitatore
if (res.data.myuser === null || (res.data.myuser.idapp !== tools.getEnv('VITE_APP_ID'))) {
if (!myidapp || (myidapp !== tools.getEnv('VITE_APP_ID'))) {
if (isLogged) {
// Fai Logout
// console.log('Fai Logout', 'isLogged', isLogged)

View File

@@ -92,6 +92,7 @@
v-model="storeGasordine"
:options="productStore.getGasordines()"
:label="t('products.gasordine') + `:`"
style="min-width: 300px"
emit-value
map-options
></q-select>

View File

@@ -182,7 +182,7 @@ export default defineComponent({
function getCatProds() {
const arrcat = productStore.getCatProds(shared_consts.PROD.BOTTEGA)
console.log('getCatProds', arrcat)
// console.log('getCatProds', arrcat)
let riscat: any = []
if (arrcat && arrcat.length > 0) {
riscat = [{ label: 'Tutti', value: '', icon: undefined, color: undefined }]

View File

@@ -404,7 +404,7 @@
userStore.my.profile.calc &&
!circuit.circuitoIndipendente &&
userStore.my.profile.calc.numGoodsAndServices <= 0 &&
globalStore.site.confpages.showRIS &&
globalStore.site.confpages?.showRIS &&
userStore.IsMyCircuitByName(circuit.name)
"
rounded
@@ -422,7 +422,7 @@
</q-banner>
<q-banner
v-else-if="
globalStore.site.confpages.showRIS &&
globalStore.site.confpages?.showRIS &&
!circuit.circuitoIndipendente &&
userStore.my.profile.calc &&
userStore.my.profile.calc.numGoodsAndServices <= 0 &&

View File

@@ -3,6 +3,7 @@
getImgUser(): {{ getImgUser() }}
<span v-if="!!tools.isLogged()">Logged: {{ tools.isLogged() }}</span> -
<span v-if="!!tools.isUserOk()">UserOk: {{ tools.isUserOk() }}</span> -
<span v-if="!!userStore.userprofile.date_reg">Date_Reg: {{ tools.getstrDate(userStore.userprofile.date_reg) }}</span> -
<span>tools.isEmailVerified(): {{ tools.isEmailVerified() }}</span> -
<span
>tools.getLinkUserTelegramByUser():