Commit Graph

5676 Commits (5a6b0ce0511a7e8479dadf64d2460ece8b851f5d)

Author SHA1 Message Date
Eugen Rochko 909c31a765 Fix error within error when limiting backtrace to 3 lines (#13120)
Fix #13086, close #13113
2020-05-10 10:30:27 +02:00
ThibG e9227d8c10 Remove confusing “You are already signed in.” flash message (#13547)
When attempting to access the log-in page while already logged in,
Devise's `require_no_authentication` kicks in and sets a flash
message “You are already signed in.”

In almost all cases, this also causes a redirect to /web, which
does not display or clear flash messages, thus leaving the message
to a potentially much later date, like for instance, accessing
/preferences several minutes after being redirected to /web.
2020-05-10 10:16:39 +02:00
ThibG 41536557be Improve RSS entries for statuses (#13592)
* Improve RSS entries for statuses

- Render polls in both accounts and tags serializers
- Refactor RSS serializers
- Change title preview to include ellipsis when truncated
- Change title preview to show CW instead of toot text
- Add tests

* Remove title from OEmbed serialization

Twitter doesn't serialize title either, and tihs allows us to move the
title formatting code to the RSS serializers.
2020-05-10 09:50:54 +02:00
ThibG b20d0db1eb Remove 'unsafe-inline' from Content-Security-Policy style-src (#13679)
* Make sure wicg-inert doesn't rely on inline CSS

* Remove unsafe-inline from style-src
2020-05-08 21:22:57 +02:00
Eugen Rochko 86207f5421 Fix failing jest test (#13681) 2020-05-08 21:21:57 +02:00
ThibG 5479d33843 Fix own following/followers not showing muted users (#13614)
Fixes #13612
2020-05-08 20:36:34 +02:00
Taras Gogol 1a03de8592 Fix followings list order | Issue #13538 (#13676) 2020-05-08 20:17:16 +02:00
Eugen Rochko e80d4479c7 Add more ActivityPub controller tests (#13590) 2020-05-03 22:19:24 +02:00
ThibG 20ffc12cda Fix use of inline CSS in public pages (#13576)
Change `account_link_to` to use an image tag rather than some
inline CSS. Dropped the `size` parameter in the process, but it wasn't
used for anything except the default value of 36px.

Dropped CSS rules that were always overriden, and defaulted to 36px width
and height instead.
2020-05-03 22:04:18 +02:00
Yamagishi Kazutoshi cf55546c41 Revert "improve status title (#8596)" (#13591)
This reverts commit dff05cd398.
2020-05-03 18:48:13 +02:00
Eugen Rochko 0ca06d0ba9 Add more tests for ActivityPub controllers (#13585) 2020-05-03 16:30:36 +02:00
kaiyou 7a65e2f0db Only check locally when deduplicating usernames (#13581)
When deduplicating account usernames for OAuthable users, the routine did check if any account was known with that username, including remote accounts. This caused some unnecessary deduplication, and usernames ending with unexpected trailing _1.
This fixes #13580
2020-04-30 14:39:05 +02:00
ThibG a30829deee Fix admin-facing uses of inline CSS (#13575)
* Move .back-button inline styles to CSS file

All occurrences of the back-button CSS class used the same inline
CSS rules, so moved them over to the CSS file

* Fix “Add new domain block” button using inline CSS

* Replace common pattern of inline-styled button boxes by a CSS class

In particular, switching from `float: left/right` to a flexbox with
`justify-content: space-between`. This implied changing the order of
a few HTML tags and adding an empty `div` in one case.

Also removed a `margin-bottom` rule that wasn't needed due to the
margins of surrounding elements.

* Move account admin view inline CSS to CSS file
2020-04-28 19:39:16 +02:00
ThibG e88a05f707 Fix page incorrectly scrolling when bringing up dropdown menus (#13574)
Fixes #13573

For some reason (I suspect this may be related to focusing the item before it
got drown by the browser), Firefox scrolls to top when bringing up dropdown
menus with pre-selected items.

This commit uses the “preventScroll” option as, due to the placement behavior,
the menu should be visible anyway and not trigger scrolling.
2020-04-28 13:19:39 +02:00
ThibG 3b7373ed4c Fix end-user-facing uses of inline CSS (#13438)
* Move some inline styles to CSS files

* Move default_account_display_name span to fix useless tags with duplicate id

* Change handling of public pages spoiler text from inline CSS to dataset attribute

* Use the `dir` HTML attribute instead of inline CSS

* Move status action bar inline CSS to CSS file

* Hide logo resources from CSS file, not inline CSS

Fixes #11601

* Move translation prompt styling from inline CSS to CSS file

* Move “invited by” styling on registration form from inline to CSS file

* Use the progress tag to display poll results in JS fallback

* Fix poll results JS-less fallback when the user has voted for an option

* Change account public page “moved” notice to use img tags instead of inline CSS

* Move OTP hint inline CSS to SCSS file

* Hide JS-less fallback vote progressbars from accessibility tools

Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
2020-04-28 10:16:55 +02:00
ThibG df5867f072 Refactor/cleanup TIMELINE_DELETE-related code (#13175) 2020-04-28 09:53:42 +02:00
ThibG f53bd1bef6 Fix messed up z-index when NoScript blocks media/previews (#13449)
Fixes #13444
2020-04-28 09:44:17 +02:00
ThibG 207c5ab2a3 Fix /public showing public instead of community timeline for logged-in users (#13499) 2020-04-28 09:43:45 +02:00
ThibG 09162ceb7c Add `invites_enabled` to API (#13501) 2020-04-28 09:43:34 +02:00
Eugen Rochko adfb22a9dd Add separate cache directory for non-local uploads (#12821) 2020-04-26 23:29:08 +02:00
Eugen Rochko 96920a7b8e Fix not being able to resolve public resources in development environment (#13505) 2020-04-25 22:01:08 +02:00
ThibG cd3a0a17bc Fix uninformative error message when uploading unsupported image files (#13540)
Attempting to upload image files that the browser is unable to load results
in “Oops! An unexpected error occurred.”

This commit changes the error handling so that an unprocessable image results
in the file being sent anyway, which might cover a few corner cases, and
provide a slightly better error message.
2020-04-25 12:27:29 +02:00
ThibG 3526163340 Fix expanded video player issues (#13541)
Fixes #13536

- Expanding a paused video doesn't autoplay anymore
- Default volume level for the expanded video inherited from the original video

Position/playing state/volume are carried over from the original video player
to the modal, but they're not reported back to the modal as it would require
deeper changes.
2020-04-25 12:16:05 +02:00
Takeshi Umeda f365b9d6cd Fix enable/disable relay failures (#13535) 2020-04-23 22:04:18 +02:00
Irie Aoi cf1bf9dda9 Set max-width and max-height to gif video (#13533) 2020-04-23 15:49:33 +02:00
ThibG 69696c62b1 Fix and refactor keyboard navigation in dropdown menus (#13528)
Fixes #13527

- Fixes caught keyboard events being needlessly propagated
- Let up/down arrows wrap around like the tab key does
- Refactor common code
2020-04-21 15:13:26 +02:00
sternenseemann 674005c08e Allow users to delete their header and avatar (#13234)
This is achieved by sending a DELETE request to
/settings/profile/pictures/{avatar,header} via a link that is part of
the upload form's hint of the respective picture.
2020-04-20 14:03:03 +02:00
D Anzorge 945c8e207e Update Twemoji to 12.1.5 (#13021)
* Update Twemoji to 12.1.5

SVGs from Twemoji repo https://github.com/twitter/twemoji

* Update emoji_map.json to Unicode 12
2020-04-19 23:38:31 +02:00
Takeshi Umeda f5606cdab4 Add local only to hashtag timeline (#13502) 2020-04-18 21:52:39 +02:00
ThibG 2444658e4b Fix uploaded image orientation in some browsers (#13493)
Some browsers (at least recent Chrome versions) automatically take
image metadata into account when drawing images into a canvas.
There seem to be no way to prevent that behavior, and the only
way to detect it seems to compare with a known image.

See: https://github.com/w3c/csswg-drafts/issues/4666
Solution adapted from: 1e4df70782
2020-04-18 15:37:03 +02:00
ThibG 0f3317fbe2 Fix not being able to vote (#13490)
Fix regression introduced by 53f9f8a4ce
2020-04-17 21:54:25 +02:00
ThibG a93fc74d31 Fix admin actions log crash when displaying updates of deleted announcements (#13489)
Fixes #13487
2020-04-17 19:54:58 +02:00
Gurgen Hayrapetyan 53f9f8a4ce Fix Poll fetchPoll action not being debounced. (#13485)
* Fix Poll fetchPoll action not being debounced.

* Fix unused import in the Poll component
2020-04-16 20:16:20 +02:00
Takeshi Umeda 8eca96eb77 Fix DeliveryWorker not to call failure_tracker when inbox_url is unavailable (#13482) 2020-04-16 08:04:10 +02:00
ThibG c162748a14 Fix confusing error when failing to add an alias to an unknown account (#13480)
Follow-up to #13452, fixing broken `uri.nil?` test.

Also remove the separate check for `uri` presence, as that would result
in a “Please review 2 errors below” while only one would be listed.
2020-04-15 20:33:53 +02:00
Eugen Rochko 2d3219549b Change delivery failure tracking to work with hostnames instead of URLs (#13437) 2020-04-15 20:33:24 +02:00
ThibG add34dd132 Fix “Email changed” notification sometimes having wrong e-mail (#13475)
* Fix “Email changed” notification sometimes having wrong e-mail

Fixes #6778

The root of the issue is that `send_devise_notification` was called before
the changes were properly commited to the database, causing the mailer to
pick previous values if running too early.

Devise's documentation provides guidance on how to handle that[1][2], however,
I have found it to not be working, as the following happens, in that order:
- `send_devise_notification` is called for the `email_changed` notification.
  In that case, `changed?` is false and `saved_changes?` is true, so
  if we use the former, we have the same issue.
- the `after_commit` hook is called
- `send_devise_notification` is called for the `confirmation_instructions`
  notification.
  In that case, `changed?` is still false, and `saved_changes?` still true,
  so if we use the latter, that second notification email is simply not
  going to be sent (as we would be queuing the notification *after*
  executing the after_commit hook).

This is because it may be called from either an `after_update` or
`after_commit` hook, the difference not being a call to `save` but the
transaction actually being committed to the database. This may arguably
be a bug in Devise, or Devise's notification.

The proposed workaround is inspired by Devise's documentation but checks
whether a transaction is open to make the call whether to immediately
send the notification or defer it to the `after_commit` hook.

[1]: https://www.rubydoc.info/github/plataformatec/devise/Devise%2FModels%2FAuthenticatable:send_devise_notification
[2]: 406915cb78/lib/devise/models/authenticatable.rb (L133-L194)

* Fix cases when sending notifications without changing the model

* Defer sending if and only if in transaction including current record
2020-04-15 16:13:44 +02:00
ThibG dedac235bc Fix account aliases page (#13452)
* Fix error not being displayed when adding an account alias, add error for self-references

Co-Authored-By: Mélanie Chauvel (ariasuni) <perso@hack-libre.org>

* Add “You have no aliases.” note in confusing empty aliases table

Co-Authored-By: Mélanie Chauvel (ariasuni) <perso@hack-libre.org>

Co-authored-by: Mélanie Chauvel (ariasuni) <perso@hack-libre.org>
2020-04-13 06:41:43 +02:00
Leonie a1cc7b361c Fix API footer link in Web UI (#13441)
Co-authored-by: koyu <me@koyu.spac>
2020-04-12 13:38:14 +02:00
ThibG 9d57af78d2 Fix WebUI pagination of following, followers, follow requests, blocks and mutes lists (#13445)
* Fix following, followers and follow requests pagination

* Fix pagination of blocks and mutes
2020-04-12 13:38:00 +02:00
ThibG b746bda60e Fix styling of polls in JS-less fallback on public pages (#13436) 2020-04-07 18:21:58 +02:00
Eugen Rochko 331bc98f25 Fix trying to delete already deleted file when post-processing (#13406)
Fix #13403
2020-04-06 14:11:22 +02:00
Eugen Rochko 7745695860 New Crowdin translations (#13317)
* New translations en.yml (Italian)
[ci skip]

* New translations doorkeeper.en.yml (Indonesian)
[ci skip]

* New translations simple_form.en.yml (Indonesian)
[ci skip]

* New translations en.yml (Indonesian)
[ci skip]

* New translations devise.en.yml (Ido)
[ci skip]

* New translations doorkeeper.en.yml (Ido)
[ci skip]

* New translations en.json (Hebrew)
[ci skip]

* New translations activerecord.en.yml (Georgian)
[ci skip]

* New translations doorkeeper.en.yml (Georgian)
[ci skip]

* New translations en.yml (German)
[ci skip]

* New translations simple_form.en.yml (German)
[ci skip]

* New translations doorkeeper.en.yml (German)
[ci skip]

* New translations en.yml (Greek)
[ci skip]

* New translations simple_form.en.yml (Greek)
[ci skip]

* New translations doorkeeper.en.yml (Greek)
[ci skip]

* New translations en.yml (Hebrew)
[ci skip]

* New translations simple_form.en.yml (Hebrew)
[ci skip]

* New translations activerecord.en.yml (Hebrew)
[ci skip]

* New translations devise.en.yml (Hebrew)
[ci skip]

* New translations doorkeeper.en.yml (Hebrew)
[ci skip]

* New translations en.yml (Hindi)
[ci skip]

* New translations en.yml (Galician)
[ci skip]

* New translations doorkeeper.en.yml (Esperanto)
[ci skip]

* New translations doorkeeper.en.yml (French)
[ci skip]

* New translations devise.en.yml (French)
[ci skip]

* New translations simple_form.en.yml (French)
[ci skip]

* New translations en.yml (French)
[ci skip]

* New translations doorkeeper.en.yml (Finnish)
[ci skip]

* New translations simple_form.en.yml (Finnish)
[ci skip]

* New translations en.yml (Finnish)
[ci skip]

* New translations en.json (Finnish)
[ci skip]

* New translations doorkeeper.en.yml (Estonian)
[ci skip]

* New translations simple_form.en.yml (Estonian)
[ci skip]

* New translations en.yml (Estonian)
[ci skip]

* New translations doorkeeper.en.yml (Welsh)
[ci skip]

* New translations activerecord.en.yml (Serbian (Latin))
[ci skip]

* New translations devise.en.yml (Serbian (Latin))
[ci skip]

* New translations devise.en.yml (Urdu (Pakistan))
[ci skip]

* New translations activerecord.en.yml (Vietnamese)
[ci skip]

* New translations devise.en.yml (Vietnamese)
[ci skip]

* New translations en.yml (Tamil)
[ci skip]

* New translations en.yml (Tamil)
[ci skip]

* New translations simple_form.en.yml (Tamil)
[ci skip]

* New translations simple_form.en.yml (Tamil)
[ci skip]

* New translations en.yml (Thai)
[ci skip]

* New translations en.yml (Basque)
[ci skip]

* New translations en.json (Basque)
[ci skip]

* New translations simple_form.en.yml (Basque)
[ci skip]

* New translations simple_form.en.yml (Basque)
[ci skip]

* New translations en.yml (Galician)
[ci skip]

* New translations en.yml (German)
[ci skip]

* New translations en.yml (French)
[ci skip]

* New translations devise.en.yml (German)
[ci skip]

* New translations en.yml (Catalan)
[ci skip]

* New translations en.yml (Swedish)
[ci skip]

* New translations en.yml (Persian)
[ci skip]

* New translations en.yml (Greek)
[ci skip]

* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]

* New translations en.yml (Chinese Traditional)
[ci skip]

* New translations en.yml (Portuguese, Brazilian)
[ci skip]

* New translations en.yml (Spanish, Argentina)
[ci skip]

* New translations en.yml (Spanish)
[ci skip]

* New translations en.yml (Korean)
[ci skip]

* New translations en.yml (Italian)
[ci skip]

* New translations simple_form.en.yml (Italian)
[ci skip]

* New translations en.yml (Corsican)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations en.yml (Korean)
[ci skip]

* New translations en.yml (Tamil)
[ci skip]

* New translations en.yml (Spanish)
[ci skip]

* New translations en.yml (Spanish, Argentina)
[ci skip]

* New translations simple_form.en.yml (Indonesian)
[ci skip]

* New translations simple_form.en.yml (Indonesian)
[ci skip]

* New translations en.yml (Indonesian)
[ci skip]

* New translations en.yml (Indonesian)
[ci skip]

* New translations en.yml (Indonesian)
[ci skip]

* New translations en.yml (Indonesian)
[ci skip]

* New translations en.yml (Indonesian)
[ci skip]

* New translations en.yml (Slovak)
[ci skip]

* New translations en.yml (Spanish, Argentina)
[ci skip]

* New translations en.yml (Hungarian)
[ci skip]

* New translations simple_form.en.yml (Slovak)
[ci skip]

* New translations en.yml (Slovak)
[ci skip]

* New translations en.json (Slovak)
[ci skip]

* New translations en.yml (Portuguese)
[ci skip]

* New translations en.json (Portuguese)
[ci skip]

* New translations en.json (Portuguese)
[ci skip]

* New translations en.yml (Russian)
[ci skip]

* New translations en.yml (Japanese)
[ci skip]

* New translations en.yml (Chinese Simplified)
[ci skip]

* New translations en.yml (Russian)
[ci skip]

* New translations en.json (Galician)
[ci skip]

* New translations devise.en.yml (Galician)
[ci skip]

* New translations en.json (Finnish)
[ci skip]

* New translations en.yml (Finnish)
[ci skip]

* New translations en.json (Finnish)
[ci skip]

* New translations en.json (Finnish)
[ci skip]

* New translations en.yml (Korean)
[ci skip]

* New translations en.yml (Catalan)
[ci skip]

* New translations en.yml (Arabic)
[ci skip]

* New translations en.json (French)
[ci skip]

* New translations en.yml (French)
[ci skip]

* New translations en.yml (Spanish, Argentina)
[ci skip]

* New translations en.yml (Spanish)
[ci skip]

* New translations en.yml (Persian)
[ci skip]

* New translations en.yml (Catalan)
[ci skip]

* New translations en.yml (Arabic)
[ci skip]

* New translations simple_form.en.yml (Persian)
[ci skip]

* New translations en.yml (Persian)
[ci skip]

* New translations en.yml (Spanish)
[ci skip]

* New translations en.yml (Spanish, Argentina)
[ci skip]

* New translations en.yml (French)
[ci skip]

* New translations en.yml (Korean)
[ci skip]

* New translations en.json (Hungarian)
[ci skip]

* New translations en.yml (Hungarian)
[ci skip]

* New translations en.yml (Spanish, Argentina)
[ci skip]

* New translations en.yml (Spanish)
[ci skip]

* New translations en.yml (French)
[ci skip]

* New translations en.yml (French)
[ci skip]

* New translations en.yml (Russian)
[ci skip]

* New translations en.yml (Russian)
[ci skip]

* New translations en.yml (Russian)
[ci skip]

* New translations en.yml (Russian)
[ci skip]

* New translations en.yml (German)
[ci skip]

* New translations en.yml (Greek)
[ci skip]

* New translations en.yml (German)
[ci skip]

* New translations en.yml (Greek)
[ci skip]

* New translations en.yml (Italian)
[ci skip]

* New translations en.yml (Spanish, Argentina)
[ci skip]

* New translations en.yml (Spanish)
[ci skip]

* New translations en.yml (Occitan)
[ci skip]

* New translations en.yml (Corsican)
[ci skip]

* New translations en.yml (Portuguese, Brazilian)
[ci skip]

* New translations en.yml (Portuguese, Brazilian)
[ci skip]

* New translations en.yml (Spanish, Argentina)
[ci skip]

* New translations en.json (Albanian)
[ci skip]

* New translations en.json (Indonesian)
[ci skip]

* New translations en.json (Italian)
[ci skip]

* New translations en.json (Ido)
[ci skip]

* New translations en.json (Japanese)
[ci skip]

* New translations en.json (Kabyle)
[ci skip]

* New translations en.json (Kannada)
[ci skip]

* New translations en.json (Hebrew)
[ci skip]

* New translations en.json (Hindi)
[ci skip]

* New translations en.json (Hungarian)
[ci skip]

* New translations en.json (Icelandic)
[ci skip]

* New translations en.json (Greek)
[ci skip]

* New translations en.json (Malayalam)
[ci skip]

* New translations en.json (Marathi)
[ci skip]

* New translations en.json (Norwegian)
[ci skip]

* New translations en.json (Norwegian Nynorsk)
[ci skip]

* New translations en.json (Malay)
[ci skip]

* New translations en.json (Kazakh)
[ci skip]

* New translations en.json (Korean)
[ci skip]

* New translations en.json (Latvian)
[ci skip]

* New translations en.json (Lithuanian)
[ci skip]

* New translations en.json (Macedonian)
[ci skip]

* New translations en.json (Bulgarian)
[ci skip]

* New translations en.json (Catalan)
[ci skip]

* New translations en.json (Chinese Simplified)
[ci skip]

* New translations en.json (Chinese Traditional)
[ci skip]

* New translations en.json (Chinese Traditional, Hong Kong)
[ci skip]

* New translations en.json (Breton)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.json (Armenian)
[ci skip]

* New translations en.json (Basque)
[ci skip]

* New translations en.json (Bengali)
[ci skip]

* New translations en.json (Arabic)
[ci skip]

* New translations en.json (Galician)
[ci skip]

* New translations en.json (Finnish)
[ci skip]

* New translations en.json (French)
[ci skip]

* New translations en.json (Estonian)
[ci skip]

* New translations en.json (Georgian)
[ci skip]

* New translations en.json (German)
[ci skip]

* New translations en.json (Croatian)
[ci skip]

* New translations en.json (Czech)
[ci skip]

* New translations en.json (Corsican)
[ci skip]

* New translations en.json (Esperanto)
[ci skip]

* New translations en.json (Dutch)
[ci skip]

* New translations en.json (Danish)
[ci skip]

* New translations en.json (Thai)
[ci skip]

* New translations en.json (Telugu)
[ci skip]

* New translations en.json (Turkish)
[ci skip]

* New translations en.json (Tamil)
[ci skip]

* New translations en.json (Swedish)
[ci skip]

* New translations en.json (Spanish, Argentina)
[ci skip]

* New translations en.json (Welsh)
[ci skip]

* New translations en.json (Vietnamese)
[ci skip]

* New translations en.json (Urdu (Pakistan))
[ci skip]

* New translations en.json (Ukrainian)
[ci skip]

* New translations en.json (Serbian (Latin))
[ci skip]

* New translations en.json (Spanish)
[ci skip]

* New translations en.yml (Portuguese)
[ci skip]

* New translations en.json (Portuguese)
[ci skip]

* New translations en.json (Polish)
[ci skip]

* New translations en.json (Persian)
[ci skip]

* New translations en.yml (Portuguese, Brazilian)
[ci skip]

* New translations en.json (Occitan)
[ci skip]

* New translations en.json (Portuguese, Brazilian)
[ci skip]

* New translations en.json (Slovenian)
[ci skip]

* New translations en.json (Slovak)
[ci skip]

* New translations en.json (Romanian)
[ci skip]

* New translations en.json (Serbian (Cyrillic))
[ci skip]

* New translations en.json (Russian)
[ci skip]

* New translations en.yml (Portuguese)
[ci skip]

* New translations en.yml (Portuguese, Brazilian)
[ci skip]

* New translations en.yml (Portuguese)
[ci skip]

* New translations en.json (Russian)
[ci skip]

* New translations en.json (Swedish)
[ci skip]

* New translations en.json (Spanish, Argentina)
[ci skip]

* New translations en.json (Icelandic)
[ci skip]

* New translations en.yml (Icelandic)
[ci skip]

* New translations en.yml (Icelandic)
[ci skip]

* New translations activerecord.en.yml (Icelandic)
[ci skip]

* New translations en.yml (Icelandic)
[ci skip]

* New translations en.json (Spanish)
[ci skip]

* New translations en.json (Catalan)
[ci skip]

* New translations en.json (Italian)
[ci skip]

* New translations en.json (German)
[ci skip]

* New translations en.json (Spanish)
[ci skip]

* New translations en.json (Persian)
[ci skip]

* New translations en.json (Polish)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations simple_form.en.yml (Polish)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations en.json (Japanese)
[ci skip]

* New translations en.yml (Japanese)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations en.json (Hungarian)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations en.json (Spanish)
[ci skip]

* New translations en.yml (Spanish)
[ci skip]

* New translations en.yml (Thai)
[ci skip]

* New translations en.yml (Thai)
[ci skip]

* New translations en.yml (Thai)
[ci skip]

* New translations en.yml (Thai)
[ci skip]

* New translations simple_form.en.yml (Thai)
[ci skip]

* New translations en.yml (Thai)
[ci skip]

* New translations en.json (Galician)
[ci skip]

* New translations en.yml (Galician)
[ci skip]

* New translations en.yml (Galician)
[ci skip]

* New translations en.json (Thai)
[ci skip]

* New translations doorkeeper.en.yml (Thai)
[ci skip]

* New translations en.yml (Thai)
[ci skip]

* i18n-tasks normalize

* yarn manage:translations
2020-04-05 14:56:18 +02:00
Eugen Rochko 50fa554899 Add rate limit for reporting (#13390) 2020-04-05 14:40:08 +02:00
ThibG edce6fc98f Fix “Show more” not switching to “Show less” on public pages (#13174)
* Fix “Show more” not switching to “Show less” on public pages

Fixes #13169

* Fix initial text of CW button on public pages when CW are unfolded by default
2020-04-05 14:02:22 +02:00
ThibG ef48ffc127 Fix PostgreSQL load when linking in announcements (#13250)
* Fix PostgreSQL load when linking in announcements

Fixes #13245 by caching status lookups

Since statuses are supposed to be known already and we only
need their URLs and a few other things, caching them should
be fine.

Since it's only used by announcements so far, there won't
be much statuses to cache.

* Perform status lookup when saving announcements, not when rendering them

* Change EntityCache#status to fetch URLs instead of looking into the database

* Move announcement link lookup to publishing worker

* Address issues pointed out during review
2020-04-05 12:51:22 +02:00
ThibG ffd6f3fa8a Add explanation as to why unlocked accounts may have follow requests (#13385)
* Add explanation as to why unlocked accounts may have follow requests

* Change wording to avoid “silenced”
2020-04-04 19:02:10 +02:00
Eugen Rochko 6932e0e2af Add ability to filter audit log in admin UI (#13381) 2020-04-03 13:06:34 +02:00
Sasha Sorokin abbc0c6a87 Improve polls: option lengths & redesign (#13257)
This commit redesign the polls and increases characters limit for the
options from 25 to 50 characters, giving pollsters more freedom.

Summarizing, the redesign is making the polls more adaptive for upcoming
changes to the options characters limit: the bar, or a "chart", is now
displayed separately from the option itself; vote check mark is moved
next to the option text, making the percentages take less space. Option
lengths are taken into account and text is wrapped to multiple lines
if necessary to avoid overflow.
2020-04-02 17:10:55 +02:00
Eugen Rochko 11deb933f5 Fix returning results when searching for URL with non-zero offset (#13377)
Fix #13083
2020-04-02 03:39:37 +02:00
Eugen Rochko c2fc9bca81 Fix pinning a column in web UI sometimes redirecting out of web UI (#13376)
Fix #13216
2020-04-02 03:12:10 +02:00
Eugen Rochko b1c596e8f3 Fix background jobs not using locks like they are supposed to (#13361)
Also:

- Fix locks not being removed when jobs go to the dead job queue
- Add UI for managing locks to the Sidekiq dashboard
- Remove unused Sidekiq workers

Fix #13349
2020-03-31 21:59:03 +02:00
Mélanie Chauvel (ariasuni) 899ff914da Improve toot clicking areas (#13327)
* Make the area to the left “Show Thread” also expand the toot in Web UI

* Clicking the left part of a conversation with the avatars now opens it in Web UI
2020-03-31 19:40:23 +02:00
ThibG 41ca3cdb37 Fix content warning being unnecessarily cleared when enabling/disabling CW (#13348) 2020-03-31 14:10:18 +02:00
Takeshi Umeda 1c2a286244 Fix ImportsController param to permit :mode (#13347) 2020-03-31 12:43:42 +02:00
Mélanie Chauvel (ariasuni) 5a211c478d Fix wrong color for ellipsis in boost confirmation dialog in Web UI (#13355) 2020-03-31 12:39:50 +02:00
Takeshi Umeda 02b0321713 Fix incorrect deletion of local accounts imported by overwriting (#13350) 2020-03-30 20:32:34 +02:00
ThibG 1a993f9675 Fix 404 and 410 API errors being silently discarded in WebUI (#13279)
* Fix 404 and 410 API errors being silently discarded in WebUI

Fixes #13278

* Return more appropriate error when user replies to a deleted toot

* Please CodeClimate

* Fix 404/410 errors on fetching account timelines & identity proofs

* Refactor error handling

* Move error message string to statuses.errors
2020-03-28 17:59:45 +01:00
Eugen Rochko 1cb4645638 Change `tootctl media remove-orphans` to work for all classes (#13316)
Change `tootctl media lookup` to not use an interactive prompt
2020-03-26 01:56:41 +01:00
Eugen Rochko ebb4869690 New Crowdin translations (#13064)
* New translations en.yml (Russian)
[ci skip]

* New translations en.yml (Dutch)
[ci skip]

* New translations en.yml (Greek)
[ci skip]

* New translations en.json (Dutch)
[ci skip]

* New translations en.yml (German)
[ci skip]

* New translations en.yml (Dutch)
[ci skip]

* New translations en.yml (Spanish)
[ci skip]

* New translations en.yml (Spanish, Argentina)
[ci skip]

* New translations simple_form.en.yml (Dutch)
[ci skip]

* New translations en.yml (Persian)
[ci skip]

* New translations en.yml (Italian)
[ci skip]

* New translations en.yml (Icelandic)
[ci skip]

* New translations en.json (Dutch)
[ci skip]

* New translations en.json (Dutch)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.yml (Korean)
[ci skip]

* New translations en.yml (Persian)
[ci skip]

* New translations en.yml (Catalan)
[ci skip]

* New translations en.yml (French)
[ci skip]

* New translations en.yml (Chinese Traditional)
[ci skip]

* New translations simple_form.en.yml (Chinese Traditional)
[ci skip]

* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]

* New translations simple_form.en.yml (Chinese Traditional, Hong Kong)
[ci skip]

* New translations simple_form.en.yml (Chinese Traditional, Hong Kong)
[ci skip]

* New translations simple_form.en.yml (Chinese Traditional)
[ci skip]

* New translations en.yml (Spanish)
[ci skip]

* New translations simple_form.en.yml (Chinese Traditional)
[ci skip]

* New translations en.yml (Spanish, Argentina)
[ci skip]

* New translations simple_form.en.yml (Chinese Traditional, Hong Kong)
[ci skip]

* New translations en.yml (French)
[ci skip]

* New translations en.yml (German)
[ci skip]

* New translations en.yml (Greek)
[ci skip]

* New translations en.yml (Korean)
[ci skip]

* New translations en.yml (Swedish)
[ci skip]

* New translations en.yml (Russian)
[ci skip]

* New translations en.yml (Galician)
[ci skip]

* New translations en.yml (Catalan)
[ci skip]

* New translations en.json (Japanese)
[ci skip]

* New translations en.yml (Japanese)
[ci skip]

* New translations simple_form.en.yml (Japanese)
[ci skip]

* New translations en.yml (Arabic)
[ci skip]

* New translations en.json (Kabyle)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.yml (Icelandic)
[ci skip]

* New translations en.yml (Corsican)
[ci skip]

* New translations en.yml (French)
[ci skip]

* New translations en.yml (Portuguese)
[ci skip]

* New translations en.yml (Portuguese, Brazilian)
[ci skip]

* New translations en.json (Japanese)
[ci skip]

* New translations en.yml (Japanese)
[ci skip]

* New translations en.yml (Hungarian)
[ci skip]

* New translations en.yml (Portuguese, Brazilian)
[ci skip]

* New translations en.yml (Persian)
[ci skip]

* New translations en.yml (Spanish, Argentina)
[ci skip]

* New translations en.json (Japanese)
[ci skip]

* New translations en.yml (Chinese Simplified)
[ci skip]

* New translations en.json (Greek)
[ci skip]

* New translations en.yml (Greek)
[ci skip]

* New translations simple_form.en.yml (Greek)
[ci skip]

* New translations en.json (Breton)
[ci skip]

* New translations en.yml (Icelandic)
[ci skip]

* New translations devise.en.yml (Icelandic)
[ci skip]

* New translations en.json (Italian)
[ci skip]

* New translations simple_form.en.yml (German)
[ci skip]

* New translations en.yml (Portuguese, Brazilian)
[ci skip]

* New translations en.yml (Portuguese, Brazilian)
[ci skip]

* New translations simple_form.en.yml (Portuguese, Brazilian)
[ci skip]

* New translations en.yml (Lithuanian)
[ci skip]

* New translations en.yml (Norwegian)
[ci skip]

* New translations en.yml (Norwegian Nynorsk)
[ci skip]

* New translations en.yml (Korean)
[ci skip]

* New translations en.yml (Hungarian)
[ci skip]

* New translations en.yml (Indonesian)
[ci skip]

* New translations en.yml (Japanese)
[ci skip]

* New translations en.yml (Kazakh)
[ci skip]

* New translations en.yml (Occitan)
[ci skip]

* New translations en.yml (Spanish)
[ci skip]

* New translations en.yml (Slovenian)
[ci skip]

* New translations en.yml (Thai)
[ci skip]

* New translations en.yml (Turkish)
[ci skip]

* New translations en.yml (Ukrainian)
[ci skip]

* New translations en.yml (Persian)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations en.yml (Portuguese)
[ci skip]

* New translations en.yml (Serbian (Cyrillic))
[ci skip]

* New translations en.yml (Slovak)
[ci skip]

* New translations en.yml (Icelandic)
[ci skip]

* New translations en.yml (Albanian)
[ci skip]

* New translations en.yml (Basque)
[ci skip]

* New translations en.yml (Spanish, Argentina)
[ci skip]

* New translations en.yml (Catalan)
[ci skip]

* New translations en.yml (Arabic)
[ci skip]

* New translations en.yml (Italian)
[ci skip]

* New translations en.yml (Portuguese, Brazilian)
[ci skip]

* New translations en.yml (Swedish)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.yml (French)
[ci skip]

* New translations en.yml (Czech)
[ci skip]

* New translations en.yml (Russian)
[ci skip]

* New translations en.yml (Esperanto)
[ci skip]

* New translations en.yml (Estonian)
[ci skip]

* New translations en.yml (Galician)
[ci skip]

* New translations en.yml (German)
[ci skip]

* New translations en.yml (Greek)
[ci skip]

* New translations en.yml (Chinese Simplified)
[ci skip]

* New translations en.yml (Chinese Traditional)
[ci skip]

* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]

* New translations en.yml (Corsican)
[ci skip]

* New translations en.yml (Dutch)
[ci skip]

* New translations en.yml (Danish)
[ci skip]

* New translations en.yml (Welsh)
[ci skip]

* New translations en.yml (Vietnamese)
[ci skip]

* New translations simple_form.en.yml (Spanish, Argentina)
[ci skip]

* New translations simple_form.en.yml (Corsican)
[ci skip]

* New translations simple_form.en.yml (Spanish)
[ci skip]

* New translations simple_form.en.yml (Spanish, Argentina)
[ci skip]

* New translations simple_form.en.yml (Icelandic)
[ci skip]

* New translations simple_form.en.yml (Italian)
[ci skip]

* New translations simple_form.en.yml (German)
[ci skip]

* New translations en.yml (Italian)
[ci skip]

* New translations simple_form.en.yml (Russian)
[ci skip]

* New translations simple_form.en.yml (Swedish)
[ci skip]

* New translations simple_form.en.yml (Portuguese, Brazilian)
[ci skip]

* New translations simple_form.en.yml (Catalan)
[ci skip]

* New translations simple_form.en.yml (Persian)
[ci skip]

* New translations simple_form.en.yml (Portuguese)
[ci skip]

* New translations simple_form.en.yml (Arabic)
[ci skip]

* New translations simple_form.en.yml (French)
[ci skip]

* New translations simple_form.en.yml (Korean)
[ci skip]

* New translations devise.en.yml (Kabyle)
[ci skip]

* New translations en.yml (Welsh)
[ci skip]

* New translations simple_form.en.yml (Welsh)
[ci skip]

* New translations en.yml (Korean)
[ci skip]

* New translations simple_form.en.yml (Korean)
[ci skip]

* New translations simple_form.en.yml (Icelandic)
[ci skip]

* New translations en.yml (Icelandic)
[ci skip]

* New translations en.yml (Spanish)
[ci skip]

* New translations simple_form.en.yml (Spanish)
[ci skip]

* New translations simple_form.en.yml (Spanish, Argentina)
[ci skip]

* New translations en.yml (Spanish, Argentina)
[ci skip]

* New translations en.yml (Persian)
[ci skip]

* New translations simple_form.en.yml (Persian)
[ci skip]

* New translations en.yml (Catalan)
[ci skip]

* New translations en.yml (Portuguese, Brazilian)
[ci skip]

* New translations simple_form.en.yml (Portuguese, Brazilian)
[ci skip]

* New translations simple_form.en.yml (Portuguese)
[ci skip]

* New translations en.yml (Portuguese)
[ci skip]

* New translations simple_form.en.yml (Catalan)
[ci skip]

* New translations simple_form.en.yml (Portuguese)
[ci skip]

* New translations simple_form.en.yml (Portuguese, Brazilian)
[ci skip]

* New translations en.yml (German)
[ci skip]

* New translations simple_form.en.yml (German)
[ci skip]

* New translations en.yml (Chinese Traditional)
[ci skip]

* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]

* New translations en.yml (Chinese Traditional)
[ci skip]

* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]

* New translations en.yml (Chinese Traditional)
[ci skip]

* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]

* New translations en.yml (Korean)
[ci skip]

* New translations simple_form.en.yml (Korean)
[ci skip]

* New translations en.yml (Chinese Traditional)
[ci skip]

* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]

* New translations simple_form.en.yml (Russian)
[ci skip]

* New translations en.yml (Russian)
[ci skip]

* New translations en.yml (Spanish, Argentina)
[ci skip]

* New translations simple_form.en.yml (Spanish, Argentina)
[ci skip]

* New translations simple_form.en.yml (Galician)
[ci skip]

* New translations simple_form.en.yml (Icelandic)
[ci skip]

* New translations en.yml (Russian)
[ci skip]

* New translations en.yml (Galician)
[ci skip]

* New translations en.yml (Corsican)
[ci skip]

* New translations simple_form.en.yml (Corsican)
[ci skip]

* New translations en.yml (Corsican)
[ci skip]

* New translations simple_form.en.yml (Corsican)
[ci skip]

* New translations en.yml (Hungarian)
[ci skip]

* New translations simple_form.en.yml (Hungarian)
[ci skip]

* New translations en.json (Kabyle)
[ci skip]

* New translations simple_form.en.yml (Hungarian)
[ci skip]

* New translations simple_form.en.yml (Portuguese, Brazilian)
[ci skip]

* New translations en.yml (Portuguese, Brazilian)
[ci skip]

* New translations en.yml (Greek)
[ci skip]

* New translations simple_form.en.yml (Greek)
[ci skip]

* New translations en.yml (French)
[ci skip]

* New translations simple_form.en.yml (French)
[ci skip]

* New translations simple_form.en.yml (Asturian)
[ci skip]

* New translations en.json (Breton)
[ci skip]

* New translations en.yml (Italian)
[ci skip]

* New translations simple_form.en.yml (Italian)
[ci skip]

* New translations devise.en.yml (Kabyle)
[ci skip]

* New translations en.yml (Basque)
[ci skip]

* New translations simple_form.en.yml (Basque)
[ci skip]

* New translations simple_form.en.yml (Occitan)
[ci skip]

* New translations en.yml (Slovak)
[ci skip]

* New translations simple_form.en.yml (Slovak)
[ci skip]

* New translations en.json (Japanese)
[ci skip]

* New translations en.json (Japanese)
[ci skip]

* New translations en.yml (Japanese)
[ci skip]

* New translations simple_form.en.yml (Japanese)
[ci skip]

* New translations en.yml (Japanese)
[ci skip]

* New translations simple_form.en.yml (Japanese)
[ci skip]

* New translations simple_form.en.yml (Chinese Simplified)
[ci skip]

* New translations en.yml (Chinese Simplified)
[ci skip]

* New translations en.json (Japanese)
[ci skip]

* New translations simple_form.en.yml (Chinese Simplified)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations en.json (Russian)
[ci skip]

* New translations en.yml (Russian)
[ci skip]

* New translations en.json (French)
[ci skip]

* New translations en.yml (Slovak)
[ci skip]

* New translations doorkeeper.en.yml (Slovak)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations simple_form.en.yml (Polish)
[ci skip]

* New translations simple_form.en.yml (Polish)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations simple_form.en.yml (Indonesian)
[ci skip]

* New translations en.yml (Thai)
[ci skip]

* New translations simple_form.en.yml (Thai)
[ci skip]

* New translations simple_form.en.yml (Thai)
[ci skip]

* New translations en.json (Thai)
[ci skip]

* New translations en.json (Thai)
[ci skip]

* New translations en.json (Thai)
[ci skip]

* New translations en.yml (Thai)
[ci skip]

* New translations en.json (Thai)
[ci skip]

* New translations simple_form.en.yml (Thai)
[ci skip]

* New translations simple_form.en.yml (Thai)
[ci skip]

* New translations en.yml (Thai)
[ci skip]

* New translations simple_form.en.yml (Thai)
[ci skip]

* New translations activerecord.en.yml (Occitan)
[ci skip]

* New translations simple_form.en.yml (Indonesian)
[ci skip]

* New translations activerecord.en.yml (Kabyle)
[ci skip]

* New translations en.json (Breton)
[ci skip]

* New translations en.yml (Breton)
[ci skip]

* New translations en.yml (Breton)
[ci skip]

* New translations en.yml (Breton)
[ci skip]

* New translations en.yml (Breton)
[ci skip]

* New translations devise.en.yml (Breton)
[ci skip]

* New translations en.json (Breton)
[ci skip]

* New translations doorkeeper.en.yml (Breton)
[ci skip]

* New translations simple_form.en.yml (Breton)
[ci skip]

* New translations en.yml (Breton)
[ci skip]

* New translations en.yml (Russian)
[ci skip]

* New translations devise.en.yml (Russian)
[ci skip]

* New translations simple_form.en.yml (Russian)
[ci skip]

* New translations en.json (Russian)
[ci skip]

* New translations en.yml (Russian)
[ci skip]

* New translations en.yml (Russian)
[ci skip]

* New translations simple_form.en.yml (Japanese)
[ci skip]

* i18n-tasks normalize

* yarn manage:translations
2020-03-25 23:17:14 +01:00
ThibG 54da8c4337 Fix media not being marked sensitive when client sets a CW but no text (#13277)
Mastodon enforces the “sensitive” flag on media attachments whenever a toot
is posted with a Content Warning. However, it does so *after* potentially
converting the Content Warning to toot text (when there is no toot text),
which leads to inconsistent and surprising behavior for API clients.
This commit fixes this inconsistency.
2020-03-25 22:40:58 +01:00
ThibG 15c02a7160 Fix frontend crash when deleting announcements (#13312)
Refactor and fix #13283, which only worked in some cases.
2020-03-25 22:39:55 +01:00
ThibG 421a3a8f08 Change poll option hover/active styling to be less confusing (#13313) 2020-03-25 22:39:18 +01:00
Takeshi Umeda e1c65c565b Fix bookmarks also searchable (#13293) 2020-03-22 02:40:03 +01:00
Shlee 056f97744a Migrate Rails ujs as required for Rails 6 Upgrade. (#13280)
* Update yarn.lock

* Update package.json

* Update public.js

* Update admin.js

* Update log_out.js

* Update common.js
2020-03-21 03:14:50 +01:00
mayaeh 826ccfa973 Add link to bookmarks in web UI dropdown (#13273) 2020-03-21 03:14:28 +01:00
Jeong Arm 3b4e54f359 Make bookmarks also searchable (#13271) 2020-03-21 03:14:10 +01:00
Daniel Sockwell 577f74ad87 Fix frontend crash when deleting announcements (#13283)
This two-line change fixes a crash in the front end that occurred
under the following circumstances:
 *  A server had more than one announcement,
 *  A user was displaying the announcements, and
 *  An announcement was deleted (or unpublished, which amounts to
    the same thing.)

As might be expected, the bug was caused by attempting to access a
notification using an index value outside the bounds of the existing
announcements.  Specifically, in two places.  First,
`_markAnnouncementAsRead` attempts to modify announcements based on
the current index.  This is what caused the front end crash.  Second,
when rendering the `Announcements` component, the code paginates the
announcements and displays the current one.  This did not cause a
crash, but caused the front end to confusingly display a blank
announcement (in situations that would have caused a crash) with no
way for the user to navigate back to previous announcements.

This commit fixes both issues by adding a check to ensure that the
code never attempts to access an announcement with an index greater
than or equal to the number of announcements present.
2020-03-21 03:10:42 +01:00
ThibG 977b7ef6d0 Fix reported accounts not being whitelisted when resolving a spamcheck report (#13289) 2020-03-21 03:08:09 +01:00
ThibG c3edb6c02a Fix WebUI crash in single-column mode on prehistoric browsers (#13267)
Fixes #13266
2020-03-17 20:43:55 +01:00
ThibG 23b1a9ad55 Fix some timeouts when searching URLs by limiting some database queries (#13253)
Only look up private toots from database if the request failed because of 401,
403 or 404 errors, as those may indicate a private toot, rather than something
that isn't a toot or cannot be processed.
2020-03-12 23:06:43 +01:00
Eugen Rochko 9ced8b6dd5 Add option to include resolved DNS records when blacklisting e-mail domains in admin UI (#13254)
* Add shortcuts to blacklist a user's e-mail domain in admin UI

* Add option to blacklist resolved MX and IP records for e-mail domains
2020-03-12 22:35:20 +01:00
Eugen Rochko da9d81c4ac Add titles to warning presets in admin UI (#13252) 2020-03-12 17:57:59 +01:00
ThibG 2e3c24d1c8 Fix detailed view of direct messages displaying a 0 boost count (#13244)
The boost count is already removed from private toots,
do the same with direct messages.
2020-03-10 18:39:47 +01:00
ThibG c5731b4dc7 Fix regression in “Edit media” modal in web UI (#13243) 2020-03-10 11:59:44 +01:00
ThibG 0701e09c85 Fix videos with unsupported colorspace not being transcoded (#13242) 2020-03-10 11:58:40 +01:00
ThibG ccd8ceac47 Fix MP4 (H264 + AAC) video files being needlessly re-encoded (#13239) 2020-03-09 23:15:59 +01:00
mayaeh 4a87cebf48 Change the string "hidden" to "blocked" in WebUI (#13221)
* Change the string "hidden" to "blocked" in WebUI.

* update
2020-03-09 09:13:21 +01:00
Eugen Rochko a0c60d09ff Change video uploads to always be converted to H264/MP4 (#13220)
Even if the container format is the same (.mp4), the codec could
be different and not playable in web browsers
2020-03-09 02:20:18 +01:00
Eugen Rochko 0995464585 Change video uploads to enforce certain limits (#13218)
- Dimensions at most 1920x1200
- Frame rate at most 60
2020-03-09 02:19:07 +01:00
dependabot-preview[bot] b4bc2817ba Bump cld3 from 3.2.6 to 3.3.0 (#13107)
* Bump cld3 from 3.2.6 to 3.3.0

Bumps [cld3](https://github.com/akihikodaki/cld3-ruby) from 3.2.6 to 3.3.0.
- [Release notes](https://github.com/akihikodaki/cld3-ruby/releases)
- [Commits](https://github.com/akihikodaki/cld3-ruby/compare/v3.2.6...v3.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Fix compatibility with cld3 3.3.0

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
2020-03-09 00:12:52 +01:00
ThibG cd7c22da32 Add federation support for the "hide network" preference (#11673)
* Change ActivityPub follower/following collections to not link first page

* Add support for hiding followers and following of remote users

* Switch to using a single `hide_collections` column

* Address code style remarks
2020-03-09 00:10:29 +01:00
Eugen Rochko f459919552 Change local media attachments to perform heavy processing asynchronously (#13210)
Fix #9106
2020-03-08 23:56:18 +01:00
ThibG 852958d725 Fix public posts from silenced accounts not being changed to unlisted visibility (#13096) 2020-03-08 16:11:49 +01:00
ThibG a67fd2fbe1 Add support for links to statuses in announcements to be opened in web UI (#13212)
* Add support for links to public statuses in announcements to be opened in WebUI

* Please CodeClimate
2020-03-08 16:10:48 +01:00
Mélanie Chauvel (ariasuni) 399fa48f8e Change the tooltip "Toggle visibility" to "Hide media" in web UI (#13199) 2020-03-08 16:09:34 +01:00
guigeekz eb525ef602 Add submit button to the top of preferences pages (#13068)
* Move submit button to the top of the edit page

* Duplicate save button on long form

* Fix click submit on profile spec
2020-03-08 16:04:03 +01:00
Bèr Kessels b5d7ec71ef Code style improvements in JavaScript (#13159)
* JS-linter: fix trailing comma's

* Configure eslinter to ignore this onchange error.
2020-03-08 16:02:36 +01:00
ThibG cb93be3b88 Add ability to delete files uploaded for settings in admin UI (#13192)
* Allow deleting site uploads

* Refactor and move links into hints

* Fix i18n tests

* Fix HTML output of site_upload_delete_hint
2020-03-08 16:00:24 +01:00
Mélanie Chauvel (ariasuni) 263bedff9e Change description of privacy levels to be more intuitive in web UI (#13197)
* Improve description of privacy levels in compose interface

* Change strings in defaultMessage and source as well as english

Co-authored-by: Thibaut Girka <thib@sitedethib.com>
2020-03-08 15:59:55 +01:00
ThibG ef73f37f36 Fix error when searching for URLs that contain the mention syntax (#13151)
Fixes #13150
2020-03-08 15:42:20 +01:00
ThibG 49f5db61bc Add sorting by username, creation and last activity in moderation view (#13076)
* Add ability to order accounts in moderation view

* Display last status date in “Most recent activity” for remote users
2020-03-08 15:39:13 +01:00
Mélanie Chauvel (ariasuni) 38a26d5314 Fix text area above/right of emoji picker being accidentally clickable in web UI (#13148) 2020-03-08 15:36:50 +01:00
Eugen Rochko a4668d994b Add specific rate limits for posting and following (#13172) 2020-03-08 15:17:39 +01:00
ThibG 1eae25af56 Fix too large announcements not being scrollable in web UI (#13211) 2020-03-06 15:20:14 +01:00
koyu e899e0dc98 Change GIF label to be displayed even when autoplay is enabled in web UI (#13209) 2020-03-06 05:31:51 +01:00
Eugen Rochko 9619521459 Remove useless `respond_to` calls (#13208) 2020-03-06 01:29:38 +01:00
Eugen Rochko 03d2704430 Change the string "Hide everything from …" to "Block domain …" in web UI (#13178)
Blocking a domain is closer to blocking all its users than to a mute
action.
2020-03-05 23:20:49 +01:00
Eugen Rochko df086209a2 Fix "tootctl media remove-orphans" crashing when encountering invalid media (#13170)
Fixes #13168
2020-03-05 15:56:01 +01:00
Eugen Rochko 635812f9ea Add tooltips to audio/video player buttons (#13203) 2020-03-05 15:52:15 +01:00
ThibG 69aefeb7ee Fix announcements with fully-qualified mention to local user crashing WebUI (#13164) 2020-02-28 13:49:45 +01:00
Eugen Rochko e0db9f37f5 Fix leak of arbitrary statuses through unfavourite action in REST API (#13161) 2020-02-27 12:32:54 +01:00
ThibG c004399975 Fix dismissing an announcement twice raising an obscure error (#13124) 2020-02-24 22:21:40 +01:00
ThibG d7da2bba02 Fix misleading error when attempting to re-send a pending follow request (#13133)
Fixes #13131
2020-02-24 21:19:19 +01:00
ThibG 910383d992 Fix backups failing when files are missing from media attachments (#13146)
Fixes #13123
2020-02-24 21:18:26 +01:00
ThibG 257354863e Fix duplicate accounts being created when fetching an account for its key only (#13147)
Fixes #13136

When a user's canonical acct domain is different from its id's domain
(WEB_DOMAIN ≠ LOCAL_DOMAIN), two webfinger queries are required to find the
canonical domain from the URI. However, we skip webfinger queries when
updating only the key of a remote user, which led to the creation of a
duplicate account, using the URI's domain instead of the canonical acct: one.
2020-02-24 21:15:53 +01:00
ThibG 13c00dc42c Fix `/web` redirecting to `/web/web` in web UI (#13128)
Fixes #13127
2020-02-22 01:27:34 +01:00
ThibG 78c15db0fa Fix previously OStatus-based accounts not being detected as ActivityPub (#13129) 2020-02-22 01:26:41 +01:00
ThibG 729fe5bfd6 Add source-mapped stacktrace to error message in web UI (#13082)
* Add source-mapped stack trace to copyable text in error boundary

* Add the error message to the copied report, not only the stack trace
2020-02-19 22:36:52 +01:00
ThibG 8e8d9b3727 Fix account JSON/RSS not being cacheable due to wrong mime type comparison (#13116)
`request.format` is not a symbol but a `Mime::Type`, so the condition actually
never matched, and a session was created even for those requests, preventing
caching.
2020-02-19 22:31:53 +01:00
ThibG 3cdaa34783 Fix old browsers crashing because of missing `finally` polyfill in web UI (#13115)
Fix #13015
2020-02-18 17:22:44 +01:00
ThibG e2b6503921 Fix account's bio not being shown if there are no proofs/fields in admin UI (#13075) 2020-02-17 16:38:59 +01:00
ThibG ddd9bad7f1 Fix sign-ups without checked user agreement being accepted through the web form (#13088)
* Fix user agreement not being verified

* Fix tests

* Fix up agreement field being dismissed
2020-02-16 12:56:53 +01:00
ThibG d5a71bf924 Fix invite request input not being shown on sign-up error if left empty (#13089)
If the “Why do you want to join?” textarea is left empty and the entered params
do not validate, the textarea isn't shown again, unlike other fields.

This commit fixes that by populating an empty `UserInviteRequest` when needed.
2020-02-16 12:38:22 +01:00
Eugen Rochko d85b330558 Fix unread indicator on announcements not being aligned with text in web UI (#13052) 2020-02-08 23:44:01 +01:00
Eugen Rochko fb336bb684 New Crowdin translations (#13036)
* New translations en.json (Finnish)
[ci skip]

* New translations en.yml (Finnish)
[ci skip]

* New translations simple_form.en.yml (Finnish)
[ci skip]

* New translations doorkeeper.en.yml (Finnish)
[ci skip]

* New translations en.yml (French)
[ci skip]

* New translations simple_form.en.yml (French)
[ci skip]

* New translations doorkeeper.en.yml (Ido)
[ci skip]

* New translations en.yml (Croatian)
[ci skip]

* New translations en.json (Malay)
[ci skip]

* New translations en.yml (Malay)
[ci skip]

* New translations en.yml (Malayalam)
[ci skip]

* New translations simple_form.en.yml (Malayalam)
[ci skip]

* New translations doorkeeper.en.yml (Malayalam)
[ci skip]

* New translations en.json (Marathi)
[ci skip]

* New translations en.yml (Marathi)
[ci skip]

* New translations doorkeeper.en.yml (Marathi)
[ci skip]

* New translations en.yml (Macedonian)
[ci skip]

* New translations en.yml (Norwegian)
[ci skip]

* New translations simple_form.en.yml (Norwegian)
[ci skip]

* New translations doorkeeper.en.yml (Norwegian)
[ci skip]

* New translations en.yml (Occitan)
[ci skip]

* New translations simple_form.en.yml (Occitan)
[ci skip]

* New translations doorkeeper.en.yml (Occitan)
[ci skip]

* New translations simple_form.en.yml (Persian)
[ci skip]

* New translations en.json (Macedonian)
[ci skip]

* New translations simple_form.en.yml (Italian)
[ci skip]

* New translations simple_form.en.yml (Kazakh)
[ci skip]

* New translations en.yml (Japanese)
[ci skip]

* New translations simple_form.en.yml (Japanese)
[ci skip]

* New translations doorkeeper.en.yml (Japanese)
[ci skip]

* New translations en.json (Kannada)
[ci skip]

* New translations en.yml (Kannada)
[ci skip]

* New translations en.json (Kazakh)
[ci skip]

* New translations en.yml (Kazakh)
[ci skip]

* New translations doorkeeper.en.yml (Kazakh)
[ci skip]

* New translations en.yml (Korean)
[ci skip]

* New translations simple_form.en.yml (Korean)
[ci skip]

* New translations doorkeeper.en.yml (Korean)
[ci skip]

* New translations en.json (Latvian)
[ci skip]

* New translations en.yml (Latvian)
[ci skip]

* New translations en.json (Lithuanian)
[ci skip]

* New translations en.yml (Lithuanian)
[ci skip]

* New translations simple_form.en.yml (Croatian)
[ci skip]

* New translations doorkeeper.en.yml (Galician)
[ci skip]

* New translations en.json (Croatian)
[ci skip]

* New translations simple_form.en.yml (Norwegian Nynorsk)
[ci skip]

* New translations en.yml (German)
[ci skip]

* New translations simple_form.en.yml (German)
[ci skip]

* New translations doorkeeper.en.yml (German)
[ci skip]

* New translations doorkeeper.en.yml (Greek)
[ci skip]

* New translations en.yml (Italian)
[ci skip]

* New translations doorkeeper.en.yml (Italian)
[ci skip]

* New translations en.yml (Norwegian Nynorsk)
[ci skip]

* New translations doorkeeper.en.yml (Norwegian Nynorsk)
[ci skip]

* New translations en.yml (Galician)
[ci skip]

* New translations en.yml (Persian)
[ci skip]

* New translations en.json (Malayalam)
[ci skip]

* New translations en.yml (Icelandic)
[ci skip]

* New translations simple_form.en.yml (Icelandic)
[ci skip]

* New translations doorkeeper.en.yml (Icelandic)
[ci skip]

* New translations en.json (Kabyle)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations simple_form.en.yml (Corsican)
[ci skip]

* New translations doorkeeper.en.yml (Kabyle)
[ci skip]

* New translations en.yml (Arabic)
[ci skip]

* New translations en.json (Breton)
[ci skip]

* New translations en.yml (Breton)
[ci skip]

* New translations en.json (Indonesian)
[ci skip]

* New translations en.yml (Indonesian)
[ci skip]

* New translations simple_form.en.yml (Indonesian)
[ci skip]

* New translations en.json (Arabic)
[ci skip]

* New translations simple_form.en.yml (Arabic)
[ci skip]

* New translations en.yml (Dutch)
[ci skip]

* New translations doorkeeper.en.yml (Basque)
[ci skip]

* New translations en.yml (Chinese Simplified)
[ci skip]

* New translations simple_form.en.yml (Chinese Simplified)
[ci skip]

* New translations doorkeeper.en.yml (Chinese Simplified)
[ci skip]

* New translations doorkeeper.en.yml (Corsican)
[ci skip]

* New translations en.yml (Danish)
[ci skip]

* New translations simple_form.en.yml (Kabyle)
[ci skip]

* New translations doorkeeper.en.yml (Dutch)
[ci skip]

* New translations doorkeeper.en.yml (Bulgarian)
[ci skip]

* New translations en.yml (Basque)
[ci skip]

* New translations simple_form.en.yml (Basque)
[ci skip]

* New translations en.json (Bengali)
[ci skip]

* New translations en.yml (Bengali)
[ci skip]

* New translations simple_form.en.yml (Bengali)
[ci skip]

* New translations en.json (Bulgarian)
[ci skip]

* New translations en.yml (Bulgarian)
[ci skip]

* New translations simple_form.en.yml (Bulgarian)
[ci skip]

* New translations simple_form.en.yml (Asturian)
[ci skip]

* New translations en.yml (Catalan)
[ci skip]

* New translations simple_form.en.yml (Catalan)
[ci skip]

* New translations doorkeeper.en.yml (Catalan)
[ci skip]

* New translations en.json (Chinese Traditional)
[ci skip]

* New translations en.yml (Chinese Traditional)
[ci skip]

* New translations simple_form.en.yml (Chinese Traditional)
[ci skip]

* New translations doorkeeper.en.yml (Chinese Traditional)
[ci skip]

* New translations en.json (Chinese Traditional, Hong Kong)
[ci skip]

* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]

* New translations simple_form.en.yml (Chinese Traditional, Hong Kong)
[ci skip]

* New translations doorkeeper.en.yml (Chinese Traditional, Hong Kong)
[ci skip]

* New translations en.yml (Corsican)
[ci skip]

* New translations en.json (Albanian)
[ci skip]

* New translations en.yml (Albanian)
[ci skip]

* New translations simple_form.en.yml (Albanian)
[ci skip]

* New translations doorkeeper.en.yml (Albanian)
[ci skip]

* New translations doorkeeper.en.yml (Arabic)
[ci skip]

* New translations simple_form.en.yml (Danish)
[ci skip]

* New translations doorkeeper.en.yml (Spanish)
[ci skip]

* New translations doorkeeper.en.yml (Slovenian)
[ci skip]

* New translations en.yml (Welsh)
[ci skip]

* New translations en.json (Tamil)
[ci skip]

* New translations doorkeeper.en.yml (Serbian (Latin))
[ci skip]

* New translations en.json (Slovenian)
[ci skip]

* New translations en.yml (Slovenian)
[ci skip]

* New translations simple_form.en.yml (Slovenian)
[ci skip]

* New translations en.yml (Spanish)
[ci skip]

* New translations simple_form.en.yml (Welsh)
[ci skip]

* New translations doorkeeper.en.yml (Swedish)
[ci skip]

* New translations en.json (Swedish)
[ci skip]

* New translations simple_form.en.yml (Spanish)
[ci skip]

* New translations simple_form.en.yml (Spanish, Argentina)
[ci skip]

* New translations en.yml (Spanish, Argentina)
[ci skip]

* New translations doorkeeper.en.yml (Spanish, Argentina)
[ci skip]

* New translations en.yml (Telugu)
[ci skip]

* New translations simple_form.en.yml (Tamil)
[ci skip]

* New translations en.yml (Ukrainian)
[ci skip]

* New translations en.yml (Turkish)
[ci skip]

* New translations simple_form.en.yml (Turkish)
[ci skip]

* New translations doorkeeper.en.yml (Turkish)
[ci skip]

* New translations en.yml (Serbian (Latin))
[ci skip]

* New translations doorkeeper.en.yml (Tamil)
[ci skip]

* New translations simple_form.en.yml (Ukrainian)
[ci skip]

* New translations doorkeeper.en.yml (Ukrainian)
[ci skip]

* New translations en.json (Urdu (Pakistan))
[ci skip]

* New translations en.yml (Urdu (Pakistan))
[ci skip]

* New translations en.json (Welsh)
[ci skip]

* New translations en.json (Telugu)
[ci skip]

* New translations simple_form.en.yml (Serbian (Latin))
[ci skip]

* New translations simple_form.en.yml (Vietnamese)
[ci skip]

* New translations en.json (Serbian (Latin))
[ci skip]

* New translations doorkeeper.en.yml (Portuguese, Brazilian)
[ci skip]

* New translations doorkeeper.en.yml (Persian)
[ci skip]

* New translations en.yml (Portuguese)
[ci skip]

* New translations simple_form.en.yml (Portuguese)
[ci skip]

* New translations doorkeeper.en.yml (Portuguese)
[ci skip]

* New translations en.yml (Portuguese, Brazilian)
[ci skip]

* New translations simple_form.en.yml (Portuguese, Brazilian)
[ci skip]

* New translations en.yml (Swedish)
[ci skip]

* New translations simple_form.en.yml (Slovak)
[ci skip]

* New translations simple_form.en.yml (Swedish)
[ci skip]

* New translations en.yml (Tamil)
[ci skip]

* New translations en.yml (Thai)
[ci skip]

* New translations simple_form.en.yml (Thai)
[ci skip]

* New translations doorkeeper.en.yml (Thai)
[ci skip]

* New translations doorkeeper.en.yml (Vietnamese)
[ci skip]

* New translations en.json (Vietnamese)
[ci skip]

* New translations doorkeeper.en.yml (Slovak)
[ci skip]

* New translations en.yml (Slovak)
[ci skip]

* New translations doorkeeper.en.yml (Serbian (Cyrillic))
[ci skip]

* New translations simple_form.en.yml (Serbian (Cyrillic))
[ci skip]

* New translations en.yml (Serbian (Cyrillic))
[ci skip]

* New translations en.json (Serbian (Cyrillic))
[ci skip]

* New translations doorkeeper.en.yml (Russian)
[ci skip]

* New translations simple_form.en.yml (Russian)
[ci skip]

* New translations en.yml (Russian)
[ci skip]

* New translations simple_form.en.yml (Romanian)
[ci skip]

* New translations en.json (Slovak)
[ci skip]

* New translations en.yml (Romanian)
[ci skip]

* New translations en.json (Romanian)
[ci skip]

* New translations doorkeeper.en.yml (Polish)
[ci skip]

* New translations simple_form.en.yml (Polish)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations en.json (Polish)
[ci skip]

* New translations en.yml (Vietnamese)
[ci skip]

* New translations doorkeeper.en.yml (Welsh)
[ci skip]

* New translations en.json (Tamil)
[ci skip]

* New translations en.json (Tamil)
[ci skip]

* New translations en.json (Tamil)
[ci skip]

* New translations en.json (Tamil)
[ci skip]

* New translations en.json (Tamil)
[ci skip]

* New translations en.json (Tamil)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.json (Kabyle)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations doorkeeper.en.yml (Kabyle)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations doorkeeper.en.yml (Kabyle)
[ci skip]

* New translations en.json (Kabyle)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.json (Kabyle)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations simple_form.en.yml (Kabyle)
[ci skip]

* New translations en.json (Catalan)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations simple_form.en.yml (Kabyle)
[ci skip]

* New translations doorkeeper.en.yml (Kabyle)
[ci skip]

* New translations en.yml (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.yml (Asturian)
[ci skip]

* New translations en.yml (Asturian)
[ci skip]

* New translations en.json (Welsh)
[ci skip]

* New translations en.json (Welsh)
[ci skip]

* New translations en.yml (Welsh)
[ci skip]

* New translations en.json (Slovak)
[ci skip]

* New translations en.yml (Slovak)
[ci skip]

* New translations en.yml (Slovak)
[ci skip]

* New translations en.json (Polish)
[ci skip]

* New translations en.yml (Dutch)
[ci skip]

* New translations en.json (Polish)
[ci skip]

* New translations en.yml (Dutch)
[ci skip]

* New translations devise.en.yml (Polish)
[ci skip]

* New translations devise.en.yml (Polish)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations simple_form.en.yml (Polish)
[ci skip]

* New translations doorkeeper.en.yml (Polish)
[ci skip]

* New translations en.json (Indonesian)
[ci skip]

* New translations en.yml (Indonesian)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations en.json (Galician)
[ci skip]

* New translations en.json (Galician)
[ci skip]

* New translations en.json (Galician)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations en.yml (Polish)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.json (Arabic)
[ci skip]

* New translations en.yml (Arabic)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations simple_form.en.yml (Kabyle)
[ci skip]

* New translations doorkeeper.en.yml (Kabyle)
[ci skip]

* New translations devise.en.yml (Japanese)
[ci skip]

* New translations en.json (Kabyle)
[ci skip]

* New translations en.json (Kabyle)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations simple_form.en.yml (Kabyle)
[ci skip]

* New translations doorkeeper.en.yml (Kabyle)
[ci skip]

* New translations devise.en.yml (Kabyle)
[ci skip]

* i18n-tasks normalize

* yarn manage:translations
2020-02-08 23:33:22 +01:00
Eugen Rochko 4cf2ddc5df Fix rendering `<a>` without `href` when scheme unsupported (#13040)
- Disallow links with relative paths
- Disallow iframes with non-http protocols and relative paths

Close #13037
2020-02-08 21:22:38 +01:00
Eugen Rochko f1317633b5 Fix unfiltered params error when generating ActivityPub tag pagination (#13049) 2020-02-08 17:29:40 +01:00
Eugen Rochko bf4fb26b9d Fix malformed HTML causing uncaught error (#13042)
Fix OEmbed preview API leaking existence of private statuses (see #12930)
2020-02-07 15:24:22 +01:00
ThibG 2dae01ff25 Fix native share button not being displayed for unlisted toots (#13045) 2020-02-07 13:21:25 +01:00
Eugen Rochko 273aa806d3 Fix punycode being returned in some entities instead of unicode in REST API (#13035) 2020-02-03 21:16:37 +01:00
Eugen Rochko d0fe0d348b Fix remote convertible media attachments not being saved (#13032)
Because the file name was set after loading the file, Paperclip
was flagging the differing file extension as content type spoofing

Fix #12938
2020-02-03 18:45:56 +01:00
Eugen Rochko 9c2d10cd0c Fix punycode being rendered instead of unicode in some places (#13030) 2020-02-03 18:44:54 +01:00
ThibG f7deab10a5 Fix dates (without time) being rendered as datetimes in public pages (#13034) 2020-02-03 17:48:56 +01:00
Eugen Rochko 5c4b1db54a Change signature verification to ignore signatures with invalid host (#13033)
Instead of returning a signature verification error, pretend there
was no signature (i.e., this does not allow access to resources that
need a valid signature), so public resources can still be fetched

Fix #13011
2020-02-03 17:48:23 +01:00
Eugen Rochko 0c14bb9c69 New Crowdin translations (#12953)
* New translations en.json (Romanian)
[ci skip]

* New translations en.json (Russian)
[ci skip]

* New translations en.json (Persian)
[ci skip]

* New translations en.json (Serbian (Cyrillic))
[ci skip]

* New translations en.json (Serbian (Latin))
[ci skip]

* New translations en.json (Slovenian)
[ci skip]

* New translations en.json (Lithuanian)
[ci skip]

* New translations en.json (Macedonian)
[ci skip]

* New translations en.json (Malay)
[ci skip]

* New translations en.json (Marathi)
[ci skip]

* New translations en.json (Norwegian)
[ci skip]

* New translations en.json (Occitan)
[ci skip]

* New translations en.json (Estonian)
[ci skip]

* New translations en.json (Portuguese)
[ci skip]

* New translations en.yml (Portuguese, Brazilian)
[ci skip]

* New translations en.json (Malayalam)
[ci skip]

* New translations en.json (Icelandic)
[ci skip]

* New translations en.json (Kabyle)
[ci skip]

* New translations en.json (German)
[ci skip]

* New translations en.json (Arabic)
[ci skip]

* New translations en.json (Breton)
[ci skip]

* New translations en.json (Indonesian)
[ci skip]

* New translations en.json (Slovak)
[ci skip]

* New translations en.json (Norwegian Nynorsk)
[ci skip]

* New translations en.json (Chinese Simplified)
[ci skip]

* New translations en.json (Dutch)
[ci skip]

* New translations en.json (Corsican)
[ci skip]

* New translations en.json (Chinese Traditional)
[ci skip]

* New translations en.json (Chinese Traditional, Hong Kong)
[ci skip]

* New translations en.json (Bulgarian)
[ci skip]

* New translations en.json (Croatian)
[ci skip]

* New translations en.json (Czech)
[ci skip]

* New translations en.json (Danish)
[ci skip]

* New translations en.json (Esperanto)
[ci skip]

* New translations en.json (Catalan)
[ci skip]

* New translations en.json (Albanian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.json (Bengali)
[ci skip]

* New translations en.json (Basque)
[ci skip]

* New translations en.json (Welsh)
[ci skip]

* New translations en.json (Ukrainian)
[ci skip]

* New translations en.json (Telugu)
[ci skip]

* New translations en.json (Turkish)
[ci skip]

* New translations en.json (Urdu (Pakistan))
[ci skip]

* New translations en.json (Tamil)
[ci skip]

* New translations en.json (Vietnamese)
[ci skip]

* New translations en.json (Thai)
[ci skip]

* New translations en.json (Spanish)
[ci skip]

* New translations en.json (Spanish, Argentina)
[ci skip]

* New translations en.json (Swedish)
[ci skip]

* New translations en.yml (Galician)
[ci skip]

* New translations en.json (German)
[ci skip]

* New translations en.json (Portuguese)
[ci skip]

* New translations en.json (Kabyle)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.json (French)
[ci skip]

* New translations en.json (Galician)
[ci skip]

* New translations en.json (Persian)
[ci skip]

* New translations en.json (Russian)
[ci skip]

* New translations en.yml (Galician)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.json (Turkish)
[ci skip]

* New translations en.yml (Galician)
[ci skip]

* New translations en.json (German)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.json (Spanish)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations simple_form.en.yml (Kabyle)
[ci skip]

* New translations doorkeeper.en.yml (Kabyle)
[ci skip]

* New translations en.yml (Galician)
[ci skip]

* New translations en.json (Greek)
[ci skip]

* New translations en.yml (Greek)
[ci skip]

* New translations en.json (Korean)
[ci skip]

* New translations en.yml (Greek)
[ci skip]

* New translations en.json (Norwegian)
[ci skip]

* New translations doorkeeper.en.yml (Norwegian)
[ci skip]

* New translations en.json (Basque)
[ci skip]

* New translations en.yml (Basque)
[ci skip]

* New translations simple_form.en.yml (Basque)
[ci skip]

* New translations en.yml (Occitan)
[ci skip]

* New translations en.json (Occitan)
[ci skip]

* New translations en.yml (Occitan)
[ci skip]

* New translations doorkeeper.en.yml (Occitan)
[ci skip]

* New translations en.yml (Norwegian)
[ci skip]

* New translations en.yml (Norwegian)
[ci skip]

* New translations en.yml (Norwegian)
[ci skip]

* New translations en.json (Japanese)
[ci skip]

* New translations en.yml (Norwegian)
[ci skip]

* New translations en.json (Corsican)
[ci skip]

* New translations en.json (Indonesian)
[ci skip]

* New translations en.json (Catalan)
[ci skip]

* New translations en.yml (Tamil)
[ci skip]

* New translations en.json (Tamil)
[ci skip]

* New translations en.json (Kazakh)
[ci skip]

* New translations devise.en.yml (Tamil)
[ci skip]

* New translations en.json (Hungarian)
[ci skip]

* New translations en.json (Kabyle)
[ci skip]

* New translations en.json (Kabyle)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations simple_form.en.yml (Portuguese, Brazilian)
[ci skip]

* New translations en.json (Finnish)
[ci skip]

* New translations en.json (Finnish)
[ci skip]

* New translations simple_form.en.yml (Finnish)
[ci skip]

* New translations en.json (Spanish, Argentina)
[ci skip]

* New translations en.json (Portuguese, Brazilian)
[ci skip]

* New translations en.yml (Norwegian Nynorsk)
[ci skip]

* New translations doorkeeper.en.yml (Norwegian Nynorsk)
[ci skip]

* New translations en.json (Norwegian Nynorsk)
[ci skip]

* New translations en.yml (Persian)
[ci skip]

* New translations en.yml (Portuguese)
[ci skip]

* New translations en.yml (Russian)
[ci skip]

* New translations en.yml (Galician)
[ci skip]

* New translations en.yml (Spanish)
[ci skip]

* New translations en.yml (Catalan)
[ci skip]

* New translations en.yml (German)
[ci skip]

* New translations en.yml (Corsican)
[ci skip]

* New translations en.json (Esperanto)
[ci skip]

* New translations en.yml (Esperanto)
[ci skip]

* New translations en.yml (Esperanto)
[ci skip]

* New translations en.json (Icelandic)
[ci skip]

* New translations en.yml (Icelandic)
[ci skip]

* New translations en.yml (Esperanto)
[ci skip]

* New translations simple_form.en.yml (Esperanto)
[ci skip]

* New translations en.yml (Spanish, Argentina)
[ci skip]

* New translations en.yml (Portuguese, Brazilian)
[ci skip]

* New translations en.json (Dutch)
[ci skip]

* New translations en.yml (Dutch)
[ci skip]

* New translations en.yml (Esperanto)
[ci skip]

* New translations en.yml (French)
[ci skip]

* New translations en.yml (Dutch)
[ci skip]

* New translations en.yml (Dutch)
[ci skip]

* New translations en.yml (Hungarian)
[ci skip]

* New translations en.yml (Dutch)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.json (Turkish)
[ci skip]

* New translations en.yml (Turkish)
[ci skip]

* New translations en.yml (Dutch)
[ci skip]

* New translations en.json (Estonian)
[ci skip]

* New translations en.yml (Estonian)
[ci skip]

* New translations doorkeeper.en.yml (Dutch)
[ci skip]

* New translations simple_form.en.yml (Dutch)
[ci skip]

* New translations en.yml (Estonian)
[ci skip]

* New translations simple_form.en.yml (Dutch)
[ci skip]

* New translations simple_form.en.yml (Estonian)
[ci skip]

* New translations simple_form.en.yml (Dutch)
[ci skip]

* New translations en.yml (Japanese)
[ci skip]

* New translations en.yml (Korean)
[ci skip]

* New translations en.yml (Greek)
[ci skip]

* New translations en.json (Dutch)
[ci skip]

* New translations en.yml (Asturian)
[ci skip]

* New translations simple_form.en.yml (Asturian)
[ci skip]

* New translations en.yml (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.yml (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.yml (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.yml (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.yml (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations doorkeeper.en.yml (Asturian)
[ci skip]

* New translations en.yml (Japanese)
[ci skip]

* New translations doorkeeper.en.yml (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.yml (Japanese)
[ci skip]

* New translations en.yml (Indonesian)
[ci skip]

* New translations en.yml (Kazakh)
[ci skip]

* New translations en.yml (Tamil)
[ci skip]

* New translations devise.en.yml (Tamil)
[ci skip]

* New translations devise.en.yml (Tamil)
[ci skip]

* New translations devise.en.yml (Tamil)
[ci skip]

* New translations en.json (Kabyle)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.json (Thai)
[ci skip]

* New translations en.yml (Thai)
[ci skip]

* New translations devise.en.yml (Tamil)
[ci skip]

* New translations devise.en.yml (Tamil)
[ci skip]

* New translations devise.en.yml (Tamil)
[ci skip]

* New translations devise.en.yml (Tamil)
[ci skip]

* New translations devise.en.yml (Tamil)
[ci skip]

* New translations devise.en.yml (Tamil)
[ci skip]

* New translations en.json (Persian)
[ci skip]

* New translations devise.en.yml (Persian)
[ci skip]

* New translations devise.en.yml (Persian)
[ci skip]

* New translations en.yml (Esperanto)
[ci skip]

* New translations en.json (Korean)
[ci skip]

* New translations en.yml (Korean)
[ci skip]

* New translations simple_form.en.yml (Korean)
[ci skip]

* New translations en.json (Ukrainian)
[ci skip]

* New translations en.yml (Ukrainian)
[ci skip]

* New translations devise.en.yml (Tamil)
[ci skip]

* New translations devise.en.yml (Tamil)
[ci skip]

* New translations simple_form.en.yml (Dutch)
[ci skip]

* New translations en.yml (Dutch)
[ci skip]

* New translations simple_form.en.yml (Dutch)
[ci skip]

* New translations en.yml (Thai)
[ci skip]

* New translations en.yml (Thai)
[ci skip]

* New translations simple_form.en.yml (Thai)
[ci skip]

* New translations devise.en.yml (Tamil)
[ci skip]

* New translations devise.en.yml (Tamil)
[ci skip]

* New translations en.json (Tamil)
[ci skip]

* New translations en.json (Tamil)
[ci skip]

* New translations en.json (Chinese Simplified)
[ci skip]

* New translations en.yml (Chinese Simplified)
[ci skip]

* New translations en.yml (Basque)
[ci skip]

* New translations en.json (Occitan)
[ci skip]

* New translations simple_form.en.yml (Occitan)
[ci skip]

* New translations simple_form.en.yml (Occitan)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.json (Kabyle)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations doorkeeper.en.yml (Kabyle)
[ci skip]

* New translations en.yml (Kabyle)
[ci skip]

* New translations en.yml (Occitan)
[ci skip]

* New translations simple_form.en.yml (Occitan)
[ci skip]

* New translations en.yml (Greek)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.yml (Asturian)
[ci skip]

* New translations en.yml (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.yml (Asturian)
[ci skip]

* New translations devise.en.yml (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.yml (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.yml (Asturian)
[ci skip]

* New translations en.yml (Chinese Simplified)
[ci skip]

* New translations en.yml (Greek)
[ci skip]

* New translations en.yml (Italian)
[ci skip]

* New translations en.yml (Italian)
[ci skip]

* New translations en.json (Italian)
[ci skip]

* New translations en.yml (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.yml (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.yml (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.json (Asturian)
[ci skip]

* New translations en.yml (Asturian)
[ci skip]

* New translations en.json (Chinese Simplified)
[ci skip]

* New translations en.yml (Occitan)
[ci skip]

* New translations en.yml (Occitan)
[ci skip]

* New translations en.yml (Occitan)
[ci skip]

* i18n-tasks normalize

* yarn manage:translations
2020-02-03 15:52:20 +01:00
fuyu b8db3b4cdf Don't display toggle reveal button in video modal when full screen (#13026) 2020-02-03 12:26:00 +01:00
ThibG 99cf92a3cf Change how unread announcements are handled (#13020)
* Change meaning of /api/v1/announcements/:id/dismiss to mark an announcement as read

* Change how unread announcements are counted in UI

* Add unread marker to announcements and mark announcements as unread as they are displayed

* Fixups
2020-02-03 01:53:09 +01:00
abcang 94bc823eb6 Search account domain in lowercase (#13016)
* Search account domain in lowercase

* fix rubocop error

* fix spec/models/account_spec.rb
2020-02-01 15:42:24 +01:00
Renato "Lond" Cerqueira 9e7b2242f7 Fix error when sending moderation notification (#13014)
Since the statuses helper is not loaded, the rtl helper cannot be found
and the email cannot be sent.
2020-02-01 15:42:12 +01:00
Sasha Sorokin 864c9a2141 Add "Show thread" button to public profiles (#13000)
This adds "Show thread" button to the status view which is used in
profiles. The logic to display the button is mimicking logic in
web app available at app/javascript/mastodon/components/status.js#L439.

* The little change in components CSS required to remove enforced
  underline for all links on public pages on our button.
2020-01-29 17:35:54 +01:00
Eugen Rochko 7774ac36e5 Fix mascot being too large, and a code style issue (#13002) 2020-01-29 16:18:33 +01:00
Sasha Sorokin d0cc024ce9 Add missing translations (#12996)
This commit adds missing translations for #12966 and #12954.
2020-01-28 20:28:38 +01:00
Sasha Sorokin cce0870311 Fix regressions caused by #12961 (#12961)
This commit attempts to fix most of regressions caused by #12961
pull request which added even spread of space between tabs.

The following fixes were done:

- Don't hide overflow in tabs

   As tabs use ::after and ::before pseudo-elements to create arrow on
   the bottom of selected tab, "overflow: hidden" will cause this arrow
   to look split from the bottom container.

   For the future we probably should use slider element instead, which
   would align according to currently selected tab, instead of relying
   on pseudo-elements. Such method would also allow smooth transitions.

- Disallow wrapping tab text on insufficient space

   This would fix some unwanted behavior[1] when on insufficient width,
   renderer might attempt wrapping text to not overtake others' space.

   [1]: https://mastodon.social/@Gargron/103546083813829165
2020-01-28 02:21:18 +01:00
Eugen Rochko 6c643bed6a Fix design of announcements in admin UI (#12989) 2020-01-28 02:21:00 +01:00
Eugen Rochko 5bc109eeb7 Change announcements to be collapsed on page load in web UI (#12990) 2020-01-28 02:20:47 +01:00
Eugen Rochko 87098751c4 Revert "Avoid using uppercase text-transform (#12684)" (#12987)
This reverts commit d0ab8d2d0f.
2020-01-27 13:44:29 +01:00
Eugen Rochko 9fb8165712 Add publish/unpublish controls to announcements in admin UI (#12967) 2020-01-27 11:05:33 +01:00
Eugen Rochko d67f2c1c25 Change number animations direction based on decrease or increase (#12971) 2020-01-27 11:04:11 +01:00
Eugen Rochko 1130c5167c Add animations to announcement reactions (#12970) 2020-01-27 11:03:45 +01:00
ThibG d9cdd58423 Change last_status_at to be a date, not datetime (#12966)
* Return last_status_at as date, not datetime

* Fix relative timestamp for dates when delay is inferior to 1 day

* Also fix public directory

* Fix error when last_status_at isn't set
2020-01-26 23:13:48 +01:00
Eugen Rochko 9d3bba9576 Fix expired announcements being re-published (#12964) 2020-01-26 22:43:18 +01:00
Eugen Rochko 3ae0b03603 Fix link colors in announcements (#12965) 2020-01-26 22:26:50 +01:00
Eugen Rochko dd68e44cfa Add streaming API updates for announcements being modified or deleted (#12963)
Change `all_day` to be a visual client-side cue only

Publish immediately if `scheduled_at` is in the past

Add `published_at` and `updated_at` to announcements JSON
2020-01-26 20:07:26 +01:00
ButterflyOfFire 4bacf6aa2f Add kabyle language to Mastodon (#12962)
* Add kabyle language to settings_helper

* Adding kabyle language to application.rb
2020-01-26 14:42:35 +01:00
ThibG 8f37f20ff9 Fix status overflowing in report dialog (#12959)
Fixes #12942
2020-01-25 22:59:00 +01:00
ThibG 234f1be486 Fix “new items glow” being displayed above settings and announcements (#12958) 2020-01-25 19:40:36 +01:00
ThibG 1c85e84b4e Fix spurious error and incorrect state change when adding a reaction twice (#12957)
* Fix spurious error and incorrect state change when adding a reaction twice

* Remove superfluous top border for announcements box
2020-01-25 18:19:24 +01:00
ThibG ab01849287 Improve announcements design (#12954)
* Move announcements above scroll container; add button to temporarily hide them

* Remove interface for dismissing announcements

* Display number of unread announcements

* Count unread announcements accurately

* Fix size of announcement box not fitting the currently displayed announcement

* Fix announcement box background color to match button color
2020-01-25 16:35:33 +01:00
Eugen Rochko c058ffd67b Fix validations of reactions limit (#12955) 2020-01-25 16:00:29 +01:00