Commit graph

2454 commits

Author SHA1 Message Date
Michael Telatynski
33e841a786 move user settings outward and use built in read receipts disabling
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-22 15:40:29 +01:00
Michael Telatynski
6a657a6555 Remember element that was in focus before rendering dialog
restore focus to that element when we unmount

also remove some whitespace because ESLint is a big bad bully...

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-22 05:44:27 +01:00
Matthew Hodgson
aa0658d9ce Merge pull request #802 from t3chguy/t3chguy/file_download_improvements
File Download Consistency
2017-04-22 02:59:25 +01:00
Matthew Hodgson
6c177bc617 Merge pull request #806 from t3chguy/t3chguy/show_access_token
Show Access Token under Advanced in Settings
2017-04-22 02:51:54 +01:00
Matthew Hodgson
ad76dd0dd1 Merge pull request #810 from t3chguy/t3chguy/settings_versions_improvements
Link tags/commit hashes in the UserSettings version section
2017-04-22 02:38:30 +01:00
Matthew Hodgson
febd9c637e Merge pull request #813 from t3chguy/RoomSettings_close_focus_composer
On return to RoomView from auxPanel, send focus back to Composer
2017-04-22 02:08:48 +01:00
Matthew Hodgson
ba0bb677c8 Merge pull request #817 from turt2live/travis/rw-3626
Change presence status labels to 'for' instead of 'ago'
2017-04-22 01:45:21 +01:00
Matthew Hodgson
304136766d Merge pull request #816 from t3chguy/ability_to_disable_scalar
Disable Scalar Integrations if urls passed to it are falsey
2017-04-22 01:39:20 +01:00
Matthew Hodgson
872d0e0f50 Merge branch 'develop' into travis/hide-read-receipts 2017-04-22 01:36:38 +01:00
Matthew Hodgson
b36eb90a10 Merge pull request #819 from turt2live/travis/no-typing-notifs
Add option to not send typing notifications
2017-04-22 01:35:07 +01:00
Matthew Hodgson
1faecfd0f7 fix sticky headers on resize 2017-04-22 01:29:48 +01:00
Matthew Hodgson
ec6a1c4c75 recalculate roomlist when your invites change 2017-04-22 01:16:25 +01:00
turt2live
64e416e117 Add option to not send typing notifications
Addresses vector-im/riot-web#3220

Fix applies to both the RTE and plain editor.

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-04-21 14:50:26 -06:00
turt2live
e4c4adc517 Add option to hide other people's read receipts.
Addresses vector-im/riot-web#2526

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-04-21 14:28:28 -06:00
turt2live
2d39b59556 Change presence status labels to be more clear.
As per vector-im/riot-web#3626 the current labels are unclear. Changing the verbage should make it more clear.

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-04-21 13:41:37 -06:00
Michael Telatynski
8e9f52e217 Disable Scalar Integrations if urls passed to it are falsey
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-21 19:46:19 +01:00
Michael Telatynski
fdc26a490a On return to RoomView from auxPanel, send focus back to Composer
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-21 18:45:28 +01:00
Luke Barnard
ae8d04b35d Merge pull request #805 from matrix-org/luke/feature-read-marker
Sync RM across instances of Riot
2017-04-21 16:52:46 +01:00
Luke Barnard
29c2bd3d18 reset last_rr_sent on error
Indicate that setting the RR was a failure and that hitting the API should be retried (in the case where the errcode !== "M_UNRECOGNISED")
2017-04-21 16:46:36 +01:00
Luke Barnard
19d6d1ef4b Merge pull request #811 from matrix-org/luke/login-ui
First iteration on improving login UI
2017-04-21 16:25:16 +01:00
Luke Barnard
9c4c706120 Remove :server.name for custom servers
Custom servers may not be configured such that their domain name === domain part.
2017-04-21 16:09:11 +01:00
Matthew Hodgson
b0288ebd89 fix stupid typos in RoomList's shouldComponentUpdate 2017-04-21 12:40:13 +01:00
Luke Barnard
2b9cb999ba autoFocus PasswordLogin 2017-04-21 11:50:19 +01:00
Luke Barnard
9cd7914ea5 Finishing off the first iteration on login UI
This makes the following changes:
 - Improve CountryDropdown by allowing all countries to be displayed at once and using PNGs for performance (trading of quality - the pngs are scaled down from 32px to 25px)
 - "I want to sign in with" dropdown to select login method
 - MXID login field that suffixes HS domain (whether custom or matrix.org) and prefixes "@"
 - Email field which is secretly the same as the username field but with a different placeholder
 - No more login flickering when changing ServerConfig (!) fixes https://github.com/vector-im/riot-web/issues/1517

This implements most of the design in https://github.com/vector-im/riot-web/issues/3524 but neglects the phone number login:
![login_with_msisdn](https://cloud.githubusercontent.com/assets/1922197/24864469/30a921fc-1dfc-11e7-95d1-76f619da1402.png)

This will be updated in another PR to implement desired things:
 - Country code visible once a country has been selected (propbably but as a prefix to the phone number input box.
 - Use square flags
 - Move CountryDropdown above phone input and make it show the full country name when not expanded
 - Auto-select country based on IP
2017-04-21 11:37:08 +01:00
Michael Telatynski
bbd1f34336 Prepend REACT_SDK_VERSION with a v to match riot-web version output
Add simple helper to construct version/commit hash urls
var -> let/const and prepend olmVersionString with v for same reason

for both matrix-react-sdk and riot-web, if unknown/local don't do anything
else try to create a link to the commit hash/tag name

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-21 03:04:34 +01:00
Michael Telatynski
be9b858193 focus on composer after jumping to bottom
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-21 01:06:00 +01:00
Robert Swain
3d507e9840 (Room)?Avatar: Request 96x96 avatars on high DPI screens 2017-04-21 00:05:52 +02:00
Matthew Hodgson
35a16edccc oops, actually refresh roomlist when its state changes! 2017-04-20 15:47:59 +01:00
Matthew Hodgson
0d8d3c6710 HOW DID THIS EVER WORK? 2017-04-20 15:15:20 +01:00
Luke Barnard
67089cb527 If new RR-RM API not implemented, fallback to RR-only API 2017-04-20 14:34:59 +01:00
Matthew Hodgson
238f59dc87 return the event from RoomTile's onClick to distinguish clicks from keypresses 2017-04-20 14:16:45 +01:00
Matthew Hodgson
e69ea68133 unbreak stack overflow which fires on tests due to mocked timers 2017-04-20 13:53:36 +01:00
Matthew Hodgson
5a3b4b6a60 various bug fixes:
don't redraw RoomList when the selectedRoom changes
keep passing selectedRoom through to RoomTiles so they have correct initial state
handle onAccountData at the RoomList, not RoomTile level
Fix some typos
2017-04-20 01:12:57 +01:00
Matthew Hodgson
90f526bdeb autofocus doesn't seem to work on this button 2017-04-20 00:42:13 +01:00
Matthew Hodgson
9f99224a1f fix bugs from PR review 2017-04-19 17:59:06 +01:00
Luke Barnard
a4ba5f041c Remove log, reinstate comment 2017-04-19 10:46:08 +01:00
Luke Barnard
edeaef8c2f Initialise last_rm_sent_event_id 2017-04-19 10:28:38 +01:00
Luke Barnard
81bf2be13b Make note of inconsistant roomReadMarkerTsMap
This will become redundant when there is server support for directionality of the RM
2017-04-19 10:27:43 +01:00
Luke Barnard
a787ee8480 Remove spammy log 2017-04-19 10:20:53 +01:00
Luke Barnard
00cf5b5918 Revert change 2017-04-19 10:20:24 +01:00
Luke Barnard
e32f153573 Remove Room.accountData listener on unmount 2017-04-19 10:18:25 +01:00
Luke Barnard
28818b857a Remove log 2017-04-19 10:17:44 +01:00
Luke Barnard
81bdfe2126 Update to match renamed API 2017-04-19 10:14:57 +01:00
Luke Barnard
566a315242 Initial commit on riot-web#3524 (login UI update) 2017-04-19 10:08:04 +01:00
Matthew Hodgson
fb6252a16b fix invite highlights take 3 2017-04-19 00:16:17 +01:00
Matthew Hodgson
4a9c168682 fix invite highlights 2017-04-19 00:13:01 +01:00
Matthew Hodgson
abf2300c0d highlight invites correctly 2017-04-19 00:09:03 +01:00
Matthew Hodgson
093b9a0b52 kick the roomtile on RoomState.members 2017-04-18 23:29:28 +01:00
Matthew Hodgson
8389a67c75 we don't need RoomTile specific focus in the end 2017-04-18 22:54:30 +01:00
Matthew Hodgson
015a4480e2 oops, wire up Room.receipt again, and refresh roomtiles on Room.timeline 2017-04-18 22:36:54 +01:00
Michael Telatynski
61071b89df Show Access Token under Advanced in Settings
behind a Spoiler, onClick = spoil+select

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-18 19:55:08 +01:00
Matthew Hodgson
c1c3956df4 fix bugs, and handle shortcircuit react when updating roomtile 2017-04-18 19:28:24 +01:00
Matthew Hodgson
062963b32f move focus-via-up/down cursors to LeftPanel 2017-04-18 17:49:28 +01:00
Matthew Hodgson
4fb9635175 nudge focus shortcut code further to working 2017-04-18 17:12:42 +01:00
Luke Barnard
c431c9ab22 Clarify comment 2017-04-18 15:18:21 +01:00
Luke Barnard
d38520dfb4 Undo change in ghost RM logic
Put a XXX to indicate that the ghost tile should be replaced with something mor e stable. As it stands, the ghost will appear, potentially at a different position to the RMs actual position
2017-04-18 15:17:42 +01:00
Luke Barnard
d33afa99ab marker -> event_id 2017-04-18 15:13:05 +01:00
Luke Barnard
4b5364e9ae Merge branch 'develop' into luke/feature-read-marker 2017-04-18 14:45:18 +01:00
Luke Barnard
28ed69b617 m.read_marker -> m.fully_read 2017-04-18 14:44:43 +01:00
Matthew Hodgson
9591ad31e6 fix bugs, experiment with focus pulling, make it vaguely work 2017-04-18 02:43:29 +01:00
Matthew Hodgson
da569c2c8d add constantTimeDispatcher and use it for strategic refreshes.
constantTimeDispatcher lets you poke a specific react component to do something
without having to do any O(N) operations.  This is useful if you have thousands
of RoomTiles in a RoomSubList and want to just tell one of them to update,
without either having to do a full comparison of this.props.list or have each
and every RoomTile subscribe to a generic event from flux or node's eventemitter

*UNTESTED*
2017-04-17 21:06:37 +01:00
Michael Telatynski
6f0c3b1c03 Pass file name (as name) to the ImageView modal
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-17 14:50:34 +01:00
Michael Telatynski
a0c498e8ba Make Download behaviour consistent with that of E2E (iframed) download butttons (ACTUALLY DOWNLOAD)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-17 14:37:24 +01:00
Matthew Hodgson
691639d1e0 track RoomTile focus in RoomList, and stop the RoomList from updating during mouseOver 2017-04-15 13:25:32 +01:00
Matthew Hodgson
1189368aab add a class to remove evil blue outlines 2017-04-15 00:30:48 +01:00
Luke Barnard
7ae13f5889 Merge pull request #762 from lieuwex/hide-link-preview-quote
Don't show link preview when link is inside of a quote
2017-04-12 15:31:43 +01:00
Luke Barnard
a29d8c2af2 Merge pull request #765 from t3chguy/t3chguy/escape-closes-user-settings
Escape closes UserSettings
2017-04-12 15:18:19 +01:00
Luke Barnard
9c9dc84f45 Remove redundant setting of readMarkerEventId 2017-04-12 15:12:37 +01:00
Luke Barnard
249e42747b Fix bug where roomId was expected to be a property on timelineSet 2017-04-12 15:09:56 +01:00
Luke Barnard
1c25ed89b0 Initial implementation of using new RM API
As detailed here https://docs.google.com/document/d/1UWqdS-e1sdwkLDUY0wA4gZyIkRp-ekjsLZ8k6g_Zvso/edit, the RM state is no longer kept locally, but rather server-side. The client now uses it's locally-calculated RM to update the server and receives server updates via the per-room account data.

The sending of the RR has been bundled in to reduce traffic when sending both. In effect, whenever a RR is sent the RM is sent with it but using the new API.

This uses a js-sdk change which has set to be finalised and so might change.
2017-04-12 15:05:39 +01:00
Luke Barnard
424aae6b91 Prevent the ghost and real RM tile from both appearing 2017-04-12 15:04:38 +01:00
David Baker
726cb43fee Merge pull request #794 from matrix-org/luke/feature-textual-pls
Implement user power-level changes in timeline
2017-04-12 09:52:53 +01:00
David Baker
d4dc16545a Fix people section vanishing on 'clear cache'
Stop the client first

Fixes https://github.com/vector-im/riot-web/issues/3610
2017-04-11 18:16:29 +01:00
David Baker
811cd79206 Make the clear cache button work on desktop
Fixes https://github.com/vector-im/riot-web/issues/3597
2017-04-10 17:39:27 +01:00
Luke Barnard
8b4836b60e Refactor roles into Roles.js
So that the mapping between a numerical power level and a "role" are done in one place. PowerSelector.js has been modified to use the same mapping.
2017-04-10 10:09:26 +01:00
Matthew Hodgson
6dbb4e9002 fix the warning shown to users about needing to export e2e keys
apparently when we added the buttons to export e2e keys to the Logout button, we didn't change the text warning the user that e2e export was coming soon.  likewise when changing password and forgetting password (where we didn't even have a button to export keys)
2017-04-07 23:34:11 +01:00
Richard van der Hoff
6352784a2c Merge pull request #795 from matrix-org/luke/fix-pagination3
Fix infinite pagination/glitches with pagination
2017-04-07 13:24:22 +01:00
Luke Barnard
4342a2ad47 Merge pull request #793 from matrix-org/luke/fix-guest-team-token-home-page
Fix issue where teamTokenMap was ignored for guests
2017-04-07 11:53:00 +01:00
Luke Barnard
d218f90cde Fix infinite pagination/glitches with pagination
I think this was being caused by a bug introduced in 47f29b that meant that `backwards` was actually being used as `forwards`.
2017-04-07 11:34:31 +01:00
Luke Barnard
a815788af8 Fix issue where teamTokenMap was ignored for guests
This was an issue because guests do not log in with a teamToken, it is implicitly set by MatrixChat when it mounts. The fix is to view_home_page when a login occurs and MatrixChat has this._teamToken set.
2017-04-06 17:10:32 +01:00
Luke Barnard
6010350ce5 Implement power-level changes in timeline
Fixes https://github.com/vector-im/riot-web/issues/266
2017-04-06 17:02:35 +01:00
Luke Barnard
6c09a08a7d Click emote sender -> insert display name into composer
Also, fix the imports TextualBody.
2017-04-06 14:08:59 +01:00
Luke Barnard
880a48494b Merge pull request #785 from matrix-org/luke/fix-scroll-past-big-event
Fix scroll token selection logic
2017-04-06 12:36:30 +01:00
Luke Barnard
5f8a7b46a8 Remove redundant setState call, always focus composer after sync 2017-04-06 11:44:25 +01:00
Luke Barnard
95b40a976c Replace sdkReady with firstSyncPromise, add mx_last_room_id
- Create a promise that will serve as a lock to be blocked on by things that need to wait for the first sync before accessing state.
- Use this promise to block `view_room` calls until a sync has occured instead of just dropping them silently if the sync hasn't happened yet.
- Store the current room ID in a localStorage item `mx_last_room_id` when `view_room` fires. This persists the last viewed room ID so that it can be restored on refresh, browser quit. This replaces the previous logic which set the room following a sync based on the most recent unread room.
2017-04-06 11:38:06 +01:00
Luke Barnard
b0a04e6f00 Clarify comment 2017-04-05 17:52:05 +01:00
Luke Barnard
423babdb17 Remove fairly redundant condition
Making sure that a node is intersected by the bottom of the wrapper is a bit overkill, given that we iterate from the bottom. This also prevents the scenario of having no nodes that are not precisely intersected, but possibly straddling the bottom of the wrapper.
2017-04-05 17:51:07 +01:00
Luke Barnard
47f29b9454 Simplify simulated unfill 2017-04-05 17:48:24 +01:00
Luke Barnard
106ce90916 Change "Unread messages." to "Jump to first unread message."
Also get rid of the "up" arrow so as not to indiciate direction. This is important because in future the RM will not be based on what has been paginated into the client (but instead RM will be handled server-side) and thus we cannot assert any kind of direction on it relative to the events in the viewport.
2017-04-04 16:31:28 +01:00
Luke Barnard
5737994957 Clarify and simplfiy unpagination logic 2017-04-04 13:28:26 +01:00
Luke Barnard
94fe9999db Reimplement _saveScrollState
The actual fix to https://github.com/vector-im/riot-web/issues/3175 is this change to `_saveScrollState`, which is to pick the trackedScrollToken based on which node is intersected by the bottom of the scroll panel. This is opposed to the previous logic that picked based on which node was the first from the bottom to be above the bottom of the viewport.

In the case where the viewport bottom does not intersect any events, the topmost event is used.
2017-04-04 11:55:53 +01:00
Luke Barnard
8e5a83a056 Reduce number of unpaginated events by 1
When unpaginating in the backwards direction
2017-03-30 18:02:33 +01:00
Luke Barnard
fff83ba234 Fix the onFinished for timeline pos dialog
This was causing a blank RoomView because it was trying to work with `room_id = undefined`.
2017-03-30 17:18:22 +01:00
David Baker
11a1c8099c Merge pull request #776 from matrix-org/luke/fix-directory-search-enter
Only join a room when enter is hit if the join button is shown
2017-03-30 09:59:42 +01:00
David Baker
dff79984a6 Merge remote-tracking branch 'origin/develop' into dbkr/remove_session_load_error 2017-03-29 18:24:06 +01:00
David Baker
22b0f69ac9 Merge pull request #782 from matrix-org/dbkr/matrixchat_tidy
Use Login & Register via component interface
2017-03-29 18:23:36 +01:00
Luke Barnard
5a411ba005 Merge pull request #781 from matrix-org/luke/fix-flaky-tests-maybe
Attempt to fix the flakyness seen with tests
2017-03-29 17:32:56 +02:00
David Baker
a6612bb8ad Remove non-functional session load error
MatrixChat was trying to display an error if the session failed to
restore, but it was never actually being shown because it was just
set as a member variable and therefore never actually caused
a re-render for the error to be displayed. Almost all errors are
caught by _restoreFromLocalStorage which displays the fancy dialog
if your session can't be restored, so I'm not convinced this ever
even tried to do anything anyway. Remove it.
2017-03-29 16:23:18 +01:00
David Baker
cee2628b41 Use Login & Register via component interface
Login & Register were being imprted directly for some reason,
rather than going via the normal component interface.

Should be functionally identical.
2017-03-29 15:24:47 +01:00
David Baker
e139f5212a Remove React warning
Fire onOptionChange in componentWillMount, otherwise end up trying
to update state effectively in a render method, which is bad.
2017-03-29 15:05:49 +01:00