fix Cliccando sul Titolo dell'evento, si apre una pagina in una nuova finestra ! (non rimane sulla APP)

This commit is contained in:
Surya Paolo
2022-12-02 13:24:20 +01:00
parent 009735afad
commit 9b7b25e657
26 changed files with 1201 additions and 499 deletions

View File

@@ -70,6 +70,7 @@
"vue-property-decorator": "^10.0.0-rc.3", "vue-property-decorator": "^10.0.0-rc.3",
"vue-router": "^4.1.6", "vue-router": "^4.1.6",
"vue-scroll-reveal": "^1.0.11", "vue-scroll-reveal": "^1.0.11",
"vue-social-sharing": "^4.0.0-alpha4",
"vue-svgicon": "^4.0.0-alpha.3", "vue-svgicon": "^4.0.0-alpha.3",
"vue2-dragula": "^2.5.5", "vue2-dragula": "^2.5.5",
"vuex": "^4.1.0", "vuex": "^4.1.0",

View File

@@ -37,7 +37,7 @@ module.exports = configure((ctx) => ({
// --> boot files are part of "main.js" // --> boot files are part of "main.js"
// https://v2.quasar.dev/quasar-cli/boot-files // 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: ['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 // https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
css: [ css: [

8
src/boot/social-sharing.ts Executable file
View 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);
})

View File

@@ -55,7 +55,7 @@
style="opacity: 0.7;" style="opacity: 0.7;"
> >
<q-btn <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> @click="$refs.carousel.previous()"></q-btn>
</q-carousel-control> </q-carousel-control>
<q-carousel-control <q-carousel-control
@@ -64,7 +64,7 @@
style="opacity: 0.7;" style="opacity: 0.7;"
> >
<q-btn <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> @click="$refs.carousel.next()"></q-btn>
</q-carousel-control> </q-carousel-control>
</template> </template>

View File

@@ -23,7 +23,7 @@
<div class="text-h6 text-center"> <div class="text-h6 text-center">
Visualizza le FAQ (Risposte alle domande più frequenti)<br> Visualizza le FAQ (Risposte alle domande più frequenti)<br>
<div class="text-center"> <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>
</div> </div>
</q-banner> </q-banner>

View File

@@ -937,6 +937,12 @@ export default defineComponent({
return event.title return event.title
} }
function condividipag(href: string) {
const msg = self.location.host + href
return tools.copyStringToClipboard($q, msg, true)
}
onMounted(mounted) onMounted(mounted)
onBeforeMount(beforeMount) onBeforeMount(beforeMount)
@@ -1022,6 +1028,7 @@ export default defineComponent({
EState, EState,
CancelBookingEvent, CancelBookingEvent,
site: globalStore.site, site: globalStore.site,
condividipag,
} }
} }
}) })

File diff suppressed because it is too large Load Diff

View File

@@ -95,7 +95,7 @@
<div class="q-ma-sm"> <div class="q-ma-sm">
<q-btn <q-btn
v-if="myrec._id" 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" label="Condividi"
@click="condividipag"></q-btn> @click="condividipag"></q-btn>
</div> </div>

View File

@@ -79,7 +79,7 @@
<div class="q-ma-sm"> <div class="q-ma-sm">
<q-btn <q-btn
v-if="myrec._id" 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" label="Condividi"
@click="condividipag"></q-btn> @click="condividipag"></q-btn>
</div> </div>

View File

@@ -112,7 +112,7 @@
<div class="q-ma-sm"> <div class="q-ma-sm">
<q-btn <q-btn
v-if="myrec._id" 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" label="Condividi"
@click="condividipag"></q-btn> @click="condividipag"></q-btn>
</div> </div>

View File

@@ -2,7 +2,7 @@ import {
defineComponent, onMounted, PropType, ref, toRef, watch, defineComponent, onMounted, PropType, ref, toRef, watch,
} from 'vue' } 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 { useGlobalStore } from '@store/globalStore'
import { CImgTitle } from '../CImgTitle/index' import { CImgTitle } from '../CImgTitle/index'
@@ -27,6 +27,7 @@ import { CCheckIfIsLogged } from '@src/components/CCheckIfIsLogged'
import { CSelectFontSize } from '@src/components/CSelectFontSize' import { CSelectFontSize } from '@src/components/CSelectFontSize'
import { CNotifAtTop } from '@src/components/CNotifAtTop' import { CNotifAtTop } from '@src/components/CNotifAtTop'
import { CPresentazione } from '@src/components/CPresentazione' import { CPresentazione } from '@src/components/CPresentazione'
import { CShareSocial } from '@src/components/CShareSocial'
import MixinMetaTags from '@/mixins/mixin-metatags' import MixinMetaTags from '@/mixins/mixin-metatags'
import MixinBase from '@/mixins/mixin-base' import MixinBase from '@/mixins/mixin-base'
@@ -43,7 +44,7 @@ export default defineComponent({
CSelectColor, CSelectFontSize, CImgPoster, CSelectColor, CSelectFontSize, CImgPoster,
CCheckIfIsLogged, CStatusReg, CDashboard, CMainView, CNotifAtTop, CCheckIfIsLogged, CStatusReg, CDashboard, CMainView, CNotifAtTop,
CPresentazione, CPresentazione,
CTitleBanner, CTitleBanner, CShareSocial,
}, },
emits: ['selElemClick'], emits: ['selElemClick'],
props: { props: {
@@ -88,6 +89,9 @@ export default defineComponent({
const disableSave = ref(true) const disableSave = ref(true)
const enableEdit = ref(false) const enableEdit = ref(false)
const enableAdd = ref(true) const enableAdd = ref(true)
const visushare = ref(false)
const social = ref(<ISocial>{})
const neworder = ref(<number | undefined>0) const neworder = ref(<number | undefined>0)
@@ -227,6 +231,21 @@ export default defineComponent({
$router.replace('/signin') $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) onMounted(mounted)
return { return {
@@ -256,6 +275,9 @@ export default defineComponent({
dupElem, dupElem,
globalStore, globalStore,
PagLogin, PagLogin,
visushare,
social,
clickshare,
} }
}, },

View File

@@ -466,14 +466,7 @@
" "
rounded rounded
:label="$t('reg.link_reg_and_msg')" :label="$t('reg.link_reg_and_msg')"
@click=" @click="clickshare"
tools.sendMsgTelegramCmd(
$q,
$t,
shared_consts.MsgTeleg.SHARE_MSGREG,
true
)
"
> >
</q-btn> </q-btn>
</div> </div>
@@ -513,9 +506,7 @@
size="xs" size="xs"
/> />
</template> </template>
<span class="mybanner" <span class="mybanner"> TEST !</span>
>
TEST !</span>
</q-banner> </q-banner>
</div> </div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CHECKNEWVERSION"> <div v-else-if="myel.type === shared_consts.ELEMTYPE.CHECKNEWVERSION">
@@ -600,6 +591,21 @@
</div> </div>
</div> </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> </template>
<script lang="ts" src="./CMyElem.ts"> <script lang="ts" src="./CMyElem.ts">

View 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;
}

View 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,
}
},
})

View 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>

View File

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

View File

@@ -14,6 +14,7 @@ export * from './CImgTitle'
export * from './CMyAvatar' export * from './CMyAvatar'
export * from './CMyCart' export * from './CMyCart'
export * from './CMyFieldDb' export * from './CMyFieldDb'
export * from './CShareSocial'
export * from './CBarSelection' export * from './CBarSelection'
export * from './CMyFieldRec' export * from './CMyFieldRec'
export * from './CImgPoster' export * from './CImgPoster'

View File

@@ -669,6 +669,14 @@ export interface IParamsQuery {
extrapar?: string extrapar?: string
} }
export interface ISocial {
description: string
network: string
title: string
url: string
quote: string
}
export interface ISpecialField { export interface ISpecialField {
findsubkey?: any findsubkey?: any
paramtosetsubkey?: any paramtosetsubkey?: any

View File

@@ -140,6 +140,7 @@ export default defineComponent({
setmeta, setmeta,
myevent, myevent,
selected, selected,
tools,
} }
} }

View File

@@ -734,7 +734,7 @@ const msg_it = {
booked_error: 'Prenotazione non avvenuta. Riprovare più tardi', booked_error: 'Prenotazione non avvenuta. Riprovare più tardi',
sendmsg_error: 'Messaggio non inviato. Riprovare più tardi', sendmsg_error: 'Messaggio non inviato. Riprovare più tardi',
sendmsg_sent: 'Messaggio Inviato', 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', sendmsgs_sent: 'Messaggi Inviati',
err_sendmsg: 'Errore durante l\'invio del Messaggio', err_sendmsg: 'Errore durante l\'invio del Messaggio',
booking: 'Prenota Evento', booking: 'Prenota Evento',

View File

@@ -4467,6 +4467,12 @@ export const tools = {
}, },
copyStringToClipboardSilent(mystr: string) {
copyToClipboard(mystr)
},
getlinkhref(mylink: string, text: string) { getlinkhref(mylink: string, text: string) {
return '<a href="' + mylink + '" target="_blank">' + text + '</a>' return '<a href="' + mylink + '" target="_blank">' + text + '</a>'
}, },

View File

@@ -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 = { const data = {
username, username,
idnotif idnotif
@@ -1104,9 +1104,9 @@ export const useUserStore = defineStore('UserStore', {
return Api.SendReq('/mygroup/load', 'POST', data) return Api.SendReq('/mygroup/load', 'POST', data)
.then((res) => { .then((res) => {
return {data: res.data, status: res.status} return { data: res.data, status: res.status }
}).catch((error) => { }).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) return Api.SendReq('/circuit/load', 'POST', data)
.then((res) => { .then((res) => {
return {data: res.data, status: res.status} return { data: res.data, status: res.status }
}).catch((error) => { }).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') 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) { if (mydata.cmd === shared_consts.MsgTeleg.SHARE_MSGREG) {
msgok = t('cal.sendmsg_sent_sharedlink') + ' ' + tools.getBotName() msgok = t('cal.sendmsg_sent_sharedlink') + ' ' + tools.getBotName()
showmsgsent = true
} }
if (showmsgsent && res.data.nummsgsent >= 0) { if (showmsgsent && res.data.nummsgsent >= 0) {
tools.showPositiveNotif($q, msgok) tools.showPositiveNotif($q, msgok)
if (mydata.cmd === shared_consts.MsgTeleg.SHARE_MSGREG) {
if (res.data.textsent) {
return res.data.textsent
}
}
return true return true
} }
return false return false

View File

@@ -1,49 +1,55 @@
<template> <template>
<div class="q-pr-md"> <div class="q-pr-md">
<q-layout <q-layout
view="hHh Lpr lff" container :style="`height: ` + getheight + `px`" view="hHh Lpr lff"
class="shadow-2 rounded-borders messages_page"> container
:style="`height: ` + getheight + `px`"
class="shadow-2 rounded-borders messages_page"
>
<q-drawer <q-drawer
v-model="mydrawer" v-model="mydrawer"
:mini="!mydrawer || miniState" :mini="!mydrawer || miniState"
@click.capture="drawerClick" @click.capture="drawerClick"
:width="widthdrawer" :width="widthdrawer"
:breakpoint="300" :breakpoint="300"
bordered bordered
content-class="bg-grey-3"> content-class="bg-grey-3"
>
<q-scroll-area class="fit"> <q-scroll-area class="fit">
<q-list bordered class="rounded-borders chat-list"> <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"> <div v-if="getNumMsg() === 0">
<q-item> <q-item>
{{ $t('msgs.nomessage') }} {{ $t('msgs.nomessage') }}
</q-item> </q-item>
</div> </div>
<q-item <q-item
clickable clickable
:active="isMenuActive(msg.dest.username)" :active="isMenuActive(msg.dest.username)"
active-class="active-user" active-class="active-user"
v-for="(msg, index) in lasts_messages()" v-for="(msg, index) in lasts_messages()"
:key="index" :key="index"
@click="selChat(msg)"> @click="selChat(msg)"
>
<q-item-section avatar> <q-item-section avatar>
<q-avatar> <q-avatar>
<img :src="getImgByMsg(msg)" :alt="getUsernameChatByMsg(msg)"> <img
:src="getImgByMsg(msg)"
:alt="getUsernameChatByMsg(msg)"
/>
</q-avatar> </q-avatar>
</q-item-section> </q-item-section>
<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"> <q-item-label caption lines="2">
{{ getMsgText(msg, false) }} {{ getMsgText(msg, false) }}
</q-item-label> </q-item-label>
@@ -54,18 +60,22 @@
</q-item-section> </q-item-section>
</q-item> </q-item>
<q-separator/> <q-separator />
</q-list> </q-list>
</q-scroll-area> </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 <q-btn
dense dense
round round
unelevated unelevated
color="accent" color="accent"
icon="chevron_left" icon="chevron_left"
@click="miniState = true"> @click="miniState = true"
>
</q-btn> </q-btn>
</div> </div>
</q-drawer> </q-drawer>
@@ -75,36 +85,53 @@
<q-page-container style=""> <q-page-container style="">
<q-page class="q-px-lg q-py-md"> <q-page class="q-px-lg q-py-md">
<div> <div>
<q-item clickable v-if="!!chatsel.username" @scroll="myonScroll"> <q-item
clickable
v-if="!!chatsel.username"
@scroll="myonScroll"
>
<q-item-section avatar> <q-item-section avatar>
<CMyAvatar :username="chatsel.username"></CMyAvatar> <CMyAvatar :username="chatsel.username"></CMyAvatar>
</q-item-section> </q-item-section>
<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"> <q-item-label caption lines="2">
{{ func_tools.getDateTimeShortStr(chatsel.lasttimeActive) }} {{
func_tools.getDateTimeShortStr(chatsel.lasttimeActive)
}}
</q-item-label> </q-item-label>
</q-item-section> </q-item-section>
</q-item> </q-item>
</div> </div>
<q-separator/> <q-separator />
<div class="q-pa-md"> <div class="q-pa-md">
<q-item <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 v-if="msg.dest">
<div> <div>
<div class="chat_dest" v-if="msg.dest.username === Username()"> <div
class="chat_dest"
v-if="msg.dest.username === Username()"
>
<q-chat-message <q-chat-message
:name="getUsernameChatByMsg(msg)" :name="getUsernameChatByMsg(msg)"
:text="getMsgText(msg, true)" :text="getMsgText(msg, true)"
:stamp="tools.getstrDateTimeShort(msg.datemsg)" :stamp="tools.getstrDateTimeShort(msg.datemsg)"
text-color="black" :text-color="$q.dark.isActive ? `white` : `black`"
bg-color="grey-2"> bg-color="grey-2"
>
<template v-slot:avatar> <template v-slot:avatar>
<q-avatar size="sm"> <q-avatar size="sm">
<img :src="getImgByMsg(msg)" :alt="getUsernameChatByMsg(msg)"> <img
:src="getImgByMsg(msg)"
:alt="getUsernameChatByMsg(msg)"
/>
</q-avatar> </q-avatar>
</template> </template>
</q-chat-message> </q-chat-message>
@@ -115,37 +142,32 @@
:text="getMsgText(msg, true)" :text="getMsgText(msg, true)"
:stamp="tools.getstrDateTimeShort(msg.datemsg)" :stamp="tools.getstrDateTimeShort(msg.datemsg)"
sent sent
bg-color="blue-2"> bg-color="blue-2"
>
<template v-slot:avatar> <template v-slot:avatar>
<CMyAvatar size="sm" :username="Username()"></CMyAvatar> <CMyAvatar
size="sm"
:username="Username()"
></CMyAvatar>
</template> </template>
</q-chat-message> </q-chat-message>
</div> </div>
</div> </div>
</div> </div>
</q-item> </q-item>
<div id="last"></div> <div id="last"></div>
<q-inner-loading id="spinner" :showing="loading"> <q-inner-loading id="spinner" :showing="loading">
<q-spinner-tail <q-spinner-tail color="primary" size="4em"> </q-spinner-tail>
color="primary"
size="4em">
</q-spinner-tail>
</q-inner-loading> </q-inner-loading>
</div> </div>
</q-page> </q-page>
</q-page-container> </q-page-container>
</div> </div>
<div class="bottomfixed row" :style="styletextbar"> <div class="bottomfixed row" :style="styletextbar">
<div class="" style="max-width: 50px; align-self: center; order: 1;"> <div class="" style="max-width: 50px; align-self: center; order: 1">
<q-btn <q-btn rounded size="sm" icon="fas fa-smile"> </q-btn>
rounded
size="sm"
icon="fas fa-smile">
</q-btn>
</div> </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 <q-input
bordered bordered
rounded rounded
@@ -153,17 +175,12 @@
debounce="1000" debounce="1000"
filled filled
autogrow autogrow
input-style="max-height: 95px;"> input-style="max-height: 95px;"
>
</q-input> </q-input>
</div> </div>
<div class="" style="max-width: 50px; align-self: center; order: 3;"> <div class="" style="max-width: 50px; align-self: center; order: 3">
<q-btn <q-btn push rounded size="sm" icon="send" @click="sendMsg"> </q-btn>
push
rounded
size="sm"
icon="send"
@click="sendMsg">
</q-btn>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -1,5 +1,5 @@
<template> <template>
<div class=""> <div class="q-my-sm">
<CNotifAtTop /> <CNotifAtTop />
<!--<q-banner <!--<q-banner
rounded rounded
@@ -20,6 +20,7 @@
> >
<CFinder <CFinder
:ind="10"
:table="toolsext.TABMYGROUPS" :table="toolsext.TABMYGROUPS"
:showFilterPersonal="true" :showFilterPersonal="true"
/> />

View File

@@ -193,6 +193,7 @@
</div> </div>
</div> </div>
<CTitleBanner <CTitleBanner
v-if="site.confpages.showCompetenze" v-if="site.confpages.showCompetenze"
class="" :title="$t('profile.skills')" bgcolor="bg-primary" clcolor="text-white" class="" :title="$t('profile.skills')" bgcolor="bg-primary" clcolor="text-white"

View File

@@ -12605,6 +12605,11 @@ vue-scroll-reveal@^1.0.11:
dependencies: dependencies:
scrollreveal "^4.0.2" 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: vue-style-loader@4.1.3:
version "4.1.3" version "4.1.3"
resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz#6d55863a51fa757ab24e89d9371465072aa7bc35" resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz#6d55863a51fa757ab24e89d9371465072aa7bc35"