Commit graph

181 commits

Author SHA1 Message Date
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
ThibG
266f26f23b Fix “load more” adding older toots/notifications to pending items (#11883) 2019-09-18 11:27:10 +02:00
Eugen Rochko
89989b6255 Add timeline read markers API (#11762)
Fix #4093
2019-09-06 13:55:51 +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
d94a4763f6 Restore hashtag suggestions from local tag history (#11632)
* Restore hashtag suggestions from local tag history

* Append local hashtag suggestions instead of prepending them

* Do not display inaccurate usage statistics for hashtags not retrieved from API

* Fixup
2019-08-22 04:37:18 +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
191392e5c3 Add trends UI with admin and user settings (#11502) 2019-08-06 17:57:52 +02:00
ThibG
61f7ff6522 Improve dropdown menu keyboard navigation (#11491)
* Allow selecting menu items with the space bar in status dropdown menus

* Fix modals opened by keyboard navigation being immediately closed

* Fix menu items triggering modal actions

* Add Tab trapping inside dropdown menu

* Give focus back to last focused element when status dropdown menu closes
2019-08-06 11:59:46 +02:00
Eugen Rochko
32d2260a8c Fix emoji autosuggestions (#11442)
Regression from 450b8a70a5
2019-07-29 15:04:49 +02:00
Eugen Rochko
450b8a70a5 Add autosuggestions for hashtags (#11422) 2019-07-28 14:37:52 +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
Eugen Rochko
93a6ab5a32 Change account domain block to clear out notifications and follows (#11393) 2019-07-25 04:17:35 +02:00
ThibG
2582701b72 Display custom emoji in bio field names (#11350)
Already displayed in public pages, but not WebUI
2019-07-21 03:40:27 +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
ff65c494a6 Optimize makeGetStatus (#11211)
* Optimize makeGetStatus

Because `ImmutableList.filter` always returns a new object and `createSelector`
memoizes based on object identity, the selector returned by `makeGetStatus`
would *always* execute.

To avoid that, we wrap `getFilters` into a new memoizer that memoizes based on
deep equality, thus returning the same object as long as the filters haven't
changed, allowing the memoization of `makeGetStatus` to work.

Furthermore, we memoize the compiled regexs instead of recomputing them each
time the selector is called.

* Fix memoized result being cleared too often

* Make notifications use memoized getFiltersRegex
2019-06-30 00:12:38 +02:00
ThibG
fa7866c9c8 When sending a toot, ensure a CW is only set if the CW field is visible (#11206)
In some occasions, such as the browser or a browser extension auto-filling
the existing but disabled/hidden CW field, a CW can be set without the user
knowing.
2019-06-29 18:32:36 +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
42c803fe61 Apply filters to poll options (#11174)
* Apply filters to poll options in WebUI

Fixes #11128

* Apply filters to poll options server-side

* Add poll options to searchable text
2019-06-25 14:45:14 +02:00
ThibG
6e7ee06114 Completely hide toots matched by “irreversible” filters even if they got to the client (#11113)
Fixes #11090
2019-06-18 18:23:08 +02:00
Eugen Rochko
cbaff2bf53 Fix list not being automatically unpinned when it returns 404 in web UI (#11045) 2019-06-11 02:26:37 +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
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
ThibG
2a917031c9 Add toot source to delete result to ease Delete & Redraft (#10669)
* Return Status with raw text in raw_content when deleting a status

* Use raw content if available on delete & redraft

* Rename raw_content to text; do not serialize formatted content when source is requested
2019-05-11 06:46:43 +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
Eugen Rochko
78f5b96bf6 Fix alignment of items in the account gallery in web UI and load more per page (#10674) 2019-05-03 04:02:55 +02:00
ThibG
23e87a4742 Fix upload progressbar when image resizing is involved (#10632) 2019-04-25 02:48:54 +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
20769a332a Fix search in web UI not setting a limit, restore limit of 5 (#10421)
The search API now supports returning more results and pagination,
but until the web UI implements pagination, it makes no sense to
dump so many results at once. This fix restores the behaviour
before the API change
2019-03-30 00:43:38 +01:00
Alex Gessner
be7c92061c squashed identity proof updates (#10375) 2019-03-28 18:01:09 +01:00
ThibG
2a211ff18c Add support for custom emojis in poll options (#10322)
* Backend changes for custom emoji support in poll options

* Serialize poll emojis in REST API

* Render custom emojis in poll options

* Render custom emoji in poll options on public pages
2019-03-20 17:29:12 +01:00
ThibG
14901400f3 Save quick filter settings when selecting a different filter (#10296)
The active filter is stored in the web app's settings, but no save
is explicitly triggered, meaning that it is only saved when a different
setting is changed.
2019-03-17 03:13:29 +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
8e9db67a6a Fix public timelines being broken by new toots when they are not mounted (#10131) 2019-03-07 22:17:52 +01:00
ThibG
0b7c53937f Disable file upload when there is a poll (#10195) 2019-03-06 15:09:18 +01:00
Eugen Rochko
9cae3a3b48 Fix poll options not rendering text after vote/refresh (#10189)
* Fix poll options not rendering text after vote/refresh

* Fix poll options not showing up on public pages

* Fix code style issue
2019-03-06 05:35:52 +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
73d3bb4a2c Render unicode emoji in polls using emoji pack (#10185) 2019-03-06 03:57:46 +01:00
ThibG
6d08fd5170 Insert polls in redux stores before statuses so it avoids crashes (#10140) 2019-03-03 23:44:52 +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
ThibG
5ba0c11a72 Fix direct timeline pagination in the WebUI (#10126)
The `hasMore` property of timelines in redux store was set whenever an API
request returned only one page of results, *even* if the query only requested
newer conversations (using `since_id`), causing `hasMore` to be incorrectly set to
false whenever fetching new toots in the direct timeline, which happens each time
the direct message column is opened.

(Basically #9516 for direct messages)
2019-02-27 19:13:16 +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
ThibG
88b8ddfd9c Immediately go back in browser history upon successfully sending toot (#9663)
Avoids possible misleading delay before redirection during which the
composer would be cleared and redrawn.
2018-12-30 18:58:25 +01:00
Eugen Rochko
75eb2ac3b3 Add new first-time tutorial (#9531)
* Prepare to load onboarding as a full page

* Update the first-time introduction

* Improve responsive design

* Replace speech bubble with logo

* Increase text size and reword first paragraph
2018-12-17 11:07:17 +01:00
Paweł Ngei
df7186e93a Add notification quick-filter bar in the frontend app (#9399)
* create FilterBar componer and its container, unstyled

* introduce basic styling for FilterBar

* add selection css

* allow FilterBar to display active CSS with js

* connect the FilterBar to the Redux state

* change getNotifications to use filter

* remove temporary comments

* add an option to turn the FilterBar off in settings

* fix showFilterBar data type to boolean

* fix eslint errors

* add English and Polish translations

* allowed filter bar overflow to accomodate for longer languages

* fix mispelled translation key

* add unified CSS look

* replace text in FilterBar with icons

* add tooltips

* replace text @ with an icon

* introduce simple and advanced filtering view

* add ability to toggle the advanced view

* add Polish translations

* change Advanced View description to be more clear

* make each filter flush notifications and load new ones, fixing pagination

* simplify getNotifications once frontend filtering is not needed for FilterBar

* add a semicolon

* Revert "simplify getNotifications once frontend filtering is not needed for FilterBar"

This reverts commit 9f4be7857135b0327814bd22a3e8a4e7b546f7cc.

* reset filter to 'all' when turning off FilterBar
2018-12-16 05:56:41 +01:00
ThibG
dc1dfcf7e4 When posting in mobile mode, go back to previous history location (#9502)
Fixes #7112
2018-12-14 20:35:26 +01:00
ThibG
c56e54d322 Fix timeline pagination in the WebUI (#9516)
The `hasMore` property of timelines in redux store was set whenever an API
request returned only one page of results, *even* if the query only requested
newer statuses (using `since_id`), causing `hasMore` to be incorrectly set to
false whenever fetching new toots in a timeline, which happens each time
an account's timeline or media gallery is visited.
2018-12-14 01:41:38 +01:00
ThibG
a3f01ec6f8 Fix last_status parameter for notifications and conversations (#9407) 2018-12-01 18:36:41 +01:00
Eugen Rochko
272c58904f Remove npm-run-all dependency (#9401)
Fix #9359
2018-11-30 19:16:32 +01:00