Commit graph

881 commits

Author SHA1 Message Date
Eugen Rochko
635812f9ea Add tooltips to audio/video player buttons (#13203) 2020-03-05 15:52:15 +01:00
ThibG
2dae01ff25 Fix native share button not being displayed for unlisted toots (#13045) 2020-02-07 13:21:25 +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
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
1130c5167c Add animations to announcement reactions (#12970) 2020-01-27 11:03:45 +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
ThibG
234f1be486 Fix “new items glow” being displayed above settings and announcements (#12958) 2020-01-25 19:40:36 +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
150c13c4e0 Add limit of 8 different reaction types per announcement (#12950) 2020-01-25 05:23:33 +01:00
Eugen Rochko
8ca6f2d3b2 Add number animations (#12948) 2020-01-25 05:23:05 +01:00
Sasha Sorokin
51f376aee3 Fix unlocalized dropdown button title (#12947)
In detailed status component, "More" action bar button wasn't
localized. This commit fixes it according to previously used code.
2020-01-24 22:37:04 +01:00
Eugen Rochko
f95fd62bac Add announcements (#12662)
* Add announcements

Fix #11006

* Add reactions to announcements

* Add admin UI for announcements

* Add unit tests

* Fix issues

- Add `with_dismissed` param to announcements API
- Fix end date not being formatted when time range is given
- Fix announcement delete causing reactions to send streaming updates
- Fix announcements container growing too wide and mascot too small
- Fix `all_day` being settable when no time range is given
- Change text "Update" to "Announcement"

* Fix scheduler unpublishing announcements before they are due

* Fix filter params not being passed to announcements filter
2020-01-23 22:00:13 +01:00
ThibG
691b14aaf8 Add “account timeline” filter category (#12918)
* Add “account timeline” filter category

Previously, no filter category applied to account timelines.

* Rename “Account timelines” into “Profiles”
2020-01-23 21:32:00 +01:00
ThibG
5416a793c1 Fix unfollow confirmations in account directory (#12922)
Fixes #12921
2020-01-22 16:26:47 +01:00
Eugen Rochko
1d5e283c06 Change audio/video playback to stop playback when out of view (#12486)
Change video player to not loop, since the audio player doesn't

Change playback and mute buttons to feel snappier
2020-01-11 02:02:21 +01:00
ThibG
cfaeea1779 Fix reuse of detailed status components (#12792)
Fixes #12770
2020-01-06 18:22:17 +01:00
Matt Panaro
af4be412f5 Fix 12661 (#12744)
* Revert "persist last-intersected status update and restore when ScrollableList is restored"

This reverts commit 07e26142ef6a8e74bd2ac5e9b461a5a1699bd4c8.

accidentally merged spurious code in https://github.com/tootsuite/mastodon/pull/12661.  https://github.com/tootsuite/mastodon/pull/12735 removes the slowdown that this code was trying to solve; and other functionality successfully restores the view state of the list

* Revert "cache currently-viewing status id to avoid calling redux with identical value"

This reverts commit c93df2159fbd3888a5c48d8a8b8ae61dbbc54b89.

accidentally merged spurious code in https://github.com/tootsuite/mastodon/pull/12661.  https://github.com/tootsuite/mastodon/pull/12735 removes the slowdown that this code was trying to solve; and other functionality successfully restores the view state of the list
2020-01-02 22:46:42 +01:00
Matt Panaro
47b330df2a Summary: fix slowness due to layout thrashing when reloading a large … (#12661)
* Summary: fix slowness due to layout thrashing when reloading a large set of status updates

in order to limit the maximum size of a status in a list view (e.g. the home timeline), so as to avoid having to scroll all the way through an abnormally large status update (see https://github.com/tootsuite/mastodon/pull/8205), the following steps are taken:
•the element containing the status is rendered in the browser
•its height is calculated, to determine if it exceeds the maximum height threshold.
Unfortunately for performance, these steps are carried out in the componentDidMount(/Update) method, which also performs style modifications on the element.  The combination of  height request and style modification during javascript evaluation in the browser leads to layout-thrashing, where the elements are repeatedly re-laid-out (see https://developers.google.com/web/fundamentals/performance/rendering/avoid-large-complex-layouts-and-layout-thrashing & https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Performance_best_practices_for_Firefox_fe_engineers).
The solution implemented here is to memoize the collapsed state in Redux the first time the status is seen (e.g. when fetched as part of a small batch, to populate the home timeline) , so that on subsequent re-renders, the value can be queried, rather than recalculated.  This strategy is derived from https://github.com/tootsuite/mastodon/pull/4439 & https://github.com/tootsuite/mastodon/pull/4909, and should resolve https://github.com/tootsuite/mastodon/issues/12455.

Andrew Lin (https://github.com/onethreeseven) is thanked for his assistance in root cause analysis and solution brainstorming

* remove getSnapshotBeforeUpdate from status

* remove componentWillUnmount from status

* persist last-intersected status update and restore when ScrollableList is restored

e.g. when navigating from home-timeline to a status conversational  thread and <Back again

* cache currently-viewing status id to avoid calling redux with identical value

* refactor collapse toggle to pass explicit boolean
2019-12-29 05:39:48 +01:00
Acid Chicken (硫酸鶏)
01c420f44b Fix tooltip messages of multiple poll switcher are reversed (#12616) 2019-12-16 23:55:02 +01:00
Eugen Rochko
37795253fc Revert "Fix an eslint warning (#12426)" (#12596)
This reverts commit b93456fd64.
2019-12-10 19:39:02 +01:00
Jeong Arm
d37ed5bc2a Fix media open hotkey (#12546) 2019-12-05 00:50:51 +01:00
Takeshi Umeda
58dd9698c3 Add basic support for group actors (#12071)
* Show badge on group actor in WebUI

* Do not notify in case of  by following group actor

* If you mention group actor, also mention group actor followers

* Relax characters that can be used in username (same as Application)

* Revert "Relax characters that can be used in username (same as Application)"

This reverts commit 7e10a137b878d0db1b5252c52106faef5e09ca4b.

* Delete display_name method
2019-12-04 20:36:33 +01:00
ThibG
c53ba20166 Fix poll options not being selectable via keyboard (#12538)
* Fix poll options not being selectable via keyboard

Fixes #12384

* Improve styling of poll option checkboxes/radio buttons

* Use more appropriate ARIA roles for poll options

* Allow switching between single and multiple choice from keyboard

* Coding style

* Avoid using .bind()
2019-12-03 19:53:16 +01:00
ThibG
272bc36227 Fix blocking/unblocking users from status dropdown menu (#12535)
Fixes #12511
2019-12-02 18:25:24 +01:00
ThibG
60d26cabf0 Add follow_request notification type (#12198)
* Add follow_request notification type

The notification type already existed in the backend but was never pushed
to the front-end. This also means translation strings were also available
for the backend, from the notification mailer.

Unlike other notification types, these are off by default, to match what
I remember of Gargron's view on the topic: that follow requests should not
clutter notifications and should instead be reviewed at the user's own
leisure in the dedicated column.

Since follow requests have their own column, I've deemed it unnecessary to
add a specific tab for them in the notification quick filter.

* Show follow request link in single-column if there are pending requests, even if account isn't locked

* Push follow requests from notifications to the follow_requests list

* Offer to accept or reject follow request from the notification

* Redesign follow request notification
2019-12-01 17:25:29 +01:00
Eugen Rochko
d15b346826 Fix conversations not having an unread indicator in web UI (#12506) 2019-12-01 07:06:20 +01:00
ThibG
af891f82be Add hotkey for opening media files (#12498)
* [WiP] Add hotkey to open media

* Give focus to play/pause button when opening video modal
2019-11-29 17:02:35 +01:00
ThibG
c872f1cdb6 Fix OCR with delete & redraft (#12465) 2019-11-25 01:42:51 +01:00
Dimitri Merejkowsky
b93456fd64 Fix an eslint warning (#12426) 2019-11-22 15:57:22 +01:00
ThibG
ed940a3a4a Change media description label to be context-sensitive (#12270)
“Describe for the visually impaired” makes no sense when the uploaded media
is an audio file.
2019-11-21 11:39:07 +01:00
Eugen Rochko
9046efbcbd Add relationship-based options to status dropdowns (#12377)
Move bookmark action in inline statuses from action bar to dropdown
2019-11-19 21:24:16 +01:00
ThibG
517c1cd062 Add bookmarks (#7107)
* Add backend support for bookmarks

Bookmarks behave like favourites, except they aren't shared with other
users and do not have an associated counter.

* Add spec for bookmark endpoints

* Add front-end support for bookmarks

* Introduce OAuth scopes for bookmarks

* Add bookmarks to archive takeout

* Fix migration

* Coding style fixes

* Fix rebase issue

* Update bookmarked_statuses to latest UI changes

* Update bookmark actions to properly reflect status changes in state

* Add bookmarks item to single-column layout

* Make active bookmarks red
2019-11-13 23:02:10 +01:00
ThibG
6364adba64 Fix unread toot indicator not honoring onlyMedia in public and community timelines (#12330)
* Fix unread toot indicator not honoring onlyMedia in public and community timelines

* Fixup: `unread` already accounts for new content in pending items
2019-11-11 00:05:02 +02:00
ThibG
83a88426ca Fix WebUI allowing to upload more items than the limit (#12300)
Until this patch, drag'n'drop and copy-paste allowed to start uploading as
long as the number of *finished* uploads was below the limit.
2019-11-07 09:07:03 +02:00
ThibG
aa21aeb838 Minor improvements to poll composing UI (#12319)
- Disable the “add option” button instead of hiding it
- Allow poll option inputs to scale to full width
2019-11-07 09:06:06 +02:00
mayaeh
3df536ec92 Integrate own poll's translation into own_poll. (#12231)
run `yarn manage:translations en`
2019-11-04 13:03:29 +01:00
ThibG
572d9863ab Fix filtered out items being counted as pending items (#12266) 2019-11-04 13:02:16 +01:00
ThibG
0e5be902e9 Add support for submitting media description with ctrl+enter (#12272) 2019-11-04 12:59:17 +01:00
Hinaloe
f28877756e dont crash with null-ref (#12274) 2019-11-04 12:58:19 +01:00
Yamagishi Kazutoshi
d99acc9587 Fix notification message for own poll (#12219) 2019-10-27 12:46:35 +01:00
Nima Boscarino
3a451c820c Add download button to audio and video players (#12179)
* Add download button for audio player

* Add download button for video player

* fix padding for download button in Audio component
2019-10-25 11:48:20 +02:00
ThibG
2ac808a85d Fix volume slider in chromium 🤷 (#12158)
Fixes #12156
2019-10-24 22:49:12 +02:00
umonaca
a13368b8dd Improve swipe experience (#12168) 2019-10-24 22:48:11 +02:00
BSKY
483cf4d52a Add noopener and/or noreferrer (#12202) 2019-10-24 22:44:42 +02:00
dependabot-preview[bot]
9483a56c04 Bump react-select from 2.4.4 to 3.0.5 (#11930)
* Bump react-select from 2.4.4 to 3.0.5

Bumps [react-select](https://github.com/JedWatson/react-select) from 2.4.4 to 3.0.5.
- [Release notes](https://github.com/JedWatson/react-select/releases)
- [Changelog](https://github.com/JedWatson/react-select/blob/master/.sweet-changelogs.js)
- [Commits](https://github.com/JedWatson/react-select/commits)

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

* Change import path for react-select
2019-10-22 01:31:27 +09:00
Eugen Rochko
53afb61c84 Fix media editing modal changing dimensions when image loads (#12131) 2019-10-10 05:21:38 +02:00
trwnh
028758a768 Add missing back button header for invalid account (#12094)
Should fix #6786
2019-10-07 04:33:31 +02:00
Eugen Rochko
c453888616 Fix performance of home feed regeneration (#12084)
Fetching statuses from all followed accounts at once takes too long
within Postgres. Fetching them one by one and merging in Ruby
could be a lot less resource-intensive

Because the query for dynamically fetching the home timeline is so
heavy, we can no longer offer it when the home timeline is missing
2019-10-06 22:11:17 +02:00
Eugen Rochko
9c4f1fb4e1 Fix audio attachments opening in video modal from media tab in web UI (#12056)
Fix video attachments having a GIF label in media tab in web UI
2019-10-03 03:34:58 +02:00
Eugen Rochko
f9c94be74c Fix media editing modal and profile directory in light theme (#12059)
Also:

- Fix embed modal in light theme
- Fix confirmation modal in light theme
2019-10-03 03:17:29 +02:00
Jeong Arm
345898e920 Fix drag and drop link to composebox (#12055) 2019-10-02 17:10:56 +02:00
ThibG
cdce1328a7 Fix typo in mute confirmation dialog (#12044) 2019-10-01 23:55:11 +02:00
Jeong Arm
c388ed5630 Scroll into search bar when focus (#12032) 2019-10-01 19:19:10 +02:00
ThibG
66f85e540c Fix custom emoji animation on hover in conversations view (#12040) 2019-10-01 17:11:14 +02:00
ThibG
147f2e0d06 Fix missing propType for conversation delete (#12035) 2019-10-01 15:07:58 +02:00
Eugen Rochko
b7b91d3597 Add refresh button to list of rebloggers/favouriters in web UI (#12031) 2019-10-01 04:57:27 +02:00
koyu
ac007dfb83 Change at icon in notification filter to reply-all (#11995) 2019-09-29 22:20:56 +02:00
ThibG
fdd1848c7c Add explanation to mute dialog, refactor and clean up mute/block UI (#11992)
* Add some explanation to the mute modal dialog

* Remove `isSubmitting` from mute modal code, this wasn't used

* Refactor block modal

Signed-off-by: Thibaut Girka <thib@sitedethib.com>

* Refactor SCSS a bit

* Put mute modal toggle to the same side as in the report dialog for consistency

* Reword mute explanation

* Fix mute explanation styling

* Left-align all text in mute confirmation modal
2019-09-29 21:46:05 +02:00
Eugen Rochko
aadf3981fa Fix follower/following lists resetting on back-navigation in web UI (#11986)
Fix #11452
2019-09-29 16:27:00 +02:00
Yamagishi Kazutoshi
03e29f4c51 Do not add margin light when opening modal on mobile (#11830) 2019-09-29 14:30:58 +02:00
ThibG
70990720c5 Change silences to always require approval on follow (#11975)
* Change silenced accounts to require approval on follow

* Also require approval for follows by people explicitly muted by target accounts

* Do not auto-accept silenced or muted accounts when switching from locked to unlocked

* Add `follow_requests_count` to verify_credentials

* Show “Follow requests” menu item if needed even if account is locked

* Add tests

* Correctly reflect that follow requests weren't auto-accepted when local account is silenced

* Accept follow requests from user-muted accounts to avoid leaking mutes
2019-09-27 21:13:51 +02:00
ThibG
d6b6267c27 Use blob URL for Tesseract to avoid CORS issues (#11964) 2019-09-27 02:16:11 +02:00
Eugen Rochko
25c70115c1 Fix emoji search not showing custom emoji when none are uncategorized (#11920)
Fix #11903
2019-09-23 00:48:43 +02:00
Eugen Rochko
5d5af651f1 Change conversations UI (#11896)
Fix #11414, fix #9860, fix #10434
2019-09-21 20:01:16 +02:00
Eugen Rochko
3198f5b0ad Fix updates being hidden behind pending items on unmounted components (#11898) 2019-09-21 09:12:13 +02:00
Yamagishi Kazutoshi
dabb03467e Check existence of timeline state in community timeline (#11880) 2019-09-18 04:02:21 +02:00
Eugen Rochko
4e39d575dc Fix web UI allowing uploads past status limit via drag & drop (#11863)
Fix #11659
2019-09-16 20:42:19 +02:00
ThibG
7f7f8cac37 Fix “slow mode” issues (#11859)
* Fix weird scroll-jumping behavior with pending items

* Treat pending items as unread items

* Fix scroll position being altered because of the “X new items” button
2019-09-16 15:45:06 +02:00
ThibG
20f209452e Fix media description button being disabled at 420 characters instead of 1500 (#11836) 2019-09-14 00:52:56 +02:00
Eugen Rochko
9301574423 Change max length of media descriptions from 420 to 1500 characters (#11819)
Fix #11658
2019-09-13 16:00:34 +02:00
Eugen Rochko
89989b6255 Add timeline read markers API (#11762)
Fix #4093
2019-09-06 13:55:51 +02:00
mayaeh
80fe7fa415 Integrate translation strings for the Profile Directory. (#11722)
Run `yarn manage:translations en`
2019-09-02 18:12:27 +02:00
ThibG
1443f2bd3c Fix custom emoji animation on hover in WebUI directory bios (#11716) 2019-09-01 20:04:35 +02:00
Eugen Rochko
b47119eb61 Change layout of public profile directory to be the same as in web UI (#11705) 2019-08-30 07:41:16 +02:00
ThibG
accac63c88 Change detailed status child ordering to sort self-replies on top (#11686)
Fixes #11679
2019-08-30 01:57:38 +02:00
Eugen Rochko
79922ae20f Add profile directory to web UI (#11688)
* Add profile directory to web UI

* Add a line of bio to the directory
2019-08-30 00:14:36 +02:00
ThibG
6fc1a84958 Add special alert for throttled requests (#11677)
* Add special alert for throttled requests

* Use an extra attribute instead of an array
2019-08-27 16:50:39 +02:00
ThibG
d255ce2f1a Add confirmation modal when logging out from the web app (#11671)
* [WiP] Add a confirmation modal before logging out from the web interface

* Add confirmation to logout link in getting started footer

* Please CodeClimate
2019-08-26 18:24:10 +02:00
ThibG
15a82d48ea Change window resize handler to switch to/from mobile layout as soon as needed (#11656) 2019-08-25 15:48:50 +02:00
Eugen Rochko
eaa759ffd4 Fix more visual issues with the audio player (#11654)
* Fix more visual issues with the audio player

- Add horizontal baseline in the middle of waveform
- Fix audio player colors in light theme
- Use audio element instead of web audio API
- Do not render any bars until the file is loaded
- Do not allow interactions with waveform until the file is loaded

* Fix code style issue
2019-08-25 15:09:19 +02:00
Eugen Rochko
c8df53b75f Fix public page crash due to audio player, fix unpause in audio player (#11652) 2019-08-25 02:13:40 +02:00
Eugen Rochko
f13761d84b Add audio player (#11644) 2019-08-23 22:38:02 +02:00
Eugen Rochko
cf56532ced Add header to trends section and change refresh rate to 15 minutes (#11641) 2019-08-23 05:05:21 +02:00
ThibG
db5c84ce4b Fix trending hashtags being fetched every 36 seconds instead of every hour (#11631) 2019-08-21 00:18:07 +02:00
ThibG
73b23ef7be Fix handling of audio files in account media gallery (#11629)
Fixes #11627
2019-08-20 19:46:41 +02:00
ThibG
dc83169865 Improve focal point modal on mobile (#11575)
* Reduce padding around report modal and focal point modal title

* Increase max allowed height for focal point modal content
2019-08-15 22:49:00 +02:00
ThibG
a886bf3808 Allow clicking behind preview (#11576) 2019-08-15 22:47:51 +02:00
Eugen Rochko
375f2f3864 Fix edit media modal on small screens, touch events (#11573) 2019-08-15 20:28:56 +02:00
Eugen Rochko
fe52fca65c Fix tesseract.js being part of the common chunk (#11571)
* Fix tesseract.js being part of the common chunk

Besides being 620 KB large, it also causes a modules-related runtime
error in production...

* Fix code style issue

* Fix modules error
2019-08-15 17:24:45 +02:00
Eugen Rochko
41b188dce6 Add OCR tool to media editing modal (#11566) 2019-08-15 15:13:26 +02:00
Eugen Rochko
da208e7d9b Add media editing modal (#11563)
Move media description input to a modal and unite that modal with
the focal point modal. Add a hint about choosing focal points, as
well as a preview of a 16:9 thumbnail. Enable the user to watch
the video next to the media description input.

Fix #8320
Fix #6713
2019-08-14 04:07:32 +02:00
Eugen Rochko
a398045539 Add indicator of unread content to window title when web UI is out of focus (#11560)
Fix #1288
2019-08-13 12:22:16 +02:00
Eugen Rochko
aed7dca53b Fix "cancel follow request" button having unreadable text in web UI (#11521)
Fix #11478
2019-08-08 08:56:55 +02:00
Eugen Rochko
191392e5c3 Add trends UI with admin and user settings (#11502) 2019-08-06 17:57:52 +02:00
Eugen Rochko
15746b5107 Revert "Change links in webUI to rewrite misleading links (#11426)" (#11500)
This reverts commit a13ba1cc7b.
2019-08-06 12:09:28 +02:00
ThibG
13811f4d7b Improve keyboard navigation in privacy dropdown (#11492)
* Trap tab in privacy dropdown

* Give focus back to last focused element when privacy dropdown menu closes

* Actually give back focus to the element that had it before clicking the dropdown
2019-08-06 11:59:58 +02:00
ThibG
9f15da6b15 Fix privacy dropdown active state when dropdown is placed on top of it (#11495) 2019-08-06 11:59:14 +02:00
ThibG
ebc78b6f2b Change icon button styles to make hover/focus states more obvious (#11474)
* Change icon buttons styles to make hover/focused states more obvious

* Fix CW button size inconsistency

* Fix icon button background color consistency
2019-08-03 19:10:50 +02:00
ThibG
5d32e422c0 Disable list title validation button when list title is empty (#11475) 2019-08-03 19:10:39 +02:00
Eugen Rochko
293f789239 Fix scroll to top in single column UI (#11463) 2019-08-01 19:17:17 +02:00
Eugen Rochko
cf45e39dd5 Fix column header scrolling with the page (#11458)
Regression from de4ead8
2019-08-01 12:26:58 +02:00
ThibG
a13ba1cc7b Change links in webUI to rewrite misleading links (#11426)
* [WiP] Show host for “misleading” links

* Disallow misleading targets which domain names are prefixes of link text

* Move decodeIDNA to app/javascript/mastodon/utils

* Add support for international domain names

* Change link origin tag color to darker text color

* Handle links to domains starting with www. as shortened by Mastodon

* [WiP] Ignore links that cannot be misread as URLs, rewrite other links
2019-07-30 12:13:29 +02:00
Eugen Rochko
5119a0608d Add search results pagination to web UI (#11409)
* Add search results pagination to web UI

Fix #10737

* Fix code style issue
2019-07-27 05:49:50 +02:00
ThibG
99b3dd5b00 Play animated custom emoji on hover (#11348)
* Play animated custom emoji on hover in status

* Play animated custom emoji on hover in display names

* Play animated custom emoji on hover in bios/bio fields

* Add support for animation on hover on public pages emojis too

* Fix tests

* Code style cleanup
2019-07-21 18:10:40 +02:00
Eugen Rochko
de4ead8fc6 Change single-column mode to scroll the whole page (#11359)
Fix #10840
2019-07-19 09:25:22 +02:00
koyu
ee3ab5a51d Added logout to dropdown menu (#11353)
* Added logout to dropdown menu

* Triggering build-and-test with empty commit as it seems it failed due to some internal failure

* Looks fine, ready to review

* Added changes from review

* method can be null without any problems

* Also target can be null
2019-07-19 03:58:46 +02:00
Eugen Rochko
9dead08055 Add option to disable real-time updates in web UI (#9984)
Fix #9031
Fix #7913
2019-07-16 06:30:47 +02:00
ThibG
64909cf0d9 Only scroll to the compose form if it's not horizontally in the viewport (#11246)
Avoids jumping the scroll around vertically when giving it focus and
editing long toots.
2019-07-06 18:18:08 +02:00
ThibG
eda4094171 Memoize ancestorIds and descendantIds in detailed status view (#11234) 2019-07-02 16:03:54 +02:00
ThibG
72dc1b3e60 Display FTS warning based on actual search term, not the one being typed (#11202)
Follow-up to #11112
2019-06-28 19:29:11 +02:00
Eugen Rochko
1c612f24e4 Add categories for custom emojis (#11196)
Fix #7940
2019-06-28 15:54:10 +02:00
ThibG
9668e42afd Fix swiping columns on mobile sometimes failing (#11200)
Fixes #9779
2019-06-28 13:52:15 +02:00
ThibG
0943e994dd Add message telling FTS is disabled when no toot can be found because of this (#11112)
* Add message telling FTS is disabled when no toot can be found because of this

Fixes #11082

* Remove info icon and reword message
2019-06-27 21:12:26 +02:00
ThibG
4b3d91dc2c Add option to disable blurhash previews (#11188)
* Add option to disable blurhash previews

* Update option text

* Change options order
2019-06-26 19:33:04 +02:00
ThibG
1af85ca177 Scroll to compose form rather than reply indicator on focus (#11182) 2019-06-26 14:28:36 +02:00
PatOnTheBack
9a216634a1 Removed extra pipes from regex. (#11181) 2019-06-26 02:16:24 +02:00
koyu
a317acfa72 Change camera icon to paperclip icon in upload form (#11149) 2019-06-22 15:29:25 +02:00
Eugen Rochko
d7e2f554fb Add audio uploads (#11123)
* Add audio uploads

Fix #4827

Accept uploads of OGG, WAV, FLAC, OPUS and MP3 files, and converts
them to OGG. Media attachments get a new `audio` type. In the UI,
audio uploads are displayed identically to video uploads.

* Improve code style
2019-06-19 23:42:38 +02:00
ThibG
cdfeb86b7b Do not scroll in the compose panel on single-column (#11093) 2019-06-16 18:46:55 +02:00
ThibG
770515a629 Fix ordering of keyboard access between CW field, textarea and emoji picker (#11066) 2019-06-13 17:07:43 +02:00
ThibG
92ec50ad4b List attachments in reply indicator and boost modal (#10997)
* Add media attachments list to boost modal

* Add attachment list to reply indicator
2019-06-13 17:04:52 +02:00
ThibG
b988634e4e Only show profile directory link when it's enabled (#11064) 2019-06-13 00:16:27 +02:00
mayaeh
42a53e57d7 Fix emoji-button appearing above privacy-dropdown (#11027) 2019-06-10 12:27:17 +02:00
ThibG
21acf681d2 Put poll options behind content warnings (#10983)
* Put poll options behind CWs in WebUI

* Put polls behind CWs on public pages

* Add poll icon to public pages CWs

* Revert to not showing an icon in the CW button
2019-06-08 17:40:59 +02:00
Eugen Rochko
c7feecc715 Improve light theme (#10992) 2019-06-08 10:23:41 +02:00
Eugen Rochko
5c1a46bdcf Fix some React warnings (#10989) 2019-06-07 17:15:18 +02:00
Wenceslao Páez Chávez
796b8e8d34 Fix overlap of emoji button on search popup (#10978) 2019-06-06 13:40:17 +02:00
Eugen Rochko
a36e4db82f Fix not being able to directly switch between list timelines in web UI (#10973) 2019-06-06 13:04:49 +02:00
Takeshi Umeda
88a04bf6c4 Fix emoji picker being always displayed (#10979)
* Fix emoji picker being always displayed

* Remove duplicate content with other pull-requests
2019-06-06 12:30:14 +02:00
Jeong Arm
91ae2d1275 Scroll to compose form when focus (#10970)
* Scroll to compose form when focus

* Get rid of constructor
2019-06-05 15:29:45 +02:00
Eugen Rochko
4331f4948e Add profile directory link to single column navigation panel (#10963) 2019-06-04 19:50:38 +02:00
Takeshi Umeda
96ac52dabd Improvement variable height in single column layout (#10917)
* Improvement variable height of compose and navigation panel in single column layout

* Fix wrong quotes and missing commas
2019-06-02 10:05:54 +02:00
Eugen Rochko
233a60f6a2 Change links in right panel to open in the same tab (#10848)
For Rambox compatibility
2019-05-29 17:33:35 +03:00
ThibG
0162dc0c9c Fix React warning about legacy lifecycle calls and sensitive status resetting (#10872) 2019-05-29 17:33:15 +03:00
Eugen Rochko
7d2b4e9277 Refactor footers in web UI into a single component (#10846) 2019-05-27 21:58:41 +02:00
Takeshi Umeda
03054b27e1 Fix poll visibility on public pages (#10817)
* Fix poll visibility on public pages

* Revert "Fix poll visibility on public pages"

This reverts commit 54a9608add6f855bc6337fe3c65eaee7ba13db49.

* Revert "Change poll options to alphabetic letters when status text is hidden"

This reverts commit c53d67326201b2061990b1874a3547c3647f50d2.
2019-05-26 23:13:29 +02:00
Eugen Rochko
9e238804ea Fix null error in status component when determining showMedia state (#10838)
* Fix null error in status component when determining showMedia state

Also update the showMedia value if the status passed to the
component changes

* Refactor media visibility computation into a defaultMediaVisibility function

* Fix default media visibility with reblogs
2019-05-26 13:48:16 +02:00
Hanage999
66081c489f Fix wrong redirect from getting started to home in advanced Web UI (#10839)
* update Ruby to 2.5.3

* Link to Getting Started will not redirect to Home in multi-column UI (https://github.com/tootsuite/mastodon/pull/10835)
2019-05-26 12:22:33 +02:00
Eugen Rochko
6d4af23a69 Improvements to the single column layout (#10835)
* Improvements to the single column layout

- Add follows and followers link to the right panel
- Increase margins around separators in right panel
- Add follow requests link with counter when account is locked to right panel

* Redirect from getting started to home when navigation panel is visible
2019-05-26 02:55:37 +02:00
ThibG
7ee189fa60 Add a keyboard shortcut to hide/show media (#10647)
* Move control of media visibility to parent component

* Add keyboard shortcut to toggle media visibility
2019-05-25 23:20:51 +02:00
Eugen Rochko
a1bceb2cb6 Add responsive panels to the single-column layout (#10820)
* Add responsive panels to the single-column layout

* Fixes

* Fix not being able to save the preference

* Fix code style issues

* Set max-height on the compose textarea and add a link to relationship manager
2019-05-25 21:27:00 +02:00
Eugen Rochko
106cfa7553 Various improvements to single column layout (#10809)
- Add potential side panels to single column layout
- Hide FAB on large screens
2019-05-23 20:01:10 +02:00
Eugen Rochko
f9ca3d62b6 Add forceSingleColumn prop to <UI /> (#10807)
* Move TabsBar rendering logic from CSS to the ColumnsArea component

* Add forceSingleColumn mode

* Add unread notifications counter to tabs bar

* Add toggle to control `forceSingleColumn`

* Increase paddings in mobile layout responsively at large sizes
2019-05-23 01:35:22 +02:00
Hinaloe
4de9bd3870 fix isSubmitting prop case (#10785) 2019-05-19 18:41:41 +02:00
Eugen Rochko
3a4761c665 Change poll options to alphabetic letters when status text is hidden (#10685)
Fix #10569
2019-05-18 14:41:16 +02:00
ThibG
01ba6c5d83 Change icon and label depending on whether media is marked as sensitive (#10748)
* Change icon and label depending on whether media is marked as sensitive

* WiP use a checkbox
2019-05-10 17:59:57 +02:00
Aurélien Reeves
d225a952a8 Add confirm modal for unboosting toots (#10287)
[#3815]

Display the boost modal also when unboosting toots.
2019-05-09 22:39:26 +02:00
ThibG
5cf2f8c646 Add emoji suggestions to CW and poll option fields (#10555)
* Refactor selectComposeSuggestion so that different paths can be updated

* Add suggestions in CW field

* Add emoji suggestion to poll options

* Attempt to fix CSS

* Hide suggestions by default

They will be enabled if the input has focus
2019-05-09 22:10:27 +02:00
Jeong Arm
3288f4a571 Bring back crossed eye icon on gallery (#10715) 2019-05-08 18:01:33 +02:00
ThibG
139ef769f7 Add description on hover in media gallery (#10713) 2019-05-06 05:33:56 +02:00
ThibG
d5357fcbf2 Minor account media gallery fixes (#10695)
* Make the cursor icon consistant across media types in account media gallery

* Fix the video player modal causing scroll position to reset
2019-05-04 17:36:43 +02:00
Eugen Rochko
4aabc452d0 Add button to view context to media modal (#10676)
* Add "view context" button to media modal when opened from gallery

* Add "view context" button to video modal

Allow closing the video modal by navigating back in the browser,
just like the media modal
2019-05-03 16:16:30 +02:00
ThibG
d8418c07c9 When selecting a toot via keyboard, ensure it is scrolled into view (#10593) 2019-05-03 06:20:35 +02:00
Eugen Rochko
cc39785d45 Make the "mark media as sensitive" button more obvious in web UI (#10673)
* Make the "mark media as sensitive" button more obvious in web UI

* Use eye-slash icon instead of eye icon to mean "hide"
2019-05-03 04:34:55 +02:00
Eugen Rochko
db73f8e585 Change account gallery in web UI (#10667)
- 3 items per row instead of 2
- Use blurhash for previews
- Animate/hover-to-play GIFs and videos
- Open media modal instead of opening status
- Allow opening status instead with ctrl+click and open in new tab
2019-05-02 08:34:32 +02:00
Eugen Rochko
a6d2fe7165 Add blurhash (#10630)
* Add blurhash

* Use fallback color for spoiler when blurhash missing

* Federate the blurhash and accept it as long as it's at most 5x5

* Display unknown media attachments as blurhash placeholders

* Improve style of embed actions and spoiler button

* Change blurhash resolution from 3x3 to 4x4

* Improve dependency definitions

* Fix code style issues
2019-04-27 03:24:09 +02:00
ThibG
eb80c3924f Allow switching between singe-option and multiple-option polls (#10603) 2019-04-22 14:56:14 +02:00
kedama
92ced1e94b Fix modal items cannot scroll on touch devices (#10605) 2019-04-22 14:55:50 +02:00
ThibG
3c6f8de45a Minor code cleanup (#10613) 2019-04-22 14:55:24 +02:00
Sho Kusano
1af37e09f3 Configrationable repository url (#10600)
* config: Add GITHUB_REPOSITORY for repository name

* config: Add SOURCE_BASE_URL for repository url

* Show source_url and repository name on getting started
2019-04-21 04:41:34 +02:00
Eugen Rochko
403338108e Fix glitched out "not found" message for non-existing profiles in web UI (#10517) 2019-04-09 05:02:48 +02:00
Eugen Rochko
c84c30c542 Improve blocked view of profiles (#10491)
* Revert "Fix filtering of favourited_by, reblogged_by, followers and following (#10447)"

This reverts commit 0317f37c6f.

* Revert "Hide blocking accounts from blocked users (#10442)"

This reverts commit 4cd944d364.

* Improve blocked view of profiles

- Change "You are blocked" to "Profile unavailable"
- Hide following/followers in API when blocked
- Disable follow button and show "Profile unavailable" on public profile as well
2019-04-07 04:59:13 +02:00
ashleyhull-versent
b0348d0f92 tinyfix 2: unrequired arguments (#10471)
* unrequired argument

* unrequired argument
2019-04-06 12:02:03 +09:00
ashleyhull-versent
8037fa7d2e Duplicate values (#10470) 2019-04-04 23:22:55 +09:00
ThibG
4cd944d364 Hide blocking accounts from blocked users (#10442)
* Revert "Add indication that you have been blocked in web UI (#10420)"

This reverts commit d31affe69b.

* Revert "Add `blocked_by` relationship to the REST API (#10373)"

This reverts commit a8bb10633d.

* Hide blocking accounts from search results

* Filter blocking accouts from account followers

* Filter blocking accouts from account's following accounts

* Filter blocking accounts from “reblogged by” and “favourited by” lists

* Remove blocking account from URL search

* Return 410 on trying to fetch user data from a user who blocked us

* Return 410 in /api/v1/account/statuses for suspended or blocking accounts

* Fix status filtering when performing URL search

* Restore some React improvements

Restore some cleanup from d31affe69b

* Refactor by adding `without_blocking` scope
2019-04-01 20:06:13 +02:00
Jeong Arm
1289e86116 Remove unused code (#10426) 2019-03-30 15:47:25 +09:00
Eugen Rochko
ed2862e249 Fix emoji-mart crashing web UI on search by reverting the upgrade to 2.10.0 (#10413)
Fix #10315

This reverts commit e781d842a5.
2019-03-30 01:41:35 +01:00
Eugen Rochko
d31affe69b Add indication that you have been blocked in web UI (#10420) 2019-03-30 00:43:29 +01:00
Alex Gessner
be7c92061c squashed identity proof updates (#10375) 2019-03-28 18:01:09 +01:00
slice
da47c30eac Add rel='noopener' to redesigned profile column header avatar link (#10393) 2019-03-27 17:08:26 +01:00
ThibG
2e5ec8b7c8 Move the account dropdown menubar to the right, make sure it doesn't move (#10390)
* Move the account dropdown menubar to the right, make sure it doesn't move

* Fix margin
2019-03-26 23:05:21 +01:00
ThibG
36a6089a22 Add a “Block & Report” button to the block confirmation dialog (#10360) 2019-03-26 17:34:02 +01:00
Aditoo17
70a78d968f Make clicking on avatar open public profile in new tab (#10387) 2019-03-26 17:33:07 +01:00
mayaeh
798d9a6b4a Fix menu items that don't action (#10379) 2019-03-26 05:31:09 +01:00
Eugen Rochko
858bc12635 Redesign profile column in web UI to match design on public pages (#10337)
* Redesign profile column in web UI to match design on public pages

* Make the tab links text bolder
2019-03-26 00:36:25 +01:00
Eugen Rochko
9832fbf3c5 Disable real-time updates on public pages to improve readability (#10260) 2019-03-18 18:34:56 +01:00
Nolan Lawson
e781d842a5 fix: update to emoji-mart 2.10.0 (#10281)
* fix: update to emoji-mart 2.10.0

* remove useless change

* fix CSS style of emoji picker, improve a11y

* fix missing newline in scss

* fix the title and input fonts
2019-03-16 20:13:15 +01:00
Eugen Rochko
55b8a88419 Fix scrollbar styles on compose textarea, small bugs (#10292) 2019-03-16 20:10:42 +01:00
Eugen Rochko
eb7cb9555b Show disappointed elephant if web UI crashes (#10275)
* Do not crash the whole UI when loading an invalid column

* Add error boundary component to catch Web UI crashes

* Add stack trace on supported browsers

* Add component stack info, pre-format everything for github

* Make “Reload” a clickable link that calls window.location.reload()

* Remove elephant friend from error boundary, make title stand out more

* Simplify error boundary to only a graphic
2019-03-15 05:35:45 +01:00
ThibG
104c3879aa Add UI for enabling/disabling poll notifications (#10255)
* Add UI for enabling/disabling poll notifications

* Add poll notifications to the (advanced) quick filter bar

* Update poll notification message

“Your poll has ended” → “A poll you have voted in has ended”

* Clear up associated notifications when a poll is deleted
2019-03-13 19:29:54 +01:00
Eugen Rochko
3a435fa130 Fix public timeline page not paginating correctly (#10245) 2019-03-12 21:53:56 +01:00
Eugen Rochko
56822606f4 Redesign landing page (#10232) 2019-03-12 17:34:00 +01:00
ThibG
11ce444b8b Support pushing and receiving updates to poll tallies (#10209)
* Process incoming poll tallies update

* Send Update on poll vote

* Do not send Updates for a poll more often than once every 3 minutes

* Include voters in people to notify of results update

* Schedule closing poll worker on poll creation

* Add new notification type for ending polls

* Add front-end support for ended poll notifications

* Fix UpdatePollSerializer

* Fix Updates not being triggered by local votes

* Fix tests failure

* Fix web push notifications for closing polls

* Minor cleanup

* Notify voters of both remote and local polls when those close

* Fix delivery of poll updates to mentioned accounts and voters
2019-03-11 00:49:31 +01:00
Eugen Rochko
a15b0dc600 Add UI for creating polls (#10184)
* Add actions and reducers for polls

* Add poll button

* Disable media upload if poll enabled

* Add poll form

* Make delete & redraft work with polls
2019-03-06 04:53:37 +01:00
Eugen Rochko
4a3acdc916 Add polls (#10111)
* Add polls

Fix #1629

* Add tests

* Fixes

* Change API for creating polls

* Use name instead of content for votes

* Remove poll validation for remote polls

* Add polls to public pages

* When updating the poll, update options just in case they were changed

* Fix public pages showing both poll and other media
2019-03-03 22:18:23 +01:00
Eugen Rochko
0c8d1435c5 Fix home timeline perpetually reloading when empty (#10130)
Regression from #6876
2019-03-01 11:11:35 +01:00
ThibG
eaba640112 Fix video player width not being updated to fit container width (#10069) 2019-02-18 00:10:21 +01:00
ThibG
3547e3e59e Fix crash on public hashtag pages when streaming fails (#10061) 2019-02-16 14:53:27 +01:00
Eugen Rochko
8ff757ed6a Fix mutes, blocks, domain blocks and follow requests not paginating (#10057)
Regression from #9581
2019-02-16 11:56:09 +01:00
Eugen Rochko
dae31d8799 Fix hashtag column not subscribing to stream on mount (#10040)
Fix #9895
2019-02-14 15:46:42 +01:00
Ben Lubar
a679867d38 Improve image description user experience (#10036)
* Add image descriptions to searchable post content.

* Allow multi-line image descriptions.

* Request image descriptions in the same query as posts when creating the search index.

(see https://github.com/tootsuite/mastodon/pull/10036#discussion_r256551624)
2019-02-14 01:04:43 +01:00
ThibG
793946fadb Add list title editing (#9748)
* Add list title editing

Port changes made by ash for glitch-soc

* Code style fixes
2019-02-13 18:52:02 +01:00
Eugen Rochko
bc9930f59d Fix hashtags select styling in default and high contrast themes (#10029) 2019-02-13 18:34:58 +01:00
Hinaloe
6866739387 Don't focus spiler input when disabled spoiler (#10017) 2019-02-12 05:10:31 +01:00
ThibG
98642fef2a Fix timeline jumps (#10001)
* Avoid two-step rendering of statuses as much as possible

Cache width shared by Video player, MediaGallery and Cards at the
ScrollableList level, pass it down through StatusList and Notifications.

* Adjust scroll when new preview cards appear

* Adjust scroll when statuses above the current scroll position are deleted
2019-02-11 13:19:59 +01:00
Eugen Rochko
12cb694634 Add "copy link" item to status action bars (#9983)
Fix #6848
2019-02-11 12:19:49 +09:00
mayaeh
f308fb56ab Rename from instance to server. (#9938) 2019-02-05 19:11:24 +01:00
mike castleman
be6c12fbea change "finish tutorial" text to "finish toot-orial" (#9905) 2019-02-04 04:45:29 +01:00
tmm576
640966f3fc Allow multiple files upload through web UI, including drag & drop (#9856)
* Allow drag and drop uploads of multiple files to compose

* Calculate aggregate upload progress for single action

* Allow multiple uploads to compose through traditional input, consolidate update file limit logic, provide file limit feedback
2019-02-02 20:22:05 +01:00