kaias1jp
7004e88738
Fixed WebUI crash when a status opened in the media modal is deleted ( #15701 )
...
* Fixed picture in picture compatibility error in WebUI when status is deleted
* Revert "Fixed picture in picture compatibility error in WebUI when status is deleted"
This reverts commit f003b7d9d88688e9504f7dfae1545d7522fcfd98.
* Close the modal display of the image when status is deleted
* Fixed the case statement before the default statement
* Removed unnecessary parts
2021-02-11 19:59:47 +01:00
Takeshi Umeda
96fe153669
fix typo ( #15705 )
2021-02-11 06:22:11 +01:00
Cecylia Bocovich
6c300f08e5
Onion service related changes to HTTPS handling ( #15560 )
...
* Enable secure cookie flag for https only
* Disable force_ssl for .onion hosts only
Co-authored-by: Aiden McClelland <me@drbonez.dev>
2021-02-11 04:40:13 +01:00
Jeong Arm
b2572f0b29
Use custom mascot on static share page ( #15687 )
...
* Use custom mascot on static share page
* Use full_asset_url
2021-02-11 02:18:56 +01:00
Claire
00fb4ecf6b
Fix URI of repeat follow requests not being recorded ( #15662 )
...
* Fix URI of repeat follow requests not being recorded
In case we receive a “repeat” or “duplicate” follow request, we automatically
fast-forward the accept with the latest received Activity `id`, but we don't
record it.
In general, a “repeat” or “duplicate” follow request may happen if for some
reason (e.g. inconsistent handling of Block or Undo Accept activities, an
instance being brought back up from the dead, etc.) the local instance thought
the remote actor were following them while the remote actor thought otherwise.
In those cases, the remote instance does not know about the older Follow
activity `id`, so keeping that record serves no purpose, but knowing the most
recent one is useful if the remote implementation at some point refers to it
by `id` without inlining it.
* Add tests
2021-02-11 01:53:44 +01:00
Mélanie Chauvel
e48633f3cf
Slightly reorder three dots menu on toots to make it more intuitive ( #15647 )
...
* Slightly reorder three dots menu on toots to make it more intuitive
- Make “Pin to profile” always appear at the same place
- Add separator to group “Bookmark” and “Pin to profile”
- Fix separator being the first item in some cases
* Fix missing semicolon and keep status_action_bar.js and action_bar.js in sync
2021-02-11 01:05:04 +01:00
Claire
c848e85068
Add dropdown for boost privacy in boost confirmation modal ( #15704 )
...
* Various dropdown code quality fixes
* Prepare support for privacy selection in boost modal
* Add dropdown for boost privacy in boost confirmation modal
2021-02-11 00:53:12 +01:00
Claire
4028717020
Create instance actor if it hasn't been properly seeded ( #15693 )
...
An uncommon but somewhat difficult to digagnose issue is dealing with
improperly-seeded databases. In such cases, instance-signed fetches will
fail with a ActiveRecord::RecordNotFound error, usually caught and handled
as generic 404, leading people to think the remote resource itself has not
been found, while it's the local instance actor that does not exist.
This commit changes the code so that failure to find the instance actor
automatically creates a new one, so that improperly-seeded databases do
not cause any issue.
2021-02-09 18:12:54 +01:00
Eugen Rochko
826a5cc624
Change max. image dimensions to 1920x1080px (1080p) ( #15690 )
...
* Change max. image size to 1920x1080px
* Change it in web UI too
2021-02-09 01:21:06 +01:00
ThibG
dd2c80e1d1
Fix race conditions on account migration creation ( #15597 )
...
* Atomically check for processing lock in Move handler
* Prevent race condition when creating account migrations
Fixes #15595
* Add tests
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2021-02-02 14:49:57 +01:00
ThibG
e57047f213
Change custom emoji to be animated when hovering container ( #15637 )
...
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2021-01-31 21:25:31 +01:00
abcang
2b9d71cc18
Improved performance of notification preloading ( #15640 )
...
* Improved performance of notification preloading
* Remove Cacheable from Notification
* Fix test
2021-01-31 21:24:57 +01:00
abcang
82eb3a575e
Fix N+1 query when rendering with StatusSerializer ( #15641 )
2021-01-31 21:24:17 +01:00
abcang
df708569ac
Fix react/jsx-no-duplicate-props ( #15636 )
2021-01-28 18:24:22 +01:00
Takeshi Umeda
3830dbc6fc
Fix first return value of FetchLinkCardService.html method ( #15630 )
2021-01-25 09:22:41 +01:00
luigi
1256c05a99
Use Enumerable#filter_map in more places ( #15527 )
2021-01-22 16:28:15 +01:00
ThibG
603ce7e1f5
Add “translate” class to other user strings ( #15611 )
...
* Add “translate” class to other user strings
Follow-up to #15610 .
Allow Google Translate to work on more user content:
- poll options
- reply indicator (contents of the status being replied to)
- directory account cards
- account note in follow requests list
* Fix incorrect styling of account bio
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2021-01-22 10:09:23 +01:00
luigi
c19fe86d66
Optimize some regex matching ( #15528 )
...
* Use Regex#match?
* Replace =~ too
* Avoid to call match? from Nil
* Keep value of Regexp.last_match
2021-01-22 10:09:08 +01:00
ThibG
c9d9e96e75
Fix Google Translate breaking web interface ( #15610 )
...
- marks the page as a whole as untranslatable
- still marks user text as translatable
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2021-01-21 14:29:54 +01:00
ThibG
0306d0d4b0
Fix sign-up restrictions based on IP addresses not being enforced ( #15607 )
...
Fixes #15606
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2021-01-21 06:18:30 +01:00
ThibG
320355ce28
Fix /activity endpoint not require signature in authorized fetch mode ( #15592 )
...
Fixes #15589
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2021-01-19 06:47:36 +01:00
ThibG
2582047c36
Use Rails' index_by where it makes sense ( #15542 )
...
* Use Rails' index_by where it makes sense
* Fix tests
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2021-01-12 09:27:38 +01:00
ThibG
42a9b50d36
Fix processing of incoming Block activities ( #15546 )
...
Unlike locally-issued blocks, they weren't clearing follow
relationships in both directions, follow requests or notifications.
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2021-01-12 09:25:01 +01:00
Levi Bard
87d45a9cd8
Fix muting users with duration via the REST api ( #15516 )
2021-01-10 12:47:21 +01:00
luigi
944b059f50
Optimize map { ... }.compact calls ( #15513 )
...
* Optimize map { ... }.compact
using Enumerable#filter_map, supported since Ruby 2.7
* Add poyfill for Enumerable#filter_map
2021-01-10 00:32:01 +01:00
ThibG
f1cf85d5a0
Fix OCR lang data failing to load ( #15519 )
...
Fixes #15472
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2021-01-09 03:48:50 +01:00
ThibG
8a54766750
Skip processing Update activities on unknown accounts ( #15514 )
...
This also skips fetching the actor completely.
This will be useful if we end up distributing Update activities linked to
account suspensions more widely (they are currently only delivered to
the suspended account's followers), as currently, instances not knowing
about the suspended account would fetch it to then process the suspension.
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2021-01-08 12:26:29 +01:00
abcang
41f9aa5dbb
Fix rubocop config and warnings ( #15503 )
...
* disable NewCops
* update TargetRubyVersion
* Fix Lint/MissingSuper for ActiveModelSerializers::Model
* Fix Lint/MissingSuper for feed
* Fix Lint/FloatComparison
* Do not use instance variables
2021-01-07 09:40:55 +01:00
Takeshi Umeda
8c0b9e37d0
Fix defaultProps of frameRate to string ( #15493 )
2021-01-05 20:00:42 +01:00
Takeshi Umeda
7e9a91ae63
Fix missing key in list timeline policy ( #15494 )
2021-01-05 19:57:50 +01:00
Takeshi Umeda
ccb7aa93c7
Fix getting-started footer in single column mode not being clickable in Safari ( #15496 )
2021-01-05 19:57:32 +01:00
ThibG
e56b3f03aa
Fix profile update not being sent on profile/header picture deletion ( #15461 )
...
Fixes #15460
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-30 23:19:18 +01:00
Takeshi Umeda
74f34c1291
Fix logo button style more ( #15458 )
2020-12-30 23:18:39 +01:00
Takeshi Umeda
e90b31f176
Fix expand video on public page ( #15469 )
2020-12-30 23:18:11 +01:00
ThibG
82d014fd08
Fix being able to import more than allowed number of follows ( #15384 )
...
* Fix being able to import more than allowed number of follows
Without this commit, if someone tries importing a second list of accounts to
follow before the first one has been processed, this will queue imports for
the two whole lists, even if they exceed the account's allowed number of
outgoing follows.
This commit changes it so the individual queued imports aren't exempt from
the follow limit check (they remain exempt from the rate-limiting check
though).
* Catch validation errors to not re-queue failed follows
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-26 23:52:46 +01:00
Eugen Rochko
7f1d08e0e1
New Crowdin updates ( #15413 )
...
* 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.yml (Vietnamese)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.yml (Korean)
[ci skip]
* New translations en.yml (Japanese)
[ci skip]
* New translations simple_form.en.yml (Japanese)
[ci skip]
* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.yml (Occitan)
[ci skip]
* New translations en.yml (Occitan)
[ci skip]
* New translations en.json (Armenian)
[ci skip]
* New translations en.yml (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 (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.json (Armenian)
[ci skip]
* New translations en.json (Armenian)
[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 (Armenian)
[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.json (Armenian)
[ci skip]
* New translations en.yml (Chinese Simplified)
[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 devise.en.yml (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations devise.en.yml (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* i18n-tasks normalize
* yarn manage:translations
2020-12-26 23:51:46 +01:00
Takeshi Umeda
0ffece77ab
Fix logo button style ( #15428 )
...
* Fix bell button rtl style
* Remove size and style props from button component
* Fix logo button style
* Update jest snapshot
2020-12-26 23:50:34 +01:00
Eugen Rochko
060d0a1d6b
Fix error when changing ACL on missing objects during suspension ( #15420 )
2020-12-24 15:53:45 +01:00
Eugen Rochko
0b88105e3a
Fix undefined method error when batch-removing statuses with ElasticSearch on ( #15421 )
2020-12-24 15:53:26 +01:00
Takeshi Umeda
743c7504f5
Fix unfollow action button style ( #15418 )
2020-12-23 23:47:50 +01:00
ThibG
ca5b51153a
Fix media modal buttons not showing up on mobile ( #15417 )
...
Fixes #15374
When the pop-out player was introduced, it had tweaks for the mobile
view, but it's now disabled in mobile mode and the styling was reused
for modals, causing the footer to be hidden on mobile without a good
reason.
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-23 19:55:23 +01:00
trwnh
33e4e1cfe4
Use existing FeaturedTag serializer and delete AccountFeaturedTag serializer ( #15415 )
...
* Update featured_tags_controller.rb
* Update featured_tag_serializer.rb
* Update featured_tag_serializer.rb
* Delete account_featured_tag_serializer.rb
* please codeclimate
* please codeclimate
2020-12-23 16:43:38 +01:00
ThibG
92243f1306
Fix mentions not being deleted efficiently ( #15416 )
...
As a regression from the recent optimizations, mentions were left untouched
until `account.destroy`, which would then delete them individually,
and executing queries to find and delete associated notifications, resulting
in a massive slowdown.
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-23 16:43:11 +01:00
Eugen Rochko
e4f5e9c029
Fix trying to privatize empty media attachments ( #15414 )
2020-12-23 15:47:03 +09:00
ThibG
52955fdcee
Improve performances of deleting favourites when deleting accounts ( #15412 )
...
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-23 01:35:02 +01:00
Eugen Rochko
fd6bfd2b0f
New Crowdin updates ( #15369 )
...
* New translations doorkeeper.en.yml (Esperanto)
[ci skip]
* New translations doorkeeper.en.yml (Albanian)
[ci skip]
* New translations en.yml (Albanian)
[ci skip]
* New translations en.yml (Greek)
[ci skip]
* New translations doorkeeper.en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations en.json (Romanian)
[ci skip]
* New translations en.yml (Icelandic)
[ci skip]
* New translations en.json (Esperanto)
[ci skip]
* New translations en.json (Thai)
[ci skip]
* New translations simple_form.en.yml (Thai)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations simple_form.en.yml (Galician)
[ci skip]
* New translations simple_form.en.yml (Romanian)
[ci skip]
* New translations en.yml (Tatar)
[ci skip]
* New translations en.json (Tatar)
[ci skip]
* New translations en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations en.json (Standard Moroccan Tamazight)
[ci skip]
* New translations doorkeeper.en.yml (Sardinian)
[ci skip]
* New translations en.yml (Romanian)
[ci skip]
* New translations doorkeeper.en.yml (Romanian)
[ci skip]
* New translations doorkeeper.en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.json (Bulgarian)
[ci skip]
* New translations simple_form.en.yml (Catalan)
[ci skip]
* New translations en.yml (Catalan)
[ci skip]
* New translations doorkeeper.en.yml (Bulgarian)
[ci skip]
* New translations simple_form.en.yml (Bulgarian)
[ci skip]
* New translations en.yml (Bulgarian)
[ci skip]
* New translations doorkeeper.en.yml (Arabic)
[ci skip]
* New translations en.yml (French)
[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 doorkeeper.en.yml (Spanish)
[ci skip]
* New translations simple_form.en.yml (Spanish)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations doorkeeper.en.yml (French)
[ci skip]
* New translations doorkeeper.en.yml (Sorani (Kurdish))
[ci skip]
* New translations doorkeeper.en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Czech)
[ci skip]
* New translations simple_form.en.yml (Greek)
[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 (Armenian)
[ci skip]
* New translations en.json (Armenian)
[ci skip]
* New translations en.json (German)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations en.json (Czech)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations simple_form.en.yml (French)
[ci skip]
* New translations en.yml (Corsican)
[ci skip]
* New translations en.yml (Japanese)
[ci skip]
* New translations en.json (Swedish)
[ci skip]
* New translations simple_form.en.yml (Chinese Simplified)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.yml (Occitan)
[ci skip]
* New translations simple_form.en.yml (Sardinian)
[ci skip]
* New translations en.yml (Sardinian)
[ci skip]
* New translations en.json (Sardinian)
[ci skip]
* New translations simple_form.en.yml (Sorani (Kurdish))
[ci skip]
* New translations en.yml (Sorani (Kurdish))
[ci skip]
* New translations en.json (Sorani (Kurdish))
[ci skip]
* New translations simple_form.en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations simple_form.en.yml (Esperanto)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations simple_form.en.yml (Chinese Traditional)
[ci skip]
* New translations en.yml (Chinese Traditional)
[ci skip]
* New translations doorkeeper.en.yml (Catalan)
[ci skip]
* New translations simple_form.en.yml (Czech)
[ci skip]
* New translations doorkeeper.en.yml (Norwegian)
[ci skip]
* New translations simple_form.en.yml (Norwegian)
[ci skip]
* New translations en.yml (Norwegian)
[ci skip]
* New translations en.json (Norwegian)
[ci skip]
* New translations doorkeeper.en.yml (Dutch)
[ci skip]
* New translations en.yml (Macedonian)
[ci skip]
* New translations simple_form.en.yml (Polish)
[ci skip]
* New translations en.json (Macedonian)
[ci skip]
* New translations en.yml (Lithuanian)
[ci skip]
* New translations en.json (Lithuanian)
[ci skip]
* New translations doorkeeper.en.yml (Korean)
[ci skip]
* New translations simple_form.en.yml (Korean)
[ci skip]
* New translations en.yml (Polish)
[ci skip]
* New translations doorkeeper.en.yml (Polish)
[ci skip]
* New translations doorkeeper.en.yml (Georgian)
[ci skip]
* New translations en.yml (Slovak)
[ci skip]
* New translations doorkeeper.en.yml (Slovenian)
[ci skip]
* New translations simple_form.en.yml (Slovenian)
[ci skip]
* New translations en.yml (Slovenian)
[ci skip]
* New translations en.json (Slovenian)
[ci skip]
* New translations doorkeeper.en.yml (Slovak)
[ci skip]
* New translations simple_form.en.yml (Slovak)
[ci skip]
* New translations en.json (Slovak)
[ci skip]
* New translations doorkeeper.en.yml (Russian)
[ci skip]
* New translations simple_form.en.yml (Russian)
[ci skip]
* New translations en.yml (Russian)
[ci skip]
* New translations doorkeeper.en.yml (Portuguese)
[ci skip]
* New translations simple_form.en.yml (Portuguese)
[ci skip]
* New translations en.yml (Portuguese)
[ci skip]
* New translations en.yml (Korean)
[ci skip]
* New translations simple_form.en.yml (Georgian)
[ci skip]
* New translations doorkeeper.en.yml (Czech)
[ci skip]
* New translations doorkeeper.en.yml (Greek)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations en.json (Finnish)
[ci skip]
* New translations doorkeeper.en.yml (Basque)
[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 en.json (Greek)
[ci skip]
* New translations doorkeeper.en.yml (Finnish)
[ci skip]
* New translations doorkeeper.en.yml (German)
[ci skip]
* New translations simple_form.en.yml (German)
[ci skip]
* New translations en.yml (German)
[ci skip]
* New translations doorkeeper.en.yml (Danish)
[ci skip]
* New translations simple_form.en.yml (Danish)
[ci skip]
* New translations en.yml (Danish)
[ci skip]
* New translations en.json (Danish)
[ci skip]
* New translations simple_form.en.yml (Finnish)
[ci skip]
* New translations en.json (Hebrew)
[ci skip]
* New translations en.yml (Georgian)
[ci skip]
* New translations en.json (Georgian)
[ci skip]
* New translations doorkeeper.en.yml (Japanese)
[ci skip]
* New translations simple_form.en.yml (Japanese)
[ci skip]
* New translations doorkeeper.en.yml (Italian)
[ci skip]
* New translations simple_form.en.yml (Italian)
[ci skip]
* New translations en.yml (Italian)
[ci skip]
* New translations doorkeeper.en.yml (Armenian)
[ci skip]
* New translations en.yml (Hebrew)
[ci skip]
* New translations simple_form.en.yml (Armenian)
[ci skip]
* New translations doorkeeper.en.yml (Hungarian)
[ci skip]
* New translations simple_form.en.yml (Hungarian)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations doorkeeper.en.yml (Hebrew)
[ci skip]
* New translations simple_form.en.yml (Hebrew)
[ci skip]
* New translations simple_form.en.yml (Vietnamese)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations en.yml (French)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.yml (Spanish, Argentina)
[ci skip]
* New translations en.json (French)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.json (French)
[ci skip]
* New translations en.yml (Galician)
[ci skip]
* New translations en.yml (Galician)
[ci skip]
* New translations en.yml (Catalan)
[ci skip]
* New translations en.yml (Occitan)
[ci skip]
* New translations en.json (Occitan)
[ci skip]
* New translations en.yml (Polish)
[ci skip]
* New translations en.yml (Greek)
[ci skip]
* New translations en.yml (Albanian)
[ci skip]
* New translations en.json (German)
[ci skip]
* New translations en.json (German)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.yml (German)
[ci skip]
* New translations devise.en.yml (German)
[ci skip]
* New translations en.yml (Icelandic)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Italian)
[ci skip]
* New translations en.yml (Portuguese)
[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 simple_form.en.yml (Armenian)
[ci skip]
* New translations simple_form.en.yml (Armenian)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.yml (Korean)
[ci skip]
* New translations en.yml (Korean)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations en.json (Chinese Simplified)
[ci skip]
* New translations en.json (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations en.yml (Occitan)
[ci skip]
* New translations simple_form.en.yml (Occitan)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.yml (Malayalam)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Chinese Traditional)
[ci skip]
* New translations en.yml (Malayalam)
[ci skip]
* New translations en.json (Chinese Traditional)
[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 en.json (Chinese Traditional)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.yml (Malayalam)
[ci skip]
* New translations devise.en.yml (Chinese Traditional)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations devise.en.yml (Chinese Traditional)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations devise.en.yml (Chinese Traditional)
[ci skip]
* New translations en.yml (Malayalam)
[ci skip]
* New translations devise.en.yml (Chinese Traditional)
[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 simple_form.en.yml (Dutch)
[ci skip]
* New translations en.yml (Dutch)
[ci skip]
* New translations simple_form.en.yml (Dutch)
[ci skip]
* New translations en.yml (Dutch)
[ci skip]
* New translations en.yml (Chinese Traditional)
[ci skip]
* New translations en.yml (Chinese Traditional)
[ci skip]
* New translations en.yml (Chinese Traditional)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.yml (Malayalam)
[ci skip]
* New translations en.yml (Malayalam)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.yml (Indonesian)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations activerecord.en.yml (Kabyle)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.json (Croatian)
[ci skip]
* New translations en.json (Croatian)
[ci skip]
* New translations en.json (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.json (Esperanto)
[ci skip]
* New translations en.json (Esperanto)
[ci skip]
* i18n-tasks normalize
* yarn manage:translations
2020-12-23 00:10:58 +01:00
ThibG
c1f03bedec
Fix BatchedRemoveStatusService not working without ES in rails console ( #15408 )
...
Not a huge deal but may cause surprising failures in custom scripts and
development.
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-23 00:04:52 +01:00
ThibG
8d75aa630f
Improve account deletion performances further ( #15407 )
...
* Delete status records by batches of 50
* Do not precompute values that are only used once
* Do not generate redis events for removal of public toots older than two weeks
* Filter reported toots a priori for polls and status deletion
* Do not process reblogs when cleaning up public timelines
As in Mastodon proper, reblogs don't appear in public TLs
* Clean the deleted account's own feed in one go
* Refactor Account#clean_feed_manager and List#clean_feed_manager
* Delete instead of destroy a few more associations
* Fix preloading
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-22 23:57:46 +01:00
ThibG
58e0d8924b
Fix batch order warnings in BatchedRemoveStatusService ( #15409 )
...
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-22 20:24:55 +01:00
ThibG
f894bb9220
Fix external user creation failing when invite request text is required ( #15405 )
...
* Fix external user creation failing when invite request text is required
Also fixes tootctl-based user creation.
* Add test about invites when invite request text is otherwise required
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-22 17:14:32 +01:00
Eugen Rochko
3489758ff2
Fix unnecessary queries when batch-removing statuses, 100x faster ( #15387 )
2020-12-22 17:13:55 +01:00
ThibG
806f7ea54f
Fix some notifications not being deleted on poll/status deletion ( #15402 )
...
* Fix deleting polls not deleting notifications
* Fix fav notification deletion when deleting a toot
* Refactor DeleteAccountService spec
* Add DeleteAccountService tests for other associations and notifications
* Add favourite handling spec in status removal
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-21 18:22:17 +01:00
ThibG
ad1a3c6435
Fix invitation links not working when invite request text is required ( #15385 )
...
Fixes #15383
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-21 00:47:02 +01:00
ThibG
bbf0e7107c
Fix AccountDeletionWorker crashing and clogging sidekiq queues ( #15380 )
...
* Fix account deletion workers being queued multiple times for a single account
* Fix poll votes being unnecessarily instantiated on poll deletion
* Fix favourites being unnecessarily instantiated on status deletion
* Remove inaccurate comments
* Delete polls instead of destroying them
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-20 18:25:00 +01:00
Eugen Rochko
382ecc0197
New Crowdin updates ( #15353 )
...
* New translations en.json (Danish)
[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 simple_form.en.yml (German)
[ci skip]
* New translations en.json (Greek)
[ci skip]
* New translations simple_form.en.yml (Czech)
[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 doorkeeper.en.yml (Czech)
[ci skip]
* New translations en.yml (Czech)
[ci skip]
* New translations simple_form.en.yml (Spanish)
[ci skip]
* New translations en.json (Bulgarian)
[ci skip]
* New translations doorkeeper.en.yml (Spanish)
[ci skip]
* New translations en.json (Arabic)
[ci skip]
* New translations en.yml (Arabic)
[ci skip]
* New translations simple_form.en.yml (Arabic)
[ci skip]
* New translations doorkeeper.en.yml (Arabic)
[ci skip]
* New translations en.yml (Bulgarian)
[ci skip]
* New translations simple_form.en.yml (Bulgarian)
[ci skip]
* New translations doorkeeper.en.yml (Bulgarian)
[ci skip]
* New translations en.json (Catalan)
[ci skip]
* New translations en.yml (Catalan)
[ci skip]
* New translations simple_form.en.yml (Catalan)
[ci skip]
* New translations doorkeeper.en.yml (Catalan)
[ci skip]
* New translations en.yml (Chinese Traditional)
[ci skip]
* New translations doorkeeper.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 (Breton)
[ci skip]
* New translations en.json (Hindi)
[ci skip]
* New translations en.yml (Hindi)
[ci skip]
* New translations doorkeeper.en.yml (Hindi)
[ci skip]
* New translations en.json (Malay)
[ci skip]
* New translations en.yml (Malay)
[ci skip]
* New translations en.json (Telugu)
[ci skip]
* New translations en.yml (Telugu)
[ci skip]
* New translations en.json (Welsh)
[ci skip]
* New translations en.json (Breton)
[ci skip]
* New translations en.yml (Welsh)
[ci skip]
* New translations simple_form.en.yml (Welsh)
[ci skip]
* New translations doorkeeper.en.yml (Welsh)
[ci skip]
* New translations doorkeeper.en.yml (Esperanto)
[ci skip]
* New translations en.json (Uyghur)
[ci skip]
* New translations en.yml (Uyghur)
[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 en.yml (Kannada)
[ci skip]
* New translations en.yml (Serbian (Latin))
[ci skip]
* New translations en.json (Taigi)
[ci skip]
* New translations simple_form.en.yml (Kabyle)
[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.yml (Taigi)
[ci skip]
* New translations en.json (Silesian)
[ci skip]
* New translations en.yml (Silesian)
[ci skip]
* New translations en.yml (Kabyle)
[ci skip]
* New translations en.json (Asturian)
[ci skip]
* New translations en.json (Serbian (Latin))
[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.json (Occitan)
[ci skip]
* New translations simple_form.en.yml (Occitan)
[ci skip]
* New translations doorkeeper.en.yml (Occitan)
[ci skip]
* New translations en.yml (Latvian)
[ci skip]
* New translations en.yml (Sanskrit)
[ci skip]
* New translations simple_form.en.yml (Serbian (Latin))
[ci skip]
* New translations doorkeeper.en.yml (Serbian (Latin))
[ci skip]
* New translations en.json (Corsican)
[ci skip]
* New translations simple_form.en.yml (Corsican)
[ci skip]
* New translations doorkeeper.en.yml (Corsican)
[ci skip]
* New translations en.json (Sanskrit)
[ci skip]
* New translations en.json (Spanish, Argentina)
[ci skip]
* New translations en.json (Latvian)
[ci skip]
* New translations en.json (Chinese Traditional, Hong Kong)
[ci skip]
* New translations simple_form.en.yml (Sorani (Kurdish))
[ci skip]
* New translations en.yml (Sorani (Kurdish))
[ci skip]
* New translations en.json (Sorani (Kurdish))
[ci skip]
* New translations en.yml (Occitan)
[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 simple_form.en.yml (Esperanto)
[ci skip]
* New translations en.yml (Sardinian)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations en.json (Persian)
[ci skip]
* New translations en.yml (Corsican)
[ci skip]
* New translations doorkeeper.en.yml (Indonesian)
[ci skip]
* New translations en.yml (Persian)
[ci skip]
* New translations simple_form.en.yml (Persian)
[ci skip]
* New translations en.json (Sardinian)
[ci skip]
* New translations simple_form.en.yml (Sardinian)
[ci skip]
* New translations en.json (Tamil)
[ci skip]
* New translations en.json (Esperanto)
[ci skip]
* New translations en.json (Thai)
[ci skip]
* New translations simple_form.en.yml (Thai)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations doorkeeper.en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations en.yml (Tatar)
[ci skip]
* New translations en.json (Kabyle)
[ci skip]
* New translations en.json (Tatar)
[ci skip]
* New translations en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations en.json (Standard Moroccan Tamazight)
[ci skip]
* New translations doorkeeper.en.yml (Sardinian)
[ci skip]
* New translations doorkeeper.en.yml (Sorani (Kurdish))
[ci skip]
* New translations doorkeeper.en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations doorkeeper.en.yml (Persian)
[ci skip]
* New translations en.yml (Tamil)
[ci skip]
* New translations doorkeeper.en.yml (Estonian)
[ci skip]
* New translations doorkeeper.en.yml (Norwegian Nynorsk)
[ci skip]
* New translations en.yml (Croatian)
[ci skip]
* New translations simple_form.en.yml (Croatian)
[ci skip]
* New translations doorkeeper.en.yml (Croatian)
[ci skip]
* New translations en.json (Norwegian Nynorsk)
[ci skip]
* New translations en.yml (Norwegian Nynorsk)
[ci skip]
* New translations simple_form.en.yml (Norwegian Nynorsk)
[ci skip]
* New translations en.json (Kazakh)
[ci skip]
* New translations doorkeeper.en.yml (Thai)
[ci skip]
* New translations en.yml (Kazakh)
[ci skip]
* New translations simple_form.en.yml (Kazakh)
[ci skip]
* New translations doorkeeper.en.yml (Kazakh)
[ci skip]
* New translations en.json (Estonian)
[ci skip]
* New translations en.yml (Estonian)
[ci skip]
* New translations simple_form.en.yml (Estonian)
[ci skip]
* New translations en.json (Croatian)
[ci skip]
* New translations doorkeeper.en.yml (Marathi)
[ci skip]
* New translations simple_form.en.yml (Tamil)
[ci skip]
* New translations simple_form.en.yml (Spanish, Mexico)
[ci skip]
* New translations doorkeeper.en.yml (Tamil)
[ci skip]
* New translations en.yml (Spanish, Argentina)
[ci skip]
* New translations simple_form.en.yml (Spanish, Argentina)
[ci skip]
* New translations doorkeeper.en.yml (Spanish, Argentina)
[ci skip]
* New translations en.json (Spanish, Mexico)
[ci skip]
* New translations en.yml (Spanish, Mexico)
[ci skip]
* New translations doorkeeper.en.yml (Spanish, Mexico)
[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 simple_form.en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations en.json (French)
[ci skip]
* New translations en.json (Korean)
[ci skip]
* New translations en.json (Spanish, Argentina)
[ci skip]
* New translations en.json (Spanish, Argentina)
[ci skip]
* New translations en.json (Catalan)
[ci skip]
* New translations en.json (Galician)
[ci skip]
* New translations en.yml (Galician)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Russian)
[ci skip]
* New translations en.json (Russian)
[ci skip]
* New translations en.json (Polish)
[ci skip]
* New translations en.json (Albanian)
[ci skip]
* New translations en.yml (Albanian)
[ci skip]
* New translations en.json (Greek)
[ci skip]
* New translations en.json (Albanian)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.json (Persian)
[ci skip]
* New translations en.json (Icelandic)
[ci skip]
* New translations en.yml (Icelandic)
[ci skip]
* New translations en.json (Icelandic)
[ci skip]
* New translations en.json (Hungarian)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations en.yml (Portuguese, Brazilian)
[ci skip]
* New translations simple_form.en.yml (Portuguese, Brazilian)
[ci skip]
* New translations en.json (Portuguese, Brazilian)
[ci skip]
* New translations en.yml (Portuguese, Brazilian)
[ci skip]
* New translations simple_form.en.yml (Portuguese, Brazilian)
[ci skip]
* New translations en.yml (Portuguese, Brazilian)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Thai)
[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.yml (Corsican)
[ci skip]
* New translations en.json (Corsican)
[ci skip]
* New translations simple_form.en.yml (Corsican)
[ci skip]
* New translations en.yml (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 en.yml (Portuguese)
[ci skip]
* New translations en.json (Portuguese)
[ci skip]
* New translations en.yml (Portuguese)
[ci skip]
* New translations en.json (Portuguese)
[ci skip]
* New translations en.json (Japanese)
[ci skip]
* New translations en.json (Galician)
[ci skip]
* New translations en.yml (Galician)
[ci skip]
* New translations en.json (Italian)
[ci skip]
* New translations en.yml (Kabyle)
[ci skip]
* New translations en.json (Spanish, Mexico)
[ci skip]
* New translations doorkeeper.en.yml (Spanish, Mexico)
[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.json (Spanish, Mexico)
[ci skip]
* New translations en.yml (Spanish, Mexico)
[ci skip]
* New translations simple_form.en.yml (Spanish, Mexico)
[ci skip]
* New translations doorkeeper.en.yml (Spanish, Mexico)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations doorkeeper.en.yml (Spanish)
[ci skip]
* New translations simple_form.en.yml (Spanish)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations simple_form.en.yml (Spanish, Mexico)
[ci skip]
* New translations en.yml (Spanish, Argentina)
[ci skip]
* New translations en.json (Spanish, Mexico)
[ci skip]
* New translations en.yml (Spanish, Mexico)
[ci skip]
* New translations doorkeeper.en.yml (Spanish, Mexico)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Greek)
[ci skip]
* New translations en.yml (Catalan)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations doorkeeper.en.yml (Spanish)
[ci skip]
* New translations simple_form.en.yml (Spanish)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.yml (Spanish, Argentina)
[ci skip]
* New translations en.yml (Icelandic)
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations en.yml (Portuguese)
[ci skip]
* New translations en.yml (Portuguese)
[ci skip]
* New translations en.yml (Italian)
[ci skip]
* New translations en.yml (Italian)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.yml (Polish)
[ci skip]
* New translations en.yml (Polish)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations en.json (Indonesian)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations en.json (Indonesian)
[ci skip]
* New translations en.yml (Indonesian)
[ci skip]
* New translations en.yml (French)
[ci skip]
* New translations en.yml (Indonesian)
[ci skip]
* New translations simple_form.en.yml (Indonesian)
[ci skip]
* New translations en.yml (Albanian)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* i18n-tasks normalize
* yarn manage:translations
2020-12-19 00:21:01 +01:00
Eugen Rochko
46b249ece6
Fix missing description on enable bootstrap timeline accounts toggle in admin UI ( #15367 )
2020-12-19 00:19:15 +01:00
ThibG
0b3e9c1e4c
Fix resolving accounts sometimes creating duplicate records for a given AP id ( #15364 )
...
* Fix ResolveAccountService accepting mismatching acct: URI
* Set attributes that should be updated regardless of suspension
* Fix key fetching
* Automatically merge remote accounts with duplicate `uri`
* Add tests
* Add "tootctl accounts fix-duplicates"
Finds duplicate accounts sharing a same ActivityPub `id`, re-fetch them and
merge them under the canonical `acct:` URI.
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-18 23:26:26 +01:00
ThibG
82b5e454dc
Fix styling issue on /about when server admin has a long username ( #15357 )
...
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-18 09:43:33 +01:00
Eugen Rochko
e66964d8f0
Fix follow limit preventing re-following of a moved account ( #14207 )
2020-12-18 09:18:31 +01:00
Eugen Rochko
832b70df82
Fix styles for RTL languages and the light theme ( #15356 )
2020-12-18 08:47:36 +01:00
Eugen Rochko
816df80b86
Add option to obfuscate domain name in public list of domain blocks ( #15355 )
...
- Replace the middle of the domain with * characters (except for periods)
- Add SHA-256 digest of the domain name in tooltip
2020-12-18 08:30:41 +01:00
ThibG
509ab82fb2
Improve searching for private toots from URL ( #14856 )
...
* Improve searching for private toots from URL
Most of the time, when sharing toots, people use the toot URL rather than
the toot URI, which makes sense since it is the user-facing URL.
In Mastodon's case, the URL and URI are different, and Mastodon does not
have an index on URL, which means searching a private toot by URL is done
with a slow query that will only succeed for very recent toots.
This change gets rid of the slow query, and attempts to guess the URI from
URL instead, as Mastodon's are predictable.
* Add tests
* Only return status with guessed uri if url matches
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-17 06:51:49 +01:00
Eugen Rochko
d5a3299b4d
New Crowdin updates ( #15220 )
...
* New translations doorkeeper.en.yml (Slovak)
[ci skip]
* New translations simple_form.en.yml (Slovak)
[ci skip]
* New translations en.yml (Slovak)
[ci skip]
* New translations en.json (Slovak)
[ci skip]
* New translations doorkeeper.en.yml (Russian)
[ci skip]
* New translations en.yml (Russian)
[ci skip]
* New translations en.yml (Polish)
[ci skip]
* New translations doorkeeper.en.yml (Portuguese)
[ci skip]
* New translations simple_form.en.yml (Portuguese)
[ci skip]
* New translations en.yml (Portuguese)
[ci skip]
* New translations doorkeeper.en.yml (Polish)
[ci skip]
* New translations simple_form.en.yml (Polish)
[ci skip]
* New translations en.yml (Georgian)
[ci skip]
* New translations doorkeeper.en.yml (Japanese)
[ci skip]
* New translations doorkeeper.en.yml (Catalan)
[ci skip]
* New translations simple_form.en.yml (German)
[ci skip]
* New translations simple_form.en.yml (Basque)
[ci skip]
* New translations en.yml (Basque)
[ci skip]
* New translations en.json (Basque)
[ci skip]
* New translations doorkeeper.en.yml (Greek)
[ci skip]
* New translations en.json (Greek)
[ci skip]
* New translations doorkeeper.en.yml (German)
[ci skip]
* New translations en.yml (German)
[ci skip]
* New translations en.json (Finnish)
[ci skip]
* New translations doorkeeper.en.yml (Danish)
[ci skip]
* New translations simple_form.en.yml (Danish)
[ci skip]
* New translations en.yml (Danish)
[ci skip]
* New translations en.json (Danish)
[ci skip]
* New translations doorkeeper.en.yml (Czech)
[ci skip]
* New translations simple_form.en.yml (Czech)
[ci skip]
* New translations en.yml (Czech)
[ci skip]
* New translations doorkeeper.en.yml (Basque)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations simple_form.en.yml (Japanese)
[ci skip]
* New translations doorkeeper.en.yml (Hungarian)
[ci skip]
* New translations en.json (Japanese)
[ci skip]
* New translations doorkeeper.en.yml (Italian)
[ci skip]
* New translations simple_form.en.yml (Italian)
[ci skip]
* New translations en.yml (Italian)
[ci skip]
* New translations doorkeeper.en.yml (Armenian)
[ci skip]
* New translations simple_form.en.yml (Armenian)
[ci skip]
* New translations simple_form.en.yml (Hungarian)
[ci skip]
* New translations simple_form.en.yml (Finnish)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations doorkeeper.en.yml (Hebrew)
[ci skip]
* New translations simple_form.en.yml (Hebrew)
[ci skip]
* New translations en.yml (Hebrew)
[ci skip]
* New translations en.json (Hebrew)
[ci skip]
* New translations doorkeeper.en.yml (Finnish)
[ci skip]
* New translations simple_form.en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations en.yml (Galician)
[ci skip]
* New translations simple_form.en.yml (Galician)
[ci skip]
* New translations en.yml (Catalan)
[ci skip]
* New translations simple_form.en.yml (Catalan)
[ci skip]
* New translations en.yml (Korean)
[ci skip]
* New translations simple_form.en.yml (Korean)
[ci skip]
* New translations en.yml (Korean)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations simple_form.en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Portuguese)
[ci skip]
* New translations simple_form.en.yml (Portuguese)
[ci skip]
* New translations en.json (Standard Moroccan Tamazight)
[ci skip]
* New translations en.json (Standard Moroccan Tamazight)
[ci skip]
* New translations en.json (Standard Moroccan Tamazight)
[ci skip]
* New translations en.yml (Italian)
[ci skip]
* New translations simple_form.en.yml (Italian)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations simple_form.en.yml (Hungarian)
[ci skip]
* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations simple_form.en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations simple_form.en.yml (Swedish)
[ci skip]
* New translations en.yml (Polish)
[ci skip]
* New translations simple_form.en.yml (Polish)
[ci skip]
* New translations simple_form.en.yml (Russian)
[ci skip]
* New translations en.yml (Sardinian)
[ci skip]
* New translations simple_form.en.yml (Sardinian)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations simple_form.en.yml (Spanish)
[ci skip]
* New translations en.yml (Icelandic)
[ci skip]
* New translations simple_form.en.yml (Icelandic)
[ci skip]
* New translations en.yml (Spanish, Argentina)
[ci skip]
* New translations simple_form.en.yml (Spanish, Argentina)
[ci skip]
* New translations en.yml (German)
[ci skip]
* New translations simple_form.en.yml (German)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations simple_form.en.yml (French)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations simple_form.en.yml (Esperanto)
[ci skip]
* New translations simple_form.en.yml (French)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations simple_form.en.yml (Esperanto)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations en.yml (French)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations simple_form.en.yml (Esperanto)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.yml (Albanian)
[ci skip]
* New translations simple_form.en.yml (Albanian)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.yml (Chinese Traditional)
[ci skip]
* New translations en.yml (Chinese Traditional)
[ci skip]
* New translations simple_form.en.yml (Chinese Traditional)
[ci skip]
* New translations en.yml (Chinese Traditional)
[ci skip]
* New translations simple_form.en.yml (Chinese Traditional)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations simple_form.en.yml (Greek)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations en.json (Esperanto)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations doorkeeper.en.yml (Spanish, Mexico)
[ci skip]
* New translations simple_form.en.yml (Spanish, Mexico)
[ci skip]
* New translations en.yml (Spanish, Mexico)
[ci skip]
* New translations en.json (Spanish, Mexico)
[ci skip]
* New translations doorkeeper.en.yml (Spanish)
[ci skip]
* New translations simple_form.en.yml (Spanish)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations simple_form.en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Korean)
[ci skip]
* New translations doorkeeper.en.yml (Spanish, Mexico)
[ci skip]
* New translations simple_form.en.yml (Spanish, Mexico)
[ci skip]
* New translations en.yml (Spanish, Mexico)
[ci skip]
* New translations en.json (Spanish, Mexico)
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations doorkeeper.en.yml (Spanish)
[ci skip]
* New translations simple_form.en.yml (Spanish)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.yml (Japanese)
[ci skip]
* New translations en.yml (Chinese Traditional)
[ci skip]
* New translations en.json (Japanese)
[ci skip]
* New translations en.yml (Persian)
[ci skip]
* New translations en.yml (Catalan)
[ci skip]
* New translations en.yml (Italian)
[ci skip]
* New translations en.yml (Catalan)
[ci skip]
* New translations en.yml (Korean)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Albanian)
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations en.yml (Spanish, Argentina)
[ci skip]
* New translations en.yml (Icelandic)
[ci skip]
* New translations en.yml (Spanish, Argentina)
[ci skip]
* New translations en.yml (Corsican)
[ci skip]
* New translations en.yml (Icelandic)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.yml (Polish)
[ci skip]
* New translations en.yml (Polish)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Kabyle)
[ci skip]
* New translations en.yml (Indonesian)
[ci skip]
* New translations en.yml (French)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations simple_form.en.yml (Turkish)
[ci skip]
* New translations simple_form.en.yml (Sardinian)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations devise.en.yml (Hungarian)
[ci skip]
* New translations simple_form.en.yml (Sardinian)
[ci skip]
* New translations doorkeeper.en.yml (Spanish, Mexico)
[ci skip]
* New translations simple_form.en.yml (Spanish, Mexico)
[ci skip]
* New translations en.yml (Spanish, Mexico)
[ci skip]
* New translations en.json (Spanish, Mexico)
[ci skip]
* New translations doorkeeper.en.yml (Spanish)
[ci skip]
* New translations simple_form.en.yml (Spanish)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.yml (French)
[ci skip]
* New translations en.yml (Korean)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations en.yml (Greek)
[ci skip]
* New translations en.yml (Galician)
[ci skip]
* New translations doorkeeper.en.yml (Spanish, Mexico)
[ci skip]
* New translations simple_form.en.yml (Spanish, Mexico)
[ci skip]
* New translations en.yml (Spanish, Mexico)
[ci skip]
* New translations en.json (Spanish, Mexico)
[ci skip]
* New translations doorkeeper.en.yml (Spanish)
[ci skip]
* New translations simple_form.en.yml (Spanish)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.yml (German)
[ci skip]
* New translations en.yml (Catalan)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations en.yml (Greek)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations en.yml (Italian)
[ci skip]
* New translations en.json (Standard Moroccan Tamazight)
[ci skip]
* New translations en.yml (Standard Moroccan Tamazight)
[ci skip]
* New translations en.yml (Icelandic)
[ci skip]
* New translations en.yml (Icelandic)
[ci skip]
* New translations en.yml (Albanian)
[ci skip]
* New translations en.yml (Polish)
[ci skip]
* New translations en.yml (Polish)
[ci skip]
* New translations en.yml (Spanish, Argentina)
[ci skip]
* New translations doorkeeper.en.yml (Spanish, Mexico)
[ci skip]
* New translations simple_form.en.yml (Spanish, Mexico)
[ci skip]
* New translations en.yml (Spanish, Mexico)
[ci skip]
* New translations en.json (Spanish, Mexico)
[ci skip]
* New translations doorkeeper.en.yml (Spanish)
[ci skip]
* New translations simple_form.en.yml (Spanish)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.yml (Japanese)
[ci skip]
* New translations en.yml (Japanese)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations en.yml (Polish)
[ci skip]
* New translations en.yml (French)
[ci skip]
* New translations en.yml (Catalan)
[ci skip]
* New translations en.yml (French)
[ci skip]
* New translations en.yml (Spanish, Argentina)
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations simple_form.en.yml (Armenian)
[ci skip]
* New translations en.yml (German)
[ci skip]
* New translations en.yml (Russian)
[ci skip]
* New translations en.yml (Russian)
[ci skip]
* New translations en.json (Persian)
[ci skip]
* New translations en.yml (Italian)
[ci skip]
* New translations en.yml (Persian)
[ci skip]
* New translations simple_form.en.yml (Persian)
[ci skip]
* New translations en.yml (Persian)
[ci skip]
* New translations en.yml (Persian)
[ci skip]
* ran `yarn manage:translations`
* ran `i18n-tasks normalize`
* Ran `yarn manage:translations`
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Korean)
[ci skip]
* Ran `i18n-tasks normalize`
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2020-12-16 03:24:55 +01:00
ThibG
5a4d40dcfa
Change notification permission handling ( #15176 )
...
* Change notification permission handling
- allow changing individual alert settings even if permission is not explicitly
enabled (asks for permission on toggle)
- persist permission request banner dismissal across sessions through settings
* Add additional, more discrete message to grant permissions
* Change permission granting button design according to reviews
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-15 18:43:54 +01:00
ThibG
02bd1060d8
Fix admins being able to suspend their instance actor ( #14567 )
...
* Fix admin being able to suspend their own instance account
* Add text about the instance's own actor in admin view
* Change instance actor notice from flash message to template
* Do not list local instance actor in account moderation list
2020-12-15 17:23:58 +01:00
Eugen Rochko
812f2bdb8f
Change RTL detection to rely on unicode-bidi paragraph by paragraph ( #14573 )
2020-12-15 12:56:43 +01:00
Eugen Rochko
76b0f84cd5
Add stoplight for object storage failures, return HTTP 503 ( #13043 )
2020-12-15 12:55:29 +01:00
Mashiro
9129058192
Add "invite request content" display in user account admin page ( #15265 )
...
* feat: display `invite_request_text` in admin's user account page
* fix: move invite_request to the bottom of accounts page
* fix: remove time display, remove formate, change code terminology
* fix: remove escape
2020-12-15 06:28:14 +01:00
ThibG
3debd888a6
Add indication to admin UI of whether a report has been forwarded ( #13237 )
...
* Add indication to admin UI of whether a report has been forwarded
* Rework how forwarded status is displayed
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-15 04:30:15 +01:00
Marcin Mikołajczak
429d837f80
Add app shortcuts ( #15234 )
...
* Add app shortcuts
Signed-off-by: mkljczk <me@mkljczk.pl>
* Fix codeclimate issues
Signed-off-by: mkljczk <me@mkljczk.pl>
* Change shortcuts
Signed-off-by: mkljczk <me@mkljczk.pl>
* More consistent new-status icon
Signed-off-by: mkljczk <me@mkljczk.pl>
2020-12-15 02:04:56 +01:00
ThibG
64eaaff345
Add ability to require invite request text ( #15326 )
...
Fixes #15273
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-14 10:03:09 +01:00
ThibG
5749bd73ca
Fix dynamic updating of “Bootstrap timeline accounts” admin setting ( #15325 )
...
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-14 09:37:58 +01:00
Eugen Rochko
2d8ee84ed6
Change "Profile unavailable" string to "Account suspended" in web UI ( #15345 )
2020-12-14 09:08:09 +01:00
Eugen Rochko
df8874b24e
Fix performance on instances list in admin UI ( #15282 )
...
- Reduce duplicate queries
- Remove n+1 queries
- Add accounts count to detailed view
- Add separate action log entry for updating existing domain blocks
2020-12-14 09:06:34 +01:00
Eugen Rochko
c2ff16b1ed
Change number format on about page from full to shortened ( #15327 )
2020-12-14 05:09:14 +01:00
ThibG
e1ef5f3b31
Add honeypot fields and minimum fill-out time for sign-up form ( #15276 )
...
* Add honeypot fields to limit non-specialized spam
Add two honeypot fields: a fake website input and a fake password confirmation
one. The label/placeholder/aria-label tells not to fill them, and they are
hidden in CSS, so legitimate users should not fall into these.
This should cut down on some non-Mastodon-specific spambots.
* Require a 3 seconds delay before submitting the registration form
* Fix tests
* Move registration form time check to model validation
* Give people a chance to clear the honeypot fields
* Refactor honeypot translation strings
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-10 06:27:26 +01:00
ThibG
772f525c90
Fix notifications being unnecessarily redrawn on state change ( #15312 )
...
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-09 19:16:30 +01:00
trwnh
eb9be7be0c
rename replies_policy enumerables ( #15304 )
2020-12-09 04:34:17 +01:00
Takeshi Umeda
4de05a3606
Fix missing pictureInPicture prop in detailed status container ( #15309 )
2020-12-09 04:33:33 +01:00
Jeong Arm
46ad37d3a5
Fix open media hotkey ( #15308 )
...
* Fix open media hotkey
* Update status.js
Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
2020-12-09 00:24:13 +01:00
Takeshi Umeda
14b5505c68
Fix the Open handler for PreviewCard ( #15305 )
2020-12-08 12:07:54 +01:00
ThibG
58a3eaccba
Fix column swiping animation logic ( #15301 )
...
From the start, swiping columns was highly unreliable because the logic
could change `ReactSwipeableViews`'s `animateTransitions` property
mid-swipe.
PR #11200 partially fixed this, but at the unintended cost of disabling the
swipe animation altogether.
This PR changes the logic behind `shouldAnimate` to only disable the swiping
animation at the end of a column change not initiated by `ReactSwipeableViews`.
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-07 20:07:24 +01:00
Eugen Rochko
7e7f69dfed
Fix unnecessary re-rendering of various components when typing in web UI ( #15286 )
2020-12-07 19:36:36 +01:00
Eugen Rochko
48534762cf
Fix slow distinct queries where grouped queries are faster ( #15287 )
...
About 2x speed-up on inboxes query
2020-12-07 12:08:30 +01:00
Eugen Rochko
de8c539b7b
Fix not being able to open audio modal in web UI ( #15283 )
...
Fix #15280
Also adds the new action bar and blurhash-based background
color to audio and video modals
2020-12-07 04:29:37 +01:00
Eugen Rochko
905032d903
Fix alert when failing to save timeline markers in web UI ( #15285 )
...
Fix #15267
2020-12-07 03:23:43 +01:00
Eugen Rochko
9d12bbf0e2
Fix too low contrast on new media modal background in web UI ( #15284 )
...
Fix #15258
2020-12-07 02:32:27 +01:00
Takeshi Umeda
c229a3aab7
Fix remove number sign from account_featured_tags ( #15277 )
2020-12-06 05:55:35 +01:00
Takeshi Umeda
fabb864526
Fix incorrect conditions for suspended accounts in Get API for account featured tags ( #15270 )
2020-12-04 04:22:35 +01:00
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.
2020-12-04 02:23:51 +01:00
ThibG
b62b44a0e1
Change public thread view to hide "Show thread" link ( #15266 )
...
Fixes #15262
2020-12-02 21:21:44 +01:00
ThibG
39824d29f1
Fix followers hash cache not being invalidated on account merge ( #15256 )
...
Also clear relationships cache.
2020-12-02 21:20:00 +01:00
Eugen Rochko
9c670a0e7f
Fix `ku` locale not being right-to-left ( #15252 )
2020-11-30 23:02:32 +01:00
Mélanie Chauvel
413526a7b8
Fix character count not ignoring hidden CW field ( #15236 )
2020-11-30 12:09:34 +01:00
Eugen Rochko
a217a14b58
Fix omniauth (SAML/CAS) sign-in routes not having CSRF protection ( #15228 )
2020-11-28 05:17:53 +01:00
Eugen Rochko
c3d62dcf8a
Fix media modal crashing when media has no blurhash ( #15229 )
2020-11-28 03:37:01 +01:00
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)
2020-11-27 15:48:31 +01:00
Eugen Rochko
841c0c9a28
Fix media modal regression on public pages ( #15221 )
2020-11-27 15:41:58 +01:00
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
2020-11-27 03:24:11 +01:00
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>
2020-11-26 22:42:12 +09:00
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>
2020-11-23 17:50:16 +01:00
abcang
144e606ec9
Fixed ESLint error ( #15214 )
...
* eslint --fix
* fix consistent-return
* fix promise/catch-or-return
* ignore import rule
2020-11-23 17:35:14 +01:00
Eugen Rochko
107759e4ee
Remove fade-in animation from modals in web UI ( #15199 )
2020-11-21 23:54:36 +01:00
Eugen Rochko
bcb3a91c0c
Fix hardcoded frame rate for frame by frame video navigation in web UI ( #15198 )
2020-11-21 23:19:04 +01:00
ThibG
da80f4852e
Undo outgoing follows when suspending a remote account ( #15188 )
2020-11-21 21:27:00 +01:00
ThibG
a609802736
Fix not being able to unfavorite toots one has lost access to ( #15192 )
...
Fixes #15191
2020-11-21 06:18:09 +01:00
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
2020-11-19 19:52:06 +01:00
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
2020-11-19 17:48:13 +01:00
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.
2020-11-19 17:40:18 +01:00
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
2020-11-19 17:39:47 +01:00
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.
2020-11-19 17:38:06 +01:00
ThibG
fdab81200a
Fix DMs not appearing into timelines ( #15182 )
...
Fixes #15179
2020-11-19 00:23:46 +01:00
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.
2020-11-18 18:01:58 +01:00
Eugen Rochko
d416f3f662
Fix pop-out player appearing on mobile screens in web UI ( #15157 )
...
Fix #15092
2020-11-16 05:16:39 +01:00
Eugen Rochko
e8facfb2e9
Add hotkeys for audio/video control ( #15158 )
...
Fix #14515
2020-11-15 14:24:54 +01:00
ThibG
53ad960562
Fix AccountDeletionWorker not accepting keyword arguments ( #15152 )
2020-11-13 22:17:04 +01:00
Eugen Rochko
7e2920d9b2
Fix streaming API allowing connections to persist after access token invalidation ( #15111 )
...
Fix #14816
2020-11-12 23:05:24 +01:00
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
2020-11-12 23:05:01 +01:00
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
2020-11-12 18:35:23 +01:00
Takeshi Umeda
f0a79a9fa8
Add interrelationship icon ( #15149 )
...
* Add interrelationship icon
* Fix arrow for rtl
* Fix to predefined color
2020-11-12 17:43:12 +01:00
Takeshi Umeda
1dde6183a3
Add follow selected followers button ( #15148 )
...
* Add follow selected followers button
* Fix unused variable
* Fix i18n normalize
2020-11-12 16:58:00 +01:00
Eugen Rochko
640005d33a
Add button to dismiss desktop notifications permissions banner ( #15141 )
2020-11-11 05:36:29 +01:00
Eugen Rochko
4dccf2c8c8
Remove auto-redirect to direct messages in web UI ( #15142 )
2020-11-11 05:36:22 +01:00
Yamagishi Kazutoshi
02a9e38210
Add missing locales ( #15138 )
2020-11-10 14:44:17 +01:00
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>
2020-11-10 16:53:54 +09:00
Eugen Rochko
f9dfbaf6b2
Fix updating account counters when account_stat is not yet created ( #15108 )
2020-11-09 16:00:23 +01:00
Yamagishi Kazutoshi
c01d043260
Remove unnecessary messages ( #15109 )
...
* Remove unnecessary messages
* ran `i18n-tasks normalize`
2020-11-09 01:43:16 +01:00
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.
2020-11-09 01:41:52 +01:00
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>
2020-11-09 00:56:52 +01:00
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>
2020-11-08 18:29:48 +01:00
Eugen Rochko
38be9af436
Add support for reversible suspensions through ActivityPub ( #14989 )
2020-11-08 00:28:39 +01:00
ThibG
d41433f651
Fix crashes in SuspendAccountService/UnsuspendAccountService ( #15100 )
...
* Fix crashes in SuspendAccountService/UnsuspendAccountService
* Catch filesystem errors
2020-11-07 13:16:54 +01:00
ThibG
c11e8737dd
Fix suspension/unsuspension not working because of FeedManager change ( #15099 )
2020-11-07 13:16:00 +01:00
Eugen Rochko
79f71206de
Add subresource integrity for JS and CSS assets ( #15096 )
...
Fix #2744
2020-11-06 11:56:31 +01:00
Mélanie Chauvel
87042c99ee
Display “Show newer” and “Show older” instead of “Show more” in public pages ( #15052 )
2020-11-04 21:15:45 +01:00
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
2020-11-04 21:15:22 +01:00
Takeshi Umeda
385c2eac6f
Add account sensitized ( #14361 )
...
* Add account sensitized
* Fix i18n normalize
* Fix description and spec
* Fix spec
* Fix wording
2020-11-04 20:45:01 +01:00
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
2020-11-04 20:43:31 +01:00
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>
2020-11-05 02:21:05 +09:00
Mashiro
00c6280294
add mouse scroll lock in image expand view ( #15088 )
...
* add mouse scroll lock in image expand view
* enhancement
2020-11-03 06:06:45 +01:00
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
2020-11-02 21:16:38 +01:00
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
2020-11-01 23:38:31 +01:00
ThibG
2d5f0a0002
Fix some account media gallery items having empty labels ( #15073 )
...
Remove the labels entirely for images instead of putting an empty label.
2020-11-01 18:31:39 +01:00
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.
2020-11-01 06:34:43 +01:00
Darius Kazemi
a0b695b0c6
Show announcements in reverse chronological order ( #15065 )
2020-10-30 13:09:51 +01:00
fuyu
5ba6548e62
Fix wrong seek bar width on media player ( #15060 )
2020-10-30 13:09:20 +01:00
mayaeh
c15c3b01eb
Fix width of content text fluctuating over time ( #15055 )
2020-10-27 13:34:02 +01:00
Mélanie Chauvel
6c072d8dec
Make “Mark media as sensitive” properly translatable ( #15051 )
2020-10-27 03:05:50 +01:00
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
2020-10-27 03:00:47 +01:00
Mélanie Chauvel
c93e98ad47
Sort filters by “keyword or phrase” in Settings ( #15050 )
2020-10-27 03:00:06 +01:00
Mélanie Chauvel
988d029417
Make click area of video/audio player buttons bigger in WebUI ( #15049 )
2020-10-27 02:58:47 +01:00
ThibG
df120d667c
Fix follow request notifications ( #15048 )
2020-10-26 15:41:28 +01:00
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.
2020-10-23 14:22:16 +02:00
ThibG
06aef3817a
Fix account processing failing because of large collections ( #15027 )
...
Fixes #15025
2020-10-23 14:21:31 +02:00
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
2020-10-21 18:04:09 +02:00
abcang
875a771c0b
Removed disabling comments for Style/MethodMissingSuper ( #15014 )
...
* Removed disabling comments for Style/MethodMissingSuper
* Update rubocop for codeclimate
2020-10-20 09:13:39 +02:00
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
2020-10-19 17:02:13 +02:00
mayaeh
20f7e2c452
Fix translation string ( #14986 )
2020-10-16 21:41:43 +02:00
mayaeh
f1b2eea474
Fix strings that could not be translated ( #14980 )
2020-10-15 21:24:58 +02:00
Eugen Rochko
10ff8b1205
Change how missing desktop notifications permission is displayed ( #14985 )
...
Add missing controls for new notification type
2020-10-15 16:24:47 +02:00
Takeshi Umeda
4395de7360
Fix a bear check when the activity object is nil ( #14981 )
2020-10-13 22:41:00 +02:00
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
2020-10-13 01:19:35 +02:00
OSAMU SATO
ba9252b32d
Add duration parameter to muting. ( #13831 )
...
* Adding duration to muting.
* Remove useless checks
2020-10-13 01:01:14 +02:00
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
2020-10-13 00:37:21 +02:00
Eugen Rochko
da4c730c47
Add IP-based rules ( #14963 )
2020-10-12 16:33:49 +02:00
ThibG
bf23bf82bd
Fix issue checking for last unread notification when there are gaps ( #14960 )
2020-10-09 17:12:52 +02:00
ThibG
199107aa25
Fix unread notification marker not updating when mounting column ( #14954 )
2020-10-08 00:35:27 +02:00
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
2020-10-08 00:34:57 +02:00
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.
2020-10-05 22:04:06 +02:00
mayaeh
b04f5d793e
Update translation files ( #14920 )
2020-10-05 02:57:38 +02:00
Eugen Rochko
5c10211bcd
Fix regressions in icon buttons in web UI ( #14915 )
2020-10-04 15:02:36 +02:00
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
2020-10-01 04:17:46 +02:00
ThibG
cbdbe3699c
Fix logging out on mobile ( #14901 )
...
Fixes #14900
2020-09-30 19:31:17 +02:00
ThibG
79b2d30a19
Add option to disable swiping motions across the WebUI ( #13885 )
...
Fixes #13882
2020-09-30 19:31:03 +02:00
Takeshi Umeda
b361c0bac6
Fix unread notification markers ( #14897 )
2020-09-29 15:30:56 +02:00
ThibG
f53281dedb
Fix bell button causing a brief “Cancel follow request” on locked accounts ( #14896 )
2020-09-28 21:44:29 +02:00
Eugen Rochko
fc497420e9
Add pop-out player for audio/video in web UI ( #14870 )
...
Fix #11160
2020-09-28 13:29:43 +02:00
ThibG
1603dc87ac
Add environment variable to allow requests to some private addresses ( #14722 )
2020-09-26 20:57:39 +02:00
ThibG
187c756e16
Add unread notification markers ( #14818 )
...
* Add unread notification markers
Fixes #14804
* Allow IntersectionObserverArticle's children to be updated
2020-09-26 20:57:07 +02:00
Jeremy Rose
4b59090add
add og:published_time to opengraph meta tags ( #14865 )
2020-09-24 23:32:13 +02:00
Takeshi Umeda
67ee32365d
Fix a slow query for TagFeed ( #14861 )
...
* Fix a slow query for TagFeed
* rename tags to tag_ids
2020-09-23 16:01:54 +02:00
Takeshi Umeda
218ea2dedb
Fix method of the DELETE DATA button ( #14855 )
2020-09-21 20:37:19 +02:00
Eugen Rochko
2539d7d655
Fix not being able to enable status notifications in Web Push API ( #14822 )
2020-09-21 17:48:55 +02:00
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
2020-09-18 17:26:45 +02:00
ThibG
219150f197
Fix home TL marker code mishandling gaps ( #14809 )
2020-09-16 20:17:40 +02:00
ThibG
cfb35b767c
Fix notification filter bar incorrectly filtering gaps ( #14808 )
2020-09-16 20:17:16 +02:00
kawaguchi
f13d563cb7
Fix validates :sign_count of WebauthnCredential ( #14806 )
2020-09-16 20:16:46 +02:00
Eugen Rochko
e514304a76
Change account suspensions to be reversible by default ( #14726 )
2020-09-15 14:37:58 +02:00
Eugen Rochko
e0355b5142
Fix unreadable placeholder text color in high contrast theme in web UI ( #14803 )
...
Fix #14717
2020-09-15 09:24:24 +02:00
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
2020-09-14 15:05:22 +02:00
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
2020-09-14 13:04:29 +02:00
Eugen Rochko
face3be227
Fix reported statuses not being included in warning e-mail ( #14778 )
2020-09-13 12:52:17 +02:00
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
2020-09-12 17:09:49 +02:00
Eugen Rochko
403aeeb7e0
Refactor settings controllers ( #14767 )
...
- Disallow suspended accounts from revoking sessions and apps
- Allow suspended accounts to access exports
2020-09-11 20:56:35 +02:00
Eugen Rochko
7fa0da9e98
Change REST API to return empty data for suspended accounts ( #14765 )
2020-09-11 15:16:29 +02:00
ThibG
6c612562f0
Add border around 🕺 emoji ( #14769 )
...
Fixes #14768
2020-09-10 19:08:03 +02:00
Eugen Rochko
acbb99f7e5
Change web UI to show empty profile for suspended accounts ( #14766 )
2020-09-10 00:07:19 +02:00
Eugen Rochko
38aa7a9a7f
Refactor feed manager ( #14761 )
2020-09-08 03:41:16 +02:00
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
2020-09-07 18:00:15 +02:00
abcang
e8c39853ad
Changed tag most_used to recently_used ( #14760 )
2020-09-07 17:47:41 +02:00
Eugen Rochko
78ceda1af6
Refactor how public and tag timelines are queried ( #14728 )
2020-09-07 11:02:04 +02:00
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
2020-09-04 20:22:40 +02:00
Takeshi Umeda
04cbd783b3
Fix direct visibility style for light theme ( #14727 )
2020-09-04 08:49:56 +02:00
ThibG
1a3405005a
Add outbox attribute to instance actor ( #14721 )
...
It's not useful for now, but it's required by ActivityPub
2020-09-02 18:42:50 +02:00
Takeshi Umeda
cb37bd63dc
Added account featured tags API ( #11817 )
2020-09-02 02:13:10 +02:00
Eugen Rochko
c6ad9aae69
Add featured hashtags as an ActivityPub collection ( #11595 )
2020-09-02 02:11:12 +02:00
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
2020-09-01 13:31:28 +02:00
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
2020-09-01 13:30:42 +02:00
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>
2020-09-01 03:04:00 +02:00
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
2020-09-01 00:26:10 +02:00
ThibG
a3c9062153
Add border around 🐞 emoji ( #14712 )
2020-08-31 23:30:27 +02:00
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.
2020-08-31 18:11:37 +02:00
Takeshi Umeda
74eb6f3a24
Fix limited follower id in fan-out-on-write service ( #14709 )
2020-08-31 18:11:27 +02:00
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.
2020-08-31 12:47:09 +02:00
Eugen Rochko
e8d1656bd6
Add support for dereferencing objects through bearcaps ( #14683 )
2020-08-30 12:34:20 +02:00
Eugen Rochko
d0fecf89d5
Fix inefficiencies in fan-out-on-write service ( #14682 )
2020-08-30 12:33:59 +02:00
Eugen Rochko
97762d28b6
Fix videos with near-60 fps being rejected ( #14684 )
...
Fix #14668
2020-08-30 01:54:30 +02:00
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.
2020-08-28 12:31:56 +02:00
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.
2020-08-28 12:30:23 +02:00
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.
2020-08-28 12:29:59 +02:00
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.
2020-08-28 09:27:33 +02:00
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.
2020-08-25 13:39:35 +02:00
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.
2020-08-24 18:21:07 +02:00
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.
2020-08-24 16:56:21 +02:00
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>
2020-08-24 16:46:27 +02:00
Tdxdxoz
c950a85d9e
Fix: also use custom private boost icon for detailed status ( #14471 )
...
* use custom private boost icon for detail status
* only use className
2020-08-24 14:13:44 +02:00
ThibG
4468fce63c
Add support for inlined objects in activity audience ( #14514 )
...
* Add support for inlined objects in activity audience
* Add tests
2020-08-24 14:11:47 +02:00
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.
2020-08-24 14:06:45 +02:00
proxy
a455c84892
reword "boost to original audience" as per #14596 ( #14598 )
2020-08-23 00:08:31 +02:00
Takeshi Umeda
58f40e0786
Fix click range discrepancies in gifv ( #14615 )
2020-08-23 00:08:12 +02:00
ThibG
b4d2063384
Fix scrolling issues when closing some dropdown menus ( #14606 )
2020-08-21 14:14:28 +02:00
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
2020-08-19 19:02:06 +02:00
ThibG
9a6ec27a87
Fix client-side form validation not accepting handles with uppercase letters ( #14599 )
2020-08-19 19:00:47 +02:00
ThibG
191fc742e9
Fix hardcoded non-breaking space in public view ( #14568 )
2020-08-13 12:04:28 +02:00
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
2020-08-12 12:40:25 +02:00
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
2020-08-12 12:11:15 +02:00
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
2020-08-11 23:09:13 +02:00
Eugen Rochko
3d32dacbcb
Add support for managing multiple stream subscriptions in a single connection ( #14524 )
2020-08-11 18:24:59 +02:00
niwatori24
65c9d28fa1
Cache result of SQL ( #14534 )
2020-08-09 15:23:42 +02:00
ThibG
09b322872a
Fix crash when failing to load emoji picker ( #14525 )
...
Fixes #14523
2020-08-08 17:57:56 +02:00
abcang
739ea05d30
Fix eslint error ( #14521 )
2020-08-07 10:40:33 +02:00
ThibG
ed22b53180
Fallback to previous, more approximative hashtag RE on older browsers ( #14513 )
...
Fixes #14511
2020-08-05 22:39:14 +02:00
ThibG
be88d4f851
Fix audio/video player not using CDN_HOST in media paths on public pages ( #14486 )
2020-08-02 19:03:10 +02:00
ThibG
62324e9870
Fix audio player on Safari ( #14485 )
2020-08-02 18:47:09 +02:00
ThibG
bc1d925629
Fix disabled boost icon being replaced by private boost icon on hover ( #14456 )
...
Fixes #14455
2020-08-02 11:21:28 +02:00
ThibG
1f34bd4ff7
Fix new audio player features not working on Safari ( #14465 )
...
Fixes #14462
2020-08-02 11:20:17 +02:00
ThibG
9a709d63c2
Fix wrong proptypes for onEditAccountNote ( #14481 )
...
Also add missing PropTypes to the correct component
Fixes #14478
2020-08-02 11:20:02 +02:00
kedama
a903875e3c
Fix the hashtag judgment of the compose form to be the same as the server side ( #14484 )
2020-08-02 11:19:43 +02:00
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
2020-08-01 18:20:37 +02:00
Takeshi Umeda
381ecf1d0b
Fix following restriction not working when exact match in account search ( #14394 )
2020-07-26 23:58:36 +02:00