Aggiungere "San Marino" e suoi comuni
Corretto Filtro a mano della ricerca Creare filtro ricerca per trovare la sottocategoria o categoria -> Skill e SubSkill
This commit is contained in:
@@ -1,23 +1,23 @@
|
||||
APP_VERSION="0.1.8"
|
||||
APP_VERSION="0.1.9"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="1"
|
||||
APP_ID="12"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
DIRECTORY_SERVER="freeplanet_serverside"
|
||||
SERVERDIR_WEBSITE=""
|
||||
SERVERPW_WEBSITE=""
|
||||
APP_URL="http://localhost"
|
||||
URL_FACEBOOK="https://www.facebook.com/freeplanetapp"
|
||||
URL_FACEBOOK="https://www.facebook.com/"
|
||||
PROVA_PAOLO="PROVA ENV FUNZIONA!"
|
||||
LANG_DEFAULT="it"
|
||||
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
|
||||
MONGODB_HOST="http://192.168.0.200:3000"
|
||||
LOGO_REG="freeplanet-logo-full.svg"
|
||||
LOGO_REG='logo-full.png'
|
||||
TEST_NAME="Paolo"
|
||||
TEST_SURNAME="Arena"
|
||||
TEST_EMAIL="paolo@freeplanet.app"
|
||||
TEST_EMAIL="perseo@freeplanet.app"
|
||||
TEST_USERNAME="paoloar773"
|
||||
TEST_PASSWORD=""
|
||||
TEST_PASSWORD="passpao1fr@1A"
|
||||
TEST_APORTADOR=""
|
||||
PUBLICKEY_PUSH='BDncvMiUZmjaCG2Kr1V9N0_33hOG-AuNSbHSvL24y2dzBiUjAxKm02emx5SeJvz2IGmtRf6YqCgopeQwCwUmZw8'
|
||||
IN_CONSTRUCTION="0"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="0.1.8"
|
||||
APP_VERSION="0.1.9"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="1"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
|
||||
@@ -208,7 +208,7 @@ const msg_website_it = {
|
||||
descr: '<ul class="mylist" style="padding-left: 20px;">'
|
||||
+ '<li><strong>Condividendolo</strong> a tutti coloro che vogliono far parte insieme della crescita e sviluppo di una Nuova Era</li>'
|
||||
+ '<li>Rispondendo ai <strong>Sondaggi Popolari</strong> e lasciando <strong>Feedback</strong></li>'
|
||||
+ '<li>Tramite una piccola <strong>donazione</strong> per le spese dei Server<br>'
|
||||
+ '<li>Tramite una piccola <strong>donazione</strong> per le spese dei Server.<br>'
|
||||
+ '</ul>'
|
||||
+ 'Vedo un <strong>futuro</strong> dove non si utilizzerà più denaro. Dove le persone si <strong>aiuteranno</strong> a vicenda e non avranno bisogno di "possedere" cose, ma le <strong>condivideranno</strong> con gli altri.<br>',
|
||||
},
|
||||
|
||||
@@ -416,7 +416,7 @@ const baseroutes: IListRoutes[] = [
|
||||
active: true,
|
||||
order: 130,
|
||||
path: '/friends',
|
||||
materialIcon: 'fas fa-users',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
name: 'mypages.friends',
|
||||
component: () => import('@/views/user/myfriends/myfriends.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
@@ -583,7 +583,7 @@ const baseroutes: IListRoutes[] = [
|
||||
inmenu: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
active: false,
|
||||
order: 80,
|
||||
path: '/calendario-eventi',
|
||||
materialIcon: 'event',
|
||||
@@ -628,8 +628,8 @@ const baseroutes: IListRoutes[] = [
|
||||
|
||||
const arrLangUsed = [
|
||||
'it',
|
||||
'enUs',
|
||||
'es',
|
||||
// 'enUs',
|
||||
// 'es',
|
||||
]
|
||||
|
||||
const lang_available: ILang[] = [
|
||||
|
||||
@@ -49,7 +49,7 @@ module.exports = configure((ctx) => ({
|
||||
extras: [
|
||||
// 'ionicons-v4',
|
||||
// 'mdi-v5',
|
||||
// 'eva-icons',
|
||||
'eva-icons',
|
||||
// 'themify',
|
||||
// 'line-awesome',
|
||||
'ionicons-v4',
|
||||
@@ -57,6 +57,7 @@ module.exports = configure((ctx) => ({
|
||||
'fontawesome-v5',
|
||||
'roboto-font', // optional, you are not bound to it
|
||||
'material-icons', // optional, you are not bound to it
|
||||
'material-icons-outlined'
|
||||
],
|
||||
|
||||
aliases: {
|
||||
@@ -154,7 +155,6 @@ module.exports = configure((ctx) => ({
|
||||
framework: {
|
||||
config: {},
|
||||
|
||||
// iconSet: 'material-icons', // Quasar icon set
|
||||
// lang: 'en-US', // Quasar language pack
|
||||
|
||||
// For special cases outside of where the auto-import strategy can have an impact
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
import {
|
||||
defineComponent, ref, computed,
|
||||
} from 'vue'
|
||||
|
||||
import { tools } from '@src/store/Modules/tools'
|
||||
import { CSkill } from '@/components/CSkill'
|
||||
import { CFinder } from '@/components/CFinder'
|
||||
import { CChartMap } from '@src/components/CChartMap'
|
||||
import { CMapsEsempio } from '@src/components/CMapsEsempio'
|
||||
import { CVerifyEmail } from '@src/components/CVerifyEmail'
|
||||
import { CVerifyTelegram } from '@src/components/CVerifyTelegram'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { static_data } from '@/db/static_data'
|
||||
import MixinBase from '@/mixins/mixin-base'
|
||||
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Home',
|
||||
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram },
|
||||
setup() {
|
||||
const globalStore = useGlobalStore()
|
||||
const userStore = useUserStore()
|
||||
const { getValDb } = MixinBase()
|
||||
|
||||
function isEmailVerified() {
|
||||
return userStore.my.verified_email
|
||||
}
|
||||
|
||||
function TelegCode() {
|
||||
return userStore.my.profile.teleg_checkcode
|
||||
}
|
||||
|
||||
function TelegVerificato(): boolean {
|
||||
return userStore.my.profile ? userStore.my.profile.teleg_id! > 0 : false
|
||||
}
|
||||
|
||||
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,
|
||||
static_data,
|
||||
isEmailVerified,
|
||||
TelegCode,
|
||||
TelegVerificato,
|
||||
isLogged,
|
||||
openrighttoolbar,
|
||||
isUserOk,
|
||||
getLinkBotTelegram,
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -1,76 +0,0 @@
|
||||
<template>
|
||||
<q-page class="">
|
||||
|
||||
<!--<CChartMap
|
||||
title="Mappa"
|
||||
subtitle="cartina..."
|
||||
serie1="Serie 1"
|
||||
>
|
||||
|
||||
</CChartMap>-->
|
||||
|
||||
<!--<CMapsEsempio></CMapsEsempio>-->
|
||||
|
||||
|
||||
<div v-if="isLogged()">
|
||||
<CVerifyEmail v-if="!isEmailVerified()">
|
||||
|
||||
</CVerifyEmail>
|
||||
|
||||
<CVerifyTelegram v-if="TelegCode() || !TelegVerificato()">
|
||||
|
||||
</CVerifyTelegram>
|
||||
|
||||
<div v-if="isUserOk()">
|
||||
<div v-if="isUserOk()">
|
||||
<q-banner rounded class="bg-primary text-white">
|
||||
<div class="text-h6 text-center">
|
||||
Ora Accedi al Bot Telegram <br>
|
||||
per vedere tutti i Menu e le chat !
|
||||
</div>
|
||||
<template v-slot:action>
|
||||
<q-btn icon="fab fa-telegram" flat color="white" label="Accedi al Bot Telegram" type="a" target="__blank" :href="getLinkBotTelegram()"/>
|
||||
</template>
|
||||
</q-banner>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else>
|
||||
<div class="q-pa-md q-gutter-sm">
|
||||
<q-banner rounded class="bg-primary text-white">
|
||||
<div class="text-h6 text-center">
|
||||
Accedi al menu inserendo le tue credenziali 🔑<br><br>
|
||||
📝 Non sei <strong>Registrato</strong>?<br>
|
||||
👉🏻 Chiedi in chat il link a chi ti ha <strong>invitato</strong>.<br>
|
||||
</div>
|
||||
<template v-slot:action>
|
||||
<q-btn flat color="white" label="Accedi al Login" @click="openrighttoolbar"/>
|
||||
</template>
|
||||
</q-banner>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="!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>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
<div v-if="!isLogged && static_data.functionality.ENABLE_REGISTRATION" align="center" style="margin:20px;">
|
||||
<q-btn rounded size="lg" color="primary" to="/signup">{{$t('reg.submit')}}
|
||||
</q-btn>
|
||||
</div>
|
||||
-->
|
||||
|
||||
</div>
|
||||
|
||||
</q-page>
|
||||
|
||||
</template>
|
||||
<script lang="ts" src="./home.ts">
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import './home.scss';
|
||||
</style>
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="0.1.8"
|
||||
APP_VERSION="0.1.9"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="1"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
|
||||
@@ -416,7 +416,7 @@ const baseroutes: IListRoutes[] = [
|
||||
active: true,
|
||||
order: 130,
|
||||
path: '/friends',
|
||||
materialIcon: 'eva-people-outline',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
name: 'mypages.friends',
|
||||
component: () => import('@/views/user/myfriends/myfriends.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
|
||||
@@ -57,6 +57,7 @@ module.exports = configure((ctx) => ({
|
||||
'fontawesome-v5',
|
||||
'roboto-font', // optional, you are not bound to it
|
||||
'material-icons', // optional, you are not bound to it
|
||||
'material-icons-outlined',
|
||||
],
|
||||
|
||||
aliases: {
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
import {
|
||||
defineComponent, ref, computed,
|
||||
} from 'vue'
|
||||
|
||||
import { tools } from '@src/store/Modules/tools'
|
||||
import { CSkill } from '@/components/CSkill'
|
||||
import { CFinder } from '@/components/CFinder'
|
||||
import { CChartMap } from '@src/components/CChartMap'
|
||||
import { CMapsEsempio } from '@src/components/CMapsEsempio'
|
||||
import { CVerifyEmail } from '@src/components/CVerifyEmail'
|
||||
import { CVerifyTelegram } from '@src/components/CVerifyTelegram'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { static_data } from '@/db/static_data'
|
||||
import MixinBase from '@/mixins/mixin-base'
|
||||
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Home',
|
||||
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram },
|
||||
setup() {
|
||||
const globalStore = useGlobalStore()
|
||||
const userStore = useUserStore()
|
||||
const { getValDb } = MixinBase()
|
||||
|
||||
function isEmailVerified() {
|
||||
return userStore.my.verified_email
|
||||
}
|
||||
|
||||
function TelegCode() {
|
||||
return userStore.my.profile.teleg_checkcode
|
||||
}
|
||||
|
||||
function TelegVerificato(): boolean {
|
||||
return userStore.my.profile ? userStore.my.profile.teleg_id! > 0 : false
|
||||
}
|
||||
|
||||
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,
|
||||
static_data,
|
||||
isEmailVerified,
|
||||
TelegCode,
|
||||
TelegVerificato,
|
||||
isLogged,
|
||||
openrighttoolbar,
|
||||
isUserOk,
|
||||
getLinkBotTelegram,
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -1,67 +0,0 @@
|
||||
<template>
|
||||
<q-page class="">
|
||||
|
||||
<!--<CChartMap
|
||||
title="Mappa"
|
||||
subtitle="cartina..."
|
||||
serie1="Serie 1"
|
||||
>
|
||||
|
||||
</CChartMap>-->
|
||||
|
||||
<!--<CMapsEsempio></CMapsEsempio>-->
|
||||
|
||||
|
||||
<div v-if="isLogged()">
|
||||
<CVerifyEmail v-if="!isEmailVerified()">
|
||||
|
||||
</CVerifyEmail>
|
||||
|
||||
<CVerifyTelegram v-if="TelegCode() || !TelegVerificato()">
|
||||
|
||||
</CVerifyTelegram>
|
||||
|
||||
<div v-if="isUserOk()">
|
||||
<div v-if="isUserOk()">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else>
|
||||
<div class="q-pa-md q-gutter-sm">
|
||||
<q-banner rounded class="bg-primary text-white">
|
||||
<div class="text-h6 text-center">
|
||||
Accedi al menu inserendo le tue credenziali 🔑<br><br>
|
||||
📝 Non sei <strong>Registrato</strong>?<br>
|
||||
👉🏻 Chiedi in chat il link a chi ti ha <strong>invitato</strong>.<br>
|
||||
</div>
|
||||
<template v-slot:action>
|
||||
<q-btn flat color="white" label="Accedi al Login" @click="openrighttoolbar"/>
|
||||
</template>
|
||||
</q-banner>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="!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>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
<div v-if="!isLogged && static_data.functionality.ENABLE_REGISTRATION" align="center" style="margin:20px;">
|
||||
<q-btn rounded size="lg" color="primary" to="/signup">{{$t('reg.submit')}}
|
||||
</q-btn>
|
||||
</div>
|
||||
-->
|
||||
|
||||
</div>
|
||||
|
||||
</q-page>
|
||||
|
||||
</template>
|
||||
<script lang="ts" src="./home.ts">
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import './home.scss';
|
||||
</style>
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="0.1.8"
|
||||
APP_VERSION="0.1.9"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="12"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
|
||||
@@ -416,7 +416,7 @@ const baseroutes: IListRoutes[] = [
|
||||
active: true,
|
||||
order: 130,
|
||||
path: '/friends',
|
||||
materialIcon: 'fas fa-users',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
name: 'mypages.friends',
|
||||
component: () => import('@/views/user/myfriends/myfriends.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
|
||||
@@ -57,6 +57,7 @@ module.exports = configure((ctx) => ({
|
||||
'fontawesome-v5',
|
||||
'roboto-font', // optional, you are not bound to it
|
||||
'material-icons', // optional, you are not bound to it
|
||||
'material-icons-outlined',
|
||||
],
|
||||
|
||||
aliases: {
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
import {
|
||||
defineComponent, ref, computed,
|
||||
} from 'vue'
|
||||
|
||||
import { tools } from '@src/store/Modules/tools'
|
||||
import { CSkill } from '@/components/CSkill'
|
||||
import { CFinder } from '@/components/CFinder'
|
||||
import { CChartMap } from '@src/components/CChartMap'
|
||||
import { CMapsEsempio } from '@src/components/CMapsEsempio'
|
||||
import { CVerifyEmail } from '@src/components/CVerifyEmail'
|
||||
import { CVerifyTelegram } from '@src/components/CVerifyTelegram'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { static_data } from '@/db/static_data'
|
||||
import MixinBase from '@/mixins/mixin-base'
|
||||
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Home',
|
||||
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram },
|
||||
setup() {
|
||||
const globalStore = useGlobalStore()
|
||||
const userStore = useUserStore()
|
||||
const { getValDb } = MixinBase()
|
||||
|
||||
function isEmailVerified() {
|
||||
return userStore.my.verified_email
|
||||
}
|
||||
|
||||
function TelegCode() {
|
||||
return userStore.my.profile.teleg_checkcode
|
||||
}
|
||||
|
||||
function TelegVerificato(): boolean {
|
||||
return userStore.my.profile ? userStore.my.profile.teleg_id! > 0 : false
|
||||
}
|
||||
|
||||
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,
|
||||
static_data,
|
||||
isEmailVerified,
|
||||
TelegCode,
|
||||
TelegVerificato,
|
||||
isLogged,
|
||||
openrighttoolbar,
|
||||
isUserOk,
|
||||
getLinkBotTelegram,
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -1,76 +0,0 @@
|
||||
<template>
|
||||
<q-page class="">
|
||||
|
||||
<!--<CChartMap
|
||||
title="Mappa"
|
||||
subtitle="cartina..."
|
||||
serie1="Serie 1"
|
||||
>
|
||||
|
||||
</CChartMap>-->
|
||||
|
||||
<!--<CMapsEsempio></CMapsEsempio>-->
|
||||
|
||||
|
||||
<div v-if="isLogged()">
|
||||
<CVerifyEmail v-if="!isEmailVerified()">
|
||||
|
||||
</CVerifyEmail>
|
||||
|
||||
<CVerifyTelegram v-if="TelegCode() || !TelegVerificato()">
|
||||
|
||||
</CVerifyTelegram>
|
||||
|
||||
<div v-if="isUserOk()">
|
||||
<div v-if="isUserOk()">
|
||||
<q-banner rounded class="bg-primary text-white">
|
||||
<div class="text-h6 text-center">
|
||||
Ora Accedi al Bot Telegram <br>
|
||||
per vedere tutti i Menu e le chat !
|
||||
</div>
|
||||
<template v-slot:action>
|
||||
<q-btn icon="fab fa-telegram" flat color="white" label="Accedi al Bot Telegram" type="a" target="__blank" :href="getLinkBotTelegram()"/>
|
||||
</template>
|
||||
</q-banner>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else>
|
||||
<div class="q-pa-md q-gutter-sm">
|
||||
<q-banner rounded class="bg-primary text-white">
|
||||
<div class="text-h6 text-center">
|
||||
Accedi al menu inserendo le tue credenziali 🔑<br><br>
|
||||
📝 Non sei <strong>Registrato</strong>?<br>
|
||||
👉🏻 Chiedi in chat il link a chi ti ha <strong>invitato</strong>.<br>
|
||||
</div>
|
||||
<template v-slot:action>
|
||||
<q-btn flat color="white" label="Accedi al Login" @click="openrighttoolbar"/>
|
||||
</template>
|
||||
</q-banner>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="!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>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
<div v-if="!isLogged && static_data.functionality.ENABLE_REGISTRATION" align="center" style="margin:20px;">
|
||||
<q-btn rounded size="lg" color="primary" to="/signup">{{$t('reg.submit')}}
|
||||
</q-btn>
|
||||
</div>
|
||||
-->
|
||||
|
||||
</div>
|
||||
|
||||
</q-page>
|
||||
|
||||
</template>
|
||||
<script lang="ts" src="./home.ts">
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import './home.scss';
|
||||
</style>
|
||||
58
package.json
58
package.json
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"name": "freeplanet",
|
||||
"version": "0.0.7",
|
||||
"description": "FreePlanet",
|
||||
"productName": "FreePlanet",
|
||||
"name": "popolodelnuovomondo",
|
||||
"version": "0.0.8",
|
||||
"description": "Popolo Del Nuovo Mondo",
|
||||
"productName": "Popolo Del Nuovo Mondo",
|
||||
"author": "Paolo Arena",
|
||||
"private": true,
|
||||
"keywords": [
|
||||
@@ -23,25 +23,25 @@
|
||||
"dependencies": {
|
||||
"axios": "0.21.4",
|
||||
"@vue/eslint-config-standard": "5.1.2",
|
||||
"@quasar/extras": "^1.12.2",
|
||||
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.11",
|
||||
"@quasar/extras": "^1.12.4",
|
||||
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.12",
|
||||
"@vue/compat": "^3.2.26",
|
||||
"@vue/compiler-sfc": "^3.2.26",
|
||||
"@vuelidate/core": "^2.0.0-alpha.32",
|
||||
"@vuelidate/validators": "^2.0.0-alpha.25",
|
||||
"acorn": "^8.6.0",
|
||||
"autoprefixer": "^10.4.0",
|
||||
"@vuelidate/core": "^2.0.0-alpha.34",
|
||||
"@vuelidate/validators": "^2.0.0-alpha.26",
|
||||
"acorn": "^8.7.0",
|
||||
"autoprefixer": "^10.4.2",
|
||||
"bcryptjs": "^2.4.3",
|
||||
"core-js": "^3.20.0",
|
||||
"core-js": "^3.20.3",
|
||||
"crypto": "^1.0.1",
|
||||
"date-fns": "^2.27.0",
|
||||
"dotenv": "^10.0.0",
|
||||
"date-fns": "^2.28.0",
|
||||
"dotenv": "^11.0.0",
|
||||
"echarts": "^5.2.2",
|
||||
"eslint-plugin-quasar": "^1.0.0",
|
||||
"eslint-plugin-quasar": "^1.1.0",
|
||||
"eslint-plugin-standard": "^5.0.0",
|
||||
"graphql": "^16.1.0",
|
||||
"graphql": "^16.2.0",
|
||||
"graphql-tag": "^2.12.6",
|
||||
"gsap": "^3.9.0",
|
||||
"gsap": "^3.9.1",
|
||||
"jquery": "^3.6.0",
|
||||
"js-cookie": "^3.0.1",
|
||||
"localforage": "^1.10.0",
|
||||
@@ -49,9 +49,9 @@
|
||||
"normalize.css": "^8.0.1",
|
||||
"npm": "^8.3.0",
|
||||
"nprogress": "^0.2.0",
|
||||
"pinia": "^2.0.6",
|
||||
"pinia": "^2.0.9",
|
||||
"prerender-spa-plugin": "^3.4.0",
|
||||
"quasar": "^2.3.4",
|
||||
"quasar": "^2.4.12",
|
||||
"quasar-extras": "^2.0.9",
|
||||
"register-service-worker": "^1.7.2",
|
||||
"vee-validate": "^4.4.10",
|
||||
@@ -72,9 +72,9 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"node-sass": "6.0.1",
|
||||
"webpack": "^5.0.0",
|
||||
"@quasar/app": "^3.2.5",
|
||||
"@quasar/quasar-app-extension-qcalendar": "^4.0.0-beta.11",
|
||||
"webpack": "^5.66.0",
|
||||
"@quasar/app": "^3.2.9",
|
||||
"@quasar/quasar-app-extension-qcalendar": "^4.0.0-beta.12",
|
||||
"@types/bcryptjs": "^2.4.2",
|
||||
"@types/dotenv": "^8.2.0",
|
||||
"@types/googlemaps": "^3.43.3",
|
||||
@@ -84,31 +84,31 @@
|
||||
"@types/nprogress": "^0.2.0",
|
||||
"@types/vue-tel-input": "^2.1.2",
|
||||
"@types/vuelidate": "^0.7.15",
|
||||
"@typescript-eslint/eslint-plugin": "^5.7.0",
|
||||
"@typescript-eslint/parser": "^5.7.0",
|
||||
"eslint": "^8.4.1",
|
||||
"@typescript-eslint/eslint-plugin": "^5.10.0",
|
||||
"@typescript-eslint/parser": "^5.10.0",
|
||||
"eslint": "^8.7.0",
|
||||
"eslint-config-prettier": "^8.3.0",
|
||||
"eslint-plugin-import": "^2.25.3",
|
||||
"eslint-plugin-import": "^2.25.4",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-promise": "^5.2.0",
|
||||
"eslint-plugin-vue": "^8.2.0",
|
||||
"eslint-plugin-vue": "^8.3.0",
|
||||
"file-loader": "^6.2.0",
|
||||
"html-webpack-plugin": "^5.5.0",
|
||||
"http-proxy-middleware": "^2.0.1",
|
||||
"jest": "^27.4.5",
|
||||
"json-loader": "^0.5.7",
|
||||
"npm-check-updates": "^12.0.5",
|
||||
"npm-check-updates": "^12.1.0",
|
||||
"optimize-css-assets-webpack-plugin": "^6.0.1",
|
||||
"postcss": "^8.4.5",
|
||||
"postcss-loader": "^6.2.1",
|
||||
"sass-loader": "^12.4.0",
|
||||
"strip-ansi": "=7.0.1",
|
||||
"ts-jest": "^27.1.1",
|
||||
"ts-jest": "^27.1.2",
|
||||
"ts-loader": "^9.2.6",
|
||||
"tslint": "^6.1.3",
|
||||
"tslint-config-standard": "^9.0.0",
|
||||
"tslint-loader": "^3.5.4",
|
||||
"typescript": "^4.5.4",
|
||||
"typescript": "^4.5.5",
|
||||
"vue-cli-plugin-element-ui": "^1.1.4",
|
||||
"vueify": "^9.4.1",
|
||||
"workbox-webpack-plugin": "^6.4.2"
|
||||
|
||||
@@ -49,7 +49,7 @@ module.exports = configure((ctx) => ({
|
||||
extras: [
|
||||
// 'ionicons-v4',
|
||||
// 'mdi-v5',
|
||||
'eva-icons',
|
||||
// 'eva-icons',
|
||||
// 'themify',
|
||||
// 'line-awesome',
|
||||
'ionicons-v4',
|
||||
@@ -57,7 +57,7 @@ module.exports = configure((ctx) => ({
|
||||
'fontawesome-v5',
|
||||
'roboto-font', // optional, you are not bound to it
|
||||
'material-icons', // optional, you are not bound to it
|
||||
'material-icons-outlined'
|
||||
'material-icons-outlined',
|
||||
],
|
||||
|
||||
aliases: {
|
||||
@@ -147,14 +147,16 @@ module.exports = configure((ctx) => ({
|
||||
},
|
||||
devServer: {
|
||||
https: false,
|
||||
port: 8082,
|
||||
port: 8083,
|
||||
open: false, // opens browser window automatically
|
||||
liveReload: false,
|
||||
},
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework
|
||||
framework: {
|
||||
config: {},
|
||||
|
||||
// iconSet: 'material-icons', // Quasar icon set
|
||||
// lang: 'en-US', // Quasar language pack
|
||||
|
||||
// For special cases outside of where the auto-import strategy can have an impact
|
||||
@@ -284,21 +286,31 @@ module.exports = configure((ctx) => ({
|
||||
},
|
||||
|
||||
manifest: {
|
||||
name: 'FreePlanet',
|
||||
short_name: 'FreePlanet',
|
||||
description: 'New Free Social',
|
||||
name: 'PopoloDelNuovoMondo',
|
||||
short_name: 'PdNM',
|
||||
description: 'Popolo del Nuovo Mondo',
|
||||
display: 'standalone',
|
||||
orientation: 'portrait',
|
||||
background_color: '#ffffff',
|
||||
theme_color: '#027be3',
|
||||
icons: [
|
||||
{
|
||||
src: 'images/android-chrome-192x192.png',
|
||||
sizes: '384x384',
|
||||
src: 'images/pdnm-android-icon-96x96.png',
|
||||
sizes: '96x96',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/android-chrome-512x512.png',
|
||||
src: 'images/pdnm-android-icon-144x144.png',
|
||||
sizes: '144x144',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/pdnm-android-icon-192x192.png',
|
||||
sizes: '192x192',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/pdnm-android-icon-512x512.png',
|
||||
sizes: '512x512',
|
||||
type: 'image/png',
|
||||
},
|
||||
|
||||
@@ -16,5 +16,5 @@ export class Patterns {
|
||||
*
|
||||
* 8 to 20 characters string with at least one digit, one upper case letter, one lower case letter and one special symbol
|
||||
*/
|
||||
public static Password = /^((?=.*[A-Z])(?=.*\d)(?=.*[@#*=])(?!.* ).{8,30})/i
|
||||
public static Password = /^((?=.*[A-Z])(?=.*\d)(?!.* ).{8,30})/i
|
||||
}
|
||||
|
||||
@@ -84,12 +84,14 @@ export const shared_consts = {
|
||||
|
||||
PARAM_SHOW_PROVINCE: 1,
|
||||
|
||||
TABLES_ID_NUMBER: ['permissions', 'levels', 'statusSkills', 'sectors', 'catgrps', 'skills', 'subskills', 'cities', 'provinces', 'myskills', 'mygroups'],
|
||||
TABLES_ID_NUMBER: ['permissions', 'levels', 'adtypes', 'statusSkills', 'sectors', 'catgrps', 'skills', 'subskills', 'cities', 'provinces', 'myskills', 'mygroups'],
|
||||
TABLES_USER_ID: ['myskills'],
|
||||
TABLES_UPDATE_LASTMODIFIED: ['myskills', 'mybots'],
|
||||
TABLES_FINDER: ['myskills', 'mygroups'],
|
||||
|
||||
TABLES_PERM_CHANGE_FOR_USERS: ['myskills'],
|
||||
TABLES_VISU_LISTA_USER: ['myskills', 'users'],
|
||||
TABLES_NOT_SHOW_IF_USERNAME: ['myskills'],
|
||||
|
||||
VISIB_ALL: 0,
|
||||
VISIB_ONLYIF_VERIFIED: 1,
|
||||
@@ -459,6 +461,10 @@ export const shared_consts = {
|
||||
label: 'Reggio Emilia',
|
||||
value: 'RE',
|
||||
},
|
||||
{
|
||||
label: 'Repubblica di San Marino',
|
||||
value: 'RSM',
|
||||
},
|
||||
{
|
||||
label: 'Rieti',
|
||||
value: 'RI',
|
||||
|
||||
@@ -90,6 +90,17 @@ export default defineComponent({
|
||||
|
||||
|
||||
searchList.value = [
|
||||
{
|
||||
label: 'Offro/Cerco',
|
||||
table: 'adtypes',
|
||||
key: 'adType',
|
||||
value: tools.getCookie(tools.COOK_SEARCH + 'adtypes', costanti.FILTER_TUTTI),
|
||||
arrvalue: [],
|
||||
addall: true,
|
||||
type: costanti.FieldType.select,
|
||||
filter: null,
|
||||
useinput: false,
|
||||
},
|
||||
{
|
||||
label: 'Settore',
|
||||
table: 'sectors',
|
||||
@@ -204,27 +215,6 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
|
||||
async function createNewRecordInUserTable() {
|
||||
console.log('createNewRecordInUserTable')
|
||||
|
||||
let mydata = {
|
||||
table: mytable,
|
||||
data: {
|
||||
userId: userStore.my._id,
|
||||
data: {},
|
||||
field: 'myskills'
|
||||
}
|
||||
};
|
||||
|
||||
if (props.defaultnewrec) {
|
||||
|
||||
mydata.data.data = props.defaultnewrec
|
||||
}
|
||||
|
||||
console.log('mydata', mydata)
|
||||
const data = await globalStore.saveSubRec(mydata)
|
||||
}
|
||||
|
||||
function getdefaultnewrec(): IMySkill {
|
||||
return {
|
||||
_id: 0,
|
||||
@@ -235,9 +225,10 @@ export default defineComponent({
|
||||
idContribType: [],
|
||||
idCity: [],
|
||||
NumLevel: 0,
|
||||
adType: 0,
|
||||
photos: [],
|
||||
note: '',
|
||||
subTitle: '',
|
||||
descr: '',
|
||||
}
|
||||
}
|
||||
|
||||
@@ -263,13 +254,15 @@ export default defineComponent({
|
||||
idSector: 1,
|
||||
idSkill: 1,
|
||||
idSubSkill: 1,
|
||||
myskill: 1,
|
||||
idStatusSkill: 1,
|
||||
idContribType: 1,
|
||||
idCity: 1,
|
||||
numLevel: 1,
|
||||
adType: 1,
|
||||
photos: 1,
|
||||
note: 1,
|
||||
subTitle: 1,
|
||||
descr: 1,
|
||||
date_created: 1,
|
||||
date_updated: 1,
|
||||
userId: 1,
|
||||
|
||||
@@ -18,7 +18,9 @@
|
||||
prop_mytitle=""
|
||||
:prop_mycolumns="colmySkills"
|
||||
prop_colkey="idSkill"
|
||||
col_title="subTitle"
|
||||
col_title="descr"
|
||||
col_footer="idCity"
|
||||
col_tabfooter="mycities"
|
||||
:vertical="-1"
|
||||
:nodataLabel="idSector > 0 ? 'Nessuna Competenza trovata': 'Selezionare un Settore'"
|
||||
:prop_search="true"
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
</div>
|
||||
</q-card>
|
||||
<div v-if="!isInModif && getlistimages().length <= 0 && imagebak">
|
||||
|
||||
<q-card :class="getclass()" @click="ImgFullScreen(mygallery)">
|
||||
<q-img
|
||||
:src="imagebak" :class="getclimg()">
|
||||
|
||||
@@ -20,6 +20,7 @@ import { lists } from '@store/Modules/lists'
|
||||
import { IParamsQuery } from 'model'
|
||||
import { CMyPopupEdit } from '../CMyPopupEdit'
|
||||
import { CMyFriends } from '../CMyFriends'
|
||||
import { CMyUser } from '../CMyUser'
|
||||
import { CMyGroups } from '../CMyGroups'
|
||||
import { CMyFieldDb } from '../CMyFieldDb'
|
||||
import { CMySelect } from '../CMySelect'
|
||||
@@ -172,6 +173,16 @@ export default defineComponent({
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
col_footer: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
col_tabfooter: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
showCol: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
@@ -193,7 +204,7 @@ export default defineComponent({
|
||||
default: '',
|
||||
},
|
||||
},
|
||||
components: { CMyPopupEdit, CTitleBanner, CMyFieldDb, CMySelect, CMyFriends, CMyGroups },
|
||||
components: { CMyPopupEdit, CTitleBanner, CMyFieldDb, CMySelect, CMyFriends, CMyGroups, CMyUser },
|
||||
setup(props, { emit }) {
|
||||
const $q = useQuasar()
|
||||
const { t } = useI18n()
|
||||
@@ -342,6 +353,8 @@ export default defineComponent({
|
||||
if (userId === userStore.my._id) {
|
||||
// E' il mio, quindi modificalo
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
} else {
|
||||
return false
|
||||
@@ -878,9 +891,7 @@ export default defineComponent({
|
||||
pagination.value = props.prop_pagination
|
||||
|
||||
myvertical.value = props.vertical
|
||||
if (props.finder) {
|
||||
myvertical.value = tools.getCookie('myv', 0)
|
||||
}
|
||||
myvertical.value = tools.getCookie('myv_' + props.prop_mytable, props.vertical)
|
||||
}
|
||||
|
||||
function mounted() {
|
||||
@@ -1019,7 +1030,7 @@ export default defineComponent({
|
||||
|
||||
function checkIfColShow(field: string | undefined) {
|
||||
let vis = true
|
||||
if (props.prop_mytable === 'myskills' && !props.prop_search) {
|
||||
if (shared_consts.TABLES_NOT_SHOW_IF_USERNAME.includes(props.prop_mytable) && !props.prop_search) {
|
||||
if (field === 'username') {
|
||||
vis = false
|
||||
}
|
||||
@@ -1333,6 +1344,17 @@ export default defineComponent({
|
||||
return ''
|
||||
}
|
||||
|
||||
function getLabelFooterByRow(row: any) {
|
||||
if (props.col_footer) {
|
||||
|
||||
let mycol = fieldsTable.getColByTable(tablesel.value, props.col_footer)
|
||||
if (mycol) {
|
||||
return tools.getValueByRemoteField(mycol, row, row[props.col_footer], props.col_tabfooter)
|
||||
}
|
||||
}
|
||||
return ''
|
||||
}
|
||||
|
||||
// onMounted(mounted)
|
||||
|
||||
created()
|
||||
@@ -1413,6 +1435,7 @@ export default defineComponent({
|
||||
showColCheck,
|
||||
getValueExtra,
|
||||
shared_consts,
|
||||
getLabelFooterByRow,
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -247,13 +247,13 @@
|
||||
|
||||
<div v-if="choose_visutype" class="">
|
||||
<q-radio v-model="myvertical" :val="2" label="Lista"
|
||||
@update:model-value="tools.setCookie('myv', myvertical) "/>
|
||||
@update:model-value="tools.setCookie('myv_' + prop_mytable, myvertical) "/>
|
||||
<q-radio v-if="mytable === toolsext.TABMYGROUPS" v-model="myvertical" :val="costanti.VISUTABLE_SCHEDA_GROUP" label="Scheda"
|
||||
@update:model-value="tools.setCookie('myv', myvertical) "/>
|
||||
@update:model-value="tools.setCookie('myv_' + prop_mytable, myvertical) "/>
|
||||
<q-radio v-else v-model="myvertical" :val="costanti.VISUTABLE_SCHEDA_USER" label="Scheda"
|
||||
@update:model-value="tools.setCookie('myv', myvertical) "/>
|
||||
<q-radio v-model="myvertical" :val="0" label="Tabella"
|
||||
@update:model-value="tools.setCookie('myv', myvertical) "/>
|
||||
@update:model-value="tools.setCookie('myv_' + prop_mytable, myvertical) "/>
|
||||
<q-radio v-if="$q.screen.gt.xs" v-model="myvertical" :val="0" label="Tabella"
|
||||
@update:model-value="tools.setCookie('myv_' + prop_mytable, myvertical) "/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -303,8 +303,18 @@
|
||||
</template>
|
||||
|
||||
<template v-slot:item="props">
|
||||
<div v-if="((showType === costanti.SHOW_USERINFO) && myvertical !== costanti.VISUTABLE_SCHEDA_USER) || ((myvertical === 2) && (tablesel === 'users' || tablesel === 'myskills'))" class="fill-all-width">
|
||||
<div v-if="((showType === costanti.SHOW_USERINFO) && myvertical !== costanti.VISUTABLE_SCHEDA_USER) || ((myvertical === 2) && (shared_consts.TABLES_VISU_LISTA_USER.includes(tablesel)))" class="fill-all-width">
|
||||
<div>
|
||||
<CMyUser
|
||||
:mycontact="props.row"
|
||||
:visu="visufind"
|
||||
:groupname="extrafield"
|
||||
:labelextra="col_title ? props.row[col_title] : ''"
|
||||
:labelFooter="col_footer ? getLabelFooterByRow(props.row) : ''"
|
||||
>
|
||||
</CMyUser>
|
||||
|
||||
<!--
|
||||
<CMyFriends
|
||||
v-model="filter"
|
||||
:finder="false"
|
||||
@@ -313,6 +323,8 @@
|
||||
:groupname="extrafield"
|
||||
:labelextra="props.row[col_title]"
|
||||
/>
|
||||
-->
|
||||
<q-separator></q-separator>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -330,12 +342,14 @@
|
||||
</div>
|
||||
<div
|
||||
v-else
|
||||
class="q-pa-xs col-xs-12 col-sm-6 col-md-4 col-lg-3 grid-style-transition"
|
||||
class="q-pa-xs col-xs-12 col-sm-6 col-md-4 col-lg-3 "
|
||||
:style="props.selected ? 'transform: scale(0.95);' : ''"
|
||||
>
|
||||
<q-card :class="props.selected ? 'bg-grey-2 my-card' : 'my-card'">
|
||||
<q-bar v-if="!visuinpage" dense class="bg-primary text-white full-height">
|
||||
<span class=""> {{ props.row[col_title] }} </span>
|
||||
|
||||
<q-card :class="props.selected ? 'bg-grey-2 my-card-withshadow no-padding' : 'my-card-withshadow no-padding'"
|
||||
style="background: radial-gradient(circle, #ffffff 0%, #bbddff 100%)">
|
||||
<q-bar v-if="!visuinpage && canModifyThisRec(props.row)" dense class="bg-primary text-white full-height">
|
||||
<span v-if="props.row['username']">{{props.row['username']}}</span>
|
||||
<q-space/>
|
||||
|
||||
<q-btn
|
||||
@@ -352,7 +366,8 @@
|
||||
{{ props.row[col_title] }}
|
||||
</q-toolbar-title>
|
||||
</q-toolbar>-->
|
||||
<q-card-section class="inset-shadow">
|
||||
|
||||
<q-card-section class="">
|
||||
<q-list dense>
|
||||
<div v-for="col in mycolumns" :key="col.name">
|
||||
<q-item v-if="showColCheck(col, tools.TIPOVIS_SHOW_RECORD, false, tools.getValue(props.row,col.field, col.subfield))"
|
||||
@@ -438,7 +453,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<q-dialog v-model="newRecordBool" @hide="hidewindow">
|
||||
<q-dialog v-model="newRecordBool" @hide="hidewindow" :maximized="true">
|
||||
<q-card class="dialog_card">
|
||||
<q-bar dense class="bg-primary text-white">
|
||||
Nuovo:
|
||||
@@ -483,8 +498,7 @@
|
||||
<q-dialog v-model="editRecordBool">
|
||||
<q-card class="dialog_card">
|
||||
<q-bar dense class="bg-primary text-white full-height">
|
||||
<span v-if="mytitle">{{ mytitle }}</span>
|
||||
<span v-else>{{ recModif[col_title] }}</span>
|
||||
<span class="ellipsis">{{ recModif[col_title] }}</span>
|
||||
<q-space/>
|
||||
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
||||
</q-bar>
|
||||
|
||||
@@ -60,8 +60,8 @@ export default defineComponent({
|
||||
const toolbarcomp = ref([
|
||||
['left', 'center', 'right', 'justify'],
|
||||
['bold', 'italic', 'underline', 'strike'],
|
||||
['token', 'hr', 'link', 'custom_btn'],
|
||||
['print', 'fullscreen'], [
|
||||
['token', 'hr', 'link', 'custom_btn', 'print', 'fullscreen'],
|
||||
[
|
||||
{
|
||||
label: $q.lang.editor.formatting,
|
||||
icon: $q.iconSet.editor.formatting,
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
<q-btn v-if="col.tipovisu === costanti.TipoVisu.LINK && myvalue"
|
||||
type="a" rounded size="md"
|
||||
:class="{disabled: disable }"
|
||||
color="white" text-color="blue" :icon="`img:`+userStore.getImgByUsername(myvalue)" :to="col.link.replace(col.name, myvalue)"
|
||||
color="white" text-color="blue" :icon="`img:`+userStore.getImgUserByUsername(myvalue)" :to="col.link.replace(col.name, myvalue)"
|
||||
:label="myvalue"
|
||||
>
|
||||
</q-btn>
|
||||
@@ -108,7 +108,7 @@
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === costanti.FieldType.listimages" style="text-align: center;">
|
||||
<CGallery
|
||||
:imagebak="col.showpicprofile_ifnotset ? userStore.getImgByProfile(row) : ''"
|
||||
:imagebak="col.showpicprofile_ifnotset ? userStore.getImgByProfile(row, true) : ''"
|
||||
:title="getTitleGall()"
|
||||
:directory="getDirectoryGall()"
|
||||
:imgGall="myvalue"
|
||||
@@ -122,7 +122,7 @@
|
||||
<div v-if="canEdit">
|
||||
{{ $t('reg.photo') }}
|
||||
<CGallery
|
||||
:imagebak="col.showpicprofile_ifnotset ? userStore.getImgByProfile(row['profile']) : ''"
|
||||
:imagebak="col.showpicprofile_ifnotset ? userStore.getImgByProfile(row['profile'], true) : ''"
|
||||
:title="getTitleGall()"
|
||||
:directory="getDirectoryGall()"
|
||||
:imgGall="[{ imagefile: myvalue }]"
|
||||
|
||||
@@ -35,6 +35,16 @@ export default defineComponent({
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
labelFooter: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
notsetcmd: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false,
|
||||
}
|
||||
},
|
||||
|
||||
@@ -79,8 +89,12 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
function setCmd($q: any, cmd: number, myusername: string, value: any, groupname: string) {
|
||||
if (props.notsetcmd) {
|
||||
tools.setCmd($q, cmd, myusername, value, groupname)
|
||||
}else {
|
||||
emit('setCmd', $q, cmd, myusername, value, groupname)
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(mounted)
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
<q-item-label>{{ contact.username }} <span v-if="contact.name">({{ contact.name }} {{ contact.surname }})</span>
|
||||
</q-item-label>
|
||||
<q-item-label v-if="contact.profile" caption lines="1"><em>{{ contact.profile.qualifica }}</em></q-item-label>
|
||||
<q-item-label caption lines="1"></q-item-label>
|
||||
<q-item-label v-if="labelFooter" lines="1"><em>{{ labelFooter }}</em></q-item-label>
|
||||
</q-item-section>
|
||||
|
||||
<q-item-section side v-if="visu === costanti.FRIENDS">
|
||||
|
||||
@@ -44,26 +44,6 @@ export default defineComponent({
|
||||
const globalStore = useGlobalStore()
|
||||
const userStore = useUserStore()
|
||||
|
||||
async function createNewRecordInUserTable() {
|
||||
console.log('createNewRecordInUserTable')
|
||||
|
||||
let mydata = {
|
||||
table: mytable,
|
||||
data: {
|
||||
userId: userStore.my._id,
|
||||
data: {},
|
||||
field: 'myskills'
|
||||
}
|
||||
}
|
||||
|
||||
if (props.defaultnewrec) {
|
||||
|
||||
mydata.data.data = props.defaultnewrec
|
||||
}
|
||||
|
||||
console.log('mydata', mydata)
|
||||
const data = await globalStore.saveSubRec(mydata)
|
||||
}
|
||||
|
||||
function getdefaultnewrec(): IMySkill {
|
||||
return {
|
||||
@@ -75,9 +55,10 @@ export default defineComponent({
|
||||
idContribType: [],
|
||||
idCity: [],
|
||||
NumLevel: 0,
|
||||
adType: 0,
|
||||
photos: [],
|
||||
note: '',
|
||||
subTitle: '',
|
||||
descr: '',
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,13 +87,15 @@ export default defineComponent({
|
||||
idSector: 1,
|
||||
idSkill: 1,
|
||||
idSubSkill: 1,
|
||||
myskill: 1,
|
||||
idStatusSkill: 1,
|
||||
idContribType: 1,
|
||||
idCity: 1,
|
||||
numLevel: 1,
|
||||
adType: 1,
|
||||
photos: 1,
|
||||
note: 1,
|
||||
subTitle: 1,
|
||||
descr: 1,
|
||||
date_created: 1,
|
||||
date_updated: 1,
|
||||
userId: 1,
|
||||
@@ -137,13 +120,15 @@ export default defineComponent({
|
||||
idSector: 1,
|
||||
idSkill: 1,
|
||||
idSubSkill: 1,
|
||||
myskill: 1,
|
||||
idStatusSkill: 1,
|
||||
idContribType: 1,
|
||||
idCity: 1,
|
||||
numLevel: 1,
|
||||
adType: 1,
|
||||
photos: 1,
|
||||
note: 1,
|
||||
subTitle: 1,
|
||||
descr: 1,
|
||||
date_created: 1,
|
||||
date_updated: 1,
|
||||
comune: 1,
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
prop_mytitle=""
|
||||
:prop_mycolumns="colmySkills"
|
||||
prop_colkey="idSkill"
|
||||
col_title="subTitle"
|
||||
col_title="descr"
|
||||
col_footer="idCity"
|
||||
:vertical="-1"
|
||||
:choose_visutype="!visuinpage"
|
||||
:butt_modif_new="!visuinpage"
|
||||
|
||||
30
src/components/CUserNonVerif/CUserNonVerif.ts
Executable file
30
src/components/CUserNonVerif/CUserNonVerif.ts
Executable file
@@ -0,0 +1,30 @@
|
||||
import { computed, defineComponent, PropType, ref } from 'vue'
|
||||
|
||||
import { ICalcStat, IOperators } from '../../model'
|
||||
import { useUserStore } from '../../store/UserStore'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useGlobalStore } from '../../store/globalStore'
|
||||
import { useI18n } from '../../boot/i18n'
|
||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||
import { tools } from '@store/Modules/tools'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CUserNonVerif',
|
||||
components: {
|
||||
CTitleBanner
|
||||
},
|
||||
props: {
|
||||
},
|
||||
setup(props) {
|
||||
|
||||
const userStore = useUserStore()
|
||||
const $router = useRouter()
|
||||
const globalStore = useGlobalStore()
|
||||
const { t } = useI18n();
|
||||
|
||||
return {
|
||||
userStore,
|
||||
tools,
|
||||
}
|
||||
},
|
||||
})
|
||||
14
src/components/CUserNonVerif/CUserNonVerif.vue
Executable file
14
src/components/CUserNonVerif/CUserNonVerif.vue
Executable file
@@ -0,0 +1,14 @@
|
||||
<template>
|
||||
<div class="q-ma-md">
|
||||
<CTitleBanner title="Verifica">
|
||||
La verifica è in corso. Ti arriverà un messaggio dal Bot quando sarai abilitato.
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CUserNonVerif.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './CUserNonVerif.scss';
|
||||
</style>
|
||||
1
src/components/CUserNonVerif/index.ts
Executable file
1
src/components/CUserNonVerif/index.ts
Executable file
@@ -0,0 +1 @@
|
||||
export {default as CUserNonVerif} from './CUserNonVerif.vue'
|
||||
@@ -80,6 +80,7 @@ export default defineComponent({
|
||||
getNumMsg,
|
||||
getNumMsgUnread,
|
||||
getMsgText,
|
||||
isVerified,
|
||||
paotest } = MixinUsers();
|
||||
|
||||
function isonline() {
|
||||
@@ -382,10 +383,6 @@ export default defineComponent({
|
||||
return userStore.isLogged
|
||||
}
|
||||
|
||||
function isEmailVerified() {
|
||||
return userStore.my.verified_email
|
||||
}
|
||||
|
||||
function clickregister() {
|
||||
rightDrawerOpen.value = false
|
||||
|
||||
@@ -445,7 +442,6 @@ export default defineComponent({
|
||||
lang,
|
||||
langshort,
|
||||
isLogged,
|
||||
isEmailVerified,
|
||||
getnumOrdersCart,
|
||||
t,
|
||||
isonline,
|
||||
@@ -485,6 +481,7 @@ export default defineComponent({
|
||||
paotest,
|
||||
logoutHandler,
|
||||
isUserNotAuth,
|
||||
isVerified,
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@@ -129,11 +129,18 @@
|
||||
<q-img :src="getMyImgforIcon()" :alt="Username()" img-class=""/>
|
||||
</q-avatar>-->
|
||||
|
||||
<q-avatar v-if="static_data.functionality.SHOW_USER_MENU && isLogged()"
|
||||
|
||||
<q-avatar v-if="static_data.functionality.SHOW_USER_MENU && 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" />
|
||||
<q-img ratio="1" fit="conver" :src="getMyImg()" :alt="Username()" img-class="imgprofile_small" stretch="false"
|
||||
placeholder-src="https://placeimg.com/36/36/nature"/>
|
||||
</q-avatar>
|
||||
<q-btn
|
||||
v-else
|
||||
class="q-mx-xs iconprofile_small" round dense flat
|
||||
@click="rightDrawerOpen = !rightDrawerOpen" :icon="getMyImgforIcon()" :color="getcolormenu()">
|
||||
</q-btn>
|
||||
|
||||
<!--<q-btn
|
||||
class="q-mx-xs iconprofile_small" v-if="static_data.functionality.SHOW_USER_MENU && isLogged()" round dense flat
|
||||
@@ -188,7 +195,7 @@
|
||||
dense flat round icon="close" @click="rightDrawerOpen = !rightDrawerOpen">
|
||||
</q-btn>
|
||||
|
||||
<div v-if="isLogged()" class="text-weight-bold text-user">{{ Username() }} - {{ myName() }}
|
||||
<div v-if="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>
|
||||
@@ -203,7 +210,7 @@
|
||||
{{ t('user.loggati') }}
|
||||
</div>
|
||||
|
||||
<div v-if="isLogged() && !isEmailVerified()" class="text-verified">{{
|
||||
<div v-if="isLogged() && !isVerified()" class="text-verified">{{
|
||||
t('components.authentication.email_verification.verify_email')
|
||||
}}
|
||||
</div>
|
||||
|
||||
@@ -280,6 +280,14 @@ $heightBtn: 100%;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.my-card-withshadow {
|
||||
width: 100%;
|
||||
max-width: 300px;
|
||||
min-width: 300px;
|
||||
padding: 1rem 1rem;
|
||||
|
||||
}
|
||||
|
||||
.myimgtitle {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
@@ -936,3 +944,7 @@ $heightBtn: 100%;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.no-padding{
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ const msg_website = {
|
||||
descr: '<ul class="mylist" style="padding-left: 20px;">'
|
||||
+ '<li><strong>Condividendolo</strong> a tutti coloro che vogliono far parte insieme della crescita e sviluppo di una Nuova Era</li>'
|
||||
+ '<li>Rispondendo ai <strong>Sondaggi Popolari</strong> e lasciando <strong>Feedback</strong></li>'
|
||||
+ '<li>Tramite una piccola <strong>donazione</strong> per le spese dei Server<br>'
|
||||
+ '<li>Tramite una <strong>donazione</strong> (<strong>anche 1€</strong> ) per le spese.<br>'
|
||||
+ '</ul>'
|
||||
+ 'Vedo un <strong>futuro</strong> dove non si utilizzerà più denaro. Dove le persone si <strong>aiuteranno</strong> a vicenda e non avranno bisogno di "possedere" cose, ma le <strong>condivideranno</strong> con gli altri.<br>',
|
||||
},
|
||||
|
||||
@@ -27,6 +27,10 @@ const msg_website_es = {
|
||||
nave: 'Nave',
|
||||
testimonial: 'Opiniones',
|
||||
Test: 'Test',
|
||||
chisiamo: 'Chi Siamo',
|
||||
linkamici: 'Link Amici',
|
||||
dovesiamo: 'Dove Siamo',
|
||||
calendarioeventi: 'Calendario Eventi',
|
||||
Category: 'Categorie',
|
||||
Admin: 'Admin',
|
||||
Test1: 'Test1',
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
const msg_website_it = {
|
||||
ws: {
|
||||
sitename: 'FreePlanet',
|
||||
siteshortname: 'FreePlanet',
|
||||
botname: 'il Bot di FreePlanet',
|
||||
sitename: 'PopoloDelNuovoMondo',
|
||||
siteshortname: 'PDNM',
|
||||
botname: 'il Bot di PdNM',
|
||||
},
|
||||
products: {
|
||||
quantity: 'Quantità',
|
||||
@@ -208,7 +208,7 @@ const msg_website_it = {
|
||||
descr: '<ul class="mylist" style="padding-left: 20px;">'
|
||||
+ '<li><strong>Condividendolo</strong> a tutti coloro che vogliono far parte insieme della crescita e sviluppo di una Nuova Era</li>'
|
||||
+ '<li>Rispondendo ai <strong>Sondaggi Popolari</strong> e lasciando <strong>Feedback</strong></li>'
|
||||
+ '<li>Tramite una piccola <strong>donazione</strong> per le spese dei Server.<br>'
|
||||
+ '<li>Tramite una <strong>donazione</strong> (<strong>anche 1€</strong> ) per le spese.<br>'
|
||||
+ '</ul>'
|
||||
+ 'Vedo un <strong>futuro</strong> dove non si utilizzerà più denaro. Dove le persone si <strong>aiuteranno</strong> a vicenda e non avranno bisogno di "possedere" cose, ma le <strong>condivideranno</strong> con gli altri.<br>',
|
||||
},
|
||||
|
||||
@@ -20,7 +20,7 @@ const functionality: IFunctionality = {
|
||||
BOOKING_EVENTS: true,
|
||||
ENABLE_ECOMMERCE: false,
|
||||
ENABLE_REG_ISP: true,
|
||||
SHOW_NAMESURNAME: false,
|
||||
ENABLE_GROUPS: false,
|
||||
}
|
||||
|
||||
// const SHOW_PROJINTHEMENU = false
|
||||
@@ -374,12 +374,12 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/',
|
||||
materialIcon: 'home',
|
||||
name: 'pages.home',
|
||||
component: () => import('@src/root/home_freeplanet/home_freeplanet.vue'),
|
||||
component: () => import('@src/root/home_pdnm/home_pdnm.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
/*{
|
||||
active: true,
|
||||
order: 100,
|
||||
path: '/presentazione',
|
||||
@@ -389,7 +389,7 @@ const baseroutes: IListRoutes[] = [
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
},*/
|
||||
{
|
||||
active: true,
|
||||
order: 120,
|
||||
@@ -424,7 +424,7 @@ const baseroutes: IListRoutes[] = [
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
active: functionality.ENABLE_GROUPS,
|
||||
order: 132,
|
||||
path: '/groups',
|
||||
materialIcon: 'fas fa-users',
|
||||
@@ -447,7 +447,7 @@ const baseroutes: IListRoutes[] = [
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 135,
|
||||
order: 136,
|
||||
path: '/grp/:groupname',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'proj.group2',
|
||||
@@ -628,8 +628,8 @@ const baseroutes: IListRoutes[] = [
|
||||
|
||||
const arrLangUsed = [
|
||||
'it',
|
||||
// 'enUs',
|
||||
// 'es',
|
||||
'enUs',
|
||||
'es',
|
||||
]
|
||||
|
||||
const lang_available: ILang[] = [
|
||||
|
||||
@@ -113,7 +113,7 @@ export default function () {
|
||||
|
||||
function Verificato() {
|
||||
const userStore = useUserStore()
|
||||
return userStore.my.verified_email && userStore.my.verified_by_aportador
|
||||
return isVerified() && userStore.my.verified_by_aportador
|
||||
}
|
||||
|
||||
function paotest() {
|
||||
@@ -155,6 +155,20 @@ 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,
|
||||
@@ -175,6 +189,9 @@ export default function () {
|
||||
getNumMsg,
|
||||
getNumMsgUnread,
|
||||
getMsgText,
|
||||
isEmailVerified,
|
||||
TelegVerificato,
|
||||
isVerified,
|
||||
paotest,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -257,6 +257,7 @@ export interface IGlobalState {
|
||||
URL_RITORNA: string
|
||||
URL_RESTORE: string
|
||||
levels: ILevel[],
|
||||
adtypes: IAdType[],
|
||||
skills: ISkill[],
|
||||
subSkills: ISubSkill[],
|
||||
statusSkills: IStatusSkill[],
|
||||
@@ -660,6 +661,11 @@ export interface ILevel {
|
||||
years_of_exp: number
|
||||
}
|
||||
|
||||
export interface IAdType {
|
||||
_id: number
|
||||
descr: string
|
||||
}
|
||||
|
||||
export interface ICity {
|
||||
_id: number
|
||||
istat: string
|
||||
@@ -677,8 +683,9 @@ export interface IMySkill {
|
||||
idCity: number[]
|
||||
photos: IGallery[]
|
||||
NumLevel: number
|
||||
adType: number
|
||||
note: string
|
||||
subTitle: string
|
||||
descr: string
|
||||
date_created?: Date,
|
||||
date_updated?: Date,
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import { CSkill } from '@/components/CSkill'
|
||||
import { CFinder } from '@/components/CFinder'
|
||||
import { CDashboard } from '@/components/CDashboard'
|
||||
import { CChartMap } from '@src/components/CChartMap'
|
||||
import { CUserNonVerif } from '@/components/CUserNonVerif'
|
||||
import { CMapsEsempio } from '@src/components/CMapsEsempio'
|
||||
import { CVerifyEmail } from '@src/components/CVerifyEmail'
|
||||
import { CVerifyTelegram } from '@src/components/CVerifyTelegram'
|
||||
@@ -14,28 +15,22 @@ import { useGlobalStore } from '@store/globalStore'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { static_data } from '@/db/static_data'
|
||||
import MixinBase from '@/mixins/mixin-base'
|
||||
import MixinUsers from '@/mixins/mixin-users'
|
||||
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Home',
|
||||
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard },
|
||||
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif },
|
||||
setup() {
|
||||
const globalStore = useGlobalStore()
|
||||
const userStore = useUserStore()
|
||||
const { getValDb } = MixinBase()
|
||||
|
||||
function isEmailVerified() {
|
||||
return userStore.my.verified_email
|
||||
}
|
||||
const { isEmailVerified, TelegVerificato } = MixinUsers()
|
||||
|
||||
function TelegCode() {
|
||||
return userStore.my.profile.teleg_checkcode
|
||||
}
|
||||
|
||||
function TelegVerificato(): boolean {
|
||||
return userStore.my.profile ? userStore.my.profile.teleg_id! > 0 : false
|
||||
}
|
||||
|
||||
function openrighttoolbar() {
|
||||
globalStore.rightDrawerOpen = true
|
||||
}
|
||||
|
||||
@@ -13,14 +13,14 @@
|
||||
|
||||
|
||||
<div v-if="isLogged()">
|
||||
<CVerifyEmail v-if="!isEmailVerified()">
|
||||
|
||||
</CVerifyEmail>
|
||||
|
||||
<CVerifyTelegram v-if="TelegCode() || !TelegVerificato()">
|
||||
|
||||
</CVerifyTelegram>
|
||||
|
||||
<CVerifyEmail v-if="!isEmailVerified()">
|
||||
|
||||
</CVerifyEmail>
|
||||
|
||||
<div v-if="isUserOk()">
|
||||
|
||||
<CFinder>
|
||||
@@ -30,6 +30,9 @@
|
||||
<CDashboard></CDashboard>
|
||||
|
||||
</div>
|
||||
<div v-else>
|
||||
<CUserNonVerif></CUserNonVerif>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else>
|
||||
|
||||
@@ -7,6 +7,7 @@ import { CSkill } from '@/components/CSkill'
|
||||
import { CFinder } from '@/components/CFinder'
|
||||
import { CChartMap } from '@src/components/CChartMap'
|
||||
import { CDashboard } from '@/components/CDashboard'
|
||||
import { CUserNonVerif } from '@/components/CUserNonVerif'
|
||||
import { CMapsEsempio } from '@src/components/CMapsEsempio'
|
||||
import { CVerifyEmail } from '@src/components/CVerifyEmail'
|
||||
import { CVerifyTelegram } from '@src/components/CVerifyTelegram'
|
||||
@@ -14,19 +15,17 @@ import { useGlobalStore } from '@store/globalStore'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { static_data } from '@/db/static_data'
|
||||
import MixinBase from '@/mixins/mixin-base'
|
||||
import MixinUsers from '@/mixins/mixin-users'
|
||||
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Home',
|
||||
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard },
|
||||
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif },
|
||||
setup() {
|
||||
const globalStore = useGlobalStore()
|
||||
const userStore = useUserStore()
|
||||
const { getValDb } = MixinBase()
|
||||
|
||||
function isEmailVerified() {
|
||||
return userStore.my.verified_email
|
||||
}
|
||||
const { isEmailVerified } = MixinUsers()
|
||||
|
||||
function TelegCode() {
|
||||
return userStore.my.profile.teleg_checkcode
|
||||
|
||||
@@ -13,14 +13,14 @@
|
||||
|
||||
|
||||
<div v-if="isLogged()">
|
||||
<CVerifyEmail v-if="!isEmailVerified()">
|
||||
|
||||
</CVerifyEmail>
|
||||
|
||||
<CVerifyTelegram v-if="TelegCode() || !TelegVerificato()">
|
||||
|
||||
</CVerifyTelegram>
|
||||
|
||||
<CVerifyEmail v-if="!isEmailVerified() && !TelegVerificato()">
|
||||
|
||||
</CVerifyEmail>
|
||||
|
||||
<div v-if="isUserOk()">
|
||||
<div v-if="isUserOk()">
|
||||
|
||||
@@ -32,6 +32,9 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
<CUserNonVerif></CUserNonVerif>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else>
|
||||
|
||||
@@ -7,6 +7,7 @@ import { CSkill } from '@/components/CSkill'
|
||||
import { CFinder } from '@/components/CFinder'
|
||||
import { CChartMap } from '@src/components/CChartMap'
|
||||
import { CDashboard } from '@/components/CDashboard'
|
||||
import { CUserNonVerif } from '@/components/CUserNonVerif'
|
||||
import { CMapsEsempio } from '@src/components/CMapsEsempio'
|
||||
import { CVerifyEmail } from '@src/components/CVerifyEmail'
|
||||
import { CVerifyTelegram } from '@src/components/CVerifyTelegram'
|
||||
@@ -14,28 +15,23 @@ import { useGlobalStore } from '@store/globalStore'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { static_data } from '@/db/static_data'
|
||||
import MixinBase from '@/mixins/mixin-base'
|
||||
import MixinUsers from '@/mixins/mixin-users'
|
||||
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Home',
|
||||
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard },
|
||||
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif },
|
||||
setup() {
|
||||
const globalStore = useGlobalStore()
|
||||
const userStore = useUserStore()
|
||||
const { getValDb } = MixinBase()
|
||||
const { isEmailVerified, TelegVerificato } = MixinUsers()
|
||||
|
||||
function isEmailVerified() {
|
||||
return userStore.my.verified_email
|
||||
}
|
||||
|
||||
function TelegCode() {
|
||||
return userStore.my.profile.teleg_checkcode
|
||||
}
|
||||
|
||||
function TelegVerificato(): boolean {
|
||||
return userStore.my.profile ? userStore.my.profile.teleg_id! > 0 : false
|
||||
}
|
||||
|
||||
function openrighttoolbar() {
|
||||
globalStore.rightDrawerOpen = true
|
||||
}
|
||||
|
||||
@@ -12,14 +12,12 @@
|
||||
<!--<CMapsEsempio></CMapsEsempio>-->
|
||||
|
||||
<div v-if="isLogged()">
|
||||
<CVerifyEmail v-if="!isEmailVerified()">
|
||||
|
||||
</CVerifyEmail>
|
||||
|
||||
<CVerifyTelegram v-if="TelegCode() || !TelegVerificato()">
|
||||
|
||||
</CVerifyTelegram>
|
||||
<CVerifyEmail v-if="!isEmailVerified() && !TelegVerificato()">
|
||||
|
||||
</CVerifyEmail>
|
||||
|
||||
|
||||
<div v-if="isUserOk()">
|
||||
@@ -39,6 +37,9 @@
|
||||
</template>
|
||||
</q-banner>
|
||||
</div>
|
||||
<div v-else>
|
||||
<CUserNonVerif></CUserNonVerif>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else>
|
||||
|
||||
@@ -31,7 +31,7 @@ const msg_it = {
|
||||
otherpages: {
|
||||
product: 'Prodotto',
|
||||
sito_offline: 'Sito in Aggiornamento',
|
||||
modifprof: 'Modifica Profilo',
|
||||
modifprof: 'Modifica',
|
||||
modifgrp: 'Modifica Gruppo',
|
||||
biografia: 'Biografia',
|
||||
qualifica: 'Qualifica (in breve)',
|
||||
|
||||
@@ -316,6 +316,11 @@ export const colTableStorehouse = [
|
||||
AddCol(DuplicateRec),
|
||||
]
|
||||
|
||||
export const colAdType = [
|
||||
AddCol({ name: '_id', label_trans: 'index', fieldtype: costanti.FieldType.number }),
|
||||
AddCol({ name: 'descr', label_trans: 'store.description' }),
|
||||
]
|
||||
|
||||
export const colSectors = [
|
||||
AddCol({ name: '_id', label_trans: 'index', fieldtype: costanti.FieldType.number }),
|
||||
AddCol({ name: 'descr', label_trans: 'store.description' }),
|
||||
@@ -502,7 +507,7 @@ export const colmyUserGroup = [
|
||||
noshowlabel: true,
|
||||
icon: 'fas fa-map-marker-alt',
|
||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView,
|
||||
remote_table: 'comune',
|
||||
remote_table: 'mycities',
|
||||
remote_key: '_id',
|
||||
remote_field: 'comune',
|
||||
}),
|
||||
@@ -523,8 +528,18 @@ export const colmySkills = [
|
||||
}), */
|
||||
//AddCol({ name: 'name', label_trans: 'reg.name', fieldtype: costanti.FieldType.string }),
|
||||
//AddCol({ name: 'surname', label_trans: 'reg.surname', fieldtype: costanti.FieldType.string }),
|
||||
AddCol({ name: 'subTitle', label_trans: 'event.title', fieldtype: costanti.FieldType.string,
|
||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit , maxlength: 70, noshowlabel: true }),
|
||||
// AddCol({ name: 'subTitle', label_trans: 'event.title', fieldtype: costanti.FieldType.string,
|
||||
// showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit , maxlength: 70, noshowlabel: true }),
|
||||
AddCol({
|
||||
name: 'adTypes',
|
||||
label_trans: 'adTypes.name',
|
||||
fieldtype: costanti.FieldType.select,
|
||||
required: true,
|
||||
jointable: 'adtypes',
|
||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
|
||||
noshowlabel: true,
|
||||
icon: 'grading',
|
||||
}),
|
||||
AddCol({ name: 'descr', label_trans: 'proj.shortdescr', fieldtype: costanti.FieldType.string,
|
||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist, noshowlabel: true, maxlength: 200 }),
|
||||
AddCol({
|
||||
@@ -569,7 +584,7 @@ export const colmySkills = [
|
||||
filter_field: 'idSkill',
|
||||
noshowlabel: true,
|
||||
icon: 'far fa-id-card',
|
||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView,
|
||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
|
||||
allowNewValue: true,
|
||||
}),
|
||||
AddCol({
|
||||
@@ -609,7 +624,10 @@ export const colmySkills = [
|
||||
tablesel: 'cities',
|
||||
noshowlabel: true,
|
||||
icon: 'fas fa-map-marker-alt',
|
||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView,
|
||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
|
||||
remote_table: 'mycities',
|
||||
remote_key: '_id',
|
||||
remote_field: 'comune',
|
||||
}),
|
||||
AddCol({ name: 'username', label_trans: 'reg.username', foredit: false, tipovisu: costanti.TipoVisu.LINK, link: '/my/username', noshowlabel: true }),
|
||||
AddCol({ name: 'note', label_trans: 'proj.longdescr', fieldtype: costanti.FieldType.html,
|
||||
@@ -1984,6 +2002,13 @@ export const fieldsTable = {
|
||||
colkey: '_id',
|
||||
collabel: 'descr',
|
||||
},
|
||||
{
|
||||
value: 'adtypes',
|
||||
label: 'Tipo Annuncio',
|
||||
columns: colAdType,
|
||||
colkey: '_id',
|
||||
collabel: 'descr',
|
||||
},
|
||||
{
|
||||
value: 'cities',
|
||||
label: 'Comune',
|
||||
|
||||
@@ -3124,7 +3124,7 @@ export const tools = {
|
||||
const msg2 = t('fetch.errore_generico') + userStore.getMsgError(riscode)
|
||||
this.showNotif(mythisq, msg2)
|
||||
} else if (riscode === this.OK) {
|
||||
$router.push('/regok')
|
||||
$router.push('/')
|
||||
this.showNotif(mythisq, t('components.authentication.email_verification.link_sent', { botname: t('ws.botname') }), {
|
||||
color: 'green',
|
||||
textColor: 'black',
|
||||
@@ -4856,6 +4856,27 @@ export const tools = {
|
||||
} else {
|
||||
return value[keyfunz]
|
||||
}
|
||||
},
|
||||
|
||||
getValueByRemoteField(col: IColGridTable, row: any, value: any, col_tabfooter: string) {
|
||||
if (col) {
|
||||
if (col.remote_table && col.remote_key && col.remote_field && col_tabfooter) {
|
||||
|
||||
const myarrremote = row[col.remote_table]
|
||||
|
||||
let myarr: any = []
|
||||
|
||||
for (const myrec of myarrremote) {
|
||||
let myval = myrec[col.remote_field]
|
||||
myarr.push(myval)
|
||||
}
|
||||
|
||||
return myarr ? myarr.join(' - ') : ''
|
||||
|
||||
}
|
||||
}
|
||||
return ''
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -221,7 +221,12 @@ export const useUserStore = defineStore('UserStore', {
|
||||
return ''
|
||||
},
|
||||
|
||||
getImgByProfile(userparam: IUserFields): string {
|
||||
getImgUserByUsername(username: string): string {
|
||||
let img = this.getImgByUsername(username)
|
||||
return img ? img : 'images/noimg-user.svg'
|
||||
},
|
||||
|
||||
getImgByProfile(userparam: IUserFields, reale: any = false): string {
|
||||
|
||||
try {
|
||||
if (userparam.profile && userparam.profile.img) {
|
||||
@@ -229,7 +234,10 @@ export const useUserStore = defineStore('UserStore', {
|
||||
}
|
||||
} catch (e) {
|
||||
}
|
||||
if (!reale)
|
||||
return 'images/noimg.png'
|
||||
else
|
||||
return ''
|
||||
},
|
||||
|
||||
getImgByGroup(group: IMyGroup): string {
|
||||
|
||||
@@ -117,6 +117,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
URL_RITORNA: '',
|
||||
URL_RESTORE: '',
|
||||
levels: [],
|
||||
adtypes: [],
|
||||
skills: [],
|
||||
subSkills: [],
|
||||
statusSkills: [],
|
||||
@@ -232,6 +233,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
return state.settings
|
||||
else if (table === 'levels')
|
||||
return state.levels
|
||||
else if (table === 'adtypes')
|
||||
return state.adtypes
|
||||
else if (table === 'skills')
|
||||
return state.skills
|
||||
else if (table === 'subskills')
|
||||
@@ -1227,6 +1230,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
this.sectors = (res.data.sectors) ? [...res.data.sectors] : []
|
||||
this.cities = (res.data.cities) ? [...res.data.cities] : []
|
||||
this.catgrps = (res.data.catgrps) ? [...res.data.catgrps] : []
|
||||
this.adtypes = (res.data.adtypes) ? [...res.data.adtypes] : []
|
||||
|
||||
// console.log('res.data.cart', res.data.cart)
|
||||
|
||||
|
||||
@@ -220,6 +220,40 @@
|
||||
<br>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<q-btn
|
||||
label="Populate Tables" color="negative"
|
||||
@click="EseguiFunz('PopulateTables')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<q-btn
|
||||
label="Rewrite Cities Table" color="negative"
|
||||
@click="EseguiFunz('RewriteCitiesTable')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<q-btn
|
||||
label="Rewrite Levels Table" color="negative"
|
||||
@click="EseguiFunz('RewriteLevelsTable')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<q-btn
|
||||
label="Rewrite Provinces Table" color="negative"
|
||||
@click="EseguiFunz('RewriteProvincesTable')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-btn
|
||||
label="Rewrite ContribType" color="negative"
|
||||
@click="EseguiFunz('RewriteContribType')"></q-btn>
|
||||
<br>
|
||||
</div>
|
||||
|
||||
|
||||
<q-field
|
||||
stack-label
|
||||
|
||||
@@ -2,6 +2,7 @@ import { defineComponent } from 'vue'
|
||||
|
||||
import { Footer } from '@/components/Footer'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import MixinUsers from '@/mixins/mixin-users'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Regok',
|
||||
@@ -9,13 +10,7 @@ export default defineComponent({
|
||||
props: {},
|
||||
setup() {
|
||||
const userStore = useUserStore()
|
||||
|
||||
function isEmailVerified() {
|
||||
if (userStore.my)
|
||||
return userStore.my.verified_email
|
||||
else
|
||||
return false
|
||||
}
|
||||
const { isEmailVerified } = MixinUsers()
|
||||
|
||||
return {
|
||||
isEmailVerified,
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
|
||||
|
||||
<CTitleBanner
|
||||
class="q-pa-xs" title="Competenze e Talenti" bgcolor="bg-primary" clcolor="text-white"
|
||||
class="q-pa-xs" title="Competenze Personali (Offerte)" bgcolor="bg-primary" clcolor="text-white"
|
||||
myclass="myshad" :canopen="true">
|
||||
|
||||
<CSkill
|
||||
|
||||
@@ -89,6 +89,10 @@ export default defineComponent({
|
||||
return site
|
||||
}
|
||||
|
||||
function isMyRecord(username: string){
|
||||
return username === userStore.my.username
|
||||
}
|
||||
|
||||
onMounted(mounted)
|
||||
|
||||
return {
|
||||
@@ -109,6 +113,7 @@ export default defineComponent({
|
||||
t,
|
||||
static_data,
|
||||
animation,
|
||||
isMyRecord,
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,41 +1,13 @@
|
||||
<template>
|
||||
<div class="row q-col-gutter-sm q-ma-xs">
|
||||
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
|
||||
<q-card v-if="myuser.date_reg" class="my-card" flat bordered>
|
||||
<q-card-section>
|
||||
<div class="text-overline" v-if="myuser.profile.qualifica"><em><span
|
||||
class="qualifica">{{ myuser.profile.qualifica }}</span></em></div>
|
||||
<div class="text-overline"><span
|
||||
v-if="myuser.profile && myuser.profile.born_city">{{ myuser.profile.born_city }}</span>
|
||||
<span
|
||||
v-if="myuser.profile && myuser.profile.nationality && myuser.profile.nationality !== 'Italia'">({{
|
||||
myuser.profile.nationality
|
||||
}})</span>
|
||||
</div>
|
||||
</q-card-section>
|
||||
<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">
|
||||
|
||||
<q-card-section horizontal>
|
||||
<q-card-section class="q-pt-xs">
|
||||
<div class="text-h5 q-mt-sm q-mb-xs">{{ myuser.username }}</div>
|
||||
<div class="text-caption text-blue-grey-10">
|
||||
{{ myuser.profile.biografia }}
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
||||
<q-card-section class="col-5 flex flex-center">
|
||||
<q-avatar size="140px" class="rounded-borders">
|
||||
<div class="">
|
||||
<q-avatar size="140px">
|
||||
<q-img :src="getImgUser()" :alt="username" img-class="imgprofile" height="140px" @click="showPic = true"/>
|
||||
</q-avatar>
|
||||
</q-card-section>
|
||||
</q-card-section>
|
||||
|
||||
<q-separator/>
|
||||
|
||||
</q-card>
|
||||
</div>
|
||||
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
|
||||
<q-card>
|
||||
<q-card-section>
|
||||
|
||||
<div v-if="static_data.functionality.SHOW_NAMESURNAME">
|
||||
<div class="text-h6">
|
||||
<span v-if="checkifShow('name')"> {{ myuser.name }}</span> <span v-if="checkifShow('surname')">{{
|
||||
@@ -43,22 +15,25 @@
|
||||
}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 text-h7 text-blue text-shadow-2">
|
||||
{{ myuser.username }}
|
||||
</div>
|
||||
<div class="col-12 text-h7">
|
||||
<span v-if="myuser.profile && myuser.profile.born_city">{{ myuser.profile.born_city }}</span> <span
|
||||
v-if="myuser.profile && myuser.profile.nationality && myuser.profile.nationality !== 'Italia'">({{
|
||||
myuser.profile.nationality
|
||||
}})</span>
|
||||
</div>
|
||||
<div v-if="myuser._id" class="col-12 text-h8 q-mt-sm">
|
||||
<span v-if="myuser.profile.qualifica">
|
||||
<em><span class="qualifica">{{ myuser.profile.qualifica }}</span></em>
|
||||
</span>
|
||||
</div>
|
||||
<div v-if="myuser._id" class="col-12 text-h8 q-mt-sm">
|
||||
{{ myuser.profile.biografia }}
|
||||
</div>
|
||||
|
||||
<div class="col-6 text-h6">
|
||||
<CTitleBanner
|
||||
class="" title="Info" bgcolor="bg-primary" clcolor="text-white"
|
||||
myclass="myshad" :canopen="true">
|
||||
|
||||
<CDateTime
|
||||
v-if="checkifShow('profile.dateofbirth') && !!myuser.profile.dateofbirth"
|
||||
v-model:value="myuser.profile.dateofbirth"
|
||||
:label="$t('reg.dateofbirth')"
|
||||
:canEdit="false">
|
||||
</CDateTime>
|
||||
|
||||
<q-card-section class="col-md-6 col-sm-6 q-ma-xs col-xs-12 flex flex-center">
|
||||
<div>
|
||||
<div v-if="myuser.username !== userStore.my.username">
|
||||
<div v-if="!isMyRecord(myuser.username)">
|
||||
<q-btn
|
||||
v-if="!userStore.IsMyFriendByUsername(myuser.username) && !userStore.IsAskedFriendByUsername(myuser.username)"
|
||||
icon="fas fa-user-plus"
|
||||
@@ -74,6 +49,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<q-btn
|
||||
v-if="myuser.username === myusername()" icon="fas fa-pencil-alt"
|
||||
color="blue"
|
||||
@@ -81,9 +57,9 @@
|
||||
:label="$t('otherpages.modifprof')"
|
||||
to="/editprofile">
|
||||
</q-btn>
|
||||
</div>
|
||||
|
||||
<div v-if="myuser._id" class="myrow justify-evenly items-center q-pa-xs q-ma-xs">
|
||||
<div v-if="myuser._id" class="myrow justify-evenly items-center q-pa-sm q-ma-sm">
|
||||
|
||||
<div class="col-md-6 col-sm-6 q-ma-xs col-xs-12">
|
||||
<q-btn
|
||||
v-if="getLinkUserTelegram()" icon="fab fa-telegram"
|
||||
@@ -106,20 +82,6 @@
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
||||
</CTitleBanner>
|
||||
|
||||
</div>
|
||||
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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">
|
||||
|
||||
</div>
|
||||
<div v-else class="fit column no-wrap justify-evenly items-center content-start">
|
||||
<q-skeleton type="QAvatar" size="140px" height="140px" animation="fade"/>
|
||||
@@ -149,7 +111,7 @@
|
||||
|
||||
<CSkill
|
||||
:filtercustom="filtroutente"
|
||||
:butt_modif_new="false"
|
||||
:butt_modif_new="isMyRecord(myuser.username)"
|
||||
|
||||
>
|
||||
|
||||
@@ -158,6 +120,28 @@
|
||||
|
||||
</CTitleBanner>
|
||||
|
||||
<div v-if="myuser._id">
|
||||
<CTitleBanner
|
||||
class="" :title="$t('dashboard.info')" bgcolor="bg-primary" clcolor="text-white"
|
||||
myclass="myshad" :canopen="true">
|
||||
|
||||
<div v-if="myuser.profile" class="fit column no-wrap justify-evenly content-start">
|
||||
|
||||
<div class="col-6 text-h6">
|
||||
<CDateTime
|
||||
v-if="checkifShow('profile.dateofbirth') && !!myuser.profile.dateofbirth"
|
||||
v-model:value="myuser.profile.dateofbirth"
|
||||
:label="$t('reg.dateofbirth')"
|
||||
:canEdit="false">
|
||||
</CDateTime>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<q-dialog
|
||||
|
||||
Reference in New Issue
Block a user