Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Janek
funkwhale
Commits
c43cd2f8
Verified
Commit
c43cd2f8
authored
Apr 30, 2021
by
Ciarán Ainsworth
Committed by
Georg Krause
May 01, 2021
Browse files
Resolve "Channel: clicking auf "Subscribe" when not logged in still updates the subscriber count"
parent
6c34b143
Changes
4
Hide whitespace changes
Inline
Side-by-side
changes/changelog.d/1296.enhancement
0 → 100644
View file @
c43cd2f8
Added modal to prompt users to log in when subscribing to channels (#1296)
front/scripts/fix-fomantic-css.py
View file @
c43cd2f8
...
...
@@ -164,6 +164,7 @@ def discard_unused_icons(rule):
".wikipedia"
,
".wrench"
,
".x"
,
".key"
,
]
if
":before"
not
in
rule
[
"lines"
][
0
]:
return
False
...
...
front/src/components/channels/SubscribeButton.vue
View file @
c43cd2f8
<
template
>
<button
@
click.stop=
"toggle"
:class=
"['ui', 'pink',
{'inverted': isSubscribed}, {'favorited': isSubscribed}, 'icon', 'labeled', 'button']">
<button
v-if=
"$store.state.auth.authenticated"
@
click.stop=
"toggle"
:class=
"['ui', 'pink',
{'inverted': isSubscribed}, {'favorited': isSubscribed}, 'icon', 'labeled', 'button']">
<i
class=
"heart icon"
></i>
<translate
v-if=
"isSubscribed"
translate-context=
"Content/Track/Button.Message"
>
Unsubscribe
</translate>
<translate
v-else
translate-context=
"Content/Track/*/Verb"
>
Subscribe
</translate>
</button>
<button
@
click=
"$refs.loginModal.show = true"
v-else
:class=
"['ui', 'pink', 'icon', 'labeled', 'button']"
>
<i
class=
"heart icon"
></i>
<translate
translate-context=
"Content/Track/*/Verb"
>
Subscribe
</translate>
<login-modal
ref=
"loginModal"
class=
"small"
:nextRoute=
'this.$route.fullPath'
:message=
'this.message.authMessage'
:cover=
'this.channel.artist.cover'
@
created=
"$refs.loginModal.show = false;"
>
</login-modal>
</button>
</
template
>
<
script
>
import
LoginModal
from
'
@/components/common/LoginModal
'
export
default
{
props
:
{
channel
:
{
type
:
Object
},
},
components
:
{
LoginModal
},
computed
:
{
title
()
{
if
(
this
.
isSubscribed
)
{
...
...
@@ -21,7 +38,12 @@ export default {
},
isSubscribed
()
{
return
this
.
$store
.
getters
[
'
channels/isSubscribed
'
](
this
.
channel
.
uuid
)
}
},
message
()
{
return
{
authMessage
:
this
.
$pgettext
(
'
Popup/Message/Paragraph
'
,
'
You need to be logged in to subscribe to this channel
'
)
}
},
},
methods
:
{
toggle
()
{
...
...
front/src/components/common/LoginModal.vue
0 → 100644
View file @
c43cd2f8
<
template
>
<modal
:show.sync=
"show"
>
<h4
class=
"header"
>
{{
labels
.
header
}}
</h4>
<div
v-if=
"cover"
class=
"image content"
>
<div
class=
"ui medium image"
>
<img
:src=
"cover.urls.medium_square_crop"
>
</div>
<div
class=
"description"
>
<div
class=
"ui header"
>
{{
labels
.
description
}}
</div>
<p>
{{
message
}}
</p>
</div>
</div>
<div
v-else
class=
"content"
>
<div
class=
"ui centered header"
>
{{
labels
.
description
}}
</div>
<p
style=
"text-align: center;"
>
{{
message
}}
</p>
</div>
<div
class=
"actions"
>
<router-link
:to=
"
{path: '/login', query: { next: nextRoute }}" class="ui labeled icon button">
<i
class=
"key icon"
></i>
{{
labels
.
login
}}
</router-link>
<router-link
v-if=
"$store.state.instance.settings.users.registration_enabled.value"
:to=
"
{path: '/signup'}" class="ui labeled icon button">
<i
class=
"user icon"
></i>
{{
labels
.
signup
}}
</router-link>
</div>
</modal>
</
template
>
<
script
>
import
Modal
from
'
@/components/semantic/Modal
'
export
default
{
props
:
{
nextRoute
:
{
type
:
String
},
message
:
{
type
:
String
},
cover
:
{
type
:
Object
},
},
components
:
{
Modal
,
},
data
()
{
return
{
show
:
false
,
}
},
computed
:
{
labels
()
{
return
{
header
:
this
.
$pgettext
(
'
Popup/Title/Noun
'
,
"
Unauthenticated
"
),
login
:
this
.
$pgettext
(
'
*/*/Button.Label/Verb
'
,
"
Log in
"
),
signup
:
this
.
$pgettext
(
'
*/*/Button.Label/Verb
'
,
"
Sign up
"
),
description
:
this
.
$pgettext
(
'
Popup/*/Paragraph
'
,
"
You don't have access!
"
),
}
},
}
}
</
script
>
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment