about summary refs log tree commit diff
path: root/app
AgeCommit message (Collapse)Author
2020-12-17Improve searching for private toots from URL (#14856)ThibG
* Improve searching for private toots from URL Most of the time, when sharing toots, people use the toot URL rather than the toot URI, which makes sense since it is the user-facing URL. In Mastodon's case, the URL and URI are different, and Mastodon does not have an index on URL, which means searching a private toot by URL is done with a slow query that will only succeed for very recent toots. This change gets rid of the slow query, and attempts to guess the URI from URL instead, as Mastodon's are predictable. * Add tests * Only return status with guessed uri if url matches Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-16New Crowdin updates (#15220)Eugen Rochko
* New translations doorkeeper.en.yml (Slovak) [ci skip] * New translations simple_form.en.yml (Slovak) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations doorkeeper.en.yml (Russian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations doorkeeper.en.yml (Portuguese) [ci skip] * New translations simple_form.en.yml (Portuguese) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations doorkeeper.en.yml (Polish) [ci skip] * New translations simple_form.en.yml (Polish) [ci skip] * New translations en.yml (Georgian) [ci skip] * New translations doorkeeper.en.yml (Japanese) [ci skip] * New translations doorkeeper.en.yml (Catalan) [ci skip] * New translations simple_form.en.yml (German) [ci skip] * New translations simple_form.en.yml (Basque) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.json (Basque) [ci skip] * New translations doorkeeper.en.yml (Greek) [ci skip] * New translations en.json (Greek) [ci skip] * New translations doorkeeper.en.yml (German) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.json (Finnish) [ci skip] * New translations doorkeeper.en.yml (Danish) [ci skip] * New translations simple_form.en.yml (Danish) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.json (Danish) [ci skip] * New translations doorkeeper.en.yml (Czech) [ci skip] * New translations simple_form.en.yml (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations doorkeeper.en.yml (Basque) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations doorkeeper.en.yml (Hungarian) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations doorkeeper.en.yml (Italian) [ci skip] * New translations simple_form.en.yml (Italian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations doorkeeper.en.yml (Armenian) [ci skip] * New translations simple_form.en.yml (Armenian) [ci skip] * New translations simple_form.en.yml (Hungarian) [ci skip] * New translations simple_form.en.yml (Finnish) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations doorkeeper.en.yml (Hebrew) [ci skip] * New translations simple_form.en.yml (Hebrew) [ci skip] * New translations en.yml (Hebrew) [ci skip] * New translations en.json (Hebrew) [ci skip] * New translations doorkeeper.en.yml (Finnish) [ci skip] * New translations simple_form.en.yml (Standard Moroccan Tamazight) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations simple_form.en.yml (Galician) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations simple_form.en.yml (Catalan) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations simple_form.en.yml (Korean) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations simple_form.en.yml (Vietnamese) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations simple_form.en.yml (Portuguese) [ci skip] * New translations en.json (Standard Moroccan Tamazight) [ci skip] * New translations en.json (Standard Moroccan Tamazight) [ci skip] * New translations en.json (Standard Moroccan Tamazight) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations simple_form.en.yml (Italian) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations simple_form.en.yml (Hungarian) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations simple_form.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations simple_form.en.yml (Swedish) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations simple_form.en.yml (Polish) [ci skip] * New translations simple_form.en.yml (Russian) [ci skip] * New translations en.yml (Sardinian) [ci skip] * New translations simple_form.en.yml (Sardinian) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations simple_form.en.yml (Icelandic) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations simple_form.en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (German) [ci skip] * New translations simple_form.en.yml (German) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations simple_form.en.yml (French) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations simple_form.en.yml (Esperanto) [ci skip] * New translations simple_form.en.yml (French) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations simple_form.en.yml (Esperanto) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations simple_form.en.yml (Esperanto) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations simple_form.en.yml (Albanian) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations simple_form.en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations simple_form.en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations simple_form.en.yml (Greek) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.json (Esperanto) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations doorkeeper.en.yml (Spanish, Mexico) [ci skip] * New translations simple_form.en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations en.json (Spanish, Mexico) [ci skip] * New translations doorkeeper.en.yml (Spanish) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations simple_form.en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations doorkeeper.en.yml (Spanish, Mexico) [ci skip] * New translations simple_form.en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations en.json (Spanish, Mexico) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations doorkeeper.en.yml (Spanish) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Kabyle) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations simple_form.en.yml (Turkish) [ci skip] * New translations simple_form.en.yml (Sardinian) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations devise.en.yml (Hungarian) [ci skip] * New translations simple_form.en.yml (Sardinian) [ci skip] * New translations doorkeeper.en.yml (Spanish, Mexico) [ci skip] * New translations simple_form.en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations en.json (Spanish, Mexico) [ci skip] * New translations doorkeeper.en.yml (Spanish) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations doorkeeper.en.yml (Spanish, Mexico) [ci skip] * New translations simple_form.en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations en.json (Spanish, Mexico) [ci skip] * New translations doorkeeper.en.yml (Spanish) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.json (Standard Moroccan Tamazight) [ci skip] * New translations en.yml (Standard Moroccan Tamazight) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations doorkeeper.en.yml (Spanish, Mexico) [ci skip] * New translations simple_form.en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations en.json (Spanish, Mexico) [ci skip] * New translations doorkeeper.en.yml (Spanish) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Armenian) [ci skip] * New translations en.yml (Armenian) [ci skip] * New translations simple_form.en.yml (Armenian) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations simple_form.en.yml (Persian) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Persian) [ci skip] * ran `yarn manage:translations` * ran `i18n-tasks normalize` * Ran `yarn manage:translations` * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Korean) [ci skip] * Ran `i18n-tasks normalize` Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2020-12-15Change notification permission handling (#15176)ThibG
* Change notification permission handling - allow changing individual alert settings even if permission is not explicitly enabled (asks for permission on toggle) - persist permission request banner dismissal across sessions through settings * Add additional, more discrete message to grant permissions * Change permission granting button design according to reviews Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-15Fix admins being able to suspend their instance actor (#14567)ThibG
* Fix admin being able to suspend their own instance account * Add text about the instance's own actor in admin view * Change instance actor notice from flash message to template * Do not list local instance actor in account moderation list
2020-12-15Change RTL detection to rely on unicode-bidi paragraph by paragraph (#14573)Eugen Rochko
2020-12-15Add stoplight for object storage failures, return HTTP 503 (#13043)Eugen Rochko
2020-12-15Add "invite request content" display in user account admin page (#15265)Mashiro
* feat: display `invite_request_text` in admin's user account page * fix: move invite_request to the bottom of accounts page * fix: remove time display, remove formate, change code terminology * fix: remove escape
2020-12-15Add indication to admin UI of whether a report has been forwarded (#13237)ThibG
* Add indication to admin UI of whether a report has been forwarded * Rework how forwarded status is displayed Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-15Add app shortcuts (#15234)Marcin Mikołajczak
* Add app shortcuts Signed-off-by: mkljczk <me@mkljczk.pl> * Fix codeclimate issues Signed-off-by: mkljczk <me@mkljczk.pl> * Change shortcuts Signed-off-by: mkljczk <me@mkljczk.pl> * More consistent new-status icon Signed-off-by: mkljczk <me@mkljczk.pl>
2020-12-14Add ability to require invite request text (#15326)ThibG
Fixes #15273 Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-14Fix dynamic updating of “Bootstrap timeline accounts” admin setting (#15325)ThibG
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-14Change "Profile unavailable" string to "Account suspended" in web UI (#15345)Eugen Rochko
2020-12-14Fix performance on instances list in admin UI (#15282)Eugen Rochko
- Reduce duplicate queries - Remove n+1 queries - Add accounts count to detailed view - Add separate action log entry for updating existing domain blocks
2020-12-14Change number format on about page from full to shortened (#15327)Eugen Rochko
2020-12-10Add honeypot fields and minimum fill-out time for sign-up form (#15276)ThibG
* Add honeypot fields to limit non-specialized spam Add two honeypot fields: a fake website input and a fake password confirmation one. The label/placeholder/aria-label tells not to fill them, and they are hidden in CSS, so legitimate users should not fall into these. This should cut down on some non-Mastodon-specific spambots. * Require a 3 seconds delay before submitting the registration form * Fix tests * Move registration form time check to model validation * Give people a chance to clear the honeypot fields * Refactor honeypot translation strings Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-09Fix notifications being unnecessarily redrawn on state change (#15312)ThibG
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-09rename replies_policy enumerables (#15304)trwnh
2020-12-09Fix missing pictureInPicture prop in detailed status container (#15309)Takeshi Umeda
2020-12-09Fix open media hotkey (#15308)Jeong Arm
* Fix open media hotkey * Update status.js Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
2020-12-08Fix the Open handler for PreviewCard (#15305)Takeshi Umeda
2020-12-07Fix column swiping animation logic (#15301)ThibG
From the start, swiping columns was highly unreliable because the logic could change `ReactSwipeableViews`'s `animateTransitions` property mid-swipe. PR #11200 partially fixed this, but at the unintended cost of disabling the swipe animation altogether. This PR changes the logic behind `shouldAnimate` to only disable the swiping animation at the end of a column change not initiated by `ReactSwipeableViews`. Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-07Fix unnecessary re-rendering of various components when typing in web UI ↵Eugen Rochko
(#15286)
2020-12-07Fix slow distinct queries where grouped queries are faster (#15287)Eugen Rochko
About 2x speed-up on inboxes query
2020-12-07Fix not being able to open audio modal in web UI (#15283)Eugen Rochko
Fix #15280 Also adds the new action bar and blurhash-based background color to audio and video modals
2020-12-07Fix alert when failing to save timeline markers in web UI (#15285)Eugen Rochko
Fix #15267
2020-12-07Fix too low contrast on new media modal background in web UI (#15284)Eugen Rochko
Fix #15258
2020-12-06Fix remove number sign from account_featured_tags (#15277)Takeshi Umeda
2020-12-04Fix incorrect conditions for suspended accounts in Get API for account ↵Takeshi Umeda
featured tags (#15270)
2020-12-04Fix account merging in maintenance script (#15264)ThibG
Also include AccountNote and AccountDeletionRequest to the list of classes needing to be reassigned the merged account.
2020-12-02Change public thread view to hide "Show thread" link (#15266)ThibG
Fixes #15262
2020-12-02Fix followers hash cache not being invalidated on account merge (#15256)ThibG
Also clear relationships cache.
2020-11-30Fix `ku` locale not being right-to-left (#15252)Eugen Rochko
2020-11-30Fix character count not ignoring hidden CW field (#15236)Mélanie Chauvel
2020-11-28Fix omniauth (SAML/CAS) sign-in routes not having CSRF protection (#15228)Eugen Rochko
2020-11-28Fix media modal crashing when media has no blurhash (#15229)Eugen Rochko
2020-11-27Fix deletes not reaching every server that interacted with status (#15200)Eugen Rochko
Extract logic for determining ActivityPub inboxes to send deletes to to its own class and explicitly include the person the status replied to (even if not mentioned), people who favourited it, and people who replied to it (though that one is still not recursive)
2020-11-27Fix media modal regression on public pages (#15221)Eugen Rochko
2020-11-27Change media modals look in web UI (#15217)Eugen Rochko
- Change overlay background to match color of viewed image - Add interactive reply/boost/favourite buttons to footer of modal - Change ugly "View context" link to button among the action bar
2020-11-26New Crowdin updates (#15137)Eugen Rochko
* New translations en.yml (Kabyle) [ci skip] * New translations en.json (Kabyle) [ci skip] * New translations en.yml (Sanskrit) [ci skip] * New translations en.json (Sanskrit) [ci skip] * New translations en.yml (Sardinian) [ci skip] * New translations en.json (Sardinian) [ci skip] * New translations simple_form.en.yml (Corsican) [ci skip] * New translations simple_form.en.yml (Sorani (Kurdish)) [ci skip] * New translations en.yml (Welsh) [ci skip] * New translations simple_form.en.yml (Swedish) [ci skip] * New translations en.json (Tamil) [ci skip] * New translations simple_form.en.yml (Persian) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations simple_form.en.yml (Indonesian) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations simple_form.en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations simple_form.en.yml (Galician) [ci skip] * New translations simple_form.en.yml (Tamil) [ci skip] * New translations en.yml (Urdu (Pakistan)) [ci skip] * New translations en.json (Urdu (Pakistan)) [ci skip] * New translations simple_form.en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.json (Chinese Traditional) [ci skip] * New translations simple_form.en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations simple_form.en.yml (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations en.yml (Tamil) [ci skip] * New translations en.yml (Telugu) [ci skip] * New translations en.yml (Estonian) [ci skip] * New translations en.json (Telugu) [ci skip] * New translations en.yml (Malay) [ci skip] * New translations en.json (Malay) [ci skip] * New translations en.yml (Hindi) [ci skip] * New translations en.json (Hindi) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.json (Latvian) [ci skip] * New translations simple_form.en.yml (Estonian) [ci skip] * New translations en.json (Estonian) [ci skip] * New translations en.json (Bengali) [ci skip] * New translations simple_form.en.yml (Kazakh) [ci skip] * New translations en.yml (Kazakh) [ci skip] * New translations en.json (Kazakh) [ci skip] * New translations simple_form.en.yml (Norwegian Nynorsk) [ci skip] * New translations en.yml (Norwegian Nynorsk) [ci skip] * New translations en.json (Norwegian Nynorsk) [ci skip] * New translations en.json (Thai) [ci skip] * New translations en.yml (Marathi) [ci skip] * New translations en.json (Marathi) [ci skip] * New translations simple_form.en.yml (Bengali) [ci skip] * New translations en.yml (Bengali) [ci skip] * New translations en.json (Chinese Traditional) [ci skip] * New translations en.json (Chinese Traditional) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.json (Spanish, Mexico) [ci skip] * New translations doorkeeper.en.yml (Spanish, Mexico) [ci skip] * New translations simple_form.en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.json (French) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations devise.en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Occitan) [ci skip] * New translations simple_form.en.yml (Occitan) [ci skip] * New translations en.yml (Occitan) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Standard Moroccan Tamazight) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.yml (Standard Moroccan Tamazight) [ci skip] * New translations en.json (Standard Moroccan Tamazight) [ci skip] * New translations en.yml (Standard Moroccan Tamazight) [ci skip] * New translations doorkeeper.en.yml (Standard Moroccan Tamazight) [ci skip] * New translations en.json (Standard Moroccan Tamazight) [ci skip] * New translations en.json (Standard Moroccan Tamazight) [ci skip] * New translations en.json (Kannada) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.json (Esperanto) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations simple_form.en.yml (Esperanto) [ci skip] * New translations doorkeeper.en.yml (Esperanto) [ci skip] * New translations doorkeeper.en.yml (Esperanto) [ci skip] * New translations en.json (Esperanto) [ci skip] * New translations en.json (Esperanto) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations doorkeeper.en.yml (Spanish) [ci skip] * New translations en.json (Spanish, Mexico) [ci skip] * New translations doorkeeper.en.yml (Spanish, Mexico) [ci skip] * New translations simple_form.en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.json (Chinese Traditional) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations simple_form.en.yml (Vietnamese) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations devise.en.yml (Vietnamese) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations doorkeeper.en.yml (Vietnamese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations simple_form.en.yml (Vietnamese) [ci skip] * New translations doorkeeper.en.yml (Vietnamese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.json (Standard Moroccan Tamazight) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations devise.en.yml (Czech) [ci skip] * New translations devise.en.yml (Czech) [ci skip] * New translations en.json (Czech) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations simple_form.en.yml (Polish) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.json (Czech) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.json (Armenian) [ci skip] * New translations en.json (Armenian) [ci skip] * New translations simple_form.en.yml (Armenian) [ci skip] * New translations en.yml (Armenian) [ci skip] * New translations doorkeeper.en.yml (Spanish) [ci skip] * New translations en.json (Spanish, Mexico) [ci skip] * New translations doorkeeper.en.yml (Spanish, Mexico) [ci skip] * New translations simple_form.en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations simple_form.en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Armenian) [ci skip] * New translations en.yml (Armenian) [ci skip] * New translations simple_form.en.yml (Armenian) [ci skip] * New translations en.yml (Armenian) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.json (Chinese Traditional, Hong Kong) [ci skip] * New translations en.json (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations simple_form.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations simple_form.en.yml (French) [ci skip] * New translations en.json (Chinese Traditional, Hong Kong) [ci skip] * New translations en.json (Chinese Traditional, Hong Kong) [ci skip] * New translations en.json (Chinese Traditional, Hong Kong) [ci skip] * New translations en.json (Chinese Traditional, Hong Kong) [ci skip] * New translations en.json (Chinese Traditional, Hong Kong) [ci skip] * New translations devise.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations devise.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations devise.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.json (Galician) [ci skip] * New translations devise.en.yml (Galician) [ci skip] * New translations en.json (Armenian) [ci skip] * New translations en.yml (Armenian) [ci skip] * New translations en.json (Armenian) [ci skip] * New translations en.yml (Armenian) [ci skip] * New translations en.json (Sardinian) [ci skip] * New translations en.json (Sardinian) [ci skip] * New translations en.json (Sardinian) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations simple_form.en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Sorani (Kurdish)) [ci skip] * New translations doorkeeper.en.yml (Sorani (Kurdish)) [ci skip] * Ran `i18n-tasks normalize` * Ran `yarn manage:translations` Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2020-11-23Add `tootctl accounts merge` (#15201)Eugen Rochko
* Add `tootctl accounts merge` * Update lib/mastodon/accounts_cli.rb Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh> Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2020-11-23Fixed ESLint error (#15214)abcang
* eslint --fix * fix consistent-return * fix promise/catch-or-return * ignore import rule
2020-11-21Remove fade-in animation from modals in web UI (#15199)Eugen Rochko
2020-11-21Fix hardcoded frame rate for frame by frame video navigation in web UI (#15198)Eugen Rochko
2020-11-21Undo outgoing follows when suspending a remote account (#15188)ThibG
2020-11-21Fix not being able to unfavorite toots one has lost access to (#15192)ThibG
Fixes #15191
2020-11-19Fix webfinger redirect handling in ResolveAccountService (#15187)ThibG
* Fix webfinger redirect handling in ResolveAccountService ResolveAccountService#process_webfinger! handled a one-step webfinger redirection, but only accepting the result if it matched the exact URI passed as input, defeating the point of a redirection check. Instead, use the same logic as in `ActivityPub::FetchRemoteAccountService`, updating the resulting `acct:` URI with the result of the first webfinger query. * Add tests
2020-11-19Add import/export feature for bookmarks (#14956)ThibG
* Add ability to export bookmarks * Add support for importing bookmarks * Add bookmark import tests * Add bookmarks export test
2020-11-19Mark correctly as read reverse-order announcements (#15070)Darius Kazemi
This fixes a bug in #15065 where the "read" indicator was not getting correctly set. The ID of a dismissed announcement is now correct.
2020-11-19Fix sending spurious Rejects when processing remote account deletion (#15104)ThibG
* Fix sending spurious Rejects when processing remote account deletion * Make skip_side_effects imply skip_activitypub
2020-11-19Add cache buster feature for media files (#15155)Eugen Rochko
Nginx can be configured to bypass proxy cache when a special header is in the request. If the response is cacheable, it will replace the cache for that request. Proxy caching of media files is desirable when using object storage as a way of minimizing bandwidth costs, but has the drawback of leaving deleted media files for a configured amount of cache time. A cache buster can make those media files immediately unavailable. This especially makes sense when suspending and unsuspending an account.