fix Cliccando sul Titolo dell'evento, si apre una pagina in una nuova finestra ! (non rimane sulla APP)
This commit is contained in:
@@ -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",
|
||||||
|
|||||||
@@ -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
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;"
|
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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
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 './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'
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -140,6 +140,7 @@ export default defineComponent({
|
|||||||
setmeta,
|
setmeta,
|
||||||
myevent,
|
myevent,
|
||||||
selected,
|
selected,
|
||||||
|
tools,
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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',
|
||||||
|
|||||||
@@ -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>'
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user