followme in export
This commit is contained in:
61
components/FollowMe.vue
Normal file
61
components/FollowMe.vue
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
<template lang='pug'>
|
||||||
|
div
|
||||||
|
p(v-html="$t('event.follow_me_description', { title: settings.title, account: `@${settings.instance_name}@${domain}`})")
|
||||||
|
el-input(v-model='instance_hostname' ref='instance')
|
||||||
|
a(slot='append' :href='link' target='_blank')
|
||||||
|
el-button(:disabled='(!couldGo || !proceed)' plain type="primary" icon='el-icon-document') {{$t("common.follow")}}
|
||||||
|
p.mt-2 <img class='instance_thumb' :src="instance.thumbnail"/> {{instance.title}}
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { mapState } from 'vuex'
|
||||||
|
import debounce from 'lodash/debounce'
|
||||||
|
import url from 'url'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'FollowMe',
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
instance_hostname: '',
|
||||||
|
proceed: false,
|
||||||
|
instance: {},
|
||||||
|
get_instance_info: debounce(this.getInstanceInfo, 500)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
...mapState(['settings']),
|
||||||
|
domain () {
|
||||||
|
const URL = url.parse(this.settings.baseurl)
|
||||||
|
return URL.hostname
|
||||||
|
},
|
||||||
|
couldGo () {
|
||||||
|
console.error(this.instance_hostname)
|
||||||
|
// check if is mastodon
|
||||||
|
this.get_instance_info()
|
||||||
|
return true
|
||||||
|
},
|
||||||
|
link () {
|
||||||
|
// check if exists
|
||||||
|
return `https://${this.instance_hostname}/authorize_interaction?uri=${this.settings.instance_name}@${this.domain}`
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getInstanceInfo () {
|
||||||
|
const instance_url = `https://${this.instance_hostname}/api/v1/instance`
|
||||||
|
this.$axios.$get(instance_url)
|
||||||
|
.then(ret => {
|
||||||
|
this.instance = ret
|
||||||
|
this.proceed = true
|
||||||
|
})
|
||||||
|
.catch(e => {
|
||||||
|
this.proceed = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="less">
|
||||||
|
.instance_thumb {
|
||||||
|
height: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<template lang='pug'>
|
<template lang='pug'>
|
||||||
el-container#main(:class='{dark: $route.name==="index"}')
|
el-container#main(:class='{dark: $route.name==="index"}')
|
||||||
el-dialog.followDialog(:visible.sync='showFollowMe')
|
el-dialog(:visible.sync='showFollowMe')
|
||||||
h4(slot='title') {{$t('common.follow_me_title')}}
|
h4(slot='title') {{$t('common.follow_me_title')}}
|
||||||
FollowMe
|
FollowMe
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import Nav from '~/components/Nav.vue'
|
import Nav from '~/components/Nav.vue'
|
||||||
import { mapState } from 'vuex'
|
import { mapState } from 'vuex'
|
||||||
import FollowMe from '../pages/event/followMe'
|
import FollowMe from '../components/FollowMe'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { Nav, FollowMe },
|
components: { Nav, FollowMe },
|
||||||
|
|||||||
@@ -136,7 +136,7 @@
|
|||||||
"from": "Dalle",
|
"from": "Dalle",
|
||||||
"image_too_big": "Immagine troppo grande! Massimo 4M",
|
"image_too_big": "Immagine troppo grande! Massimo 4M",
|
||||||
"interact_with_me": "Seguimi dal fediverso",
|
"interact_with_me": "Seguimi dal fediverso",
|
||||||
"follow_me_description": "Tra i vari modi di rimanere aggiornati degli eventi pubblicati qui su {title},\n puoi seguire l'account <u>{account}</u> dal fediverso, ad esempio via mastodon, ed eventualmente aggiungere risorse a questo evento da lì.<br/><br/>\n Se non hai mai sentito parlare di mastodon e del fediverso ti consigliamo di leggere <a href='https://cagizero.wordpress.com/2018/10/25/cose-mastodon/'>questo articolo</a>.<br/><br/> Inserisci la tua istanza qui sotto (es. mastodon.cisti.org o mastodon.bida.im)"
|
"follow_me_description": "Tra i vari modi di rimanere aggiornati degli eventi pubblicati qui su {title},\n puoi seguire l'account <u>{account}</u> dal fediverso, ad esempio via mastodon, ed eventualmente aggiungere risorse ad un evento da lì.<br/><br/>\n Se non hai mai sentito parlare di mastodon e del fediverso ti consigliamo di leggere <a href='https://cagizero.wordpress.com/2018/10/25/cose-mastodon/'>questo articolo</a>.<br/><br/> Inserisci la tua istanza qui sotto (es. mastodon.cisti.org o mastodon.bida.im)"
|
||||||
},
|
},
|
||||||
"admin": {
|
"admin": {
|
||||||
"place_description": "Nel caso in cui un luogo sia errato o cambi indirizzo, puoi modificarlo. <br/>Considera che tutti gli eventi associati a questo luogo cambieranno indirizzo (anche quelli passati!)",
|
"place_description": "Nel caso in cui un luogo sia errato o cambi indirizzo, puoi modificarlo. <br/>Considera che tutti gli eventi associati a questo luogo cambieranno indirizzo (anche quelli passati!)",
|
||||||
|
|||||||
@@ -55,7 +55,7 @@
|
|||||||
el-button(type='text' @click='showFollowMe=true') {{$t('event.interact_with_me')}}
|
el-button(type='text' @click='showFollowMe=true') {{$t('event.interact_with_me')}}
|
||||||
span(v-if='settings.enable_resources && event.resources.length') - {{$tc('common.n_resources', event.resources.length)}}
|
span(v-if='settings.enable_resources && event.resources.length') - {{$tc('common.n_resources', event.resources.length)}}
|
||||||
|
|
||||||
el-dialog.followDialog(:visible.sync='showFollowMe' destroy-on-close)
|
el-dialog(:visible.sync='showFollowMe' destroy-on-close)
|
||||||
h4(slot='title') {{$t('common.follow_me_title')}}
|
h4(slot='title') {{$t('common.follow_me_title')}}
|
||||||
FollowMe
|
FollowMe
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@
|
|||||||
import { mapState, mapGetters } from 'vuex'
|
import { mapState, mapGetters } from 'vuex'
|
||||||
import EventAdmin from './eventAdmin'
|
import EventAdmin from './eventAdmin'
|
||||||
import EmbedEvent from './embedEvent'
|
import EmbedEvent from './embedEvent'
|
||||||
import FollowMe from './followMe'
|
import FollowMe from '../../components/FollowMe'
|
||||||
import { Message, MessageBox } from 'element-ui'
|
import { Message, MessageBox } from 'element-ui'
|
||||||
|
|
||||||
import moment from 'moment-timezone'
|
import moment from 'moment-timezone'
|
||||||
|
|||||||
@@ -14,13 +14,16 @@
|
|||||||
//- el-input.mt-2(v-model='notification.email' :placeholder="$t('export.insert_your_address')" ref='email')
|
//- el-input.mt-2(v-model='notification.email' :placeholder="$t('export.insert_your_address')" ref='email')
|
||||||
//- el-button.mt-2.float-right(native-type= 'submit' type='success' @click='add_notification') {{$t('common.send')}}
|
//- el-button.mt-2.float-right(native-type= 'submit' type='success' @click='add_notification') {{$t('common.send')}}
|
||||||
|
|
||||||
el-tab-pane.pt-1(label='feed rss' name='rss')
|
el-tab-pane.pt-1(label='Feed rss' name='rss')
|
||||||
span(v-html='$t(`export.feed_description`)')
|
span(v-html='$t(`export.feed_description`)')
|
||||||
el-input(v-model='link')
|
el-input(v-model='link')
|
||||||
el-button(slot='append' plain
|
el-button(slot='append' plain
|
||||||
v-clipboard:copy='link' v-clipboard:success='copyLink'
|
v-clipboard:copy='link' v-clipboard:success='copyLink'
|
||||||
type="primary" icon='el-icon-document' ) {{$t("common.copy")}}
|
type="primary" icon='el-icon-document' ) {{$t("common.copy")}}
|
||||||
|
|
||||||
|
el-tab-pane.pt-1(:label="$t('common.fediverse')" name='fediverse')
|
||||||
|
FollowMe
|
||||||
|
|
||||||
el-tab-pane.pt-1(label='ics/ical' name='ics')
|
el-tab-pane.pt-1(label='ics/ical' name='ics')
|
||||||
p(v-html='$t(`export.ical_description`)')
|
p(v-html='$t(`export.ical_description`)')
|
||||||
el-input(v-model='link')
|
el-input(v-model='link')
|
||||||
@@ -36,8 +39,7 @@
|
|||||||
el-col.float-right(:span='12')
|
el-col.float-right(:span='12')
|
||||||
List(
|
List(
|
||||||
:title='list.title'
|
:title='list.title'
|
||||||
:events='filteredEvents'
|
:events='filteredEvents')
|
||||||
)
|
|
||||||
el-input.mb-1(type='textarea' v-model='listScript' readonly )
|
el-input.mb-1(type='textarea' v-model='listScript' readonly )
|
||||||
el-button.float-right(plain v-clipboard:copy='listScript' v-clipboard:success='copyLink'
|
el-button.float-right(plain v-clipboard:copy='listScript' v-clipboard:success='copyLink'
|
||||||
type='primary' icon='el-icon-document') {{$t('common.copy')}}
|
type='primary' icon='el-icon-document') {{$t('common.copy')}}
|
||||||
@@ -54,12 +56,12 @@
|
|||||||
<script>
|
<script>
|
||||||
import { mapState, mapGetters } from 'vuex'
|
import { mapState, mapGetters } from 'vuex'
|
||||||
import List from '@/components/List'
|
import List from '@/components/List'
|
||||||
import Search from '@/components/Search'
|
import FollowMe from '../components/FollowMe'
|
||||||
import { Message } from 'element-ui'
|
import { Message } from 'element-ui'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Exports',
|
name: 'Exports',
|
||||||
components: { List, Search },
|
components: { List, FollowMe },
|
||||||
async asyncData ({ $axios, params, store }) {
|
async asyncData ({ $axios, params, store }) {
|
||||||
// get metadata just in case we are not coming from home
|
// get metadata just in case we are not coming from home
|
||||||
if (store.state.tags.length) { return }
|
if (store.state.tags.length) { return }
|
||||||
@@ -76,6 +78,10 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
...mapState(['filters', 'events', 'settings']),
|
...mapState(['filters', 'events', 'settings']),
|
||||||
...mapGetters(['filteredEvents']),
|
...mapGetters(['filteredEvents']),
|
||||||
|
domain () {
|
||||||
|
const URL = url.parse(this.settings.baseurl)
|
||||||
|
return URL.hostname
|
||||||
|
},
|
||||||
listScript () {
|
listScript () {
|
||||||
const params = []
|
const params = []
|
||||||
if (this.list.title) {
|
if (this.list.title) {
|
||||||
|
|||||||
@@ -222,7 +222,7 @@ const eventController = {
|
|||||||
const eventDetails = {
|
const eventDetails = {
|
||||||
title: body.title,
|
title: body.title,
|
||||||
// remove html tags
|
// remove html tags
|
||||||
description: sanitizeHtml(body.description),
|
description: helpers.sanitizeHTML(body.description),
|
||||||
multidate: body.multidate,
|
multidate: body.multidate,
|
||||||
start_datetime: body.start_datetime,
|
start_datetime: body.start_datetime,
|
||||||
end_datetime: body.end_datetime,
|
end_datetime: body.end_datetime,
|
||||||
|
|||||||
Reference in New Issue
Block a user