++Strette di Mano

This commit is contained in:
Surya Paolo
2023-01-08 02:17:15 +01:00
parent 865e1ad738
commit 4d40efc73a
19 changed files with 309 additions and 186 deletions

View File

View File

@@ -0,0 +1,73 @@
import { tools } from '../../store/Modules/tools'
import { useQuasar } from 'quasar'
import { useI18n } from '@src/boot/i18n'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { defineComponent, PropType, ref } from 'vue'
import { IUserFields } from 'model'
import { shared_consts } from '@/common/shared_vuejs'
import { CLabel } from '@/components/CLabel'
import { CSendCoins } from '@/components/CSendCoins'
export default defineComponent({
name: 'CContactUser',
props: {
myuser: {
type: Object as PropType<IUserFields>,
required: true,
},
showBtnActivities: {
type: Boolean,
required: true,
}
},
components: { CLabel, CSendCoins },
setup(props) {
const $q = useQuasar()
const userStore = useUserStore()
const globalStore = useGlobalStore()
const showsendCoinTo = ref(false)
const showingtooltip = ref(false)
function myusername() {
return userStore.my.username
}
function getLinkUserTelegram() {
if (props.myuser) {
if (!!props.myuser.profile.username_telegram) {
return 'https://t.me/' + props.myuser.profile.username_telegram
}
} else {
return ''
}
}
function getLinkWebSite() {
if (props.myuser) {
let mysite = props.myuser.profile.website!
if (mysite) {
if (!mysite.startsWith('http')) {
mysite = 'https://' + mysite
}
}
return mysite
} else {
return ''
}
}
return {
tools,
userStore,
shared_consts,
showsendCoinTo,
getLinkUserTelegram,
getLinkWebSite,
myusername,
showingtooltip,
}
},
})

View File

@@ -0,0 +1,119 @@
<template>
<div 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"
color="blue"
:type="tools.isUserOk() ? 'a' : 'btn'"
size="md"
rounded
:label="$t('msgs.telegrammsg')"
:href="tools.isUserOk() ? getLinkUserTelegram() : null"
@click="!tools.isUserOk() ? showingtooltip = !showingtooltip : false"
target="__blank"
>
</q-btn>
<div v-else-if="myuser.email" class="row">
<CLabel
v-bind="$attrs"
:copy="true"
:value="tools.isUserOk() ? myuser.email :''"
:label="$t('reg.email')"
/>
<q-btn
outline
icon="fas fa-envelope"
:color="$q.dark.isActive ? `shite` : `black`"
:type="tools.isUserOk() ? 'a' : 'btn'"
size="md"
:label="$t('msgs.send_email')"
:href="tools.isUserOk() ? tools.getemailto(myuser.email) : null"
@click="!tools.isUserOk() ? showingtooltip = !showingtooltip : false"
target="__blank"
>
</q-btn>
</div>
</div>
<div class="col-md-6 col-sm-6 q-ma-xs col-xs-12">
<q-btn
v-if="
userStore.getMyCircuitsInCommonByUser(myuser).length > 0 &&
myuser.username !== myusername() &&
userStore.my.profile.calc.numGoodsAndServices > 0
"
icon="fas fa-coins"
color="green"
size="md"
rounded
:label="$t('circuit.sendcoins')"
@click="showsendCoinTo = true"
>
</q-btn>
</div>
<div v-if="myuser._id" class="col-md-6 col-sm-6 q-ma-xs col-xs-12">
<q-btn
v-if="getLinkWebSite()"
icon="fas fa-globe"
color="blue"
type="a"
size="md"
rounded
:label="$t('reg.website')"
:href="tools.isUserOk() ? getLinkWebSite() : null"
@click="!tools.isUserOk() ? showingtooltip = !showingtooltip : false"
target="__blank"
>
</q-btn>
</div>
</div>
<div class="myrow justify-evenly items-center q-pa-sm q-ma-sm">
<div v-if="myuser._id" class="col-12">
<q-btn
v-if="myuser.username === myusername()"
icon="fas fa-share-alt"
color="blue"
size="md"
rounded
:label="$t('reg.link_reg_and_msg')"
@click="
tools.sendMsgTelegramCmd(
$q,
$t,
shared_consts.MsgTeleg.SHARE_MSGREG,
true
)
"
>
</q-btn>
</div>
<div v-if="showBtnActivities" class="col-md-6 col-sm-6 q-ma-xs col-xs-12 text-center">
<q-btn
icon="fas fa-house-user"
size="md"
color="orange"
:label="$t('profile.myactivities')"
:to="`/attivita/` + myuser.username"
>
</q-btn>
</div>
</div>
<q-tooltip :offset="[10, 10]" v-model="showingtooltip">Per contattare la persona:<br>Accedi a RISO o Registrati</q-tooltip>
<div v-if="showsendCoinTo">
<CSendCoins
:showprop="showsendCoinTo"
:to_user="myuser"
@close="showsendCoinTo = false"
>
</CSendCoins>
</div>
</template>
<script lang="ts" src="./CContactUser.ts">
</script>
<style lang="scss" scoped>
@import './CContactUser.scss';
</style>

View File

@@ -0,0 +1 @@
export {default as CContactUser} from './CContactUser.vue'

View File

@@ -8,6 +8,7 @@ import { CSkill } from '@/components/CSkill'
import { CDateTime } from '@/components/CDateTime'
import { CMyGroup } from '@/components/CMyGroup'
import { CMyCircuit } from '@/components/CMyCircuit'
import { CContactUser } from '@src/components/CContactUser'
import { CNotifAtTop } from '@src/components/CNotifAtTop'
import { CTimeAgo } from '@src/components/CTimeAgo'
import { CSendCoins } from '@/components/CSendCoins'
@@ -36,7 +37,7 @@ export default defineComponent({
components: {
CProfile, CTitleBanner, CMyFieldDb, CSkill, CDateTime, CCopyBtn, CUserNonVerif, CMyFieldRec, CMyUser,
CMyGroup, CLabel, CMyCircuit, CSendCoins, CNotifAtTop, CCheckIfIsLogged,
CTimeAgo
CTimeAgo, CContactUser
},
props: {
},
@@ -59,7 +60,6 @@ export default defineComponent({
const filtroutente = ref(<any[]>[])
const showPic = ref(false)
const caricato = ref(false)
const showsendCoinTo = ref(false)
const myuser = ref(<IUserFields | null>null)
@@ -90,7 +90,7 @@ export default defineComponent({
// Carica il profilo di quest'utente
if (username.value) {
await userStore.loadUserProfile({ username: username.value, idnotif: idnotif.value }).then((ris) => {
console.log('loadUserProfile = ', ris)
// console.log('loadUserProfile = ', ris)
myuser.value = ris
if (myuser.value) {
filtroutente.value = [{ userId: myuser.value._id }]
@@ -201,7 +201,6 @@ export default defineComponent({
caricato,
listgroupsfiltered,
idnotif,
showsendCoinTo,
site,
listcircuitsfiltered,
optionsMainCards,

View File

@@ -80,6 +80,8 @@
</div>
<br />
<CContactUser :myuser="myuser" :showBtnActivities="false"/>
<CTitleBanner
v-if="site.confpages.showCompetenze"
class=""
@@ -148,14 +150,6 @@
<img :src="getImgUser()" :alt="username" class="full-width" />
</q-dialog>
<div v-if="showsendCoinTo">
<CSendCoins
:showprop="showsendCoinTo"
:to_user="myuser"
@close="showsendCoinTo = false"
>
</CSendCoins>
</div>
</div>
</div>
</template>

View File

@@ -234,9 +234,9 @@
@click="clickOnElem"
>
<q-video
v-if="rec && !!rec.container"
:src="rec.container"
:ratio="rec.ratio"
v-if="myel && !!myel.container"
:src="myel.container"
:ratio="myel.ratio"
>
</q-video>
</div>

View File

@@ -186,7 +186,7 @@ export default defineComponent({
// Carica il profilo di quest'utente
if (username.value) {
spinner_visible.value = true
userStore.loadFriends(username.value).then((ris) => {
userStore.loadFriends().then((ris) => {
// console.log('ris', ris)
if (ris) {
listTrusted.value = ris.listTrusted ? ris.listTrusted : []