Subscribe button working
This commit is contained in:
parent
569850d666
commit
72ef60f23c
File diff suppressed because it is too large
Load Diff
|
@ -53,6 +53,12 @@ export default {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
.caption {
|
||||||
|
float: right;
|
||||||
|
font-size: small;
|
||||||
|
margin: .5rem;
|
||||||
|
}
|
||||||
|
|
||||||
.tops {
|
.tops {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
@ -63,10 +69,4 @@ export default {
|
||||||
.tops li {
|
.tops li {
|
||||||
flex-basis: 15%;
|
flex-basis: 15%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.caption {
|
|
||||||
float: right;
|
|
||||||
font-size: small;
|
|
||||||
margin: .5rem;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -2,16 +2,21 @@
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<img class="background" :src="imageUrl">
|
<img class="background" :src="imageUrl">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<NcAvatar :display-name="author"
|
<NcAvatar class="avatar"
|
||||||
|
:display-name="author"
|
||||||
:is-no-user="true"
|
:is-no-user="true"
|
||||||
:url="imageUrl" />
|
:url="imageUrl" />
|
||||||
<div class="infos">
|
<div class="infos">
|
||||||
<h1>{{ title }}</h1>
|
<h2>{{ title }}</h2>
|
||||||
<a :href="link" target="_blank">
|
<a :href="link" target="_blank">
|
||||||
{{ author }}
|
<i>{{ author }}</i>
|
||||||
</a>
|
</a>
|
||||||
|
<br><br>
|
||||||
|
<p>
|
||||||
|
<small>{{ description }}</small>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<NcAppNavigationNew :text="t('Subscribe')">
|
<NcAppNavigationNew :text="t('Subscribe')" @click="addSubscription">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<Plus :size="20" />
|
<Plus :size="20" />
|
||||||
</template>
|
</template>
|
||||||
|
@ -23,6 +28,9 @@
|
||||||
<script>
|
<script>
|
||||||
import { NcAppNavigationNew, NcAvatar } from '@nextcloud/vue'
|
import { NcAppNavigationNew, NcAvatar } from '@nextcloud/vue'
|
||||||
import Plus from 'vue-material-design-icons/Plus.vue'
|
import Plus from 'vue-material-design-icons/Plus.vue'
|
||||||
|
import axios from '@nextcloud/axios'
|
||||||
|
import { generateUrl } from '@nextcloud/router'
|
||||||
|
import { showError } from '@nextcloud/dialogs'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Banner',
|
name: 'Banner',
|
||||||
|
@ -36,6 +44,10 @@ export default {
|
||||||
type: String,
|
type: String,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
|
description: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
imageUrl: {
|
imageUrl: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true,
|
required: true,
|
||||||
|
@ -49,26 +61,54 @@ export default {
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
url() {
|
||||||
|
return atob(this.$route.params.url)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async addSubscription() {
|
||||||
|
try {
|
||||||
|
await axios.post(generateUrl('/apps/gpoddersync/subscription_change/create'), { add: [this.url], remove: [] })
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e)
|
||||||
|
showError(t('Error while adding the feed'))
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$store.dispatch('subscriptions/fetch')
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.header {
|
.avatar {
|
||||||
overflow: hidden;
|
height: 8rem;
|
||||||
position: relative;
|
width: 8rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.background {
|
.background {
|
||||||
filter: blur(.5rem) brightness(50%);
|
filter: blur(.5rem) brightness(50%);
|
||||||
|
height: auto;
|
||||||
|
left: 0;
|
||||||
opacity: 0.4;
|
opacity: 0.4;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: auto;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
|
display: flex;
|
||||||
|
gap: 2rem;
|
||||||
|
height: 10rem;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header {
|
||||||
|
height: 14rem;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 2rem;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -37,9 +37,9 @@ export default {
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.main {
|
.main {
|
||||||
margin: 15px 51px;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
|
margin: 15px 51px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
</NcEmptyContent>
|
</NcEmptyContent>
|
||||||
<Banner v-if="feed"
|
<Banner v-if="feed"
|
||||||
:author="feed.author"
|
:author="feed.author"
|
||||||
|
:description="feed.description"
|
||||||
:image-url="feed.imageUrl"
|
:image-url="feed.imageUrl"
|
||||||
:link="feed.link"
|
:link="feed.link"
|
||||||
:title="feed.title" />
|
:title="feed.title" />
|
||||||
|
|
|
@ -30,10 +30,10 @@ export default {
|
||||||
NcButton,
|
NcButton,
|
||||||
NcEmptyContent,
|
NcEmptyContent,
|
||||||
},
|
},
|
||||||
data() {
|
computed: {
|
||||||
return {
|
gPodderSyncUrl() {
|
||||||
gPodderSyncUrl: generateUrl('/settings/apps/installed/gpoddersync'),
|
return generateUrl('/settings/apps/installed/gpoddersync')
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in New Issue