Compare commits
31 commits
66febc0756
...
5f3fcad181
Author | SHA1 | Date | |
---|---|---|---|
|
5f3fcad181 | ||
|
76f340ce2d | ||
|
619423eacb | ||
|
c698dec89d | ||
|
5a8eae4510 | ||
|
8cc2584571 | ||
|
3d68dda5a2 | ||
|
9b2f54c571 | ||
|
0631acb8ad | ||
|
155e7aa117 | ||
|
b0e687692a | ||
|
f3a79cdb97 | ||
|
331b7dbaa3 | ||
|
cbe9427123 | ||
|
e4a1a56dbd | ||
|
7e92c4c1a3 | ||
|
dca5fbb8f5 | ||
|
27d2ac6f66 | ||
|
4fcd511225 | ||
|
eef151e7a6 | ||
|
1857d0fadd | ||
|
898881bac1 | ||
|
cec2ae2fbd | ||
|
2bd16bedce | ||
|
d67d24757f | ||
|
84cab03a1d | ||
|
f7daaead6f | ||
|
1506d2421d | ||
|
da58282e90 | ||
|
f8a0cd2dd3 | ||
|
1bf256b34b |
69 changed files with 188 additions and 152 deletions
0
changelog.d/backend-repo-url.skip
Normal file
0
changelog.d/backend-repo-url.skip
Normal file
1
changelog.d/checkbox.fix
Normal file
1
changelog.d/checkbox.fix
Normal file
|
@ -0,0 +1 @@
|
|||
checkbox vertical alignment has been fixed
|
1
changelog.d/deprecate-subscribe.change
Normal file
1
changelog.d/deprecate-subscribe.change
Normal file
|
@ -0,0 +1 @@
|
|||
Use /api/v1/accounts/:id/follow for account subscriptions instead of the deprecated routes
|
1
changelog.d/emoji-size.fix
Normal file
1
changelog.d/emoji-size.fix
Normal file
|
@ -0,0 +1 @@
|
|||
fix emoji inconsistencies in notifications, fix some emoji not scaling with interface
|
1
changelog.d/misc-markup.fix
Normal file
1
changelog.d/misc-markup.fix
Normal file
|
@ -0,0 +1 @@
|
|||
Fix small markup inconsistencies
|
1
changelog.d/panel-stack.fix
Normal file
1
changelog.d/panel-stack.fix
Normal file
|
@ -0,0 +1 @@
|
|||
proper sticky header for conversations on user page
|
1
changelog.d/quote-buttons.fix
Normal file
1
changelog.d/quote-buttons.fix
Normal file
|
@ -0,0 +1 @@
|
|||
reply-or-quote buttons now take less space
|
1
changelog.d/show-bookmarks-on-mobile.fix
Normal file
1
changelog.d/show-bookmarks-on-mobile.fix
Normal file
|
@ -0,0 +1 @@
|
|||
Bookmarks visible again on mobile
|
0
changelog.d/splashfix.skip
Normal file
0
changelog.d/splashfix.skip
Normal file
1
changelog.d/user-link.add
Normal file
1
changelog.d/user-link.add
Normal file
|
@ -0,0 +1 @@
|
|||
Make UserLink wrappable
|
1
changelog.d/weird-absolute-time-format.fix
Normal file
1
changelog.d/weird-absolute-time-format.fix
Normal file
|
@ -0,0 +1 @@
|
|||
Show only month and day instead of weird "day, hour" format. While at it, fixed typo "defualt" in a comment.
|
|
@ -243,7 +243,7 @@ const resolveStaffAccounts = ({ store, accounts }) => {
|
|||
|
||||
const getNodeInfo = async ({ store }) => {
|
||||
try {
|
||||
const res = await preloadFetch('/nodeinfo/2.0.json')
|
||||
const res = await preloadFetch('/nodeinfo/2.1.json')
|
||||
if (res.ok) {
|
||||
const data = await res.json()
|
||||
const metadata = data.metadata
|
||||
|
@ -280,6 +280,7 @@ const getNodeInfo = async ({ store }) => {
|
|||
|
||||
const software = data.software
|
||||
store.dispatch('setInstanceOption', { name: 'backendVersion', value: software.version })
|
||||
store.dispatch('setInstanceOption', { name: 'backendRepository', value: software.repository })
|
||||
store.dispatch('setInstanceOption', { name: 'pleromaBackend', value: software.name === 'pleroma' })
|
||||
|
||||
const priv = metadata.private
|
||||
|
|
|
@ -34,8 +34,9 @@
|
|||
id="announcement-all-day"
|
||||
v-model="announcement.allDay"
|
||||
:disabled="disabled"
|
||||
/>
|
||||
<label for="announcement-all-day">{{ $t('announcements.all_day_prompt') }}</label>
|
||||
>
|
||||
{{ $t('announcements.all_day_prompt') }}
|
||||
</Checkbox>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<template>
|
||||
<div class="panel panel-default announcements-page">
|
||||
<div class="panel-heading">
|
||||
<span>
|
||||
<h1 class="title">
|
||||
{{ $t('announcements.page_header') }}
|
||||
</span>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<section
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
flex: 1 0;
|
||||
margin: 0;
|
||||
|
||||
--emoji-size: 14px;
|
||||
--emoji-size: 1em;
|
||||
|
||||
&-collapsed-content {
|
||||
margin-left: 0.7em;
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
icon="chevron-left"
|
||||
/>
|
||||
</button>
|
||||
<div class="title">
|
||||
<h1 class="title">
|
||||
<i18n-t
|
||||
v-if="id"
|
||||
keypath="bookmark_folders.editing_folder"
|
||||
|
@ -26,7 +26,7 @@
|
|||
v-else
|
||||
keypath="bookmark_folders.creating_folder"
|
||||
/>
|
||||
</div>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="input-wrap">
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<template>
|
||||
<div class="Bookmark-folders panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<div class="title">
|
||||
<h1 class="title">
|
||||
{{ $t('nav.bookmark_folders') }}
|
||||
</div>
|
||||
</h1>
|
||||
<router-link
|
||||
:to="{ name: 'bookmark-folder-new' }"
|
||||
class="button-default btn new-folder-button"
|
||||
|
|
|
@ -7,9 +7,9 @@
|
|||
class="chat-list panel panel-default"
|
||||
>
|
||||
<div class="panel-heading -sticky">
|
||||
<span class="title">
|
||||
<h1 class="title">
|
||||
{{ $t("chats.chats") }}
|
||||
</span>
|
||||
</h1>
|
||||
<button
|
||||
class="button-default"
|
||||
@click="newChat"
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
|
||||
--emoji-size: 14px;
|
||||
--emoji-size: 1em;
|
||||
|
||||
.username {
|
||||
max-width: 100%;
|
||||
|
|
|
@ -70,21 +70,26 @@ export default {
|
|||
display: inline-block;
|
||||
min-height: 1.2em;
|
||||
|
||||
&-indicator,
|
||||
& .label {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
& > &-indicator {
|
||||
/* Reset .input stuff */
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
position: relative;
|
||||
line-height: inherit;
|
||||
display: inline;
|
||||
padding-left: 1.2em;
|
||||
display: inline-block;
|
||||
width: 1.2em;
|
||||
height: 1.2em;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
&-indicator::before {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
inset: 0;
|
||||
display: block;
|
||||
content: "✓";
|
||||
transition: color 200ms;
|
||||
|
|
|
@ -9,7 +9,9 @@
|
|||
v-if="isExpanded"
|
||||
class="panel-heading conversation-heading -sticky"
|
||||
>
|
||||
<span class="title"> {{ $t('timeline.conversation') }} </span>
|
||||
<h1 class="title">
|
||||
{{ $t('timeline.conversation') }}
|
||||
</h1>
|
||||
<button
|
||||
v-if="collapsable"
|
||||
class="button-unstyled -link"
|
||||
|
|
|
@ -8,9 +8,9 @@
|
|||
@click.stop=""
|
||||
>
|
||||
<div class="panel-heading dialog-modal-heading">
|
||||
<div class="title">
|
||||
<h1 class="title">
|
||||
<slot name="header" />
|
||||
</div>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="panel-body dialog-modal-content">
|
||||
<slot name="default" />
|
||||
|
|
|
@ -6,7 +6,9 @@
|
|||
>
|
||||
<div class="edit-form-modal-panel panel">
|
||||
<div class="panel-heading">
|
||||
{{ $t('post_status.edit_status') }}
|
||||
<h1 class="title">
|
||||
{{ $t('post_status.edit_status') }}
|
||||
</h1>
|
||||
</div>
|
||||
<PostStatusForm
|
||||
class="panel-body"
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
<div class="features-panel">
|
||||
<div class="panel panel-default base01-background">
|
||||
<div class="panel-heading timeline-heading base02-background base04">
|
||||
<div class="title">
|
||||
<h1 class="title">
|
||||
{{ $t('features_panel.title') }}
|
||||
</div>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="panel-body features-panel">
|
||||
<ul>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<template>
|
||||
<div class="settings panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<div class="title">
|
||||
<h1 class="title">
|
||||
{{ $t('nav.friend_requests') }}
|
||||
</div>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<FollowRequestCard
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<template>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<div class="title">
|
||||
<h1 class="title">
|
||||
{{ $t("nav.interactions") }}
|
||||
</div>
|
||||
</h1>
|
||||
</div>
|
||||
<tab-switcher
|
||||
ref="tabSwitcher"
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
<div class="Lists panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<div class="title">
|
||||
{{ $t('lists.lists') }}
|
||||
<h1 class="title">
|
||||
{{ $t('lists.lists') }}
|
||||
</h1>
|
||||
</div>
|
||||
<router-link
|
||||
:to="{ name: 'lists-new' }"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<!-- Default panel contents -->
|
||||
|
||||
<div class="panel-heading">
|
||||
{{ $t('login.login') }}
|
||||
<h1 class="title">{{ $t('login.login') }}</h1>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
|
|
|
@ -3,7 +3,9 @@
|
|||
<!-- Default panel contents -->
|
||||
|
||||
<div class="panel-heading">
|
||||
{{ $t('login.heading.recovery') }}
|
||||
<h1 class="title">
|
||||
{{ $t('login.heading.recovery') }}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
|
|
|
@ -3,7 +3,9 @@
|
|||
<!-- Default panel contents -->
|
||||
|
||||
<div class="panel-heading">
|
||||
{{ $t('login.heading.totp') }}
|
||||
<h1 class="title">
|
||||
{{ $t('login.heading.totp') }}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
|
|
|
@ -50,13 +50,13 @@
|
|||
@touchmove.stop="notificationsTouchMove"
|
||||
>
|
||||
<div class="panel-heading mobile-notifications-header">
|
||||
<span class="title">
|
||||
<h1 class="title">
|
||||
{{ $t('notifications.notifications') }}
|
||||
<span
|
||||
v-if="unseenCountBadgeText"
|
||||
class="badge -notification unseen-count"
|
||||
>{{ unseenCountBadgeText }}</span>
|
||||
</span>
|
||||
</h1>
|
||||
<span class="spacer" />
|
||||
<button
|
||||
v-if="notificationsAtTop"
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
--emoji-size: 14px;
|
||||
--emoji-size: 1em;
|
||||
|
||||
&:hover {
|
||||
--_still-image-img-visibility: visible;
|
||||
|
|
|
@ -14,13 +14,13 @@
|
|||
v-if="!noHeading"
|
||||
class="notifications-heading panel-heading -sticky"
|
||||
>
|
||||
<div class="title">
|
||||
<h1 class="title">
|
||||
{{ $t('notifications.notifications') }}
|
||||
<span
|
||||
v-if="unseenCountBadgeText"
|
||||
class="badge -notification unseen-count"
|
||||
>{{ unseenCountBadgeText }}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div
|
||||
v-if="showScrollTop"
|
||||
class="rightside-button"
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
<template>
|
||||
<div class="settings panel panel-default">
|
||||
<div class="panel-heading">
|
||||
{{ $t('password_reset.password_reset') }}
|
||||
<h1 class="title">
|
||||
{{ $t('password_reset.password_reset') }}
|
||||
</h1>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<form
|
||||
|
|
|
@ -103,6 +103,36 @@
|
|||
icon="circle-notch"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
v-if="quotable"
|
||||
role="radiogroup"
|
||||
class="btn-group reply-or-quote-selector"
|
||||
>
|
||||
<button
|
||||
:id="`reply-or-quote-option-${randomSeed}-reply`"
|
||||
class="btn button-default reply-or-quote-option"
|
||||
:class="{ toggled: !newStatus.quoting }"
|
||||
tabindex="0"
|
||||
role="radio"
|
||||
:aria-labelledby="`reply-or-quote-option-${randomSeed}-reply`"
|
||||
:aria-checked="!newStatus.quoting"
|
||||
@click="newStatus.quoting = false"
|
||||
>
|
||||
{{ $t('post_status.reply_option') }}
|
||||
</button>
|
||||
<button
|
||||
:id="`reply-or-quote-option-${randomSeed}-quote`"
|
||||
class="btn button-default reply-or-quote-option"
|
||||
:class="{ toggled: newStatus.quoting }"
|
||||
tabindex="0"
|
||||
role="radio"
|
||||
:aria-labelledby="`reply-or-quote-option-${randomSeed}-quote`"
|
||||
:aria-checked="newStatus.quoting"
|
||||
@click="newStatus.quoting = true"
|
||||
>
|
||||
{{ $t('post_status.quote_option') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="showPreview"
|
||||
|
@ -126,36 +156,6 @@
|
|||
class="preview-status"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
v-if="quotable"
|
||||
role="radiogroup"
|
||||
class="btn-group reply-or-quote-selector"
|
||||
>
|
||||
<button
|
||||
:id="`reply-or-quote-option-${randomSeed}-reply`"
|
||||
class="btn button-default reply-or-quote-option"
|
||||
:class="{ toggled: !newStatus.quoting }"
|
||||
tabindex="0"
|
||||
role="radio"
|
||||
:aria-labelledby="`reply-or-quote-option-${randomSeed}-reply`"
|
||||
:aria-checked="!newStatus.quoting"
|
||||
@click="newStatus.quoting = false"
|
||||
>
|
||||
{{ $t('post_status.reply_option') }}
|
||||
</button>
|
||||
<button
|
||||
:id="`reply-or-quote-option-${randomSeed}-quote`"
|
||||
class="btn button-default reply-or-quote-option"
|
||||
:class="{ toggled: newStatus.quoting }"
|
||||
tabindex="0"
|
||||
role="radio"
|
||||
:aria-labelledby="`reply-or-quote-option-${randomSeed}-quote`"
|
||||
:aria-checked="newStatus.quoting"
|
||||
@click="newStatus.quoting = true"
|
||||
>
|
||||
{{ $t('post_status.quote_option') }}
|
||||
</button>
|
||||
</div>
|
||||
<EmojiInput
|
||||
v-if="!disableSubject && (newStatus.spoilerText || alwaysShowSubject)"
|
||||
v-model="newStatus.spoilerText"
|
||||
|
@ -447,6 +447,8 @@
|
|||
|
||||
.reply-or-quote-selector {
|
||||
margin-bottom: 0.5em;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
|
||||
.text-format {
|
||||
|
|
|
@ -7,7 +7,9 @@
|
|||
>
|
||||
<div class="post-form-modal-panel panel">
|
||||
<div class="panel-heading">
|
||||
{{ $t('post_status.new_status') }}
|
||||
<h1 class="title">
|
||||
{{ $t('post_status.new_status') }}
|
||||
</h1>
|
||||
</div>
|
||||
<PostStatusForm
|
||||
class="panel-body"
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
<template>
|
||||
<div class="settings panel panel-default">
|
||||
<div class="panel-heading">
|
||||
{{ $t('registration.registration') }}
|
||||
<h1 class="title">
|
||||
{{ $t('registration.registration') }}
|
||||
</h1>
|
||||
</div>
|
||||
<div
|
||||
v-if="!hasSignUpNotice"
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
<template>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
{{ $t('remote_user_resolver.remote_user_resolver') }}
|
||||
<h1 class="title">
|
||||
{{ $t('remote_user_resolver.remote_user_resolver') }}
|
||||
</h1>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<template>
|
||||
<div class="Search panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<div class="title">
|
||||
<h1 class="title">
|
||||
{{ $t('nav.search') }}
|
||||
</div>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="panel-body search-input-container">
|
||||
<input
|
||||
|
|
|
@ -84,7 +84,7 @@ label.Select {
|
|||
width: 0.875em;
|
||||
font-family: var(--font);
|
||||
line-height: 2;
|
||||
z-index: 0;
|
||||
z-index: 1;
|
||||
pointer-events: none;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,9 +7,9 @@
|
|||
>
|
||||
<div class="settings-modal-panel panel">
|
||||
<div class="panel-heading">
|
||||
<span class="title">
|
||||
<h1 class="title">
|
||||
{{ modalMode === 'user' ? $t('settings.settings') : $t('admin_dash.window_title') }}
|
||||
</span>
|
||||
</h1>
|
||||
<transition name="fade">
|
||||
<div
|
||||
v-if="currentSaveStateNotice"
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
<div class="underlay underlay-preview" />
|
||||
<div class="panel dummy">
|
||||
<div class="panel-heading">
|
||||
<div class="title">
|
||||
<h1 class="title">
|
||||
{{ $t('settings.style.preview.header') }}
|
||||
<span class="badge -notification">
|
||||
99
|
||||
</span>
|
||||
</div>
|
||||
</h1>
|
||||
<span class="faint">
|
||||
{{ $t('settings.style.preview.header_faint') }}
|
||||
</span>
|
||||
|
|
|
@ -1,22 +1,17 @@
|
|||
import { extractCommit } from 'src/services/version/version.service'
|
||||
|
||||
const pleromaFeCommitUrl = 'https://git.pleroma.social/pleroma/pleroma-fe/commit/'
|
||||
const pleromaBeCommitUrl = 'https://git.pleroma.social/pleroma/pleroma/commit/'
|
||||
|
||||
const VersionTab = {
|
||||
data () {
|
||||
const instance = this.$store.state.instance
|
||||
return {
|
||||
backendVersion: instance.backendVersion,
|
||||
backendRepository: instance.backendRepository,
|
||||
frontendVersion: instance.frontendVersion
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
frontendVersionLink () {
|
||||
return pleromaFeCommitUrl + this.frontendVersion
|
||||
},
|
||||
backendVersionLink () {
|
||||
return pleromaBeCommitUrl + extractCommit(this.backendVersion)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<ul class="option-list">
|
||||
<li>
|
||||
<a
|
||||
:href="backendVersionLink"
|
||||
:href="backendRepository"
|
||||
target="_blank"
|
||||
>{{ backendVersion }}</a>
|
||||
</li>
|
||||
|
|
|
@ -9,14 +9,14 @@
|
|||
:class="{ 'shout-heading': floating }"
|
||||
@click.stop.prevent="togglePanel"
|
||||
>
|
||||
<div class="title">
|
||||
<h1 class="title">
|
||||
{{ $t('shoutbox.title') }}
|
||||
<FAIcon
|
||||
v-if="floating"
|
||||
icon="times"
|
||||
class="close-icon"
|
||||
/>
|
||||
</div>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="panel-body shout-window">
|
||||
<div
|
||||
|
|
|
@ -76,6 +76,21 @@
|
|||
/> {{ $t("nav.lists") }}
|
||||
</router-link>
|
||||
</li>
|
||||
<li
|
||||
v-if="currentUser"
|
||||
@click="toggleDrawer"
|
||||
>
|
||||
<router-link
|
||||
:to="{ name: 'bookmarks' }"
|
||||
class="menu-item"
|
||||
>
|
||||
<FAIcon
|
||||
fixed-width
|
||||
class="fa-scale-110 fa-old-padding"
|
||||
icon="bookmark"
|
||||
/> {{ $t("nav.bookmarks") }}
|
||||
</router-link>
|
||||
</li>
|
||||
<li
|
||||
v-if="currentUser && pleromaChatMessagesAvailable"
|
||||
@click="toggleDrawer"
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
text-overflow: ellipsis;
|
||||
|
||||
--_still_image-label-scale: 0.25;
|
||||
--emoji-size: 14px;
|
||||
--emoji-size: 1em;
|
||||
}
|
||||
|
||||
.status-favicon {
|
||||
|
|
|
@ -113,7 +113,7 @@
|
|||
align-items: top;
|
||||
flex-direction: row;
|
||||
|
||||
--emoji-size: 16px;
|
||||
--emoji-size: calc(var(--emojiSize, 32px) / 2);
|
||||
|
||||
& .body,
|
||||
& .attachments {
|
||||
|
|
|
@ -6,7 +6,9 @@
|
|||
>
|
||||
<div class="status-history-modal-panel panel">
|
||||
<div class="panel-heading">
|
||||
{{ $t('status.status_history') }} ({{ historyCount }})
|
||||
<h1 class="title">
|
||||
{{ $t('status.status_history') }} ({{ historyCount }})
|
||||
</h1>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div
|
||||
|
|
|
@ -61,7 +61,7 @@ export default {
|
|||
})
|
||||
} else if (DateUtils.isSameMonth(this.timeAsDate, now)) {
|
||||
return new Intl.DateTimeFormat(this.browserLocale, {
|
||||
hour: 'numeric',
|
||||
month: 'short',
|
||||
day: 'numeric'
|
||||
})
|
||||
} else if (DateUtils.isSameYear(this.timeAsDate, now)) {
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<template>
|
||||
<div :class="['Timeline', classes.root]">
|
||||
<div :class="classes.header">
|
||||
<div :class="classes.header" v-if="!embedded">
|
||||
<TimelineMenu
|
||||
v-if="!embedded"
|
||||
:timeline-name="timelineName"
|
||||
/>
|
||||
<div
|
||||
v-if="showScrollTop && !embedded"
|
||||
v-if="showScrollTop"
|
||||
class="rightside-button"
|
||||
>
|
||||
<button
|
||||
|
@ -24,7 +24,7 @@
|
|||
</FALayers>
|
||||
</button>
|
||||
</div>
|
||||
<template v-if="mobileLayout && !embedded">
|
||||
<template v-if="mobileLayout">
|
||||
<div
|
||||
v-if="showLoadButton"
|
||||
class="rightside-button"
|
||||
|
@ -44,7 +44,7 @@
|
|||
</button>
|
||||
</div>
|
||||
<div
|
||||
v-else-if="!embedded"
|
||||
v-else
|
||||
class="loadmore-text faint veryfaint rightside-icon"
|
||||
:title="$t('timeline.up_to_date')"
|
||||
:aria-disabled="true"
|
||||
|
@ -65,7 +65,7 @@
|
|||
{{ loadButtonString }}
|
||||
</button>
|
||||
<div
|
||||
v-else-if="!embedded"
|
||||
v-else
|
||||
class="loadmore-text faint"
|
||||
@click.prevent
|
||||
>
|
||||
|
@ -73,11 +73,9 @@
|
|||
</div>
|
||||
</template>
|
||||
<QuickFilterSettings
|
||||
v-if="!embedded"
|
||||
class="rightside-button"
|
||||
/>
|
||||
<QuickViewSettings
|
||||
v-if="!embedded"
|
||||
class="rightside-button"
|
||||
/>
|
||||
</div>
|
||||
|
@ -148,6 +146,8 @@
|
|||
/>
|
||||
</div>
|
||||
</teleport>
|
||||
<!-- spacer to avoid having empty shrug -->
|
||||
<span v-if="embedded && footerSlipgate" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
@ -29,8 +29,8 @@
|
|||
</ul>
|
||||
</template>
|
||||
<template #trigger>
|
||||
<span class="button-unstyled title timeline-menu-title">
|
||||
<span class="timeline-title">{{ timelineName() }}</span>
|
||||
<span class="button-unstyled timeline-menu-title">
|
||||
<h1 class="title timeline-title">{{ timelineName() }}</h1>
|
||||
<span>
|
||||
<FAIcon
|
||||
size="sm"
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
:class="{ '-peek': !showingMore }"
|
||||
>
|
||||
<div class="panel-heading">
|
||||
<span class="title">
|
||||
<h1 class="title">
|
||||
{{ $t('update.big_update_title') }}
|
||||
</span>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div
|
||||
|
|
|
@ -208,7 +208,7 @@
|
|||
/>
|
||||
<template v-if="relationship.following">
|
||||
<ProgressButton
|
||||
v-if="!relationship.subscribing"
|
||||
v-if="!relationship.notifying"
|
||||
class="btn button-default"
|
||||
:click="subscribeUser"
|
||||
:title="$t('user_card.subscribe')"
|
||||
|
|
|
@ -1,12 +1,16 @@
|
|||
<template>
|
||||
<router-link
|
||||
:title="user.screen_name_ui"
|
||||
:to="userProfileLink(user)"
|
||||
>
|
||||
{{ at ? '@' : '' }}{{ user.screen_name_ui }}<UnicodeDomainIndicator
|
||||
:user="user"
|
||||
/>
|
||||
</router-link>
|
||||
<div class="user-profile-link">
|
||||
<router-link
|
||||
:title="user.screen_name_ui"
|
||||
:to="userProfileLink(user)"
|
||||
>
|
||||
<slot>
|
||||
{{ at ? '@' : '' }}{{ user.screen_name_ui }}<UnicodeDomainIndicator
|
||||
:user="user"
|
||||
/>
|
||||
</slot>
|
||||
</router-link>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
.user-list-popover {
|
||||
padding: 0.5em;
|
||||
|
||||
--emoji-size: 16px;
|
||||
--emoji-size: calc(var(--emojiSize, 32px) / 2);
|
||||
|
||||
.user-list-row {
|
||||
padding: 0.25em;
|
||||
|
|
|
@ -142,9 +142,9 @@
|
|||
class="panel user-profile-placeholder"
|
||||
>
|
||||
<div class="panel-heading">
|
||||
<div class="title">
|
||||
<h1 class="title">
|
||||
{{ $t('settings.profile_tab') }}
|
||||
</div>
|
||||
</h1>
|
||||
</div>
|
||||
<div>
|
||||
<span v-if="error">{{ error }}</span>
|
||||
|
@ -166,7 +166,7 @@
|
|||
flex-basis: 500px;
|
||||
|
||||
// No sticky header on user profile
|
||||
--currentPanelStack: 1;
|
||||
--currentPanelStack: 0;
|
||||
|
||||
.user-birthday {
|
||||
margin: 0 0.75em 0.5em;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<div class="user-reporting-panel panel">
|
||||
<div class="panel-heading">
|
||||
<i18n-t
|
||||
tag="div"
|
||||
tag="h1"
|
||||
keypath="user_reporting.title"
|
||||
class="title"
|
||||
>
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
<template>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
{{ $t('who_to_follow.who_to_follow') }}
|
||||
<h1 class="title">
|
||||
{{ $t('who_to_follow.who_to_follow') }}
|
||||
</h1>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<FollowCard
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
<div class="who-to-follow-panel">
|
||||
<div class="panel panel-default base01-background">
|
||||
<div class="panel-heading timeline-heading base02-background base04">
|
||||
<div class="title">
|
||||
<h1 class="title">
|
||||
{{ $t('who_to_follow.who_to_follow') }}
|
||||
</div>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="who-to-follow">
|
||||
<p
|
||||
|
|
|
@ -76,7 +76,9 @@ const persistedStateOptions = {
|
|||
|
||||
window.splashError = e => splashError(i18n, e)
|
||||
window.splashUpdate = key => {
|
||||
document.querySelector('#status').textContent = i18n.global.t(key)
|
||||
if (document.querySelector('#status')) {
|
||||
document.querySelector('#status').textContent = i18n.global.t(key)
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
|
|
|
@ -185,7 +185,7 @@ export const defaultState = {
|
|||
closingDrawerMarksAsSeen: undefined, // instance default
|
||||
unseenAtTop: undefined, // instance default
|
||||
ignoreInactionableSeen: undefined, // instance default
|
||||
useAbsoluteTimeFormat: undefined, // instance defualt
|
||||
useAbsoluteTimeFormat: undefined, // instance default
|
||||
absoluteTimeFormatMinAge: undefined // instance default
|
||||
}
|
||||
|
||||
|
|
|
@ -159,6 +159,7 @@ const defaultState = {
|
|||
|
||||
// Version Information
|
||||
backendVersion: '',
|
||||
backendRepository: '',
|
||||
frontendVersion: '',
|
||||
|
||||
pollsAvailable: false,
|
||||
|
|
|
@ -452,11 +452,11 @@ const users = {
|
|||
commit('clearFollowers', userId)
|
||||
},
|
||||
subscribeUser ({ rootState, commit }, id) {
|
||||
return rootState.api.backendInteractor.subscribeUser({ id })
|
||||
return rootState.api.backendInteractor.followUser({ id, notify: true })
|
||||
.then((relationship) => commit('updateUserRelationship', [relationship]))
|
||||
},
|
||||
unsubscribeUser ({ rootState, commit }, id) {
|
||||
return rootState.api.backendInteractor.unsubscribeUser({ id })
|
||||
return rootState.api.backendInteractor.followUser({ id, notify: false })
|
||||
.then((relationship) => commit('updateUserRelationship', [relationship]))
|
||||
},
|
||||
toggleActivationStatus ({ rootState, commit }, { user }) {
|
||||
|
|
|
@ -115,6 +115,8 @@
|
|||
|
||||
.title {
|
||||
font-size: 1.3em;
|
||||
margin: 0;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.alert {
|
||||
|
|
|
@ -68,8 +68,6 @@ const MASTODON_UNBLOCK_USER_URL = id => `/api/v1/accounts/${id}/unblock`
|
|||
const MASTODON_MUTE_USER_URL = id => `/api/v1/accounts/${id}/mute`
|
||||
const MASTODON_UNMUTE_USER_URL = id => `/api/v1/accounts/${id}/unmute`
|
||||
const MASTODON_REMOVE_USER_FROM_FOLLOWERS = id => `/api/v1/accounts/${id}/remove_from_followers`
|
||||
const MASTODON_SUBSCRIBE_USER = id => `/api/v1/pleroma/accounts/${id}/subscribe`
|
||||
const MASTODON_UNSUBSCRIBE_USER = id => `/api/v1/pleroma/accounts/${id}/unsubscribe`
|
||||
const MASTODON_USER_NOTE_URL = id => `/api/v1/accounts/${id}/note`
|
||||
const MASTODON_BOOKMARK_STATUS_URL = id => `/api/v1/statuses/${id}/bookmark`
|
||||
const MASTODON_UNBOOKMARK_STATUS_URL = id => `/api/v1/statuses/${id}/unbookmark`
|
||||
|
@ -275,6 +273,7 @@ const followUser = ({ id, credentials, ...options }) => {
|
|||
const url = MASTODON_FOLLOW_URL(id)
|
||||
const form = {}
|
||||
if (options.reblogs !== undefined) { form.reblogs = options.reblogs }
|
||||
if (options.notify !== undefined) { form.notify = options.notify }
|
||||
return fetch(url, {
|
||||
body: JSON.stringify(form),
|
||||
headers: {
|
||||
|
@ -1180,14 +1179,6 @@ const unmuteUser = ({ id, credentials }) => {
|
|||
return promisedRequest({ url: MASTODON_UNMUTE_USER_URL(id), credentials, method: 'POST' })
|
||||
}
|
||||
|
||||
const subscribeUser = ({ id, credentials }) => {
|
||||
return promisedRequest({ url: MASTODON_SUBSCRIBE_USER(id), credentials, method: 'POST' })
|
||||
}
|
||||
|
||||
const unsubscribeUser = ({ id, credentials }) => {
|
||||
return promisedRequest({ url: MASTODON_UNSUBSCRIBE_USER(id), credentials, method: 'POST' })
|
||||
}
|
||||
|
||||
const fetchBlocks = ({ maxId, credentials }) => {
|
||||
const query = new URLSearchParams({ with_relationships: true })
|
||||
if (maxId) {
|
||||
|
@ -1978,8 +1969,6 @@ const apiService = {
|
|||
fetchMutes,
|
||||
muteUser,
|
||||
unmuteUser,
|
||||
subscribeUser,
|
||||
unsubscribeUser,
|
||||
fetchBlocks,
|
||||
fetchOAuthTokens,
|
||||
revokeOAuthToken,
|
||||
|
|
|
@ -118,7 +118,12 @@ export const tryLoadCache = async () => {
|
|||
}
|
||||
}
|
||||
|
||||
export const applyTheme = (input, onEagerFinish = data => {}, onFinish = data => {}, debug) => {
|
||||
export const applyTheme = (
|
||||
input,
|
||||
onEagerFinish = data => {},
|
||||
onFinish = data => {},
|
||||
debug
|
||||
) => {
|
||||
const eagerStyles = createStyleSheet(EAGER_STYLE_ID)
|
||||
const lazyStyles = createStyleSheet(LAZY_STYLE_ID)
|
||||
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
|
||||
export const extractCommit = versionString => {
|
||||
const regex = /-g(\w+)/i
|
||||
const matches = versionString.match(regex)
|
||||
return matches ? matches[1] : ''
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
import { extractCommit } from 'src/services/version/version.service.js'
|
||||
|
||||
describe('extractCommit', () => {
|
||||
it('return short commit hash following "-g" characters', () => {
|
||||
expect(extractCommit('1.0.0-45-g5e7aeebc')).to.eql('5e7aeebc')
|
||||
})
|
||||
|
||||
it('return short commit hash without branch name', () => {
|
||||
expect(extractCommit('1.0.0-45-g5e7aeebc-branch')).to.eql('5e7aeebc')
|
||||
})
|
||||
})
|
Loading…
Add table
Reference in a new issue