about summary refs log tree commit diff
path: root/app/javascript/mastodon
AgeCommit message (Collapse)Author
2020-07-07Change design of account notes in web UI (#14208)Eugen Rochko
* Change design of account notes in web UI * Fix `for` -> `htmlFor`
2020-07-06Fix vanilla flavour tooThibaut Girka
2020-07-06Replace shortNumberFormat with <ShortNumber> (#14061)Sasha Sorokin
This commit introduces new utility component - ShortNumber. It should work almost the same way as original shortNumberFormat function, though it also localizes units and accepts one more prop - renderer. Renderer is a function that takes rendered short formatted number and also ready-to-pluralize number to format display result accordingly. Ready-to-pluralize number allows to correctly select plural for compactly notated numbers, respecting thousands and other units. Issue #12451 accurately describes the issue with using raw numbers when replacing counter with short version. In short, it doesn't work with languages such as Russian, that require different plurals, according to the unit number was compacted to. All previous usages of shortNumberFormat were replaced with new function, and as it became unused, it was removed to avoid misleading.
2020-07-06Fix restored words from "toot" to "status" (#14242)mayaeh
2020-07-05Merge branch 'master' into glitch-soc/merge-upstreamThibaut Girka
Conflicts: - `.env.production.sample`: Upstream changed it completely. Changed ours to merge upstream's new structure, but keeping most of the information.
2020-07-05Add color extraction for audio thumbnails (#14209)Eugen Rochko
2020-07-03Fix-up #13749 (#14204)mayaeh
2020-07-02Fix audio modals not using blurhash and poster (#14199)Eugen Rochko
2020-07-02Merge branch 'master' into glitch-soc/merge-upstreamThibaut Girka
2020-07-02New Crowdin translations (#13749)Eugen Rochko
* New translations en.json (Galician) [ci skip] * New translations en.json (Icelandic) [ci skip] * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.json (Indonesian) [ci skip] * New translations en.json (Estonian) [ci skip] * New translations en.json (Kannada) [ci skip] * New translations en.json (Asturian) [ci skip] * New translations en.json (Serbian (Latin)) [ci skip] * New translations en.json (Corsican) [ci skip] * New translations en.json (Kabyle) [ci skip] * New translations en.json (Ido) [ci skip] * New translations en.json (Breton) [ci skip] * New translations en.json (Telugu) [ci skip] * New translations en.json (Latvian) [ci skip] * New translations en.json (Hindi) [ci skip] * New translations en.json (Malay) [ci skip] * New translations en.json (Welsh) [ci skip] * New translations en.json (Esperanto) [ci skip] * New translations en.json (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.json (Malayalam) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations en.json (Czech) [ci skip] * New translations en.json (Danish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Greek) [ci skip] * New translations en.json (Basque) [ci skip] * New translations en.json (Finnish) [ci skip] * New translations en.json (Bulgarian) [ci skip] * New translations en.json (Arabic) [ci skip] * New translations en.json (Hebrew) [ci skip] * New translations en.json (Occitan) [ci skip] * New translations en.json (Sardinian) [ci skip] * New translations en.json (Slovenian) [ci skip] * New translations en.json (Thai) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations en.json (Hungarian) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations en.json (Norwegian) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Portuguese) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Albanian) [ci skip] * New translations en.json (Serbian (Cyrillic)) [ci skip] * New translations en.json (Swedish) [ci skip] * New translations en.json (Georgian) [ci skip] * New translations en.json (Armenian) [ci skip] * New translations en.json (Italian) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Lithuanian) [ci skip] * New translations en.json (Macedonian) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.json (Greek) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (Italian) [ci skip] * New translations en.json (Portuguese) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Italian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.json (Italian) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.json (Portuguese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.json (Portuguese) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.json (Spanish, Argentina) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.json (Dutch) [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.json (Albanian) [ci skip] * New translations en.json (Albanian) [ci skip] * New translations en.json (Hungarian) [ci skip] * New translations en.json (Hungarian) [ci skip] * New translations devise.en.yml (Persian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.json (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations simple_form.en.yml (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.json (Greek) [ci skip] * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.json (Corsican) [ci skip] * New translations en.json (Corsican) [ci skip] * New translations simple_form.en.yml (Corsican) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.json (Vietnamese) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.json (Arabic) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations en.json (Taigi) [ci skip] * New translations en.yml (Taigi) [ci skip] * New translations simple_form.en.yml (Taigi) [ci skip] * New translations activerecord.en.yml (Taigi) [ci skip] * New translations devise.en.yml (Taigi) [ci skip] * New translations doorkeeper.en.yml (Taigi) [ci skip] * New translations simple_form.en.yml (French) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Romanian) [ci skip] * New translations en.json (Romanian) [ci skip] * New translations en.yml (Romanian) [ci skip] * New translations en.yml (Romanian) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Icelandic) [ci skip] * New translations en.json (Icelandic) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations simple_form.en.yml (Chinese Simplified) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.json (Thai) [ci skip] * New translations 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.yml (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 en.yml (Thai) [ci skip] * New translations doorkeeper.en.yml (Thai) [ci skip] * New translations en.json (Thai) [ci skip] * New translations en.json (Thai) [ci skip] * New translations en.json (Silesian) [ci skip] * New translations en.yml (Silesian) [ci skip] * New translations simple_form.en.yml (Silesian) [ci skip] * New translations activerecord.en.yml (Silesian) [ci skip] * New translations devise.en.yml (Silesian) [ci skip] * New translations doorkeeper.en.yml (Silesian) [ci skip] * New translations en.json (Armenian) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations en.json (Kabyle) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.json (Thai) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Asturian) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.json (Albanian) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.json (Albanian) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.json (Albanian) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.json (Albanian) [ci skip] * New translations en.json (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 (Albanian) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Armenian) [ci skip] * New translations en.yml (Armenian) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Russian) [ci skip] * i18n-tasks normalize * yarn manage:translations
2020-07-01Fix the conditions for incomplete remote content (#14195)Takeshi Umeda
2020-07-01Merge branch 'master' into glitch-soc/merge-upstreamThibaut Girka
Conflicts: - `app/javascript/packs/public.js`: Conflict because part of that file has been split to `app/javascript/core/settings.js`. Ported those changes there.
2020-07-01follow-up #14149 (#14192)mayaeh
ran `yarn manage:translations en`
2020-06-30Merge branch 'master' into glitch-soc/merge-upstreamThibaut Girka
Conflicts: - `.env.production.sample`: Upstream deleted it, I decided to keep it. - `package.json`: Upstream updated a dependency textually too close to wavesurfer.js which has been deleted from upstream but is kept in glitch-soc for now.
2020-06-30Add user notes on accounts (#14148)ThibG
* Add UserNote model * Add UI for user notes * Put comment in relationships entity * Add API to create user notes * Copy user notes to new account when receiving a Move activity * Address some of the review remarks * Replace modal by inline edition * Please CodeClimate * Button design changes * Change design again * Cancel note edition when pressing Escape * Fixes * Tweak design again * Move “Add note” item, and allow users to add notes to themselves * Rename UserNote into AccountNote, rename “comment” Relationship attribute to “note”
2020-06-29Replace to testing-library from enzyme (#14152)Yamagishi Kazutoshi
2020-06-29Add customizable thumbnails for audio and video attachments (#14145)Eugen Rochko
- Change audio files to not be stripped of metadata - Automatically extract cover art from audio if it exists - Add `thumbnail` parameter to `POST /api/v1/media`, `POST /api/v2/media` and `PUT /api/v1/media/:id` - Add `icon` to represent it in attachments in ActivityPub - Fix `preview_url` containing URL of missing missing image when there is no thumbnail instead of null - Fix duration of audio not being displayed on public pages until the file is loaded
2020-06-28Fix read marker state not being udpated internally (#14155)ThibG
Fixes #14151
2020-06-26Change sensitive preview cards to not blur text (#14143)ThibG
Also only require click-through for interactive embeds.
2020-06-26Merge branch 'master' into glitch-soc/merge-upstreamThibaut Girka
2020-06-26Improve wording of the “Add media” button tooltip (#13954)Mélanie Chauvel
- Remove (incomplete) list of supported formats - List types of media (image, video, audio) - Tell that several images could be uploaded using plural
2020-06-25Change to correct the role of the boost button (#14132)Takeshi Umeda
2020-06-25Add a visibility icon to status (#14123)Takeshi Umeda
* Add a visibility icon to status * Change to using the icon element * Fix RTL * Add a public globe
2020-06-25Fix design issues with sensitive preview cards (#14126)ThibG
* Fix design issues with sensitive preview cards * Center “sensitive” label on preview image for interactive cards * Add “button” role to sensitive preview card text
2020-06-25Fix various issues around OpenGraph representation of media (#14133)Eugen Rochko
- Fix audio attachments not being represented in OpenGraph tags - Fix audio being represented as "1 image" in OpenGraph descriptions - Fix video metadata being overwritten by paperclip-av-transcoder - Fix embedded player not using Mastodon's UI - Fix audio/video progress bars not moving smoothly - Fix audio/video buffered bars not displaying correctly
2020-06-24Merge branch 'master' into glitch-soc/merge-upstreamThibaut Girka
Conflicts: - `app/controllers/concerns/sign_in_token_authentication_concern.rb`: Conflict due to glitch-soc's theming system. Ported upstream changes. - `app/controllers/concerns/two_factor_authentication_concern.rb`: Conflict due to glitch-soc's theming system. Ported upstream changes.
2020-06-24Fix audio/video/images/cards not reacting to window resizes in web UI (#14130)Eugen Rochko
* Fix audio/video/images/cards not reacting to window resizes in web UI * Update app/javascript/mastodon/features/audio/index.js Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh> Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2020-06-23never filter own posts from timeline (#14128)ThibG
Signed-off-by: Thibaut Girka <thib@sitedethib.com> Co-authored-by: ash lea <example@thisismyactual.email>
2020-06-23Change volume control and download buttons in web UI (#14122)Eugen Rochko
* Fix audio download button not starting download in web UI * Fix volume controls on audio and video players in web UI * Remove download button from video player in web UI
2020-06-22Fix audio player not working when media files are hosted on a different ↵ThibG
domain (#14118)
2020-06-21Change design of audio players in web UI (#14095)Eugen Rochko
2020-06-20Fix modifier key to keep the EmojiPicker on macOS (#14096)Takeshi Umeda
2020-06-17Merge branch 'master' into glitch-soc/merge-upstreamThibaut Girka
Conflicts: - `Gemfile.lock`: not a real conflict, upstream update too close to a glitch-soc-specific dependency
2020-06-15Fix initial audio volume not corresponding to what's displayed (#14057)ThibG
2020-06-14Add hints about incomplete remote content to web UI (#14031)Eugen Rochko
2020-06-10Fixed emoji detection problem to append border (#14020)fuyu
* Fixed emoji detection problem to append border * Add tests * Add missing semicolon * Fixed wrong result when includes different variation selector * Add missing semicolon * Remove grapheme-splitter and Change emoji list to array from string * Update comment * Remove spaces Co-authored-by: ThibG <thib@sitedethib.com>
2020-06-10Fix TL sometimes jumping when closing modals (#14019)ThibG
Fixes #14018
2020-06-10Merge branch 'master' into glitch-soc/merge-upstreamThibaut Girka
2020-06-09Fix WebUI crash when processing accounts before page is loaded (#14015)ThibG
2020-06-09Merge branch 'master' into glitch-soc/merge-upstreamThibaut Girka
2020-06-09Merge branch 'master' into glitch-soc/merge-upstreamThibaut Girka
Conflicts: - `app/controllers/activitypub/collections_controller.rb`: Conflict due to glitch-soc having to take care of local-only pinned toots in that controller. Took upstream's changes and restored the local-only special handling. - `app/controllers/auth/sessions_controller.rb`: Minor conflicts due to the theming system, applied upstream changes, adapted the following two files for glitch-soc's theming system: - `app/controllers/concerns/sign_in_token_authentication_concern.rb` - `app/controllers/concerns/two_factor_authentication_concern.rb` - `app/services/backup_service.rb`: Minor conflict due to glitch-soc having to handle local-only toots specially. Applied upstream changes and restored the local-only special handling. - `app/views/admin/custom_emojis/index.html.haml`: Minor conflict due to the theming system. - `package.json`: Upstream dependency updated, too close to a glitch-soc-only dependency in the file. - `yarn.lock`: Upstream dependency updated, too close to a glitch-soc-only dependency in the file.
2020-06-09Add hotkey for toggling content warning composer field (#13987)ThibG
2020-06-09Update “status” to “toot” for en.json (#13877)Bei Li
2020-06-09Improve rendering of emoji which do not contrast with background (#13772)ThibG
* Refactor list of emoji requiring added outlines so that it can be theme-specific * Split inaccessible emoji to emoji requiring an outline and ones that can be inverted * Drop the “silouhettes” from black emoji as they seem to have changed color * Add inaccessible emojis list for the light theme * Use bordered emoji variant instead of unreliable CSS
2020-06-09FIX: filters ignore media descriptions (#13837)Ben Lubar
* FIX: filters ignore media descriptions * remove parentheses to make codeclimate happy * combine the text and run the regular expression only once. https://github.com/tootsuite/mastodon/pull/13837#discussion_r431752581 * Fix use of “filter” instead of “compact”, fix coding style issues Co-authored-by: Thibaut Girka <thib@sitedethib.com>
2020-06-06Hide sensitive preview cards with blurhash (#13985)ThibG
* Use preview card blurhash in WebUI * Handle sensitive preview cards
2020-06-02Fix ref attr for react-textarea-autozsize (#13936)Yamagishi Kazutoshi
2020-06-01Merge branch 'master' into glitch-soc/merge-upstreamThibaut Girka
2020-05-31Fix unsent toot confirmation dialog not popping up in single column (#13888)ThibG
2020-05-31Allow Ctrl-click to keep EmojiPicker window open (#13896)Brian C. Lindner