Merge branch 'develop' into feature/following_reblogs
This commit is contained in:
commit
541a71c3a5
31 changed files with 217 additions and 49 deletions
|
@ -53,6 +53,15 @@
|
|||
:title="$t('nav.preferences')"
|
||||
/>
|
||||
</router-link>
|
||||
<a
|
||||
v-if="currentUser && currentUser.role === 'admin'"
|
||||
href="/pleroma/admin/#/login-pleroma"
|
||||
class="mobile-hidden"
|
||||
target="_blank"
|
||||
><i
|
||||
class="button-icon icon-gauge nav-icon"
|
||||
:title="$t('nav.administration')"
|
||||
/></a>
|
||||
<a
|
||||
v-if="currentUser"
|
||||
href="#"
|
||||
|
|
|
@ -1,24 +1,41 @@
|
|||
import PostStatusForm from '../post_status_form/post_status_form.vue'
|
||||
import get from 'lodash/get'
|
||||
|
||||
const PostStatusModal = {
|
||||
components: {
|
||||
PostStatusForm
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
resettingForm: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
isLoggedIn () {
|
||||
return !!this.$store.state.users.currentUser
|
||||
},
|
||||
isOpen () {
|
||||
return this.isLoggedIn && this.$store.state.postStatus.modalActivated
|
||||
modalActivated () {
|
||||
return this.$store.state.postStatus.modalActivated
|
||||
},
|
||||
isFormVisible () {
|
||||
return this.isLoggedIn && !this.resettingForm && this.modalActivated
|
||||
},
|
||||
params () {
|
||||
return this.$store.state.postStatus.params || {}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
isOpen (val) {
|
||||
params (newVal, oldVal) {
|
||||
if (get(newVal, 'repliedUser.id') !== get(oldVal, 'repliedUser.id')) {
|
||||
this.resettingForm = true
|
||||
this.$nextTick(() => {
|
||||
this.resettingForm = false
|
||||
})
|
||||
}
|
||||
},
|
||||
isFormVisible (val) {
|
||||
if (val) {
|
||||
this.$nextTick(() => this.$el.querySelector('textarea').focus())
|
||||
this.$nextTick(() => this.$el && this.$el.querySelector('textarea').focus())
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<template>
|
||||
<div
|
||||
v-if="isOpen"
|
||||
v-if="isLoggedIn && !resettingForm"
|
||||
v-show="modalActivated"
|
||||
class="post-form-modal-view modal-view"
|
||||
@click="closeModal"
|
||||
>
|
||||
|
|
|
@ -122,6 +122,17 @@
|
|||
{{ $t("nav.about") }}
|
||||
</router-link>
|
||||
</li>
|
||||
<li
|
||||
v-if="currentUser && currentUser.role === 'admin'"
|
||||
@click="toggleDrawer"
|
||||
>
|
||||
<a
|
||||
href="/pleroma/admin/#/login-pleroma"
|
||||
target="_blank"
|
||||
>
|
||||
{{ $t("nav.administration") }}
|
||||
</a>
|
||||
</li>
|
||||
<li
|
||||
v-if="currentUser"
|
||||
@click="toggleDrawer"
|
||||
|
|
|
@ -41,8 +41,11 @@ const UserSettings = {
|
|||
newDefaultScope: this.$store.state.users.currentUser.default_scope,
|
||||
hideFollows: this.$store.state.users.currentUser.hide_follows,
|
||||
hideFollowers: this.$store.state.users.currentUser.hide_followers,
|
||||
hideFollowsCount: this.$store.state.users.currentUser.hide_follows_count,
|
||||
hideFollowersCount: this.$store.state.users.currentUser.hide_followers_count,
|
||||
showRole: this.$store.state.users.currentUser.show_role,
|
||||
role: this.$store.state.users.currentUser.role,
|
||||
discoverable: this.$store.state.users.currentUser.discoverable,
|
||||
pickAvatarBtnVisible: true,
|
||||
bannerUploading: false,
|
||||
backgroundUploading: false,
|
||||
|
@ -142,6 +145,9 @@ const UserSettings = {
|
|||
no_rich_text: this.newNoRichText,
|
||||
hide_follows: this.hideFollows,
|
||||
hide_followers: this.hideFollowers,
|
||||
discoverable: this.discoverable,
|
||||
hide_follows_count: this.hideFollowsCount,
|
||||
hide_followers_count: this.hideFollowersCount,
|
||||
show_role: this.showRole
|
||||
/* eslint-enable camelcase */
|
||||
} }).then((user) => {
|
||||
|
|
|
@ -90,6 +90,15 @@
|
|||
>
|
||||
<label for="account-hide-follows">{{ $t('settings.hide_follows_description') }}</label>
|
||||
</p>
|
||||
<p class="setting-subitem">
|
||||
<input
|
||||
id="account-hide-follows-count"
|
||||
v-model="hideFollowsCount"
|
||||
type="checkbox"
|
||||
:disabled="!hideFollows"
|
||||
>
|
||||
<label for="account-hide-follows-count">{{ $t('settings.hide_follows_count_description') }}</label>
|
||||
</p>
|
||||
<p>
|
||||
<input
|
||||
id="account-hide-followers"
|
||||
|
@ -98,6 +107,15 @@
|
|||
>
|
||||
<label for="account-hide-followers">{{ $t('settings.hide_followers_description') }}</label>
|
||||
</p>
|
||||
<p class="setting-subitem">
|
||||
<input
|
||||
id="account-hide-followers-count"
|
||||
v-model="hideFollowersCount"
|
||||
type="checkbox"
|
||||
:disabled="!hideFollowers"
|
||||
>
|
||||
<label for="account-hide-followers-count">{{ $t('settings.hide_followers_count_description') }}</label>
|
||||
</p>
|
||||
<p>
|
||||
<input
|
||||
id="account-show-role"
|
||||
|
@ -113,6 +131,14 @@
|
|||
for="account-show-role"
|
||||
>{{ $t('settings.show_moderator_badge') }}</label>
|
||||
</p>
|
||||
<p>
|
||||
<input
|
||||
id="discoverable"
|
||||
v-model="discoverable"
|
||||
type="checkbox"
|
||||
>
|
||||
<label for="discoverable">{{ $t('settings.discoverable') }}</label>
|
||||
</p>
|
||||
<button
|
||||
:disabled="newName && newName.length === 0"
|
||||
class="btn btn-default"
|
||||
|
@ -619,5 +645,9 @@
|
|||
width: 10em;
|
||||
}
|
||||
}
|
||||
|
||||
.setting-subitem {
|
||||
margin-left: 1.75em;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -16,21 +16,11 @@ const WhoToFollow = {
|
|||
methods: {
|
||||
showWhoToFollow (reply) {
|
||||
reply.forEach((i, index) => {
|
||||
const user = {
|
||||
id: 0,
|
||||
name: i.display_name,
|
||||
screen_name: i.acct,
|
||||
profile_image_url: i.avatar || '/images/avi.png',
|
||||
profile_image_url_original: i.avatar || '/images/avi.png',
|
||||
statusnet_profile_url: i.url
|
||||
}
|
||||
this.users.push(user)
|
||||
|
||||
this.$store.state.api.backendInteractor.fetchUser({ id: user.screen_name })
|
||||
this.$store.state.api.backendInteractor.fetchUser({ id: i.acct })
|
||||
.then((externalUser) => {
|
||||
if (!externalUser.error) {
|
||||
this.$store.commit('addNewUsers', [externalUser])
|
||||
user.id = externalUser.id
|
||||
this.users.push(externalUser)
|
||||
}
|
||||
})
|
||||
})
|
||||
|
|
|
@ -68,6 +68,7 @@
|
|||
},
|
||||
"nav": {
|
||||
"about": "About",
|
||||
"administration": "Administration",
|
||||
"back": "Back",
|
||||
"chat": "Local Chat",
|
||||
"friend_requests": "Follow Requests",
|
||||
|
@ -231,6 +232,7 @@
|
|||
"delete_account_description": "Permanently delete your account and all your messages.",
|
||||
"delete_account_error": "There was an issue deleting your account. If this persists please contact your instance administrator.",
|
||||
"delete_account_instructions": "Type your password in the input below to confirm account deletion.",
|
||||
"discoverable": "Allow discovery of this account in search results and other services",
|
||||
"avatar_size_instruction": "The recommended minimum size for avatar images is 150x150 pixels.",
|
||||
"pad_emoji": "Pad emoji with spaces when adding from picker",
|
||||
"export_theme": "Save preset",
|
||||
|
@ -284,6 +286,8 @@
|
|||
"no_mutes": "No mutes",
|
||||
"hide_follows_description": "Don't show who I'm following",
|
||||
"hide_followers_description": "Don't show who's following me",
|
||||
"hide_follows_count_description": "Don't show follow count",
|
||||
"hide_followers_count_description": "Don't show follower count",
|
||||
"show_admin_badge": "Show Admin badge in my profile",
|
||||
"show_moderator_badge": "Show Moderator badge in my profile",
|
||||
"nsfw_clickthrough": "Enable clickthrough NSFW attachment hiding",
|
||||
|
|
|
@ -106,6 +106,15 @@
|
|||
"expired": "いれふだは {0} まえに、おわりました",
|
||||
"not_enough_options": "ユニークなオプションが、たりません"
|
||||
},
|
||||
"emoji": {
|
||||
"stickers": "ステッカー",
|
||||
"emoji": "えもじ",
|
||||
"keep_open": "ピッカーをあけたままにする",
|
||||
"search_emoji": "えもじをさがす",
|
||||
"add_emoji": "えもじをうちこむ",
|
||||
"custom": "カスタムえもじ",
|
||||
"unicode": "ユニコードえもじ"
|
||||
},
|
||||
"stickers": {
|
||||
"add_sticker": "ステッカーをふやす"
|
||||
},
|
||||
|
@ -224,9 +233,11 @@
|
|||
"default_vis": "デフォルトのこうかいはんい",
|
||||
"delete_account": "アカウントをけす",
|
||||
"delete_account_description": "あなたのアカウントとメッセージが、きえます。",
|
||||
"delete_account_error": "アカウントをけすことが、できなかったかもしれません。インスタンスのかんりしゃに、れんらくしてください。",
|
||||
"delete_account_error": "アカウントをけすことが、できなかったかもしれません。インスタンスのアドミニストレーターに、おといあわせください。",
|
||||
"delete_account_instructions": "ほんとうにアカウントをけしてもいいなら、パスワードをかいてください。",
|
||||
"discoverable": "けんさくなどのサービスで、このアカウントをみつけてもよい",
|
||||
"avatar_size_instruction": "アバターのおおきさは、150×150ピクセルか、それよりもおおきくするといいです。",
|
||||
"pad_emoji": "えもじをピッカーでえらんだとき、えもじのまわりにスペースをいれる",
|
||||
"export_theme": "セーブ",
|
||||
"filtering": "フィルタリング",
|
||||
"filtering_explanation": "これらのことばをふくむすべてのものがミュートされます。1ぎょうに1つのことばをかいてください。",
|
||||
|
@ -279,6 +290,8 @@
|
|||
"no_mutes": "ミュートしていません",
|
||||
"hide_follows_description": "フォローしているひとをみせない",
|
||||
"hide_followers_description": "フォロワーをみせない",
|
||||
"hide_follows_count_description": "フォローしているひとのかずをみせない",
|
||||
"hide_followers_count_description": "フォロワーのかずをみせない",
|
||||
"show_admin_badge": "アドミンのしるしをみせる",
|
||||
"show_moderator_badge": "モデレーターのしるしをみせる",
|
||||
"nsfw_clickthrough": "NSFWなファイルをかくす",
|
||||
|
@ -531,6 +544,7 @@
|
|||
"follows_you": "フォローされました!",
|
||||
"its_you": "これはあなたです!",
|
||||
"media": "メディア",
|
||||
"mention": "メンション",
|
||||
"mute": "ミュート",
|
||||
"muted": "ミュートしています!",
|
||||
"per_day": "/日",
|
||||
|
@ -610,5 +624,16 @@
|
|||
"person_talking": "{count} にんが、はなしています",
|
||||
"people_talking": "{count} にんが、はなしています",
|
||||
"no_results": "みつかりませんでした"
|
||||
},
|
||||
"password_reset": {
|
||||
"forgot_password": "パスワードを、わすれましたか?",
|
||||
"password_reset": "パスワードリセット",
|
||||
"instruction": "あなたのメールアドレスかユーザーめいをいれてください。パスワードをリセットするためのリンクをおくります。",
|
||||
"placeholder": "あなたのメールアドレスかユーザーめい",
|
||||
"check_email": "パスワードをリセットするためのリンクがかかれたメールが、とどいているかどうか、みてください。",
|
||||
"return_home": "ホームページにもどる",
|
||||
"not_found": "そのメールアドレスまたはユーザーめいを、みつけることができませんでした。",
|
||||
"too_many_requests": "パスワードリセットを、ためすことが、おおすぎます。しばらくしてから、ためしてください。",
|
||||
"password_reset_disabled": "このインスタンスでは、パスワードリセットは、できません。インスタンスのアドミニストレーターに、おといあわせください。"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -106,6 +106,15 @@
|
|||
"expired": "投票は {0} 前に終了しました",
|
||||
"not_enough_options": "相異なる選択肢が不足しています"
|
||||
},
|
||||
"emoji": {
|
||||
"stickers": "ステッカー",
|
||||
"emoji": "絵文字",
|
||||
"keep_open": "ピッカーを開いたままにする",
|
||||
"search_emoji": "絵文字を検索",
|
||||
"add_emoji": "絵文字を挿入",
|
||||
"custom": "カスタム絵文字",
|
||||
"unicode": "Unicode絵文字"
|
||||
},
|
||||
"stickers": {
|
||||
"add_sticker": "ステッカーを追加"
|
||||
},
|
||||
|
@ -226,7 +235,9 @@
|
|||
"delete_account_description": "あなたのアカウントとメッセージが、消えます。",
|
||||
"delete_account_error": "アカウントを消すことが、できなかったかもしれません。インスタンスの管理者に、連絡してください。",
|
||||
"delete_account_instructions": "本当にアカウントを消してもいいなら、パスワードを入力してください。",
|
||||
"discoverable": "検索などのサービスでこのアカウントを見つけることを許可する",
|
||||
"avatar_size_instruction": "アバターの大きさは、150×150ピクセルか、それよりも大きくするといいです。",
|
||||
"pad_emoji": "ピッカーから絵文字を挿入するとき、絵文字の両側にスペースを入れる",
|
||||
"export_theme": "保存",
|
||||
"filtering": "フィルタリング",
|
||||
"filtering_explanation": "これらの言葉を含むすべてのものがミュートされます。1行に1つの言葉を書いてください。",
|
||||
|
@ -279,6 +290,8 @@
|
|||
"no_mutes": "ミュートはありません",
|
||||
"hide_follows_description": "フォローしている人を見せない",
|
||||
"hide_followers_description": "フォロワーを見せない",
|
||||
"hide_follows_count_description": "フォローしている人の数を見せない",
|
||||
"hide_followers_count_description": "フォロワーの数を見せない",
|
||||
"show_admin_badge": "管理者のバッジを見せる",
|
||||
"show_moderator_badge": "モデレーターのバッジを見せる",
|
||||
"nsfw_clickthrough": "NSFWなファイルを隠す",
|
||||
|
@ -531,6 +544,7 @@
|
|||
"follows_you": "フォローされました!",
|
||||
"its_you": "これはあなたです!",
|
||||
"media": "メディア",
|
||||
"mention": "メンション",
|
||||
"mute": "ミュート",
|
||||
"muted": "ミュートしています!",
|
||||
"per_day": "/日",
|
||||
|
@ -610,5 +624,16 @@
|
|||
"person_talking": "{count} 人が話しています",
|
||||
"people_talking": "{count} 人が話しています",
|
||||
"no_results": "見つかりませんでした"
|
||||
},
|
||||
"password_reset": {
|
||||
"forgot_password": "パスワードを忘れましたか?",
|
||||
"password_reset": "パスワードリセット",
|
||||
"instruction": "メールアドレスまたはユーザー名を入力してください。パスワードをリセットするためのリンクを送信します。",
|
||||
"placeholder": "メールアドレスまたはユーザー名",
|
||||
"check_email": "パスワードをリセットするためのリンクが記載されたメールが届いているか確認してください。",
|
||||
"return_home": "ホームページに戻る",
|
||||
"not_found": "メールアドレスまたはユーザー名が見つかりませんでした。",
|
||||
"too_many_requests": "試行回数の制限に達しました。しばらく時間を置いてから再試行してください。",
|
||||
"password_reset_disabled": "このインスタンスではパスワードリセットは無効になっています。インスタンスの管理者に連絡してください。"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -178,6 +178,8 @@
|
|||
"no_rich_text_description": "Убрать форматирование из всех постов",
|
||||
"hide_follows_description": "Не показывать кого я читаю",
|
||||
"hide_followers_description": "Не показывать кто читает меня",
|
||||
"hide_follows_count_description": "Не показывать число читаемых пользователей",
|
||||
"hide_followers_count_description": "Не показывать число моих подписчиков",
|
||||
"show_admin_badge": "Показывать значок администратора в моем профиле",
|
||||
"show_moderator_badge": "Показывать значок модератора в моем профиле",
|
||||
"nsfw_clickthrough": "Включить скрытие NSFW вложений",
|
||||
|
|
|
@ -75,6 +75,8 @@ export const parseUser = (data) => {
|
|||
|
||||
output.hide_follows = data.pleroma.hide_follows
|
||||
output.hide_followers = data.pleroma.hide_followers
|
||||
output.hide_follows_count = data.pleroma.hide_follows_count
|
||||
output.hide_followers_count = data.pleroma.hide_followers_count
|
||||
|
||||
output.rights = {
|
||||
moderator: data.pleroma.is_moderator,
|
||||
|
@ -96,6 +98,7 @@ export const parseUser = (data) => {
|
|||
if (data.source.pleroma) {
|
||||
output.no_rich_text = data.source.pleroma.no_rich_text
|
||||
output.show_role = data.source.pleroma.show_role
|
||||
output.discoverable = data.source.pleroma.discoverable
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -141,6 +144,8 @@ export const parseUser = (data) => {
|
|||
output.default_scope = data.default_scope
|
||||
output.hide_follows = data.hide_follows
|
||||
output.hide_followers = data.hide_followers
|
||||
output.hide_follows_count = data.hide_follows_count
|
||||
output.hide_followers_count = data.hide_followers_count
|
||||
output.background_image = data.background_image
|
||||
// on mastoapi this info is contained in a "relationship"
|
||||
output.following = data.following
|
||||
|
@ -192,9 +197,11 @@ export const parseAttachment = (data) => {
|
|||
return output
|
||||
}
|
||||
export const addEmojis = (string, emojis) => {
|
||||
const matchOperatorsRegex = /[|\\{}()[\]^$+*?.-]/g
|
||||
return emojis.reduce((acc, emoji) => {
|
||||
const regexSafeShortCode = emoji.shortcode.replace(matchOperatorsRegex, '\\$&')
|
||||
return acc.replace(
|
||||
new RegExp(`:${emoji.shortcode}:`, 'g'),
|
||||
new RegExp(`:${regexSafeShortCode}:`, 'g'),
|
||||
`<img src='${emoji.url}' alt='${emoji.shortcode}' title='${emoji.shortcode}' class='emoji' />`
|
||||
)
|
||||
}, string)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue