ThibG
aa7142b9e2
Fix hashtag column options styling ( #14247 )
...
* Enable nonces for stylesheets
* Pass nonce to react-select
2020-07-07 01:33:38 +02:00
Eugen Rochko
b6b2d8b8a3
Change design of account notes in web UI ( #14208 )
...
* Change design of account notes in web UI
* Fix `for` -> `htmlFor`
2020-07-07 01:24:03 +02:00
Sasha Sorokin
55969e3bc2
Replace shortNumberFormat with <ShortNumber> ( #14061 )
...
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-06 14:27:32 +02:00
mayaeh
e439151df3
Fix restored words from "toot" to "status" ( #14242 )
2020-07-06 12:17:33 +02:00
Eugen Rochko
8517a5fdb4
Add color extraction for audio thumbnails ( #14209 )
2020-07-05 18:28:25 +02:00
mayaeh
6f6e9d8214
Fix-up #13749 ( #14204 )
2020-07-03 13:26:35 +02:00
Eugen Rochko
6163518115
Fix audio modals not using blurhash and poster ( #14199 )
2020-07-02 16:27:35 +02:00
Eugen Rochko
21f1cbaf30
New Crowdin translations ( #13749 )
...
* 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-02 00:45:15 +02:00
Takeshi Umeda
911c385f2f
Fix the conditions for incomplete remote content ( #14195 )
2020-07-01 23:38:44 +02:00
Ariel
eee8b314af
Fix cursor type in statuses ( #14185 )
2020-07-01 13:52:05 +02:00
ThibG
9e14647df8
Fix lock icon not being shown when locking account in profile settings ( #14190 )
2020-07-01 13:51:50 +02:00
mayaeh
4b703d398a
follow-up #14149 ( #14192 )
...
ran `yarn manage:translations en`
2020-07-01 11:34:19 +02:00
ThibG
3afc7977b1
Add user notes on accounts ( #14148 )
...
* 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-30 19:19:50 +02:00
Yamagishi Kazutoshi
72ff9a1d65
Replace to testing-library from enzyme ( #14152 )
2020-06-29 13:58:07 +02:00
trwnh
41acf83cdf
Fix padding on account header ( #14179 )
2020-06-29 13:57:44 +02:00
Eugen Rochko
a3ce01a102
Add customizable thumbnails for audio and video attachments ( #14145 )
...
- 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-29 13:56:55 +02:00
ThibG
8b7066dc61
Fix read marker state not being udpated internally ( #14155 )
...
Fixes #14151
2020-06-28 20:55:32 +02:00
ThibG
c92278aa1c
Change sensitive preview cards to not blur text ( #14143 )
...
Also only require click-through for interactive embeds.
2020-06-26 14:31:13 +02:00
Mélanie Chauvel
2fca9d3715
Improve appearence consistency of settings pages ( #13938 )
...
* Fix header button changing header size in settings pages
* Make form buttons look more like a part of the form in settings pages
- Put buttons closer, using same distance as between inputs
- Make buton font size a bit smaller to blend a bit more
- Add the class button to button tags for consisent styling
2020-06-26 00:36:30 +02:00
Mélanie Chauvel
cb63e1e0d7
Improve wording of the “Add media” button tooltip ( #13954 )
...
- Remove (incomplete) list of supported formats
- List types of media (image, video, audio)
- Tell that several images could be uploaded using plural
2020-06-26 00:14:29 +02:00
Takeshi Umeda
17c1443b23
Change to correct the role of the boost button ( #14132 )
2020-06-25 22:44:19 +02:00
Takeshi Umeda
1aed75c2d0
Add a visibility icon to status ( #14123 )
...
* Add a visibility icon to status
* Change to using the icon element
* Fix RTL
* Add a public globe
2020-06-25 22:43:59 +02:00
ThibG
907fe2996c
Fix design issues with sensitive preview cards ( #14126 )
...
* 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-25 22:42:01 +02:00
ThibG
528c103fc6
Fix avatar size in public page detailed status ( #14140 )
...
Regression from the inline-CSS changes
2020-06-25 22:41:12 +02:00
Eugen Rochko
12ac904a33
Fix various issues around OpenGraph representation of media ( #14133 )
...
- 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-25 01:33:01 +02:00
Eugen Rochko
d0dc37eadb
Fix audio/video/images/cards not reacting to window resizes in web UI ( #14130 )
...
* 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-24 10:25:32 +02:00
ThibG
90445230cd
Fix very wide media attachments resulting in too thin a thumbnail ( #14127 )
...
Fixes #14094
2020-06-23 17:24:29 +02:00
ThibG
6c42b23382
never filter own posts from timeline ( #14128 )
...
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
Co-authored-by: ash lea <example@thisismyactual.email>
2020-06-23 16:01:34 +02:00
Eugen Rochko
ce34c13aff
Change volume control and download buttons in web UI ( #14122 )
...
* 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-23 12:20:14 +02:00
ThibG
90477d7e4d
Fix audio player not working when media files are hosted on a different domain ( #14118 )
2020-06-22 19:24:16 +02:00
Eugen Rochko
563a77d0b4
Change design of audio players in web UI ( #14095 )
2020-06-21 02:27:19 +02:00
Takeshi Umeda
c0b52ac871
Fix modifier key to keep the EmojiPicker on macOS ( #14096 )
2020-06-20 13:30:40 +02:00
fuyu
88cbcb5804
Fix unnecessary gap under of video modal ( #14098 )
2020-06-20 13:30:27 +02:00
ThibG
3f5fa64211
Fix initial audio volume not corresponding to what's displayed ( #14057 )
2020-06-15 16:43:30 +02:00
Eugen Rochko
32b7d341b7
Add hints about incomplete remote content to web UI ( #14031 )
2020-06-14 22:29:40 +02:00
fuyu
4a3af0386b
Fixed emoji detection problem to append border ( #14020 )
...
* 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-10 21:56:14 +02:00
ThibG
9c7220aa3a
Fix TL sometimes jumping when closing modals ( #14019 )
...
Fixes #14018
2020-06-10 13:57:13 +02:00
ThibG
ceac31f04b
Fix WebUI crash when processing accounts before page is loaded ( #14015 )
2020-06-09 20:53:20 +02:00
ThibG
56d1dafdc4
Add hotkey for toggling content warning composer field ( #13987 )
2020-06-09 10:32:32 +02:00
Bei Li
0f43ab4830
Update “status” to “toot” for en.json ( #13877 )
2020-06-09 10:28:57 +02:00
ThibG
f55fe1a5ee
Improve rendering of emoji which do not contrast with background ( #13772 )
...
* 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-09 10:28:23 +02:00
Ben Lubar
da59204700
FIX: filters ignore media descriptions ( #13837 )
...
* 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-09 00:11:42 +02:00
ThibG
eda9bb35f1
Hide sensitive preview cards with blurhash ( #13985 )
...
* Use preview card blurhash in WebUI
* Handle sensitive preview cards
2020-06-06 17:41:56 +02:00
Yamagishi Kazutoshi
196bdd3dd7
Fix ref attr for react-textarea-autozsize ( #13936 )
2020-06-02 03:24:04 +02:00
ThibG
0c7a21a38c
Fix unsent toot confirmation dialog not popping up in single column ( #13888 )
2020-05-31 20:38:56 +02:00
Christopher Choi
2b1a6e7597
Adjust flash alert contrast for better readability ( #13892 )
2020-05-31 20:35:18 +02:00
Brian C. Lindner
f8f195b8c2
Allow Ctrl-click to keep EmojiPicker window open ( #13896 )
2020-05-31 20:34:34 +02:00
ThibG
366942b60f
Fix timeline markers in Firefox (regression from #13887 ) ( #13889 )
...
Unfortunately, Firefox does not support the `keepalive` parameter
I used in the previous PR. However it supports the `navigator.sendBeacon`
API that allows that kind of things, but does not allow setting headers.
Therefore, this PR replaces it with a `sendBeacon` call that passes the
bearer token in the POST data.
Doorkeeper will then handle the auth token out of the box, as long as
it is passed as form data. Passing the query as JSON does not work.
2020-05-29 19:25:57 +02:00
ThibG
bf68cd3bf0
Fix timeline markers not working on Chrome ( #13887 )
...
* Periodically save timeline markers
This saves timeline markers immediately upon message arrival, but not more
than once every 5 minutes.
This does not change how the markers are saved on closing the window,
except that it avoids submitting them if there is no need for it.
* Use the Fetch API when possible instead of XHR on window unload
2020-05-29 16:14:16 +02:00
Mélanie Chauvel
006af53406
Change wording from “Hide media” to “Hide image/images” in Web UI ( #13834 )
2020-05-25 12:30:34 +02:00