Commit graph

2411 commits

Author SHA1 Message Date
Bruno Windels
31dda34e6b use new permalink class in share dialog & context menu 2019-02-25 18:43:08 +01:00
Bruno Windels
f7ea9cfeb2 rename all instances of permalinkCreator 2019-02-25 18:43:08 +01:00
Bruno Windels
f97ea37717 permalink is one word 2019-02-25 18:43:08 +01:00
Bruno Windels
29be28919d create permalink creator in roomview and pass it on to the event tiles 2019-02-25 18:43:08 +01:00
Travis Ralston
8049d5c2b2
Merge pull request #2684 from matrix-org/travis/fix-e2e-menu-item
Only set e2e info callback if the event is encrypted
2019-02-25 07:31:17 -07:00
Travis Ralston
1c10b3050d Revert "Add some logging for riot-web#7838"
This reverts commit f5ff580e35.
2019-02-24 18:05:40 -07:00
Travis Ralston
c12bea06c8
Merge pull request #2698 from matrix-org/t3chguy/room_member_filter_clear
Add abilities to clear Filter room members input
2019-02-24 18:00:02 -07:00
Michael Telatynski
ee47e0f72e pass through className
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-02-24 04:44:38 +00:00
Michael Telatynski
5052039b36 Re-use SearchBox from filter rooms for filter room members
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-02-24 04:42:04 +00:00
Michael Telatynski
c99b4bda32 view user on click typing tile
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-02-24 02:30:45 +00:00
Travis Ralston
20cd198784 Only set e2e info callback if the event is encrypted
Fixes https://github.com/vector-im/riot-web/issues/8551
2019-02-22 10:31:14 -07:00
J. Ryan Stinnett
150c941340
Merge pull request #2682 from jryans/simplify-composer-state-change
Remove duplicated conversion from `enableRichText`
2019-02-22 16:57:37 +00:00
Travis Ralston
d6f89f422b
Merge pull request #2679 from matrix-org/travis/settings/field-editable-list
Fix AliasSettings and RelatedGroups UX
2019-02-22 09:40:34 -07:00
J. Ryan Stinnett
f5c477bbc8 Remove duplicated conversion from enableRichText
`enableRichText` would convert the editor state between rich and md versions
explicitly, but then it would also call `createEditorState`, which can do the
same thing.

This removes the duplication, and also supplies the right arguments to
`createEditorState` so it can do its work correctly.
2019-02-22 15:48:44 +00:00
J. Ryan Stinnett
ccd4dee0d2 Isolate rich text notifications from other input changes
The step that would notify parent components of rich text state changes was
stirred into the input's change handler, which leads to race which the parent is
sometimes notified of the old rich text state instead of the new.

Here we avoid this complication by using a separate path for sending the rich
text state when we know we have updated it correctly.
2019-02-22 15:18:24 +00:00
J. Ryan Stinnett
3e6199c0f7 Change Markdown buttons to onClick
`AccessibleButton` expects click handlers, which we can use here, as long we
make some additional changes to avoid race processing the new state (see
subsequent patch).

Fixes https://github.com/vector-im/riot-web/issues/8866
2019-02-22 15:18:06 +00:00
Travis Ralston
003d0eb0bf Show changes to related groups (flair) in the timeline 2019-02-21 17:03:15 -07:00
Bruno Windels
d9b8b0f988 fix indentation 2019-02-21 10:51:09 +01:00
Bruno Windels
f11505a9de bring back user page
Adds a UserView that contains a MainSplit with an empty div
and a RightPanel, preset to the given member.

UserView fetches the profile and creates a fake member, which
it passed on to the RightPanel.

this doesn't use the view_user action on purpose, to avoid any
interference of the UserView when trying to view a room member.
2019-02-20 12:45:55 +01:00
J. Ryan Stinnett
5fb990eb5f Convert Markdown button to SVG mask
This makes it easier to theme via CSS, which helps with the dark theme.
2019-02-18 18:26:52 +00:00
J. Ryan Stinnett
09ed795c79 Allow theming member info minimise button 2019-02-18 16:02:10 +00:00
J. Ryan Stinnett
6c954dadc8 Allow theming message composer buttons 2019-02-13 10:47:04 +00:00
J. Ryan Stinnett
8652a094f3 Allow theming room header buttons 2019-02-13 10:47:04 +00:00
Bruno Windels
875f792728
Merge pull request #2620 from matrix-org/bwindels/e2eiconsanddialog
Fixes and styling related to e2e icons and dialogs
2019-02-13 09:18:58 +01:00
Bruno Windels
12b6383831
Merge pull request #2618 from matrix-org/bwindels/fixstickers
Fix: stickers layout
2019-02-13 09:17:21 +01:00
Bruno Windels
5047d15a3b
Merge pull request #2615 from matrix-org/bwindels/breadcrumbs
Labs feature: recent room breadcrumbs
2019-02-13 09:16:40 +01:00
Bruno Windels
240dc3c1cc
Merge pull request #2612 from matrix-org/bwindels/roomlistlag
Fix: roomlist reordering lags
2019-02-13 09:15:46 +01:00
Bruno Windels
bfdf1251e8 only wrap e2e icon in button if there is a click handler 2019-02-12 19:59:31 +01:00
Bruno Windels
5e298dc58d only show member e2e icon in encrypted rooms 2019-02-12 19:42:17 +01:00
Bruno Windels
158e949165 add context menu option to show "event e2e info dialog" 2019-02-12 19:10:42 +01:00
Bruno Windels
08272bc75e make e2e icons clickable again 2019-02-12 18:58:02 +01:00
David Baker
6c1ed57b70 flag todo 2019-02-12 17:53:00 +00:00
Bruno Windels
2f345401c4 show unknown devices dialog when clicking e2e warning in room header 2019-02-12 18:43:28 +01:00
Bruno Windels
3b10b8042a restyle unknown devices dialog 2019-02-12 18:34:35 +01:00
David Baker
9ec00f8d9b Change text in e2e UX to new copy 2019-02-12 16:01:38 +00:00
Bruno Windels
f189ff54a8 hide delete & cancel button on stickers are they weren't visible before 2019-02-12 17:01:05 +01:00
Bruno Windels
229d905835 copyright 2019-02-12 12:21:40 +01:00
Bruno Windels
2315e4bfb4 add animation when adding a room 2019-02-12 12:16:56 +01:00
Bruno Windels
735c9d1121 hide breadcrumbs when collapsed 2019-02-12 11:31:50 +01:00
Bruno Windels
5efd92f3ec make rooms come in from left rather than the right 2019-02-12 11:26:46 +01:00
Bruno Windels
aaea40a93d add breadcrumbs component 2019-02-12 11:04:25 +01:00
Bruno Windels
7c72fddf80 Merge branch 'develop' into bwindels/roomlistlag 2019-02-11 17:06:16 +01:00
Bruno Windels
ab6535b135 lint 2019-02-11 16:27:29 +01:00
Bruno Windels
fbc0bbfb6f clear hover flag after 1000ms of not moving the mouse
as a fix for #8184
2019-02-11 16:17:15 +01:00
Bruno Windels
b6aa72da55 update RoomTile notificationCount through props so updates are consistent 2019-02-11 15:40:17 +01:00
David Baker
742af81224
Merge pull request #2594 from matrix-org/dbkr/dont_verify_restore
Prompt to restore backup rather than verify
2019-02-08 17:49:04 +00:00
Bruno Windels
8fdb94911c header doesn't have a room yet while joining 2019-02-08 17:35:49 +00:00
David Baker
9b4a6cf442 Make prettier 2019-02-08 16:27:25 +00:00
Travis Ralston
8cdfdd2e24 Merge branch 'develop' into travis/render-join-rules 2019-02-08 09:24:07 -07:00
Bruno Windels
2eff03ba78 fix whitespace 2019-02-08 12:03:58 +00:00
David Baker
ac98da4a8a Prompt to restore backup rather than verify
Direct the user to restore the backup in order to both get the keys
out of the backup and start putting them in.

Also hide the advanced key backup stuff in a diclosure.
2019-02-08 11:51:22 +00:00
Travis Ralston
5d4406cbab Render join rules and guest access changes in the timeline
Fixes https://github.com/vector-im/riot-web/issues/8435
2019-02-07 12:14:58 -07:00
Bruno Windels
e8533beafb guard custom tags with feature flag 2019-02-07 18:07:30 +00:00
David Baker
b7fd1336de
Merge pull request #2532 from boeserwolf/boeserwolf/get-set-topic
Extend slash command '/topic' to display the room topic
2019-02-07 13:45:59 +00:00
Bruno Windels
87ddb8a453
Merge pull request #2575 from matrix-org/bwindels/customtags
Bring back custom tags, also badges on communities
2019-02-07 11:37:17 +00:00
Bruno Windels
1a1f8bdf82 fix wrong way of unregistering from store 2019-02-06 14:24:17 +00:00
Bruno Windels
414fffba3f only show selected custom tags in room list 2019-02-05 17:38:36 +00:00
Travis Ralston
eac50aa800 Remove old user and room settings
This takes out the old user and room settings, replacing the paths with the new dialog editions. The labs setting has been removed in order to support this change.

In addition to removing the old components outright, some older components which were only used by the settings pages have been removed. The exception is the ColorSettings component as it has a high chance of sticking around in the future.

Styles that were shared by the settings components have been broken out to dedicated sections, making it easier to remove the old styles entirely.

Some stability testing of the app has been performed to ensure the app still works, however given the scope of this change there is a possibility of some broken functionality.
2019-02-04 13:40:21 -07:00
Bruno Windels
f029aad9fa rename to getLayout 2019-02-04 18:38:31 +00:00
Bruno Windels
d30ff13c18 pass the layout to the resizer as a lamba to avoid having the wrong layout when filtering 2019-02-04 15:09:44 +00:00
Travis Ralston
8307af6871
Merge pull request #2563 from matrix-org/travis/remove-e2e-beta-dialog
Remove warning about encryption being beta
2019-02-01 15:12:25 -07:00
Bruno Windels
45e982ac13
Merge pull request #2557 from matrix-org/bwindels/e2eicons
Add e2e icon to room header/composer/member info, more ...
2019-02-01 22:02:28 +00:00
Travis Ralston
016bd028ba Remove warning about encryption being beta 2019-02-01 14:56:29 -07:00
Bruno Windels
ce5e56aaac update icons in member info device section 2019-02-01 17:32:46 +01:00
Bruno Windels
21fe266394 add icon to member info to indicate all devices of a user are trusted 2019-02-01 17:08:09 +01:00
Bruno Windels
88ad780b6b update message e2e icons
also remove encrypted icon as header/composer already indicate encryption
2019-02-01 16:43:12 +01:00
Bruno Windels
2596a0ffc2 linting 2019-02-01 14:35:25 +01:00
Bruno Windels
09c3391dd8 replace existing icon in composer with the new one 2019-02-01 13:40:42 +01:00
Bruno Windels
0cdf3d0898 add icon to room header 2019-02-01 13:40:19 +01:00
Bruno Windels
f2928c184d create warning/verified icon to use in header/composer/member info 2019-02-01 13:39:56 +01:00
Bruno Windels
3c3aa9197c UrlPreviewSettings doesnt have a saveSettings method anymore, which I think is intentional 2019-02-01 11:24:52 +01:00
Bastian
23971b3d0d Refactor to use HtmlUtils for linkifying and sanitizing
Signed-off-by: Bastian <matrix@noxware.de>
2019-01-31 22:36:08 +01:00
Bruno Windels
0cce912cf6
Merge pull request #2519 from matrix-org/bwindels/roomdirectory-makeover
Redesign: room directory makeover
2019-01-29 19:21:42 +00:00
Travis Ralston
a16eb30cbc
Merge pull request #2518 from matrix-org/travis/rver-cap-support
Iterate upon the room upgrade warning bar
2019-01-29 11:29:17 -07:00
Bruno Windels
855dbd7d2b Merge branch 'experimental' into bwindels/roomdirectory-makeover 2019-01-29 18:33:03 +01:00
Bruno Windels
6dc042287e dont allow whitespace in room sub lists while resizing 2019-01-29 17:21:14 +01:00
Bruno Windels
9f1b4ac4cc room directory makeover 2019-01-29 15:34:58 +01:00
Bruno Windels
012e358147
Merge pull request #2515 from matrix-org/bwindels/roomlistjslayout-bisbis
Redesign: switch layout when filtering room sublists
2019-01-29 09:32:32 +00:00
Bruno Windels
529c48d1b0 avoid whitespace and expand all matching section when filtering 2019-01-29 10:01:55 +01:00
Travis Ralston
5948f9bc43 Appease the linter 2019-01-28 18:57:11 -07:00
Travis Ralston
f8de4ba2b0 Iterate upon the room upgrade warning bar
This lessens the warning for unstable-but-not-official versions while still communicating that the version is unstable. In the future, we may want to make this state dismissable.
2019-01-28 17:21:33 -07:00
Bruno Windels
8d1e105b50 add option for whitespace behaviour and handle height 2019-01-28 18:02:36 +01:00
Travis Ralston
a1e3887a74
Merge branch 'experimental' into travis/settings/positive 2019-01-28 08:25:40 -07:00
Bruno Windels
55e0838c82
Merge pull request #2507 from matrix-org/bwindels/roomlistjslayout
Redesign: new layout algorithm for room sublists.
2019-01-28 14:55:31 +00:00
Bruno Windels
0a5e8e6cfe WIP on persisting height across collapse/expand 2019-01-28 14:35:04 +01:00
David Baker
de9b964490 Fix NPE in RoomRecoveryReminder
Also fix a bug introduced in
https://github.com/matrix-org/matrix-react-sdk/pull/2506
where I failed to set the button caption in one case.

Fixes https://github.com/vector-im/riot-web/issues/8216
2019-01-25 17:49:02 +00:00
Bruno Windels
2d2f9712b5 update layout on window resize 2019-01-25 18:48:25 +01:00
David Baker
f6bbfd7e0d New text/caption for key backup by verifying device
https://github.com/vector-im/riot-web/issues/8072
2019-01-25 16:25:15 +00:00
Travis Ralston
cb6f415a05 Be more positive with setting labels
Fixes https://github.com/vector-im/riot-web/issues/6435

This is done through an on-the-fly inverter for the settings. All the settings changed are boolean values, so this should be more than safe to just let happen throughout the SettingsStore. Typically a change like this would be done in the individual handlers (similar to how setting names are remapped to different properties or even different storage locations on the fly), however doing that for this many settings would be a huge nightmare and involve changing *all* the layers. By putting a global "invert this" flag on the setting, we can get away with doing the inversion as the last possible step during a read (or write).

To speed up calculations of the default values, we cache all the inverted values into a lookup table similar to how we represent the defaults already. Without this, the DefaultHandler would need to iterate the setting list and invert the values, slowing things down over time. We invert the value up front so we can keep the generic inversion logic without checking the level ahead of time. It is fully intended that a default value represents the new setting name, not the legacy name.

This commit also includes a debugger for settings because it was hard to visualize what the SettingsStore was doing during development. Some added information is included as it may be helpful for when someone has a problem with their settings and we need to debug it. Typically the debugger would be run in conjunction with `mxSendRageshake`: `mxSettingsStore.debugSetting('showJoinLeaves') && mxSendRageshake('Debugging showJoinLeaves setting')`.
2019-01-24 20:57:40 -07:00
Bruno Windels
636955daef use offsetHeight for consistency with sizer 2019-01-24 16:45:26 +01:00
Bruno Windels
067a861f80 integrate layout/distributor with RoomList 2019-01-24 15:43:49 +01:00
Bruno Windels
45c4ca3183
Merge pull request #2481 from matrix-org/bwindels/showroomsandpeoplewhenempty
Fix: show rooms and people section when empty while filtering
2019-01-23 09:39:17 +00:00
Bruno Windels
2234a691c6
Merge pull request #2480 from matrix-org/bwindels/typingnotifsmallfix
Fix: apparently room can be null here
2019-01-22 17:04:00 +00:00
Bruno Windels
7d4165802c show rooms and people section when empty while filtering 2019-01-22 17:54:04 +01:00
Bruno Windels
1373b2f5e2 apparently room can be null here 2019-01-22 17:34:48 +01:00
Bruno Windels
85b55847e1 missing semicolon 2019-01-22 14:52:22 +01:00
Bruno Windels
689df1b506 copyright 2019-01-22 14:51:11 +01:00
Bruno Windels
5dd5f4f1dc add JumpToBottomButtom component 2019-01-22 14:49:04 +01:00
Bruno Windels
3c8bd3fc78
Merge pull request #2456 from matrix-org/bwindels/extendtypingbartiming
Avoid "jumpiness" with inline typing indicator
2019-01-22 11:04:25 +00:00
Bruno Windels
f83411ea0b whitespace 2019-01-22 11:46:02 +01:00
Bruno Windels
0e0128c297 if instead of short-circuit and for readability 2019-01-22 11:37:18 +01:00
Travis Ralston
881353037e
forgot .length somehow
Co-Authored-By: bwindels <bruno@windels.cloud>
2019-01-22 10:34:54 +00:00
Bruno Windels
86357fde51 sort combined typing users by name so order is stable 2019-01-21 17:49:46 +01:00
Bruno Windels
25aa58f29f increase/clear min-height on timeline on new message(s)
depending on whether the typing bar is visible
2019-01-21 17:35:40 +01:00
J. Ryan Stinnett
20e296b20e Convert image URLs in React to require calls
This allows Webpack to insert the proper image URL after builds steps like
adding a hash and so on. The path you supply to `require` is relative to the JS
source file, just like any other would be.
2019-01-17 22:06:49 -06:00
Bruno Windels
2920deaefe better naming 2019-01-17 18:52:22 +01:00
Bruno Windels
146e651dae add comments 2019-01-17 18:52:14 +01:00
Bruno Windels
1db6f1b652 remove logging 2019-01-17 18:32:46 +01:00
Bruno Windels
d787d3d821 clear typing bar when receiving event from user 2019-01-17 18:26:11 +01:00
Bruno Windels
7df8951efa wait to hide typing bar until event arrives or 5s timeout 2019-01-17 16:30:55 +01:00
Bruno Windels
89b576936b
Merge pull request #2448 from matrix-org/bwindels/searchmakeover
Redesign: search makeover
2019-01-17 12:12:26 +00:00
Bruno Windels
8c30d05eb8 Revert "Merge pull request #2348 from matrix-org/bwindels/roomgridview-experimental"
This reverts commit ece5cb1fcc, reversing
changes made to 64a3d2521c.
2019-01-17 10:29:37 +01:00
Bruno Windels
622b11fd91 remove commented out code from shifting things around 2019-01-16 13:04:49 +01:00
Bruno Windels
0229453482
Merge pull request #2440 from matrix-org/bwindels/smarterresizer
Improve room sublist resizing
2019-01-16 10:55:53 +00:00
Bruno Windels
899ee265e3 Merge branch 'experimental' into bwindels/searchmakeover 2019-01-16 11:17:38 +01:00
Bruno Windels
cbe3afaa1f resubmit query when switching between "This Room" / "All Rooms" 2019-01-16 11:13:35 +01:00
J. Ryan Stinnett
d8de607edc Update RoomTile on status change 2019-01-15 10:54:29 -06:00
J. Ryan Stinnett
77cee8e67e Update MemberTile on status change 2019-01-15 10:54:29 -06:00
J. Ryan Stinnett
443198c180 Fix lints in MemberTile.js 2019-01-15 10:54:29 -06:00
J. Ryan Stinnett
c76b273fae Update RoomTiles on custom status change 2019-01-15 10:54:29 -06:00
Bruno Windels
77a62b9174 style search bar 2019-01-15 16:20:04 +01:00
Bruno Windels
1bbf1502ec Merge branch 'experimental' into bwindels/smarterresizer 2019-01-15 10:23:50 +01:00
Bruno Windels
7e395f0fb6 cleanup - part II
reshuffle file structure to make more sense
2019-01-14 20:33:33 +01:00
Bruno Windels
9ecb23ce71 cleanup
- move some methods to ResizeItem subclass
- allow distributor to instanciate sizer and resizeitem it needs
  through static factory methods, instead of passing in another ctor
  a distributor can only function with the right item and sizer anyways.
- use consistent import/export style
- remove obsolete code
2019-01-14 20:24:54 +01:00
David Baker
e0bc0494fa
Merge pull request #2433 from matrix-org/travis/rver/7992
Recalculate the visible rooms when rooms are upgraded
2019-01-11 10:37:32 +00:00
David Baker
93cf281ff9
Merge pull request #2432 from matrix-org/travis/rver/7998
Navigate to the upgraded room's create event where possible
2019-01-11 10:35:30 +00:00
Travis Ralston
33eef6f5ac
Merge pull request #2428 from matrix-org/travis/rver/7991
Set which servers to try and join upgraded rooms through
2019-01-10 16:28:11 -07:00
Travis Ralston
7d4b6add2c Recalculate the visible rooms when rooms are upgraded
We also do this when they are created just in case we missed the tombstone event.

Fixes https://github.com/vector-im/riot-web/issues/7992
2019-01-10 15:43:22 -07:00
Travis Ralston
b09219fe33 Navigate to the upgraded room's create event where possible
Fixes https://github.com/vector-im/riot-web/issues/7998
2019-01-10 15:29:12 -07:00
Travis Ralston
e24d3cd671 Render a tile for tombstone events
Fixes https://github.com/vector-im/riot-web/issues/7997

This isn't super elegant, but it also provides some amount of utility for people. As users might leave the old room, it might be useful to see when exactly a room was upgraded. We should fix the underlying cause for infinite back pagination though.
2019-01-10 15:15:45 -07:00
Travis Ralston
cec9c908fc Set which servers to try and join upgraded rooms through
Fixes https://github.com/vector-im/riot-web/issues/7991
2019-01-10 14:33:46 -07:00
David Baker
fc346b2766
Merge pull request #2423 from matrix-org/dbkr/lint_messagecomposerinput
Fix lint errors in MessageComposerInput
2019-01-10 18:33:52 +00:00
Bruno Windels
92b9a8cc1f persist cleared size sublists 2019-01-10 18:40:26 +01:00
Erik Johnston
cbf9ff6aee Merge branch 'experimental' of github.com:matrix-org/matrix-react-sdk into erikj/state_counters 2019-01-10 16:56:47 +00:00
Erik Johnston
fa6b33d629 Only update component state when feature is enabled 2019-01-10 16:54:08 +00:00
David Baker
9903c61a21 Fix lint errors in MessageComposerInput
and remove from ignored files

Missed a load of the async arrows functions when changing them because
they were in the ignored files, so trying to chip away at this.

A lot of these were unused imports / variables. Probably the only
interesting one was a 'this' in a non-member function which I've moved
to be a member function.
2019-01-10 09:41:26 +00:00
David Baker
3555b02f34 Merge remote-tracking branch 'origin/experimental' into dbkr/fix_recovery_reminder_cancel 2019-01-10 09:39:57 +00:00
David Baker
b9719abbc2 Oops, missed some asyncs 2019-01-09 19:36:34 +00:00
David Baker
f269b5fbbc Fix spaceless async in ignored files too 2019-01-09 19:14:30 +00:00
David Baker
7381879e3a Fix a few things with cancelling recovery reminder
* Put a cancel button on the first page of the create key backup
   dialog
 * Move settings logic into the room reminder: I know this is moving
   logic *into* a view but RoomView is quite heavyweight as it is.
 * Give the recovery reminder an explicit 'onDontAskAgainSet' rather
   than onFinished which was getting called with false when the last
   screen of the dialog was closed with the cancel 'x' rather than
   the 'close' button.

https://github.com/vector-im/riot-web/issues/8066
2019-01-09 16:27:41 +00:00
Bruno Windels
254427461d fix PR feedback 2019-01-09 12:48:13 +01:00
Erik Johnston
07c2010cce Use state rather than forceUpdate 2019-01-08 11:14:31 +00:00
Bruno Windels
56726ba8e5 fix lint 2019-01-08 12:10:42 +01:00
Bruno Windels
7227049c2a add right panel toggle button to room header when in grid 2019-01-08 12:05:39 +01:00
Erik Johnston
4c204e88be Add feature flag for counters 2019-01-07 13:52:13 +00:00
Erik Johnston
712241d710 Add simple state counters to room heading 2019-01-07 13:52:13 +00:00
Bruno Windels
290dc9d8fb Merge branch 'experimental' into bwindels/roomgridview-experimental 2019-01-07 14:17:57 +01:00
Travis Ralston
5a2113e1a9 Fix a comparison bug in ordering the MemberList 2019-01-03 21:56:19 -07:00
Travis Ralston
77dfba8a22 Add unit tests for MemberList
Particularly the ordering of the tiles.
2019-01-03 21:55:52 -07:00
Travis Ralston
cc8fa7911b Merge remote-tracking branch 'origin/experimental' into travis/fix-memberlist-order 2019-01-03 20:01:28 -07:00