Alex Stine
da61f78ef3
Fix hidden label causing accessibility issue for search inputs ( #21275 )
...
* Try unhiding search label.
* Use aria-label. Remove label as empty labels are useless.
* Remove addition of package-lock.json.
2023-02-12 18:01:42 -07:00
Jeremy Kescher
f34fc9d97a
Fix being unable to react with the keycap number sign emoji ( #22231 )
...
#⃣
This bug is caused by the emoji consisting of:
U+23 #
U+FE0F
U+20E3 ⃣
Because it starts with a #, it's interpreted as an anchor link, which is not passed to the API. Therefore, the API sees no emoji to react with and answers correctly with a 404.
2023-02-12 18:01:42 -07:00
nametoolong
f876823f6b
Fix N+1 queries from in NotificationsController ( #21202 )
...
Co-authored-by: Nonexistent <nx@example.org>
2023-02-12 18:01:42 -07:00
luzpaz
e5f43e3e7c
Fix typos in source documentation ( #21046 )
...
Fixed 2 source comment/documentation typos
2023-02-12 18:01:41 -07:00
Riedler
a540891aba
Fix profile avatar being slightly offset into left border ( fixes #20822 ) ( #20994 )
...
* hotfix for #20822
I don't know why it was shifted in the first place or why the width is specified twice, but this fixes the problem, so it looks fine to me.
* realigned pfp with content below
* fixed formatting
my bad
* added comment to explain the negative margin
before I forget - comments are *important* !
Co-authored-by: Riedler <riedler@gelse.eu>
2023-02-12 18:01:41 -07:00
s0
422b915409
Fix crash in elasticsearch_check.rb ( #21006 )
...
Nil unwrap causes the admin dashboard to crash/500 when the Chewy client info version number value is nil.
This occurs when running another ES-compatible backend such as MeiliSearch.
Obviously it would be good for chewy to recognise upstream but at least avoiding the crash would be fine.
2023-02-12 18:01:41 -07:00
Effy Elden
9f7ba59186
Allow adding relays while secure mode & limited federation mode are enabled ( #22324 )
2023-02-12 18:01:41 -07:00
Claire
2338f07045
Fix invalid CSS for links in warning and strike cards ( #22302 )
2023-02-12 18:01:41 -07:00
Jeong Arm
840617b413
Don't delivery a reply to domains which are blocked by author ( #22117 )
...
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2023-02-12 18:01:41 -07:00
Claire
cbc35c8a40
Fix missing Javascript in domain block import confirmation page ( #21471 )
...
Follow-up to #20597
2023-02-12 18:01:40 -07:00
Francis Murillo
3b810803ca
Revoke all authorized applications on password reset ( #21325 )
...
* Clear sessions on password change
* Rename User::clear_sessions to revoke_access for a clearer meaning
* Add reset paassword controller test
* Use User.find instead of User.find_for_authentication for reset password test
* Use redirect and render for better test meaning in reset password
Co-authored-by: Effy Elden <effy@effy.space>
2023-02-12 18:01:40 -07:00
Claire
8d74eb57dc
Change dropdown menu to contain “Copy link to post” even for non-public posts ( #21316 )
...
Fixes #21244
2023-02-12 18:01:40 -07:00
Claire
da40b111b3
Allow admins to refresh remotely-suspended accounts ( #22327 )
...
* Change suspension text to mention that a remotely suspended account is not locally-suspended
* Add ability to refresh profile of remotely suspended accounts
2023-02-12 18:01:40 -07:00
Claire
05dbf5a792
Fix wasteful request to /api/v1/custom_emojis when not logged in ( #22326 )
2023-02-12 18:01:40 -07:00
zunda
be71014dfb
Add single splat to callback method definitions to avoid ArgumentError ( #22246 )
...
It looks like a [bug](https://bugs.ruby-lang.org/issues/18633 ) around
autosplat is [fixed](fbaadd1cfe
)
on ruby-3.2.0-rc1 and breaks a test (but not on ruby <= 3.1.3):
```
$ bundle exec rspec ./spec/controllers/api/v1/emails/confirmations_controller_spec.rb:41
:
1) Api::V1::Emails::ConfirmationsController#create with an oauth token from an app that created the account when the account is already confirmed but user changed e-mail and has not confirmed it returns http success
Failure/Error:
def email_changed(user, **)
@resource = user
@instance = Rails.configuration.x.local_domain
return unless @resource.active_for_authentication?
I18n.with_locale(locale) do
mail to: @resource.email, subject: I18n.t('devise.mailer.email_changed.subject')
end
end
ArgumentError:
wrong number of arguments (given 2, expected 1)
# ./app/mailers/user_mailer.rb:51:in `email_changed'
# ./app/models/user.rb:444:in `render_and_send_devise_message'
# ./app/models/user.rb:430:in `block in send_pending_devise_notifications'
# ./app/models/user.rb:429:in `each'
# ./app/models/user.rb:429:in `send_pending_devise_notifications'
# ./spec/controllers/api/v1/emails/confirmations_controller_spec.rb:38:in `block (7 levels) in <top (required)>'
```
2023-02-12 18:01:39 -07:00
Rin
6ca0d8f26c
fix missing style in warning and strike cards ( #22177 )
2023-02-12 18:01:39 -07:00
cadars
0792836677
Make handle more easily selectable on profile page ( #21479 )
...
* Make handle more easily selectable on profile page
* Wrap handle in a span
* Add `user-select: all` to span
* remove whitespace
2023-02-12 18:01:39 -07:00
Claire
485e4766fb
Change default reply language to be default language when replying to a translated reply ( #22272 )
...
Fixes #22250
2023-02-12 18:01:38 -07:00
prplecake
004157e03a
Add noindex setting to Admin settings Discovery page ( #22205 )
...
* Add noindex setting to Admin settings Discovery page
* Replace default_noindex i18n
2023-02-12 18:01:38 -07:00
Eugen Rochko
2dd5769d63
New Crowdin updates ( #21954 )
...
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Serbian (Latin))
* New translations en.yml (Serbian (Latin))
* New translations simple_form.en.yml (Serbian (Latin))
* New translations activerecord.en.yml (Serbian (Latin))
* New translations doorkeeper.en.yml (Serbian (Latin))
* New translations devise.en.yml (Serbian (Latin))
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Chinese Traditional)
* New translations en.json (Serbian (Latin))
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Icelandic)
* New translations en.json (Serbian (Latin))
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Serbian (Latin))
* New translations en.json (Malay)
* New translations en.json (Malay)
* New translations activerecord.en.yml (Malay)
* New translations devise.en.yml (Malay)
* New translations en.yml (Malay)
* New translations en.yml (Arabic)
* New translations en.yml (Greek)
* New translations en.yml (Galician)
* New translations simple_form.en.yml (Malay)
* New translations en.yml (Greek)
* New translations en.yml (Russian)
* New translations en.yml (Belarusian)
* New translations en.yml (Greek)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Greek)
* New translations en.json (Greek)
* New translations en.yml (Greek)
* New translations en.yml (Belarusian)
* New translations doorkeeper.en.yml (Greek)
* New translations en.yml (Greek)
* New translations en.yml (Malay)
* New translations simple_form.en.yml (Malay)
* New translations en.json (Esperanto)
* New translations en.yml (Malay)
* New translations en.yml (Esperanto)
* New translations devise.en.yml (Esperanto)
* New translations en.yml (Vietnamese)
* New translations simple_form.en.yml (Vietnamese)
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Serbian (Latin))
* New translations en.yml (Belarusian)
* New translations en.yml (Vietnamese)
* New translations en.yml (Belarusian)
* New translations en.yml (Kurmanji (Kurdish))
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Serbian (Latin))
* New translations en.json (Occitan)
* New translations en.json (Czech)
* New translations en.yml (Hebrew)
* New translations doorkeeper.en.yml (Spanish, Argentina)
* New translations en.json (German)
* New translations en.yml (Spanish, Argentina)
* New translations en.json (German)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations en.json (German)
* New translations en.json (Esperanto)
* New translations en.yml (Esperanto)
* New translations en.yml (Esperanto)
* New translations en.yml (Thai)
* New translations activerecord.en.yml (Scots)
* New translations en.json (Scottish Gaelic)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.json (Latvian)
* New translations en.json (Latvian)
* New translations activerecord.en.yml (Latvian)
* New translations devise.en.yml (Latvian)
* New translations en.yml (Turkish)
* New translations en.yml (Scottish Gaelic)
* New translations en.yml (Danish)
* New translations en.yml (Thai)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Thai)
* New translations en.yml (Thai)
* New translations en.json (Thai)
* New translations en.yml (German)
* New translations en.yml (German)
* New translations simple_form.en.yml (German)
* New translations en.json (Kurmanji (Kurdish))
* New translations en.json (Kurmanji (Kurdish))
* New translations en.yml (Belarusian)
* New translations en.yml (Kurmanji (Kurdish))
* New translations en.json (Latvian)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations en.yml (Belarusian)
* New translations en.yml (German)
* New translations en.json (German)
* New translations simple_form.en.yml (German)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations simple_form.en.yml (Spanish, Argentina)
* New translations en.yml (German)
* New translations en.json (German)
* New translations en.yml (Spanish, Argentina)
* New translations en.yml (Persian)
* New translations en.json (Spanish, Mexico)
* New translations en.yml (Belarusian)
* New translations en.yml (German)
* New translations en.json (Danish)
* New translations en.yml (Danish)
* New translations simple_form.en.yml (Scots)
* New translations en.yml (Belarusian)
* New translations en.yml (Danish)
* New translations en.yml (Scots)
* New translations simple_form.en.yml (Scots)
* New translations en.json (Scots)
* New translations devise.en.yml (Scots)
* New translations doorkeeper.en.yml (Scots)
* New translations en.yml (Greek)
* New translations en.yml (Greek)
* New translations en.yml (Belarusian)
* New translations en.json (German)
* New translations en.yml (Belarusian)
* New translations en.yml (Spanish, Argentina)
* New translations en.json (Spanish, Argentina)
* New translations en.json (German)
* New translations en.json (Esperanto)
* New translations en.json (French)
* New translations en.yml (Esperanto)
* New translations en.yml (Belarusian)
* New translations en.json (Esperanto)
* New translations en.yml (Esperanto)
* New translations en.yml (Belarusian)
* New translations devise.en.yml (Esperanto)
* New translations en.json (Slovak)
* New translations en.yml (Slovak)
* New translations activerecord.en.yml (Slovak)
* New translations devise.en.yml (Slovak)
* New translations doorkeeper.en.yml (Slovak)
* New translations en.yml (Belarusian)
* New translations en.yml (Slovak)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.json (Lithuanian)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations en.json (Esperanto)
* New translations en.json (Vietnamese)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.yml (Latvian)
* New translations en.yml (Belarusian)
* New translations en.json (Welsh)
* New translations en.yml (Welsh)
* New translations simple_form.en.yml (Welsh)
* New translations activerecord.en.yml (Welsh)
* New translations devise.en.yml (Welsh)
* New translations doorkeeper.en.yml (Welsh)
* New translations en.json (Welsh)
* New translations en.json (Welsh)
* New translations en.yml (Welsh)
* New translations en.yml (Hebrew)
* New translations en.yml (Welsh)
* New translations en.yml (Hebrew)
* New translations en.yml (Russian)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations simple_form.en.yml (Belarusian)
* New translations en.yml (Ukrainian)
* New translations en.json (Ukrainian)
* New translations en.json (Chinese Simplified)
* New translations en.json (Slovak)
* New translations en.json (Slovak)
* New translations en.yml (Slovak)
* New translations en.yml (Belarusian)
* normalize
* New translations en.yml (Belarusian)
* normalize
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2023-02-12 18:01:37 -07:00
Claire
2c5dc7fb03
Fix failure when “Require a reason to join” is set with open registrations ( #22127 )
2023-02-12 18:01:37 -07:00
Claire
6e08644b76
Fix potential duplicate statuses in Explore tab ( #22121 )
2023-02-12 18:01:36 -07:00
Claire
b9f93096be
Fix 500 error when trying to migrate to an invalid address ( #21462 )
...
* Fix 500 error when trying to migrate to an invalid address
* Add tests
2023-02-12 18:01:36 -07:00
Juan Xavier Gomez
8b379be89d
Fix hidden overflow on interaction modal ( #21763 )
...
* Fix hidden overflow on interaction modal
* only update overflow y
2023-02-12 18:01:36 -07:00
Claire
eac10b4291
Fix UI header overflow on mobile ( #21783 )
2023-02-12 18:01:36 -07:00
Claire
a29752ac86
Fix “Sign up” button with closed registrations not opening modal on mobile ( #22060 )
...
Fixes #20840
2023-02-12 18:01:36 -07:00
Francis Murillo
f63da82ca9
Log admin approve and reject account ( #22088 )
...
* Log admin approve and reject account
* Add unit tests for approve and reject logging
2023-02-12 18:01:36 -07:00
Claire
b55a26e63c
Fix unbounded recursion in account discovery ( #22025 )
...
* Fix trying to fetch posts from other users when fetching featured posts
* Rate-limit discovery of new subdomains
* Put a limit on recursively discovering new accounts
2023-02-12 18:01:35 -07:00
Claire
71ed1a384d
Fix irreversible and whole_word parameters handling in /api/v1/filters ( #21988 )
...
Fixes #21965
2023-02-12 18:01:35 -07:00
Jed Fox
ea009246d6
Fix the top border of verified account fields ( #22006 )
2023-02-12 18:01:35 -07:00
Nick Schonning
ba3348b882
Fix spacing warning from ESLint ( #22005 )
2023-02-12 18:01:35 -07:00
Eugen Rochko
d1ade00719
New Crowdin updates ( #21599 )
...
* New translations doorkeeper.en.yml (Esperanto)
* New translations activerecord.en.yml (Spanish)
* New translations activerecord.en.yml (Esperanto)
* New translations doorkeeper.en.yml (Spanish)
* New translations devise.en.yml (Spanish)
* New translations devise.en.yml (Esperanto)
* New translations en.json (Spanish)
* New translations en.yml (Danish)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Faroese)
* New translations en.yml (Faroese)
* New translations en.json (German)
* New translations en.yml (Faroese)
* New translations simple_form.en.yml (Faroese)
* New translations en.yml (Belarusian)
* New translations en.yml (German)
* New translations en.json (German)
* New translations simple_form.en.yml (Faroese)
* New translations en.yml (Belarusian)
* New translations doorkeeper.en.yml (Belarusian)
* New translations en.yml (German)
* New translations en.json (Bulgarian)
* New translations en.json (German)
* New translations en.yml (Bulgarian)
* New translations simple_form.en.yml (Bulgarian)
* New translations doorkeeper.en.yml (Bulgarian)
* New translations en.json (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations en.json (Czech)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Serbian (Cyrillic))
* New translations simple_form.en.yml (Faroese)
* New translations devise.en.yml (Catalan)
* New translations en.yml (German)
* New translations en.json (Bulgarian)
* New translations en.json (German)
* New translations en.json (Catalan)
* New translations en.yml (Catalan)
* New translations en.json (Danish)
* New translations en.json (Ukrainian)
* New translations en.json (Galician)
* New translations doorkeeper.en.yml (Catalan)
* New translations simple_form.en.yml (German)
* New translations en.json (Danish)
* New translations en.yml (English, United Kingdom)
* New translations simple_form.en.yml (Faroese)
* New translations en.json (Danish)
* New translations en.yml (Japanese)
* New translations en.yml (German)
* New translations en.json (Urdu (Pakistan))
* New translations simple_form.en.yml (German)
* New translations simple_form.en.yml (Faroese)
* New translations en.yml (German)
* New translations en.json (Urdu (Pakistan))
* New translations simple_form.en.yml (Faroese)
* New translations simple_form.en.yml (Faroese)
* New translations en.json (Scots)
* New translations activerecord.en.yml (Scots)
* New translations en.json (Finnish)
* New translations en.json (Finnish)
* New translations en.json (Asturian)
* New translations en.yml (Asturian)
* New translations simple_form.en.yml (Asturian)
* New translations activerecord.en.yml (Asturian)
* New translations devise.en.yml (Asturian)
* New translations doorkeeper.en.yml (Asturian)
* New translations en.yml (Belarusian)
* New translations en.json (Romanian)
* New translations en.json (Galician)
* New translations en.yml (Galician)
* New translations doorkeeper.en.yml (Romanian)
* New translations doorkeeper.en.yml (Galician)
* New translations activerecord.en.yml (Romanian)
* New translations en.yml (Russian)
* New translations en.yml (Estonian)
* New translations en.yml (Estonian)
* New translations devise.en.yml (Estonian)
* New translations en.json (Czech)
* New translations en.yml (Bulgarian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Serbian (Cyrillic))
* New translations en.json (Galician)
* New translations en.yml (Galician)
* New translations en.json (Breton)
* New translations simple_form.en.yml (Bulgarian)
* New translations doorkeeper.en.yml (Bulgarian)
* New translations simple_form.en.yml (Galician)
* New translations devise.en.yml (Italian)
* New translations en.json (Bulgarian)
* New translations en.yml (Bulgarian)
* New translations simple_form.en.yml (Bulgarian)
* New translations doorkeeper.en.yml (Bulgarian)
* New translations devise.en.yml (Italian)
* New translations en.json (Serbian (Cyrillic))
* New translations doorkeeper.en.yml (Italian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Chinese Traditional, Hong Kong)
* New translations en.yml (Chinese Traditional, Hong Kong)
* New translations en.json (Serbian (Latin))
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations doorkeeper.en.yml (Italian)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Serbian (Cyrillic))
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations simple_form.en.yml (Asturian)
* New translations en.yml (Asturian)
* New translations simple_form.en.yml (Asturian)
* New translations en.json (Thai)
* New translations en.yml (Thai)
* New translations en.json (Thai)
* New translations en.yml (Thai)
* New translations en.yml (Czech)
* New translations en.json (Czech)
* New translations simple_form.en.yml (Czech)
* New translations doorkeeper.en.yml (Czech)
* New translations en.yml (Belarusian)
* New translations en.yml (Thai)
* New translations en.json (English, United Kingdom)
* New translations en.yml (Belarusian)
* New translations en.yml (Thai)
* New translations en.yml (Estonian)
* New translations en.yml (Thai)
* New translations en.json (Thai)
* New translations en.yml (German)
* New translations en.json (Russian)
* New translations en.yml (Icelandic)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations en.yml (Belarusian)
* New translations en.yml (Thai)
* New translations en.json (Esperanto)
* New translations en.yml (Esperanto)
* New translations simple_form.en.yml (Esperanto)
* New translations en.yml (Thai)
* New translations en.json (Esperanto)
* New translations en.yml (Thai)
* New translations en.yml (Belarusian)
* New translations en.yml (Thai)
* New translations en.json (Icelandic)
* New translations en.yml (Icelandic)
* New translations simple_form.en.yml (Icelandic)
* New translations doorkeeper.en.yml (Icelandic)
* New translations en.yml (Belarusian)
* New translations activerecord.en.yml (Icelandic)
* New translations devise.en.yml (Icelandic)
* New translations en.yml (Thai)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations doorkeeper.en.yml (Estonian)
* New translations en.yml (Belarusian)
* New translations en.yml (Thai)
* New translations en.yml (Belarusian)
* New translations en.json (Bulgarian)
* New translations en.yml (Bulgarian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Bulgarian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Estonian)
* New translations en.json (Ukrainian)
* New translations en.yml (Estonian)
* New translations en.json (Esperanto)
* New translations en.yml (Estonian)
* New translations en.yml (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.json (Persian)
* New translations en.yml (Belarusian)
* New translations en.json (Esperanto)
* New translations en.json (Greek)
* New translations en.json (Persian)
* New translations en.json (Scots)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Thai)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations doorkeeper.en.yml (Estonian)
* New translations en.yml (German)
* New translations en.json (German)
* New translations en.json (Finnish)
* New translations en.yml (Estonian)
* New translations en.yml (German)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (German)
* New translations simple_form.en.yml (Estonian)
* New translations devise.en.yml (German)
* New translations simple_form.en.yml (German)
* New translations en.yml (Finnish)
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations doorkeeper.en.yml (Estonian)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.json (Spanish)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Thai)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations simple_form.en.yml (Icelandic)
* New translations en.yml (German)
* New translations en.yml (Ukrainian)
* New translations en.json (Spanish, Mexico)
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Spanish, Mexico)
* New translations activerecord.en.yml (Spanish, Mexico)
* New translations en.json (German)
* New translations en.yml (Thai)
* New translations en.json (Thai)
* New translations en.json (Korean)
* New translations en.json (Scottish Gaelic)
* New translations en.yml (Scottish Gaelic)
* New translations en.yml (Thai)
* New translations en.yml (Japanese)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Belarusian)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Estonian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Italian)
* New translations en.yml (Italian)
* New translations en.json (Kurmanji (Kurdish))
* New translations en.yml (Spanish)
* New translations en.yml (Spanish, Mexico)
* New translations en.yml (Latvian)
* New translations simple_form.en.yml (Latvian)
* New translations en.yml (Belarusian)
* New translations en.json (Serbian (Cyrillic))
* New translations simple_form.en.yml (Serbian (Cyrillic))
* normalize
* New translations en.json (German)
* New translations en.json (Serbian (Cyrillic))
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2023-02-12 18:01:31 -07:00
Claire
82b249810c
Fix some performance issues with /admin/instances ( #21907 )
...
/admin/instances?availability=failing remains wholly unefficient
2023-02-12 18:01:30 -07:00
Claire
441722afc9
Fix expanded statuses not always being scrolled into view ( #21797 )
2023-02-12 18:01:30 -07:00
Connor Shea
86b2f41f33
Make the 'Trending now' header a link to Explore. ( #21759 )
...
This keeps the same design that exists currently, but makes "Trending
now" into a link to the Hashtags section of "Explore".
Resolves #21758 .
2023-02-12 18:01:30 -07:00
Claire
d5d26fdea3
Fix infinite loading instead of soft 404 for non-existing remote accounts ( #21303 )
...
Fixes #21278 , #21021
2023-02-12 18:01:30 -07:00
Claire
556d8040d5
Fix spaces not being stripped in admin account search ( #21324 )
...
Fixes #21058
Regression from #18641
2023-02-12 18:01:29 -07:00
James Adney
72d1d6f6ec
fix gif autoplay on iOS ( #21422 )
2023-02-12 18:01:29 -07:00
Bramus!
ab8b44b308
Add user profile OG tag on status page ( #21423 )
2023-02-12 18:01:29 -07:00
Claire
56a03f60e6
Remove LDSignature on actor Delete activities ( #21466 )
...
They are currently not used for anything and represent more than half of the
payload size.
2023-02-12 18:01:29 -07:00
Claire
23870aeea4
Fix “Share @{name}'s profile” profile menu item ( #21490 )
2023-02-12 18:01:29 -07:00
Kaspar V
f6b397ef09
refactor(vacuum statuses): reduce amount of db queries and load for each query - improve performance ( #21487 )
...
* refactor(statuses_vacuum): remove dead code - unused
Method is not called inside class and private.
Clean up dead code.
* refactor(statuses_vacuum): make retention_period present test explicit
This private method only hides functionality.
It is best practice to be as explicit as possible.
* refactor(statuses_vacuum): improve query performance
- fix statuses_scope having sub-select for Account.remote scope by
`joins(:account).merge(Account.remote)`
- fix statuses_scope unnecessary use of `Status.arel_table[:id].lt`
because it is inexplicit, bad practice and even slower than normal
`.where('statuses.id < ?'`
- fix statuses_scope remove select(:id, :visibility) for having reusable
active record query batches (no re queries)
- fix vacuum_statuses! to use in_batches instead of find_in_batches,
because in_batches delivers a full blown active record query result,
in stead of an array - no requeries necessary
- send(:unlink_from_conversations) not to perform another db query, but
reuse the in_batches result instead.
- remove now obsolete remove_from_account_conversations method
- remove_from_search_index uses array of ids, instead of mapping
the ids from an array - this should be more efficient
- use the in_batches scope to call delete_all, instead of running
another db query for this - because it is again more efficient
- add TODO comment for calling models private method with send
* refactor(status): simplify unlink_from_conversations
- add `has_many through:` relation mentioned_accounts
- use model scope local instead of method call `Status#local?`
- more readable add account to inbox_owners when account.local?
* refactor(status): searchable_by way less sub selects
These queries all included a sub-select. Doing the same with a joins
should be more efficient.
Since this method does 5 such queries, this should be significant,
since it technically halves the query count.
This is how it was:
```ruby
[3] pry(main)> Status.first.mentions.where(account: Account.local, silent: false).explain
Status Load (1.6ms) SELECT "statuses".* FROM "statuses" WHERE "statuses"."deleted_at" IS NULL ORDER BY "statuses"."id" DESC LIMIT $1 [["LIMIT", 1]]
Mention Load (1.5ms) SELECT "mentions".* FROM "mentions" WHERE "mentions"."status_id" = $1 AND "mentions"."account_id" IN (SELECT "accounts"."id" FROM "accounts" WHERE "accounts"."domain" IS NULL) AND "mentions"."silent" = $2 [["status_id", 109382923142288414], ["silent", false]]
=> EXPLAIN for: SELECT "mentions".* FROM "mentions" WHERE "mentions"."status_id" = $1 AND "mentions"."account_id" IN (SELECT "accounts"."id" FROM "accounts" WHERE "accounts"."domain" IS NULL) AND "mentions"."silent" = $2 [["status_id", 109382923142288414], ["silent", false]]
QUERY PLAN
------------------------------------------------------------------------------------------------------------------
Nested Loop (cost=0.15..23.08 rows=1 width=41)
-> Seq Scan on accounts (cost=0.00..10.90 rows=1 width=8)
Filter: (domain IS NULL)
-> Index Scan using index_mentions_on_account_id_and_status_id on mentions (cost=0.15..8.17 rows=1 width=41)
Index Cond: ((account_id = accounts.id) AND (status_id = '109382923142288414'::bigint))
Filter: (NOT silent)
(6 rows)
```
This is how it is with this change:
```ruby
[4] pry(main)> Status.first.mentions.joins(:account).merge(Account.local).active.explain
Status Load (1.7ms) SELECT "statuses".* FROM "statuses" WHERE "statuses"."deleted_at" IS NULL ORDER BY "statuses"."id" DESC LIMIT $1 [["LIMIT", 1]]
Mention Load (0.7ms) SELECT "mentions".* FROM "mentions" INNER JOIN "accounts" ON "accounts"."id" = "mentions"."account_id" WHERE "mentions"."status_id" = $1 AND "accounts"."domain" IS NULL AND "mentions"."silent" = $2 [["status_id", 109382923142288414], ["silent", false]]
=> EXPLAIN for: SELECT "mentions".* FROM "mentions" INNER JOIN "accounts" ON "accounts"."id" = "mentions"."account_id" WHERE "mentions"."status_id" = $1 AND "accounts"."domain" IS NULL AND "mentions"."silent" = $2 [["status_id", 109382923142288414], ["silent", false]]
QUERY PLAN
------------------------------------------------------------------------------------------------------------------
Nested Loop (cost=0.15..23.08 rows=1 width=41)
-> Seq Scan on accounts (cost=0.00..10.90 rows=1 width=8)
Filter: (domain IS NULL)
-> Index Scan using index_mentions_on_account_id_and_status_id on mentions (cost=0.15..8.17 rows=1 width=41)
Index Cond: ((account_id = accounts.id) AND (status_id = '109382923142288414'::bigint))
Filter: (NOT silent)
(6 rows)
```
2023-02-12 18:01:29 -07:00
Claire
dd6a70ee04
Fix attachments of edited statuses not being fetched ( #21565 )
...
* Fix attachments of edited statuses not being fetched
* Fix tests
2023-02-12 18:01:29 -07:00
kedama
e764174fe5
Fix status mismatch of sensitive check ( #21724 )
2023-02-12 18:01:28 -07:00
afontenot
fe454f0d28
Clear voter count when poll is reset ( #21700 )
...
When a poll is edited, we reset the poll and remove all previous
votes. However, prior to this commit, the voter count on the poll
was not reset. This leads to incorrect percentages being shown in
poll results.
Fixes #21696
2023-02-12 18:01:28 -07:00
Skyler Hawthorne
587d3feccd
fix media uploads with ffmpeg 5 ( #21191 )
2023-02-12 18:01:26 -07:00
Eugen Rochko
12b802e871
New Crowdin updates ( #20942 )
...
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations doorkeeper.en.yml (Belarusian)
* New translations devise.en.yml (Finnish)
* New translations en.json (Norwegian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Esperanto)
* New translations en.yml (Scots)
* New translations en.yml (Italian)
* New translations en.json (Welsh)
* New translations en.yml (Welsh)
* New translations en.yml (Esperanto)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations en.yml (German)
* New translations simple_form.en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.json (Belarusian)
* New translations en.yml (Faroese)
* New translations simple_form.en.yml (Estonian)
* New translations en.json (German)
* New translations simple_form.en.yml (German)
* New translations en.yml (Esperanto)
* New translations en.yml (Welsh)
* New translations en.yml (Estonian)
* New translations en.json (Estonian)
* New translations en.yml (Italian)
* New translations doorkeeper.en.yml (Belarusian)
* New translations en.yml (German)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations en.yml (Welsh)
* New translations simple_form.en.yml (German)
* New translations simple_form.en.yml (Estonian)
* New translations doorkeeper.en.yml (Welsh)
* New translations activerecord.en.yml (Welsh)
* New translations devise.en.yml (Welsh)
* New translations en.yml (Faroese)
* New translations en.yml (Scots)
* New translations simple_form.en.yml (Belarusian)
* New translations doorkeeper.en.yml (Belarusian)
* New translations en.yml (German)
* New translations en.json (Hungarian)
* New translations en.json (Bengali)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (German)
* New translations simple_form.en.yml (Estonian)
* New translations simple_form.en.yml (Welsh)
* New translations en.yml (Scots)
* New translations doorkeeper.en.yml (German)
* New translations en.yml (Russian)
* New translations en.yml (Estonian)
* New translations en.json (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations en.json (Indonesian)
* New translations en.yml (Indonesian)
* New translations simple_form.en.yml (Serbian (Latin))
* New translations en.json (Belarusian)
* New translations en.yml (Belarusian)
* New translations devise.en.yml (Serbian (Latin))
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations doorkeeper.en.yml (Belarusian)
* New translations en.yml (German)
* New translations en.json (German)
* New translations en.yml (Portuguese, Brazilian)
* New translations simple_form.en.yml (German)
* New translations doorkeeper.en.yml (German)
* New translations devise.en.yml (German)
* New translations en.yml (Faroese)
* New translations simple_form.en.yml (Faroese)
* New translations en.yml (Belarusian)
* New translations doorkeeper.en.yml (Belarusian)
* New translations en.json (Spanish)
* New translations en.json (Welsh)
* New translations en.yml (Welsh)
* New translations doorkeeper.en.yml (Welsh)
* New translations en.yml (Belarusian)
* New translations en.json (German)
* New translations en.yml (Welsh)
* New translations en.json (Asturian)
* New translations simple_form.en.yml (German)
* New translations en.yml (Faroese)
* New translations en.yml (Belarusian)
* New translations en.json (Asturian)
* New translations en.yml (Asturian)
* New translations en.json (French, Quebec)
* New translations en.json (Faroese)
* New translations en.yml (Faroese)
* New translations en.json (Belarusian)
* New translations en.yml (Belarusian)
* New translations devise.en.yml (Asturian)
* New translations en.json (Spanish)
* New translations en.json (French, Quebec)
* New translations en.yml (Faroese)
* New translations en.yml (Scots)
* New translations en.json (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.json (French, Quebec)
* New translations en.yml (Scots)
* New translations en.yml (Belarusian)
* New translations en.yml (Asturian)
* New translations simple_form.en.yml (Asturian)
* New translations doorkeeper.en.yml (Asturian)
* New translations en.json (Asturian)
* New translations en.yml (Asturian)
* New translations simple_form.en.yml (Asturian)
* New translations en.json (Asturian)
* New translations en.yml (Faroese)
* New translations en.yml (Faroese)
* New translations simple_form.en.yml (Faroese)
* New translations simple_form.en.yml (Belarusian)
* New translations devise.en.yml (Serbian (Latin))
* New translations en.yml (Japanese)
* New translations en.json (Serbian (Latin))
* New translations en.yml (Faroese)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations en.yml (German)
* New translations en.json (German)
* New translations en.yml (Estonian)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations devise.en.yml (Estonian)
* New translations en.yml (German)
* New translations en.json (German)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (German)
* New translations simple_form.en.yml (Estonian)
* New translations devise.en.yml (Estonian)
* New translations en.yml (German)
* New translations en.json (German)
* New translations en.yml (Catalan)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Catalan)
* New translations doorkeeper.en.yml (Catalan)
* New translations simple_form.en.yml (German)
* New translations simple_form.en.yml (Estonian)
* New translations activerecord.en.yml (Serbian (Cyrillic))
* New translations en.yml (Faroese)
* New translations simple_form.en.yml (Faroese)
* New translations en.yml (Scots)
* New translations doorkeeper.en.yml (Serbian (Cyrillic))
* New translations en.yml (Belarusian)
* New translations devise.en.yml (German)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations doorkeeper.en.yml (Serbian (Cyrillic))
* New translations doorkeeper.en.yml (Estonian)
* New translations en.yml (Romanian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Scots)
* New translations doorkeeper.en.yml (Estonian)
* New translations simple_form.en.yml (Bulgarian)
* New translations simple_form.en.yml (German)
* New translations activerecord.en.yml (Serbian (Cyrillic))
* New translations en.yml (Scots)
* New translations en.yml (Bulgarian)
* New translations simple_form.en.yml (Bulgarian)
* New translations en.yml (Asturian)
* New translations devise.en.yml (Asturian)
* New translations en.yml (Scots)
* New translations simple_form.en.yml (Hebrew)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.yml (Scots)
* New translations en.yml (Belarusian)
* New translations en.json (Ukrainian)
* New translations doorkeeper.en.yml (Ukrainian)
* New translations en.yml (Scots)
* New translations doorkeeper.en.yml (Serbian (Cyrillic))
* New translations en.yml (Scots)
* New translations doorkeeper.en.yml (Serbian (Cyrillic))
* New translations en.yml (Czech)
* New translations en.json (Czech)
* New translations en.yml (Bulgarian)
* New translations en.json (Catalan)
* New translations en.yml (Catalan)
* New translations en.yml (Scots)
* New translations doorkeeper.en.yml (Serbian (Cyrillic))
* New translations en.json (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations en.yml (Ukrainian)
* New translations simple_form.en.yml (Dutch)
* New translations en.json (Ukrainian)
* New translations en.yml (Esperanto)
* New translations simple_form.en.yml (Ukrainian)
* New translations simple_form.en.yml (Esperanto)
* New translations en.yml (Faroese)
* New translations en.yml (Faroese)
* New translations en.yml (Scots)
* New translations en.yml (Scots)
* New translations en.yml (Belarusian)
* New translations en.yml (Belarusian)
* New translations en.json (Czech)
* New translations en.json (Malayalam)
* New translations en.yml (Scots)
* New translations en.json (Czech)
* New translations en.json (Hindi)
* New translations en.json (Malayalam)
* New translations activerecord.en.yml (Serbian (Latin))
* New translations en.yml (Scots)
* New translations doorkeeper.en.yml (Serbian (Latin))
* New translations en.json (Czech)
* New translations en.json (Serbian (Cyrillic))
* New translations simple_form.en.yml (Asturian)
* New translations en.yml (Scots)
* New translations en.json (Czech)
* New translations en.json (Frisian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.yml (Scots)
* New translations en.yml (Belarusian)
* New translations devise.en.yml (Frisian)
* New translations en.json (Czech)
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations en.yml (Faroese)
* New translations en.yml (Belarusian)
* New translations en.yml (Ukrainian)
* New translations en.yml (Bulgarian)
* New translations en.json (Italian)
* New translations en.json (Ukrainian)
* New translations en.json (Spanish, Mexico)
* New translations en.json (Estonian)
* New translations en.yml (Estonian)
* New translations simple_form.en.yml (Bulgarian)
* New translations simple_form.en.yml (Estonian)
* New translations en.yml (Faroese)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* New translations devise.en.yml (Ukrainian)
* New translations en.yml (Ukrainian)
* New translations en.json (Italian)
* New translations en.json (Ukrainian)
* New translations en.json (Spanish, Mexico)
* New translations simple_form.en.yml (Ukrainian)
* New translations activerecord.en.yml (Italian)
* New translations en.yml (Belarusian)
* New translations simple_form.en.yml (Belarusian)
* Run `yarn manage:translations`
* Run `bundle exec i18n-tasks normalize`
* Add `app/javascript/mastodon/locales/whitelist_be.json`
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2023-02-12 18:01:25 -07:00
Claire
31e17a61f3
Fix not being able to follow more than one hashtag ( #21285 )
...
Fixes regression from #20860
2023-02-12 18:01:23 -07:00
David Leadbeater
fcfe655a0a
Don't allow URLs that contain non-normalized paths to be verified ( #20999 )
...
* Don't allow URLs that contain non-normalized paths to be verified
This stops things like https://example.com/otheruser/../realuser where
"/otheruser" appears to be the verified URL, but the actual URL being
verified is "/realuser" due to the "/../".
Also fix a test to use 'https', so it is testing the right thing, now
that since #20304 https is required.
* missing do
2023-02-12 18:01:23 -07:00
Claire
6bc384e479
Fix form-action CSP directive for external login ( #20962 )
2023-02-12 18:01:23 -07:00