Commit Graph

6622 Commits

Author SHA1 Message Date
55bef1e34f Fix quickly switching notification filters resulting in empty or incorrect list (#19052)
Follow-up to #18960

The aforementioned PR fixed an issue in which switching notification filters
while notifications were loading prevented the query for the new filter from
running, but another issue remained: if the first query completed after the
second one, its results would override the second one, thus leading to the
same issue.

This commit cancels the first request if it is still running, before issuing
the second one.
2022-08-25 17:36:54 +02:00
2cae5f5b8d Fix “Filter this post” potentially listing deleted filters (#19051) 2022-08-25 17:36:35 +02:00
3efa8da2d6 New Crowdin updates (#18972)
* New translations en.json (Hindi)

* New translations en.json (Malay)

* New translations en.json (Telugu)

* New translations en.json (English, United Kingdom)

* New translations en.json (Uyghur)

* New translations en.json (Standard Moroccan Tamazight)

* New translations en.json (Dutch)

* New translations en.json (Portuguese)

* New translations en.json (Ukrainian)

* New translations en.json (Chinese Traditional)

* New translations en.json (Chinese Simplified)

* New translations en.json (Danish)

* New translations en.json (Spanish, Argentina)

* New translations en.json (Korean)

* New translations en.json (Catalan)

* New translations en.json (Hungarian)

* New translations en.json (Slovenian)

* New translations en.json (Galician)

* New translations en.json (Greek)

* New translations en.json (Polish)

* New translations en.json (Turkish)

* New translations devise.en.yml (Turkish)

* New translations doorkeeper.en.yml (Turkish)

* New translations en.json (Albanian)

* New translations en.json (Swedish)

* New translations en.json (Turkish)

* New translations en.json (Icelandic)

* New translations en.json (Latvian)

* New translations en.json (Spanish)

* New translations en.json (German)

* New translations en.json (Italian)

* New translations en.json (Ido)

* New translations en.json (Russian)

* New translations en.json (Vietnamese)

* New translations en.yml (Esperanto)

* New translations en.json (Kurmanji (Kurdish))

* New translations en.yml (Kurmanji (Kurdish))

* New translations doorkeeper.en.yml (Kurmanji (Kurdish))

* New translations en.json (Kurmanji (Kurdish))

* New translations en.json (Kurmanji (Kurdish))

* New translations en.json (Kurmanji (Kurdish))

* New translations en.json (Kurmanji (Kurdish))

* New translations en.yml (Kurmanji (Kurdish))

* New translations en.json (Kurmanji (Kurdish))

* New translations en.json (Kurmanji (Kurdish))

* New translations en.json (Finnish)

* New translations simple_form.en.yml (Finnish)

* New translations simple_form.en.yml (Finnish)

* New translations en.yml (Finnish)

* New translations en.yml (Finnish)

* New translations en.json (Thai)

* New translations en.json (Russian)

* New translations en.json (Chinese Simplified)

* New translations simple_form.en.yml (Kurmanji (Kurdish))

* New translations en.yml (Kurmanji (Kurdish))

* New translations simple_form.en.yml (Kurmanji (Kurdish))

* New translations en.json (Kurmanji (Kurdish))

* New translations en.yml (Kurmanji (Kurdish))

* New translations en.yml (Kurmanji (Kurdish))

* New translations simple_form.en.yml (German)

* New translations simple_form.en.yml (Turkish)

* New translations simple_form.en.yml (Norwegian)

* New translations simple_form.en.yml (Polish)

* New translations simple_form.en.yml (Portuguese)

* New translations simple_form.en.yml (Slovak)

* New translations simple_form.en.yml (Slovenian)

* New translations simple_form.en.yml (Albanian)

* New translations simple_form.en.yml (Serbian (Cyrillic))

* New translations simple_form.en.yml (Swedish)

* New translations simple_form.en.yml (Ukrainian)

* New translations simple_form.en.yml (Chinese Simplified)

* New translations simple_form.en.yml (Chinese Traditional)

* New translations simple_form.en.yml (Vietnamese)

* New translations simple_form.en.yml (Galician)

* New translations simple_form.en.yml (Icelandic)

* New translations simple_form.en.yml (Portuguese, Brazilian)

* New translations simple_form.en.yml (Indonesian)

* New translations simple_form.en.yml (Persian)

* New translations simple_form.en.yml (Tamil)

* New translations simple_form.en.yml (Dutch)

* New translations simple_form.en.yml (Czech)

* New translations simple_form.en.yml (Russian)

* New translations simple_form.en.yml (Norwegian Nynorsk)

* New translations simple_form.en.yml (Romanian)

* New translations simple_form.en.yml (French)

* New translations simple_form.en.yml (Spanish)

* New translations simple_form.en.yml (Afrikaans)

* New translations simple_form.en.yml (Arabic)

* New translations simple_form.en.yml (Bulgarian)

* New translations simple_form.en.yml (Catalan)

* New translations simple_form.en.yml (Danish)

* New translations simple_form.en.yml (Korean)

* New translations simple_form.en.yml (Greek)

* New translations simple_form.en.yml (Frisian)

* New translations simple_form.en.yml (Basque)

* New translations simple_form.en.yml (Hebrew)

* New translations simple_form.en.yml (Hungarian)

* New translations simple_form.en.yml (Armenian)

* New translations simple_form.en.yml (Italian)

* New translations simple_form.en.yml (Japanese)

* New translations simple_form.en.yml (Georgian)

* New translations simple_form.en.yml (Spanish, Argentina)

* New translations simple_form.en.yml (Spanish, Mexico)

* New translations simple_form.en.yml (Sorani (Kurdish))

* New translations simple_form.en.yml (Scottish Gaelic)

* New translations simple_form.en.yml (Asturian)

* New translations simple_form.en.yml (Occitan)

* New translations simple_form.en.yml (Serbian (Latin))

* New translations simple_form.en.yml (Corsican)

* New translations simple_form.en.yml (Breton)

* New translations simple_form.en.yml (Sardinian)

* New translations simple_form.en.yml (Kabyle)

* New translations simple_form.en.yml (Ido)

* New translations simple_form.en.yml (Sinhala)

* New translations simple_form.en.yml (Malayalam)

* New translations simple_form.en.yml (Bengali)

* New translations simple_form.en.yml (Thai)

* New translations simple_form.en.yml (Croatian)

* New translations simple_form.en.yml (Kazakh)

* New translations simple_form.en.yml (Estonian)

* New translations simple_form.en.yml (Latvian)

* New translations simple_form.en.yml (Tatar)

* New translations simple_form.en.yml (Welsh)

* New translations simple_form.en.yml (Esperanto)

* New translations simple_form.en.yml (Chinese Traditional, Hong Kong)

* New translations simple_form.en.yml (Standard Moroccan Tamazight)

* New translations en.yml (Thai)

* New translations simple_form.en.yml (Russian)

* New translations simple_form.en.yml (Kurmanji (Kurdish))

* New translations simple_form.en.yml (Spanish)

* New translations simple_form.en.yml (Catalan)

* New translations simple_form.en.yml (Greek)

* New translations simple_form.en.yml (Hungarian)

* New translations simple_form.en.yml (Portuguese)

* New translations simple_form.en.yml (Icelandic)

* New translations simple_form.en.yml (Thai)

* New translations simple_form.en.yml (Latvian)

* New translations simple_form.en.yml (Danish)

* New translations simple_form.en.yml (German)

* New translations simple_form.en.yml (Catalan)

* New translations simple_form.en.yml (Italian)

* New translations simple_form.en.yml (Ukrainian)

* New translations en.yml (Ukrainian)

* New translations simple_form.en.yml (Russian)

* New translations simple_form.en.yml (Spanish, Argentina)

* New translations simple_form.en.yml (Korean)

* New translations doorkeeper.en.yml (Kurmanji (Kurdish))

* New translations simple_form.en.yml (Chinese Traditional)

* New translations en.yml (Albanian)

* New translations en.yml (Korean)

* New translations en.yml (Lithuanian)

* New translations en.yml (Macedonian)

* New translations en.yml (Dutch)

* New translations en.yml (Norwegian)

* New translations en.yml (Punjabi)

* New translations en.yml (Polish)

* New translations en.yml (Portuguese)

* New translations en.yml (Slovenian)

* New translations en.yml (Serbian (Cyrillic))

* New translations en.yml (Italian)

* New translations en.yml (Swedish)

* New translations en.yml (Turkish)

* New translations en.yml (Chinese Simplified)

* New translations en.yml (Chinese Traditional)

* New translations en.yml (Urdu (Pakistan))

* New translations en.yml (Vietnamese)

* New translations en.yml (Galician)

* New translations en.yml (Icelandic)

* New translations en.yml (Portuguese, Brazilian)

* New translations en.yml (Indonesian)

* New translations en.yml (Georgian)

* New translations en.yml (Armenian)

* New translations en.yml (Spanish)

* New translations en.yml (Japanese)

* New translations en.yml (German)

* New translations en.yml (Russian)

* New translations en.yml (Slovak)

* New translations en.yml (Norwegian Nynorsk)

* New translations en.yml (Romanian)

* New translations en.yml (French)

* New translations en.yml (Afrikaans)

* New translations en.yml (Hungarian)

* New translations en.yml (Arabic)

* New translations en.yml (Bulgarian)

* New translations en.yml (Catalan)

* New translations en.yml (Czech)

* New translations en.yml (Danish)

* New translations en.yml (Greek)

* New translations en.yml (Frisian)

* New translations en.yml (Basque)

* New translations en.yml (Irish)

* New translations en.yml (Hebrew)

* New translations en.yml (Persian)

* New translations en.yml (Tamil)

* New translations en.yml (Sorani (Kurdish))

* New translations en.yml (Cornish)

* New translations en.yml (Kannada)

* New translations en.yml (Scottish Gaelic)

* New translations en.yml (Asturian)

* New translations en.yml (Occitan)

* New translations en.yml (Serbian (Latin))

* New translations en.yml (Corsican)

* New translations en.yml (Breton)

* New translations en.yml (Sardinian)

* New translations en.yml (Sanskrit)

* New translations en.yml (Kabyle)

* New translations en.yml (Ido)

* New translations en.yml (Taigi)

* New translations en.yml (Silesian)

* New translations en.yml (Sinhala)

* New translations en.yml (Malayalam)

* New translations en.yml (Spanish, Argentina)

* New translations en.yml (Latvian)

* New translations en.yml (Spanish, Mexico)

* New translations en.yml (Bengali)

* New translations en.yml (Marathi)

* New translations en.yml (Croatian)

* New translations en.yml (Kazakh)

* New translations en.yml (Estonian)

* New translations en.yml (Hindi)

* New translations en.yml (Tatar)

* New translations en.yml (Malay)

* New translations en.yml (Telugu)

* New translations en.yml (English, United Kingdom)

* New translations en.yml (Welsh)

* New translations en.yml (Uyghur)

* New translations en.yml (Chinese Traditional, Hong Kong)

* New translations en.yml (Standard Moroccan Tamazight)

* New translations simple_form.en.yml (Chinese Simplified)

* New translations simple_form.en.yml (Galician)

* New translations en.yml (Chinese Simplified)

* New translations en.yml (Galician)

* New translations simple_form.en.yml (Swedish)

* New translations en.yml (Chinese Traditional)

* New translations simple_form.en.yml (Slovenian)

* New translations en.yml (Polish)

* New translations en.yml (Slovenian)

* New translations en.yml (Chinese Simplified)

* New translations simple_form.en.yml (Turkish)

* New translations en.yml (Polish)

* New translations en.yml (Turkish)

* New translations simple_form.en.yml (Vietnamese)

* New translations en.yml (Spanish)

* New translations en.yml (Danish)

* New translations en.yml (Korean)

* New translations en.yml (Vietnamese)

* New translations en.yml (Icelandic)

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-08-25 19:40:19 +09:00
861b35dd54 Support "http_hidden_proxy" ENV var for hidden service only proxy (#18427)
* Support "http_hidden_proxy" ENV var for hidden service only proxy

* Fallback to http_proxy if http_hidden_proxy is not set
2022-08-25 04:41:14 +02:00
42ff4dce41 Use type="color" on badge color input field (#18825)
This informs browser to use interactive color picker
2022-08-25 04:38:34 +02:00
5d70a16a14 Fix action type for unfollowHashtag (#18924) 2022-08-25 04:38:01 +02:00
66b8abf218 Fix case where boolean was passed to onFilter on StatusActionBar (#18923) 2022-08-25 04:37:40 +02:00
03241d884e Add option for EMAIL_DOMAIN_DENYLIST/EMAIL_DOMAIN_ALLOWLIST to apply after confirmation (#18642)
Fixes #18620
2022-08-25 04:31:10 +02:00
ba745ca99a Fix media modal link button (#18877)
Fixes regression from #18697
2022-08-25 04:30:53 +02:00
afb8bc97d0 Fix quickly switching notification filters resulting in empty or incorrect list (#18960) 2022-08-25 04:29:00 +02:00
50487db122 Add ability to filter individual posts (#18945)
* Add database table for status-specific filters

* Add REST endpoints, entities and attributes

* Show status filters in /filters interface

* Perform server-side filtering for individual posts filters

* Fix filtering on context mismatch

* Refactor `toServerSideType` by moving it to its own module

* Move loupe and delete icons to their own module

* Add ability to filter individual posts from WebUI

* Replace keyword list by warnings (expired, context mismatch)

* Refactor server-side filtering code

* Add tests
2022-08-25 04:27:47 +02:00
0412a4d03e Change e-mail domain blocks to match subdomains of blocked domains (#18979) 2022-08-24 19:00:55 +02:00
d83faa1a89 Add ability to block sign-ups from IP (#19037) 2022-08-24 19:00:37 +02:00
d415f1116b Fix /admin/accounts/ order parameter (#18996) 2022-08-17 22:07:30 +01:00
656ac99ef0 Fix ambiguous column names in tootctl search deploy (#18993) 2022-08-17 22:07:12 +01:00
d92ce31c92 Update notifications.js (#18977) 2022-08-15 20:33:05 +02:00
6aa83b13ba Properly delete remote account's avatar/header when fetch/update (#18973) 2022-08-15 20:32:21 +02:00
aa33c7f26e New Crowdin updates (#18905)
* New translations doorkeeper.en.yml (Chinese Traditional)

* New translations en.yml (Urdu (Pakistan))

* New translations devise.en.yml (Urdu (Pakistan))

* New translations en.yml (Vietnamese)

* New translations simple_form.en.yml (Vietnamese)

* New translations simple_form.en.yml (Bengali)

* New translations simple_form.en.yml (Spanish, Argentina)

* New translations devise.en.yml (Spanish, Argentina)

* New translations doorkeeper.en.yml (Spanish, Argentina)

* New translations en.yml (Spanish, Mexico)

* New translations simple_form.en.yml (Spanish, Mexico)

* New translations activerecord.en.yml (Spanish, Mexico)

* New translations devise.en.yml (Spanish, Mexico)

* New translations doorkeeper.en.yml (Spanish, Mexico)

* New translations en.yml (Bengali)

* New translations activerecord.en.yml (Bengali)

* New translations doorkeeper.en.yml (Tamil)

* New translations devise.en.yml (Bengali)

* New translations en.yml (Marathi)

* New translations activerecord.en.yml (Marathi)

* New translations doorkeeper.en.yml (Marathi)

* New translations devise.en.yml (Thai)

* New translations en.yml (Croatian)

* New translations simple_form.en.yml (Croatian)

* New translations en.yml (Spanish, Argentina)

* New translations devise.en.yml (Tamil)

* New translations devise.en.yml (Vietnamese)

* New translations devise.en.yml (Portuguese, Brazilian)

* New translations doorkeeper.en.yml (Vietnamese)

* New translations en.yml (Galician)

* New translations simple_form.en.yml (Galician)

* New translations devise.en.yml (Galician)

* New translations doorkeeper.en.yml (Galician)

* New translations devise.en.yml (Icelandic)

* New translations doorkeeper.en.yml (Icelandic)

* New translations en.yml (Portuguese, Brazilian)

* New translations simple_form.en.yml (Portuguese, Brazilian)

* New translations activerecord.en.yml (Portuguese, Brazilian)

* New translations doorkeeper.en.yml (Portuguese, Brazilian)

* New translations activerecord.en.yml (Tamil)

* New translations simple_form.en.yml (Indonesian)

* New translations devise.en.yml (Indonesian)

* New translations doorkeeper.en.yml (Indonesian)

* New translations en.yml (Persian)

* New translations simple_form.en.yml (Persian)

* New translations activerecord.en.yml (Persian)

* New translations devise.en.yml (Persian)

* New translations doorkeeper.en.yml (Persian)

* New translations en.yml (Tamil)

* New translations simple_form.en.yml (Tamil)

* New translations activerecord.en.yml (Croatian)

* New translations devise.en.yml (Croatian)

* New translations en.yml (English, United Kingdom)

* New translations en.yml (Telugu)

* New translations doorkeeper.en.yml (Hindi)

* New translations devise.en.yml (English, United Kingdom)

* 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 simple_form.en.yml (Esperanto)

* New translations activerecord.en.yml (Esperanto)

* New translations en.yml (Malay)

* New translations devise.en.yml (Hindi)

* New translations doorkeeper.en.yml (Croatian)

* New translations en.yml (Estonian)

* New translations en.yml (Norwegian Nynorsk)

* New translations simple_form.en.yml (Norwegian Nynorsk)

* New translations activerecord.en.yml (Norwegian Nynorsk)

* New translations devise.en.yml (Norwegian Nynorsk)

* New translations doorkeeper.en.yml (Norwegian Nynorsk)

* New translations en.yml (Kazakh)

* New translations simple_form.en.yml (Kazakh)

* New translations activerecord.en.yml (Kazakh)

* New translations devise.en.yml (Kazakh)

* New translations doorkeeper.en.yml (Kazakh)

* New translations simple_form.en.yml (Estonian)

* New translations activerecord.en.yml (Hindi)

* New translations activerecord.en.yml (Estonian)

* New translations devise.en.yml (Estonian)

* New translations doorkeeper.en.yml (Estonian)

* New translations en.yml (Latvian)

* New translations simple_form.en.yml (Latvian)

* New translations activerecord.en.yml (Latvian)

* New translations devise.en.yml (Latvian)

* New translations doorkeeper.en.yml (Latvian)

* New translations en.yml (Hindi)

* New translations devise.en.yml (Esperanto)

* New translations doorkeeper.en.yml (Esperanto)

* New translations activerecord.en.yml (Sinhala)

* New translations devise.en.yml (Sinhala)

* New translations doorkeeper.en.yml (Sinhala)

* New translations en.yml (Cornish)

* New translations en.yml (Kannada)

* New translations en.yml (Sinhala)

* New translations devise.en.yml (Kannada)

* New translations en.yml (Scottish Gaelic)

* New translations simple_form.en.yml (Scottish Gaelic)

* New translations activerecord.en.yml (Scottish Gaelic)

* New translations devise.en.yml (Scottish Gaelic)

* New translations doorkeeper.en.yml (Scottish Gaelic)

* New translations en.yml (Asturian)

* New translations simple_form.en.yml (Asturian)

* New translations activerecord.en.yml (Asturian)

* New translations simple_form.en.yml (Sinhala)

* New translations doorkeeper.en.yml (Breton)

* New translations en.yml (Uyghur)

* New translations simple_form.en.yml (Tatar)

* New translations en.yml (Chinese Traditional, Hong Kong)

* New translations simple_form.en.yml (Chinese Traditional, Hong Kong)

* New translations activerecord.en.yml (Chinese Traditional, Hong Kong)

* New translations devise.en.yml (Chinese Traditional, Hong Kong)

* New translations doorkeeper.en.yml (Chinese Traditional, Hong Kong)

* New translations en.yml (Tatar)

* New translations activerecord.en.yml (Tatar)

* New translations devise.en.yml (Breton)

* New translations devise.en.yml (Tatar)

* New translations doorkeeper.en.yml (Tatar)

* New translations en.yml (Malayalam)

* New translations simple_form.en.yml (Malayalam)

* New translations activerecord.en.yml (Malayalam)

* New translations devise.en.yml (Malayalam)

* New translations doorkeeper.en.yml (Malayalam)

* New translations en.yml (Breton)

* New translations simple_form.en.yml (Breton)

* New translations activerecord.en.yml (Breton)

* New translations devise.en.yml (Asturian)

* New translations doorkeeper.en.yml (Asturian)

* New translations simple_form.en.yml (Kabyle)

* New translations activerecord.en.yml (Sardinian)

* New translations devise.en.yml (Sardinian)

* New translations doorkeeper.en.yml (Sardinian)

* New translations en.yml (Sanskrit)

* New translations en.yml (Kabyle)

* New translations activerecord.en.yml (Kabyle)

* New translations en.yml (Sardinian)

* New translations devise.en.yml (Kabyle)

* New translations doorkeeper.en.yml (Kabyle)

* New translations en.yml (Ido)

* New translations simple_form.en.yml (Ido)

* New translations devise.en.yml (Ido)

* New translations doorkeeper.en.yml (Ido)

* New translations en.yml (Taigi)

* New translations simple_form.en.yml (Sardinian)

* New translations doorkeeper.en.yml (Corsican)

* New translations en.yml (Occitan)

* New translations simple_form.en.yml (Kurmanji (Kurdish))

* New translations simple_form.en.yml (Occitan)

* New translations activerecord.en.yml (Occitan)

* New translations devise.en.yml (Occitan)

* New translations doorkeeper.en.yml (Occitan)

* New translations en.yml (Serbian (Latin))

* New translations simple_form.en.yml (Serbian (Latin))

* New translations activerecord.en.yml (Serbian (Latin))

* New translations devise.en.yml (Serbian (Latin))

* New translations doorkeeper.en.yml (Serbian (Latin))

* New translations en.yml (Kurmanji (Kurdish))

* New translations activerecord.en.yml (Kurmanji (Kurdish))

* New translations devise.en.yml (Corsican)

* New translations devise.en.yml (Kurmanji (Kurdish))

* New translations doorkeeper.en.yml (Kurmanji (Kurdish))

* New translations en.yml (Sorani (Kurdish))

* New translations simple_form.en.yml (Sorani (Kurdish))

* New translations activerecord.en.yml (Sorani (Kurdish))

* New translations devise.en.yml (Sorani (Kurdish))

* New translations doorkeeper.en.yml (Sorani (Kurdish))

* New translations en.yml (Corsican)

* New translations simple_form.en.yml (Corsican)

* New translations activerecord.en.yml (Corsican)

* New translations en.yml (Silesian)

* New translations en.yml (Standard Moroccan Tamazight)

* New translations simple_form.en.yml (Standard Moroccan Tamazight)

* New translations activerecord.en.yml (Standard Moroccan Tamazight)

* New translations devise.en.yml (Standard Moroccan Tamazight)

* New translations doorkeeper.en.yml (Standard Moroccan Tamazight)

* New translations en.yml (Vietnamese)

* New translations en.yml (Esperanto)

* New translations simple_form.en.yml (Esperanto)

* New translations simple_form.en.yml (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.json (Ido)

* New translations en.yml (German)

* New translations en.yml (German)

* New translations en.json (Hebrew)

* New translations en.json (Hebrew)

* New translations en.yml (Hebrew)

* New translations activerecord.en.yml (German)

* New translations en.yml (Hebrew)

* New translations en.json (Scottish Gaelic)

* New translations en.yml (Scottish Gaelic)

* New translations simple_form.en.yml (Scottish Gaelic)

* New translations activerecord.en.yml (Scottish Gaelic)

* New translations doorkeeper.en.yml (Scottish Gaelic)

* New translations en.yml (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.json (Spanish)

* New translations en.yml (German)

* New translations simple_form.en.yml (German)

* New translations activerecord.en.yml (German)

* New translations en.yml (Thai)

* New translations en.yml (Thai)

* New translations en.json (Dutch)

* New translations en.yml (Dutch)

* New translations devise.en.yml (Dutch)

* New translations en.json (Dutch)

* New translations en.yml (Dutch)

* New translations simple_form.en.yml (Dutch)

* New translations en.json (Slovak)

* New translations en.json (Finnish)

* New translations en.json (Finnish)

* New translations simple_form.en.yml (Finnish)

* New translations activerecord.en.yml (Finnish)

* New translations doorkeeper.en.yml (Finnish)

* New translations en.yml (German)

* New translations simple_form.en.yml (German)

* New translations en.yml (German)

* New translations en.yml (Russian)

* New translations simple_form.en.yml (Russian)

* New translations en.yml (Thai)

* New translations en.yml (Thai)

* New translations en.json (Norwegian Nynorsk)

* New translations en.json (Norwegian Nynorsk)

* New translations en.yml (Norwegian Nynorsk)

* New translations simple_form.en.yml (Norwegian Nynorsk)

* New translations activerecord.en.yml (Norwegian Nynorsk)

* New translations devise.en.yml (Norwegian Nynorsk)

* New translations doorkeeper.en.yml (Norwegian Nynorsk)

* New translations en.yml (Norwegian Nynorsk)

* New translations en.json (Kurmanji (Kurdish))

* New translations en.yml (Kurmanji (Kurdish))

* New translations activerecord.en.yml (Kurmanji (Kurdish))

* New translations en.yml (Kurmanji (Kurdish))

* New translations en.json (Albanian)

* New translations en.yml (Thai)

* New translations en.yml (Thai)

* New translations en.json (Japanese)

* New translations en.yml (Japanese)

* New translations activerecord.en.yml (Japanese)

* New translations en.yml (Japanese)

* New translations en.yml (Esperanto)

* New translations en.json (Slovak)

* New translations en.yml (Slovak)

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-08-15 07:39:44 +09:00
e6979aa6d4 Add warning for sensitive audio posts (#17885) 2022-08-13 15:39:05 +02:00
4b36e47474 New Crowdin updates (#18855)
* New translations en.json (Hebrew)

* New translations en.json (Indonesian)

* New translations activerecord.en.yml (Hebrew)

* New translations activerecord.en.yml (Indonesian)

* New translations en.yml (Hebrew)

* New translations en.yml (Indonesian)

* New translations simple_form.en.yml (Hebrew)

* New translations activerecord.en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations devise.en.yml (Hebrew)

* New translations en.json (Chinese Simplified)

* New translations en.json (Galician)

* New translations en.json (Punjabi)

* New translations en.json (Irish)

* New translations en.json (Hungarian)

* New translations en.json (Armenian)

* New translations en.json (Italian)

* New translations en.json (Georgian)

* New translations en.json (Korean)

* New translations en.json (Lithuanian)

* New translations en.json (Macedonian)

* New translations en.json (Norwegian)

* New translations en.json (Polish)

* New translations en.json (Basque)

* New translations en.json (Russian)

* New translations en.json (Slovak)

* New translations en.json (Slovenian)

* New translations en.json (Serbian (Cyrillic))

* New translations en.json (Swedish)

* New translations en.json (Turkish)

* New translations en.json (Ukrainian)

* New translations en.json (Chinese Traditional)

* New translations en.json (Urdu (Pakistan))

* New translations en.json (Icelandic)

* New translations en.json (Finnish)

* New translations en.json (Frisian)

* New translations en.json (Hebrew)

* New translations en.json (Greek)

* New translations en.json (Albanian)

* New translations en.json (French)

* New translations en.json (Spanish)

* New translations en.json (Japanese)

* New translations en.json (Dutch)

* New translations en.json (Portuguese)

* New translations en.json (Chinese Simplified)

* New translations en.json (Vietnamese)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Romanian)

* New translations en.json (Afrikaans)

* New translations en.json (Arabic)

* New translations en.json (Bulgarian)

* New translations en.json (Catalan)

* New translations en.json (Czech)

* New translations en.json (Danish)

* New translations en.json (German)

* New translations en.json (Sinhala)

* New translations en.json (Kurmanji (Kurdish))

* New translations en.json (Indonesian)

* New translations en.json (Esperanto)

* New translations en.json (Thai)

* New translations en.json (Welsh)

* New translations en.json (Persian)

* New translations en.json (Sorani (Kurdish))

* New translations en.json (Cornish)

* New translations en.json (Kannada)

* New translations en.json (Scottish Gaelic)

* New translations en.json (Asturian)

* New translations en.json (Occitan)

* New translations en.json (Serbian (Latin))

* New translations en.json (Corsican)

* New translations en.json (Malayalam)

* New translations en.json (Sardinian)

* New translations en.json (Sanskrit)

* New translations en.json (Kabyle)

* New translations en.json (Ido)

* New translations en.json (Taigi)

* New translations en.json (Silesian)

* New translations en.json (Breton)

* New translations en.json (Tatar)

* New translations en.json (Tamil)

* New translations en.json (Kazakh)

* New translations en.json (Spanish, Argentina)

* New translations en.json (Spanish, Mexico)

* New translations en.json (Bengali)

* New translations en.json (Marathi)

* New translations en.json (Croatian)

* New translations en.json (Norwegian Nynorsk)

* New translations en.json (Estonian)

* New translations en.json (Chinese Traditional, Hong Kong)

* New translations en.json (Latvian)

* New translations en.json (Hindi)

* New translations en.json (Malay)

* New translations en.json (Telugu)

* New translations en.json (English, United Kingdom)

* New translations en.json (Uyghur)

* New translations en.json (Standard Moroccan Tamazight)

* New translations en.yml (Thai)

* New translations activerecord.en.yml (Thai)

* New translations en.json (Spanish, Argentina)

* New translations en.json (Chinese Traditional)

* New translations en.json (Galician)

* New translations en.json (Greek)

* New translations en.json (Hungarian)

* New translations activerecord.en.yml (Chinese Simplified)

* New translations en.json (Polish)

* New translations en.json (Latvian)

* New translations en.json (Albanian)

* New translations simple_form.en.yml (Turkish)

* New translations activerecord.en.yml (Turkish)

* New translations en.json (Russian)

* New translations en.json (Turkish)

* New translations en.json (Portuguese)

* New translations en.json (Spanish)

* New translations en.json (Danish)

* New translations en.json (Russian)

* New translations en.json (Slovak)

* New translations en.json (Slovenian)

* New translations en.json (Ukrainian)

* New translations en.json (Portuguese)

* New translations en.json (Italian)

* New translations en.json (Polish)

* New translations en.json (Swedish)

* New translations en.json (Ukrainian)

* New translations en.json (Tamil)

* New translations en.json (Spanish, Argentina)

* New translations en.json (Kabyle)

* New translations en.json (Spanish, Argentina)

* New translations en.json (Ido)

* New translations en.json (Kurmanji (Kurdish))

* New translations en.json (Hebrew)

* New translations simple_form.en.yml (Hebrew)

* New translations en.yml (Hebrew)

* New translations en.yml (Japanese)

* New translations simple_form.en.yml (Japanese)

* New translations en.yml (Polish)

* New translations simple_form.en.yml (Polish)

* New translations activerecord.en.yml (Polish)

* New translations en.json (Korean)

* New translations en.json (Spanish)

* New translations en.json (Hindi)

* New translations en.json (Vietnamese)

* New translations activerecord.en.yml (Vietnamese)

* New translations en.json (Hindi)

* New translations en.json (German)

* New translations en.json (German)

* New translations en.yml (Esperanto)

* New translations en.yml (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Esperanto)

* New translations activerecord.en.yml (French)

* New translations en.json (French)

* New translations en.json (French)

* New translations en.yml (Thai)

* New translations en.json (Thai)

* New translations activerecord.en.yml (Thai)

* New translations en.yml (Thai)

* New translations simple_form.en.yml (Thai)

* New translations activerecord.en.yml (Thai)

* New translations en.json (Thai)

* New translations activerecord.en.yml (Thai)

* New translations en.yml (Thai)

* New translations simple_form.en.yml (Thai)

* New translations simple_form.en.yml (Thai)

* New translations doorkeeper.en.yml (Thai)

* New translations simple_form.en.yml (Thai)

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-07-30 22:09:18 +09:00
9608e720a4 Add ability to follow hashtags in web UI (#18862) 2022-07-22 15:52:06 +02:00
76ff452306 Fix unicode regression in #18809 (#18863) 2022-07-22 03:17:56 +02:00
f5d8501138 Change hashtag numbers to have clearer labels in web UI (#18864) 2022-07-22 03:17:41 +02:00
726931fe4a Fix /api/v1/tags/:id route constraints (#18854)
The constraint was applied prior to decoding, and rejected anything containing
the '%' character, which would be used for anything with non-ASCII unicode
characters.
2022-07-20 17:06:52 +02:00
f8b3e36929 New Crowdin updates (#18810)
* New translations en.yml (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.yml (Chinese Simplified)

* New translations en.yml (Esperanto)

* New translations en.json (Chinese Simplified)

* New translations simple_form.en.yml (Chinese Simplified)

* New translations en.yml (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations simple_form.en.yml (Chinese Simplified)

* New translations activerecord.en.yml (Chinese Simplified)

* New translations en.json (Thai)

* New translations en.json (Thai)

* New translations simple_form.en.yml (Thai)

* New translations activerecord.en.yml (Thai)

* New translations doorkeeper.en.yml (Thai)

* New translations en.yml (Thai)

* New translations en.yml (Thai)

* New translations activerecord.en.yml (Dutch)

* New translations activerecord.en.yml (Turkish)

* New translations activerecord.en.yml (Polish)

* New translations activerecord.en.yml (Portuguese)

* New translations activerecord.en.yml (Russian)

* New translations activerecord.en.yml (Slovak)

* New translations activerecord.en.yml (Slovenian)

* New translations activerecord.en.yml (Albanian)

* New translations activerecord.en.yml (Serbian (Cyrillic))

* New translations activerecord.en.yml (Swedish)

* New translations activerecord.en.yml (Ukrainian)

* New translations activerecord.en.yml (Chinese Traditional)

* New translations activerecord.en.yml (Vietnamese)

* New translations activerecord.en.yml (Galician)

* New translations activerecord.en.yml (Icelandic)

* New translations activerecord.en.yml (Indonesian)

* New translations activerecord.en.yml (Persian)

* New translations activerecord.en.yml (Tamil)

* New translations activerecord.en.yml (Spanish, Argentina)

* New translations activerecord.en.yml (Norwegian)

* New translations activerecord.en.yml (Portuguese, Brazilian)

* New translations activerecord.en.yml (German)

* New translations activerecord.en.yml (Sinhala)

* New translations activerecord.en.yml (Romanian)

* New translations activerecord.en.yml (French)

* New translations activerecord.en.yml (Spanish)

* New translations activerecord.en.yml (Afrikaans)

* New translations activerecord.en.yml (Arabic)

* New translations activerecord.en.yml (Bulgarian)

* New translations activerecord.en.yml (Catalan)

* New translations activerecord.en.yml (Czech)

* New translations activerecord.en.yml (Danish)

* New translations activerecord.en.yml (Greek)

* New translations activerecord.en.yml (Korean)

* New translations activerecord.en.yml (Frisian)

* New translations activerecord.en.yml (Basque)

* New translations activerecord.en.yml (Finnish)

* New translations activerecord.en.yml (Hebrew)

* New translations activerecord.en.yml (Hungarian)

* New translations activerecord.en.yml (Armenian)

* New translations activerecord.en.yml (Italian)

* New translations activerecord.en.yml (Japanese)

* New translations activerecord.en.yml (Georgian)

* New translations activerecord.en.yml (Spanish, Mexico)

* New translations activerecord.en.yml (Bengali)

* New translations activerecord.en.yml (Sorani (Kurdish))

* New translations activerecord.en.yml (Scottish Gaelic)

* New translations activerecord.en.yml (Asturian)

* New translations activerecord.en.yml (Occitan)

* New translations activerecord.en.yml (Serbian (Latin))

* New translations activerecord.en.yml (Kurmanji (Kurdish))

* New translations activerecord.en.yml (Corsican)

* New translations activerecord.en.yml (Breton)

* New translations activerecord.en.yml (Sardinian)

* New translations activerecord.en.yml (Kabyle)

* New translations activerecord.en.yml (Ido)

* New translations activerecord.en.yml (Malayalam)

* New translations activerecord.en.yml (Marathi)

* New translations activerecord.en.yml (Hindi)

* New translations activerecord.en.yml (Croatian)

* New translations activerecord.en.yml (Norwegian Nynorsk)

* New translations activerecord.en.yml (Kazakh)

* New translations activerecord.en.yml (Estonian)

* New translations activerecord.en.yml (Latvian)

* New translations activerecord.en.yml (Tatar)

* New translations activerecord.en.yml (Welsh)

* New translations activerecord.en.yml (Esperanto)

* New translations activerecord.en.yml (Chinese Traditional, Hong Kong)

* New translations activerecord.en.yml (Standard Moroccan Tamazight)

* New translations activerecord.en.yml (Catalan)

* New translations activerecord.en.yml (Danish)

* New translations activerecord.en.yml (Greek)

* New translations activerecord.en.yml (Latvian)

* New translations en.yml (Polish)

* New translations simple_form.en.yml (Polish)

* New translations activerecord.en.yml (Afrikaans)

* New translations activerecord.en.yml (Korean)

* New translations activerecord.en.yml (Polish)

* New translations en.yml (Esperanto)

* New translations activerecord.en.yml (Russian)

* New translations activerecord.en.yml (Italian)

* New translations activerecord.en.yml (Ukrainian)

* New translations activerecord.en.yml (Slovenian)

* New translations activerecord.en.yml (Portuguese)

* New translations activerecord.en.yml (Chinese Traditional)

* New translations activerecord.en.yml (Spanish, Argentina)

* New translations activerecord.en.yml (Galician)

* New translations activerecord.en.yml (Polish)

* New translations activerecord.en.yml (Hungarian)

* New translations activerecord.en.yml (Albanian)

* New translations en.yml (Icelandic)

* New translations simple_form.en.yml (Icelandic)

* New translations activerecord.en.yml (Icelandic)

* New translations en.yml (Korean)

* New translations simple_form.en.yml (Korean)

* New translations devise.en.yml (Korean)

* New translations activerecord.en.yml (Ido)

* New translations activerecord.en.yml (Spanish)

* New translations activerecord.en.yml (Chinese Simplified)

* Run `bundle exec i18n-tasks normalize`

* Fix syntax

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-07-20 21:21:57 +09:00
d5ca204e89 Bump react-redux-loading-bar from 4.0.8 to 5.0.4 (#18562) 2022-07-20 20:56:44 +09:00
f248d95be2 Fix badge color not affected (#18826)
* Fix badge color not affected

* Generate user role css
2022-07-19 01:06:11 +02:00
ec83e2a35e Fix missing scope for current_user in _sidebar.html.haml (#18822)
Fixes https://github.com/mastodon/mastodon/issues/18821

Fix suggested by https://miaow.gay/@meganeko/108665430982072358
2022-07-18 08:41:50 +02:00
ad489f865a Fix custom.css html escaped (#18824) 2022-07-18 08:41:08 +02:00
c3f0621a59 Add ability to follow hashtags (#18809) 2022-07-17 13:49:29 +02:00
ecb3bb3256 Add support for editing labelling of one's own role (#18812)
Still disallow edition of rank or permissions
2022-07-17 13:37:30 +02:00
bbb5f1917d New Crowdin updates (#18781)
* New translations en.json (Malayalam)

* New translations en.json (Corsican)

* New translations en.json (Sardinian)

* New translations en.json (Sanskrit)

* New translations en.json (Kabyle)

* New translations en.json (Taigi)

* New translations en.json (Silesian)

* New translations en.json (Breton)

* New translations en.json (Tatar)

* New translations en.json (Tamil)

* New translations en.json (Kazakh)

* New translations en.json (Spanish, Argentina)

* New translations en.json (Spanish, Mexico)

* New translations en.json (Bengali)

* New translations en.json (Marathi)

* New translations en.json (Croatian)

* New translations en.json (Norwegian Nynorsk)

* New translations en.json (Estonian)

* New translations en.json (Chinese Traditional, Hong Kong)

* New translations en.json (Latvian)

* New translations en.json (Hindi)

* New translations en.json (Malay)

* New translations en.json (Telugu)

* New translations en.json (English, United Kingdom)

* New translations en.json (Welsh)

* New translations en.json (Uyghur)

* New translations en.json (Standard Moroccan Tamazight)

* New translations en.yml (Slovenian)

* New translations simple_form.en.yml (Icelandic)

* New translations en.json (Danish)

* New translations en.json (Polish)

* New translations en.json (Slovenian)

* New translations en.json (Chinese Traditional)

* New translations en.json (Ido)

* New translations en.json (Danish)

* New translations en.yml (Danish)

* New translations en.yml (Ido)

* New translations simple_form.en.yml (Danish)

* New translations activerecord.en.yml (Danish)

* New translations en.yml (Ido)

* New translations simple_form.en.yml (Ido)

* New translations activerecord.en.yml (Ido)

* New translations en.yml (Ido)

* New translations en.json (Latvian)

* New translations en.yml (Czech)

* New translations en.json (Czech)

* New translations en.json (Greek)

* New translations en.json (Hungarian)

* New translations en.yml (Hungarian)

* New translations en.json (Korean)

* New translations en.json (Spanish, Argentina)

* New translations en.yml (Hungarian)

* New translations en.json (Italian)

* New translations en.json (Russian)

* New translations simple_form.en.yml (Hungarian)

* New translations activerecord.en.yml (Hungarian)

* New translations en.json (Hungarian)

* New translations en.json (Turkish)

* New translations simple_form.en.yml (Catalan)

* New translations en.yml (Catalan)

* New translations simple_form.en.yml (Catalan)

* New translations activerecord.en.yml (Catalan)

* New translations en.yml (Ukrainian)

* New translations en.json (Ukrainian)

* New translations simple_form.en.yml (Galician)

* New translations simple_form.en.yml (Slovenian)

* New translations simple_form.en.yml (Georgian)

* New translations simple_form.en.yml (Norwegian)

* New translations simple_form.en.yml (Polish)

* New translations simple_form.en.yml (Portuguese)

* New translations simple_form.en.yml (Russian)

* New translations simple_form.en.yml (Slovak)

* New translations simple_form.en.yml (Albanian)

* New translations simple_form.en.yml (Italian)

* New translations simple_form.en.yml (Serbian (Cyrillic))

* New translations simple_form.en.yml (Swedish)

* New translations simple_form.en.yml (Turkish)

* New translations simple_form.en.yml (Ukrainian)

* New translations simple_form.en.yml (Chinese Simplified)

* New translations simple_form.en.yml (Chinese Traditional)

* New translations simple_form.en.yml (Vietnamese)

* New translations simple_form.en.yml (Portuguese, Brazilian)

* New translations simple_form.en.yml (Indonesian)

* New translations simple_form.en.yml (Japanese)

* New translations simple_form.en.yml (Armenian)

* New translations simple_form.en.yml (Korean)

* New translations simple_form.en.yml (Arabic)

* New translations simple_form.en.yml (Dutch)

* New translations simple_form.en.yml (Thai)

* New translations en.yml (Ukrainian)

* New translations simple_form.en.yml (Esperanto)

* New translations en.json (Ukrainian)

* New translations simple_form.en.yml (Romanian)

* New translations simple_form.en.yml (French)

* New translations simple_form.en.yml (Spanish)

* New translations simple_form.en.yml (Afrikaans)

* New translations simple_form.en.yml (Bulgarian)

* New translations simple_form.en.yml (Hungarian)

* New translations simple_form.en.yml (Catalan)

* New translations simple_form.en.yml (Czech)

* New translations simple_form.en.yml (Danish)

* New translations simple_form.en.yml (German)

* New translations simple_form.en.yml (Greek)

* New translations simple_form.en.yml (Frisian)

* New translations simple_form.en.yml (Basque)

* New translations simple_form.en.yml (Finnish)

* New translations simple_form.en.yml (Hebrew)

* New translations simple_form.en.yml (Persian)

* New translations simple_form.en.yml (Tamil)

* New translations simple_form.en.yml (Sorani (Kurdish))

* New translations simple_form.en.yml (Scottish Gaelic)

* New translations simple_form.en.yml (Asturian)

* New translations simple_form.en.yml (Occitan)

* New translations simple_form.en.yml (Serbian (Latin))

* New translations simple_form.en.yml (Kurmanji (Kurdish))

* New translations simple_form.en.yml (Corsican)

* New translations simple_form.en.yml (Sinhala)

* New translations simple_form.en.yml (Sardinian)

* New translations simple_form.en.yml (Kabyle)

* New translations simple_form.en.yml (Ido)

* New translations simple_form.en.yml (Standard Moroccan Tamazight)

* New translations simple_form.en.yml (Breton)

* New translations simple_form.en.yml (Spanish, Argentina)

* New translations simple_form.en.yml (Latvian)

* New translations simple_form.en.yml (Spanish, Mexico)

* New translations simple_form.en.yml (Bengali)

* New translations simple_form.en.yml (Croatian)

* New translations simple_form.en.yml (Norwegian Nynorsk)

* New translations simple_form.en.yml (Kazakh)

* New translations simple_form.en.yml (Estonian)

* New translations simple_form.en.yml (Malayalam)

* New translations simple_form.en.yml (Welsh)

* New translations simple_form.en.yml (Chinese Traditional, Hong Kong)

* New translations simple_form.en.yml (Tatar)

* New translations activerecord.en.yml (Ukrainian)

* New translations simple_form.en.yml (Afrikaans)

* New translations simple_form.en.yml (Latvian)

* New translations en.yml (Icelandic)

* New translations simple_form.en.yml (Icelandic)

* New translations en.yml (Russian)

* New translations simple_form.en.yml (Danish)

* New translations simple_form.en.yml (Ido)

* New translations en.json (Spanish)

* New translations simple_form.en.yml (Polish)

* New translations en.yml (Korean)

* New translations simple_form.en.yml (Chinese Traditional)

* New translations simple_form.en.yml (Chinese Traditional)

* New translations en.json (Esperanto)

* New translations en.json (Esperanto)

* New translations simple_form.en.yml (Czech)

* New translations simple_form.en.yml (Hungarian)

* New translations en.yml (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.json (Esperanto)

* New translations en.yml (Galician)

* New translations en.json (Galician)

* New translations simple_form.en.yml (Galician)

* New translations en.json (Spanish)

* New translations en.json (Vietnamese)

* New translations simple_form.en.yml (Spanish)

* New translations simple_form.en.yml (Vietnamese)

* New translations en.json (Kurmanji (Kurdish))

* New translations activerecord.en.yml (Kurmanji (Kurdish))

* New translations simple_form.en.yml (Galician)

* New translations simple_form.en.yml (Polish)

* New translations simple_form.en.yml (Ukrainian)

* New translations simple_form.en.yml (Chinese Traditional)

* New translations simple_form.en.yml (Vietnamese)

* New translations simple_form.en.yml (Spanish)

* New translations simple_form.en.yml (Afrikaans)

* New translations simple_form.en.yml (Italian)

* New translations simple_form.en.yml (Danish)

* New translations simple_form.en.yml (Hungarian)

* New translations simple_form.en.yml (Ido)

* New translations simple_form.en.yml (Latvian)

* New translations en.yml (Esperanto)

* New translations simple_form.en.yml (Latvian)

* New translations en.yml (Esperanto)

* New translations en.json (Esperanto)

* New translations en.yml (Korean)

* New translations en.yml (Esperanto)

* New translations simple_form.en.yml (Ido)

* New translations simple_form.en.yml (Danish)

* New translations simple_form.en.yml (Chinese Traditional)

* New translations simple_form.en.yml (Slovenian)

* New translations simple_form.en.yml (Spanish)

* New translations simple_form.en.yml (Vietnamese)

* New translations simple_form.en.yml (Ukrainian)

* New translations en.yml (French)

* New translations en.json (French)

* New translations en.yml (French)

* New translations en.yml (Kurmanji (Kurdish))

* New translations simple_form.en.yml (French)

* New translations simple_form.en.yml (Kurmanji (Kurdish))

* New translations en.json (Sinhala)

* New translations activerecord.en.yml (Sinhala)

* New translations en.yml (Thai)

* New translations en.json (Thai)

* New translations simple_form.en.yml (Italian)

* New translations en.yml (Thai)

* New translations simple_form.en.yml (Thai)

* New translations simple_form.en.yml (Hungarian)

* New translations en.json (Japanese)

* New translations simple_form.en.yml (Polish)

* New translations en.yml (Thai)

* New translations en.yml (Portuguese)

* New translations en.json (Portuguese)

* New translations en.yml (Portuguese)

* New translations simple_form.en.yml (Portuguese)

* New translations activerecord.en.yml (Portuguese)

* New translations simple_form.en.yml (Russian)

* New translations en.yml (Thai)

* New translations simple_form.en.yml (Thai)

* New translations en.yml (French)

* New translations activerecord.en.yml (French)

* New translations en.yml (French)

* New translations en.json (French)

* New translations en.yml (French)

* New translations simple_form.en.yml (French)

* New translations en.yml (French)

* New translations simple_form.en.yml (French)

* New translations activerecord.en.yml (French)

* New translations en.json (Dutch)

* New translations en.yml (Dutch)

* New translations simple_form.en.yml (Dutch)

* New translations en.json (Dutch)

* New translations devise.en.yml (Dutch)

* New translations en.json (Welsh)

* New translations en.yml (Welsh)

* New translations simple_form.en.yml (Welsh)

* New translations doorkeeper.en.yml (Welsh)

* New translations en.yml (Galician)

* New translations simple_form.en.yml (Galician)

* New translations en.json (Albanian)

* New translations activerecord.en.yml (Albanian)

* New translations en.yml (Albanian)

* New translations simple_form.en.yml (Albanian)

* New translations activerecord.en.yml (Albanian)

* New translations doorkeeper.en.yml (Albanian)

* New translations devise.en.yml (Albanian)

* New translations en.yml (Portuguese)

* New translations en.json (Vietnamese)

* New translations en.yml (Esperanto)

* New translations en.yml (Esperanto)

* New translations simple_form.en.yml (Esperanto)

* New translations en.yml (Esperanto)

* New translations simple_form.en.yml (Esperanto)

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-07-15 10:20:58 +09:00
6ca0de9494 Fix nil error when rendering featured hashtags on profile (#18808)
Regression from #18795
2022-07-14 01:23:10 +02:00
e7aa2be828 Change how hashtags are normalized (#18795)
* Change how hashtags are normalized

* Fix tests
2022-07-13 15:03:28 +02:00
12ed2d793b Change custom emoji file size limit from 50 KB to 256 KB (#18788) 2022-07-09 22:07:17 +02:00
befbac3f1c Fix various in the user role management UI (#18777)
* Reword priority description

* Disable checkboxes for permissions you can't enable in role edition interface

* Set max priority in HTML attribute

* Explicitly link to role edition, do not link when you can't edit

* Reword priority description based on review
2022-07-07 18:18:23 +02:00
25e076505e ip_cleanup_scheduler: Make IP and session retention configurable (#18757) 2022-07-07 03:14:28 +02:00
c9d6571da8 New Crowdin updates (#18716)
* New translations en.yml (Portuguese, Brazilian)

* New translations en.yml (Norwegian Nynorsk)

* New translations en.yml (Telugu)

* New translations en.yml (Malay)

* New translations en.yml (Latvian)

* New translations en.yml (Estonian)

* New translations en.yml (Kazakh)

* New translations en.yml (Spanish, Argentina)

* New translations en.yml (Croatian)

* New translations en.yml (Indonesian)

* New translations en.yml (Persian)

* New translations en.yml (Tamil)

* New translations en.json (Spanish, Mexico)

* New translations en.yml (Spanish, Mexico)

* New translations en.yml (Bengali)

* New translations en.yml (Malayalam)

* New translations en.yml (Sinhala)

* New translations en.yml (Breton)

* New translations en.yml (Tatar)

* New translations en.yml (Chinese Traditional, Hong Kong)

* New translations en.yml (Welsh)

* New translations en.yml (Standard Moroccan Tamazight)

* New translations en.yml (Scottish Gaelic)

* New translations en.yml (Asturian)

* New translations en.yml (Occitan)

* New translations en.yml (Serbian (Latin))

* New translations en.yml (Kurmanji (Kurdish))

* New translations en.yml (Sorani (Kurdish))

* New translations en.yml (Corsican)

* New translations en.yml (Sardinian)

* New translations en.yml (Kabyle)

* New translations en.yml (Ido)

* New translations simple_form.en.yml (Spanish, Mexico)

* New translations activerecord.en.yml (Japanese)

* New translations activerecord.en.yml (Finnish)

* New translations doorkeeper.en.yml (Danish)

* New translations activerecord.en.yml (German)

* New translations doorkeeper.en.yml (German)

* New translations activerecord.en.yml (Greek)

* New translations doorkeeper.en.yml (Greek)

* New translations activerecord.en.yml (Frisian)

* New translations doorkeeper.en.yml (Frisian)

* New translations activerecord.en.yml (Basque)

* New translations doorkeeper.en.yml (Basque)

* New translations doorkeeper.en.yml (Finnish)

* New translations doorkeeper.en.yml (Czech)

* New translations activerecord.en.yml (Hebrew)

* New translations doorkeeper.en.yml (Hebrew)

* New translations activerecord.en.yml (Hungarian)

* New translations doorkeeper.en.yml (Hungarian)

* New translations activerecord.en.yml (Armenian)

* New translations doorkeeper.en.yml (Armenian)

* New translations activerecord.en.yml (Italian)

* New translations doorkeeper.en.yml (Italian)

* New translations activerecord.en.yml (Danish)

* New translations activerecord.en.yml (Czech)

* New translations activerecord.en.yml (French)

* New translations activerecord.en.yml (Romanian)

* New translations doorkeeper.en.yml (Romanian)

* New translations doorkeeper.en.yml (Catalan)

* New translations doorkeeper.en.yml (French)

* New translations activerecord.en.yml (Spanish)

* New translations doorkeeper.en.yml (Spanish)

* New translations activerecord.en.yml (Afrikaans)

* New translations doorkeeper.en.yml (Afrikaans)

* New translations activerecord.en.yml (Arabic)

* New translations doorkeeper.en.yml (Arabic)

* New translations activerecord.en.yml (Bulgarian)

* New translations doorkeeper.en.yml (Bulgarian)

* New translations activerecord.en.yml (Catalan)

* New translations doorkeeper.en.yml (Japanese)

* New translations doorkeeper.en.yml (Chinese Traditional)

* New translations activerecord.en.yml (Swedish)

* New translations doorkeeper.en.yml (Swedish)

* New translations activerecord.en.yml (Turkish)

* New translations doorkeeper.en.yml (Turkish)

* New translations activerecord.en.yml (Ukrainian)

* New translations doorkeeper.en.yml (Ukrainian)

* New translations activerecord.en.yml (Chinese Simplified)

* New translations doorkeeper.en.yml (Chinese Simplified)

* New translations activerecord.en.yml (Chinese Traditional)

* New translations activerecord.en.yml (Serbian (Cyrillic))

* New translations activerecord.en.yml (Vietnamese)

* New translations doorkeeper.en.yml (Vietnamese)

* New translations activerecord.en.yml (Galician)

* New translations doorkeeper.en.yml (Galician)

* New translations activerecord.en.yml (Icelandic)

* New translations doorkeeper.en.yml (Icelandic)

* New translations doorkeeper.en.yml (Portuguese, Brazilian)

* New translations activerecord.en.yml (Indonesian)

* New translations doorkeeper.en.yml (Indonesian)

* New translations doorkeeper.en.yml (Serbian (Cyrillic))

* New translations doorkeeper.en.yml (Albanian)

* New translations activerecord.en.yml (Georgian)

* New translations doorkeeper.en.yml (Georgian)

* New translations activerecord.en.yml (Korean)

* New translations doorkeeper.en.yml (Korean)

* New translations doorkeeper.en.yml (Dutch)

* New translations activerecord.en.yml (Norwegian)

* New translations doorkeeper.en.yml (Norwegian)

* New translations activerecord.en.yml (Albanian)

* New translations activerecord.en.yml (Polish)

* New translations doorkeeper.en.yml (Polish)

* New translations activerecord.en.yml (Portuguese)

* New translations doorkeeper.en.yml (Portuguese)

* New translations activerecord.en.yml (Russian)

* New translations doorkeeper.en.yml (Russian)

* New translations activerecord.en.yml (Slovak)

* New translations doorkeeper.en.yml (Slovak)

* New translations activerecord.en.yml (Slovenian)

* New translations doorkeeper.en.yml (Slovenian)

* New translations activerecord.en.yml (Persian)

* New translations doorkeeper.en.yml (Persian)

* New translations activerecord.en.yml (Kazakh)

* New translations activerecord.en.yml (Tamil)

* New translations doorkeeper.en.yml (Hindi)

* New translations activerecord.en.yml (Hindi)

* New translations doorkeeper.en.yml (Latvian)

* New translations activerecord.en.yml (Latvian)

* New translations doorkeeper.en.yml (Estonian)

* New translations activerecord.en.yml (Estonian)

* New translations doorkeeper.en.yml (Kazakh)

* New translations doorkeeper.en.yml (Norwegian Nynorsk)

* New translations activerecord.en.yml (Bengali)

* New translations activerecord.en.yml (Norwegian Nynorsk)

* New translations doorkeeper.en.yml (Tamil)

* New translations activerecord.en.yml (Spanish, Argentina)

* New translations doorkeeper.en.yml (Spanish, Argentina)

* New translations doorkeeper.en.yml (Spanish, Mexico)

* New translations activerecord.en.yml (Spanish, Mexico)

* New translations activerecord.en.yml (Marathi)

* New translations doorkeeper.en.yml (Marathi)

* New translations activerecord.en.yml (Thai)

* New translations doorkeeper.en.yml (Thai)

* New translations activerecord.en.yml (Croatian)

* New translations doorkeeper.en.yml (Croatian)

* New translations doorkeeper.en.yml (Malayalam)

* New translations activerecord.en.yml (Scottish Gaelic)

* New translations doorkeeper.en.yml (Breton)

* New translations activerecord.en.yml (Breton)

* New translations activerecord.en.yml (Esperanto)

* New translations activerecord.en.yml (Malayalam)

* New translations doorkeeper.en.yml (Tatar)

* New translations activerecord.en.yml (Tatar)

* New translations doorkeeper.en.yml (Chinese Traditional, Hong Kong)

* New translations activerecord.en.yml (Chinese Traditional, Hong Kong)

* New translations doorkeeper.en.yml (Welsh)

* New translations activerecord.en.yml (Welsh)

* New translations doorkeeper.en.yml (Scottish Gaelic)

* New translations activerecord.en.yml (Asturian)

* New translations activerecord.en.yml (Standard Moroccan Tamazight)

* New translations doorkeeper.en.yml (Ido)

* New translations activerecord.en.yml (Ido)

* New translations doorkeeper.en.yml (Kabyle)

* New translations activerecord.en.yml (Kabyle)

* New translations doorkeeper.en.yml (Sardinian)

* New translations activerecord.en.yml (Occitan)

* New translations activerecord.en.yml (Sardinian)

* New translations doorkeeper.en.yml (Corsican)

* New translations activerecord.en.yml (Corsican)

* New translations doorkeeper.en.yml (Sorani (Kurdish))

* New translations activerecord.en.yml (Sorani (Kurdish))

* New translations doorkeeper.en.yml (Kurmanji (Kurdish))

* New translations activerecord.en.yml (Kurmanji (Kurdish))

* New translations doorkeeper.en.yml (Serbian (Latin))

* New translations activerecord.en.yml (Serbian (Latin))

* New translations doorkeeper.en.yml (Occitan)

* New translations doorkeeper.en.yml (Standard Moroccan Tamazight)

* New translations en.yml (Korean)

* New translations simple_form.en.yml (Korean)

* New translations en.yml (Chinese Traditional)

* New translations en.yml (Spanish, Argentina)

* New translations simple_form.en.yml (Chinese Traditional)

* New translations simple_form.en.yml (Spanish, Argentina)

* New translations activerecord.en.yml (Korean)

* New translations activerecord.en.yml (Chinese Traditional)

* New translations activerecord.en.yml (Spanish, Argentina)

* New translations en.yml (Galician)

* New translations en.yml (Chinese Traditional)

* New translations en.yml (Galician)

* New translations simple_form.en.yml (Galician)

* New translations en.yml (Chinese Traditional)

* New translations activerecord.en.yml (Galician)

* New translations en.yml (Catalan)

* New translations en.yml (Slovenian)

* New translations en.yml (Turkish)

* New translations en.yml (Catalan)

* New translations en.yml (Czech)

* New translations en.yml (Greek)

* New translations simple_form.en.yml (Slovenian)

* New translations activerecord.en.yml (Slovenian)

* New translations en.yml (Turkish)

* New translations en.yml (Russian)

* New translations simple_form.en.yml (Russian)

* New translations simple_form.en.yml (Turkish)

* New translations activerecord.en.yml (Russian)

* New translations activerecord.en.yml (Turkish)

* New translations en.yml (Hungarian)

* New translations en.yml (Polish)

* New translations en.yml (Icelandic)

* New translations simple_form.en.yml (Icelandic)

* New translations en.yml (Polish)

* New translations activerecord.en.yml (Icelandic)

* New translations en.json (Esperanto)

* New translations en.yml (Danish)

* New translations en.yml (Italian)

* New translations devise.en.yml (Esperanto)

* New translations en.json (Esperanto)

* New translations simple_form.en.yml (Esperanto)

* New translations en.yml (Danish)

* New translations en.yml (Italian)

* New translations simple_form.en.yml (Italian)

* New translations activerecord.en.yml (Italian)

* New translations en.yml (Danish)

* New translations simple_form.en.yml (Czech)

* New translations en.yml (Danish)

* New translations en.yml (Vietnamese)

* New translations simple_form.en.yml (Vietnamese)

* New translations activerecord.en.yml (Vietnamese)

* New translations en.yml (Latvian)

* New translations simple_form.en.yml (Latvian)

* New translations activerecord.en.yml (Latvian)

* New translations en.yml (Icelandic)

* New translations en.yml (Spanish)

* New translations en.yml (Icelandic)

* New translations en.yml (Czech)

* New translations simple_form.en.yml (Spanish)

* New translations activerecord.en.yml (Spanish)

* New translations en.yml (Czech)

* New translations en.yml (Czech)

* New translations en.yml (Czech)

* New translations en.yml (Kurmanji (Kurdish))

* New translations simple_form.en.yml (Kurmanji (Kurdish))

* New translations en.yml (Esperanto)

* New translations en.json (Esperanto)

* New translations simple_form.en.yml (Esperanto)

* New translations en.yml (Czech)

* New translations simple_form.en.yml (Czech)

* New translations en.yml (Czech)

* New translations en.yml (Czech)

* New translations simple_form.en.yml (Czech)

* New translations en.yml (Czech)

* New translations en.json (Esperanto)

* New translations simple_form.en.yml (Czech)

* New translations en.yml (Asturian)

* New translations simple_form.en.yml (Asturian)

* New translations en.yml (Czech)

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-07-07 05:58:31 +09:00
0665ba8a23 Fix incorrect param in role card link (#18776) 2022-07-05 20:01:50 +02:00
44b2ee3485 Add customizable user roles (#18641)
* Add customizable user roles

* Various fixes and improvements

* Add migration for old settings and fix tootctl role management
2022-07-05 02:41:40 +02:00
1b4054256f Fix crash when a remote Flag activity mentions a private post (#18760)
* Add tests

* Fix crash when a remote Flag activity mentions a private post
2022-07-04 11:08:30 +02:00
a233a9bfb5 Remove dead code in WebUI filtering code (#18745) 2022-06-30 10:39:29 +02:00
3c24f19afe Fix reblogged statuses being erroneously shown as filtered (#18744) 2022-06-30 09:51:55 +02:00
df27953f96 Support audio/vnd.wave (#18737)
See: https://datatracker.ietf.org/doc/html/rfc2361
And Misskey uses this mime type for wav file.
2022-06-28 19:49:35 +02:00
02851848e9 Revamp post filtering system (#18058)
* Add model for custom filter keywords

* Use CustomFilterKeyword internally

Does not change the API

* Fix /filters/edit and /filters/new

* Add migration tests

* Remove whole_word column from custom_filters (covered by custom_filter_keywords)

* Redesign /filters

Instead of a list, present a card that displays more information and handles
multiple keywords per filter.

* Redesign /filters/new and /filters/edit to add and remove keywords

This adds a new gem dependency: cocoon, as well as a npm dependency:
cocoon-js-vanilla. Those are used to easily populate and remove form fields
from the user interface when manipulating multiple keyword filters at once.

* Add /api/v2/filters to edit filter with multiple keywords

Entities:
- `Filter`: `id`, `title`, `filter_action` (either `hide` or `warn`), `context`
  `keywords`
- `FilterKeyword`: `id`, `keyword`, `whole_word`

API endpoits:
- `GET /api/v2/filters` to list filters (including keywords)
- `POST /api/v2/filters` to create a new filter
  `keywords_attributes` can also be passed to create keywords in one request
- `GET /api/v2/filters/:id` to read a particular filter
- `PUT /api/v2/filters/:id` to update a new filter
  `keywords_attributes` can also be passed to edit, delete or add keywords in
   one request
- `DELETE /api/v2/filters/:id` to delete a particular filter
- `GET /api/v2/filters/:id/keywords` to list keywords for a filter
- `POST /api/v2/filters/:filter_id/keywords/:id` to add a new keyword to a
   filter
- `GET /api/v2/filter_keywords/:id` to read a particular keyword
- `PUT /api/v2/filter_keywords/:id` to edit a particular keyword
- `DELETE /api/v2/filter_keywords/:id` to delete a particular keyword

* Change from `irreversible` boolean to `action` enum

* Remove irrelevent `irreversible_must_be_within_context` check

* Fix /filters/new and /filters/edit with update for filter_action

* Fix Rubocop/Codeclimate complaining about task names

* Refactor FeedManager#phrase_filtered?

This moves regexp building and filter caching to the `CustomFilter` class.

This does not change the functional behavior yet, but this changes how the
cache is built, doing per-custom_filter regexps so that filters can be matched
independently, while still offering caching.

* Perform server-side filtering and output result in REST API

* Fix numerous filters_changed events being sent when editing multiple keywords at once

* Add some tests

* Use the new API in the WebUI

- use client-side logic for filters we have fetched rules for.
  This is so that filter changes can be retroactively applied without
  reloading the UI.
- use server-side logic for filters we haven't fetched rules for yet
  (e.g. network error, or initial timeline loading)

* Minor optimizations and refactoring

* Perform server-side filtering on the streaming server

* Change the wording of filter action labels

* Fix issues pointed out by linter

* Change design of “Show anyway” link in accordence to review comments

* Drop “irreversible” filtering behavior

* Move /api/v2/filter_keywords to /api/v1/filters/keywords

* Rename `filter_results` attribute to `filtered`

* Rename REST::LegacyFilterSerializer to REST::V1::FilterSerializer

* Fix systemChannelId value in streaming server

* Simplify code by removing client-side filtering code

The simplifcation comes at a cost though: filters aren't retroactively
applied anymore.
2022-06-28 09:42:13 +02:00
2936f42a14 Add notifications for new reports (#18697) 2022-06-27 09:30:15 +02:00
829b978a89 New Crowdin updates (#18671)
* New translations en.json (Esperanto)

* New translations en.json (Esperanto)

* New translations en.json (Esperanto)

* New translations en.yml (Korean)

* New translations simple_form.en.yml (Korean)

* New translations activerecord.en.yml (Korean)

* New translations en.yml (German)

* New translations en.yml (Dutch)

* New translations simple_form.en.yml (Dutch)

* New translations activerecord.en.yml (Dutch)

* New translations en.yml (Dutch)

* New translations en.yml (Icelandic)

* New translations en.yml (Icelandic)

* New translations simple_form.en.yml (Icelandic)

* New translations activerecord.en.yml (Icelandic)

* New translations en.yml (Thai)

* New translations en.json (Thai)

* New translations simple_form.en.yml (Thai)

* New translations activerecord.en.yml (Thai)

* New translations activerecord.en.yml (Indonesian)

* New translations en.yml (Turkish)

* New translations en.json (Galician)

* New translations en.yml (Slovenian)

* New translations en.yml (Galician)

* New translations en.json (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.json (Esperanto)

* New translations en.json (Esperanto)

* New translations en.yml (Galician)

* New translations en.json (Esperanto)

* New translations en.json (Esperanto)

* New translations en.json (Esperanto)

* New translations simple_form.en.yml (Galician)

* New translations en.json (Esperanto)

* New translations en.json (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.yml (Esperanto)

* New translations en.json (Esperanto)

* New translations en.yml (Ukrainian)

* New translations en.yml (Ukrainian)

* Run `yarn manage:translations`

* Run `bundle exec i18n-tasks normalize`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-06-26 12:08:08 +09:00
35588d09e2 Add /api/v1/admin/domain_allows (#18668)
- `GET /api/v1/admin/domain_allows` lists allowed domains
- `GET /api/v1/admin/domain_allows/:id` shows one by ID
- `DELETE /api/v1/admin/domain_allows/:id` deletes a given domain from the list
  of allowed domains
- `POST /api/v1/admin/domain_allows` to allow a new domain:
  if that domain is already allowed, the existing DomainAllow will be returned
2022-06-23 23:12:01 +02:00
9c571a95db Fix missing , (#18660) 2022-06-23 23:10:03 +02:00
6c2d3038f4 Fix CDN_HOST not affected on full_asset_url (#18662)
* Fix CDN_HOST not affected to assets url

* Fix typo
2022-06-23 23:09:32 +02:00