Commit graph

1800 commits

Author SHA1 Message Date
Luke Barnard
77ae041407 Order names by order of first events for users 2017-01-13 16:40:33 +00:00
Luke Barnard
d2d78919ce Overhaul MELS to deal with causality, kicks, etc.
The MELS can now deal with arbitrary sequences of transitions per user, where a transition is a change in membership. A transition can be joined, left, invite_reject, invite_withdrawal, invited, banned, unbanned or kicked.

Repeated segments (modulo 1 and 2), such as joined,left,joined,left,joined will be handled and will be rendered as " ... and 10 others joined and left 2 times and then joined". The repeated segments are assumed to be at the beginning of the sequence. This could be improved to handle arbitrary repeated sequences.
2017-01-12 18:55:53 +00:00
Luke Barnard
baaf827c48 Use getStateKey instead of getSender
This makes sure that the kickee is not the user used for the MemberEventListSummary
2017-01-11 17:03:14 +00:00
Luke Barnard
7475056bb4 MELS component should update if there are fewEvents, effectively expanding the summary 2016-12-15 18:33:13 +00:00
Luke Barnard
55f85befc1 Allow component to update if currently expanded or if about to collapse 2016-12-15 14:43:59 +00:00
Luke Barnard
86739e7d1e Simplify handling of only one member event 2016-12-15 13:15:00 +00:00
Luke Barnard
c07e5d4992 Improve the performance of MemberEventListSummary
- The MessagePanel now uses the same key for the MELS instances rendered so that entirely new instances are not created, they are simply passed new props (namely when new events arrive).
- MELS itself now uses `shouldComponentUpdate` so that it only updates if it is given a different number of events to previous or if it is toggled to expand.
2016-12-14 15:31:35 +00:00
David Baker
a3ab59832e Give the search box field a name
Should fix https://github.com/vector-im/riot-web/issues/2462
2016-12-06 14:40:09 +00:00
Richard van der Hoff
c7fb83ed2d s/block/blacklist for e2e
Fixes https://github.com/vector-im/vector-web/issues/2315
2016-11-29 18:48:43 +00:00
Luke Barnard
7e88f0083d Fix more join-part collapsing regressions
Use the previous content of the first event known for a user in a block of membership changes. This means single events are not special cased.
2016-11-16 16:26:24 +00:00
Luke Barnard
324448563a If only one mevent, return than one
Also, the net change of nil is detected as having the first and last events being _different_. The summary should only include those that have their first and last events being the _same_ because that is a net change (within the block of member events).
2016-11-16 16:07:19 +00:00
Luke Barnard
beecbc7cd7 Fix join/part collapsing regressions (#553)
* Fix join/part collapsing regressions

* Simplify loop

* Explain e,e

* Explain return null in _renderSummary

* Kill it properly

* Move . to _renderSummary

* Only use the first and last events to decide whether a net change has occured

* Do not sort events by TS before summarising

* fix loop and comment

* remove data-number-events

* Better explanation comment in _renderSummary

* Less tortuous comment
2016-11-16 14:42:30 +00:00
Mark Haines
6ccc825f0d Cache the tinted SVGs for MFileBody as data URLs (#559)
* Use a list of callbacks for things that need tinting.

Rather than gutwrenching the internals of TintableSVG inside the Tinter.

* Share a data: url for the tinted download svg in MFileBody

* Check image exists before tinting

* Add comments

* Use fetch+DomParser rather than XMLHttpRequest

* Remove comment about XMLHttpRequest
2016-11-16 14:16:51 +00:00
Luke Barnard
d3a548773a Remove redundant lines 2016-11-10 18:01:34 +00:00
Luke Barnard
3d7f6919cf Refactor renderNameList (thanks, @richvdh) 2016-11-10 17:36:22 +00:00
Luke Barnard
b11dd9542f Add class to expand link for pointer and colour 2016-11-10 17:09:18 +00:00
Luke Barnard
e05aeb35a1 npm run reskindex 2016-11-10 17:03:24 +00:00
Luke Barnard
ac460122cc revert now redundant TruncatedList edits 2016-11-10 15:51:27 +00:00
Luke Barnard
f71ac93946 Prefer null to falsy, use correct plural 2016-11-10 15:38:20 +00:00
Luke Barnard
1a4df38500 remove href 2016-11-10 15:20:53 +00:00
Luke Barnard
d8bc4d9a6f Factor out avatar click leads to view_user 2016-11-10 15:18:59 +00:00
Luke Barnard
6b2aa43b71 Factor out "and others" 2016-11-10 14:33:41 +00:00
Luke Barnard
d6b74becfc Children are required 2016-11-10 14:12:45 +00:00
Luke Barnard
370f5f0a11 Use _ prefix for private methods 2016-11-10 14:12:05 +00:00
Luke Barnard
8422017827 events are required 2016-11-10 14:09:40 +00:00
Luke Barnard
dcbb31279f Prefer import React, set prevEvent to last MemberhsipChange 2016-11-10 14:08:11 +00:00
Luke Barnard
e2936376b6 Unnecessary props 2016-11-10 13:26:27 +00:00
Luke Barnard
566034cf2b Render children EventTiles before passing to summary element 2016-11-10 13:25:48 +00:00
Luke Barnard
79c01fa1a4 Remove empty lines 2016-11-10 11:03:43 +00:00
Luke Barnard
f5bc8d1fe0 Removed logs, updated phrasing on 'others joined'
Now it's:
 1 user joined and left
 >1 others joined and left
2016-11-10 10:42:33 +00:00
Luke Barnard
5f0b891d47 Add date seperator to the expanded events
netsplits across midnight is not handled, and @richvdh suggested splitting the list in two
2016-11-09 17:44:43 +00:00
Luke Barnard
2f02c4b84e WIP nicer join/part folding 2016-11-09 16:03:35 +00:00
Luke Barnard
cd241a4a17 Truncate consecutive member events
This is needed for the IRC bridge to be able to do full membership list syncing without cluttering the message panel.
2016-11-08 16:34:02 +00:00
David Baker
9a633ee449 Move 'show join button' functionality out
And have it as a prop to the directory search box instead, so the
room directory can do more complex logic.
2016-09-29 15:05:15 +01:00
David Baker
b9576754e6 Nomenclature 2016-09-27 14:50:18 +01:00
David Baker
ba090a1198 Trailing .+ was redundant 2016-09-26 15:13:57 +01:00
David Baker
9333f91533 Give react callbacks underscores too 2016-09-26 14:29:12 +01:00
David Baker
2dd0165bfc Correct regex for hash at the start 2016-09-26 14:24:35 +01:00
David Baker
fa193e775a Implement join button appearing
Also switch input to controlled so we re-render when it changes so we can show/hide the join button
2016-09-23 16:34:47 +01:00
David Baker
eb5b175213 Layout to support less hardcoded CSS 2016-09-23 15:58:11 +01:00
David Baker
b1e4c911eb WIP omnipresent join button 2016-09-23 15:25:38 +01:00
David Baker
61b48a5b1a Add component for the directory search box 2016-09-23 13:48:24 +01:00
Richard van der Hoff
2f7b4f74fd Move the device verification buttons to their own class
Instead of pulling in the whole of MemberDeviceInfo into EncryptedEventDialog
for utterly no reason and breaking everything
2016-09-22 19:24:09 +01:00
David Baker
31753fc3f3 Rebrand 2016-09-19 13:26:59 +01:00
Matthew Hodgson
2b9258d377 use new rawDisplayName in AddressTile 2016-09-16 03:19:33 +01:00
wmwragg
2a8518b72b Tab can now be used for selection of address from list, as well as adding a manual mxid or email address 2016-09-14 14:53:13 +01:00
wmwragg
7fa102998c Added valid but unknown mx user 2016-09-13 17:09:40 +01:00
wmwragg
5a0a72ee46 Added styling for unknown addresses 2016-09-12 17:25:14 +01:00
wmwragg
95d9df7534 Make an invalid mx user an unknown user AddressTile 2016-09-12 17:15:56 +01:00
wmwragg
5b2cc555a3 Refactored AddressTile to use string address rather than user object, so it can user email as well mx userId 2016-09-12 16:52:04 +01:00
wmwragg
4836025a1d First pass at adding multiple addresses, can only add from AddressSelector at the moment 2016-09-12 15:21:17 +01:00
wmwragg
7d58968ea6 Correctly positioning the selected element if list shrinks in size 2016-09-12 14:07:51 +01:00
wmwragg
28dcbb2a78 Refactored the queryList into seperate AddressSelector component 2016-09-12 13:00:44 +01:00
wmwragg
ca3910f5a8 Mouse actions on the queryList added, as well as better queryListElement styling 2016-09-07 16:18:50 +01:00
wmwragg
7e60012bd4 Added justification for the AddressTile, when requested 2016-09-07 10:55:44 +01:00
wmwragg
391fe0ab77 Basic address list created, and UX tweaks for interaction 2016-09-06 15:24:23 +01:00
wmwragg
ddf1e4841a Selecting users with arrow keys added 2016-09-06 13:07:06 +01:00
wmwragg
5ed680e5ce Picking the top of the queryList not _userList, as the queryList is the query filtered _userList 2016-09-05 17:34:20 +01:00
wmwragg
3dd84e2b8a Initial AddressTile added 2016-09-05 17:28:08 +01:00
Aviral Dasgupta
09e8a45cde Add EmojiText component for emoji replacement. 2016-08-10 00:31:51 +05:30
Richard van der Hoff
9333793a7c Fix code style 2016-08-01 10:49:51 +01:00
Richard van der Hoff
3194c5c61d Factor EditableTextContainer out of ChangeDisplayName
Take the non-displayname-specific bits out of ChangeDisplayName into a new
EditableTextContainer, so that we can reuse the logic elsewhere.
2016-07-29 17:40:13 +01:00
Richard van der Hoff
7a7d7c0e02 Fix a pair of warnings from RoomSettings
- initialise the 'publish' checkbox correctly so react doesn't grumble about it
  turning from uncontrolled into controlled

- PowerSelector's 'controlled' property isn't really required, so mark it as
  such.
2016-06-23 11:15:55 +01:00
Richard van der Hoff
716eb1eb1b Drop workaround for object.onLoad
https://github.com/facebook/react/pull/5781 has been fixed in React 15.0, so
drop our workaroud for it.
2016-04-17 21:46:27 +01:00
Matthew Hodgson
f4573bae49 remove premie optimisation of tintablesvg shouldComponentUpdate 2016-04-17 00:28:20 +01:00
Matthew Hodgson
8db14bde60 switch Tinter from using dispatch to a synchronous update when changing the colourscheme, to avoid CSS getting out of sync with SVG colours 2016-04-16 01:00:10 +01:00
Matthew Hodgson
a06b420942 wire up searchbox filtering 2016-04-15 17:55:00 +01:00
Matthew Hodgson
26f135c7b0 fix 'undefined' class bug on TintableSvg 2016-04-14 21:44:05 +01:00
Matthew Hodgson
e23f496dfe fix PowerSelector to support both controlled & uncontrolled variants 2016-03-22 17:17:46 +00:00
Matthew Hodgson
59f599af5c prompt before giving equal ops 2016-03-21 00:49:18 +00:00
Matthew Hodgson
1abd7f45ce fix setting custom power levels 2016-03-15 01:34:49 +00:00
Matthew Hodgson
5e5fdb9b96 fix vector-im/vector-web#921 2016-02-14 13:38:12 +02:00
Kegan Dougal
38d5c7d5c5 Filter out undefined/null children which won't render 2016-01-22 15:57:42 +00:00
Kegan Dougal
d72ab641d0 Expand the list when the overflow element is clicked
Negative truncateAt values means "do not truncate".
2016-01-21 15:57:59 +00:00
Kegan Dougal
eed83f982e Add a suitable overflow tile for the member list 2016-01-21 11:41:28 +00:00
Kegan Dougal
9f362e488c Add a TruncatedList component, which truncates children passed to it. 2016-01-21 11:30:37 +00:00
Matthew Hodgson
51648b9bf0 merge develop 2016-01-18 14:02:19 +00:00
Matthew Hodgson
17fdfa0c8f incorporate kegan PR feedback 2016-01-18 14:00:47 +00:00
Matthew Hodgson
8e1ab8e6b4 vaguely skin MemberInfo correctly 2016-01-18 01:18:02 +00:00
Matthew Hodgson
430c90f4a4 oops ,forgot PowerSelector 2016-01-18 00:42:20 +00:00
Matthew Hodgson
0553551d92 oops ,forgot PowerSelector 2016-01-17 23:58:38 +00:00
Matthew Hodgson
5b5bd9aef1 remove create_room for now. lots of stupid bugfixes across the board. 2016-01-17 03:59:31 +00:00
Matthew Hodgson
82a159d651 make roomsettings actually work, including alias editing. (using staged UX rather than direct manipulation). loads of tweaks and fixes across the board 2016-01-17 02:48:55 +00:00
Matthew Hodgson
8e9e33fa2a fix NPE and make enter work again 2016-01-15 12:34:53 +00:00
Matthew Hodgson
2899082cba deselect editabletext when tabbing away 2016-01-14 17:24:52 +00:00
Matthew Hodgson
c9c496f0e5 WIP all new roomsettings 2016-01-13 13:15:13 +00:00
Matthew Hodgson
d39a9a0f18 bring back select-all-on-click 2016-01-10 13:14:12 +00:00
Matthew Hodgson
684255044a switch EditableText to be built on contentEditable rather than switching divs and inputs, so that it can be used for managing multiline content like topics and room names, and use it in RoomHeader/RoomSettings 2016-01-10 12:56:45 +00:00
Matthew Hodgson
8170288acb Merge pull request #77 from matrix-org/matthew/dynamic-svg
Make SVGs and CSS dynamically recolourable
2016-01-07 11:42:30 +00:00
Matthew Hodgson
fd32362aa6 oops, initialise fixups per-object, not per-prototype 2016-01-07 10:18:18 +00:00
Matthew Hodgson
0772f50fab update copyright for 2016 2016-01-07 04:06:52 +00:00
Matthew Hodgson
296b626ed9 oops, we actually need to cache the fixups in TintableSvg 2016-01-07 03:59:09 +00:00
Matthew Hodgson
0f52c0a514 make TintableSvgs responsible for updating their own tints, and stop storing SVG DOM fragments in Tinter to avoid leaking them 2016-01-07 03:39:00 +00:00
Matthew Hodgson
f499c60b12 sundry PR feedback 2016-01-06 02:29:08 +00:00
Matthew Hodgson
509ea7c4f3 factor out tintable SVGs into their own component, and use plain DOM onload rather than react synthetic events 2016-01-06 02:11:07 +00:00
Kegan Dougal
19bd39b066 More random tweaks
- Make onBlur reset the EditText to show that it hasn't submitted it.
- Add the user ID of the logged in user to Advanced.
- Remove remnants of the Save/Cancel buttons.
2015-12-23 16:02:18 +00:00
Kegan Dougal
6e9e314f24 Move and merge UserSelector 2015-11-26 17:37:40 +00:00
Kegan Dougal
75afc3a7de Move and merge ProgressBar 2015-11-26 17:21:08 +00:00
Kegan Dougal
4fda0ce0c9 Fix typo 2015-11-26 15:17:34 +00:00
Kegan Dougal
17d789eb97 Merge EditableText component 2015-11-26 15:16:50 +00:00