fix Cliccando sul Titolo dell'evento, si apre una pagina in una nuova finestra ! (non rimane sulla APP)
This commit is contained in:
@@ -35,7 +35,7 @@
|
||||
"autoprefixer": "^10.4.13",
|
||||
"axios": "^1.2.0",
|
||||
"bcryptjs": "^2.4.3",
|
||||
"chart.js": "^3.9.1",
|
||||
"chart.js": "^3.9.1",
|
||||
"core-js": "^3.26.1",
|
||||
"crypto": "^1.0.1",
|
||||
"date-fns": "^2.29.3",
|
||||
@@ -70,6 +70,7 @@
|
||||
"vue-property-decorator": "^10.0.0-rc.3",
|
||||
"vue-router": "^4.1.6",
|
||||
"vue-scroll-reveal": "^1.0.11",
|
||||
"vue-social-sharing": "^4.0.0-alpha4",
|
||||
"vue-svgicon": "^4.0.0-alpha.3",
|
||||
"vue2-dragula": "^2.5.5",
|
||||
"vuex": "^4.1.0",
|
||||
|
||||
@@ -37,7 +37,7 @@ module.exports = configure((ctx) => ({
|
||||
// --> boot files are part of "main.js"
|
||||
// https://v2.quasar.dev/quasar-cli/boot-files
|
||||
// boot: ['vue-i18n', 'vue-meta', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'vue-idb', 'dragula', 'guard'],
|
||||
boot: ['i18n', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'calendar'],
|
||||
boot: ['i18n', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'calendar', 'social-sharing'],
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
|
||||
css: [
|
||||
|
||||
8
src/boot/social-sharing.ts
Executable file
8
src/boot/social-sharing.ts
Executable file
@@ -0,0 +1,8 @@
|
||||
// import google from '../googlemap'
|
||||
import { boot } from 'quasar/wrappers'
|
||||
import VueSocialSharing from 'vue-social-sharing'
|
||||
|
||||
export default boot(({ app, router }) => {
|
||||
// app.config.globalProperties.$google = google
|
||||
app.use(VueSocialSharing);
|
||||
})
|
||||
@@ -55,7 +55,7 @@
|
||||
style="opacity: 0.7;"
|
||||
>
|
||||
<q-btn
|
||||
push round color="white" text-color="black" icon="keyboard_arrow_left"
|
||||
push round :color="$q.dark.isActive ? `black` : `white`" :text-color="$q.dark.isActive ? `white` : `black`" icon="keyboard_arrow_left"
|
||||
@click="$refs.carousel.previous()"></q-btn>
|
||||
</q-carousel-control>
|
||||
<q-carousel-control
|
||||
@@ -64,7 +64,7 @@
|
||||
style="opacity: 0.7;"
|
||||
>
|
||||
<q-btn
|
||||
push round color="white" text-color="black" icon="keyboard_arrow_right"
|
||||
push round :color="$q.dark.isActive ? `black` : `white`" :text-color="$q.dark.isActive ? `white` : `black`" icon="keyboard_arrow_right"
|
||||
@click="$refs.carousel.next()"></q-btn>
|
||||
</q-carousel-control>
|
||||
</template>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<div class="text-h6 text-center">
|
||||
Visualizza le FAQ (Risposte alle domande più frequenti)<br>
|
||||
<div class="text-center">
|
||||
<q-btn color="white" push glossy text-color="black" label="Apri le FAQ" to="/faq"/>
|
||||
<q-btn :color="$q.dark.isActive ? `black` : `white`" push glossy :text-color="$q.dark.isActive ? `white` : `black`" label="Apri le FAQ" to="/faq"/>
|
||||
</div>
|
||||
</div>
|
||||
</q-banner>
|
||||
|
||||
@@ -937,6 +937,12 @@ export default defineComponent({
|
||||
return event.title
|
||||
}
|
||||
|
||||
function condividipag(href: string) {
|
||||
const msg = self.location.host + href
|
||||
return tools.copyStringToClipboard($q, msg, true)
|
||||
}
|
||||
|
||||
|
||||
onMounted(mounted)
|
||||
onBeforeMount(beforeMount)
|
||||
|
||||
@@ -1022,6 +1028,7 @@ export default defineComponent({
|
||||
EState,
|
||||
CancelBookingEvent,
|
||||
site: globalStore.site,
|
||||
condividipag,
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -95,7 +95,7 @@
|
||||
<div class="q-ma-sm">
|
||||
<q-btn
|
||||
v-if="myrec._id"
|
||||
text-color="black" icon="fas fa-share-alt"
|
||||
:text-color="$q.dark.isActive ? `white` : `black`" icon="fas fa-share-alt"
|
||||
label="Condividi"
|
||||
@click="condividipag"></q-btn>
|
||||
</div>
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
<div class="q-ma-sm">
|
||||
<q-btn
|
||||
v-if="myrec._id"
|
||||
text-color="black" icon="fas fa-share-alt"
|
||||
:text-color="$q.dark.isActive ? `white` : `black`" icon="fas fa-share-alt"
|
||||
label="Condividi"
|
||||
@click="condividipag"></q-btn>
|
||||
</div>
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
<div class="q-ma-sm">
|
||||
<q-btn
|
||||
v-if="myrec._id"
|
||||
text-color="black" icon="fas fa-share-alt"
|
||||
:text-color="$q.dark.isActive ? `white` : `black`" icon="fas fa-share-alt"
|
||||
label="Condividi"
|
||||
@click="condividipag"></q-btn>
|
||||
</div>
|
||||
|
||||
@@ -2,7 +2,7 @@ import {
|
||||
defineComponent, onMounted, PropType, ref, toRef, watch,
|
||||
} from 'vue'
|
||||
|
||||
import { IMyCard, IMyElem, IMyPage, IOperators } from '@src/model'
|
||||
import { IMyCard, IMyElem, IMyPage, IOperators, ISocial } from '@src/model'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
|
||||
import { CImgTitle } from '../CImgTitle/index'
|
||||
@@ -27,6 +27,7 @@ import { CCheckIfIsLogged } from '@src/components/CCheckIfIsLogged'
|
||||
import { CSelectFontSize } from '@src/components/CSelectFontSize'
|
||||
import { CNotifAtTop } from '@src/components/CNotifAtTop'
|
||||
import { CPresentazione } from '@src/components/CPresentazione'
|
||||
import { CShareSocial } from '@src/components/CShareSocial'
|
||||
|
||||
import MixinMetaTags from '@/mixins/mixin-metatags'
|
||||
import MixinBase from '@/mixins/mixin-base'
|
||||
@@ -43,7 +44,7 @@ export default defineComponent({
|
||||
CSelectColor, CSelectFontSize, CImgPoster,
|
||||
CCheckIfIsLogged, CStatusReg, CDashboard, CMainView, CNotifAtTop,
|
||||
CPresentazione,
|
||||
CTitleBanner,
|
||||
CTitleBanner, CShareSocial,
|
||||
},
|
||||
emits: ['selElemClick'],
|
||||
props: {
|
||||
@@ -88,6 +89,9 @@ export default defineComponent({
|
||||
const disableSave = ref(true)
|
||||
const enableEdit = ref(false)
|
||||
const enableAdd = ref(true)
|
||||
const visushare = ref(false)
|
||||
|
||||
const social = ref(<ISocial>{})
|
||||
|
||||
const neworder = ref(<number | undefined>0)
|
||||
|
||||
@@ -227,6 +231,21 @@ export default defineComponent({
|
||||
$router.replace('/signin')
|
||||
}
|
||||
|
||||
async function clickshare() {
|
||||
let mytext = await tools.sendMsgTelegramCmd(
|
||||
$q,
|
||||
t,
|
||||
shared_consts.MsgTeleg.SHARE_MSGREG,
|
||||
true
|
||||
)
|
||||
|
||||
if (false) {
|
||||
social.value.description = mytext
|
||||
visushare.value = true
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
onMounted(mounted)
|
||||
|
||||
return {
|
||||
@@ -256,6 +275,9 @@ export default defineComponent({
|
||||
dupElem,
|
||||
globalStore,
|
||||
PagLogin,
|
||||
visushare,
|
||||
social,
|
||||
clickshare,
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@@ -466,14 +466,7 @@
|
||||
"
|
||||
rounded
|
||||
:label="$t('reg.link_reg_and_msg')"
|
||||
@click="
|
||||
tools.sendMsgTelegramCmd(
|
||||
$q,
|
||||
$t,
|
||||
shared_consts.MsgTeleg.SHARE_MSGREG,
|
||||
true
|
||||
)
|
||||
"
|
||||
@click="clickshare"
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
@@ -513,9 +506,7 @@
|
||||
size="xs"
|
||||
/>
|
||||
</template>
|
||||
<span class="mybanner"
|
||||
>
|
||||
TEST !</span>
|
||||
<span class="mybanner"> TEST !</span>
|
||||
</q-banner>
|
||||
</div>
|
||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CHECKNEWVERSION">
|
||||
@@ -600,6 +591,21 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<q-dialog
|
||||
v-model="visushare"
|
||||
transition-show="slide-up"
|
||||
transition-hide="slide-down"
|
||||
:maximized="$q.screen.lt.sm"
|
||||
>
|
||||
<CShareSocial
|
||||
v-if="social && social.description"
|
||||
:description="social.description"
|
||||
:title="social.title"
|
||||
:url="social.url"
|
||||
>
|
||||
</CShareSocial>
|
||||
</q-dialog>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CMyElem.ts">
|
||||
|
||||
42
src/components/CShareSocial/CShareSocial.scss
Executable file
42
src/components/CShareSocial/CShareSocial.scss
Executable file
@@ -0,0 +1,42 @@
|
||||
$heightBtn: 100%;
|
||||
$grayshadow: #555;
|
||||
|
||||
.text-subtitle-gallery {
|
||||
font-size: 1rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.75rem;
|
||||
letter-spacing: .00937em;
|
||||
text-shadow: .1rem .1rem .1rem $grayshadow;
|
||||
}
|
||||
|
||||
@media (max-width: 718px) {
|
||||
// PER VERSIONE MOBILE
|
||||
.text-subtitle-gallery {
|
||||
font-size: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.myimg {
|
||||
border-radius: 10px !important;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
.q-img {
|
||||
&__image {
|
||||
border-radius: 10px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.my-card-gallery {
|
||||
width: 100%;
|
||||
max-width: 300px;
|
||||
min-width: 200px;
|
||||
padding: 1rem 1rem;
|
||||
height: 350px;
|
||||
}
|
||||
|
||||
.my-card-gallery-view {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
padding: 0.5rem 0.5rem;
|
||||
}
|
||||
52
src/components/CShareSocial/CShareSocial.ts
Executable file
52
src/components/CShareSocial/CShareSocial.ts
Executable file
@@ -0,0 +1,52 @@
|
||||
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 } from 'vue'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CShareSocial',
|
||||
props: {
|
||||
description: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
url: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
quote: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
},
|
||||
components: {},
|
||||
setup(props) {
|
||||
const $q = useQuasar()
|
||||
|
||||
const networks = [
|
||||
{
|
||||
network: 'whatsapp',
|
||||
name: 'Whatsapp',
|
||||
icon: 'fab fah fa-lg fa-whatsapp',
|
||||
color: '#25d366'
|
||||
},
|
||||
{ network: 'email', name: 'Email', icon: 'far fah fa-lg fa-envelope', color: '#333333' },
|
||||
{ network: 'facebook', name: 'Facebook', icon: 'fab fah fa-lg fa-facebook-f', color: '#1877f2' },
|
||||
{ network: 'telegram', name: 'Telegram', icon: 'fab fah fa-lg fa-telegram-plane', color: '#0088cc' },
|
||||
]
|
||||
|
||||
return {
|
||||
tools,
|
||||
networks,
|
||||
}
|
||||
},
|
||||
})
|
||||
40
src/components/CShareSocial/CShareSocial.vue
Executable file
40
src/components/CShareSocial/CShareSocial.vue
Executable file
@@ -0,0 +1,40 @@
|
||||
<template>
|
||||
<div class="q-ma-sm">
|
||||
<div>
|
||||
<q-card>
|
||||
<q-bar class="bg-primary text-white">
|
||||
<span> Social Share </span>
|
||||
<q-space />
|
||||
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
||||
</q-bar>
|
||||
<q-card-section class="inset-shadow">
|
||||
<h2>Condividi su</h2><br>
|
||||
<q-card class="dialog_card row q-pa-sm q-ma-sm">
|
||||
|
||||
<ShareNetwork
|
||||
style="padding: 10px; margin: 10px"
|
||||
v-for="network in networks"
|
||||
:key="network.network"
|
||||
:url="url"
|
||||
:style="{ backgroundColor: network.color }"
|
||||
:title="title"
|
||||
:description="description"
|
||||
:quote="quote"
|
||||
>
|
||||
<i :class="network.icon" class="q-mr-sm"></i>
|
||||
<span>{{ network.name }}</span>
|
||||
</ShareNetwork>
|
||||
</q-card>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
<br />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CShareSocial.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './CShareSocial.scss';
|
||||
</style>
|
||||
1
src/components/CShareSocial/index.ts
Executable file
1
src/components/CShareSocial/index.ts
Executable file
@@ -0,0 +1 @@
|
||||
export {default as CShareSocial} from './CShareSocial.vue'
|
||||
@@ -14,6 +14,7 @@ export * from './CImgTitle'
|
||||
export * from './CMyAvatar'
|
||||
export * from './CMyCart'
|
||||
export * from './CMyFieldDb'
|
||||
export * from './CShareSocial'
|
||||
export * from './CBarSelection'
|
||||
export * from './CMyFieldRec'
|
||||
export * from './CImgPoster'
|
||||
|
||||
@@ -669,6 +669,14 @@ export interface IParamsQuery {
|
||||
extrapar?: string
|
||||
}
|
||||
|
||||
export interface ISocial {
|
||||
description: string
|
||||
network: string
|
||||
title: string
|
||||
url: string
|
||||
quote: string
|
||||
}
|
||||
|
||||
export interface ISpecialField {
|
||||
findsubkey?: any
|
||||
paramtosetsubkey?: any
|
||||
|
||||
@@ -140,6 +140,7 @@ export default defineComponent({
|
||||
setmeta,
|
||||
myevent,
|
||||
selected,
|
||||
tools,
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -734,7 +734,7 @@ const msg_it = {
|
||||
booked_error: 'Prenotazione non avvenuta. Riprovare più tardi',
|
||||
sendmsg_error: 'Messaggio non inviato. Riprovare più tardi',
|
||||
sendmsg_sent: 'Messaggio Inviato',
|
||||
sendmsg_sent_sharedlink: 'Il Messaggio da inviare lo trovi nella Chat Telegram',
|
||||
sendmsg_sent_sharedlink: 'Condividi il messaggio che ti è appena arrivato sulla Chat Telegram',
|
||||
sendmsgs_sent: 'Messaggi Inviati',
|
||||
err_sendmsg: 'Errore durante l\'invio del Messaggio',
|
||||
booking: 'Prenota Evento',
|
||||
|
||||
@@ -4467,6 +4467,12 @@ export const tools = {
|
||||
|
||||
},
|
||||
|
||||
copyStringToClipboardSilent(mystr: string) {
|
||||
|
||||
copyToClipboard(mystr)
|
||||
|
||||
},
|
||||
|
||||
getlinkhref(mylink: string, text: string) {
|
||||
return '<a href="' + mylink + '" target="_blank">' + text + '</a>'
|
||||
},
|
||||
|
||||
@@ -1047,7 +1047,7 @@ export const useUserStore = defineStore('UserStore', {
|
||||
}
|
||||
},
|
||||
|
||||
async loadUserProfile({username, idnotif}: {username: string, idnotif?: string}) {
|
||||
async loadUserProfile({ username, idnotif }: { username: string, idnotif?: string }) {
|
||||
const data = {
|
||||
username,
|
||||
idnotif
|
||||
@@ -1104,9 +1104,9 @@ export const useUserStore = defineStore('UserStore', {
|
||||
|
||||
return Api.SendReq('/mygroup/load', 'POST', data)
|
||||
.then((res) => {
|
||||
return {data: res.data, status: res.status}
|
||||
return { data: res.data, status: res.status }
|
||||
}).catch((error) => {
|
||||
return {data: null, status: error.status}
|
||||
return { data: null, status: error.status }
|
||||
})
|
||||
|
||||
},
|
||||
@@ -1119,9 +1119,9 @@ export const useUserStore = defineStore('UserStore', {
|
||||
|
||||
return Api.SendReq('/circuit/load', 'POST', data)
|
||||
.then((res) => {
|
||||
return {data: res.data, status: res.status}
|
||||
return { data: res.data, status: res.status }
|
||||
}).catch((error) => {
|
||||
return {data: null, status: error.status}
|
||||
return { data: null, status: error.status }
|
||||
})
|
||||
|
||||
},
|
||||
@@ -1237,9 +1237,16 @@ export const useUserStore = defineStore('UserStore', {
|
||||
let msgok = (res.data.nummsgsent === 1) ? res.data.nummsgsent + ' ' + t('cal.sendmsg_sent') : res.data.nummsgsent + ' ' + t('cal.sendmsgs_sent')
|
||||
if (mydata.cmd === shared_consts.MsgTeleg.SHARE_MSGREG) {
|
||||
msgok = t('cal.sendmsg_sent_sharedlink') + ' ' + tools.getBotName()
|
||||
showmsgsent = true
|
||||
}
|
||||
|
||||
if (showmsgsent && res.data.nummsgsent >= 0) {
|
||||
tools.showPositiveNotif($q, msgok)
|
||||
if (mydata.cmd === shared_consts.MsgTeleg.SHARE_MSGREG) {
|
||||
if (res.data.textsent) {
|
||||
return res.data.textsent
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
return false
|
||||
|
||||
@@ -1,49 +1,55 @@
|
||||
<template>
|
||||
<div class="q-pr-md">
|
||||
<q-layout
|
||||
view="hHh Lpr lff" container :style="`height: ` + getheight + `px`"
|
||||
class="shadow-2 rounded-borders messages_page">
|
||||
view="hHh Lpr lff"
|
||||
container
|
||||
:style="`height: ` + getheight + `px`"
|
||||
class="shadow-2 rounded-borders messages_page"
|
||||
>
|
||||
<q-drawer
|
||||
v-model="mydrawer"
|
||||
|
||||
:mini="!mydrawer || miniState"
|
||||
@click.capture="drawerClick"
|
||||
|
||||
:width="widthdrawer"
|
||||
:breakpoint="300"
|
||||
bordered
|
||||
content-class="bg-grey-3">
|
||||
|
||||
content-class="bg-grey-3"
|
||||
>
|
||||
<q-scroll-area class="fit">
|
||||
<q-list bordered class="rounded-borders chat-list">
|
||||
<q-item-label header class="title_msg">{{ $t('msgs.messages') }}</q-item-label>
|
||||
<q-item-label header class="title_msg">{{
|
||||
$t('msgs.messages')
|
||||
}}</q-item-label>
|
||||
|
||||
<q-separator/>
|
||||
<q-separator />
|
||||
|
||||
<div v-if="getNumMsg() === 0">
|
||||
<q-item>
|
||||
{{ $t('msgs.nomessage') }}
|
||||
|
||||
</q-item>
|
||||
</div>
|
||||
|
||||
<q-item
|
||||
clickable
|
||||
|
||||
:active="isMenuActive(msg.dest.username)"
|
||||
active-class="active-user"
|
||||
v-for="(msg, index) in lasts_messages()"
|
||||
:key="index"
|
||||
@click="selChat(msg)">
|
||||
|
||||
@click="selChat(msg)"
|
||||
>
|
||||
<q-item-section avatar>
|
||||
<q-avatar>
|
||||
<img :src="getImgByMsg(msg)" :alt="getUsernameChatByMsg(msg)">
|
||||
<img
|
||||
:src="getImgByMsg(msg)"
|
||||
:alt="getUsernameChatByMsg(msg)"
|
||||
/>
|
||||
</q-avatar>
|
||||
</q-item-section>
|
||||
|
||||
<q-item-section>
|
||||
<q-item-label lines="1">{{ getUsernameChatByMsg(msg) }}</q-item-label>
|
||||
<q-item-label lines="1">{{
|
||||
getUsernameChatByMsg(msg)
|
||||
}}</q-item-label>
|
||||
<q-item-label caption lines="2">
|
||||
{{ getMsgText(msg, false) }}
|
||||
</q-item-label>
|
||||
@@ -54,18 +60,22 @@
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
|
||||
<q-separator/>
|
||||
<q-separator />
|
||||
</q-list>
|
||||
</q-scroll-area>
|
||||
|
||||
<div class="q-mini-drawer-hide absolute" style="top: 15px; right: -17px">
|
||||
<div
|
||||
class="q-mini-drawer-hide absolute"
|
||||
style="top: 15px; right: -17px"
|
||||
>
|
||||
<q-btn
|
||||
dense
|
||||
round
|
||||
unelevated
|
||||
color="accent"
|
||||
icon="chevron_left"
|
||||
@click="miniState = true">
|
||||
@click="miniState = true"
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
</q-drawer>
|
||||
@@ -75,36 +85,53 @@
|
||||
<q-page-container style="">
|
||||
<q-page class="q-px-lg q-py-md">
|
||||
<div>
|
||||
<q-item clickable v-if="!!chatsel.username" @scroll="myonScroll">
|
||||
|
||||
<q-item
|
||||
clickable
|
||||
v-if="!!chatsel.username"
|
||||
@scroll="myonScroll"
|
||||
>
|
||||
<q-item-section avatar>
|
||||
<CMyAvatar :username="chatsel.username"></CMyAvatar>
|
||||
</q-item-section>
|
||||
|
||||
<q-item-section>
|
||||
<q-item-label lines="1">{{ getUserByUsername(chatsel.username) }}</q-item-label>
|
||||
<q-item-label lines="1">{{
|
||||
getUserByUsername(chatsel.username)
|
||||
}}</q-item-label>
|
||||
<q-item-label caption lines="2">
|
||||
{{ func_tools.getDateTimeShortStr(chatsel.lasttimeActive) }}
|
||||
{{
|
||||
func_tools.getDateTimeShortStr(chatsel.lasttimeActive)
|
||||
}}
|
||||
</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</div>
|
||||
<q-separator/>
|
||||
<q-separator />
|
||||
<div class="q-pa-md">
|
||||
<q-item
|
||||
clickable v-for="(msg, index) in msgchat_records()" :key="index">
|
||||
clickable
|
||||
v-for="(msg, index) in msgchat_records()"
|
||||
:key="index"
|
||||
>
|
||||
<div v-if="msg.dest">
|
||||
<div>
|
||||
<div class="chat_dest" v-if="msg.dest.username === Username()">
|
||||
<div
|
||||
class="chat_dest"
|
||||
v-if="msg.dest.username === Username()"
|
||||
>
|
||||
<q-chat-message
|
||||
:name="getUsernameChatByMsg(msg)"
|
||||
:text="getMsgText(msg, true)"
|
||||
:stamp="tools.getstrDateTimeShort(msg.datemsg)"
|
||||
text-color="black"
|
||||
bg-color="grey-2">
|
||||
:text-color="$q.dark.isActive ? `white` : `black`"
|
||||
bg-color="grey-2"
|
||||
>
|
||||
<template v-slot:avatar>
|
||||
<q-avatar size="sm">
|
||||
<img :src="getImgByMsg(msg)" :alt="getUsernameChatByMsg(msg)">
|
||||
<img
|
||||
:src="getImgByMsg(msg)"
|
||||
:alt="getUsernameChatByMsg(msg)"
|
||||
/>
|
||||
</q-avatar>
|
||||
</template>
|
||||
</q-chat-message>
|
||||
@@ -115,37 +142,32 @@
|
||||
:text="getMsgText(msg, true)"
|
||||
:stamp="tools.getstrDateTimeShort(msg.datemsg)"
|
||||
sent
|
||||
bg-color="blue-2">
|
||||
bg-color="blue-2"
|
||||
>
|
||||
<template v-slot:avatar>
|
||||
<CMyAvatar size="sm" :username="Username()"></CMyAvatar>
|
||||
<CMyAvatar
|
||||
size="sm"
|
||||
:username="Username()"
|
||||
></CMyAvatar>
|
||||
</template>
|
||||
|
||||
</q-chat-message>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</q-item>
|
||||
<div id="last"></div>
|
||||
<q-inner-loading id="spinner" :showing="loading">
|
||||
<q-spinner-tail
|
||||
color="primary"
|
||||
size="4em">
|
||||
</q-spinner-tail>
|
||||
<q-spinner-tail color="primary" size="4em"> </q-spinner-tail>
|
||||
</q-inner-loading>
|
||||
</div>
|
||||
</q-page>
|
||||
</q-page-container>
|
||||
</div>
|
||||
<div class="bottomfixed row" :style="styletextbar">
|
||||
<div class="" style="max-width: 50px; align-self: center; order: 1;">
|
||||
<q-btn
|
||||
rounded
|
||||
size="sm"
|
||||
icon="fas fa-smile">
|
||||
</q-btn>
|
||||
<div class="" style="max-width: 50px; align-self: center; order: 1">
|
||||
<q-btn rounded size="sm" icon="fas fa-smile"> </q-btn>
|
||||
</div>
|
||||
<div class="" style="max-height: 100px; flex-grow:1; order: 2;">
|
||||
<div class="" style="max-height: 100px; flex-grow: 1; order: 2">
|
||||
<q-input
|
||||
bordered
|
||||
rounded
|
||||
@@ -153,17 +175,12 @@
|
||||
debounce="1000"
|
||||
filled
|
||||
autogrow
|
||||
input-style="max-height: 95px;">
|
||||
input-style="max-height: 95px;"
|
||||
>
|
||||
</q-input>
|
||||
</div>
|
||||
<div class="" style="max-width: 50px; align-self: center; order: 3;">
|
||||
<q-btn
|
||||
push
|
||||
rounded
|
||||
size="sm"
|
||||
icon="send"
|
||||
@click="sendMsg">
|
||||
</q-btn>
|
||||
<div class="" style="max-width: 50px; align-self: center; order: 3">
|
||||
<q-btn push rounded size="sm" icon="send" @click="sendMsg"> </q-btn>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="">
|
||||
<div class="q-my-sm">
|
||||
<CNotifAtTop />
|
||||
<!--<q-banner
|
||||
rounded
|
||||
@@ -20,6 +20,7 @@
|
||||
>
|
||||
|
||||
<CFinder
|
||||
:ind="10"
|
||||
:table="toolsext.TABMYGROUPS"
|
||||
:showFilterPersonal="true"
|
||||
/>
|
||||
|
||||
@@ -193,6 +193,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<CTitleBanner
|
||||
v-if="site.confpages.showCompetenze"
|
||||
class="" :title="$t('profile.skills')" bgcolor="bg-primary" clcolor="text-white"
|
||||
|
||||
@@ -12605,6 +12605,11 @@ vue-scroll-reveal@^1.0.11:
|
||||
dependencies:
|
||||
scrollreveal "^4.0.2"
|
||||
|
||||
vue-social-sharing@^4.0.0-alpha4:
|
||||
version "4.0.0-alpha4"
|
||||
resolved "https://registry.yarnpkg.com/vue-social-sharing/-/vue-social-sharing-4.0.0-alpha4.tgz#48d17f4ff2828c60689f2a065df86588af2bd1fb"
|
||||
integrity sha512-hMbgpZkY5aRAiznSB/sgzdMVgdSbkmIHEaELX7pUbuUd6KS1Z/GAi7a/q0Qn+GFn0+6qMMvwyp3ZOE0+WYPQ1w==
|
||||
|
||||
vue-style-loader@4.1.3:
|
||||
version "4.1.3"
|
||||
resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz#6d55863a51fa757ab24e89d9371465072aa7bc35"
|
||||
|
||||
Reference in New Issue
Block a user