Il creatore del Gruppo deve già appartenere al Gruppo stesso

Non permettere di aggiungere un Gruppo con lo stesso nome o codice
quando cancelli un Gruppo, cancella anche tutti i riferimenti sugli utenti di quel gruppo.
Errore caricamento Immagini !
This commit is contained in:
paoloar77
2022-02-28 17:20:31 +01:00
parent a31d10ceb8
commit 65bde785da
40 changed files with 230 additions and 366 deletions

View File

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

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.2.14"
APP_VERSION="0.2.15"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="1"
DIRECTORY_LOCAL="newfreeplanet"

View File

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

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.2.14"
APP_VERSION="0.2.15"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="12"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -21,9 +21,6 @@ export default defineComponent({
components: {},
setup(props) {
const $q = useQuasar()
const { t } = useI18n()
const userStore = useUserStore()
const globalStore = useGlobalStore()
function copytoclip() {
tools.copyStringToClipboard($q, props.texttocopy, true)

View File

@@ -1,6 +1,6 @@
<template>
<div class="landing">
<!-- <div v-if="!tools.IsLogged() && (!mysingleevent)">
<!-- <div v-if="!tools.isLogged() && (!mysingleevent)">
<div class="centermydiv">
<q-banner class="bg-secondary text-white">
Il Calendario sarà visibile solo dopo aver effettuato l'accesso

View File

@@ -1414,6 +1414,9 @@ export default defineComponent({
const data = await globalStore.saveTable(mydata)
.then((ris) => {
if (ris.hasOwnProperty('code')) {
tools.checkErrors($q, ris.code, '');
} else {
if (ris) {
// console.log('ris', ris)
newRecordBool.value = false
@@ -1431,8 +1434,15 @@ export default defineComponent({
serverData.value = [ris, ...serverData.value]
newRecord.value = null
tools.showPositiveNotif($q, t('db.recupdated'))
// refresh()
} else {
tools.showNegativeNotif($q, t('db.recfailed'))
}
}
}).catch((e) => {
tools.showNegativeNotif($q, t('db.recfailed'))
})
}

View File

@@ -111,10 +111,6 @@ export default defineComponent({
animare.value = process.env.DEV ? 0 : 8000
}
function isLogged() {
return userStore.isLogged
}
function meta() {
return {
keywords: { name: 'keywords', content: 'Quasar website' },
@@ -239,7 +235,6 @@ export default defineComponent({
changeAllunga,
getappname,
appname,
isLogged,
mystilecard,
getenv,
isInCostruction,

View File

@@ -23,17 +23,10 @@ export default defineComponent({
setup(props) {
const userStore = useUserStore()
const $router = useRouter()
const globalStore = useGlobalStore()
const { t } = useI18n();
const { isEmailVerified, TelegVerificato } = MixinUsers()
return {
userStore,
tools,
isEmailVerified,
TelegVerificato
}
},
})

View File

@@ -1,18 +1,29 @@
<template>
<div class="q-ma-md">
<CVerifyTelegram v-if="!TelegVerificato()">
<CVerifyTelegram v-if="!tools.TelegVerificato()">
</CVerifyTelegram>
<CVerifyEmail v-if="!isEmailVerified() && !TelegVerificato()">
<CVerifyEmail v-if="!tools.isEmailVerified() && !tools.TelegVerificato()">
</CVerifyEmail>
<div v-if="tools.isTelegOk()">
<div v-if="tools.isTelegOk()" class="centeritems">
<q-banner inline-actions rounded class="bg-orange text-black">
<template v-slot:avatar>
<q-icon name="info" color="primary"/>
</template>
<strong>A breve sarai abilitato, altrimenti avvisa il tuo invitante che ti sei Registrato.<br>Ti arriverà un messaggio su Telegram quando verrai abilitato dal tuo invitante.</strong>
<strong>Appena sarai abilitato, dal tuo invitante {{tools.getAportadorSolidario()}}, ti arriverà una <strong>notifica su Telegram</strong>.<br><br>
Se non dovesse arrivarti subito probabilmente {{tools.getAportadorSolidario()}} non ha il cellulare a portata di mano.<br>
</strong>
<q-btn
rounded
class="q-ma-sm"
color="primary"
icon="fas fa-user"
:to="tools.getLinkProfileAportador()"
:label="`Profilo di ` + tools.getAportadorSolidario()">
</q-btn>
</q-banner>
</div>

View File

@@ -2,6 +2,7 @@ import { defineComponent } from 'vue'
import { CCopyBtn } from '../CCopyBtn'
import { useUserStore } from '@store/UserStore'
import { tools } from '@store/Modules/tools'
export default defineComponent({
name: 'CVerifyEmail',
@@ -9,14 +10,8 @@ export default defineComponent({
props: {},
setup() {
const userStore = useUserStore()
function isEmailVerified(): boolean {
return userStore.my.verified_email!
}
return {
isEmailVerified,
tools,
}
}
})

View File

@@ -1,15 +1,15 @@
<template>
<div class="text-center q-gutter-sm q-ma-sm clBorderWarning">
<q-chip v-if="isEmailVerified()" color="positive" text-color="white" icon="email">
<q-chip v-if="tools.isEmailVerified()" color="positive" text-color="white" icon="email">
{{ `Email ` + $t('pages.statusreg.verified') }}
</q-chip>
<q-chip v-else color="negative" text-color="white" icon="email">
{{ `Email ` + $t('pages.statusreg.nonverified') }}
</q-chip>
<div v-if="!isEmailVerified()" v-html="$t('components.authentication.email_verification.link_sent', {botname: $t('ws.botname') })">
<div v-if="!tools.isEmailVerified()" v-html="$t('components.authentication.email_verification.link_sent', {botname: tools.getBotName() })">
</div>
<div v-if="!isEmailVerified()" v-html="$t('components.authentication.email_verification.se_non_ricevo')">
<div v-if="!tools.isEmailVerified()" v-html="$t('components.authentication.email_verification.se_non_ricevo')">
</div>
</div>

View File

@@ -17,41 +17,9 @@ export default defineComponent({
const userStore = useUserStore()
const { setValDb, getValDb } = MixinBase()
function TelegCode() {
if (userStore.my.profile) {
return userStore.my.profile.teleg_checkcode
}else {
return 0
}
}
function TelegVerificato(): boolean {
return userStore.my.profile ? userStore.my.profile.teleg_id! > 0 : false
}
function getLinkBotTelegram(): string {
if (tools.isTest() && !process.env.DEV) {
return getValDb('TELEG_BOT_LINK_TEST', false)
} else{
return getValDb('TELEG_BOT_LINK', false)
}
}
function getBotNameTelegram() {
return t('ws.botname');
}
function isEmailVerified(): boolean {
return userStore.my.verified_email!
}
return {
TelegCode,
TelegVerificato,
getLinkBotTelegram,
isEmailVerified,
getBotNameTelegram,
tools,
}
}
})

View File

@@ -1,27 +1,27 @@
<template>
<div class="text-center q-gutter-sm q-ma-sm clBorderWarning">
<div v-if="TelegCode() > 0">
<div v-if="tools.TelegCode() > 0">
<div class="text-h5 text-center text-red">
{{ $t('reg.teleg_auth') }} Telegram:
</div>
<CCopyBtn :title="$t('reg.click_per_copiare')" :texttocopy="TelegCode()">
<CCopyBtn :title="$t('reg.click_per_copiare')" :texttocopy="tools.TelegCode()">
</CCopyBtn>
<div class="text-h6 text-center" v-html="$t('reg.teleg_torna_sul_bot', {botname: getBotNameTelegram()})">
<div class="text-h6 text-center" v-html="$t('reg.teleg_torna_sul_bot', {botname: tools.getBotName()})">
</div>
</div>
<div v-if="!TelegVerificato()" class="q-pa-sm q-gutter-sm">
<div v-if="!TelegCode()"><strong>{{ $t('components.authentication.telegram.open')}}</strong></div>
<div v-if="!tools.TelegVerificato()" class="q-pa-sm q-gutter-sm">
<div v-if="!tools.TelegCode()"><strong>{{ $t('components.authentication.telegram.open')}}</strong></div>
<div class="q-ma-md">
<q-btn rounded color="primary" icon="fab fa-telegram" :label="$t('components.authentication.telegram.openbot', {botname: $t('ws.botname') })"
<q-btn rounded color="primary" icon="fab fa-telegram" :label="$t('components.authentication.telegram.openbot', {botname: tools.getBotName() })"
type="a"
:href="getLinkBotTelegram()" target="_blank"></q-btn>
:href="tools.getLinkBotTelegram()" target="_blank"></q-btn>
<br>
</div>
<strong>{{ $t('components.authentication.telegram.ifclose', {botname: getBotNameTelegram() })}}</strong>
<strong>{{ $t('components.authentication.telegram.ifclose', {botname: tools.getBotName() })}}</strong>
<div class="q-my-sm">
<!--<q-img src="images/ayni_bot.jpg" class="" :alt="$t('ws.sitename')" style="height: 100px; width: 250px;">
</q-img>-->

View File

@@ -68,7 +68,6 @@ export default defineComponent({
myName,
mySurname,
myCell,
Verificato,
MadeGift,
Email,
getMyImg,
@@ -80,7 +79,6 @@ export default defineComponent({
getNumMsg,
getNumMsgUnread,
getMsgText,
isVerified,
paotest } = MixinUsers();
function isonline() {
@@ -370,10 +368,6 @@ export default defineComponent({
})
}
function isLogged() {
return userStore.isLogged
}
function clickregister() {
rightDrawerOpen.value = false
@@ -432,7 +426,6 @@ export default defineComponent({
rightCartOpen,
lang,
langshort,
isLogged,
getnumOrdersCart,
t,
isonline,
@@ -457,7 +450,6 @@ export default defineComponent({
myName,
mySurname,
myCell,
Verificato,
MadeGift,
Email,
getMyImg,
@@ -472,7 +464,7 @@ export default defineComponent({
paotest,
logoutHandler,
isUserNotAuth,
isVerified,
tools,
}
},

View File

@@ -100,7 +100,7 @@
<!-- BUTTON USER BAR -->
<q-btn
class="q-mx-xs" v-if="static_data.functionality.ENABLE_ECOMMERCE && isLogged()" round dense flat
class="q-mx-xs" v-if="static_data.functionality.ENABLE_ECOMMERCE && tools.isLogged()" round dense flat
@click="rightCartOpen = !rightCartOpen" icon="fas fa-shopping-cart">
<q-badge v-if="getnumItemsCart() > 0" color="red" floating transparent>
@@ -109,7 +109,7 @@
</q-btn>
<q-btn
class="q-mx-xs" v-if="static_data.functionality.ENABLE_ECOMMERCE && isLogged() && getnumOrdersCart() > 0"
class="q-mx-xs" v-if="static_data.functionality.ENABLE_ECOMMERCE && tools.isLogged() && getnumOrdersCart() > 0"
round dense flat
to="/orderinfo" icon="fas fa-list-ol">
@@ -119,11 +119,11 @@
</q-btn>
<q-btn
class="q-mx-xs" v-if="static_data.functionality.SHOW_USER_MENU && !isLogged()" dense flat round
class="q-mx-xs" v-if="static_data.functionality.SHOW_USER_MENU && !tools.isLogged()" dense flat round
icon="menu"
@click="rightDrawerOpen = !rightDrawerOpen">
</q-btn>
<q-avatar v-else-if="static_data.functionality.SHOW_USER_MENU && isLogged() && getMyImg()"
<q-avatar v-else-if="static_data.functionality.SHOW_USER_MENU && tools.isLogged() && getMyImg()"
size="36px" class="center_img cursor-pointer"
@click="rightDrawerOpen = !rightDrawerOpen">
<q-img ratio="1" fit="conver" :src="getMyImg()" :alt="Username()" img-class="imgprofile_small" stretch="false"
@@ -163,7 +163,7 @@
class="absolute-top-right" style="margin-right: 10px; color: white;"
dense flat round icon="close" @click="rightCartOpen = !rightCartOpen">
</q-btn>
<div v-if="isLogged()" class="text-weight-bold text-cart">Carrello
<div v-if="tools.isLogged()" class="text-weight-bold text-cart">Carrello
</div>
<CMyCart></CMyCart>
</q-drawer>
@@ -188,10 +188,10 @@
dense flat round icon="close" @click="rightDrawerOpen = !rightDrawerOpen">
</q-btn>
<div v-if="isLogged()" class="text-weight-bold text-user">{{ Username() }}<span v-if="myName()"> - {{ myName() }}</span>
<div v-if="tools.isLogged()" class="text-weight-bold text-user">{{ Username() }}<span v-if="myName()"> - {{ myName() }}</span>
</div>
<div class="row justify-evenly q-pa-xs-sm">
<div v-if="isLogged() && isAdmin()" class="text-weight-bold text-user bg-red q-px-xs">Admin</div>
<div v-if="tools.isLogged() && isAdmin()" class="text-weight-bold text-user bg-red q-px-xs">Admin</div>
<div v-if="isSocio" class="text-weight-bold text-user q-px-xs">Socio</div>
<div v-if="isSocioResidente()" class="text-weight-bold text-user q-px-xs bg-amber">Residente</div>
<div v-if="isConsiglio()" class="text-weight-bold text-user q-px-xs bg-deep-orange-10">Consiglio</div>
@@ -199,22 +199,22 @@
<div v-if="isTutor()" class="text-weight-bold text-user q-px-xs">Tutor</div>
<div v-if="isTratuttrici()" class="text-weight-bold text-user q-px-xs">Editor</div>
</div>
<div v-if="!isLogged()" class="text-user text-italic bg-red">
<div v-if="!tools.isLogged()" class="text-user text-italic bg-red">
{{ t('user.loggati') }}
</div>
<div v-if="isLogged() && !isVerified()" class="text-verified">{{
<div v-if="tools.isLogged() && !tools.isVerified()" class="text-verified">{{
t('components.authentication.email_verification.verify_email')
}}
</div>
<div v-if="isLogged()"
<div v-if="tools.isLogged()"
class="text-verified">
<!-- <span class="text-white" v-if="Verificato()"> {{t('reg.verificato')}} </span> -->
<span class="text-user text-italic bg-red" v-if="!Verificato()"> {{t('reg.non_verificato')}} </span>
<span class="text-user text-italic bg-red" v-if="!tools.Verificato()"> {{t('reg.non_verificato')}} </span>
</div>
<div v-if="isLogged()" id="user-actions" class="column justify-center q-gutter-sm q-ma-sm center-150">
<div v-if="tools.isLogged()" id="user-actions" class="column justify-center q-gutter-sm q-ma-sm center-150">
<q-btn rounded color="primary" icon="person" :to="`/my/`+getMyUsername()">{{ t('pages.profile') }}</q-btn>
<!--<q-btn round color="warning" icon="lock"></q-btn>-->
<q-btn rounded color="negative" icon="exit_to_app" @click='logoutHandler'>{{ t('login.esci') }}</q-btn>
@@ -222,7 +222,7 @@
</div>
<div style="margin-top:120px;"></div>
<div v-show="!isLogged()">
<div v-show="!tools.isLogged()">
<div class="q-ma-md" style="">
<CSigninNoreg :showregbutt="static_data.functionality.SHOW_REG_BUTTON">
@@ -232,7 +232,7 @@
</div>
</div>
<div v-if="isLogged()" class="q-mt-lg"></div>
<div v-if="tools.isLogged()" class="q-mt-lg"></div>
<slot></slot>

View File

@@ -71,7 +71,6 @@ const msg_website_es = {
chisiamo: 'Chi Siamo',
linkamici: 'Link Amici',
dovesiamo: 'Dove Siamo',
calendarioeventi: 'Calendario Eventi',
evento: 'Evento',
eventodef: 'Evento:',
prova: 'prova',

View File

@@ -2,7 +2,6 @@ const msg_website_it = {
ws: {
sitename: 'InsiemeSiPuò',
siteshortname: 'ISP',
botname: 'InsiemeSiPuò',
},
products: {
quantity: 'Quantità',

View File

@@ -111,14 +111,9 @@ export default function () {
return userStore.my.profile.cell
}
function Verificato() {
const userStore = useUserStore()
return isVerified() && userStore.my.verified_by_aportador
}
function notAsk_ToVerify() {
const userStore = useUserStore()
return isVerified() && userStore.my.notask_verif
return tools.isVerified() && userStore.my.notask_verif
}
function paotest() {
@@ -160,20 +155,6 @@ export default function () {
return ris
}
function isEmailVerified() {
const userStore = useUserStore()
return userStore.my.verified_email
}
function TelegVerificato(): boolean {
const userStore = useUserStore()
return userStore.my.profile ? userStore.my.profile.teleg_id! > 0 : false
}
function isVerified() {
return TelegVerificato()
}
return {
getUsernameChatByMsg,
getMyUsername,
@@ -181,7 +162,6 @@ export default function () {
myName,
mySurname,
myCell,
Verificato,
notAsk_ToVerify,
MadeGift,
Email,
@@ -195,9 +175,6 @@ export default function () {
getNumMsg,
getNumMsgUnread,
getMsgText,
isEmailVerified,
TelegVerificato,
isVerified,
paotest,
getRefLink,
}

View File

@@ -25,41 +25,11 @@ export default defineComponent({
name: 'eventi',
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif, CTitlePage },
setup() {
const globalStore = useGlobalStore()
const userStore = useUserStore()
const { getValDb } = MixinBase()
const { isEmailVerified, TelegVerificato } = MixinUsers()
function TelegCode() {
return userStore.my.profile.teleg_checkcode
}
function isLogged() {
return userStore.isLogged
}
function isUserOk() {
return userStore.isUserOk()
}
function getLinkBotTelegram(): string {
if ( tools.isTest() && !process.env.DEV) {
return getValDb('TELEG_BOT_LINK_TEST', false)
} else{
return getValDb('TELEG_BOT_LINK', false)
}
}
return {
colmyBachecas,
tools,
toolsext,
static_data,
isEmailVerified,
TelegCode,
TelegVerificato,
isLogged,
isUserOk,
getLinkBotTelegram,
}
},
})

View File

@@ -1,9 +1,9 @@
<template>
<q-page class="">
<div v-if="isLogged()">
<div v-if="tools.isLogged()">
<div v-if="isUserOk()">
<div v-if="tools.isUserOk()">
<CTitlePage :ind="4" />
<CFinder

View File

@@ -23,45 +23,11 @@ export default defineComponent({
name: 'Goods',
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif, CTitlePage },
setup() {
const globalStore = useGlobalStore()
const userStore = useUserStore()
const { getValDb } = MixinBase()
const { isEmailVerified, TelegVerificato } = MixinUsers()
function TelegCode() {
return userStore.my.profile.teleg_checkcode
}
function openrighttoolbar() {
globalStore.rightDrawerOpen = true
}
function isLogged() {
return userStore.isLogged
}
function isUserOk() {
return userStore.isUserOk()
}
function getLinkBotTelegram(): string {
if ( tools.isTest() && !process.env.DEV) {
return getValDb('TELEG_BOT_LINK_TEST', false)
} else{
return getValDb('TELEG_BOT_LINK', false)
}
}
return {
tools,
toolsext,
static_data,
isEmailVerified,
TelegCode,
TelegVerificato,
isLogged,
openrighttoolbar,
isUserOk,
getLinkBotTelegram,
}
},
})

View File

@@ -1,9 +1,9 @@
<template>
<q-page class="">
<div v-if="isLogged()">
<div v-if="tools.isLogged()">
<div v-if="isUserOk()">
<div v-if="tools.isUserOk()">
<CTitlePage :ind="0" />
<CFinder

View File

@@ -32,28 +32,10 @@ export default defineComponent({
globalStore.rightDrawerOpen = true
}
function isLogged() {
return userStore.isLogged
}
function isUserOk() {
return userStore.isUserOk()
}
function getLinkBotTelegram(): string {
if ( tools.isTest() && !process.env.DEV) {
return getValDb('TELEG_BOT_LINK_TEST', false)
} else{
return getValDb('TELEG_BOT_LINK', false)
}
}
return {
tools,
static_data,
isLogged,
openrighttoolbar,
isUserOk,
getLinkBotTelegram,
getRefLink,
userStore,
}

View File

@@ -25,8 +25,8 @@
</q-banner>
<div v-if="isLogged()">
<div v-if="!isUserOk()">
<div v-if="tools.isLogged()">
<div v-if="!tools.isUserOk()">
<CUserNonVerif></CUserNonVerif>
</div>
<div v-else>
@@ -58,7 +58,7 @@
</div>
<div
v-if="!isLogged() && static_data.functionality.ENABLE_REGISTRATION && static_data.functionality.SHOW_REG_BUTTON"
v-if="!tools.isLogged() && static_data.functionality.ENABLE_REGISTRATION && static_data.functionality.SHOW_REG_BUTTON"
style="margin:20px; text-align: center;">
<q-btn rounded size="lg" color="primary" @click="openrighttoolbar">{{ $t('login.enter') }}
</q-btn>

View File

@@ -23,39 +23,9 @@ export default defineComponent({
name: 'mobility',
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif, CTitleBanner },
setup() {
const globalStore = useGlobalStore()
const userStore = useUserStore()
const { getValDb } = MixinBase()
const { isEmailVerified, TelegVerificato } = MixinUsers()
function TelegCode() {
return userStore.my.profile.teleg_checkcode
}
function isLogged() {
return userStore.isLogged
}
function isUserOk() {
return userStore.isUserOk()
}
function getLinkBotTelegram(): string {
if ( tools.isTest() && !process.env.DEV) {
return getValDb('TELEG_BOT_LINK_TEST', false)
} else{
return getValDb('TELEG_BOT_LINK', false)
}
}
return {
tools,
static_data,
isEmailVerified,
TelegCode,
TelegVerificato,
isLogged,
isUserOk,
getLinkBotTelegram,
}
},
})

View File

@@ -58,11 +58,6 @@ export default defineComponent({
clearInterval(polling.value)
})
function isLogged() {
const userStore = useUserStore()
return userStore.isLogged
}
function TelegramSupport() {
return process.env.TELEGRAM_SUPPORT
}
@@ -138,7 +133,6 @@ export default defineComponent({
return {
t,
appname,
isLogged,
TelegramSupport,
FBPage,
meta,

View File

@@ -50,7 +50,7 @@
<br>
</div>
<div v-else>
<div v-if="!isLogged()" style="margin: 5px; padding: 5px;" class="home">
<div v-if="!tools.isLogged()" style="margin: 5px; padding: 5px;" class="home">
<q-btn
rounded size="lg" color="primary" @click="PagLogin"
class="btn-start">
@@ -64,7 +64,7 @@
</div>
</div>
<div v-if="isLogged()">
<div v-if="tools.isLogged()">
<div>
<!--<q-field-->
<!--v-if="getPermission() === 'granted'"-->
@@ -138,7 +138,7 @@
<br>
</div>
<div v-else>
<div v-if="!isLogged()" style="margin: 5px; padding: 5px;" class="home">
<div v-if="!tools.isLogged()" style="margin: 5px; padding: 5px;" class="home">
<q-btn
rounded size="lg" color="primary" @click="PagLogin"
class="btn-start">
@@ -152,7 +152,7 @@
</div>
</div>
<div v-if="isLogged()">
<div v-if="tools.isLogged()">
<div>
<!--<q-field-->
<!--v-if="getPermission() === 'granted'"-->
@@ -230,7 +230,7 @@
<br>
</div>
<div v-else>
<div v-if="!isLogged()" style="margin: 5px; padding: 5px;" class="home">
<div v-if="!tools.isLogged()" style="margin: 5px; padding: 5px;" class="home">
<q-btn
rounded size="lg" color="primary" @click="PagLogin"
class="btn-start">
@@ -244,7 +244,7 @@
</div>
</div>
<div v-if="isLogged()">
<div v-if="tools.isLogged()">
<div>
<!--<q-field-->
<!--v-if="getPermission() === 'granted'"-->

View File

@@ -23,39 +23,10 @@ export default defineComponent({
name: 'work',
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif, CTitleBanner },
setup() {
const globalStore = useGlobalStore()
const userStore = useUserStore()
const { getValDb } = MixinBase()
const { isEmailVerified, TelegVerificato } = MixinUsers()
function TelegCode() {
return userStore.my.profile.teleg_checkcode
}
function isLogged() {
return userStore.isLogged
}
function isUserOk() {
return userStore.isUserOk()
}
function getLinkBotTelegram(): string {
if ( tools.isTest() && !process.env.DEV) {
return getValDb('TELEG_BOT_LINK_TEST', false)
} else{
return getValDb('TELEG_BOT_LINK', false)
}
}
return {
tools,
static_data,
isEmailVerified,
TelegCode,
TelegVerificato,
isLogged,
isUserOk,
getLinkBotTelegram,
}
},
})

View File

@@ -24,45 +24,10 @@ export default defineComponent({
name: 'Services',
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif, CTitlePage },
setup() {
const globalStore = useGlobalStore()
const userStore = useUserStore()
const { getValDb } = MixinBase()
const { isEmailVerified, TelegVerificato } = MixinUsers()
function TelegCode() {
return userStore.my.profile.teleg_checkcode
}
function openrighttoolbar() {
globalStore.rightDrawerOpen = true
}
function isLogged() {
return userStore.isLogged
}
function isUserOk() {
return userStore.isUserOk()
}
function getLinkBotTelegram(): string {
if ( tools.isTest() && !process.env.DEV) {
return getValDb('TELEG_BOT_LINK_TEST', false)
} else{
return getValDb('TELEG_BOT_LINK', false)
}
}
return {
tools,
toolsext,
static_data,
isEmailVerified,
TelegCode,
TelegVerificato,
isLogged,
openrighttoolbar,
isUserOk,
getLinkBotTelegram,
}
},
})

View File

@@ -2,9 +2,9 @@
<q-page class="">
<CTitlePage :ind="1" />
<div v-if="isLogged()">
<div v-if="tools.isLogged()">
<div v-if="isUserOk()">
<div v-if="tools.isUserOk()">
<CFinder
:table="toolsext.TABMYSKILLS"

View File

@@ -5,15 +5,14 @@ import { CCard } from '@/components/CCard'
import { CMyPage } from '@/components/CMyPage'
import { CTitleBanner } from '@/components/CTitleBanner'
import { CMyFieldRec } from '@/components/CMyFieldRec'
import { CMyFieldDb } from '@/components/CMyFieldDb'
import MixinMetaTags from '@/mixins/mixin-metatags'
import { IMyBot } from 'model'
import { shared_consts } from '@/common/shared_vuejs'
import { useGlobalStore } from '@store/globalStore'
import { costanti } from '@costanti'
export default defineComponent({
name: 'Confsite',
components: { CImgText, CCard, CMyPage, CTitleBanner, CMyFieldRec },
components: { CImgText, CCard, CMyPage, CTitleBanner, CMyFieldRec, CMyFieldDb },
setup() {
const mysite = ref(null)
@@ -28,6 +27,7 @@ export default defineComponent({
return {
mysite,
costanti,
}
}
})

View File

@@ -23,6 +23,32 @@
:canModify="true">
</CMyFieldRec>
<CMyFieldDb title="BOT Telegram"
mykey="TELEG_BOT_LINK"
:serv="false"
:type="costanti.FieldType.string">
</CMyFieldDb>
<CMyFieldDb title="Nome del BOT Telegram"
mykey="TELEG_BOT_NAME"
:serv="false"
:type="costanti.FieldType.string">
</CMyFieldDb>
<CMyFieldDb title="BOT Telegram (per Test)"
mykey="TELEG_BOT_LINK_TEST"
:serv="false"
:type="costanti.FieldType.string">
</CMyFieldDb>
<CMyFieldDb title="Chat di Supporto (Help)"
mykey="TELEGRAM_SUPPORT"
:serv="false"
:type="costanti.FieldType.string">
</CMyFieldDb>
<CMyFieldDb title="Sito ONLINE"
mykey="SITO_ONLINE"
:serv="false"
:type="costanti.FieldType.boolean">
</CMyFieldDb>
</div>

View File

@@ -534,6 +534,8 @@ const msg_it = {
user_already_exist: 'La registrazione con questi dati (nome, cognome e cellulare) è stata già effettuata. Per accedere al sito, cliccare sul bottone LOGIN dalla HomePage.',
user_extralist_not_found: 'Utente in archivio non trovato, inserire il Nome, Cognome e numero di cellulare comunicato nella lista nel 2019. Se questa è una nuova registrazione, dovete registrarvi tramite il LINK di chi vi sta invitando.',
user_aportador_not_valid: 'Il link di registrazione non sembra risultare valido.',
rec_already_exist_name: 'Esiste già con questo Nome',
rec_already_exist_code: 'Esiste già con questo Codice Gruppo',
duplicate_username: 'L\'Username è stato già utilizzato',
username_not_valid: 'L\'Username non é valido',
aportador_not_exist: 'L\'Username di chi ti ha invitato non è presente. Contattaci.',

View File

@@ -6,6 +6,8 @@ export const serv_constants = {
RIS_CODE_EMAIL_ALREADY_VERIFIED: -5,
RIS_CODE_EMAIL_VERIFIED: 1,
RIS_CODE_REC_ALREADY_EXIST_CODE: -101,
RIS_CODE_REC_ALREADY_EXIST_NAME: -100,
RIS_CODE_USER_APORTADOR_NOT_VALID: -75,
RIS_CODE_USER_EXTRALIST_NOTFOUND: -70,
RIS_CODE_USERNAME_ALREADY_EXIST: -60,

View File

@@ -3128,6 +3128,18 @@ export const tools = {
}
},
checkErrors(mythisq: any, riscode: number, msg: string) {
console.log('checkErrors', riscode)
const userStore = useUserStore()
if (riscode === serv_constants.RIS_CODE_REC_ALREADY_EXIST_NAME) {
this.showNegativeNotif(mythisq, t('reg.err.rec_already_exist_name') + ' ' + msg)
} else if (riscode === serv_constants.RIS_CODE_REC_ALREADY_EXIST_CODE) {
this.showNegativeNotif(mythisq, t('reg.err.rec_already_exist_code') + ' ' + msg)
}
},
SignUpcheckErrors(mythisq: any, $router: any, riscode: number, msg: string) {
console.log('SignUpcheckErrors', riscode)
const endload = true
@@ -3146,6 +3158,7 @@ export const tools = {
this.showNegativeNotif(mythisq, t('reg.err.user_aportador_not_valid') + ' ' + msg)
} else if (riscode === serv_constants.RIS_CODE_USERNAME_NOT_VALID) {
this.showNotif(mythisq, t('reg.err.username_not_valid'))
} else if (riscode === serv_constants.RIS_CODE_USERNAME_ALREADY_EXIST) {
@@ -3161,13 +3174,13 @@ export const tools = {
color: 'green',
textColor: 'black',
}) */
this.showNotif(mythisq, t('components.authentication.email_verification.reg_ok', { botname: t('ws.botname') }), {
this.showNotif(mythisq, t('components.authentication.email_verification.reg_ok', { botname: this.getBotName() }), {
color: 'green',
textColor: 'black',
})
} else if (riscode === serv_constants.RIS_ISCRIZIONE_OK) {
$router.push('/')
this.showNotif(mythisq, t('components.authentication.iscrizione_ok', { botname: t('ws.botname') }), {
this.showNotif(mythisq, t('components.authentication.iscrizione_ok', { botname: this.getBotName() }), {
color: 'green',
textColor: 'black',
})
@@ -4110,7 +4123,7 @@ export const tools = {
return mylist
},
IsLogged() {
isLogged() {
const userStore = useUserStore()
if (!!userStore)
return userStore.isLogged
@@ -4118,6 +4131,59 @@ export const tools = {
return false
},
isUserOk() {
const userStore = useUserStore()
if (!!userStore)
return userStore.isUserOk()
else
return false
},
getLinkBotTelegram(): string {
if (this.isTest() && !process.env.DEV) {
return this.getValDb('TELEG_BOT_LINK_TEST', false)
} else {
return this.getValDb('TELEG_BOT_LINK', false)
}
},
getBotName(): string {
if (this.isTest() && !process.env.DEV) {
return this.getValDb('TELEG_BOT_NAME', false)
} else {
return this.getValDb('TELEG_BOT_NAME', false)
}
},
TelegVerificato(): boolean {
const userStore = useUserStore()
return userStore.my.profile ? userStore.my.profile.teleg_id! > 0 : false
},
isVerified(): boolean {
return tools.TelegVerificato()
},
Verificato() {
const userStore = useUserStore()
return this.isVerified() && userStore.my.verified_by_aportador
},
isEmailVerified(): boolean {
const userStore = useUserStore()
return userStore.my.verified_email!
},
TelegCode() {
const userStore = useUserStore()
if (!!userStore)
return userStore.my.profile.teleg_checkcode
else
return false
},
formatDate(mydate: any) {
let d: Date
@@ -4924,11 +4990,6 @@ export const tools = {
return Array.isArray(val)
},
isUserOk() {
const userStore = useUserStore()
return userStore.isUserOk()
},
isTelegOk() {
const userStore = useUserStore()
return userStore.isTelegOk()
@@ -4959,7 +5020,7 @@ export const tools = {
},
getCitySel() {
const objcity = tools.getCookie(tools.COOK_SEARCH + 'cities', {_id: 0})
const objcity = tools.getCookie(tools.COOK_SEARCH + 'cities', { _id: 0 })
let defcity: any = []
if (objcity && objcity._id > 0) {
defcity = [objcity._id]
@@ -4975,13 +5036,13 @@ export const tools = {
const arrtable = ['sectors', 'statusSkills', 'contribtypes', 'adtypes', 'sectorgoods', 'otherfilters', 'shippings']
const arrmultisel_tab = ['skills', 'goods']
const arrmultisel = [
{ table: 'skills', join: 'sectors'},
{ table: 'goods', join: 'sectorgoods'}
{ table: 'skills', join: 'sectors' },
{ table: 'goods', join: 'sectorgoods' }
]
if (arrtable.includes(table)) {
return tools.getCookie(tools.COOK_SEARCH + table, mydef)
} else if (arrmultisel_tab.includes(table)){
} else if (arrmultisel_tab.includes(table)) {
const rec = arrmultisel.find((rec) => rec.table === table)
if (rec) {
return tools.getCookie(tools.COOK_SEARCH + table + '_' + tools.getCookie(tools.COOK_SEARCH + rec.join, 0), mydef)
@@ -5145,6 +5206,15 @@ export const tools = {
return '/' + tools.getDirectoryByTable(table) + '/' + grp.groupname
},
getAportadorSolidario() {
const userStore = useUserStore()
return userStore.my ? userStore.my.aportador_solidario : ''
},
getLinkProfileAportador() {
return '/my/' + tools.getAportadorSolidario()
}
// getLocale() {
// if (navigator.languages && navigator.languages.length > 0) {

View File

@@ -895,8 +895,13 @@ export const useGlobalStore = defineStore('GlobalStore', {
const userStore = useUserStore()
return Api.SendReq('/settable', 'POST', mydata)
.then((res) => res.data)
.then((res) => {
this.serverError = false
return res.data
})
.catch((error) => {
this.serverError = true
this.serverMsgError = error
console.log('error saveTable', error)
userStore.setErrorCatch(error)
return null
@@ -1326,14 +1331,14 @@ export const useGlobalStore = defineStore('GlobalStore', {
}
const islogged = localStorage.getItem(toolsext.localStorage.username)
console.log('islogged', islogged)
const isLogged = localStorage.getItem(toolsext.localStorage.username)
console.log('isLogged', isLogged)
// calendarStore.editable = userStore.isAdmin || userStore.isManager || userStore.isTutor
if (res.data.myuser === null) {
if (islogged) {
if (isLogged) {
// Fai Logout
console.log('Fai Logout', 'islogged', islogged)
console.log('Fai Logout', 'isLogged', isLogged)
userStore.logout()
this.rightDrawerOpen = true
return false

View File

@@ -10,10 +10,8 @@ export default defineComponent({
props: {},
setup() {
const userStore = useUserStore()
const { isEmailVerified } = MixinUsers()
return {
isEmailVerified,
}
},
})

View File

@@ -15,19 +15,19 @@
</div>
</div>
<q-banner
v-if="!isEmailVerified()"
v-if="!tools.isEmailVerified()"
rounded
class="bg-warning text-black"
color="primary q-title"
style="text-align: center;">
<div class="mybanner" v-html="$t('components.authentication.email_verification.link_sent', {botname: $t('ws.botname') })">
<div class="mybanner" v-html="$t('components.authentication.email_verification.link_sent', {botname: tools.getBotName() })">
</div>
</q-banner>
<br>
<q-banner
v-if="!isEmailVerified()"
v-if="!tools.isEmailVerified()"
rounded
class="bg-warning text-black"
color="primary q-title"

View File

@@ -1,5 +1,5 @@
<template>
<div v-if="tools.isUserOk()">
<div v-if="tools.isUserOk() || (tools.isLogged() && username === tools.getAportadorSolidario())">
<div class="q-gutter-sm q-pa-sm q-pb-md">
<div v-if="myuser.date_reg" class="fit column no-wrap justify-evenly items-center content-start">
@@ -152,12 +152,18 @@
</q-card>
</div>
<!--
<CTitleBanner
class="" title="Competenze e Talenti" bgcolor="bg-positive" clcolor="text-white"
myclass="myshad" :canopen="true">
<q-tabs v-model="tabgrp" class="text-blue">
<q-tab label="Beni" name="goods" icon="fas fa-info"></q-tab>
</q-tabs>
<CSkill
:table="table"
:visuinpage="false"
:filtercustom="filtroutente"
:butt_modif_new="isMyRecord(myuser.username)"
@@ -169,6 +175,7 @@
</CTitleBanner>
-->
<div v-if="myuser._id && (userStore.IsMyFriendByUsername(myuser.username) || isMyRecord(myuser.username))">
<CTitleBanner
class="" :title="$t('dashboard.info')" bgcolor="bg-primary" clcolor="text-white"