Commit graph

8453 commits

Author SHA1 Message Date
Damir Jelić
54b352f69c MatrixChat: Fix the limited timeline checkpoint adding. 2019-11-13 10:37:20 +01:00
Damir Jelić
d911055f5d MatrixChat: Move the indexing limited room logic to a different event. 2019-11-12 15:39:54 +01:00
Damir Jelić
e296fd05c0 RoomView: Move the search logic into a separate module. 2019-11-12 15:39:26 +01:00
Damir Jelić
cfdcf45ac6 MatrixChat: Move the event indexing logic into separate modules. 2019-11-12 13:29:07 +01:00
Damir Jelić
2c5565e502 MatrixChat: Add some missing semicolons. 2019-11-11 15:08:00 +01:00
Damir Jelić
64061173e1 MatrixChat: Check if our state array is empty in the crawled messages response. 2019-10-18 16:33:07 +02:00
Damir Jelić
89f14e55a2 MatrixChat: Catch errors when fetching room messages in the crawler. 2019-10-18 16:32:43 +02:00
Damir Jelić
1b63886a6b MatrixChat: Add more detailed logging to the event crawler. 2019-10-18 16:31:39 +02:00
Damir Jelić
3f53691834 RoomView: Use platform specific search if our platform supports it.
This patch extends our search to include our platform specific event
index.

There are 3 search scenarios and are handled differently when platform
support for indexing is present:

    - Search a single non-encrypted room: Use the server-side search
        like before.
    - Search a single encrypted room: Search using our platform specific
        event index.
    - Search across all rooms: Search encrypted rooms using our local
        event index. Search non-encrypted rooms using the classic
        server-side search. Combine the results.

The combined search will result in having twice the amount of search
results since comparing the scores fairly wasn't deemed sensible.
2019-10-11 16:55:01 +02:00
Damir Jelić
4acec19d40 MatrixChat: Add new crawler checkpoints if there was a limited timeline.
A sync call may not have all events that happened since the last time
the client synced. In such a case the room is marked as limited and
events need to be fetched separately.

When such a sync call happens our event index will have a gap. To
close the gap checkpoints are added to start crawling our room again.
Unnecessary full re-crawls are prevented by checking if our current
/room/roomId/messages request contains only events that were already
present in our event index.
2019-10-11 16:55:01 +02:00
Damir Jelić
5e7076e985 MatrixChat: Add live events to the event index as well. 2019-10-11 16:55:01 +02:00
Damir Jelić
b23ba5f881 MatrixChat: Stop the crawler function and delete the index when logging out. 2019-10-11 16:55:01 +02:00
Damir Jelić
9ce478cb0e MatrixChat: Create an event index and start crawling for events.
This patch adds support to create an event index if the clients platform
supports it and starts an event crawler.

The event crawler goes through the room history of encrypted rooms and
eventually indexes the whole room history of such rooms.

It does this by first creating crawling checkpoints and storing them
inside a database. A checkpoint consists of a room_id, direction and
token.

After the checkpoints are added the client starts a crawler method in
the background. The crawler goes through checkpoints in a round-robin
way and uses them to fetch historic room messages using the
rooms/roomId/messages API endpoint.

Every time messages are fetched a new checkpoint is created that will
be stored in the database with the fetched events in an atomic way, the
old checkpoint is deleted at the same time as well.
2019-10-11 16:55:01 +02:00
Michael Telatynski
6e33cc0650
Merge pull request #3433 from matrix-org/t3chguy/nvl/react16/EventListSummary
Summarise state events after room creation
2019-10-11 09:53:26 +01:00
Michael Telatynski
dcc948f43d
Merge pull request #3543 from matrix-org/t3chguy/timeline_keyboard_focus
Don't intercept TAB on the app outside of the composer, fix tabIndex > 0
2019-10-10 17:52:10 +01:00
Bruno Windels
f8a610687f don't persist caret when selection is missing
so caret will be put back at end of editor when remounting
2019-10-10 16:40:03 +02:00
Michael Telatynski
5643743167 Don't intercept TAB on the app outside of the composer, fix tabIndex > 0
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-10 14:13:29 +01:00
Michael Telatynski
7160922b77
Merge pull request #3541 from matrix-org/t3chguy/fix_150rc1
SettingsFlag always run ToggleSwitch fully-controlled
2019-10-10 09:39:33 +01:00
Michael Telatynski
0d42b8629e remove SettingsFlag manualSave altogether
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 23:20:59 +01:00
Michael Telatynski
685c2f494a actually always run fully controlled
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 22:33:14 +01:00
Michael Telatynski
2b9c102f07 SettingsFlag always run ToggleSwitch fully-controlled
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 22:27:49 +01:00
Michael Telatynski
58317b1608 Use Keyboard Key variables instead of hardcoded strings
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 19:59:11 +01:00
Michael Telatynski
ff18a04da1
Merge pull request #3529 from matrix-org/t3chguy/react16_cleanup2
React error/warning cleanup
2019-10-09 16:26:24 +01:00
J. Ryan Stinnett
93ff43f7e1
Merge pull request #3535 from matrix-org/jryans/tag-react-soft-crashes
Add label to rageshakes for React soft crashes
2019-10-09 12:38:42 +01:00
David Baker
aa6ce97b2f
Merge pull request #3534 from matrix-org/dbkr/add_threepid_ui_auth
Support UI Auth on adding email addresses & phone numbers
2019-10-09 12:02:05 +01:00
J. Ryan Stinnett
e905abe5ce Add label to rageshakes for React soft crashes
This adds a label all rageshakes submitted via the React error boundary marking
them as soft crashes for triage.

Fixes https://github.com/vector-im/riot-web/issues/11072
2019-10-09 11:59:10 +01:00
Michael Telatynski
f2d73793ee delint again
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 12:51:08 +02:00
Michael Telatynski
9331ca9d07 delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 12:51:08 +02:00
Michael Telatynski
6be318b59d Only insert ELS if it'll be non-empty
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 12:51:08 +02:00
Michael Telatynski
efeb6e87c4 Use new React Shallow renderer with hooks support
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 12:51:08 +02:00
Michael Telatynski
efde7f289f Use EventListSummary on m.room.create events and state events thereafter
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 12:50:03 +02:00
Michael Telatynski
34530843f4 Factor out generic EventListSummary from MELS
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 12:50:03 +02:00
J. Ryan Stinnett
e81df88ec2
Merge pull request #3532 from matrix-org/jryans/join-soft-crash
Fix soft crash on room join
2019-10-08 23:22:57 +01:00
David Baker
4a56aa16b8 Merge remote-tracking branch 'origin/develop' into dbkr/add_threepid_ui_auth 2019-10-08 19:11:00 +01:00
David Baker
0b334c0bbc Support UI Auth on adding email address 2019-10-08 18:56:13 +01:00
Bruno Windels
051fd0fd92
Merge pull request #3528 from matrix-org/bwindels/addemailerror
Fix:  Unable to verify email address error
2019-10-08 16:49:51 +00:00
Bruno Windels
8c8b1430e4 fix spelling 2019-10-08 18:39:35 +02:00
Bruno Windels
14bbaae585
Merge pull request #3509 from matrix-org/bwindels/createroomenter
Fix: submit create room dialog when pressing enter
2019-10-08 16:36:05 +00:00
J. Ryan Stinnett
1dc2ae007f Fix soft crash on room join
This fixes a soft crash that can happen on room join if you keep the right panel
open (which is the default). The `MainSplit` component was not properly testing
for the edge cases of when the resize container would be mounted.

Fixes https://github.com/vector-im/riot-web/issues/10997
2019-10-08 15:43:57 +01:00
Bruno Windels
5bcb4b0fb6
Merge pull request #3530 from matrix-org/bwindels/watchemoticonsetting
Fix: watch emoticon autoreplace setting
2019-10-08 12:53:54 +00:00
Bruno Windels
91d593cb71 watch emoticon autoreplace setting 2019-10-08 14:40:10 +02:00
Michael Telatynski
4c82496bca export ToggleSwitch
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-08 12:22:22 +01:00
Michael Telatynski
a03e9e7a4f tidy ToggleSwitch
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-08 12:18:44 +01:00
Michael Telatynski
a782baf510 React error/warning cleanup
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-08 12:10:37 +01:00
Bruno Windels
1ab19be46c also show dialog here
unsure why this code seems duplicated?
2019-10-08 08:54:23 +02:00
Bruno Windels
040bc5e157 show dialog when server says e-mail hasn't been verified yet
as it's confusing to have nothing happen at all when clicking
continue straight away.
2019-10-08 08:54:21 +02:00
Bruno Windels
80ec77a144 dont rely on timeline linkage to find events to redact 2019-10-08 08:46:13 +02:00
David Baker
c97d1d5b05
Merge pull request #3527 from matrix-org/dbkr/label_submit_button
Label submit button in UI auth password prompt
2019-10-07 17:48:51 +01:00
David Baker
1dec534493 Label submit button in UI auth password prompt
Fixes https://github.com/vector-im/riot-web/issues/10739
2019-10-07 13:13:30 +01:00
Travis Ralston
9200c55ce0
Merge pull request #3526 from matrix-org/travis/recaptcha-fix
Null-guard the recaptcha setup
2019-10-07 13:05:52 +01:00