Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
pleroma-fe
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
253
Issues
253
List
Boards
Labels
Service Desk
Milestones
Merge Requests
19
Merge Requests
19
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Pleroma
pleroma-fe
Commits
262760d2
Commit
262760d2
authored
Apr 10, 2019
by
HJ
🐼
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
revert unnecessary changes
parent
6471bec0
Pipeline
#10372
failed with stages
in 1 minute and 18 seconds
Changes
120
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
120 changed files
with
2087 additions
and
4249 deletions
+2087
-4249
src/App.vue
src/App.vue
+26
-87
src/boot/routes.js
src/boot/routes.js
+2
-2
src/components/about/about.vue
src/components/about/about.vue
+3
-3
src/components/attachment/attachment.js
src/components/attachment/attachment.js
+1
-1
src/components/attachment/attachment.vue
src/components/attachment/attachment.vue
+25
-75
src/components/basic_user_card/basic_user_card.vue
src/components/basic_user_card/basic_user_card.vue
+10
-37
src/components/block_card/block_card.vue
src/components/block_card/block_card.vue
+2
-12
src/components/chat_panel/chat_panel.js
src/components/chat_panel/chat_panel.js
+1
-1
src/components/chat_panel/chat_panel.vue
src/components/chat_panel/chat_panel.vue
+15
-44
src/components/color_input/color_input.vue
src/components/color_input/color_input.vue
+27
-38
src/components/contrast_ratio/contrast_ratio.vue
src/components/contrast_ratio/contrast_ratio.vue
+21
-31
src/components/conversation-page/conversation-page.vue
src/components/conversation-page/conversation-page.vue
+2
-2
src/components/conversation/conversation.js
src/components/conversation/conversation.js
+5
-5
src/components/conversation/conversation.vue
src/components/conversation/conversation.vue
+8
-17
src/components/delete_button/delete_button.js
src/components/delete_button/delete_button.js
+1
-1
src/components/delete_button/delete_button.vue
src/components/delete_button/delete_button.vue
+2
-5
src/components/dm_timeline/dm_timeline.vue
src/components/dm_timeline/dm_timeline.vue
+1
-5
src/components/emoji-input/emoji-input.js
src/components/emoji-input/emoji-input.js
+2
-3
src/components/emoji-input/emoji-input.vue
src/components/emoji-input/emoji-input.vue
+19
-22
src/components/export_import/export_import.vue
src/components/export_import/export_import.vue
+9
-24
src/components/favorite_button/favorite_button.js
src/components/favorite_button/favorite_button.js
+2
-2
src/components/favorite_button/favorite_button.vue
src/components/favorite_button/favorite_button.vue
+4
-13
src/components/features_panel/features_panel.vue
src/components/features_panel/features_panel.vue
+7
-15
src/components/follow_card/follow_card.js
src/components/follow_card/follow_card.js
+1
-1
src/components/follow_card/follow_card.vue
src/components/follow_card/follow_card.vue
+4
-15
src/components/follow_request_card/follow_request_card.vue
src/components/follow_request_card/follow_request_card.vue
+2
-12
src/components/follow_requests/follow_requests.vue
src/components/follow_requests/follow_requests.vue
+2
-6
src/components/font_control/font_control.vue
src/components/font_control/font_control.vue
+30
-51
src/components/friends_timeline/friends_timeline.vue
src/components/friends_timeline/friends_timeline.vue
+1
-5
src/components/gallery/gallery.vue
src/components/gallery/gallery.vue
+5
-14
src/components/image_cropper/image_cropper.vue
src/components/image_cropper/image_cropper.vue
+9
-46
src/components/instance_specific_panel/instance_specific_panel.vue
...nents/instance_specific_panel/instance_specific_panel.vue
+3
-5
src/components/interface_language_switcher/interface_language_switcher.vue
...terface_language_switcher/interface_language_switcher.vue
+21
-31
src/components/link-preview/link-preview.vue
src/components/link-preview/link-preview.vue
+4
-16
src/components/login_form/login_form.js
src/components/login_form/login_form.js
+1
-1
src/components/login_form/login_form.vue
src/components/login_form/login_form.vue
+23
-77
src/components/media_modal/media_modal.vue
src/components/media_modal/media_modal.vue
+7
-15
src/components/media_upload/media_upload.js
src/components/media_upload/media_upload.js
+3
-3
src/components/media_upload/media_upload.vue
src/components/media_upload/media_upload.vue
+5
-25
src/components/mentions/mentions.vue
src/components/mentions/mentions.vue
+1
-5
src/components/mobile_nav/mobile_nav.vue
src/components/mobile_nav/mobile_nav.vue
+17
-54
src/components/mobile_post_status_modal/mobile_post_status_modal.vue
...nts/mobile_post_status_modal/mobile_post_status_modal.vue
+17
-25
src/components/mute_card/mute_card.vue
src/components/mute_card/mute_card.vue
+2
-12
src/components/nav_panel/nav_panel.vue
src/components/nav_panel/nav_panel.vue
+7
-10
src/components/notification/notification.vue
src/components/notification/notification.vue
+19
-68
src/components/notifications/notifications.vue
src/components/notifications/notifications.vue
+15
-46
src/components/oauth_callback/oauth_callback.js
src/components/oauth_callback/oauth_callback.js
+1
-1
src/components/opacity_input/opacity_input.vue
src/components/opacity_input/opacity_input.vue
+23
-35
src/components/post_status_form/post_status_form.js
src/components/post_status_form/post_status_form.js
+14
-15
src/components/post_status_form/post_status_form.vue
src/components/post_status_form/post_status_form.vue
+82
-178
src/components/public_and_external_timeline/public_and_external_timeline.vue
...ic_and_external_timeline/public_and_external_timeline.vue
+1
-5
src/components/public_timeline/public_timeline.vue
src/components/public_timeline/public_timeline.vue
+1
-5
src/components/range_input/range_input.vue
src/components/range_input/range_input.vue
+33
-46
src/components/registration/registration.js
src/components/registration/registration.js
+2
-2
src/components/registration/registration.vue
src/components/registration/registration.vue
+50
-175
src/components/remote_follow/remote_follow.vue
src/components/remote_follow/remote_follow.vue
+4
-18
src/components/retweet_button/retweet_button.js
src/components/retweet_button/retweet_button.js
+2
-2
src/components/retweet_button/retweet_button.vue
src/components/retweet_button/retweet_button.vue
+5
-18
src/components/scope_selector/scope_selector.js
src/components/scope_selector/scope_selector.js
+4
-4
src/components/scope_selector/scope_selector.vue
src/components/scope_selector/scope_selector.vue
+26
-30
src/components/settings/settings.vue
src/components/settings/settings.vue
+275
-448
src/components/shadow_control/shadow_control.vue
src/components/shadow_control/shadow_control.vue
+110
-183
src/components/side_drawer/side_drawer.vue
src/components/side_drawer/side_drawer.vue
+25
-67
src/components/status/status.js
src/components/status/status.js
+4
-4
src/components/status/status.vue
src/components/status/status.vue
+74
-288
src/components/still-image/still-image.vue
src/components/still-image/still-image.vue
+3
-15
src/components/style_switcher/preview.vue
src/components/style_switcher/preview.vue
+64
-87
src/components/style_switcher/style_switcher.vue
src/components/style_switcher/style_switcher.vue
+254
-573
src/components/tab_switcher/tab_switcher.js
src/components/tab_switcher/tab_switcher.js
+20
-20
src/components/tag_timeline/tag_timeline.vue
src/components/tag_timeline/tag_timeline.vue
+2
-7
src/components/terms_of_service_panel/terms_of_service_panel.vue
...ponents/terms_of_service_panel/terms_of_service_panel.vue
+2
-4
src/components/timeline/timeline.js
src/components/timeline/timeline.js
+1
-1
src/components/timeline/timeline.vue
src/components/timeline/timeline.vue
+17
-42
src/components/user_avatar/user_avatar.vue
src/components/user_avatar/user_avatar.vue
+1
-1
src/components/user_card/user_card.js
src/components/user_card/user_card.js
+9
-9
src/components/user_card/user_card.vue
src/components/user_card/user_card.vue
+110
-224
src/components/user_finder/user_finder.vue
src/components/user_finder/user_finder.vue
+7
-30
src/components/user_panel/user_panel.vue
src/components/user_panel/user_panel.vue
+4
-12
src/components/user_profile/user_profile.vue
src/components/user_profile/user_profile.vue
+46
-75
src/components/user_search/user_search.js
src/components/user_search/user_search.js
+1
-1
src/components/user_search/user_search.vue
src/components/user_search/user_search.vue
+8
-27
src/components/user_settings/user_settings.js
src/components/user_settings/user_settings.js
+13
-13
src/components/user_settings/user_settings.vue
src/components/user_settings/user_settings.vue
+99
-290
src/components/video_attachment/video_attachment.vue
src/components/video_attachment/video_attachment.vue
+2
-3
src/components/who_to_follow/who_to_follow.js
src/components/who_to_follow/who_to_follow.js
+1
-1
src/components/who_to_follow/who_to_follow.vue
src/components/who_to_follow/who_to_follow.vue
+2
-6
src/components/who_to_follow_panel/who_to_follow_panel.js
src/components/who_to_follow_panel/who_to_follow_panel.js
+1
-1
src/components/who_to_follow_panel/who_to_follow_panel.vue
src/components/who_to_follow_panel/who_to_follow_panel.vue
+7
-12
src/hocs/with_list/with_list.js
src/hocs/with_list/with_list.js
+5
-5
src/hocs/with_load_more/with_load_more.js
src/hocs/with_load_more/with_load_more.js
+28
-28
src/hocs/with_subscription/with_subscription.js
src/hocs/with_subscription/with_subscription.js
+34
-34
src/modules/api.js
src/modules/api.js
+5
-5
src/modules/chat.js
src/modules/chat.js
+2
-2
src/modules/config.js
src/modules/config.js
+2
-2
src/modules/errors.js
src/modules/errors.js
+1
-0
src/modules/instance.js
src/modules/instance.js
+1
-1
src/modules/oauth_tokens.js
src/modules/oauth_tokens.js
+2
-2
src/modules/statuses.js
src/modules/statuses.js
+4
-4
src/modules/users.js
src/modules/users.js
+12
-12
src/services/api/api.service.js
src/services/api/api.service.js
+40
-40
src/services/backend_interactor_service/backend_interactor_service.js
.../backend_interactor_service/backend_interactor_service.js
+39
-39
src/services/color_convert/color_convert.js
src/services/color_convert/color_convert.js
+1
-1
src/services/completion/completion.js
src/services/completion/completion.js
+1
-1
src/services/file_size_format/file_size_format.js
src/services/file_size_format/file_size_format.js
+1
-1
src/services/follow_request_fetcher/follow_request_fetcher.service.js
.../follow_request_fetcher/follow_request_fetcher.service.js
+1
-1
src/services/new_api/oauth.js
src/services/new_api/oauth.js
+4
-4
src/services/new_api/user_search.js
src/services/new_api/user_search.js
+3
-3
src/services/new_api/utils.js
src/services/new_api/utils.js
+2
-2
src/services/notification_utils/notification_utils.js
src/services/notification_utils/notification_utils.js
+1
-1
src/services/notifications_fetcher/notifications_fetcher.service.js
...es/notifications_fetcher/notifications_fetcher.service.js
+4
-4
src/services/status_poster/status_poster.service.js
src/services/status_poster/status_poster.service.js
+1
-1
src/services/style_setter/style_setter.js
src/services/style_setter/style_setter.js
+6
-6
src/services/timeline_fetcher/timeline_fetcher.service.js
src/services/timeline_fetcher/timeline_fetcher.service.js
+5
-5
src/services/user_highlighter/user_highlighter.js
src/services/user_highlighter/user_highlighter.js
+1
-1
test/unit/specs/modules/statuses.spec.js
test/unit/specs/modules/statuses.spec.js
+29
-29
test/unit/specs/modules/users.spec.js
test/unit/specs/modules/users.spec.js
+2
-2
test/unit/specs/services/entity_normalizer/entity_normalizer.spec.js
...pecs/services/entity_normalizer/entity_normalizer.spec.js
+11
-5
test/unit/specs/services/file_size_format/file_size_format.spec.js
.../specs/services/file_size_format/file_size_format.spec.js
+33
-33
test/unit/specs/services/status_parser/status_parses.spec.js
test/unit/specs/services/status_parser/status_parses.spec.js
+2
-2
yarn.lock
yarn.lock
+0
-7
No files found.
src/App.vue
View file @
262760d2
<
template
>
<div
id=
"app"
:style=
"bgAppStyle"
>
<div
class=
"app-bg-wrapper"
:style=
"bgStyle"
/>
<div
id=
"app"
v-bind:style=
"bgAppStyle"
>
<div
class=
"app-bg-wrapper"
v-bind:style=
"bgStyle"
></div>
<MobileNav
v-if=
"isMobileLayout"
/>
<nav
v-else
id=
"nav"
class=
"nav-bar container"
@
click=
"scrollToTop()"
>
<div
class=
"logo"
:style=
"logoBgStyle"
>
<div
class=
"mask"
:style=
"logoMaskStyle"
/>
<img
:src=
"logo"
:style=
"logoStyle"
>
<nav
v-else
class=
'nav-bar container'
@
click=
"scrollToTop()"
id=
"nav"
>
<div
class=
'logo'
:style=
'logoBgStyle'
>
<div
class=
'mask'
:style=
'logoMaskStyle'
></div>
<img
:src=
'logo'
:style=
'logoStyle'
>
</div>
<div
class=
"inner-nav"
>
<div
class=
"item"
>
<router-link
class=
"site-name"
:to=
"
{ name: 'root' }"
active-class="home"
>
{{
sitename
}}
</router-link>
<div
class=
'inner-nav'
>
<div
class=
'item'
>
<router-link
class=
"site-name"
:to=
"
{ name: 'root' }" active-class="home">
{{
sitename
}}
</router-link>
</div>
<div
class=
"item right"
>
<user-finder
class=
"button-icon nav-icon mobile-hidden"
@
toggled=
"onFinderToggled"
/>
<router-link
class=
"mobile-hidden"
:to=
"
{ name: 'settings'}"
>
<i
class=
"button-icon icon-cog nav-icon"
:title=
"$t('nav.preferences')"
/>
</router-link>
<a
v-if=
"currentUser"
href=
"#"
class=
"mobile-hidden"
@
click.prevent=
"logout"
><i
class=
"button-icon icon-logout nav-icon"
:title=
"$t('login.logout')"
/></a>
<div
class=
'item right'
>
<user-finder
class=
"button-icon nav-icon mobile-hidden"
@
toggled=
"onFinderToggled"
></user-finder>
<router-link
class=
"mobile-hidden"
:to=
"
{ name: 'settings'}">
<i
class=
"button-icon icon-cog nav-icon"
:title=
"$t('nav.preferences')"
></i></router-link>
<a
href=
"#"
class=
"mobile-hidden"
v-if=
"currentUser"
@
click.prevent=
"logout"
><i
class=
"button-icon icon-logout nav-icon"
:title=
"$t('login.logout')"
></i></a>
</div>
</div>
</nav>
<div
id=
"content"
class=
"container"
>
<div
v-if=
"!isMobileLayout"
class=
"sidebar-flexer mobile-hidden"
>
<div
v-if=
""
class=
"container"
id=
"content"
>
<div
class=
"sidebar-flexer mobile-hidden"
v-if=
"!isMobileLayout"
>
<div
class=
"sidebar-bounds"
>
<div
class=
"sidebar-scroller"
>
<div
class=
"sidebar"
>
<user-panel
/
>
<nav-panel
/
>
<instance-specific-panel
v-if=
"showInstanceSpecificPanel"
/
>
<features-panel
v-if=
"!currentUser && showFeaturesPanel"
/
>
<who-to-follow-panel
v-if=
"currentUser && suggestionsEnabled"
/
>
<notifications
v-if=
"currentUser"
/
>
<user-panel
></user-panel
>
<nav-panel
></nav-panel
>
<instance-specific-panel
v-if=
"showInstanceSpecificPanel"
></instance-specific-panel
>
<features-panel
v-if=
"!currentUser && showFeaturesPanel"
></features-panel
>
<who-to-follow-panel
v-if=
"currentUser && suggestionsEnabled"
></who-to-follow-panel
>
<notifications
v-if=
"currentUser"
></notifications
>
</div>
</div>
</div>
</div>
<div
class=
"main"
>
<div
v-if=
"!currentUser"
class=
"login-hint panel panel-default"
>
<router-link
:to=
"
{ name: 'login' }"
class="panel-body"
>
<div
v-if=
"!currentUser"
class=
"login-hint panel panel-default"
>
<router-link
:to=
"
{ name: 'login' }" class="panel-body">
{{
$t
(
"
login.hint
"
)
}}
</router-link>
</div>
<transition
name=
"fade"
>
<router-view
/
>
<router-view
></router-view
>
</transition>
</div>
<media-modal
/
>
<media-modal
></media-modal
>
</div>
<chat-panel
v-if=
"currentUser && chat"
:floating=
"true"
class=
"floating-chat mobile-hidden"
/>
<chat-panel
:floating=
"true"
v-if=
"currentUser && chat"
class=
"floating-chat mobile-hidden"
></chat-panel>
</div>
</
template
>
...
...
src/boot/routes.js
View file @
262760d2
...
...
@@ -24,8 +24,8 @@ export default (store) => {
path
:
'
/
'
,
redirect
:
_to
=>
{
return
(
store
.
state
.
users
.
currentUser
?
store
.
state
.
instance
.
redirectRootLogin
:
store
.
state
.
instance
.
redirectRootNoLogin
)
||
'
/main/all
'
?
store
.
state
.
instance
.
redirectRootLogin
:
store
.
state
.
instance
.
redirectRootNoLogin
)
||
'
/main/all
'
}
},
{
name
:
'
public-external-timeline
'
,
path
:
'
/main/all
'
,
component
:
PublicAndExternalTimeline
},
...
...
src/components/about/about.vue
View file @
262760d2
<
template
>
<div
class=
"sidebar"
>
<instance-specific-panel
/
>
<features-panel
v-if=
"showFeaturesPanel"
/
>
<terms-of-service-panel
/
>
<instance-specific-panel
></instance-specific-panel
>
<features-panel
v-if=
"showFeaturesPanel"
></features-panel
>
<terms-of-service-panel
></terms-of-service-panel
>
</div>
</
template
>
...
...
src/components/attachment/attachment.js
View file @
262760d2
...
...
@@ -51,7 +51,7 @@ const Attachment = {
}
},
methods
:
{
linkClicked
({
target
})
{
linkClicked
({
target
})
{
if
(
target
.
tagName
===
'
A
'
)
{
window
.
open
(
target
.
href
,
'
_blank
'
)
}
...
...
src/components/attachment/attachment.vue
View file @
262760d2
<
template
>
<div
v-if=
"usePlaceHolder"
@
click=
"openModal"
>
<a
<div
v-if=
"usePlaceHolder"
@
click=
"openModal"
>
<a
class=
"placeholder"
v-if=
"type !== 'html'"
class=
"placeholder"
target=
"_blank"
:href=
"attachment.url"
target=
"_blank"
:href=
"attachment.url"
>
[
{{
nsfw
?
"
NSFW/
"
:
""
}}{{
type
.
toUpperCase
()
}}
]
[
{{
nsfw
?
"
NSFW/
"
:
""
}}{{
type
.
toUpperCase
()
}}
]
</a>
</div>
<div
v-else
v-show=
"!isEmpty"
class=
"attachment"
v-else
class=
"attachment"
:class=
"
{[type]: true, loading, 'fullwidth': fullwidth, 'nsfw-placeholder': hidden}"
v-show="!isEmpty"
>
<a
v-if=
"hidden"
class=
"image-attachment"
:href=
"attachment.url"
@
click.prevent=
"toggleHidden"
>
<img
:key=
"nsfwImage"
class=
"nsfw"
:src=
"nsfwImage"
:class=
"
{'small': isSmall}"
>
<i
v-if=
"type === 'video'"
class=
"play-icon icon-play-circled"
/>
<a
class=
"image-attachment"
v-if=
"hidden"
:href=
"attachment.url"
@
click.prevent=
"toggleHidden"
>
<img
class=
"nsfw"
:key=
"nsfwImage"
:src=
"nsfwImage"
:class=
"
{'small': isSmall}"/>
<i
v-if=
"type === 'video'"
class=
"play-icon icon-play-circled"
></i>
</a>
<div
v-if=
"nsfw && hideNsfwLocal && !hidden"
class=
"hider"
>
<a
href=
"#"
@
click.prevent=
"toggleHidden"
>
Hide
</a>
<div
class=
"hider"
v-if=
"nsfw && hideNsfwLocal && !hidden"
>
<a
href=
"#"
@
click.prevent=
"toggleHidden"
>
Hide
</a>
</div>
<a
v-if=
"type === 'image' && (!hidden || preloadImage)
"
<a
v-if=
"type === 'image' && (!hidden || preloadImage)"
@
click=
"openModal
"
class=
"image-attachment"
:class=
"
{'hidden': hidden
&&
preloadImage }"
:href="attachment.url"
target="_blank"
:href="attachment.url" target="_blank"
:title="attachment.description"
@click="openModal"
>
<StillImage
:referrerpolicy=
"referrerpolicy"
:mimetype=
"attachment.mimetype"
:src=
"attachment.large_thumb_url || attachment.url"
/>
<StillImage
:referrerpolicy=
"referrerpolicy"
:mimetype=
"attachment.mimetype"
:src=
"attachment.large_thumb_url || attachment.url"
/>
</a>
<a
<a
class=
"video-container"
@
click=
"openModal"
v-if=
"type === 'video' && !hidden"
class=
"video-container"
:class=
"
{'small': isSmall}"
:href="allowPlay ? undefined : attachment.url"
@click="openModal"
>
<VideoAttachment
class=
"video"
:attachment=
"attachment"
:controls=
"allowPlay"
/>
<i
v-if=
"!allowPlay"
class=
"play-icon icon-play-circled"
/>
<VideoAttachment
class=
"video"
:attachment=
"attachment"
:controls=
"allowPlay"
/>
<i
v-if=
"!allowPlay"
class=
"play-icon icon-play-circled"
></i>
</a>
<audio
v-if=
"type === 'audio'"
:src=
"attachment.url"
controls
/>
<audio
v-if=
"type === 'audio'"
:src=
"attachment.url"
controls
></audio>
<div
v-if=
"type === 'html' && attachment.oembed"
class=
"oembed"
@
click.prevent=
"linkClicked"
>
<div
v-if=
"attachment.thumb_url"
class=
"image"
>
<img
:src=
"attachment.thumb_url"
>
<div
@
click.prevent=
"linkClicked"
v-if=
"type === 'html' && attachment.oembed"
class=
"oembed"
>
<div
v-if=
"attachment.thumb_url"
class=
"image"
>
<img
:src=
"attachment.thumb_url"
/>
</div>
<div
class=
"text"
>
<h1><a
:href=
"attachment.url"
>
{{
attachment
.
oembed
.
title
}}
</a></h1>
<div
v-html=
"attachment.oembed.oembedHTML"
/
>
<h1><a
:href=
"attachment.url"
>
{{
attachment
.
oembed
.
title
}}
</a></h1>
<div
v-html=
"attachment.oembed.oembedHTML"
></div
>
</div>
</div>
</div>
...
...
src/components/basic_user_card/basic_user_card.vue
View file @
262760d2
<
template
>
<div
class=
"basic-user-card"
>
<router-link
:to=
"userProfileLink(user)"
>
<UserAvatar
class=
"avatar"
:src=
"user.profile_image_url"
@
click.prevent.native=
"toggleUserExpanded"
/>
<UserAvatar
class=
"avatar"
@
click.prevent.native=
"toggleUserExpanded"
:src=
"user.profile_image_url"
/>
</router-link>
<div
v-if=
"userExpanded"
class=
"basic-user-card-expanded-content"
>
<UserCard
:user=
"user"
:rounded=
"true"
:bordered=
"true"
/>
<div
class=
"basic-user-card-expanded-content"
v-if=
"userExpanded"
>
<UserCard
:user=
"user"
:rounded=
"true"
:bordered=
"true"
/>
</div>
<div
v-else
class=
"basic-user-card-collapsed-content"
>
<div
:title=
"user.name"
class=
"basic-user-card-user-name"
>
<span
v-if=
"user.name_html"
class=
"basic-user-card-user-name-value"
v-html=
"user.name_html"
/>
<span
v-else
class=
"basic-user-card-user-name-value"
>
{{
user
.
name
}}
</span>
<div
class=
"basic-user-card-collapsed-content"
v-else
>
<div
:title=
"user.name"
class=
"basic-user-card-user-name"
>
<span
v-if=
"user.name_html"
class=
"basic-user-card-user-name-value"
v-html=
"user.name_html"
></span>
<span
v-else
class=
"basic-user-card-user-name-value"
>
{{
user
.
name
}}
</span>
</div>
<div>
<router-link
class=
"basic-user-card-screen-name"
:to=
"userProfileLink(user)"
>
@
{{
user
.
screen_name
}}
<router-link
class=
"basic-user-card-screen-name"
:to=
"userProfileLink(user)"
>
@
{{
user
.
screen_name
}}
</router-link>
</div>
<slot
/
>
<slot
></slot
>
</div>
</div>
</
template
>
...
...
src/components/block_card/block_card.vue
View file @
262760d2
<
template
>
<basic-user-card
:user=
"user"
>
<div
class=
"block-card-content-container"
>
<button
v-if=
"blocked"
class=
"btn btn-default"
:disabled=
"progress"
@
click=
"unblockUser"
>
<button
class=
"btn btn-default"
@
click=
"unblockUser"
:disabled=
"progress"
v-if=
"blocked"
>
<template
v-if=
"progress"
>
{{
$t
(
'
user_card.unblock_progress
'
)
}}
</
template
>
...
...
@@ -14,12 +9,7 @@
{{
$t
(
'
user_card.unblock
'
)
}}
</
template
>
</button>
<button
v-else
class=
"btn btn-default"
:disabled=
"progress"
@
click=
"blockUser"
>
<button
class=
"btn btn-default"
@
click=
"blockUser"
:disabled=
"progress"
v-else
>
<
template
v-if=
"progress"
>
{{
$t
(
'
user_card.block_progress
'
)
}}
</
template
>
...
...
src/components/chat_panel/chat_panel.js
View file @
262760d2
...
...
@@ -16,7 +16,7 @@ const chatPanel = {
},
methods
:
{
submit
(
message
)
{
this
.
$store
.
state
.
chat
.
channel
.
push
(
'
new_msg
'
,
{
text
:
message
},
10000
)
this
.
$store
.
state
.
chat
.
channel
.
push
(
'
new_msg
'
,
{
text
:
message
},
10000
)
this
.
currentMessage
=
''
},
togglePanel
()
{
...
...
src/components/chat_panel/chat_panel.vue
View file @
262760d2
<
template
>
<div
v-if=
"!this.collapsed || !this.floating"
class=
"chat-panel"
>
<div
class=
"chat-panel"
v-if=
"!this.collapsed || !this.floating"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-heading timeline-heading"
:class=
"
{ 'chat-heading': floating }"
@click.stop.prevent="togglePanel"
>
<div
class=
"panel-heading timeline-heading"
:class=
"
{ 'chat-heading': floating }" @click.stop.prevent="togglePanel">
<div
class=
"title"
>
<span>
{{
$t
(
'
chat.title
'
)
}}
</span>
<i
v-if=
"floating"
class=
"icon-cancel"
/>
<span>
{{
$t
(
'
chat.title
'
)
}}
</span>
<i
class=
"icon-cancel"
v-if=
"floating"
></i>
</div>
</div>
<div
v-chat-scroll
class=
"chat-window"
>
<div
v-for=
"message in messages"
:key=
"message.id"
class=
"chat-message"
>
<div
class=
"chat-window"
v-chat-scroll
>
<div
class=
"chat-message"
v-for=
"message in messages"
:key=
"message.id"
>
<span
class=
"chat-avatar"
>
<img
:src=
"message.author.avatar"
>
<img
:src=
"message.author.avatar"
/
>
</span>
<div
class=
"chat-content"
>
<router-link
class=
"chat-name"
:to=
"userProfileLink(message.author)"
>
{{
message
.
author
.
username
}}
:to=
"userProfileLink(message.author)"
>
{{
message
.
author
.
username
}}
</router-link>
<br>
<span
class=
"chat-text"
>
{{
message
.
text
}}
{{
message
.
text
}}
</span>
</div>
</div>
</div>
<div
class=
"chat-input"
>
<textarea
v-model=
"currentMessage"
class=
"chat-input-textarea"
rows=
"1"
@
keyup.enter=
"submit(currentMessage)"
/>
<textarea
@
keyup.enter=
"submit(currentMessage)"
v-model=
"currentMessage"
class=
"chat-input-textarea"
rows=
"1"
></textarea>
</div>
</div>
</div>
<div
v-else
class=
"chat-panel"
>
<div
v-else
class=
"chat-panel"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-heading stub timeline-heading chat-heading"
@
click.stop.prevent=
"togglePanel"
>
<div
class=
"panel-heading stub timeline-heading chat-heading"
@
click.stop.prevent=
"togglePanel"
>
<div
class=
"title"
>
<i
class=
"icon-comment-empty"
/
>
{{
$t
(
'
chat.title
'
)
}}
<i
class=
"icon-comment-empty"
></i
>
{{
$t
(
'
chat.title
'
)
}}
</div>
</div>
</div>
...
...
src/components/color_input/color_input.vue
View file @
262760d2
<
template
>
<div
class=
"color-control style-control"
:class=
"
{ disabled: !present || disabled }"
>
<label
:for=
"name"
class=
"label"
<div
class=
"color-control style-control"
:class=
"
{ disabled: !present || disabled }">
<label
:for=
"name"
class=
"label"
>
{{
label
}}
</label>
<input
v-if=
"typeof fallback !== 'undefined'"
class=
"opt exlcude-disabled"
:id=
"name + '-o'"
type=
"checkbox"
:checked=
"present"
@
input=
"$emit('input', typeof value === 'undefined' ? fallback : undefined)"
>
<label
v-if=
"typeof fallback !== 'undefined'"
class=
"opt-l"
:for=
"name + '-o'"
></label>
<input
:id=
"name"
class=
"color-input"
type=
"color"
:value=
"value || fallback"
:disabled=
"!present || disabled"
@
input=
"$emit('input', $event.target.value)"
>
{{
label
}}
</label>
<input
v-if=
"typeof fallback !== 'undefined'"
:id=
"name + '-o'"
class=
"opt exlcude-disabled"
type=
"checkbox"
:checked=
"present"
@
input=
"$emit('input', typeof value === 'undefined' ? fallback : undefined)"
<input
:id=
"name + '-t'"
class=
"text-input"
type=
"text"
:value=
"value || fallback"
:disabled=
"!present || disabled"
@
input=
"$emit('input', $event.target.value)"
>
<label
v-if=
"typeof fallback !== 'undefined'"
class=
"opt-l"
:for=
"name + '-o'"
/>
<input
:id=
"name"
class=
"color-input"
type=
"color"
:value=
"value || fallback"
:disabled=
"!present || disabled"
@
input=
"$emit('input', $event.target.value)"
>
<input
:id=
"name + '-t'"
class=
"text-input"
type=
"text"
:value=
"value || fallback"
:disabled=
"!present || disabled"
@
input=
"$emit('input', $event.target.value)"
>
</div>
</div>
</
template
>
<
script
>
...
...
src/components/contrast_ratio/contrast_ratio.vue
View file @
262760d2
<
template
>
<span
v-if=
"contrast"
class=
"contrast-ratio"
>
<span
:title=
"hint"
class=
"rating"