Settore se compariva "Tutti", veniva selezionato erroneamente di default -100
Risolto caricamento immagini Cliccando sull'immagine del profilo, nella Card, non si apre il Profilo Aggiunto "Estero" e "On Line" sul campo Comune. Orientamento dell'Immagine. viene storta una volta ridimensionata. Al momento della registrazione, dal BOT, in automatico viene presa l'immagine di Telegram e salvata sul proprio profilo della APP.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.2.16"
|
APP_VERSION="0.2.18"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="13"
|
APP_ID="13"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.2.16"
|
APP_VERSION="0.2.18"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="1"
|
APP_ID="1"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
|
|||||||
@@ -503,10 +503,10 @@ const baseroutes: IListRoutes[] = [
|
|||||||
{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 130,
|
order: 130,
|
||||||
path: '/mywork/:idSkill',
|
path: '/myservice/:idSkill',
|
||||||
materialIcon: '',
|
materialIcon: '',
|
||||||
name: 'pages.mywork2',
|
name: 'pages.myservice2',
|
||||||
component: () => import('@/views/user/mywork/mywork.vue'),
|
component: () => import('@/views/user/myservice/myservice.vue'),
|
||||||
meta: { requiresAuth: true },
|
meta: { requiresAuth: true },
|
||||||
inmenu: false,
|
inmenu: false,
|
||||||
infooter: false,
|
infooter: false,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.2.16"
|
APP_VERSION="0.2.18"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="13"
|
APP_ID="13"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ const msg_website_it = {
|
|||||||
profile: 'Profilo',
|
profile: 'Profilo',
|
||||||
profile2: 'ProfiloU',
|
profile2: 'ProfiloU',
|
||||||
mypage2: 'mypage2',
|
mypage2: 'mypage2',
|
||||||
mywork2: 'mywork2',
|
myservice2: 'myservice2',
|
||||||
test: 'Test',
|
test: 'Test',
|
||||||
projects: 'Progetti',
|
projects: 'Progetti',
|
||||||
report: 'Report Ore',
|
report: 'Report Ore',
|
||||||
|
|||||||
@@ -503,10 +503,10 @@ const baseroutes: IListRoutes[] = [
|
|||||||
{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 130,
|
order: 130,
|
||||||
path: '/mywork/:idSkill',
|
path: '/myservice/:idSkill',
|
||||||
materialIcon: '',
|
materialIcon: '',
|
||||||
name: 'pages.mywork2',
|
name: 'pages.myservice2',
|
||||||
component: () => import('@/views/user/mywork/mywork.vue'),
|
component: () => import('@/views/user/myservice/myservice.vue'),
|
||||||
meta: { requiresAuth: true },
|
meta: { requiresAuth: true },
|
||||||
inmenu: false,
|
inmenu: false,
|
||||||
infooter: false,
|
infooter: false,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.2.16"
|
APP_VERSION="0.2.18"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="12"
|
APP_ID="12"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
|
|||||||
@@ -439,6 +439,14 @@ export const Province = [
|
|||||||
label: 'Viterbo',
|
label: 'Viterbo',
|
||||||
value: 'VT',
|
value: 'VT',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: 'Estero',
|
||||||
|
value: 'EST',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'On Line',
|
||||||
|
value: 'ONL',
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
export const Comuni = [
|
export const Comuni = [
|
||||||
|
|||||||
@@ -503,10 +503,10 @@ const baseroutes: IListRoutes[] = [
|
|||||||
{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 130,
|
order: 130,
|
||||||
path: '/mywork/:idSkill',
|
path: '/myservice/:idSkill',
|
||||||
materialIcon: '',
|
materialIcon: '',
|
||||||
name: 'pages.mywork2',
|
name: 'pages.myservice2',
|
||||||
component: () => import('@/views/user/mywork/mywork.vue'),
|
component: () => import('@/views/user/myservice/myservice.vue'),
|
||||||
meta: { requiresAuth: true },
|
meta: { requiresAuth: true },
|
||||||
inmenu: false,
|
inmenu: false,
|
||||||
infooter: false,
|
infooter: false,
|
||||||
|
|||||||
@@ -469,12 +469,17 @@ export const shared_consts = {
|
|||||||
reg: 'CAL',
|
reg: 'CAL',
|
||||||
value: 'VV',
|
value: 'VV',
|
||||||
label: 'Vibo Valentia',
|
label: 'Vibo Valentia',
|
||||||
}, { _id: 109, reg: 'VEN', value: 'VI', label: 'Vicenza', }, {
|
},
|
||||||
|
{ _id: 109, reg: 'VEN', value: 'VI', label: 'Vicenza', }, {
|
||||||
_id: 110,
|
_id: 110,
|
||||||
reg: 'LAZ',
|
reg: 'LAZ',
|
||||||
value: 'VT',
|
value: 'VT',
|
||||||
label: 'Viterbo',
|
label: 'Viterbo',
|
||||||
}, { _id: 111, reg: 'RSM', value: 'RSM', label: 'Repubblica di San Marino', }],
|
},
|
||||||
|
{ _id: 111, reg: 'RSM', value: 'RSM', label: 'Repubblica di San Marino', },
|
||||||
|
{ _id: 112, reg: 'EST', value: 'EST', label: 'Estero', },
|
||||||
|
{ _id: 113, reg: 'ONL', value: 'ONL', label: 'On Line', },
|
||||||
|
],
|
||||||
|
|
||||||
Regions: [
|
Regions: [
|
||||||
{
|
{
|
||||||
@@ -561,6 +566,14 @@ export const shared_consts = {
|
|||||||
value: 'VEN',
|
value: 'VEN',
|
||||||
label: 'Veneto',
|
label: 'Veneto',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
value: 'EST',
|
||||||
|
label: 'Estero',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'ONL',
|
||||||
|
label: 'On Line',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
Lang: [
|
Lang: [
|
||||||
|
|||||||
0
src/components/CCheckIfIsLogged/CCheckIfIsLogged.scss
Executable file
0
src/components/CCheckIfIsLogged/CCheckIfIsLogged.scss
Executable file
29
src/components/CCheckIfIsLogged/CCheckIfIsLogged.ts
Executable file
29
src/components/CCheckIfIsLogged/CCheckIfIsLogged.ts
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
import { defineComponent, ref, computed, PropType, toRef } from 'vue'
|
||||||
|
import { useUserStore } from '@store/UserStore'
|
||||||
|
import { useRouter } from 'vue-router'
|
||||||
|
import { useGlobalStore } from '@store/globalStore'
|
||||||
|
import { useI18n } from '@/boot/i18n'
|
||||||
|
import { tools } from '@store/Modules/tools'
|
||||||
|
import { costanti } from '@store/Modules/costanti'
|
||||||
|
import { static_data } from '@src/db/static_data'
|
||||||
|
|
||||||
|
|
||||||
|
export default defineComponent({
|
||||||
|
name: 'CCheckIfIsLogged',
|
||||||
|
components: { },
|
||||||
|
props: {},
|
||||||
|
setup(props, { emit }) {
|
||||||
|
|
||||||
|
const userStore = useUserStore()
|
||||||
|
const $router = useRouter()
|
||||||
|
const globalStore = useGlobalStore()
|
||||||
|
const { t } = useI18n()
|
||||||
|
|
||||||
|
return {
|
||||||
|
userStore,
|
||||||
|
tools,
|
||||||
|
costanti,
|
||||||
|
static_data,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
31
src/components/CCheckIfIsLogged/CCheckIfIsLogged.vue
Executable file
31
src/components/CCheckIfIsLogged/CCheckIfIsLogged.vue
Executable file
@@ -0,0 +1,31 @@
|
|||||||
|
<template>
|
||||||
|
<div v-if="!tools.isLogged()">
|
||||||
|
<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="!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>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" src="./CCheckIfIsLogged.ts">
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import './CCheckIfIsLogged.scss';
|
||||||
|
</style>
|
||||||
1
src/components/CCheckIfIsLogged/index.ts
Executable file
1
src/components/CCheckIfIsLogged/index.ts
Executable file
@@ -0,0 +1 @@
|
|||||||
|
export {default as CCheckIfIsLogged} from './CCheckIfIsLogged.vue'
|
||||||
@@ -343,7 +343,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
function getUrl() {
|
function getUrl() {
|
||||||
const myurl = tools.geturlupload() + getParamDir()
|
const myurl = tools.geturlupload() + getParamDir()
|
||||||
// console.log('myurl', myurl)
|
console.log('myurl', myurl)
|
||||||
return myurl
|
return myurl
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import { CTitleBanner } from '@/components/CTitleBanner'
|
|||||||
import { CProfile } from '@/components/CProfile'
|
import { CProfile } from '@/components/CProfile'
|
||||||
import { CDateTime } from '@/components/CDateTime'
|
import { CDateTime } from '@/components/CDateTime'
|
||||||
import { CMyPage } from '@/components/CMyPage'
|
import { CMyPage } from '@/components/CMyPage'
|
||||||
|
import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged'
|
||||||
import { CMyFieldRec } from '@/components/CMyFieldRec'
|
import { CMyFieldRec } from '@/components/CMyFieldRec'
|
||||||
import { tools } from '@store/Modules/tools'
|
import { tools } from '@store/Modules/tools'
|
||||||
import { useUserStore } from '@store/UserStore'
|
import { useUserStore } from '@store/UserStore'
|
||||||
@@ -19,7 +20,7 @@ import { colCitys, fieldsTable } from '@store/Modules/fieldsTable'
|
|||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'CMyCardGrpPopup',
|
name: 'CMyCardGrpPopup',
|
||||||
components: { CProfile, CTitleBanner, CMyFieldDb, CDateTime, CMyPage, CMyFieldRec },
|
components: { CProfile, CTitleBanner, CMyFieldDb, CDateTime, CMyPage, CMyFieldRec, CCheckIfIsLogged },
|
||||||
props: {
|
props: {
|
||||||
table: {
|
table: {
|
||||||
type: String,
|
type: String,
|
||||||
@@ -54,7 +55,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
function load() {
|
function load() {
|
||||||
// Carica il profilo di quest'utente
|
// Carica il profilo di quest'utente
|
||||||
if (props.idRec > 0) {
|
if (props.idRec && props.idRec > 0) {
|
||||||
userStore.loadGeneric(props.table, props.idRec).then((ris) => {
|
userStore.loadGeneric(props.table, props.idRec).then((ris) => {
|
||||||
myrec.value = ris
|
myrec.value = ris
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<div v-if="!tools.isLogged()">
|
||||||
|
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||||
|
</div>
|
||||||
|
|
||||||
<q-card class="dialog_card q-mb-lg" v-if="myrec">
|
<q-card class="dialog_card q-mb-lg" v-if="myrec">
|
||||||
<q-footer
|
<q-footer
|
||||||
|
|||||||
@@ -627,8 +627,18 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
function getDirectoryGall() {
|
function getDirectoryGall() {
|
||||||
let ris = ''
|
let ris = ''
|
||||||
|
let username = myrow.value.hasOwnProperty('username') ? myrow.value['username'] : ''
|
||||||
|
let userId = myrow.value.hasOwnProperty('userId') ? myrow.value['userId'] : ''
|
||||||
|
|
||||||
|
if (username === '') {
|
||||||
|
if (userId === userStore.my._id)
|
||||||
|
username = userStore.my.username
|
||||||
|
}
|
||||||
|
if (username === '') {
|
||||||
|
username = userStore.my.username
|
||||||
|
}
|
||||||
if (fieldsTable.tableForUsers.includes(props.table)) {
|
if (fieldsTable.tableForUsers.includes(props.table)) {
|
||||||
ris = 'profile/' + myrow.value['username'] + '/' + props.table
|
ris = 'profile/' + username + '/' + props.table
|
||||||
}else if (props.table === 'users') {
|
}else if (props.table === 'users') {
|
||||||
ris = 'profile/' + userStore.my.username
|
ris = 'profile/' + userStore.my.username
|
||||||
}else if (props.table === 'mygroups') {
|
}else if (props.table === 'mygroups') {
|
||||||
@@ -637,6 +647,7 @@ export default defineComponent({
|
|||||||
} else {
|
} else {
|
||||||
ris = props.table
|
ris = props.table
|
||||||
}
|
}
|
||||||
|
console.log('getDirectoryGall', ris)
|
||||||
return ris
|
return ris
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import { toolsext } from '@store/Modules/toolsext'
|
|||||||
import { useQuasar } from 'quasar'
|
import { useQuasar } from 'quasar'
|
||||||
import { useI18n } from '@/boot/i18n'
|
import { useI18n } from '@/boot/i18n'
|
||||||
import { CMyCardPopup } from '@/components/CMyCardPopup'
|
import { CMyCardPopup } from '@/components/CMyCardPopup'
|
||||||
// import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'CMyRecCard',
|
name: 'CMyRecCard',
|
||||||
@@ -32,7 +32,7 @@ export default defineComponent({
|
|||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
// const $q = useQuasar()
|
// const $q = useQuasar()
|
||||||
const { t } = useI18n()
|
const { t } = useI18n()
|
||||||
// const $router = useRouter()
|
const $router = useRouter()
|
||||||
|
|
||||||
const myrec = ref(<any | null>null)
|
const myrec = ref(<any | null>null)
|
||||||
|
|
||||||
@@ -61,9 +61,9 @@ export default defineComponent({
|
|||||||
return userStore.getImgByProfile(profile)
|
return userStore.getImgByProfile(profile)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*function naviga(path: string) {
|
function naviga(path: string) {
|
||||||
$router.push(path)
|
$router.push(path)
|
||||||
}*/
|
}
|
||||||
|
|
||||||
function setCmd($q: any, cmd: number, myusername: string, value: any, groupname: string) {
|
function setCmd($q: any, cmd: number, myusername: string, value: any, groupname: string) {
|
||||||
emit('setCmd', $q, cmd, myusername, value, groupname)
|
emit('setCmd', $q, cmd, myusername, value, groupname)
|
||||||
@@ -80,7 +80,7 @@ export default defineComponent({
|
|||||||
myrec,
|
myrec,
|
||||||
costanti,
|
costanti,
|
||||||
getImgUser,
|
getImgUser,
|
||||||
// naviga,
|
naviga,
|
||||||
setCmd,
|
setCmd,
|
||||||
shared_consts,
|
shared_consts,
|
||||||
userStore,
|
userStore,
|
||||||
|
|||||||
@@ -3,14 +3,21 @@
|
|||||||
|
|
||||||
<q-item v-if="myrec" clickable v-ripple class="shadow-2 q-btn--rounded bg-teal-1">
|
<q-item v-if="myrec" clickable v-ripple class="shadow-2 q-btn--rounded bg-teal-1">
|
||||||
|
|
||||||
|
|
||||||
<q-item-section v-if="(shared_consts.TABLES_VISU_IMG.includes(table)) && (myrec.photos.length > 0)" avatar
|
<q-item-section v-if="(shared_consts.TABLES_VISU_IMG.includes(table)) && (myrec.photos.length > 0)" avatar
|
||||||
@click="cmdExt(costanti.CMD_SHOW_PAGE, myrec)">
|
@click="cmdExt(costanti.CMD_SHOW_PAGE, myrec)">
|
||||||
|
<q-badge v-if="showBadge" class="q-my-xs self-center" :color="fieldsTable.getColByAdType(myrec.adType)">
|
||||||
|
{{ fieldsTable.getValByTabAndId(table, 'adType', myrec.adType) }}
|
||||||
|
<q-icon :name="fieldsTable.getIconByAdType(myrec.adType)" color="white"
|
||||||
|
class="q-ml-xs"/>
|
||||||
|
</q-badge>
|
||||||
<q-avatar size="60px">
|
<q-avatar size="60px">
|
||||||
<q-img :src="tools.getFullFileName(myrec.photos, table, myrec.username, '')" :alt="myrec.descr"
|
<q-img :src="tools.getFullFileName(myrec.photos, table, myrec.username, '')" :alt="myrec.descr"
|
||||||
img-class="imgprofile" height="60px"/>
|
img-class="imgprofile" height="60px"/>
|
||||||
</q-avatar>
|
</q-avatar>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section v-else avatar @click="naviga(`/my/` + myrec.username)">
|
<q-item-section v-else avatar @click="naviga(`/my/` + myrec.username)">
|
||||||
|
|
||||||
<q-badge v-if="showBadge" class="q-my-xs self-center" :color="fieldsTable.getColByAdType(myrec.adType)">
|
<q-badge v-if="showBadge" class="q-my-xs self-center" :color="fieldsTable.getColByAdType(myrec.adType)">
|
||||||
{{ fieldsTable.getValByTabAndId(table, 'adType', myrec.adType) }}
|
{{ fieldsTable.getValByTabAndId(table, 'adType', myrec.adType) }}
|
||||||
<q-icon :name="fieldsTable.getIconByAdType(myrec.adType)" color="white"
|
<q-icon :name="fieldsTable.getIconByAdType(myrec.adType)" color="white"
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ export * from './CProfile'
|
|||||||
export * from './CProvaPao'
|
export * from './CProvaPao'
|
||||||
export * from './CSignIn'
|
export * from './CSignIn'
|
||||||
export * from './CSigninNoreg'
|
export * from './CSigninNoreg'
|
||||||
|
export * from './CCheckIfIsLogged'
|
||||||
export * from './CSignUp'
|
export * from './CSignUp'
|
||||||
export * from './CSingleCart'
|
export * from './CSingleCart'
|
||||||
export * from './CTitle'
|
export * from './CTitle'
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ const msg_website_enUs = {
|
|||||||
profile: 'Profile',
|
profile: 'Profile',
|
||||||
profile2: 'ProfiloU',
|
profile2: 'ProfiloU',
|
||||||
mypage2: 'mypage2',
|
mypage2: 'mypage2',
|
||||||
mywork2: 'mywork2',
|
myservice2: 'myservice2',
|
||||||
test: 'Test',
|
test: 'Test',
|
||||||
projects: 'Progetti',
|
projects: 'Progetti',
|
||||||
report: 'Report Ore',
|
report: 'Report Ore',
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ const msg_website_es = {
|
|||||||
profile: 'Perfil',
|
profile: 'Perfil',
|
||||||
profile2: 'ProfiloU',
|
profile2: 'ProfiloU',
|
||||||
mypage2: 'mypage2',
|
mypage2: 'mypage2',
|
||||||
mywork2: 'mywork2',
|
myservice2: 'myservice2',
|
||||||
test: 'Test',
|
test: 'Test',
|
||||||
projects: 'Progetti',
|
projects: 'Progetti',
|
||||||
report: 'Report Ore',
|
report: 'Report Ore',
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ const msg_website_it = {
|
|||||||
profile: 'Profilo',
|
profile: 'Profilo',
|
||||||
profile2: 'ProfiloU',
|
profile2: 'ProfiloU',
|
||||||
mypage2: 'mypage2',
|
mypage2: 'mypage2',
|
||||||
mywork2: 'mywork2',
|
myservice2: 'myservice2',
|
||||||
test: 'Test',
|
test: 'Test',
|
||||||
projects: 'Progetti',
|
projects: 'Progetti',
|
||||||
report: 'Report Ore',
|
report: 'Report Ore',
|
||||||
|
|||||||
@@ -517,10 +517,10 @@ const baseroutes: IListRoutes[] = [
|
|||||||
{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 130,
|
order: 130,
|
||||||
path: '/mywork/:idSkill',
|
path: '/myservice/:idSkill',
|
||||||
materialIcon: '',
|
materialIcon: '',
|
||||||
name: 'pages.mywork2',
|
name: 'pages.myservice2',
|
||||||
component: () => import('@/views/user/mywork/mywork.vue'),
|
component: () => import('@/views/user/myservice/myservice.vue'),
|
||||||
meta: { requiresAuth: true },
|
meta: { requiresAuth: true },
|
||||||
inmenu: false,
|
inmenu: false,
|
||||||
infooter: false,
|
infooter: false,
|
||||||
|
|||||||
@@ -757,6 +757,8 @@ export interface IMySkill {
|
|||||||
descr: string
|
descr: string
|
||||||
date_created?: Date,
|
date_created?: Date,
|
||||||
date_updated?: Date,
|
date_updated?: Date,
|
||||||
|
|
||||||
|
username?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IMyGoods {
|
export interface IMyGoods {
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import { CChartMap } from '@src/components/CChartMap'
|
|||||||
import { Footer } from '@src/components/Footer'
|
import { Footer } from '@src/components/Footer'
|
||||||
import { CUserNonVerif } from '@/components/CUserNonVerif'
|
import { CUserNonVerif } from '@/components/CUserNonVerif'
|
||||||
import { CCopyBtn } from '@/components/CCopyBtn'
|
import { CCopyBtn } from '@/components/CCopyBtn'
|
||||||
|
import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged'
|
||||||
import { CMapsEsempio } from '@src/components/CMapsEsempio'
|
import { CMapsEsempio } from '@src/components/CMapsEsempio'
|
||||||
import { useGlobalStore } from '@store/globalStore'
|
import { useGlobalStore } from '@store/globalStore'
|
||||||
import { useUserStore } from '@store/UserStore'
|
import { useUserStore } from '@store/UserStore'
|
||||||
@@ -20,7 +21,7 @@ import MixinUsers from '@/mixins/mixin-users'
|
|||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'mainview',
|
name: 'mainview',
|
||||||
components: { CSkill, CChartMap, CMapsEsempio, CDashboard, CUserNonVerif, CMainView, CCopyBtn, Footer },
|
components: { CSkill, CChartMap, CMapsEsempio, CDashboard, CUserNonVerif, CMainView, CCopyBtn, Footer, CCheckIfIsLogged },
|
||||||
setup() {
|
setup() {
|
||||||
const globalStore = useGlobalStore()
|
const globalStore = useGlobalStore()
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
|
|||||||
@@ -44,25 +44,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<div class="q-pa-md q-gutter-sm">
|
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||||
<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="!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>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<div v-if="!isLogged && static_data.functionality.ENABLE_REGISTRATION" align="center" style="margin:20px;">
|
<div v-if="!isLogged && static_data.functionality.ENABLE_REGISTRATION" align="center" style="margin:20px;">
|
||||||
|
|||||||
@@ -669,7 +669,7 @@ export const colmyGoods = [
|
|||||||
filter_field: 'idSectorGood',
|
filter_field: 'idSectorGood',
|
||||||
noshowlabel: true,
|
noshowlabel: true,
|
||||||
icon: 'engineering',
|
icon: 'engineering',
|
||||||
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: false,
|
allowNewValue: false,
|
||||||
}),
|
}),
|
||||||
AddCol({
|
AddCol({
|
||||||
@@ -835,7 +835,7 @@ export const colmySkills = [
|
|||||||
noshowlabel: true,
|
noshowlabel: true,
|
||||||
addnone: true,
|
addnone: true,
|
||||||
icon: 'engineering',
|
icon: 'engineering',
|
||||||
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: false,
|
allowNewValue: false,
|
||||||
required: false,
|
required: false,
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -4890,7 +4890,7 @@ export const tools = {
|
|||||||
check = check && tools.isBitActive(col.showWhen, costanti.showWhen.InEdit)
|
check = check && tools.isBitActive(col.showWhen, costanti.showWhen.InEdit)
|
||||||
} else if (tipovis === tools.TIPOVIS_SHOW_RECORD) {
|
} else if (tipovis === tools.TIPOVIS_SHOW_RECORD) {
|
||||||
if (tools.isBitActive(col.showWhen, costanti.showWhen.InView_OnlyifExist)) {
|
if (tools.isBitActive(col.showWhen, costanti.showWhen.InView_OnlyifExist)) {
|
||||||
check = check && valuePresent
|
check = check && valuePresent && valuePresent !== costanti.FILTER_NESSUNO
|
||||||
} else {
|
} else {
|
||||||
check = check && tools.isBitActive(col.showWhen, costanti.showWhen.InView)
|
check = check && tools.isBitActive(col.showWhen, costanti.showWhen.InView)
|
||||||
}
|
}
|
||||||
@@ -5040,16 +5040,22 @@ export const tools = {
|
|||||||
{ table: 'goods', join: 'sectorgoods' }
|
{ table: 'goods', join: 'sectorgoods' }
|
||||||
]
|
]
|
||||||
|
|
||||||
|
let ris = mydef
|
||||||
|
|
||||||
if (arrtable.includes(table)) {
|
if (arrtable.includes(table)) {
|
||||||
return tools.getCookie(tools.COOK_SEARCH + table, mydef)
|
ris =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)
|
const rec = arrmultisel.find((rec) => rec.table === table)
|
||||||
if (rec) {
|
if (rec) {
|
||||||
return tools.getCookie(tools.COOK_SEARCH + table + '_' + tools.getCookie(tools.COOK_SEARCH + rec.join, 0), mydef)
|
ris = tools.getCookie(tools.COOK_SEARCH + table + '_' + tools.getCookie(tools.COOK_SEARCH + rec.join, 0), mydef)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return mydef
|
if (ris.toString() === costanti.FILTER_TUTTI.toString()){
|
||||||
|
ris = ''
|
||||||
|
}
|
||||||
|
|
||||||
|
return ris
|
||||||
},
|
},
|
||||||
|
|
||||||
getdefaultnewrec_MySkill(): any {
|
getdefaultnewrec_MySkill(): any {
|
||||||
@@ -5139,7 +5145,7 @@ export const tools = {
|
|||||||
|
|
||||||
getDirectoryByTable(table: string) {
|
getDirectoryByTable(table: string) {
|
||||||
if (table === toolsext.TABMYSKILLS) {
|
if (table === toolsext.TABMYSKILLS) {
|
||||||
return 'mywork'
|
return 'myservice'
|
||||||
} else if (table === toolsext.TABMYBACHECAS) {
|
} else if (table === toolsext.TABMYBACHECAS) {
|
||||||
return 'mypage'
|
return 'mypage'
|
||||||
} else if (table === toolsext.TABMYGROUPS) {
|
} else if (table === toolsext.TABMYGROUPS) {
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import { colmyUserPeople } from '@store/Modules/fieldsTable'
|
|||||||
import { ISearchList } from 'model'
|
import { ISearchList } from 'model'
|
||||||
import { costanti } from '@costanti'
|
import { costanti } from '@costanti'
|
||||||
import { shared_consts } from '@/common/shared_vuejs'
|
import { shared_consts } from '@/common/shared_vuejs'
|
||||||
|
import { toolsext } from '@store/Modules/toolsext'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'myfriends',
|
name: 'myfriends',
|
||||||
@@ -27,7 +28,62 @@ export default defineComponent({
|
|||||||
const filter = ref(costanti.FIND_PEOPLE)
|
const filter = ref(costanti.FIND_PEOPLE)
|
||||||
|
|
||||||
function mounted() {
|
function mounted() {
|
||||||
searchList.value = []
|
searchList.value = [
|
||||||
|
{
|
||||||
|
label: 'Regione',
|
||||||
|
table: 'regions',
|
||||||
|
key: 'idReg',
|
||||||
|
type: costanti.FieldType.select,
|
||||||
|
value: tools.getCookie(tools.COOK_SEARCH + 'regions', costanti.FILTER_TUTTI),
|
||||||
|
addall: true,
|
||||||
|
arrvalue: [],
|
||||||
|
filter: null,
|
||||||
|
useinput: false,
|
||||||
|
icon: 'fas fa-globe-europe'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Provincia',
|
||||||
|
table: 'provinces',
|
||||||
|
key: 'idProvince',
|
||||||
|
type: costanti.FieldType.select,
|
||||||
|
value: tools.getCookie(tools.COOK_SEARCH + 'provinces', costanti.FILTER_TUTTI),
|
||||||
|
addall: true,
|
||||||
|
arrvalue: [],
|
||||||
|
filter: getFilterProvinceByRegion,
|
||||||
|
useinput: true,
|
||||||
|
icon: 'flag',
|
||||||
|
tablesel: 'provinces',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Comune',
|
||||||
|
table: 'cities',
|
||||||
|
key: 'idCity',
|
||||||
|
type: costanti.FieldType.select_by_server,
|
||||||
|
value: tools.getCookie(tools.COOK_SEARCH + 'cities', costanti.FILTER_TUTTI),
|
||||||
|
addall: true,
|
||||||
|
arrvalue: [],
|
||||||
|
useinput: true,
|
||||||
|
filter: null,
|
||||||
|
// filter: getFilterCitiesByProvince,
|
||||||
|
// param1: shared_consts.PARAM_SHOW_PROVINCE,
|
||||||
|
tablesel: 'cities',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'In cambio di',
|
||||||
|
table: 'contribtypes',
|
||||||
|
key: 'idContribType',
|
||||||
|
value: 0,
|
||||||
|
arrvalue: tools.getCookie(tools.COOK_SEARCH + 'contribtypes', []),
|
||||||
|
type: costanti.FieldType.multiselect,
|
||||||
|
filter: null,
|
||||||
|
useinput: false,
|
||||||
|
icon: 'fas fa-hand-holding',
|
||||||
|
filteradv: true,
|
||||||
|
//icon: 'swap_horizontal_circle',
|
||||||
|
},
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
filtercustom.value = []
|
filtercustom.value = []
|
||||||
arrfilterand.value = []
|
arrfilterand.value = []
|
||||||
|
|
||||||
@@ -63,6 +119,15 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getFilterProvinceByRegion(recProvince: any, index: number, arr: any) {
|
||||||
|
const recreg: any = searchList.value.find((rec) => rec.table === 'regions')
|
||||||
|
if (recreg) {
|
||||||
|
return recProvince.reg === recreg.value
|
||||||
|
} else {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
onMounted(mounted)
|
onMounted(mounted)
|
||||||
|
|
||||||
@@ -75,6 +140,7 @@ export default defineComponent({
|
|||||||
searchList,
|
searchList,
|
||||||
colmyUserPeople,
|
colmyUserPeople,
|
||||||
extraparams,
|
extraparams,
|
||||||
|
getFilterProvinceByRegion,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { CMyFriends } from '@/components/CMyFriends'
|
|||||||
import { CMyUser } from '@/components/CMyUser'
|
import { CMyUser } from '@/components/CMyUser'
|
||||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||||
import { CProfile } from '@/components/CProfile'
|
import { CProfile } from '@/components/CProfile'
|
||||||
|
import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged'
|
||||||
import { CMyFieldRec } from '@/components/CMyFieldRec'
|
import { CMyFieldRec } from '@/components/CMyFieldRec'
|
||||||
import { CSkill } from '@/components/CSkill'
|
import { CSkill } from '@/components/CSkill'
|
||||||
import { CDateTime } from '@/components/CDateTime'
|
import { CDateTime } from '@/components/CDateTime'
|
||||||
@@ -22,7 +23,7 @@ import { colmyUserPeople, colmyUserGroup } from '@store/Modules/fieldsTable'
|
|||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'mygroup',
|
name: 'mygroup',
|
||||||
components: { CProfile, CTitleBanner, CMyFieldRec, CSkill, CDateTime, CMyFriends, CGridTableRec, CMyUser },
|
components: { CProfile, CTitleBanner, CMyFieldRec, CSkill, CDateTime, CMyFriends, CGridTableRec, CMyUser, CCheckIfIsLogged },
|
||||||
props: {},
|
props: {},
|
||||||
setup() {
|
setup() {
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
|
|||||||
@@ -1,229 +1,236 @@
|
|||||||
<template>
|
<template>
|
||||||
|
|
||||||
<div class="q-gutter-sm q-pa-sm q-pb-md">
|
<div class="q-gutter-sm q-pa-sm q-pb-md">
|
||||||
<div v-if="mygrp.descr" class="fit column no-wrap justify-evenly items-center content-start">
|
<div v-if="!tools.isLogged()">
|
||||||
|
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||||
<div class="">
|
|
||||||
<q-avatar size="140px">
|
|
||||||
<q-img :src="getImgGrp()" :alt="mygrpname()" img-class="imgprofile" height="140px" @click="showPic = true"/>
|
|
||||||
</q-avatar>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="text-h6">
|
|
||||||
<span v-if="checkifShow('name')"> {{ mygrp.title }}</span>
|
|
||||||
</div>
|
|
||||||
<div class="col-12 text-h7 text-blue text-shadow-2">
|
|
||||||
{{ mygrp.groupname }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<q-btn
|
|
||||||
v-if="!userStore.IsMyGroupByGroupname(mygrp.groupname) && !userStore.IsAskedGroupByGroupname(mygrp.groupname)"
|
|
||||||
icon="fas fa-user-plus"
|
|
||||||
color="primary" :label="$t('groups.ask_group')"
|
|
||||||
@click="tools.setRequestGroup($q, userStore.my.username, mygrp.groupname, true)"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<q-btn
|
|
||||||
v-if="userStore.IsAskedGroupByGroupname(mygrp.groupname) && !userStore.IsMyGroupByGroupname(mygrp.groupname)"
|
|
||||||
icon="fas fa-user-minus"
|
|
||||||
flat :label="$t('groups.cancel_ask_group_short')"
|
|
||||||
@click="tools.cancelReqGroups($q, userStore.my.username, mygrp.groupname)"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<q-tabs v-model="tabgrp" class="text-blue">
|
|
||||||
<q-tab label="Info" name="info" icon="fas fa-info"></q-tab>
|
|
||||||
<q-tab v-if="!!mygrp.note" label="Pagina" name="page" icon="fas fa-file-word"></q-tab>
|
|
||||||
<q-tab v-if="userStore.IsMyGroupByGroupname(mygrp.groupname) || tools.iAmAdminGroup(groupname)" label="Iscritti" name="membri" icon="fas fa-users"></q-tab>
|
|
||||||
<q-tab v-if="tools.iAmAdminGroup(groupname)" label="Richieste" name="rich" icon="fas fa-user-plus"></q-tab>
|
|
||||||
</q-tabs>
|
|
||||||
|
|
||||||
<q-tab-panels v-model="tabgrp" animated>
|
|
||||||
<q-tab-panel name="info">
|
|
||||||
<div>
|
|
||||||
<q-card>
|
|
||||||
<CMyFieldRec
|
|
||||||
title="Visibilità"
|
|
||||||
table="mygroups"
|
|
||||||
:id="mygrp._id"
|
|
||||||
:columns="colmyUserGroup"
|
|
||||||
:rec="mygrp"
|
|
||||||
field="visibility"
|
|
||||||
:canEdit="false"
|
|
||||||
:canModify="false">
|
|
||||||
</CMyFieldRec>
|
|
||||||
</q-card>
|
|
||||||
<q-card>
|
|
||||||
<div class="members">
|
|
||||||
<q-icon name="fas fa-users"></q-icon>
|
|
||||||
{{ numUsers() }} {{ numUsers() === 1 ? t('groups.member') : t('groups.members') }}
|
|
||||||
</div>
|
|
||||||
<div class="admins">
|
|
||||||
<q-icon name="fas fa-user-cog"></q-icon>
|
|
||||||
{{ numAdmins() }} {{ numAdmins() === 1 ? t('groups.admin') : t('groups.admins') }}
|
|
||||||
</div>
|
|
||||||
<div v-for="(user, index) of mygrp.admins" :key="index">
|
|
||||||
<CMyUser
|
|
||||||
:mycontact="user"
|
|
||||||
:visu="costanti.FIND_PEOPLE"
|
|
||||||
@setCmd="setCmd"
|
|
||||||
>
|
|
||||||
</CMyUser>
|
|
||||||
</div>
|
|
||||||
</q-card>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<q-card>
|
|
||||||
<br>
|
|
||||||
<div class="col-12 text-h7">
|
|
||||||
<span v-if="checkifShow('descr')">{{ mygrp.descr }}</span>
|
|
||||||
</div>
|
|
||||||
</q-card>
|
|
||||||
|
|
||||||
<div v-if="mygrp.title" class="myrow justify-evenly items-center q-pa-sm q-ma-sm">
|
|
||||||
<q-card>
|
|
||||||
<div class="col-6 q-ma-xs">
|
|
||||||
|
|
||||||
<q-btn
|
|
||||||
v-if="getLinkGrpTelegram()" icon="fab fa-telegram"
|
|
||||||
color="blue" type="a"
|
|
||||||
size="md"
|
|
||||||
rounded
|
|
||||||
:label="$t('msgs.telegrammsg')"
|
|
||||||
:href="getLinkGrpTelegram()" target="__blank">
|
|
||||||
</q-btn>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="col-6 q-ma-xs">
|
|
||||||
<q-btn
|
|
||||||
v-if="getLinkWebSite()" icon="fas fa-globe"
|
|
||||||
color="blue" type="a"
|
|
||||||
size="md"
|
|
||||||
rounded
|
|
||||||
:label="$t('reg.website')"
|
|
||||||
:href="getLinkWebSite()" target="__blank">
|
|
||||||
</q-btn>
|
|
||||||
</div>
|
|
||||||
</q-card>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</q-tab-panel>
|
|
||||||
|
|
||||||
<q-tab-panel name="page">
|
|
||||||
<div v-if="mygrp.note">
|
|
||||||
<br>
|
|
||||||
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
|
||||||
<div v-if="mygrp.note" v-html="mygrp.note">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</q-tab-panel>
|
|
||||||
|
|
||||||
<q-tab-panel name="membri">
|
|
||||||
<CGridTableRec
|
|
||||||
ref="tabMembri"
|
|
||||||
prop_mytable="users"
|
|
||||||
prop_mytitle=""
|
|
||||||
:prop_mycolumns="colmyUserPeople"
|
|
||||||
prop_colkey="_id"
|
|
||||||
col_title="username"
|
|
||||||
:vertical="costanti.VISUTABLE_LISTA"
|
|
||||||
nodataLabel="Nessun Iscritto"
|
|
||||||
:prop_search="true"
|
|
||||||
hint="Username da trovare"
|
|
||||||
:finder="false"
|
|
||||||
:choose_visutype="true"
|
|
||||||
:finder_noNull="false"
|
|
||||||
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
|
|
||||||
:butt_modif_new="false"
|
|
||||||
noresultLabel="Username non trovato"
|
|
||||||
:arrfilters="arrfilterand"
|
|
||||||
:filtercustom="filtercustom"
|
|
||||||
:prop_searchList="searchList"
|
|
||||||
:showType="costanti.SHOW_USERINFO"
|
|
||||||
:showCol="false"
|
|
||||||
:extrafield="groupname"
|
|
||||||
:extraparams="extraparams()"
|
|
||||||
:visufind="tools.iAmAdminGroup(groupname) ? costanti.REQ_REMOVE_USER_TO_GROUP : costanti.FIND_PEOPLE"
|
|
||||||
>
|
|
||||||
|
|
||||||
</CGridTableRec>
|
|
||||||
</q-tab-panel>
|
|
||||||
<q-tab-panel name="rich">
|
|
||||||
|
|
||||||
<CGridTableRec
|
|
||||||
prop_mytable="mygroups"
|
|
||||||
prop_mytitle=""
|
|
||||||
:prop_mycolumns="colmyUserPeople"
|
|
||||||
prop_colkey="_id"
|
|
||||||
col_title=""
|
|
||||||
:vertical="costanti.VISUTABLE_USER_TABGROUP"
|
|
||||||
nodataLabel="Nessuna Richiesta in sospeso"
|
|
||||||
:prop_search="false"
|
|
||||||
hint="Username da trovare"
|
|
||||||
:finder="false"
|
|
||||||
:choose_visutype="false"
|
|
||||||
:finder_noNull="false"
|
|
||||||
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
|
|
||||||
:butt_modif_new="false"
|
|
||||||
noresultLabel="Username non trovato"
|
|
||||||
:arrfilters="arrfilterand"
|
|
||||||
:filtercustom="filtercustom_rich"
|
|
||||||
:prop_searchList="searchList"
|
|
||||||
:showType="costanti.SHOW_USERINFO"
|
|
||||||
keyMain=""
|
|
||||||
:showCol="false"
|
|
||||||
:extraparams="extraparams_rich()"
|
|
||||||
:extrafield="groupname"
|
|
||||||
:visufind="costanti.REQ_ADD_USER_TO_GROUP"
|
|
||||||
>
|
|
||||||
|
|
||||||
</CGridTableRec>
|
|
||||||
</q-tab-panel>
|
|
||||||
</q-tab-panels>
|
|
||||||
|
|
||||||
<q-btn
|
|
||||||
v-if="mygrp.admins.includes(userStore.my.username)" icon="fas fa-pencil-alt"
|
|
||||||
color="blue"
|
|
||||||
size="md"
|
|
||||||
:label="$t('otherpages.modifgrp')"
|
|
||||||
to="/editgrp">
|
|
||||||
</q-btn>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="fit column no-wrap justify-evenly items-center content-start">
|
<div>
|
||||||
<q-skeleton type="QAvatar" size="140px" height="140px" animation="fade"/>
|
|
||||||
<q-card flat bordered style="width: 250px">
|
<div v-if="mygrp.descr" class="fit column no-wrap justify-evenly items-center content-start">
|
||||||
|
|
||||||
|
<div class="">
|
||||||
|
<q-avatar size="140px">
|
||||||
|
<q-img :src="getImgGrp()" :alt="mygrpname()" img-class="imgprofile" height="140px" @click="showPic = true"/>
|
||||||
|
</q-avatar>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="text-h6">
|
<div class="text-h6">
|
||||||
<q-skeleton :animation="animation"/>
|
<span v-if="checkifShow('name')"> {{ mygrp.title }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 text-h7 text-grey text-center">
|
<div class="col-12 text-h7 text-blue text-shadow-2">
|
||||||
{{ groupname }}
|
{{ mygrp.groupname }}
|
||||||
</div>
|
|
||||||
<div class="col-12 text-h7">
|
|
||||||
<q-skeleton :animation="animation"/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-12 text-h8 q-mt-sm">
|
<div>
|
||||||
<q-skeleton :animation="animation"/>
|
<q-btn
|
||||||
|
v-if="!userStore.IsMyGroupByGroupname(mygrp.groupname) && !userStore.IsAskedGroupByGroupname(mygrp.groupname)"
|
||||||
|
icon="fas fa-user-plus"
|
||||||
|
color="primary" :label="$t('groups.ask_group')"
|
||||||
|
@click="tools.setRequestGroup($q, userStore.my.username, mygrp.groupname, true)"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<q-btn
|
||||||
|
v-if="userStore.IsAskedGroupByGroupname(mygrp.groupname) && !userStore.IsMyGroupByGroupname(mygrp.groupname)"
|
||||||
|
icon="fas fa-user-minus"
|
||||||
|
flat :label="$t('groups.cancel_ask_group_short')"
|
||||||
|
@click="tools.cancelReqGroups($q, userStore.my.username, mygrp.groupname)"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 text-h8 q-mt-sm">
|
|
||||||
<q-skeleton :animation="animation"/>
|
<q-tabs v-model="tabgrp" class="text-blue">
|
||||||
</div>
|
<q-tab label="Info" name="info" icon="fas fa-info"></q-tab>
|
||||||
</q-card>
|
<q-tab v-if="!!mygrp.note" label="Pagina" name="page" icon="fas fa-file-word"></q-tab>
|
||||||
|
<q-tab v-if="userStore.IsMyGroupByGroupname(mygrp.groupname) || tools.iAmAdminGroup(groupname)"
|
||||||
|
label="Iscritti" name="membri" icon="fas fa-users"></q-tab>
|
||||||
|
<q-tab v-if="tools.iAmAdminGroup(groupname)" label="Richieste" name="rich" icon="fas fa-user-plus"></q-tab>
|
||||||
|
</q-tabs>
|
||||||
|
|
||||||
|
<q-tab-panels v-model="tabgrp" animated>
|
||||||
|
<q-tab-panel name="info">
|
||||||
|
<div>
|
||||||
|
<q-card>
|
||||||
|
<CMyFieldRec
|
||||||
|
title="Visibilità"
|
||||||
|
table="mygroups"
|
||||||
|
:id="mygrp._id"
|
||||||
|
:columns="colmyUserGroup"
|
||||||
|
:rec="mygrp"
|
||||||
|
field="visibility"
|
||||||
|
:canEdit="false"
|
||||||
|
:canModify="false">
|
||||||
|
</CMyFieldRec>
|
||||||
|
</q-card>
|
||||||
|
<q-card>
|
||||||
|
<div class="members">
|
||||||
|
<q-icon name="fas fa-users"></q-icon>
|
||||||
|
{{ numUsers() }} {{ numUsers() === 1 ? t('groups.member') : t('groups.members') }}
|
||||||
|
</div>
|
||||||
|
<div class="admins">
|
||||||
|
<q-icon name="fas fa-user-cog"></q-icon>
|
||||||
|
{{ numAdmins() }} {{ numAdmins() === 1 ? t('groups.admin') : t('groups.admins') }}
|
||||||
|
</div>
|
||||||
|
<div v-for="(user, index) of mygrp.admins" :key="index">
|
||||||
|
<CMyUser
|
||||||
|
:mycontact="user"
|
||||||
|
:visu="costanti.FIND_PEOPLE"
|
||||||
|
@setCmd="setCmd"
|
||||||
|
>
|
||||||
|
</CMyUser>
|
||||||
|
</div>
|
||||||
|
</q-card>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<q-card>
|
||||||
|
<br>
|
||||||
|
<div class="col-12 text-h7">
|
||||||
|
<span v-if="checkifShow('descr')">{{ mygrp.descr }}</span>
|
||||||
|
</div>
|
||||||
|
</q-card>
|
||||||
|
|
||||||
|
<div v-if="mygrp.title" class="myrow justify-evenly items-center q-pa-sm q-ma-sm">
|
||||||
|
<q-card>
|
||||||
|
<div class="col-6 q-ma-xs">
|
||||||
|
|
||||||
|
<q-btn
|
||||||
|
v-if="getLinkGrpTelegram()" icon="fab fa-telegram"
|
||||||
|
color="blue" type="a"
|
||||||
|
size="md"
|
||||||
|
rounded
|
||||||
|
:label="$t('msgs.telegrammsg')"
|
||||||
|
:href="getLinkGrpTelegram()" target="__blank">
|
||||||
|
</q-btn>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-6 q-ma-xs">
|
||||||
|
<q-btn
|
||||||
|
v-if="getLinkWebSite()" icon="fas fa-globe"
|
||||||
|
color="blue" type="a"
|
||||||
|
size="md"
|
||||||
|
rounded
|
||||||
|
:label="$t('reg.website')"
|
||||||
|
:href="getLinkWebSite()" target="__blank">
|
||||||
|
</q-btn>
|
||||||
|
</div>
|
||||||
|
</q-card>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</q-tab-panel>
|
||||||
|
|
||||||
|
<q-tab-panel name="page">
|
||||||
|
<div v-if="mygrp.note">
|
||||||
|
<br>
|
||||||
|
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
||||||
|
<div v-if="mygrp.note" v-html="mygrp.note">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-tab-panel>
|
||||||
|
|
||||||
|
<q-tab-panel name="membri">
|
||||||
|
<CGridTableRec
|
||||||
|
ref="tabMembri"
|
||||||
|
prop_mytable="users"
|
||||||
|
prop_mytitle=""
|
||||||
|
:prop_mycolumns="colmyUserPeople"
|
||||||
|
prop_colkey="_id"
|
||||||
|
col_title="username"
|
||||||
|
:vertical="costanti.VISUTABLE_LISTA"
|
||||||
|
nodataLabel="Nessun Iscritto"
|
||||||
|
:prop_search="true"
|
||||||
|
hint="Username da trovare"
|
||||||
|
:finder="false"
|
||||||
|
:choose_visutype="true"
|
||||||
|
:finder_noNull="false"
|
||||||
|
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
|
||||||
|
:butt_modif_new="false"
|
||||||
|
noresultLabel="Username non trovato"
|
||||||
|
:arrfilters="arrfilterand"
|
||||||
|
:filtercustom="filtercustom"
|
||||||
|
:prop_searchList="searchList"
|
||||||
|
:showType="costanti.SHOW_USERINFO"
|
||||||
|
:showCol="false"
|
||||||
|
:extrafield="groupname"
|
||||||
|
:extraparams="extraparams()"
|
||||||
|
:visufind="tools.iAmAdminGroup(groupname) ? costanti.REQ_REMOVE_USER_TO_GROUP : costanti.FIND_PEOPLE"
|
||||||
|
>
|
||||||
|
|
||||||
|
</CGridTableRec>
|
||||||
|
</q-tab-panel>
|
||||||
|
<q-tab-panel name="rich">
|
||||||
|
|
||||||
|
<CGridTableRec
|
||||||
|
prop_mytable="mygroups"
|
||||||
|
prop_mytitle=""
|
||||||
|
:prop_mycolumns="colmyUserPeople"
|
||||||
|
prop_colkey="_id"
|
||||||
|
col_title=""
|
||||||
|
:vertical="costanti.VISUTABLE_USER_TABGROUP"
|
||||||
|
nodataLabel="Nessuna Richiesta in sospeso"
|
||||||
|
:prop_search="false"
|
||||||
|
hint="Username da trovare"
|
||||||
|
:finder="false"
|
||||||
|
:choose_visutype="false"
|
||||||
|
:finder_noNull="false"
|
||||||
|
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
|
||||||
|
:butt_modif_new="false"
|
||||||
|
noresultLabel="Username non trovato"
|
||||||
|
:arrfilters="arrfilterand"
|
||||||
|
:filtercustom="filtercustom_rich"
|
||||||
|
:prop_searchList="searchList"
|
||||||
|
:showType="costanti.SHOW_USERINFO"
|
||||||
|
keyMain=""
|
||||||
|
:showCol="false"
|
||||||
|
:extraparams="extraparams_rich()"
|
||||||
|
:extrafield="groupname"
|
||||||
|
:visufind="costanti.REQ_ADD_USER_TO_GROUP"
|
||||||
|
>
|
||||||
|
|
||||||
|
</CGridTableRec>
|
||||||
|
</q-tab-panel>
|
||||||
|
</q-tab-panels>
|
||||||
|
|
||||||
|
<q-btn
|
||||||
|
v-if="mygrp.admins.includes(userStore.my.username)" icon="fas fa-pencil-alt"
|
||||||
|
color="blue"
|
||||||
|
size="md"
|
||||||
|
:label="$t('otherpages.modifgrp')"
|
||||||
|
to="/editgrp">
|
||||||
|
</q-btn>
|
||||||
|
|
||||||
|
</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"/>
|
||||||
|
<q-card flat bordered style="width: 250px">
|
||||||
|
<div class="text-h6">
|
||||||
|
<q-skeleton :animation="animation"/>
|
||||||
|
</div>
|
||||||
|
<div class="col-12 text-h7 text-grey text-center">
|
||||||
|
{{ groupname }}
|
||||||
|
</div>
|
||||||
|
<div class="col-12 text-h7">
|
||||||
|
<q-skeleton :animation="animation"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 text-h8 q-mt-sm">
|
||||||
|
<q-skeleton :animation="animation"/>
|
||||||
|
</div>
|
||||||
|
<div class="col-12 text-h8 q-mt-sm">
|
||||||
|
<q-skeleton :animation="animation"/>
|
||||||
|
</div>
|
||||||
|
</q-card>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<q-dialog
|
||||||
|
v-model="showPic"
|
||||||
|
full-height full-width
|
||||||
|
>
|
||||||
|
|
||||||
|
<img :src="getImgGrp()" :alt="groupname" class="full-width">
|
||||||
|
|
||||||
|
</q-dialog>
|
||||||
</div>
|
</div>
|
||||||
<q-dialog
|
|
||||||
v-model="showPic"
|
|
||||||
full-height full-width
|
|
||||||
>
|
|
||||||
|
|
||||||
<img :src="getImgGrp()" :alt="groupname" class="full-width">
|
|
||||||
|
|
||||||
</q-dialog>
|
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import { useRoute, useRouter } from 'vue-router'
|
|||||||
import { useGlobalStore } from '@store/globalStore'
|
import { useGlobalStore } from '@store/globalStore'
|
||||||
import { useI18n } from '@/boot/i18n'
|
import { useI18n } from '@/boot/i18n'
|
||||||
import { colmyUserGroup } from '@store/Modules/fieldsTable'
|
import { colmyUserGroup } from '@store/Modules/fieldsTable'
|
||||||
import { ISearchList } from 'model'
|
|
||||||
import { costanti } from '@costanti'
|
import { costanti } from '@costanti'
|
||||||
import { shared_consts } from '@/common/shared_vuejs'
|
import { shared_consts } from '@/common/shared_vuejs'
|
||||||
|
|
||||||
|
|||||||
@@ -4,11 +4,14 @@ import { useRoute, useRouter } from 'vue-router'
|
|||||||
import { useI18n } from '@/boot/i18n'
|
import { useI18n } from '@/boot/i18n'
|
||||||
import { useQuasar } from 'quasar'
|
import { useQuasar } from 'quasar'
|
||||||
import { CMyCardPopup } from '@/components/CMyCardPopup'
|
import { CMyCardPopup } from '@/components/CMyCardPopup'
|
||||||
|
import { CMyPage } from '@/components/CMyPage'
|
||||||
|
import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged'
|
||||||
import { toolsext } from '@store/Modules/toolsext'
|
import { toolsext } from '@store/Modules/toolsext'
|
||||||
|
import { tools } from '@store/Modules/tools'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'mypagebacheca',
|
name: 'mypagebacheca',
|
||||||
components: { CMyCardPopup },
|
components: { CMyCardPopup, CMyPage, CCheckIfIsLogged },
|
||||||
props: {},
|
props: {},
|
||||||
setup() {
|
setup() {
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
@@ -22,6 +25,7 @@ export default defineComponent({
|
|||||||
t,
|
t,
|
||||||
idBacheca,
|
idBacheca,
|
||||||
toolsext,
|
toolsext,
|
||||||
|
tools,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -3,7 +3,12 @@
|
|||||||
imgbackground="images/calendario_eventi.jpg"
|
imgbackground="images/calendario_eventi.jpg"
|
||||||
sizes="max-height: 120px" styleadd="bottom: -20px !important;">
|
sizes="max-height: 120px" styleadd="bottom: -20px !important;">
|
||||||
|
|
||||||
|
<div v-if="!tools.isLogged()">
|
||||||
|
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||||
|
</div>
|
||||||
|
|
||||||
<CMyCardPopup
|
<CMyCardPopup
|
||||||
|
v-if="!!idBacheca"
|
||||||
:table="toolsext.TABMYBACHECAS"
|
:table="toolsext.TABMYBACHECAS"
|
||||||
:idRec="idBacheca">
|
:idRec="idBacheca">
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { CTitleBanner } from '@/components/CTitleBanner'
|
|||||||
import { CProfile } from '@/components/CProfile'
|
import { CProfile } from '@/components/CProfile'
|
||||||
import { CDateTime } from '@/components/CDateTime'
|
import { CDateTime } from '@/components/CDateTime'
|
||||||
import { CMyPage } from '@/components/CMyPage'
|
import { CMyPage } from '@/components/CMyPage'
|
||||||
|
import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged'
|
||||||
import { CSkill } from '@/components/CSkill'
|
import { CSkill } from '@/components/CSkill'
|
||||||
import { tools } from '@store/Modules/tools'
|
import { tools } from '@store/Modules/tools'
|
||||||
import { computed, defineComponent, onMounted, ref, watch } from 'vue'
|
import { computed, defineComponent, onMounted, ref, watch } from 'vue'
|
||||||
@@ -21,8 +22,8 @@ import { colCitys } from '@store/Modules/fieldsTable'
|
|||||||
|
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'mywork',
|
name: 'myservice',
|
||||||
components: { CProfile, CTitleBanner, CMyFieldDb, CSkill, CDateTime, CMyPage },
|
components: { CProfile, CTitleBanner, CMyFieldDb, CSkill, CDateTime, CMyPage, CCheckIfIsLogged },
|
||||||
props: {},
|
props: {},
|
||||||
setup() {
|
setup() {
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
@@ -42,6 +43,8 @@ export default defineComponent({
|
|||||||
|
|
||||||
const myskill = ref(<IMySkill>{})
|
const myskill = ref(<IMySkill>{})
|
||||||
|
|
||||||
|
const username = computed(() => (myskill.value && myskill.value.username) ? myskill.value.username : 'Pagina')
|
||||||
|
|
||||||
function profile() {
|
function profile() {
|
||||||
return userStore.my.profile
|
return userStore.my.profile
|
||||||
}
|
}
|
||||||
@@ -97,6 +100,7 @@ export default defineComponent({
|
|||||||
fieldsTable,
|
fieldsTable,
|
||||||
colCitys,
|
colCitys,
|
||||||
table,
|
table,
|
||||||
|
username,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -1,9 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
|
|
||||||
<CMyPage
|
<CMyPage
|
||||||
:title='myskill.username' imgbackground="images/calendario_eventi.jpg"
|
:title="username" imgbackground="images/calendario_eventi.jpg"
|
||||||
sizes="max-height: 120px" styleadd="bottom: -20px !important;">
|
sizes="max-height: 120px" styleadd="bottom: -20px !important;">
|
||||||
|
|
||||||
|
<div v-if="!tools.isLogged()">
|
||||||
|
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
||||||
<div v-if="!!myskill.note" v-html="myskill.note"></div>
|
<div v-if="!!myskill.note" v-html="myskill.note"></div>
|
||||||
|
|
||||||
@@ -47,10 +50,10 @@
|
|||||||
</CMyPage>
|
</CMyPage>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" src="./mywork.ts">
|
<script lang="ts" src="./myservice.ts">
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import './mywork.scss';
|
@import './myservice.scss';
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
Reference in New Issue
Block a user