diff --git a/app/controllers/api/v1/accounts_controller.rb b/app/controllers/api/v1/accounts_controller.rb
index 85eb2d60e2..b1a2ed5737 100644
--- a/app/controllers/api/v1/accounts_controller.rb
+++ b/app/controllers/api/v1/accounts_controller.rb
@@ -13,11 +13,9 @@ class Api::V1::AccountsController < Api::BaseController
end
def follow
- reblogs_arg = { reblogs: params[:reblogs] }
-
- FollowService.new.call(current_user.account, @account.acct, reblogs_arg)
+ FollowService.new.call(current_user.account, @account.acct, reblogs: params[:reblogs])
- options = @account.locked? ? {} : { following_map: { @account.id => reblogs_arg }, requested_map: { @account.id => false } }
+ options = @account.locked? ? {} : { following_map: { @account.id => { reblogs: params[:reblogs] } }, requested_map: { @account.id => false } }
render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships(options)
end
diff --git a/app/controllers/settings/migrations_controller.rb b/app/controllers/settings/migrations_controller.rb
index 711ba338f0..b18403a7f0 100644
--- a/app/controllers/settings/migrations_controller.rb
+++ b/app/controllers/settings/migrations_controller.rb
@@ -12,13 +12,10 @@ class Settings::MigrationsController < ApplicationController
def update
@migration = Form::Migration.new(resource_params)
- if @migration.valid?
- if current_account.moved_to_account_id != @migration.account&.id
- current_account.update!(moved_to_account: @migration.account)
- ActivityPub::UpdateDistributionWorker.perform_async(@account.id)
- end
-
- redirect_to settings_migration_path
+ if @migration.valid? && migration_account_changed?
+ current_account.update!(moved_to_account: @migration.account)
+ ActivityPub::UpdateDistributionWorker.perform_async(current_account.id)
+ redirect_to settings_migration_path, notice: I18n.t('migrations.updated_msg')
else
render :show
end
@@ -29,4 +26,8 @@ class Settings::MigrationsController < ApplicationController
def resource_params
params.require(:migration).permit(:acct)
end
+
+ def migration_account_changed?
+ current_account.moved_to_account_id != @migration.account&.id
+ end
end
diff --git a/app/javascript/mastodon/actions/accounts.js b/app/javascript/mastodon/actions/accounts.js
index fbaebf786d..f63325658d 100644
--- a/app/javascript/mastodon/actions/accounts.js
+++ b/app/javascript/mastodon/actions/accounts.js
@@ -105,12 +105,13 @@ export function fetchAccountFail(id, error) {
};
};
-export function followAccount(id) {
+export function followAccount(id, reblogs = true) {
return (dispatch, getState) => {
+ const alreadyFollowing = getState().getIn(['relationships', id, 'following']);
dispatch(followAccountRequest(id));
- api(getState).post(`/api/v1/accounts/${id}/follow`).then(response => {
- dispatch(followAccountSuccess(response.data));
+ api(getState).post(`/api/v1/accounts/${id}/follow`, { reblogs }).then(response => {
+ dispatch(followAccountSuccess(response.data, alreadyFollowing));
}).catch(error => {
dispatch(followAccountFail(error));
});
@@ -136,10 +137,11 @@ export function followAccountRequest(id) {
};
};
-export function followAccountSuccess(relationship) {
+export function followAccountSuccess(relationship, alreadyFollowing) {
return {
type: ACCOUNT_FOLLOW_SUCCESS,
relationship,
+ alreadyFollowing,
};
};
diff --git a/app/javascript/mastodon/components/account.js b/app/javascript/mastodon/components/account.js
index 724b10980a..1f2d7690f9 100644
--- a/app/javascript/mastodon/components/account.js
+++ b/app/javascript/mastodon/components/account.js
@@ -93,7 +93,7 @@ export default class Account extends ImmutablePureComponent {
);
} else {
- buttons = ;
+ buttons = ;
}
}
diff --git a/app/javascript/mastodon/features/account/components/action_bar.js b/app/javascript/mastodon/features/account/components/action_bar.js
index e375131d4d..389296c42b 100644
--- a/app/javascript/mastodon/features/account/components/action_bar.js
+++ b/app/javascript/mastodon/features/account/components/action_bar.js
@@ -20,6 +20,8 @@ const messages = defineMessages({
media: { id: 'account.media', defaultMessage: 'Media' },
blockDomain: { id: 'account.block_domain', defaultMessage: 'Hide everything from {domain}' },
unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unhide {domain}' },
+ hideReblogs: { id: 'account.hide_reblogs', defaultMessage: 'Hide boosts from @{name}' },
+ showReblogs: { id: 'account.show_reblogs', defaultMessage: 'Show boosts from @{name}' },
});
@injectIntl
@@ -30,6 +32,7 @@ export default class ActionBar extends React.PureComponent {
onFollow: PropTypes.func,
onBlock: PropTypes.func.isRequired,
onMention: PropTypes.func.isRequired,
+ onReblogToggle: PropTypes.func.isRequired,
onReport: PropTypes.func.isRequired,
onMute: PropTypes.func.isRequired,
onBlockDomain: PropTypes.func.isRequired,
@@ -60,6 +63,15 @@ export default class ActionBar extends React.PureComponent {
if (account.get('id') === me) {
menu.push({ text: intl.formatMessage(messages.edit_profile), href: '/settings/profile' });
} else {
+ const following = account.getIn(['relationship', 'following']);
+ if (following) {
+ if (following.get('reblogs')) {
+ menu.push({ text: intl.formatMessage(messages.hideReblogs, { name: account.get('username') }), action: this.props.onReblogToggle });
+ } else {
+ menu.push({ text: intl.formatMessage(messages.showReblogs, { name: account.get('username') }), action: this.props.onReblogToggle });
+ }
+ }
+
if (account.getIn(['relationship', 'muting'])) {
menu.push({ text: intl.formatMessage(messages.unmute, { name: account.get('username') }), action: this.props.onMute });
} else {
diff --git a/app/javascript/mastodon/features/account_timeline/components/header.js b/app/javascript/mastodon/features/account_timeline/components/header.js
index 5e251c0e57..0ddb6b6c1c 100644
--- a/app/javascript/mastodon/features/account_timeline/components/header.js
+++ b/app/javascript/mastodon/features/account_timeline/components/header.js
@@ -14,6 +14,7 @@ export default class Header extends ImmutablePureComponent {
onFollow: PropTypes.func.isRequired,
onBlock: PropTypes.func.isRequired,
onMention: PropTypes.func.isRequired,
+ onReblogToggle: PropTypes.func.isRequired,
onReport: PropTypes.func.isRequired,
onMute: PropTypes.func.isRequired,
onBlockDomain: PropTypes.func.isRequired,
@@ -40,6 +41,10 @@ export default class Header extends ImmutablePureComponent {
this.props.onReport(this.props.account);
}
+ handleReblogToggle = () => {
+ this.props.onReblogToggle(this.props.account);
+ }
+
handleMute = () => {
this.props.onMute(this.props.account);
}
@@ -80,6 +85,7 @@ export default class Header extends ImmutablePureComponent {
account={account}
onBlock={this.handleBlock}
onMention={this.handleMention}
+ onReblogToggle={this.handleReblogToggle}
onReport={this.handleReport}
onMute={this.handleMute}
onBlockDomain={this.handleBlockDomain}
diff --git a/app/javascript/mastodon/features/account_timeline/containers/header_container.js b/app/javascript/mastodon/features/account_timeline/containers/header_container.js
index 8e50ec405c..b41eb19d47 100644
--- a/app/javascript/mastodon/features/account_timeline/containers/header_container.js
+++ b/app/javascript/mastodon/features/account_timeline/containers/header_container.js
@@ -67,6 +67,14 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
dispatch(mentionCompose(account, router));
},
+ onReblogToggle (account) {
+ if (account.getIn(['relationship', 'following', 'reblogs'])) {
+ dispatch(followAccount(account.get('id'), false));
+ } else {
+ dispatch(followAccount(account.get('id'), true));
+ }
+ },
+
onReport (account) {
dispatch(initReport(account));
},
diff --git a/app/javascript/mastodon/features/keyboard_shortcuts/index.js b/app/javascript/mastodon/features/keyboard_shortcuts/index.js
index 00771b79cb..8ab85dde9e 100644
--- a/app/javascript/mastodon/features/keyboard_shortcuts/index.js
+++ b/app/javascript/mastodon/features/keyboard_shortcuts/index.js
@@ -1,28 +1,11 @@
import React from 'react';
import Column from '../ui/components/column';
-import { defineMessages, injectIntl } from 'react-intl';
+import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import PropTypes from 'prop-types';
import ImmutablePureComponent from 'react-immutable-pure-component';
const messages = defineMessages({
heading: { id: 'keyboard_shortcuts.heading', defaultMessage: 'Keyboard Shortcuts' },
- hotkey: { id: 'keyboard_shortcuts.hotkey', defaultMessage: 'Hotkey' },
- description: { id: 'keyboard_shortcuts.description', defaultMessage: 'Description' },
- reply: { id: 'keyboard_shortcuts.reply', defaultMessage: 'to reply' },
- mention: { id: 'keyboard_shortcuts.mention', defaultMessage: 'to mention author' },
- favourite: { id: 'keyboard_shortcuts.favourite', defaultMessage: 'to favourite' },
- boost: { id: 'keyboard_shortcuts.boost', defaultMessage: 'to boost' },
- enter: { id: 'keyboard_shortcuts.enter', defaultMessage: 'to open status' },
- profile: { id: 'keyboard_shortcuts.profile', defaultMessage: 'to open author\'s profile' },
- up: { id: 'keyboard_shortcuts.up', defaultMessage: 'to move up in the list' },
- down: { id: 'keyboard_shortcuts.down', defaultMessage: 'to move down in the list' },
- column: { id: 'keyboard_shortcuts.column', defaultMessage: 'to focus a status in one of the columns' },
- compose: { id: 'keyboard_shortcuts.compose', defaultMessage: 'to focus the compose textarea' },
- toot: { id: 'keyboard_shortcuts.toot', defaultMessage: 'to start a brand new toot' },
- back: { id: 'keyboard_shortcuts.back', defaultMessage: 'to navigate back' },
- search: { id: 'keyboard_shortcuts.search', defaultMessage: 'to focus search' },
- unfocus: { id: 'keyboard_shortcuts.unfocus', defaultMessage: 'to un-focus compose textarea/search' },
- legend: { id: 'keyboard_shortcuts.legend', defaultMessage: 'to display this legend' },
});
@injectIntl
@@ -41,23 +24,68 @@ export default class KeyboardShortcuts extends ImmutablePureComponent {
- {intl.formatMessage(messages.hotkey)} | {intl.formatMessage(messages.description)} |
+
+ |
+ |
+
- r | {intl.formatMessage(messages.reply)} |
- m | {intl.formatMessage(messages.mention)} |
- f | {intl.formatMessage(messages.favourite)} |
- b | {intl.formatMessage(messages.boost)} |
- enter | {intl.formatMessage(messages.enter)} |
- up | {intl.formatMessage(messages.up)} |
- down | {intl.formatMessage(messages.down)} |
- 1 -9 | {intl.formatMessage(messages.column)} |
- n | {intl.formatMessage(messages.compose)} |
- alt +n | {intl.formatMessage(messages.toot)} |
- backspace | {intl.formatMessage(messages.back)} |
- s | {intl.formatMessage(messages.search)} |
- esc | {intl.formatMessage(messages.unfocus)} |
- ? | {intl.formatMessage(messages.legend)} |
+
+ r |
+ |
+
+
+ m |
+ |
+
+
+ f |
+ |
+
+
+ b |
+ |
+
+
+ enter |
+ |
+
+
+ up |
+ |
+
+
+ down |
+ |
+
+
+ 1 -9 |
+ |
+
+
+ n |
+ |
+
+
+ alt +n |
+ |
+
+
+ backspace |
+ |
+
+
+ s |
+ |
+
+
+ esc |
+ |
+
+
+ ? |
+ |
+
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index 6573b4a7c1..e26c773607 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "عرض الترقيات",
"home.column_settings.show_replies": "عرض الردود",
"home.settings": "إعدادات العمود",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "إغلاق",
"lightbox.next": "التالي",
"lightbox.previous": "العودة",
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index cb02a12a02..24d9deb4e1 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
"home.settings": "Column settings",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Затвори",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index 7ffdbfe5aa..da42f08c0a 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Mostrar impulsos",
"home.column_settings.show_replies": "Mostrar respostes",
"home.settings": "Ajustos de columna",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Tancar",
"lightbox.next": "Següent",
"lightbox.previous": "Anterior",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index 1f625252b1..ff1c9fed4c 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
"home.column_settings.show_replies": "Antworten anzeigen",
"home.settings": "Spalteneinstellungen",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Schließen",
"lightbox.next": "Weiter",
"lightbox.previous": "Zurück",
diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json
index 555c904ff8..2f9a693157 100644
--- a/app/javascript/mastodon/locales/defaultMessages.json
+++ b/app/javascript/mastodon/locales/defaultMessages.json
@@ -923,6 +923,79 @@
],
"path": "app/javascript/mastodon/features/home_timeline/index.json"
},
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Keyboard Shortcuts",
+ "id": "keyboard_shortcuts.heading"
+ },
+ {
+ "defaultMessage": "Hotkey",
+ "id": "keyboard_shortcuts.hotkey"
+ },
+ {
+ "defaultMessage": "Description",
+ "id": "keyboard_shortcuts.description"
+ },
+ {
+ "defaultMessage": "to reply",
+ "id": "keyboard_shortcuts.reply"
+ },
+ {
+ "defaultMessage": "to mention author",
+ "id": "keyboard_shortcuts.mention"
+ },
+ {
+ "defaultMessage": "to favourite",
+ "id": "keyboard_shortcuts.favourite"
+ },
+ {
+ "defaultMessage": "to boost",
+ "id": "keyboard_shortcuts.boost"
+ },
+ {
+ "defaultMessage": "to open status",
+ "id": "keyboard_shortcuts.enter"
+ },
+ {
+ "defaultMessage": "to move up in the list",
+ "id": "keyboard_shortcuts.up"
+ },
+ {
+ "defaultMessage": "to move down in the list",
+ "id": "keyboard_shortcuts.down"
+ },
+ {
+ "defaultMessage": "to focus a status in one of the columns",
+ "id": "keyboard_shortcuts.column"
+ },
+ {
+ "defaultMessage": "to focus the compose textarea",
+ "id": "keyboard_shortcuts.compose"
+ },
+ {
+ "defaultMessage": "to start a brand new toot",
+ "id": "keyboard_shortcuts.toot"
+ },
+ {
+ "defaultMessage": "to navigate back",
+ "id": "keyboard_shortcuts.back"
+ },
+ {
+ "defaultMessage": "to focus search",
+ "id": "keyboard_shortcuts.search"
+ },
+ {
+ "defaultMessage": "to un-focus compose textarea/search",
+ "id": "keyboard_shortcuts.unfocus"
+ },
+ {
+ "defaultMessage": "to display this legend",
+ "id": "keyboard_shortcuts.legend"
+ }
+ ],
+ "path": "app/javascript/mastodon/features/keyboard_shortcuts/index.json"
+ },
{
"descriptors": [
{
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index 4cb2631bce..df277112c4 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
"home.settings": "Column settings",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Close",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index 3263f56777..1da06342dc 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Montri diskonigojn",
"home.column_settings.show_replies": "Montri respondojn",
"home.settings": "Agordoj de la kolumno",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Fermi",
"lightbox.next": "Malantaŭa",
"lightbox.previous": "Antaŭa",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index 3bfa68576b..560427d78e 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Mostrar retoots",
"home.column_settings.show_replies": "Mostrar respuestas",
"home.settings": "Ajustes de columna",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Cerrar",
"lightbox.next": "Siguiente",
"lightbox.previous": "Anterior",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index fb9b8489ec..1cb28b9d7d 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "نمایش بازبوقها",
"home.column_settings.show_replies": "نمایش پاسخها",
"home.settings": "تنظیمات ستون",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "بستن",
"lightbox.next": "بعدی",
"lightbox.previous": "قبلی",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index 913c27e330..6129f08dcb 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
"home.settings": "Column settings",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Sulje",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index 8cb35619b1..9d9b580764 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Afficher les partages",
"home.column_settings.show_replies": "Afficher les réponses",
"home.settings": "Paramètres de la colonne",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Fermer",
"lightbox.next": "Suivant",
"lightbox.previous": "Précédent",
diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json
index 2e26a95e54..00595217c6 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "הצגת הדהודים",
"home.column_settings.show_replies": "הצגת תגובות",
"home.settings": "הגדרות טור",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "סגירה",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json
index e63da993e9..4e19e5a9bf 100644
--- a/app/javascript/mastodon/locales/hr.json
+++ b/app/javascript/mastodon/locales/hr.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Pokaži boostove",
"home.column_settings.show_replies": "Pokaži odgovore",
"home.settings": "Postavke Stupca",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Zatvori",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index 4f8a68448f..187796c005 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
"home.settings": "Column settings",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Bezárás",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json
index 9f5bbd1404..4144420564 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Tampilkan Boost",
"home.column_settings.show_replies": "Tampilkan balasan",
"home.settings": "Pengaturan kolom",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Tutup",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json
index 00705c7f84..b37574f057 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Montrar repeti",
"home.column_settings.show_replies": "Montrar respondi",
"home.settings": "Aranji di la kolumno",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Klozar",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index 92ab88d2e3..4a739155c8 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Mostra post condivisi",
"home.column_settings.show_replies": "Mostra risposte",
"home.settings": "Impostazioni colonna",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Chiudi",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index 19728d93c0..05e935d52b 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "ブースト表示",
"home.column_settings.show_replies": "返信表示",
"home.settings": "カラム設定",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "閉じる",
"lightbox.next": "次",
"lightbox.previous": "前",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index 63957d5e6c..4187a3b59e 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "부스트 표시",
"home.column_settings.show_replies": "답글 표시",
"home.settings": "컬럼 설정",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "닫기",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index e27d03eade..b53013ddba 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Boosts tonen",
"home.column_settings.show_replies": "Reacties tonen",
"home.settings": "Kolom-instellingen",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Sluiten",
"lightbox.next": "Volgende",
"lightbox.previous": "Vorige",
diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json
index b3dbed03fe..21a41237c3 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Vis fremhevinger",
"home.column_settings.show_replies": "Vis svar",
"home.settings": "Kolonneinnstillinger",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Lukk",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index f4854ae9a4..438167c6d5 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Mostrar los partatges",
"home.column_settings.show_replies": "Mostrar las responsas",
"home.settings": "Paramètres de la colomna",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Tampar",
"lightbox.next": "Seguent",
"lightbox.previous": "Precedent",
diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json
index 245772bded..2f5bce9a99 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Pokazuj podbicia",
"home.column_settings.show_replies": "Pokazuj odpowiedzi",
"home.settings": "Ustawienia kolumny",
+ "keyboard_shortcuts.back": "aby cofnąć się",
+ "keyboard_shortcuts.boost": "aby podbić wpis",
+ "keyboard_shortcuts.column": "aby przejść do wpisu z jednej z kolumn",
+ "keyboard_shortcuts.compose": "aby przejść do pola tworzenia wpisu",
+ "keyboard_shortcuts.description": "Opis",
+ "keyboard_shortcuts.down": "aby przejść na dół listy",
+ "keyboard_shortcuts.enter": "aby otworzyć wpis",
+ "keyboard_shortcuts.favourite": "aby dodać do ulubionych",
+ "keyboard_shortcuts.heading": "Skróty klawiszowe",
+ "keyboard_shortcuts.hotkey": "Klawisz",
+ "keyboard_shortcuts.legend": "aby wyświetlić tą legendę",
+ "keyboard_shortcuts.mention": "aby wspomnieć o autorze",
+ "keyboard_shortcuts.reply": "aby odpowiedzieć",
+ "keyboard_shortcuts.search": "aby przejść do pola wyszukiwania",
+ "keyboard_shortcuts.toot": "aby utworzyć nowy wpis",
+ "keyboard_shortcuts.unfocus": "aby opuścić pole wyszukiwania/pisania",
+ "keyboard_shortcuts.up": "aby przejść na górę listy",
"lightbox.close": "Zamknij",
"lightbox.next": "Następne",
"lightbox.previous": "Poprzednie",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index 4de58408cc..2931faac5d 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Mostrar compartilhamentos",
"home.column_settings.show_replies": "Mostrar as respostas",
"home.settings": "Configurações de colunas",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Fechar",
"lightbox.next": "Próximo",
"lightbox.previous": "Anterior",
diff --git a/app/javascript/mastodon/locales/pt.json b/app/javascript/mastodon/locales/pt.json
index 1447bc2be9..a420a71219 100644
--- a/app/javascript/mastodon/locales/pt.json
+++ b/app/javascript/mastodon/locales/pt.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Mostrar as partilhas",
"home.column_settings.show_replies": "Mostrar as respostas",
"home.settings": "Parâmetros da listagem",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Fechar",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 9895190581..1fed90e10b 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Показывать продвижения",
"home.column_settings.show_replies": "Показывать ответы",
"home.settings": "Настройки колонки",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Закрыть",
"lightbox.next": "Далее",
"lightbox.previous": "Назад",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index 5afedecbc9..9ded5ba3ee 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Visa knuffar",
"home.column_settings.show_replies": "Visa svar",
"home.settings": "Kolumninställningar",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Stäng",
"lightbox.next": "Nästa",
"lightbox.previous": "Tidigare",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index 3e8422dd1c..b59206defd 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
"home.settings": "Column settings",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Close",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index 42f67729ef..ae88ff5b62 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Boost edilenleri göster",
"home.column_settings.show_replies": "Cevapları göster",
"home.settings": "Kolon ayarları",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Kapat",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index 514f988c75..ab2f07c8ac 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "Показувати передмухи",
"home.column_settings.show_replies": "Показувати відповіді",
"home.settings": "Налаштування колонок",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Закрити",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index 1c2c970670..7f6d68a5e8 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "显示转嘟",
"home.column_settings.show_replies": "显示回复",
"home.settings": "栏目设置",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "关闭",
"lightbox.next": "下一步",
"lightbox.previous": "上一步",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index be5a47370a..e35f813bca 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "顯示被轉推的文章",
"home.column_settings.show_replies": "顯示回應文章",
"home.settings": "欄位設定",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "關閉",
"lightbox.next": "繼續",
"lightbox.previous": "回退",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index 9aa9973feb..c6ac7879dc 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -102,6 +102,23 @@
"home.column_settings.show_reblogs": "顯示轉推",
"home.column_settings.show_replies": "顯示回應",
"home.settings": "欄位設定",
+ "keyboard_shortcuts.back": "to navigate back",
+ "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.mention": "to mention author",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
+ "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "關閉",
"lightbox.next": "繼續",
"lightbox.previous": "回退",
diff --git a/app/javascript/mastodon/reducers/accounts_counters.js b/app/javascript/mastodon/reducers/accounts_counters.js
index 1ed0fe3e39..2a78a9f340 100644
--- a/app/javascript/mastodon/reducers/accounts_counters.js
+++ b/app/javascript/mastodon/reducers/accounts_counters.js
@@ -126,7 +126,8 @@ export default function accountsCounters(state = initialState, action) {
case STATUS_FETCH_SUCCESS:
return normalizeAccountFromStatus(state, action.status);
case ACCOUNT_FOLLOW_SUCCESS:
- return state.updateIn([action.relationship.id, 'followers_count'], num => num + 1);
+ return action.alreadyFollowing ? state :
+ state.updateIn([action.relationship.id, 'followers_count'], num => num + 1);
case ACCOUNT_UNFOLLOW_SUCCESS:
return state.updateIn([action.relationship.id, 'followers_count'], num => Math.max(0, num - 1));
default:
diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb
index 5d7f47c6f0..fe5ebfc36f 100644
--- a/app/lib/feed_manager.rb
+++ b/app/lib/feed_manager.rb
@@ -162,16 +162,15 @@ class FeedManager
return true if Block.where(account_id: receiver_id, target_account_id: check_for_blocks).any?
- if status.reply? && !status.in_reply_to_account_id.nil? # Filter out if it's a reply
- should_filter = !Follow.where(account_id: receiver_id, target_account_id: status.in_reply_to_account_id).exists? # and I'm not following the person it's a reply to
- should_filter &&= receiver_id != status.in_reply_to_account_id # and it's not a reply to me
- should_filter &&= status.account_id != status.in_reply_to_account_id # and it's not a self-reply
+ if status.reply? && !status.in_reply_to_account_id.nil? # Filter out if it's a reply
+ should_filter = !Follow.where(account_id: receiver_id, target_account_id: status.in_reply_to_account_id).exists? # and I'm not following the person it's a reply to
+ should_filter &&= receiver_id != status.in_reply_to_account_id # and it's not a reply to me
+ should_filter &&= status.account_id != status.in_reply_to_account_id # and it's not a self-reply
return should_filter
- elsif status.reblog? # Filter out a reblog
- src_id = status.account_id
- should_filter = Follow.where(account_id: receiver_id, target_account_id: src_id, show_reblogs: false).exists? # if the reblogger's reblogs are suppressed
- should_filter ||= Block.where(account_id: status.reblog.account_id, target_account_id: receiver_id).exists? # or if the author of the reblogged status is blocking me
- should_filter ||= AccountDomainBlock.where(account_id: receiver_id, domain: status.reblog.account.domain).exists? # or the author's domain is blocked
+ elsif status.reblog? # Filter out a reblog
+ should_filter = Follow.where(account_id: receiver_id, target_account_id: status.account_id, show_reblogs: false).exists? # if the reblogger's reblogs are suppressed
+ should_filter ||= Block.where(account_id: status.reblog.account_id, target_account_id: receiver_id).exists? # or if the author of the reblogged status is blocking me
+ should_filter ||= AccountDomainBlock.where(account_id: receiver_id, domain: status.reblog.account.domain).exists? # or the author's domain is blocked
return should_filter
end
diff --git a/app/models/concerns/account_interactions.rb b/app/models/concerns/account_interactions.rb
index c41f92581b..fdf35a4e3f 100644
--- a/app/models/concerns/account_interactions.rb
+++ b/app/models/concerns/account_interactions.rb
@@ -7,7 +7,7 @@ module AccountInteractions
def following_map(target_account_ids, account_id)
Follow.where(target_account_id: target_account_ids, account_id: account_id).each_with_object({}) do |follow, mapping|
mapping[follow.target_account_id] = {
- reblogs: follow.show_reblogs?
+ reblogs: follow.show_reblogs?,
}
end
end
@@ -31,7 +31,7 @@ module AccountInteractions
def requested_map(target_account_ids, account_id)
FollowRequest.where(target_account_id: target_account_ids, account_id: account_id).each_with_object({}) do |follow_request, mapping|
mapping[follow_request.target_account_id] = {
- reblogs: follow_request.show_reblogs?
+ reblogs: follow_request.show_reblogs?,
}
end
end
diff --git a/app/models/form/migration.rb b/app/models/form/migration.rb
index 53cee7ee1d..b749873376 100644
--- a/app/models/form/migration.rb
+++ b/app/models/form/migration.rb
@@ -5,8 +5,6 @@ class Form::Migration
attr_accessor :acct, :account
- validates :acct, presence: true
-
def initialize(attrs = {})
@account = attrs[:account]
@acct = attrs[:account].acct unless @account.nil?
@@ -22,6 +20,6 @@ class Form::Migration
private
def set_account
- self.account = ResolveRemoteAccountService.new.call(acct) if account.nil? && acct.present?
+ self.account = (ResolveRemoteAccountService.new.call(acct) if account.nil? && acct.present?)
end
end
diff --git a/app/models/invite.rb b/app/models/invite.rb
index ceca046866..7626f4cfa1 100644
--- a/app/models/invite.rb
+++ b/app/models/invite.rb
@@ -27,13 +27,17 @@ class Invite < ApplicationRecord
end
def valid_for_use?
- (max_uses.nil? || uses < max_uses) && (expires_at.nil? || expires_at >= Time.now.utc)
+ (max_uses.nil? || uses < max_uses) && !expired?
end
def expire!
touch(:expires_at)
end
+ def expired?
+ !expires_at.nil? && expires_at < Time.now.utc
+ end
+
private
def set_code
diff --git a/app/services/process_mentions_service.rb b/app/services/process_mentions_service.rb
index a229d4ff86..e12721c464 100644
--- a/app/services/process_mentions_service.rb
+++ b/app/services/process_mentions_service.rb
@@ -18,7 +18,7 @@ class ProcessMentionsService < BaseService
end
if mentioned_account.nil?
- username, domain = match.first.split('@')
+ username, domain = $1.split('@')
mentioned_account = Account.find_remote(username, domain)
end
diff --git a/app/views/admin/invites/_invite.html.haml b/app/views/admin/invites/_invite.html.haml
index 81edfd912d..9555a89763 100644
--- a/app/views/admin/invites/_invite.html.haml
+++ b/app/views/admin/invites/_invite.html.haml
@@ -7,9 +7,13 @@
= invite.uses
= " / #{invite.max_uses}" unless invite.max_uses.nil?
%td
- - if invite.expires_at.nil?
- ∞
+ - if invite.expired?
+ = t('invites.expired')
- else
- = l invite.expires_at
+ - if invite.expires_at.nil?
+ ∞
+ - else
+ %time.formatted{ datetime: invite.expires_at.iso8601, title: l(invite.expires_at) }
+ = l invite.expires_at
%td= table_link_to 'link', public_invite_url(invite_code: invite.code), public_invite_url(invite_code: invite.code)
%td= table_link_to 'times', t('invites.delete'), invite_path(invite), method: :delete if policy(invite).destroy?
diff --git a/app/views/invites/_invite.html.haml b/app/views/invites/_invite.html.haml
index d794d72e40..3f5f7936c7 100644
--- a/app/views/invites/_invite.html.haml
+++ b/app/views/invites/_invite.html.haml
@@ -3,9 +3,13 @@
= invite.uses
= " / #{invite.max_uses}" unless invite.max_uses.nil?
%td
- - if invite.expires_at.nil?
- ∞
+ - if invite.expired?
+ = t('invites.expired')
- else
- = l invite.expires_at
+ - if invite.expires_at.nil?
+ ∞
+ - else
+ %time.formatted{ datetime: invite.expires_at.iso8601, title: l(invite.expires_at) }
+ = l invite.expires_at
%td= table_link_to 'link', public_invite_url(invite_code: invite.code), public_invite_url(invite_code: invite.code)
%td= table_link_to 'times', t('invites.delete'), invite_path(invite), method: :delete if policy(invite).destroy?
diff --git a/config/locales/en.yml b/config/locales/en.yml
index e0ae9eef91..dce2ed0797 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -432,7 +432,8 @@ en:
upload: Upload
in_memoriam_html: In Memoriam.
invites:
- delete: Delete
+ delete: Deactivate
+ expired: Expired
expires_in:
'1800': 30 minutes
'21600': 6 hours
@@ -468,6 +469,7 @@ en:
acct: username@domain of the new account
currently_redirecting: 'Your profile is set to redirect to:'
proceed: Save
+ updated_msg: Your account migration setting successfully updated!
moderation:
title: Moderation
notification_mailer:
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index f10a84bfca..2b170685da 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -343,6 +343,8 @@ pl:
invalid_reset_password_token: Token do resetowania hasła jest nieprawidłowy lub utracił ważność. Spróbuj uzyskać nowy.
login: Zaloguj się
logout: Wyloguj się
+ migrate_account: Przenieś konto
+ migrate_account_html: Jeżeli chcesz skonfigurować przekierowanie z obecnego konta na inne, możesz skonfigurować to tutaj.
register: Rejestracja
resend_confirmation: Ponownie prześlij instrukcje weryfikacji
reset_password: Zresetuj hasło
@@ -433,12 +435,37 @@ pl:
match_whole_word: Uwzględniaj całe słowo
remove: Usuń
remove_all: Usuń wszystkie
+ invites:
+ delete: Usuń
+ expires_in:
+ '1800': 30 minutach
+ '21600': 6 godzinach
+ '3600': godzinie
+ '43200': 12 godzinach
+ '86400': dobie
+ expires_in_prompt: Nigdy
+ generate: Wygeneruj
+ max_uses:
+ few: "%{count} użycia"
+ many: "%{count} użyć"
+ one: jedno użycie
+ other: "%{count} użyć"
+ max_uses_prompt: Bez ograniczenia
+ prompt: Wygeneruj odnośniki i udostępnij je innym, aby pozwolić na rejestrację na instancji
+ table:
+ expires_at: Wygaśnie po
+ uses: Użycia
+ title: Zaproś użytkowników
landing_strip_html: "%{name} ma konto na %{link_to_root_path}. Możesz je śledzić i wejść z nim w interakcję jeśli masz konto gdziekolwiek w Fediwersum."
landing_strip_signup_html: Jeśli jeszcze go nie masz, możesz stworzyć konto.
media_attachments:
validations:
images_and_video: Nie możesz załączyć pliku wideo do wpisu, który zawiera już zdjęcia
too_many: Nie możesz załączyć więcej niż 4 plików
+ migrations:
+ acct: nazwa@domena nowego konta
+ currently_redirecting: 'Obecnie Twoje konto przekierowuje do:'
+ proceed: Zapisz
moderation:
title: Moderacja
notification_mailer:
@@ -557,6 +584,7 @@ pl:
export: Eksportowanie danych
followers: Autoryzowani śledzący
import: Importowanie danych
+ migrate: Migracja konta
notifications: Powiadomienia
preferences: Preferencje
settings: Ustawienia
diff --git a/config/locales/simple_form.pl.yml b/config/locales/simple_form.pl.yml
index 8b539662ca..507e464690 100644
--- a/config/locales/simple_form.pl.yml
+++ b/config/locales/simple_form.pl.yml
@@ -34,10 +34,12 @@ pl:
data: Dane
display_name: Widoczna nazwa
email: Adres e-mail
+ expires_in: Wygaśnie po
filtered_languages: Filtrowane języki
header: Nagłówek
locale: Język
locked: Ustaw konto jako prywatne
+ max_uses: Maksymalna liczba użyć
new_password: Nowe hasło
note: Biogram
otp_attempt: Kod uwierzytelnienia dwustopniowego
diff --git a/db/migrate/20171028221157_add_reblogs_to_follows.rb b/db/migrate/20171028221157_add_reblogs_to_follows.rb
index eb4640a201..4b5d5b7ff3 100644
--- a/db/migrate/20171028221157_add_reblogs_to_follows.rb
+++ b/db/migrate/20171028221157_add_reblogs_to_follows.rb
@@ -3,9 +3,7 @@ require Rails.root.join('lib', 'mastodon', 'migration_helpers')
class AddReblogsToFollows < ActiveRecord::Migration[5.1]
include Mastodon::MigrationHelpers
- safety_assured do
- disable_ddl_transaction!
- end
+ disable_ddl_transaction!
def up
safety_assured do
diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb
index 0b3a1a63ea..95bf9561dc 100644
--- a/spec/models/concerns/account_interactions_spec.rb
+++ b/spec/models/concerns/account_interactions_spec.rb
@@ -13,7 +13,7 @@ describe AccountInteractions do
context 'account with Follow' do
it 'returns { target_account_id => { reblogs: true } }' do
- Fabricate(:follow, account: account, target_account: target_account, show_reblogs: true)
+ Fabricate(:follow, account: account, target_account: target_account)
is_expected.to eq(target_account_id => { reblogs: true })
end
end
@@ -627,4 +627,41 @@ describe AccountInteractions do
end
end
end
+
+ describe 'ignoring reblogs from an account' do
+ before do
+ @me = Fabricate(:account, username: 'Me')
+ @you = Fabricate(:account, username: 'You')
+ end
+
+ context 'with the reblogs option unspecified' do
+ before do
+ @me.follow!(@you)
+ end
+
+ it 'defaults to showing reblogs' do
+ expect(@me.muting_reblogs?(@you)).to be(false)
+ end
+ end
+
+ context 'with the reblogs option set to false' do
+ before do
+ @me.follow!(@you, reblogs: false)
+ end
+
+ it 'does mute reblogs' do
+ expect(@me.muting_reblogs?(@you)).to be(true)
+ end
+ end
+
+ context 'with the reblogs option set to true' do
+ before do
+ @me.follow!(@you, reblogs: true)
+ end
+
+ it 'does not mute reblogs' do
+ expect(@me.muting_reblogs?(@you)).to be(false)
+ end
+ end
+ end
end
diff --git a/spec/services/notify_service_spec.rb b/spec/services/notify_service_spec.rb
index a8ebc16b83..bb7601e764 100644
--- a/spec/services/notify_service_spec.rb
+++ b/spec/services/notify_service_spec.rb
@@ -101,6 +101,26 @@ RSpec.describe NotifyService do
end
end
+ describe 'reblogs' do
+ let(:status) { Fabricate(:status, account: Fabricate(:account)) }
+ let(:activity) { Fabricate(:status, account: sender, reblog: status) }
+
+ it 'shows reblogs by default' do
+ recipient.follow!(sender)
+ is_expected.to change(Notification, :count)
+ end
+
+ it 'shows reblogs when explicitly enabled' do
+ recipient.follow!(sender, reblogs: true)
+ is_expected.to change(Notification, :count)
+ end
+
+ it 'hides reblogs when disabled' do
+ recipient.follow!(sender, reblogs: false)
+ is_expected.to_not change(Notification, :count)
+ end
+ end
+
context do
let(:asshole) { Fabricate(:account, username: 'asshole') }
let(:reply_to) { Fabricate(:status, account: asshole) }
diff --git a/spec/services/process_mentions_service_spec.rb b/spec/services/process_mentions_service_spec.rb
index 09f8fa45b8..19a8678f02 100644
--- a/spec/services/process_mentions_service_spec.rb
+++ b/spec/services/process_mentions_service_spec.rb
@@ -41,4 +41,25 @@ RSpec.describe ProcessMentionsService do
expect(a_request(:post, remote_user.inbox_url)).to have_been_made.once
end
end
+
+ context 'Temporarily-unreachable ActivityPub user' do
+ let(:remote_user) { Fabricate(:account, username: 'remote_user', protocol: :activitypub, domain: 'example.com', inbox_url: 'http://example.com/inbox', last_webfingered_at: nil) }
+
+ subject { ProcessMentionsService.new }
+
+ before do
+ stub_request(:get, "https://example.com/.well-known/host-meta").to_return(status: 404)
+ stub_request(:get, "https://example.com/.well-known/webfinger?resource=acct:remote_user@example.com").to_return(status: 500)
+ stub_request(:post, remote_user.inbox_url)
+ subject.call(status)
+ end
+
+ it 'creates a mention' do
+ expect(remote_user.mentions.where(status: status).count).to eq 1
+ end
+
+ it 'sends activity to the inbox' do
+ expect(a_request(:post, remote_user.inbox_url)).to have_been_made.once
+ end
+ end
end