Takeshi Umeda
fabb864526
Fix incorrect conditions for suspended accounts in Get API for account featured tags ( #15270 )
4 years ago
ThibG
1fce69291f
Fix account merging in maintenance script ( #15264 )
...
Also include AccountNote and AccountDeletionRequest to the list of classes
needing to be reassigned the merged account.
4 years ago
ThibG
b62b44a0e1
Change public thread view to hide "Show thread" link ( #15266 )
...
Fixes #15262
4 years ago
ThibG
39824d29f1
Fix followers hash cache not being invalidated on account merge ( #15256 )
...
Also clear relationships cache.
4 years ago
Eugen Rochko
9c670a0e7f
Fix `ku` locale not being right-to-left ( #15252 )
4 years ago
Mélanie Chauvel
413526a7b8
Fix character count not ignoring hidden CW field ( #15236 )
4 years ago
Eugen Rochko
a217a14b58
Fix omniauth (SAML/CAS) sign-in routes not having CSRF protection ( #15228 )
4 years ago
Eugen Rochko
c3d62dcf8a
Fix media modal crashing when media has no blurhash ( #15229 )
4 years ago
Eugen Rochko
715c8eac80
Fix deletes not reaching every server that interacted with status ( #15200 )
...
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)
4 years ago
Eugen Rochko
841c0c9a28
Fix media modal regression on public pages ( #15221 )
4 years ago
Eugen Rochko
af1fa584e9
Change media modals look in web UI ( #15217 )
...
- 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
4 years ago
Eugen Rochko
5de6f37c4d
New Crowdin updates ( #15137 )
...
* 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>
4 years ago
Eugen Rochko
876df5bb18
Add `tootctl accounts merge` ( #15201 )
...
* 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>
4 years ago
abcang
144e606ec9
Fixed ESLint error ( #15214 )
...
* eslint --fix
* fix consistent-return
* fix promise/catch-or-return
* ignore import rule
4 years ago
Eugen Rochko
107759e4ee
Remove fade-in animation from modals in web UI ( #15199 )
4 years ago
Eugen Rochko
bcb3a91c0c
Fix hardcoded frame rate for frame by frame video navigation in web UI ( #15198 )
4 years ago
ThibG
da80f4852e
Undo outgoing follows when suspending a remote account ( #15188 )
4 years ago
ThibG
a609802736
Fix not being able to unfavorite toots one has lost access to ( #15192 )
...
Fixes #15191
4 years ago
ThibG
f2e1d77706
Fix webfinger redirect handling in ResolveAccountService ( #15187 )
...
* 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
4 years ago
ThibG
8e79bac43d
Add import/export feature for bookmarks ( #14956 )
...
* Add ability to export bookmarks
* Add support for importing bookmarks
* Add bookmark import tests
* Add bookmarks export test
4 years ago
Darius Kazemi
8681af3303
Mark correctly as read reverse-order announcements ( #15070 )
...
This fixes a bug in #15065 where the "read" indicator was not getting correctly set. The ID of a dismissed announcement is now correct.
4 years ago
ThibG
b0bc965658
Fix sending spurious Rejects when processing remote account deletion ( #15104 )
...
* Fix sending spurious Rejects when processing remote account deletion
* Make skip_side_effects imply skip_activitypub
4 years ago
Eugen Rochko
471b8570ad
Add cache buster feature for media files ( #15155 )
...
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.
4 years ago
ThibG
fdab81200a
Fix DMs not appearing into timelines ( #15182 )
...
Fixes #15179
4 years ago
ThibG
71e63ec4dd
Fix image uploads being random data when canvas read access is blocked ( #15180 )
...
Fixes #15178
PR #11499 introduced a way to deal with all-white canvas, but newer
Firefox versions set random data instead.
This PR detects whether canvas operations are reliable by comparing
the results on a hardcoded 2×2 pixels image, and memoizing the result.
This should be both more reliable and faster than the previous check.
4 years ago
Eugen Rochko
d416f3f662
Fix pop-out player appearing on mobile screens in web UI ( #15157 )
...
Fix #15092
4 years ago
Eugen Rochko
e8facfb2e9
Add hotkeys for audio/video control ( #15158 )
...
Fix #14515
4 years ago
ThibG
53ad960562
Fix AccountDeletionWorker not accepting keyword arguments ( #15152 )
4 years ago
Eugen Rochko
7e2920d9b2
Fix streaming API allowing connections to persist after access token invalidation ( #15111 )
...
Fix #14816
4 years ago
Eugen Rochko
90faa8039c
Fix 2FA/sign-in token sessions being valid after password change ( #14802 )
...
If someone tries logging in to an account and is prompted for a 2FA
code or sign-in token, even if the account's password or e-mail is
updated in the meantime, the session will show the prompt and allow
the login process to complete with a valid 2FA code or sign-in token
4 years ago
ThibG
472b0e77e7
Fix possible inconsistencies in tag search ( #14906 )
...
Do not downcase the queried tag before passing it to postgres when searching:
- tags are not downcased on creation
- `arel_table[:name].lower.matches(pattern)` generates an ILIKE anyway
- if Postgres and Rails happen to use different case-folding rules,
downcasing before query but not before insertion may mean that some
tags with some casings are not searchable
4 years ago
Takeshi Umeda
f0a79a9fa8
Add interrelationship icon ( #15149 )
...
* Add interrelationship icon
* Fix arrow for rtl
* Fix to predefined color
4 years ago
Takeshi Umeda
1dde6183a3
Add follow selected followers button ( #15148 )
...
* Add follow selected followers button
* Fix unused variable
* Fix i18n normalize
4 years ago
Eugen Rochko
640005d33a
Add button to dismiss desktop notifications permissions banner ( #15141 )
4 years ago
Eugen Rochko
4dccf2c8c8
Remove auto-redirect to direct messages in web UI ( #15142 )
4 years ago
Yamagishi Kazutoshi
02a9e38210
Add missing locales ( #15138 )
4 years ago
Eugen Rochko
f86045827e
New Crowdin updates ( #15110 )
...
* New translations doorkeeper.en.yml (Hungarian)
[ci skip]
* New translations doorkeeper.en.yml (Korean)
[ci skip]
* New translations doorkeeper.en.yml (Georgian)
[ci skip]
* New translations doorkeeper.en.yml (Japanese)
[ci skip]
* New translations doorkeeper.en.yml (Italian)
[ci skip]
* New translations doorkeeper.en.yml (Armenian)
[ci skip]
* New translations doorkeeper.en.yml (Hebrew)
[ci skip]
* New translations doorkeeper.en.yml (Dutch)
[ci skip]
* New translations doorkeeper.en.yml (Finnish)
[ci skip]
* New translations doorkeeper.en.yml (Basque)
[ci skip]
* New translations doorkeeper.en.yml (Greek)
[ci skip]
* New translations doorkeeper.en.yml (German)
[ci skip]
* New translations doorkeeper.en.yml (Danish)
[ci skip]
* New translations doorkeeper.en.yml (Czech)
[ci skip]
* New translations doorkeeper.en.yml (Catalan)
[ci skip]
* New translations doorkeeper.en.yml (Norwegian)
[ci skip]
* New translations doorkeeper.en.yml (Persian)
[ci skip]
* New translations doorkeeper.en.yml (Ukrainian)
[ci skip]
* New translations doorkeeper.en.yml (Indonesian)
[ci skip]
* New translations doorkeeper.en.yml (Portuguese, Brazilian)
[ci skip]
* New translations doorkeeper.en.yml (Galician)
[ci skip]
* New translations doorkeeper.en.yml (Vietnamese)
[ci skip]
* New translations doorkeeper.en.yml (Chinese Traditional)
[ci skip]
* New translations doorkeeper.en.yml (Turkish)
[ci skip]
* New translations doorkeeper.en.yml (Polish)
[ci skip]
* New translations doorkeeper.en.yml (Swedish)
[ci skip]
* New translations doorkeeper.en.yml (Serbian (Cyrillic))
[ci skip]
* New translations doorkeeper.en.yml (Albanian)
[ci skip]
* New translations doorkeeper.en.yml (Slovenian)
[ci skip]
* New translations doorkeeper.en.yml (Slovak)
[ci skip]
* New translations doorkeeper.en.yml (Russian)
[ci skip]
* New translations doorkeeper.en.yml (Portuguese)
[ci skip]
* New translations en.json (Kazakh)
[ci skip]
* New translations en.yml (Norwegian Nynorsk)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations simple_form.en.yml (Bulgarian)
[ci skip]
* New translations simple_form.en.yml (Czech)
[ci skip]
* New translations en.yml (Czech)
[ci skip]
* New translations en.json (Czech)
[ci skip]
* New translations simple_form.en.yml (Catalan)
[ci skip]
* New translations en.yml (Catalan)
[ci skip]
* New translations en.json (Catalan)
[ci skip]
* New translations en.yml (Bulgarian)
[ci skip]
* New translations en.yml (Danish)
[ci skip]
* New translations en.json (Bulgarian)
[ci skip]
* New translations simple_form.en.yml (Arabic)
[ci skip]
* New translations en.yml (Arabic)
[ci skip]
* New translations en.json (Arabic)
[ci skip]
* New translations simple_form.en.yml (Spanish)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.json (Danish)
[ci skip]
* New translations simple_form.en.yml (Danish)
[ci skip]
* New translations en.yml (French)
[ci skip]
* New translations en.json (Hebrew)
[ci skip]
* New translations en.json (Armenian)
[ci skip]
* New translations simple_form.en.yml (Hungarian)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations en.json (Hungarian)
[ci skip]
* New translations simple_form.en.yml (Hebrew)
[ci skip]
* New translations en.yml (Hebrew)
[ci skip]
* New translations simple_form.en.yml (Finnish)
[ci skip]
* New translations en.json (German)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations en.json (Finnish)
[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 simple_form.en.yml (Greek)
[ci skip]
* New translations simple_form.en.yml (German)
[ci skip]
* New translations simple_form.en.yml (French)
[ci skip]
* New translations en.json (French)
[ci skip]
* New translations simple_form.en.yml (Armenian)
[ci skip]
* New translations en.json (Italian)
[ci skip]
* New translations en.yml (Russian)
[ci skip]
* New translations en.yml (Portuguese)
[ci skip]
* New translations en.yml (Korean)
[ci skip]
* New translations en.json (Korean)
[ci skip]
* New translations simple_form.en.yml (Japanese)
[ci skip]
* New translations en.yml (Japanese)
[ci skip]
* New translations en.yml (Greek)
[ci skip]
* New translations en.yml (Galician)
[ci skip]
* New translations en.json (Greek)
[ci skip]
* New translations en.yml (German)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations simple_form.en.yml (Turkish)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations simple_form.en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Albanian)
[ci skip]
* New translations en.json (Icelandic)
[ci skip]
* New translations simple_form.en.yml (Romanian)
[ci skip]
* New translations simple_form.en.yml (Croatian)
[ci skip]
* New translations en.yml (Romanian)
[ci skip]
* New translations en.json (Romanian)
[ci skip]
* New translations en.yml (Corsican)
[ci skip]
* New translations simple_form.en.yml (Breton)
[ci skip]
* New translations en.yml (Breton)
[ci skip]
* New translations doorkeeper.en.yml (Croatian)
[ci skip]
* New translations en.yml (Croatian)
[ci skip]
* New translations en.yml (Icelandic)
[ci skip]
* New translations en.json (Croatian)
[ci skip]
* New translations simple_form.en.yml (Thai)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations simple_form.en.yml (Spanish, Argentina)
[ci skip]
* New translations en.yml (Spanish, Argentina)
[ci skip]
* New translations doorkeeper.en.yml (Icelandic)
[ci skip]
* New translations simple_form.en.yml (Icelandic)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Italian)
[ci skip]
* New translations en.json (Norwegian Nynorsk)
[ci skip]
* New translations simple_form.en.yml (Chinese Traditional)
[ci skip]
* New translations en.json (Portuguese, Brazilian)
[ci skip]
* New translations simple_form.en.yml (Galician)
[ci skip]
* New translations en.json (Galician)
[ci skip]
* New translations en.yml (Urdu (Pakistan))
[ci skip]
* New translations en.json (Urdu (Pakistan))
[ci skip]
* New translations en.yml (Chinese Traditional)
[ci skip]
* New translations simple_form.en.yml (Portuguese, Brazilian)
[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 en.json (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 (Portuguese, Brazilian)
[ci skip]
* New translations en.json (Indonesian)
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations en.json (Bengali)
[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 (Spanish, Argentina)
[ci skip]
* New translations en.yml (Indonesian)
[ci skip]
* New translations simple_form.en.yml (Tamil)
[ci skip]
* New translations en.yml (Tamil)
[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 simple_form.en.yml (Swedish)
[ci skip]
* New translations en.json (Swedish)
[ci skip]
* New translations simple_form.en.yml (Italian)
[ci skip]
* New translations en.json (Macedonian)
[ci skip]
* New translations en.json (Norwegian)
[ci skip]
* New translations simple_form.en.yml (Dutch)
[ci skip]
* New translations en.yml (Dutch)
[ci skip]
* New translations en.json (Dutch)
[ci skip]
* New translations en.yml (Macedonian)
[ci skip]
* New translations simple_form.en.yml (Norwegian)
[ci skip]
* New translations en.yml (Lithuanian)
[ci skip]
* New translations en.json (Lithuanian)
[ci skip]
* New translations simple_form.en.yml (Korean)
[ci skip]
* New translations simple_form.en.yml (Georgian)
[ci skip]
* New translations en.yml (Georgian)
[ci skip]
* New translations en.json (Georgian)
[ci skip]
* New translations en.json (Japanese)
[ci skip]
* New translations en.yml (Norwegian)
[ci skip]
* New translations en.json (Polish)
[ci skip]
* New translations simple_form.en.yml (Serbian (Cyrillic))
[ci skip]
* New translations en.json (Slovenian)
[ci skip]
* New translations en.yml (Serbian (Cyrillic))
[ci skip]
* New translations en.json (Serbian (Cyrillic))
[ci skip]
* New translations simple_form.en.yml (Albanian)
[ci skip]
* New translations en.json (Albanian)
[ci skip]
* New translations simple_form.en.yml (Slovenian)
[ci skip]
* New translations en.yml (Slovenian)
[ci skip]
* New translations simple_form.en.yml (Slovak)
[ci skip]
* New translations en.yml (Polish)
[ci skip]
* New translations en.yml (Slovak)
[ci skip]
* New translations en.json (Slovak)
[ci skip]
* New translations simple_form.en.yml (Russian)
[ci skip]
* New translations en.json (Russian)
[ci skip]
* New translations simple_form.en.yml (Portuguese)
[ci skip]
* New translations en.json (Portuguese)
[ci skip]
* New translations simple_form.en.yml (Polish)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations en.json (Korean)
[ci skip]
* New translations en.json (Corsican)
[ci skip]
* New translations devise.en.yml (Turkish)
[ci skip]
* New translations en.json (Corsican)
[ci skip]
* New translations en.yml (Kabyle)
[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.json (Korean)
[ci skip]
* New translations en.yml (Japanese)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations en.yml (Japanese)
[ci skip]
* New translations simple_form.en.yml (Japanese)
[ci skip]
* New translations en.yml (Kabyle)
[ci skip]
* New translations devise.en.yml (Japanese)
[ci skip]
* New translations en.json (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 en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations simple_form.en.yml (Icelandic)
[ci skip]
* New translations simple_form.en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations doorkeeper.en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations simple_form.en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations en.yml (Icelandic)
[ci skip]
* New translations en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations simple_form.en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations devise.en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations activerecord.en.yml (Icelandic)
[ci skip]
* New translations devise.en.yml (Icelandic)
[ci skip]
* New translations en.yml (Russian)
[ci skip]
* New translations en.json (Russian)
[ci skip]
* New translations simple_form.en.yml (Russian)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations devise.en.yml (Chinese Simplified)
[ci skip]
* New translations devise.en.yml (Chinese Simplified)
[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.json (Vietnamese)
[ci skip]
* New translations simple_form.en.yml (Vietnamese)
[ci skip]
* New translations doorkeeper.en.yml (Turkish)
[ci skip]
* New translations simple_form.en.yml (Turkish)
[ci skip]
* New translations doorkeeper.en.yml (Turkish)
[ci skip]
* New translations simple_form.en.yml (Turkish)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations simple_form.en.yml (Turkish)
[ci skip]
* New translations activerecord.en.yml (Turkish)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations simple_form.en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* Fix invalid syntax
* New translations en.yml (Vietnamese)
[ci skip]
* New translations simple_form.en.yml (Vietnamese)
[ci skip]
* bundle exec i18n-tasks normalize
* New translations en.yml (Vietnamese)
[ci skip]
* New translations simple_form.en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Icelandic)
[ci skip]
* bundle exec i18n-tasks normalize
* New translations simple_form.en.yml (Vietnamese)
[ci skip]
* bundle exec i18n-tasks normalize [ci skip]
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
4 years ago
Eugen Rochko
f9dfbaf6b2
Fix updating account counters when account_stat is not yet created ( #15108 )
4 years ago
Yamagishi Kazutoshi
c01d043260
Remove unnecessary messages ( #15109 )
...
* Remove unnecessary messages
* ran `i18n-tasks normalize`
4 years ago
ThibG
4f093bc155
Fix Move handler not being triggered when failing to fetch target ( #15107 )
...
When failing to fetch the target account, the ProcessingWorker fails
as expected, but since it hasn't cleared the `move_in_progress` flag,
the next attempt at processing skips the `Move` activity altogether.
This commit changes it to clear the flag when encountering any
unexpected error on fetching the target account. This is likely to
occur because, of, e.g., a timeout, when many instances query the
same actor at the same time.
4 years ago
Eugen Rochko
228e8f2a4a
New Crowdin updates ( #14388 )
...
* New translations en.yml (Indonesian)
[ci skip]
* New translations en.yml (Indonesian)
[ci skip]
* New translations en.json (Indonesian)
[ci skip]
* New translations en.json (Catalan)
[ci skip]
* New translations en.json (Indonesian)
[ci skip]
* New translations en.json (Indonesian)
[ci skip]
* New translations simple_form.en.yml (Vietnamese)
[ci skip]
* New translations simple_form.en.yml (Vietnamese)
[ci skip]
* New translations en.json (Sardinian)
[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 simple_form.en.yml (Esperanto)
[ci skip]
* New translations en.json (Japanese)
[ci skip]
* New translations en.json (Norwegian)
[ci skip]
* New translations en.yml (Norwegian)
[ci skip]
* New translations simple_form.en.yml (Norwegian)
[ci skip]
* New translations devise.en.yml (Norwegian)
[ci skip]
* New translations en.json (French)
[ci skip]
* New translations en.json (Esperanto)
[ci skip]
* New translations simple_form.en.yml (Arabic)
[ci skip]
* New translations en.yml (Indonesian)
[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 (Vietnamese)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations devise.en.yml (Chinese Simplified)
[ci skip]
* New translations en.json (Danish)
[ci skip]
* New translations en.yml (Danish)
[ci skip]
* New translations en.json (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 (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Icelandic)
[ci skip]
* New translations en.yml (Icelandic)
[ci skip]
* New translations en.json (Occitan)
[ci skip]
* New translations en.yml (Japanese)
[ci skip]
* New translations en.json (Spanish, Argentina)
[ci skip]
* New translations en.json (Japanese)
[ci skip]
* New translations en.json (Japanese)
[ci skip]
* New translations en.yml (Japanese)
[ci skip]
* New translations en.yml (Japanese)
[ci skip]
* New translations en.yml (Japanese)
[ci skip]
* New translations simple_form.en.yml (Norwegian Nynorsk)
[ci skip]
* New translations en.json (Norwegian Nynorsk)
[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 en.yml (Norwegian Nynorsk)
[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 doorkeeper.en.yml (Spanish, Mexico)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations en.json (French)
[ci skip]
* New translations en.json (Catalan)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.json (Icelandic)
[ci skip]
* New translations en.json (Spanish, Argentina)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations en.json (Galician)
[ci skip]
* New translations en.json (Galician)
[ci skip]
* New translations en.json (Albanian)
[ci skip]
* New translations en.json (Indonesian)
[ci skip]
* New translations en.json (Italian)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations en.json (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.json (Greek)
[ci skip]
* New translations en.json (Czech)
[ci skip]
* New translations en.json (German)
[ci skip]
* New translations en.json (Hungarian)
[ci skip]
* New translations en.json (Portuguese)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations en.json (Persian)
[ci skip]
* New translations en.json (Norwegian Nynorsk)
[ci skip]
* New translations en.json (Corsican)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.json (Arabic)
[ci skip]
* New translations en.json (Slovenian)
[ci skip]
* New translations en.json (Ukrainian)
[ci skip]
* New translations en.json (Portuguese, Brazilian)
[ci skip]
* New translations en.json (Breton)
[ci skip]
* New translations en.json (Sardinian)
[ci skip]
* New translations en.json (Hungarian)
[ci skip]
* New translations en.json (Corsican)
[ci skip]
* New translations en.json (Corsican)
[ci skip]
* New translations en.json (Corsican)
[ci skip]
* New translations en.json (Portuguese, Brazilian)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.json (Dutch)
[ci skip]
* New translations en.json (Dutch)
[ci skip]
* New translations en.json (Sardinian)
[ci skip]
* New translations en.json (Portuguese)
[ci skip]
* New translations doorkeeper.en.yml (Spanish)
[ci skip]
* New translations en.yml (Spanish, Mexico)
[ci skip]
* New translations simple_form.en.yml (Spanish, Mexico)
[ci skip]
* New translations en.json (Spanish, Mexico)
[ci skip]
* New translations doorkeeper.en.yml (Spanish, Mexico)
[ci skip]
* New translations en.yml (French)
[ci skip]
* New translations doorkeeper.en.yml (Spanish)
[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 simple_form.en.yml (French)
[ci skip]
* New translations en.yml (French)
[ci skip]
* New translations en.yml (Catalan)
[ci skip]
* New translations en.yml (Spanish, Mexico)
[ci skip]
* New translations simple_form.en.yml (Spanish, Mexico)
[ci skip]
* New translations en.json (Spanish, Mexico)
[ci skip]
* New translations doorkeeper.en.yml (Spanish, Mexico)
[ci skip]
* New translations en.yml (French)
[ci skip]
* New translations en.yml (Catalan)
[ci skip]
* New translations simple_form.en.yml (Catalan)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.json (Greek)
[ci skip]
* New translations en.yml (Greek)
[ci skip]
* New translations simple_form.en.yml (Spanish)
[ci skip]
* New translations en.yml (Catalan)
[ci skip]
* New translations en.yml (Portuguese)
[ci skip]
* New translations en.yml (Portuguese)
[ci skip]
* New translations simple_form.en.yml (Portuguese)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations simple_form.en.yml (Turkish)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations en.yml (Korean)
[ci skip]
* New translations en.json (German)
[ci skip]
* New translations en.yml (Italian)
[ci skip]
* New translations en.yml (German)
[ci skip]
* New translations en.json (German)
[ci skip]
* New translations simple_form.en.yml (German)
[ci skip]
* New translations en.yml (Italian)
[ci skip]
* New translations simple_form.en.yml (Italian)
[ci skip]
* New translations en.yml (Korean)
[ci skip]
* New translations simple_form.en.yml (Korean)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations simple_form.en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations simple_form.en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Japanese)
[ci skip]
* New translations simple_form.en.yml (Japanese)
[ci skip]
* New translations en.yml (Japanese)
[ci skip]
* New translations en.yml (Galician)
[ci skip]
* New translations simple_form.en.yml (Galician)
[ci skip]
* New translations en.yml (Persian)
[ci skip]
* New translations en.yml (Persian)
[ci skip]
* New translations simple_form.en.yml (Persian)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations devise.en.yml (German)
[ci skip]
* New translations simple_form.en.yml (Hungarian)
[ci skip]
* New translations en.yml (Spanish, Argentina)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations simple_form.en.yml (Hungarian)
[ci skip]
* New translations en.yml (Spanish, Argentina)
[ci skip]
* New translations simple_form.en.yml (Spanish, Argentina)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations en.yml (Albanian)
[ci skip]
* New translations simple_form.en.yml (Albanian)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.yml (Corsican)
[ci skip]
* New translations en.yml (Corsican)
[ci skip]
* New translations en.yml (Corsican)
[ci skip]
* New translations simple_form.en.yml (Corsican)
[ci skip]
* New translations en.yml (Corsican)
[ci skip]
* New translations en.json (Corsican)
[ci skip]
* New translations doorkeeper.en.yml (Corsican)
[ci skip]
* New translations devise.en.yml (Corsican)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations en.yml (Danish)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations simple_form.en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.json (German)
[ci skip]
* New translations en.yml (Indonesian)
[ci skip]
* New translations simple_form.en.yml (Indonesian)
[ci skip]
* New translations en.yml (Indonesian)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations en.json (Thai)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations en.json (Occitan)
[ci skip]
* New translations en.json (Occitan)
[ci skip]
* New translations devise.en.yml (Occitan)
[ci skip]
* New translations en.yml (Occitan)
[ci skip]
* New translations simple_form.en.yml (Occitan)
[ci skip]
* New translations en.json (Occitan)
[ci skip]
* New translations simple_form.en.yml (Occitan)
[ci skip]
* New translations simple_form.en.yml (Occitan)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.json (Standard Moroccan Tamazight)
[ci skip]
* New translations en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations simple_form.en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations activerecord.en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations devise.en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations doorkeeper.en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations simple_form.en.yml (Turkish)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations doorkeeper.en.yml (Turkish)
[ci skip]
* New translations doorkeeper.en.yml (Turkish)
[ci skip]
* New translations doorkeeper.en.yml (Turkish)
[ci skip]
* New translations devise.en.yml (Turkish)
[ci skip]
* New translations simple_form.en.yml (Turkish)
[ci skip]
* New translations devise.en.yml (Turkish)
[ci skip]
* New translations activerecord.en.yml (Turkish)
[ci skip]
* New translations simple_form.en.yml (Turkish)
[ci skip]
* New translations simple_form.en.yml (Turkish)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* ran `i18n-tasks normalize`
* ran `yarn manage:translations`
* ran `i18n-tasks normalize`
* New translations en.json (Turkish)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
4 years ago
ThibG
6a6b98af65
Fix crash in SuspendAccountWorker ( #15106 )
...
* Fix crash in SuspendAccountWorker
`follows` is an array thanks to `to_a`
* Fix code style issue
Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
4 years ago
Eugen Rochko
38be9af436
Add support for reversible suspensions through ActivityPub ( #14989 )
4 years ago
ThibG
d41433f651
Fix crashes in SuspendAccountService/UnsuspendAccountService ( #15100 )
...
* Fix crashes in SuspendAccountService/UnsuspendAccountService
* Catch filesystem errors
4 years ago
ThibG
c11e8737dd
Fix suspension/unsuspension not working because of FeedManager change ( #15099 )
4 years ago
Eugen Rochko
79f71206de
Add subresource integrity for JS and CSS assets ( #15096 )
...
Fix #2744
4 years ago
Mélanie Chauvel
87042c99ee
Display “Show newer” and “Show older” instead of “Show more” in public pages ( #15052 )
4 years ago
ThibG
b1a78a5cce
Change order of announcements in admin page to sort them newest-first ( #15091 )
...
* Change order of announcements in admin page to sort show newly-created first
Fixes #15090
* Use reverse-chronological rather than creation date only
4 years ago
Takeshi Umeda
385c2eac6f
Add account sensitized ( #14361 )
...
* Add account sensitized
* Fix i18n normalize
* Fix description and spec
* Fix spec
* Fix wording
4 years ago
Mashiro
7f3497bd7f
Add limitation of image's max zoom rate (max to the original size of image) ( #15094 )
...
* limit image max scale rate to fit the actual image size
* replace with MIN_SCALE
* fix behavior on touch screen
4 years ago
dependabot[bot]
88dd5d3ee1
Bump detect-passive-events from 1.0.5 to 2.0.1 ( #15003 )
...
* Bump detect-passive-events from 1.0.5 to 2.0.1
Bumps [detect-passive-events](https://github.com/rafgraph/detect-passive-events ) from 1.0.5 to 2.0.1.
- [Release notes](https://github.com/rafgraph/detect-passive-events/releases )
- [Commits](https://github.com/rafgraph/detect-passive-events/compare/v1.0.5...v2.0.1 )
Signed-off-by: dependabot[bot] <support@github.com>
* Migrate to detect-passive-events v2
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
4 years ago
Mashiro
00c6280294
add mouse scroll lock in image expand view ( #15088 )
...
* add mouse scroll lock in image expand view
* enhancement
4 years ago
Mashiro
315356cf23
Add expand/compress image button on image view box ( #15068 )
...
* add zoom image button
* enhance zoom algorithm & add translation
* code structure
* code structure
* code structure
* enhance grab performance
* rm useless state
* fix behavior on Firefox & scroll lock & horizontal scroll with mousewheel
* remove scroll lock on MouseWheelEvent
* code structure
* enhance algorithm and code structure
* rm Gemfile.lock from tree
* codeclimate
* fix a stupid mistake
4 years ago
ThibG
9500d00e5f
Tweak signature verification ( #15069 )
...
* Add more specific error message when request body digest is invalid
This may help other implementors debug their implementation.
* Relax Host parameter requirement to GET requests
The only POST requests processed by Mastodon need objects/actors (including
their host) to be explicitly mentioned in the request's body, so replaying
a legitimate request to another host should not be a security issue.
* Support Digest headers using multiple algorithms or lowercase alogirthm names
4 years ago
ThibG
2d5f0a0002
Fix some account media gallery items having empty labels ( #15073 )
...
Remove the labels entirely for images instead of putting an empty label.
4 years ago
ThibG
2b0491bb3c
Fix poll ending notifications being created for each vote ( #15071 )
...
On a poll ending, notifications were created for each vote instead
of for each voter.
4 years ago
Darius Kazemi
a0b695b0c6
Show announcements in reverse chronological order ( #15065 )
4 years ago
fuyu
5ba6548e62
Fix wrong seek bar width on media player ( #15060 )
4 years ago
mayaeh
c15c3b01eb
Fix width of content text fluctuating over time ( #15055 )
4 years ago
Mélanie Chauvel
6c072d8dec
Make “Mark media as sensitive” properly translatable ( #15051 )
4 years ago
Mélanie Chauvel
f7eae6d264
Make visibility icon clickable as part of the time of a toot ( #15053 )
...
- Makes permalink to a toot more easily clickable
- Fix clicking between icon and time in fact clicking the display name
- Fix clicking slightly under time in fact clicking the display name
4 years ago
Mélanie Chauvel
c93e98ad47
Sort filters by “keyword or phrase” in Settings ( #15050 )
4 years ago
Mélanie Chauvel
988d029417
Make click area of video/audio player buttons bigger in WebUI ( #15049 )
4 years ago
ThibG
df120d667c
Fix follow request notifications ( #15048 )
4 years ago
ThibG
a9b5dd584f
Fix followers synchronization mechanism not being triggered on mentions ( #15026 )
...
e.g. if someone on an instance that previously had followers gets mentioned
in a private toot, before this PR, they would not receive a
Collection-Synchronization header and may show the toot to the former followers
in addition to the mentioned person.
4 years ago
ThibG
06aef3817a
Fix account processing failing because of large collections ( #15027 )
...
Fixes #15025
4 years ago
ThibG
694a5e33d5
Add follower synchronization mechanism ( #14510 )
...
* Add support for followers synchronization on the receiving end
Check the `collectionSynchronization` attribute on `Create` and `Announce`
activities and synchronize followers from provided collection if possible.
* Add tests for followers synchronization on the receiving end
* Add support for follower synchronization on the sender's end
* Add tests for the sending end
* Switch from AS attributes to HTTP header
Replace the custom `collectionSynchronization` ActivityStreams attribute by
an HTTP header (`X-AS-Collection-Synchronization`) with the same syntax as
the `Signature` header and the following fields:
- `collectionId` to specify which collection to synchronize
- `digest` for the SHA256 hex-digest of the list of followers known on the
receiving instance (where “receiving instance” is determined by accounts
sharing the same host name for their ActivityPub actor `id`)
- `url` of a collection that should be fetched by the instance actor
Internally, move away from the webfinger-based `domain` attribute and use
account `uri` prefix to group accounts.
* Add environment variable to disable followers synchronization
Since the whole mechanism relies on some new preconditions that, in some
extremely rare cases, might not be met, add an environment variable
(DISABLE_FOLLOWERS_SYNCHRONIZATION) to disable the mechanism altogether and
avoid followers being incorrectly removed.
The current conditions are:
1. all managed accounts' actor `id` and inbox URL have the same URI scheme and
netloc.
2. all accounts whose actor `id` or inbox URL share the same URI scheme and
netloc as a managed account must be managed by the same Mastodon instance
as well.
As far as Mastodon is concerned, breaking those preconditions require extensive
configuration changes in the reverse proxy and might also cause other issues.
Therefore, this environment variable provides a way out for people with highly
unusual configurations, and can be safely ignored for the overwhelming majority
of Mastodon administrators.
* Only set follower synchronization header on non-public statuses
This is to avoid unnecessary computations and allow Follow-related
activities to be handled by the usual codepath instead of going through
the synchronization mechanism (otherwise, any Follow/Undo/Accept activity
would trigger the synchronization mechanism even if processing the activity
itself would be enough to re-introduce synchronization)
* Change how ActivityPub::SynchronizeFollowersService handles follow requests
If the remote lists a local follower which we only know has sent a follow
request, consider the follow request as accepted instead of sending an Undo.
* Integrate review feeback
- rename X-AS-Collection-Synchronization to Collection-Synchronization
- various minor refactoring and code style changes
* Only select required fields when computing followers_hash
* Use actor URI rather than webfinger domain in synchronization endpoint
* Change hash computation to be a XOR of individual hashes
Makes it much easier to be memory-efficient, and avoid sorting discrepancy issues.
* Marginally improve followers_hash computation speed
* Further improve hash computation performances by using pluck_each
4 years ago
abcang
875a771c0b
Removed disabling comments for Style/MethodMissingSuper ( #15014 )
...
* Removed disabling comments for Style/MethodMissingSuper
* Update rubocop for codeclimate
4 years ago
Josh Leeb-du Toit
c94a083b9a
Add support for Gemini urls ( #15013 )
...
This PR updates the `valid_url` regex and sanitizer allowlist to provide
support for Gemini urls.
Closes #14991
4 years ago
mayaeh
20f7e2c452
Fix translation string ( #14986 )
4 years ago
mayaeh
f1b2eea474
Fix strings that could not be translated ( #14980 )
4 years ago
Eugen Rochko
10ff8b1205
Change how missing desktop notifications permission is displayed ( #14985 )
...
Add missing controls for new notification type
4 years ago
Takeshi Umeda
4395de7360
Fix a bear check when the activity object is nil ( #14981 )
4 years ago
ThibG
ce87767572
Change how CDN_HOST is passed down to make assets build reproducible ( #14381 )
...
* Change how CDN_HOST is passed down to make assets build reproducible
* Change webpacker/webpack configuration to dynamically load publicPath based on meta header
* Fix embedded layout missing the cdn-host meta header
4 years ago
OSAMU SATO
ba9252b32d
Add duration parameter to muting. ( #13831 )
...
* Adding duration to muting.
* Remove useless checks
4 years ago
ThibG
592fa427e3
Fix browser notification permission request logic ( #13543 )
...
* Add notification permission handling code
* Request notification permission when enabling any notification setting
* Add badge to notification settings when permissions insufficient
* Disable alerts by default, requesting permission and enable them on onboarding
4 years ago
Eugen Rochko
da4c730c47
Add IP-based rules ( #14963 )
4 years ago
ThibG
bf23bf82bd
Fix issue checking for last unread notification when there are gaps ( #14960 )
4 years ago
ThibG
199107aa25
Fix unread notification marker not updating when mounting column ( #14954 )
4 years ago
Eugen Rochko
adaf3f7b7a
Remove dependency on goldfinger gem ( #14919 )
...
There are edge cases where requests to certain hosts timeout when
using the vanilla HTTP.rb gem, which the goldfinger gem uses. Now
that we no longer need to support OStatus servers, webfinger logic
is so simple that there is no point encapsulating it in a gem, so
we can just use our own Request class. With that, we benefit from
more robust timeout code and IPv4/IPv6 resolution.
Fix #14091
4 years ago
ThibG
90a501d96d
Ignore alt-key hotkeys in text fields ( #14942 )
...
Fixes #14862
This used to be the case until #13987 , which introduced a hotkey to toggle
the Content Warning field.
Unfortunately, MacOS relies on the “alt” key for many things, including
composing text (see #14862 ), therefore, even if that makes the CW toggle
hotkey significantly less useful, it makes sense to not interfere with
composing toots.
4 years ago
mayaeh
b04f5d793e
Update translation files ( #14920 )
4 years ago
Eugen Rochko
5c10211bcd
Fix regressions in icon buttons in web UI ( #14915 )
4 years ago
Takeshi Umeda
ffa5aa294e
Fix mark as read in notifications to be saved immediately ( #14907 )
...
* Fix mark as read in notifications to be saved immediately
* fix code style
4 years ago
ThibG
cbdbe3699c
Fix logging out on mobile ( #14901 )
...
Fixes #14900
4 years ago
ThibG
79b2d30a19
Add option to disable swiping motions across the WebUI ( #13885 )
...
Fixes #13882
4 years ago
Takeshi Umeda
b361c0bac6
Fix unread notification markers ( #14897 )
4 years ago
ThibG
f53281dedb
Fix bell button causing a brief “Cancel follow request” on locked accounts ( #14896 )
4 years ago
Eugen Rochko
fc497420e9
Add pop-out player for audio/video in web UI ( #14870 )
...
Fix #11160
4 years ago
ThibG
1603dc87ac
Add environment variable to allow requests to some private addresses ( #14722 )
4 years ago
ThibG
187c756e16
Add unread notification markers ( #14818 )
...
* Add unread notification markers
Fixes #14804
* Allow IntersectionObserverArticle's children to be updated
4 years ago
Jeremy Rose
4b59090add
add og:published_time to opengraph meta tags ( #14865 )
4 years ago
Takeshi Umeda
67ee32365d
Fix a slow query for TagFeed ( #14861 )
...
* Fix a slow query for TagFeed
* rename tags to tag_ids
4 years ago
Takeshi Umeda
218ea2dedb
Fix method of the DELETE DATA button ( #14855 )
4 years ago
Eugen Rochko
2539d7d655
Fix not being able to enable status notifications in Web Push API ( #14822 )
4 years ago
Eugen Rochko
02c4c91faa
Add option to be notified when a followed user posts ( #13546 )
...
* Add bell button
Fix #4890
* Remove duplicate type from post-deployment migration
* Fix legacy class type mappings
* Improve query performance with better index
* Fix validation
* Remove redundant index from notifications
4 years ago
ThibG
219150f197
Fix home TL marker code mishandling gaps ( #14809 )
4 years ago
ThibG
cfb35b767c
Fix notification filter bar incorrectly filtering gaps ( #14808 )
4 years ago
kawaguchi
f13d563cb7
Fix validates :sign_count of WebauthnCredential ( #14806 )
4 years ago
Eugen Rochko
e514304a76
Change account suspensions to be reversible by default ( #14726 )
4 years ago
Eugen Rochko
e0355b5142
Fix unreadable placeholder text color in high contrast theme in web UI ( #14803 )
...
Fix #14717
4 years ago
ThibG
75dc5d61e5
Add paragraph about browser add-ons when encountering some errors ( #14801 )
...
* Add paragraph about browser add-ons when encountering some errors
When a crash is caused by a NotFoundError exception, add a paragraph
to the error page mentioning browser add-ons.
Indeed, crashes with NotFoundError are often caused by browser extensions
messing with the DOM in ways React.JS can't recover from (e.g. issues #13325
and #14731 ).
* Reword error messages
4 years ago
ThibG
739f7815ef
Do not serve account actors at all in limited federation mode ( #14800 )
...
* Do not serve account actors at all in limited federation mode
When an account is fetched without a signature from an allowed instance,
return an error.
This isn't really an improvement in security, as the only information that was
previously returned was required protocol-level info, and the only personal bit
was the existence of the account. The existence of the account can still be
checked by issuing a webfinger query, as those are accepted without signatures.
However, this change makes it so that unallowed instances won't create account
records on their end when they find a reference to an unknown account.
The previous behavior of rendering a limited list of fields, instead of not
rendering the actor at all, was in order to prevent situations in which two
instances in Authorized Fetch mode or Limited Federation mode would fail to
reach each other because resolving an account would require a signed query…
from an account which can only be fetched with a signed query itself. However,
this should now be fine as fetching accounts is done by signing on behalf of
the special instance actor, which does not require any kind of valid signature
to be fetched.
* Fix tests
4 years ago
Eugen Rochko
face3be227
Fix reported statuses not being included in warning e-mail ( #14778 )
4 years ago
tateisu
9d4769941f
allow pagination by min_id and max_id ( #14776 )
...
* allow pagination by min_id and max_id
* also AccountConversation allows min_id,max_id pair
* also home,list TL allows min_id,max_id pair
4 years ago
Eugen Rochko
403aeeb7e0
Refactor settings controllers ( #14767 )
...
- Disallow suspended accounts from revoking sessions and apps
- Allow suspended accounts to access exports
4 years ago
Eugen Rochko
7fa0da9e98
Change REST API to return empty data for suspended accounts ( #14765 )
4 years ago
ThibG
6c612562f0
Add border around 🕺 emoji ( #14769 )
...
Fixes #14768
4 years ago
Eugen Rochko
acbb99f7e5
Change web UI to show empty profile for suspended accounts ( #14766 )
4 years ago
Eugen Rochko
38aa7a9a7f
Refactor feed manager ( #14761 )
4 years ago
ThibG
e8aa85dc03
Fix multiple boosts of a same toot erroneously appearing in TL ( #14759 )
...
* Check for and record reblog info atomically
Instead of using ZREVRANK to determine whether a reblog is a new reblog or not,
use ZADD's NX option to perform the check/addition option atomically.
* Replace ZREVRANK call with ZSCORE key which is more efficient
* Make tests a bit stricter
* Fix off-by-one
4 years ago
abcang
e8c39853ad
Changed tag most_used to recently_used ( #14760 )
4 years ago
Eugen Rochko
78ceda1af6
Refactor how public and tag timelines are queried ( #14728 )
4 years ago
Eugen Rochko
2f5a6c4a4f
Remove obsolete IndexedDB operations from web UI ( #14730 )
...
Storing objects in IndexedDB was disabled in #7932 , but we were
still trying to read objects from it before making an API call
4 years ago
Takeshi Umeda
04cbd783b3
Fix direct visibility style for light theme ( #14727 )
4 years ago
ThibG
1a3405005a
Add outbox attribute to instance actor ( #14721 )
...
It's not useful for now, but it's required by ActivityPub
4 years ago
Takeshi Umeda
cb37bd63dc
Added account featured tags API ( #11817 )
4 years ago
Eugen Rochko
c6ad9aae69
Add featured hashtags as an ActivityPub collection ( #11595 )
4 years ago
ThibG
50d0c1e95f
Add configuration option to filter replies in lists ( #9205 )
...
* Add database support for list show-reply preferences
* Add backend support to read and update list-specific show_replies settings
* Add basic UI to set list replies setting
* Add specs for list replies policy
* Switch "cycling" reply policy link to a set of radio inputs
* Capitalize replies_policy strings
* Change radio button design to be consistent with that of the directory explorer
4 years ago
Eugen Rochko
a143764c4c
Change own direct-visibility statuses to be in the home feed again ( #14711 )
...
And remove highlighting in web UI
Full circle from #8940
4 years ago
dependabot[bot]
61b768572e
Bump rubocop from 0.86.0 to 0.88.0 ( #14412 )
...
* Bump rubocop from 0.86.0 to 0.88.0
Bumps [rubocop](https://github.com/rubocop-hq/rubocop ) from 0.86.0 to 0.88.0.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases )
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.86.0...v0.88.0 )
Signed-off-by: dependabot[bot] <support@github.com>
* Fix for latest RuboCop
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
4 years ago
ThibG
6cb7f10134
Update Tesseract.js ( #14708 )
...
* [WiP] Update Tesseract.js
- Update Tesseract.js to 2.2.1
- Use versioned file names
- differentiate two progression states: preparing OCR and detecting picture
* Get rid of copy-webpack-plugin
4 years ago
ThibG
a3c9062153
Add border around 🐞 emoji ( #14712 )
4 years ago
ThibG
0fd309af0d
Add back “Home” link to the “Getting Started” column when the “Home” column isn't mounted ( #14707 )
...
* Add back "Home" link to "Getting started" when Home column isn't mounted
* Fix keys in getting_started
It should not matter much in practice as the list of items will only
change extremely rarely, but having a `key` that corresponds to the actual
item makes much more sense than having it be the index of the item within
the list.
4 years ago
Takeshi Umeda
74eb6f3a24
Fix limited follower id in fan-out-on-write service ( #14709 )
4 years ago
Akihiko Odaki
b096ad1c0f
Make Array-creation behavior of Paginable more predictable ( #14687 )
...
* Make Array-creation behavior of Paginable more predictable
Paginable.paginate_by_id usually returns ActiveRecord::Relation, but it
returns an Array if min_id option is present. The behavior caused problems
fixed with the following commits:
- 976938bf30
- 5a8fa3ad95
- 1c70d8189c
To prevent from recurring similar problems, this commit introduces two
changes:
- The scope now always returns an Array whether min_id option is present
or not.
- The scope is renamed to to_a_paginated_by_id to clarify it returns an
Array.
* Transform Paginable.to_a_paginated_by_id from a scope to a class method
https://api.rubyonrails.org/classes/ActiveRecord/Scoping/Named/ClassMethods.html#method-i-scope
> The method is intended to return an ActiveRecord::Relation object, which
> is composable with other scopes.
Paginable.to_a_paginated_by_id returns an Array and is not appropriate
as a scope.
4 years ago
Eugen Rochko
e8d1656bd6
Add support for dereferencing objects through bearcaps ( #14683 )
4 years ago
Eugen Rochko
d0fecf89d5
Fix inefficiencies in fan-out-on-write service ( #14682 )
4 years ago
Eugen Rochko
97762d28b6
Fix videos with near-60 fps being rejected ( #14684 )
...
Fix #14668
4 years ago
Akihiko Odaki
1c70d8189c
Introduce ApplicationController#cache_collection_paginated_by_id ( #14677 )
...
* Replace incorrect use of distinct with group
Some uses of ActiveRecord::QueryMethods#distinct pass field names but they
are incorrect for the current version of Rails.
ActiveRecord::QueryMethods#group provides the expected behavior and
benefits performance. See commit 6da24aad4cafdef8d8a2c92bac2002a5fc2fe9c8.
* Introduce ApplicationController#cache_collection_paginated_by_id
ApplicationController#cache_collection_paginated_by_id fuses
ApplicationController#cache_collection and Paginable.paginate_by_id.
An advantage of this method is that it prevents from modifying scope which
Paginable.paginate_by_id may provide.
ApplicationController#cache_collection always return an array and there
is no possibility of the scope modification. It is also clear for a
programmer, considering the implication of "cache".
This method can also emit more efficient queries by using
Cacheable.cache_ids before calling Paginable.paginate_by_id.
4 years ago
Akihiko Odaki
5a8fa3ad95
Eagerly load statuses with the main query in Api::V1::BookmarksController ( #14674 )
...
This is same with commit 976938bf30
except
that it was for Api::V1::FavouritesController while this is for
Api::V1::BookmarksController.
4 years ago
Akihiko Odaki
81666b26a6
Replace incorrect use of distinct with group ( #14675 )
...
Some uses of ActiveRecord::QueryMethods#distinct pass field names but they
are incorrect for the current version of Rails.
ActiveRecord::QueryMethods#group provides the expected behavior and
benefits performance. See commit 6da24aad4cafdef8d8a2c92bac2002a5fc2fe9c8.
4 years ago
Akihiko Odaki
976938bf30
Eagerly load statuses with the main query in Api::V1::FavouritesController ( #14673 )
...
The old implementation had two queries:
1. The query constructed in Api::V1::FavouritesController#results
2. The query constructed in #cached_favourites, which is merged with 1.
Both of them are issued againt PostgreSQL. The combination of the two
queries caused the following problems:
- The small window between the two queries involves race conditions.
- Minor performance inefficiency.
Moreover, the construction of query 2, which involves merging with query
1 has a bug. Query 1 is finalized with paginate_by_id, but paginate_by_id
returns an array when min_id parameter is specified. The behavior prevents
from merging the query, and in the real world, ActiveRecord simply ignores
the merge (!), which results in querying the entire scan of statuses and
favourites table.
This change fixes these issues by simply letting query 1 get all the works
done.
4 years ago
Akihiko Odaki
44df785077
Use Status.group instead of Status.distinct in HashQueryService ( #14662 )
...
DISTINCT clause removes duplicated records according to all the selected
attributes. In reality, it can remove duplicated records only looking at
statuses.id, but the clause confuses the query planner and yields
insufficient performance.
The behavior is also problematic if the scope produced by HashQueryService
is used to query columns without id (using pluck method, for example). The
scope is expected to contain unique statuses, but the uniquness will be
evaluated with some arbitrary columns other than id.
GROUP BY clause resolves those problem by explicitly specifying the
column to take into account for the record distinction.
A workaround for the problem of DISTINCT clause in
Api::V1::Timelines::TagController is no longer necessary and removed.
4 years ago
ThibG
d480442e58
Add support for latest HTTP Signatures spec draft ( #14556 )
...
* Add support for latest HTTP Signatures spec draft
https://www.ietf.org/id/draft-ietf-httpbis-message-signatures-00.html
- add support for the “hs2019” signature algorithm (assumed to be equivalent
to RSA-SHA256, since we do not have a mechanism to specify the algorithm
within the key metadata yet)
- add support for (created) and (expires) pseudo-headers and related
signature parameters, when using the hs2019 signature algorithm
- adjust default “headers” parameter while being backwards-compatible with
previous implementation
- change the acceptable time window logic from 12 hours surrounding the “date”
header to accepting signatures created up to 1 hour in the future and
expiring up to 1 hour in the past (but only allowing expiration dates up to
12 hours after the creation date)
This doesn't conform with the current draft, as it doesn't permit accounting
for clock skew.
This, however, should be addressed in a next version of the draft:
https://github.com/httpwg/http-extensions/pull/1235
* Add additional signature requirements
* Rewrite signature params parsing using Parslet
* Make apparent which signature algorithm Mastodon on verification failure
Mastodon uses RSASSA-PKCS1-v1_5, which is not recommended for new applications,
and new implementers may thus unknowingly use RSASSA-PSS.
* Add workaround for PeerTube's invalid signature header
The previous parser allowed incorrect Signature headers, such as
those produced by old versions of the `http-signature` node.js package,
and seemingly used by PeerTube.
This commit adds a workaround for that.
* Fix `signature_key_id` raising an exception
Previously, parsing failures would result in `signature_key_id` being nil,
but the parser changes made that result in an exception.
This commit changes the `signature_key_id` method to return `nil` in case
of parsing failures.
* Move extra HTTP signature helper methods to private methods
* Relax (request-target) requirement to (request-target) || digest
This lets requests from Plume work without lowering security significantly.
4 years ago
ThibG
46283b489e
Fix dereferencing remote statuses not using the correct account ( #14656 )
...
Follow-up to #14359
In the case of limited toots, the receiver may not be explicitly part of the
audience. If a specific user's inbox URI was specified, it makes sense to
dereference the toot from the corresponding user, instead of trying to find
someone in the explicit audience.
4 years ago
santiagorodriguez96
f142983484
Add WebAuthn as an alternative 2FA method ( #14466 )
...
* feat: add possibility of adding WebAuthn security keys to use as 2FA
This adds a basic UI for enabling WebAuthn 2FA. We did a little refactor
to the Settings page for editing the 2FA methods – now it will list the
methods that are available to the user (TOTP and WebAuthn) and from
there they'll be able to add or remove any of them.
Also, it's worth mentioning that for enabling WebAuthn it's required to
have TOTP enabled, so the first time that you go to the 2FA Settings
page, you'll be asked to set it up.
This work was inspired by the one donde by Github in their platform, and
despite it could be approached in different ways, we decided to go with
this one given that we feel that this gives a great UX.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add request for WebAuthn as second factor at login if enabled
This commits adds the feature for using WebAuthn as a second factor for
login when enabled.
If users have WebAuthn enabled, now a page requesting for the use of a
WebAuthn credential for log in will appear, although a link redirecting
to the old page for logging in using a two-factor code will also be
present.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add possibility of deleting WebAuthn Credentials
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: disable WebAuthn when an Admin disables 2FA for a user
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: remove ability to disable TOTP leaving only WebAuthn as 2FA
Following examples form other platforms like Github, we decided to make
Webauthn 2FA secondary to 2FA with TOTP, so that we removed the
possibility of removing TOTP authentication only, leaving users with
just WEbAuthn as 2FA. Instead, users will have to click on 'Disable 2FA'
in order to remove second factor auth.
The reason for WebAuthn being secondary to TOPT is that in that way,
users will still be able to log in using their code from their phone's
application if they don't have their security keys with them – or maybe
even lost them.
* We had to change a little the flow for setting up TOTP, given that now
it's possible to setting up again if you already had TOTP, in order to
let users modify their authenticator app – given that now it's not
possible for them to disable TOTP and set it up again with another
authenticator app.
So, basically, now instead of storing the new `otp_secret` in the
user, we store it in the session until the process of set up is
finished.
This was because, as it was before, when users clicked on 'Edit' in
the new two-factor methods lists page, but then went back without
finishing the flow, their `otp_secret` had been changed therefore
invalidating their previous authenticator app, making them unable to
log in again using TOTP.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* refactor: fix eslint errors
The PR build was failing given that linting returning some errors.
This commit attempts to fix them.
* refactor: normalize i18n translations
The build was failing given that i18n translations files were not
normalized.
This commits fixes that.
* refactor: avoid having the webauthn gem locked to a specific version
* refactor: use symbols for routes without '/'
* refactor: avoid sending webauthn disabled email when 2FA is disabled
When an admins disable 2FA for users, we were sending two mails
to them, one notifying that 2FA was disabled and the other to notify
that WebAuthn was disabled.
As the second one is redundant since the first email includes it, we can
remove it and send just one email to users.
* refactor: avoid creating new env variable for webauthn_origin config
* refactor: improve flash error messages for webauthn pages
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
4 years ago
Tdxdxoz
c950a85d9e
Fix: also use custom private boost icon for detailed status ( #14471 )
...
* use custom private boost icon for detail status
* only use className
4 years ago
ThibG
4468fce63c
Add support for inlined objects in activity audience ( #14514 )
...
* Add support for inlined objects in activity audience
* Add tests
4 years ago
Daigo 3 Dango
ec75a4f48b
Better manage subscriptionCounters ( #14608 )
...
Before this change:
- unsubscribe() was not called for a disconnection
- It seems that WebSocketClient calls connected() and reconnected().
subscriptionCounters were incremented twice for a single reconnection,
first from connected() and second from reconnected()
This might be a an additional change to
https://github.com/tootsuite/mastodon/pull/14579
to recover subscriptions after a reconnect.
4 years ago
proxy
a455c84892
reword "boost to original audience" as per #14596 ( #14598 )
4 years ago
Takeshi Umeda
58f40e0786
Fix click range discrepancies in gifv ( #14615 )
4 years ago
ThibG
b4d2063384
Fix scrolling issues when closing some dropdown menus ( #14606 )
4 years ago
ThibG
4e292c23d6
Fix not being able to unbookmark toots when blocked by their author ( #14604 )
...
* Fix not being able to unbookmark toots when blocked by their author
* Add tests
4 years ago
ThibG
9a6ec27a87
Fix client-side form validation not accepting handles with uppercase letters ( #14599 )
4 years ago
ThibG
191fc742e9
Fix hardcoded non-breaking space in public view ( #14568 )
4 years ago
ThibG
8baad22f68
Improve email address validation ( #14565 )
...
* Increase DNS timeout from 1 second to 5 seconds for MX check
1 seconds is rather short when using a recursive DNS resolver which
hasn't got a cached result already available. Use 5 seconds instead,
which is the timeout value we use for outgoing HTTP queries.
* Add more precise error messages for invalid e-mail addresses
4 years ago
ThibG
ef710bbff6
Add client-side validation in password change forms ( #14564 )
...
* Fix client-side username validation at registration
It used the Account::USERNAME_RE regexp which is for *remote* users,
local user validation is stricter. Also take into account max username length.
* Add client-side form validation for password change
* Add client-side form validation to dedicated registration form
Previous changes only applied to the /about page, not the dedicated form on
/auth
4 years ago
ThibG
22aba16386
Add HTML form validation for the registration form ( #14560 )
...
* Add HTML-level validation of username in sign-up form
* Make required fields with incorrect values more visible
* Enable HTML form validation for the registration form
* Mark agreement checkbox as required client-side
* Add minimum length to password
* Add client-side password confirmation validation
4 years ago
Eugen Rochko
3d32dacbcb
Add support for managing multiple stream subscriptions in a single connection ( #14524 )
4 years ago
niwatori24
65c9d28fa1
Cache result of SQL ( #14534 )
4 years ago
ThibG
09b322872a
Fix crash when failing to load emoji picker ( #14525 )
...
Fixes #14523
4 years ago
abcang
739ea05d30
Fix eslint error ( #14521 )
4 years ago
ThibG
ed22b53180
Fallback to previous, more approximative hashtag RE on older browsers ( #14513 )
...
Fixes #14511
4 years ago
ThibG
be88d4f851
Fix audio/video player not using CDN_HOST in media paths on public pages ( #14486 )
4 years ago
ThibG
62324e9870
Fix audio player on Safari ( #14485 )
4 years ago
ThibG
bc1d925629
Fix disabled boost icon being replaced by private boost icon on hover ( #14456 )
...
Fixes #14455
4 years ago
ThibG
1f34bd4ff7
Fix new audio player features not working on Safari ( #14465 )
...
Fixes #14462
4 years ago
ThibG
9a709d63c2
Fix wrong proptypes for onEditAccountNote ( #14481 )
...
Also add missing PropTypes to the correct component
Fixes #14478
4 years ago
kedama
a903875e3c
Fix the hashtag judgment of the compose form to be the same as the server side ( #14484 )
4 years ago
ThibG
d6f2d1d3f2
Fix handling of Reject Follow when a matching follow relationship exists ( #14479 )
...
* Add tests
* Fix handling of Reject Follow when a matching follow relationship exists
Regression from #12199
4 years ago
Takeshi Umeda
381ecf1d0b
Fix following restriction not working when exact match in account search ( #14394 )
4 years ago
Eugen Rochko
0d9599ee02
Fix unnecessary second connection to user stream from account timeline in web UI ( #14387 )
...
Fix regression from #14212
4 years ago
Eugen Rochko
73d228513c
New Crowdin updates ( #14335 )
...
* New translations en.yml (Kazakh)
[ci skip]
* New translations en.json (Norwegian Nynorsk)
[ci skip]
* New translations simple_form.en.yml (Norwegian Nynorsk)
[ci skip]
* New translations en.yml (Latvian)
[ci skip]
* New translations simple_form.en.yml (Kazakh)
[ci skip]
* New translations en.json (Latvian)
[ci skip]
* New translations doorkeeper.en.yml (Estonian)
[ci skip]
* New translations simple_form.en.yml (Estonian)
[ci skip]
* New translations en.yml (Estonian)
[ci skip]
* New translations en.yml (Norwegian Nynorsk)
[ci skip]
* New translations en.yml (Slovak)
[ci skip]
* New translations doorkeeper.en.yml (Croatian)
[ci skip]
* New translations en.yml (Spanish, Argentina)
[ci skip]
* New translations doorkeeper.en.yml (Portuguese, Brazilian)
[ci skip]
* New translations en.json (Indonesian)
[ci skip]
* New translations simple_form.en.yml (Indonesian)
[ci skip]
* New translations doorkeeper.en.yml (Indonesian)
[ci skip]
* New translations simple_form.en.yml (Persian)
[ci skip]
* New translations doorkeeper.en.yml (Persian)
[ci skip]
* New translations en.json (Tamil)
[ci skip]
* New translations en.yml (Tamil)
[ci skip]
* New translations simple_form.en.yml (Tamil)
[ci skip]
* New translations doorkeeper.en.yml (Tamil)
[ci skip]
* New translations simple_form.en.yml (Spanish, Argentina)
[ci skip]
* New translations simple_form.en.yml (Croatian)
[ci skip]
* New translations doorkeeper.en.yml (Spanish, Argentina)
[ci skip]
* New translations en.json (Bengali)
[ci skip]
* New translations en.yml (Bengali)
[ci skip]
* New translations simple_form.en.yml (Bengali)
[ci skip]
* New translations en.json (Marathi)
[ci skip]
* New translations en.yml (Marathi)
[ci skip]
* New translations doorkeeper.en.yml (Marathi)
[ci skip]
* New translations en.json (Croatian)
[ci skip]
* New translations en.yml (Welsh)
[ci skip]
* New translations en.yml (Croatian)
[ci skip]
* New translations en.json (Welsh)
[ci skip]
* New translations simple_form.en.yml (Asturian)
[ci skip]
* New translations simple_form.en.yml (Welsh)
[ci skip]
* New translations en.yml (Taigi)
[ci skip]
* New translations en.yml (Corsican)
[ci skip]
* New translations simple_form.en.yml (Corsican)
[ci skip]
* New translations doorkeeper.en.yml (Corsican)
[ci skip]
* New translations doorkeeper.en.yml (Kabyle)
[ci skip]
* New translations en.json (Ido)
[ci skip]
* New translations en.yml (Ido)
[ci skip]
* New translations simple_form.en.yml (Ido)
[ci skip]
* New translations doorkeeper.en.yml (Ido)
[ci skip]
* New translations en.json (Taigi)
[ci skip]
* New translations doorkeeper.en.yml (Serbian (Latin))
[ci skip]
* New translations en.json (Silesian)
[ci skip]
* New translations en.yml (Silesian)
[ci skip]
* New translations en.json (Uyghur)
[ci skip]
* New translations en.yml (Uyghur)
[ci skip]
* New translations en.json (Sorani (Kurdish))
[ci skip]
* New translations en.yml (Sorani (Kurdish))
[ci skip]
* New translations simple_form.en.yml (Serbian (Latin))
[ci skip]
* New translations doorkeeper.en.yml (Welsh)
[ci skip]
* New translations en.yml (Breton)
[ci skip]
* New translations en.json (Esperanto)
[ci skip]
* New translations simple_form.en.yml (Esperanto)
[ci skip]
* New translations doorkeeper.en.yml (Esperanto)
[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 doorkeeper.en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.yml (Malayalam)
[ci skip]
* New translations simple_form.en.yml (Malayalam)
[ci skip]
* New translations doorkeeper.en.yml (Malayalam)
[ci skip]
* New translations simple_form.en.yml (Breton)
[ci skip]
* New translations en.yml (Serbian (Latin))
[ci skip]
* New translations doorkeeper.en.yml (Breton)
[ci skip]
* New translations en.json (Kannada)
[ci skip]
* New translations en.yml (Kannada)
[ci skip]
* New translations en.json (Asturian)
[ci skip]
* New translations en.yml (Asturian)
[ci skip]
* New translations en.yml (Portuguese, Brazilian)
[ci skip]
* New translations doorkeeper.en.yml (Asturian)
[ci skip]
* New translations en.yml (Occitan)
[ci skip]
* New translations simple_form.en.yml (Occitan)
[ci skip]
* New translations doorkeeper.en.yml (Occitan)
[ci skip]
* New translations en.json (Serbian (Latin))
[ci skip]
* New translations simple_form.en.yml (Portuguese, Brazilian)
[ci skip]
* New translations doorkeeper.en.yml (Turkish)
[ci skip]
* New translations en.json (Portuguese, Brazilian)
[ci skip]
* New translations en.json (Georgian)
[ci skip]
* New translations doorkeeper.en.yml (Hungarian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations simple_form.en.yml (Armenian)
[ci skip]
* New translations doorkeeper.en.yml (Armenian)
[ci skip]
* New translations en.yml (Italian)
[ci skip]
* New translations simple_form.en.yml (Italian)
[ci skip]
* New translations doorkeeper.en.yml (Italian)
[ci skip]
* New translations simple_form.en.yml (Japanese)
[ci skip]
* New translations doorkeeper.en.yml (Japanese)
[ci skip]
* New translations en.yml (Georgian)
[ci skip]
* New translations simple_form.en.yml (Hebrew)
[ci skip]
* New translations simple_form.en.yml (Georgian)
[ci skip]
* New translations doorkeeper.en.yml (Georgian)
[ci skip]
* New translations en.yml (Korean)
[ci skip]
* New translations simple_form.en.yml (Korean)
[ci skip]
* New translations doorkeeper.en.yml (Korean)
[ci skip]
* New translations en.json (Lithuanian)
[ci skip]
* New translations en.yml (Lithuanian)
[ci skip]
* New translations en.json (Macedonian)
[ci skip]
* New translations en.yml (Macedonian)
[ci skip]
* New translations doorkeeper.en.yml (Hebrew)
[ci skip]
* New translations en.yml (Hebrew)
[ci skip]
* New translations en.json (Occitan)
[ci skip]
* New translations en.json (Sardinian)
[ci skip]
* New translations en.yml (Sardinian)
[ci skip]
* New translations en.json (Slovenian)
[ci skip]
* New translations en.yml (Slovenian)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations en.yml (Russian)
[ci skip]
* New translations en.json (Hebrew)
[ci skip]
* New translations en.json (Slovak)
[ci skip]
* New translations simple_form.en.yml (Russian)
[ci skip]
* New translations simple_form.en.yml (Ukrainian)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations simple_form.en.yml (Hungarian)
[ci skip]
* New translations en.yml (Japanese)
[ci skip]
* New translations simple_form.en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Persian)
[ci skip]
* New translations en.json (Ukrainian)
[ci skip]
* New translations en.yml (Ukrainian)
[ci skip]
* New translations simple_form.en.yml (Finnish)
[ci skip]
* New translations doorkeeper.en.yml (Finnish)
[ci skip]
* New translations en.json (Dutch)
[ci skip]
* New translations doorkeeper.en.yml (Icelandic)
[ci skip]
* New translations en.yml (Urdu (Pakistan))
[ci skip]
* New translations doorkeeper.en.yml (Swedish)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations simple_form.en.yml (Turkish)
[ci skip]
* New translations en.yml (Indonesian)
[ci skip]
* New translations doorkeeper.en.yml (Ukrainian)
[ci skip]
* New translations en.yml (Chinese Traditional)
[ci skip]
* New translations simple_form.en.yml (Chinese Traditional)
[ci skip]
* New translations doorkeeper.en.yml (Chinese Traditional)
[ci skip]
* New translations en.json (Urdu (Pakistan))
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations en.yml (Galician)
[ci skip]
* New translations simple_form.en.yml (Galician)
[ci skip]
* New translations doorkeeper.en.yml (Galician)
[ci skip]
* New translations en.json (Icelandic)
[ci skip]
* New translations en.yml (Icelandic)
[ci skip]
* New translations simple_form.en.yml (Icelandic)
[ci skip]
* New translations simple_form.en.yml (Swedish)
[ci skip]
* New translations en.json (Swedish)
[ci skip]
* New translations en.yml (Dutch)
[ci skip]
* New translations simple_form.en.yml (Portuguese)
[ci skip]
* New translations simple_form.en.yml (Dutch)
[ci skip]
* New translations doorkeeper.en.yml (Dutch)
[ci skip]
* New translations en.json (Norwegian)
[ci skip]
* New translations en.yml (Norwegian)
[ci skip]
* New translations simple_form.en.yml (Norwegian)
[ci skip]
* New translations doorkeeper.en.yml (Norwegian)
[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 doorkeeper.en.yml (Polish)
[ci skip]
* New translations en.yml (Portuguese)
[ci skip]
* New translations doorkeeper.en.yml (Portuguese)
[ci skip]
* New translations doorkeeper.en.yml (Serbian (Cyrillic))
[ci skip]
* New translations doorkeeper.en.yml (Russian)
[ci skip]
* New translations simple_form.en.yml (Slovak)
[ci skip]
* New translations doorkeeper.en.yml (Slovak)
[ci skip]
* New translations simple_form.en.yml (Slovenian)
[ci skip]
* New translations doorkeeper.en.yml (Slovenian)
[ci skip]
* New translations en.yml (Albanian)
[ci skip]
* New translations simple_form.en.yml (Albanian)
[ci skip]
* New translations doorkeeper.en.yml (Albanian)
[ci skip]
* New translations en.json (Serbian (Cyrillic))
[ci skip]
* New translations en.yml (Serbian (Cyrillic))
[ci skip]
* New translations simple_form.en.yml (Serbian (Cyrillic))
[ci skip]
* New translations en.json (Portuguese, Brazilian)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations en.json (French)
[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 (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations doorkeeper.en.yml (Vietnamese)
[ci skip]
* New translations doorkeeper.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 (Chinese Simplified)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Chinese Simplified)
[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.json (Vietnamese)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.json (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 (Finnish)
[ci skip]
* New translations en.json (Finnish)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations simple_form.en.yml (Finnish)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations simple_form.en.yml (Finnish)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations en.json (Finnish)
[ci skip]
* New translations en.json (Finnish)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Dutch)
[ci skip]
* New translations en.json (Dutch)
[ci skip]
* New translations en.yml (Dutch)
[ci skip]
* New translations en.json (Thai)
[ci skip]
* New translations devise.en.yml (Thai)
[ci skip]
* New translations en.json (Thai)
[ci skip]
* New translations en.json (Korean)
[ci skip]
* New translations en.json (Thai)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.yml (Spanish)
[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 (Vietnamese)
[ci skip]
* New translations simple_form.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 en.yml (Vietnamese)
[ci skip]
* New translations simple_form.en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* i18n-tasks normalize
* yarn manage:translations
* Fix normalization
4 years ago
ThibG
b5302ae87c
Fix hover and normal colors for private boost icon being swapped ( #14386 )
4 years ago
ThibG
75ba08c2db
Add custom icon for private boosts ( #14380 )
4 years ago
Takeshi Umeda
652f872bf1
Fix duplicate notification and delivery of mentions ( #14378 )
4 years ago
ThibG
96a89bae14
Change disabled retweet icon ( #14373 )
...
* Change disabled retweet icon
* Hide fontawesome version of boost icon in both reduce-motion and no-reduce-motion
4 years ago
ThibG
e041b8b3f8
Fix not handling Undo on some activity types when they aren't inlined ( #14346 )
...
* Fix not handling Undo on some activity types when they aren't inlined
When receiving an Undo for a non-inlined activity, try looking it up in
database using the URI. The queries are ad-hoc because we don't have a global
index of object URIs, and not all activity types are stored in database with
an index on their URI.
Announces are just statuses, and have an index on URIs, so this check can
be done efficiently.
Accepts cannot be handled at all because we don't record their URI at any
point.
Follows don't have an index on URI, but they have an index on the issuing
account, which should make such queries largely manageable.
Likes don't have an index on URI, they have an index on the issuing account,
but the number of favs per account may be very high, so I decided not to
handle that.
Blocks don't have an index on URI, but they have an index on the issuing
account, which should make such queries largely manageable.
In all cases, if an Undo could not be handled properly, we call `delete_later!`
because that does not require us to know more than the URI of the undone
property.
* Add tests
* Make newer blocks overwrite older ones
Allows re-synchronizing block info by re-blocking and un-blocking again
when the original Undo Block has been lost.
4 years ago
ThibG
7792bab1cd
Fix RSS feeds not being cachable ( #14368 )
...
* Add tests for some cachable responses
This only covers responses that we should have managed to make cachable
so far. It's not the case of all responses that should be cachable in
the end.
* Fix RSS feeds not being cachable
4 years ago
ThibG
9c90f5347e
Dereference object URIs in Create and Update messages ( #14359 )
...
* Dereference object URIs in Create and Update messages
Fixes #14353
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
* Refactor, and perform origin check *before* attempting to fetch object
Co-authored-by: Fire Demon <firedemon@creature.cafe>
4 years ago
Takeshi Umeda
63aa1c1fb9
Changed retries and rescued in ActivityPub::ProcessingWorker ( #14355 )
...
* Changed the number of retries and rescued exceptions in ActivityPub::ProcessingWorker
* Remove RecordNotUnique from rescue
4 years ago
Takeshi Umeda
ac0805ad10
Fix to add RedisLock to handle Announce activity ( #14365 )
4 years ago
Takeshi Umeda
622dcbeb8c
Fix movie width and frame_rate returning nil ( #14357 )
...
* Fix movie width and frame_rate returning nil
* Add StreamValidationError and raise
* Fix code style
4 years ago
Takeshi Umeda
c294f6f897
Add thumbnail_remote_url in MediaAttachment REST response ( #14358 )
...
* Add thumbnail_remote_url in MediaAttachment REST response
* Change thumbnail_remote_url to preview_remote_url
4 years ago
Ariel
ac1a3386bd
Fix/14021 behaviour on add or remove toots ( #14212 )
...
* Add toot send by current user at local state after send a new toot
Related to #14021
* Decrement toot counter at profile when remove a toot
Related to #14021
* Remove semicolon at end of line
4 years ago
mayaeh
aa206d35ad
ran `yarn manage:translations` ( #14344 )
4 years ago
ThibG
825475a32a
Fix keyboard navigation in scrollable lists ( #14348 )
...
Fixes #14347
4 years ago
Sasha Sorokin
7b682ceb13
Fix following_counter plural to include "one" ( #14342 )
...
That should've worked just fine, but unfortunately, Crowdin wasn't able
to pick up on our non-existent "one" category, thus appending empty
translation block to people's translations. Empty block WILL BE used by
any ICU FormatMessage library, thus resulting in an empty translation
for "one" category, and that requires immediate fix.
This commit duplicates contents of the "other" plural category.
4 years ago
ThibG
a9e58aa8c6
Fix boosted toots from blocked account not being retroactively removed from TL ( #14339 )
...
* Fix boosted toots from blocked account not being retroactively removed from TL
Fixes #14301
* Add test for clear_from_timeline
4 years ago
ThibG
027491a518
Fix audio player controls color in mastodon-light theme ( #14338 )
...
Fixes #14337
The new audio player sets the background and foreground colors automatically
based on the thumbnail of the audio file, but the mastodon-light theme
overrides the controls' colors with a hardcoded color, which sometimes make
them unreadable.
4 years ago
Eugen Rochko
35bf60cae8
New Crowdin updates ( #14311 )
...
* New translations en.json (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 en.yml (Vietnamese)
[ci skip]
* i18n-tasks normalize
4 years ago
ThibG
109ea6f860
Fix removing allowed domains being done synchronously ( #14302 )
...
* Fix removing allowed domains being done synchronously
* Add tests
4 years ago
ThibG
ddd69f3ae9
Fix error when closing a playing audio or video modal ( #14310 )
4 years ago
Eugen Rochko
4198eed696
New Crowdin updates ( #14285 )
...
* New translations en.json (Bulgarian)
[ci skip]
* New translations doorkeeper.en.yml (Romanian)
[ci skip]
* New translations simple_form.en.yml (Bulgarian)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations doorkeeper.en.yml (Greek)
[ci skip]
* New translations en.json (Basque)
[ci skip]
* New translations en.yml (Basque)
[ci skip]
* New translations simple_form.en.yml (Basque)
[ci skip]
* New translations doorkeeper.en.yml (Basque)
[ci skip]
* New translations en.json (Finnish)
[ci skip]
* New translations simple_form.en.yml (Finnish)
[ci skip]
* New translations en.yml (Greek)
[ci skip]
* New translations doorkeeper.en.yml (Finnish)
[ci skip]
* New translations en.json (Hebrew)
[ci skip]
* New translations en.yml (Hebrew)
[ci skip]
* New translations simple_form.en.yml (Hebrew)
[ci skip]
* New translations doorkeeper.en.yml (Hebrew)
[ci skip]
* New translations doorkeeper.en.yml (Hungarian)
[ci skip]
* New translations doorkeeper.en.yml (Bulgarian)
[ci skip]
* New translations simple_form.en.yml (Greek)
[ci skip]
* New translations en.json (Armenian)
[ci skip]
* New translations en.json (Greek)
[ci skip]
* New translations en.json (Danish)
[ci skip]
* New translations en.json (Catalan)
[ci skip]
* New translations en.yml (Catalan)
[ci skip]
* New translations doorkeeper.en.yml (German)
[ci skip]
* New translations doorkeeper.en.yml (Catalan)
[ci skip]
* New translations en.json (Czech)
[ci skip]
* New translations en.yml (Czech)
[ci skip]
* New translations simple_form.en.yml (Czech)
[ci skip]
* New translations simple_form.en.yml (Catalan)
[ci skip]
* New translations en.yml (Danish)
[ci skip]
* New translations simple_form.en.yml (Danish)
[ci skip]
* New translations doorkeeper.en.yml (Danish)
[ci skip]
* New translations en.yml (German)
[ci skip]
* New translations en.json (German)
[ci skip]
* New translations simple_form.en.yml (German)
[ci skip]
* New translations doorkeeper.en.yml (Breton)
[ci skip]
* New translations doorkeeper.en.yml (Malayalam)
[ci skip]
* New translations en.json (Breton)
[ci skip]
* New translations en.yml (Breton)
[ci skip]
* New translations simple_form.en.yml (Breton)
[ci skip]
* New translations en.json (Kannada)
[ci skip]
* New translations en.yml (Kannada)
[ci skip]
* New translations en.json (Asturian)
[ci skip]
* New translations en.yml (Asturian)
[ci skip]
* New translations simple_form.en.yml (Asturian)
[ci skip]
* New translations doorkeeper.en.yml (Asturian)
[ci skip]
* New translations en.yml (Occitan)
[ci skip]
* New translations simple_form.en.yml (Malayalam)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.yml (Malayalam)
[ci skip]
* New translations doorkeeper.en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations simple_form.en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.yml (Telugu)
[ci skip]
* New translations en.json (Chinese Traditional, Hong Kong)
[ci skip]
* New translations doorkeeper.en.yml (Esperanto)
[ci skip]
* New translations simple_form.en.yml (Esperanto)
[ci skip]
* New translations en.json (Esperanto)
[ci skip]
* New translations doorkeeper.en.yml (Welsh)
[ci skip]
* New translations simple_form.en.yml (Welsh)
[ci skip]
* New translations simple_form.en.yml (Occitan)
[ci skip]
* New translations en.json (Welsh)
[ci skip]
* New translations en.yml (Welsh)
[ci skip]
* New translations doorkeeper.en.yml (Ido)
[ci skip]
* New translations doorkeeper.en.yml (Occitan)
[ci skip]
* New translations en.yml (Taigi)
[ci skip]
* New translations en.yml (Sorani (Kurdish))
[ci skip]
* New translations en.json (Sorani (Kurdish))
[ci skip]
* New translations en.yml (Uyghur)
[ci skip]
* New translations en.json (Uyghur)
[ci skip]
* New translations en.yml (Silesian)
[ci skip]
* New translations en.json (Silesian)
[ci skip]
* New translations en.json (Taigi)
[ci skip]
* New translations en.json (Serbian (Latin))
[ci skip]
* New translations simple_form.en.yml (Ido)
[ci skip]
* New translations en.yml (Ido)
[ci skip]
* New translations en.json (Ido)
[ci skip]
* New translations doorkeeper.en.yml (Kabyle)
[ci skip]
* New translations simple_form.en.yml (Kabyle)
[ci skip]
* New translations en.yml (Kabyle)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations doorkeeper.en.yml (Corsican)
[ci skip]
* New translations simple_form.en.yml (Corsican)
[ci skip]
* New translations en.yml (Corsican)
[ci skip]
* New translations en.json (Corsican)
[ci skip]
* New translations doorkeeper.en.yml (Serbian (Latin))
[ci skip]
* New translations simple_form.en.yml (Serbian (Latin))
[ci skip]
* New translations en.yml (Serbian (Latin))
[ci skip]
* New translations en.json (Telugu)
[ci skip]
* New translations en.json (Bengali)
[ci skip]
* New translations simple_form.en.yml (Portuguese, Brazilian)
[ci skip]
* New translations simple_form.en.yml (Spanish, Argentina)
[ci skip]
* New translations en.yml (Spanish, Argentina)
[ci skip]
* New translations en.json (Spanish, Argentina)
[ci skip]
* New translations doorkeeper.en.yml (Tamil)
[ci skip]
* New translations simple_form.en.yml (Tamil)
[ci skip]
* New translations en.yml (Tamil)
[ci skip]
* New translations en.json (Tamil)
[ci skip]
* New translations doorkeeper.en.yml (Persian)
[ci skip]
* New translations simple_form.en.yml (Persian)
[ci skip]
* New translations en.json (Persian)
[ci skip]
* New translations doorkeeper.en.yml (Indonesian)
[ci skip]
* New translations simple_form.en.yml (Indonesian)
[ci skip]
* New translations en.json (Indonesian)
[ci skip]
* New translations doorkeeper.en.yml (Portuguese, Brazilian)
[ci skip]
* New translations en.yml (Portuguese, Brazilian)
[ci skip]
* New translations en.yml (Bengali)
[ci skip]
* New translations en.json (Portuguese, Brazilian)
[ci skip]
* New translations doorkeeper.en.yml (Icelandic)
[ci skip]
* New translations simple_form.en.yml (Icelandic)
[ci skip]
* New translations en.json (Occitan)
[ci skip]
* New translations en.json (Sardinian)
[ci skip]
* New translations en.yml (Sardinian)
[ci skip]
* New translations en.json (Thai)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations simple_form.en.yml (Thai)
[ci skip]
* New translations en.yml (Indonesian)
[ci skip]
* New translations en.yml (Persian)
[ci skip]
* New translations doorkeeper.en.yml (Spanish, Argentina)
[ci skip]
* New translations simple_form.en.yml (Bengali)
[ci skip]
* New translations en.yml (Malay)
[ci skip]
* New translations simple_form.en.yml (Kazakh)
[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 doorkeeper.en.yml (Estonian)
[ci skip]
* New translations simple_form.en.yml (Estonian)
[ci skip]
* New translations en.yml (Estonian)
[ci skip]
* New translations en.json (Estonian)
[ci skip]
* New translations doorkeeper.en.yml (Kazakh)
[ci skip]
* New translations en.yml (Kazakh)
[ci skip]
* New translations en.json (Kazakh)
[ci skip]
* New translations doorkeeper.en.yml (Norwegian Nynorsk)
[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 doorkeeper.en.yml (Croatian)
[ci skip]
* New translations simple_form.en.yml (Croatian)
[ci skip]
* New translations en.yml (Croatian)
[ci skip]
* New translations en.json (Croatian)
[ci skip]
* New translations doorkeeper.en.yml (Thai)
[ci skip]
* New translations doorkeeper.en.yml (Marathi)
[ci skip]
* New translations en.yml (Marathi)
[ci skip]
* New translations en.json (Marathi)
[ci skip]
* New translations en.yml (Arabic)
[ci skip]
* New translations en.json (Arabic)
[ci skip]
* New translations en.json (Catalan)
[ci skip]
* New translations en.json (Russian)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.yml (Arabic)
[ci skip]
* New translations en.json (Arabic)
[ci skip]
* New translations en.json (Catalan)
[ci skip]
* New translations en.json (German)
[ci skip]
* New translations en.json (Persian)
[ci skip]
* New translations en.yml (Arabic)
[ci skip]
* New translations en.yml (Arabic)
[ci skip]
* New translations simple_form.en.yml (Arabic)
[ci skip]
* New translations en.json (Corsican)
[ci skip]
* New translations en.json (French)
[ci skip]
* New translations en.json (Italian)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.json (Portuguese)
[ci skip]
* New translations en.json (Russian)
[ci skip]
* New translations en.json (German)
[ci skip]
* New translations en.json (Spanish, Argentina)
[ci skip]
* New translations en.json (Persian)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Japanese)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.json (Latvian)
[ci skip]
* New translations en.json (Albanian)
[ci skip]
* New translations en.json (Persian)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.json (Galician)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations doorkeeper.en.yml (Malayalam)
[ci skip]
* New translations activerecord.en.yml (Malayalam)
[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 simple_form.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 (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 (Vietnamese)
[ci skip]
* New translations doorkeeper.en.yml (Vietnamese)
[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.json (Vietnamese)
[ci skip]
* New translations en.yml (French)
[ci skip]
* New translations en.yml (French)
[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 (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations simple_form.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 (Vietnamese)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Hungarian)
[ci skip]
* New translations en.json (Armenian)
[ci skip]
* New translations simple_form.en.yml (Armenian)
[ci skip]
* New translations simple_form.en.yml (Armenian)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.yml (Kabyle)
[ci skip]
* New translations simple_form.en.yml (Kabyle)
[ci skip]
* New translations activerecord.en.yml (Kabyle)
[ci skip]
* New translations devise.en.yml (Kabyle)
[ci skip]
* New translations devise.en.yml (Kabyle)
[ci skip]
* New translations devise.en.yml (Kabyle)
[ci skip]
* New translations devise.en.yml (Kabyle)
[ci skip]
* New translations devise.en.yml (Kabyle)
[ci skip]
* New translations devise.en.yml (Kabyle)
[ci skip]
* New translations devise.en.yml (Kabyle)
[ci skip]
* New translations devise.en.yml (Kabyle)
[ci skip]
* New translations en.yml (Kabyle)
[ci skip]
* New translations devise.en.yml (Breton)
[ci skip]
* New translations en.json (Breton)
[ci skip]
* New translations devise.en.yml (Breton)
[ci skip]
* New translations en.json (Breton)
[ci skip]
* New translations en.json (Breton)
[ci skip]
* New translations en.json (Breton)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.json (Breton)
[ci skip]
* New translations en.json (Greek)
[ci skip]
* New translations en.json (Breton)
[ci skip]
* New translations en.json (Greek)
[ci skip]
* New translations en.yml (Greek)
[ci skip]
* i18n-tasks normalize
* yarn manage:translations
4 years ago
ThibG
c9fbf47a23
Fix being unable to unboost when blocked by their author ( #14308 )
...
Fixes #14307
4 years ago
Takeshi Umeda
27c1146f37
Improve group processing ( #14279 )
...
* Fix the local group's followers collection
* Fix to accept followed relayed_through_account
* Add local delivery to the group's followers
* Fix code style
* Revert "Add local delivery to the group's followers"
This reverts commit 3237effc199772e4c4d30f19082cbc5633f56196.
4 years ago
abcang
aca93fa882
Fix rubocop warning ( #14288 )
...
* Fix rubocop warning
* use limit variable
* use ContextCreatingMethods option
4 years ago
ThibG
d93a24936c
Fix larger video files not being transcoded ( #14306 )
...
Since #14145 , the `set_type_and_extension` has been moved from
`before_post_process` to `before_file_post_process`, but while the former
runs before all validations performed by Paperclip, the latter is dependent
on the order validations and hooks are defined.
In our case, this meant video files could be checked against the generic 10MB
limit, causing validation failures, which, internally, make Paperclip skip
post-processing, and thus, transcoding of the video file.
The actual validation would then happen after the type is correctly set, so
the large file would pass validation, but without being transcoded first.
This commit moves the hook definition so that it is run before checking for
the file size.
4 years ago
Eugen Rochko
09caf7e22e
Change `tootctl search deploy` algorithm ( #14300 )
4 years ago
Eugen Rochko
bd73623069
Fix account domain block not properly unfollowing accounts from domain ( #14304 )
...
Fix #14303
4 years ago
ThibG
0be60c5d05
Fix removing a DomainAllow rule wiping known accounts in open federation mode ( #14298 )
...
Fixes #14296
4 years ago
han@highemelry
fbbc66f53e
Add a visibility icon to boost modal ( #14292 )
...
Related to tootsuite#14123.
Add visibility icon not only status/detailed-status but also modal window for boost.
4 years ago
Eugen Rochko
ece8405ebd
Fix audio and video items in account gallery in web UI ( #14282 )
...
* Fix audio and video items in account gallery in web UI
- Fix audio items not using thumbnails
- Fix video items not using custom thumbnails
- Fix video items autoplaying like GIFs
* Change audio and video items in account gallery to autoplay when opened in web UI
* Fix code style issue
4 years ago
Eugen Rochko
7d777e474a
New Crowdin updates ( #14197 )
...
* New translations devise.en.yml (Uyghur)
[ci skip]
* New translations doorkeeper.en.yml (Uyghur)
[ci skip]
* New translations en.json (Sorani (Kurdish))
[ci skip]
* New translations en.yml (Sorani (Kurdish))
[ci skip]
* New translations simple_form.en.yml (Sorani (Kurdish))
[ci skip]
* New translations activerecord.en.yml (Sorani (Kurdish))
[ci skip]
* New translations devise.en.yml (Sorani (Kurdish))
[ci skip]
* New translations doorkeeper.en.yml (Sorani (Kurdish))
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.json (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations simple_form.en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.json (Hebrew)
[ci skip]
* New translations en.json (Hebrew)
[ci skip]
* New translations en.json (Hebrew)
[ci skip]
* New translations en.json (Hebrew)
[ci skip]
* New translations en.json (Russian)
[ci skip]
* New translations en.yml (Persian)
[ci skip]
* New translations en.json (Persian)
[ci skip]
* New translations en.json (Croatian)
[ci skip]
* New translations en.json (Marathi)
[ci skip]
* New translations en.json (Norwegian Nynorsk)
[ci skip]
* New translations en.json (Bengali)
[ci skip]
* New translations en.json (Spanish, Argentina)
[ci skip]
* New translations en.json (Hindi)
[ci skip]
* New translations en.json (Latvian)
[ci skip]
* New translations en.json (Estonian)
[ci skip]
* New translations en.json (Kazakh)
[ci skip]
* New translations en.json (Galician)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Urdu (Pakistan))
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.json (Icelandic)
[ci skip]
* New translations en.json (Tamil)
[ci skip]
* New translations en.json (Persian)
[ci skip]
* New translations en.json (Indonesian)
[ci skip]
* New translations en.json (Portuguese, Brazilian)
[ci skip]
* New translations en.json (Ido)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.json (Corsican)
[ci skip]
* New translations en.json (Serbian (Latin))
[ci skip]
* New translations en.json (Uyghur)
[ci skip]
* New translations en.json (Sorani (Kurdish))
[ci skip]
* New translations en.json (Taigi)
[ci skip]
* New translations en.json (Silesian)
[ci skip]
* New translations en.json (Malay)
[ci skip]
* New translations en.json (Welsh)
[ci skip]
* New translations en.json (Esperanto)
[ci skip]
* New translations en.json (Telugu)
[ci skip]
* New translations en.json (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.json (Asturian)
[ci skip]
* New translations en.json (Kannada)
[ci skip]
* New translations en.json (Breton)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.json (Catalan)
[ci skip]
* New translations en.json (Bulgarian)
[ci skip]
* New translations en.json (Arabic)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.json (Czech)
[ci skip]
* New translations en.json (Greek)
[ci skip]
* New translations en.json (Basque)
[ci skip]
* New translations en.json (Danish)
[ci skip]
* New translations en.json (German)
[ci skip]
* New translations en.json (Finnish)
[ci skip]
* New translations en.json (Thai)
[ci skip]
* New translations en.json (Slovenian)
[ci skip]
* New translations en.json (Sardinian)
[ci skip]
* New translations en.json (Romanian)
[ci skip]
* New translations en.json (Occitan)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations en.json (Ukrainian)
[ci skip]
* New translations en.json (French)
[ci skip]
* New translations en.json (Hungarian)
[ci skip]
* New translations en.json (Slovak)
[ci skip]
* New translations en.json (Russian)
[ci skip]
* New translations en.json (Portuguese)
[ci skip]
* New translations en.json (Polish)
[ci skip]
* New translations en.json (Norwegian)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations en.json (Swedish)
[ci skip]
* New translations en.json (Serbian (Cyrillic))
[ci skip]
* New translations en.json (Albanian)
[ci skip]
* New translations en.json (Italian)
[ci skip]
* New translations en.json (Armenian)
[ci skip]
* New translations en.json (Hebrew)
[ci skip]
* New translations en.json (Japanese)
[ci skip]
* New translations en.json (Dutch)
[ci skip]
* New translations en.json (Macedonian)
[ci skip]
* New translations en.json (Lithuanian)
[ci skip]
* New translations en.json (Georgian)
[ci skip]
* New translations en.json (Korean)
[ci skip]
* New translations en.json (Portuguese)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.json (Korean)
[ci skip]
* New translations en.json (German)
[ci skip]
* New translations en.json (Japanese)
[ci skip]
* New translations en.json (Russian)
[ci skip]
* New translations en.json (French)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Catalan)
[ci skip]
* New translations en.json (Galician)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.json (Spanish, Argentina)
[ci skip]
* New translations en.json (Hungarian)
[ci skip]
* New translations en.json (Albanian)
[ci skip]
* New translations en.json (Corsican)
[ci skip]
* New translations simple_form.en.yml (Dutch)
[ci skip]
* New translations simple_form.en.yml (Dutch)
[ci skip]
* New translations en.json (Dutch)
[ci skip]
* New translations en.json (Dutch)
[ci skip]
* New translations en.json (Dutch)
[ci skip]
* New translations en.json (Dutch)
[ci skip]
* New translations en.json (Dutch)
[ci skip]
* New translations en.yml (Dutch)
[ci skip]
* New translations en.yml (Dutch)
[ci skip]
* New translations en.yml (Dutch)
[ci skip]
* New translations en.yml (Dutch)
[ci skip]
* New translations en.json (Thai)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations en.yml (Dutch)
[ci skip]
* New translations en.yml (Dutch)
[ci skip]
* New translations en.yml (Dutch)
[ci skip]
* New translations en.yml (Dutch)
[ci skip]
* New translations en.yml (Dutch)
[ci skip]
* New translations en.json (Portuguese, Brazilian)
[ci skip]
* New translations en.json (Occitan)
[ci skip]
* New translations en.json (Occitan)
[ci skip]
* New translations en.yml (Occitan)
[ci skip]
* New translations en.json (Italian)
[ci skip]
* New translations en.json (Persian)
[ci skip]
* New translations en.json (French)
[ci skip]
* New translations en.yml (French)
[ci skip]
* New translations en.json (Arabic)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.yml (Kabyle)
[ci skip]
* New translations en.json (Icelandic)
[ci skip]
* New translations en.json (Portuguese, Brazilian)
[ci skip]
* New translations en.json (Indonesian)
[ci skip]
* New translations en.json (Persian)
[ci skip]
* New translations en.json (Galician)
[ci skip]
* New translations en.json (Tamil)
[ci skip]
* New translations en.json (Spanish, Argentina)
[ci skip]
* New translations en.json (Bengali)
[ci skip]
* New translations en.json (Marathi)
[ci skip]
* New translations en.json (Albanian)
[ci skip]
* New translations en.json (Serbian (Cyrillic))
[ci skip]
* New translations en.json (Swedish)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.json (Urdu (Pakistan))
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Welsh)
[ci skip]
* New translations en.json (Esperanto)
[ci skip]
* New translations en.json (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.json (Telugu)
[ci skip]
* New translations en.json (Breton)
[ci skip]
* New translations en.json (Kannada)
[ci skip]
* New translations en.json (Uyghur)
[ci skip]
* New translations en.json (Croatian)
[ci skip]
* New translations en.json (Norwegian Nynorsk)
[ci skip]
* New translations en.json (Kazakh)
[ci skip]
* New translations en.json (Estonian)
[ci skip]
* New translations en.json (Latvian)
[ci skip]
* New translations en.json (Hindi)
[ci skip]
* New translations en.json (Malay)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.json (Arabic)
[ci skip]
* New translations en.json (Bulgarian)
[ci skip]
* New translations en.json (Catalan)
[ci skip]
* New translations en.json (Czech)
[ci skip]
* New translations en.json (Danish)
[ci skip]
* New translations en.json (German)
[ci skip]
* New translations en.json (Greek)
[ci skip]
* New translations en.json (Romanian)
[ci skip]
* New translations en.json (Slovenian)
[ci skip]
* New translations en.json (Thai)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations en.json (Slovak)
[ci skip]
* New translations en.json (Hungarian)
[ci skip]
* New translations en.json (French)
[ci skip]
* New translations en.json (Ukrainian)
[ci skip]
* New translations en.json (Norwegian)
[ci skip]
* New translations en.json (Lithuanian)
[ci skip]
* New translations en.json (Macedonian)
[ci skip]
* New translations en.json (Dutch)
[ci skip]
* New translations en.json (Polish)
[ci skip]
* New translations en.json (Basque)
[ci skip]
* New translations en.json (Portuguese)
[ci skip]
* New translations en.json (Russian)
[ci skip]
* New translations en.json (Armenian)
[ci skip]
* New translations en.json (Korean)
[ci skip]
* New translations en.json (Finnish)
[ci skip]
* New translations en.json (Hebrew)
[ci skip]
* New translations en.json (Georgian)
[ci skip]
* New translations en.json (Japanese)
[ci skip]
* New translations en.json (Italian)
[ci skip]
* New translations en.json (Ido)
[ci skip]
* New translations en.json (Taigi)
[ci skip]
* New translations en.json (Silesian)
[ci skip]
* New translations en.json (Sardinian)
[ci skip]
* New translations en.json (Occitan)
[ci skip]
* New translations en.json (Sorani (Kurdish))
[ci skip]
* New translations en.json (Asturian)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.json (Serbian (Latin))
[ci skip]
* New translations en.json (Corsican)
[ci skip]
* New translations en.json (Korean)
[ci skip]
* New translations en.json (Russian)
[ci skip]
* New translations en.json (Korean)
[ci skip]
* New translations en.json (Russian)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.json (Korean)
[ci skip]
* New translations en.json (Portuguese)
[ci skip]
* New translations en.json (Portuguese)
[ci skip]
* New translations en.json (German)
[ci skip]
* New translations en.json (French)
[ci skip]
* New translations en.json (Korean)
[ci skip]
* New translations en.json (French)
[ci skip]
* New translations en.json (Esperanto)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations en.json (Esperanto)
[ci skip]
* New translations en.json (Japanese)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Japanese)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.json (Italian)
[ci skip]
* New translations en.json (Italian)
[ci skip]
* New translations en.json (Corsican)
[ci skip]
* New translations en.json (Corsican)
[ci skip]
* New translations en.json (Persian)
[ci skip]
* New translations en.json (Hungarian)
[ci skip]
* New translations en.json (Portuguese, Brazilian)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.json (French)
[ci skip]
* New translations en.json (Spanish, Argentina)
[ci skip]
* New translations en.json (Galician)
[ci skip]
* New translations en.json (Galician)
[ci skip]
* New translations en.json (Portuguese)
[ci skip]
* New translations en.json (Portuguese)
[ci skip]
* New translations en.json (Albanian)
[ci skip]
* i18n-tasks normalize
* yarn manage:translations
4 years ago
ThibG
e793d71486
Fix block/mute pagination in WebUI ( #14275 )
...
Fixes #14274
4 years ago
ThibG
c2f5593be0
Audio player visualization improvements ( #14281 )
...
* Fix audio player ticks position
* Split visualizer code into own file to comply with license
* Change top-left corner of visualizer always showing peaks, clean up code
4 years ago
Eugen Rochko
29916e7143
Add attribution notice to the audio player component ( #14280 )
...
The code for rendering a frequency graph around a circle has been adopted (with modifications) from a CodePen by Alex Permyakov
4 years ago
Sasha Sorokin
66f9bd08da
Improve safety of Blurhash component ( #14278 )
...
There was a missed empty hash check. As well as rendering is now wrapped
in try/catch block, so app won't crash if any Blurhash component fails
to render its contents as it's not that critical.
4 years ago
ThibG
bf40d331e6
Freeze scroll position when a dropdown menu is open in the TL ( #14271 )
...
* Freeze scroll position when a dropdown menu is open in the TL
* Apply this to direct TL as well
* Fix case when mouse leaves the menu
4 years ago