Kegan Dougal
afbb451d4a
Merge branch 'develop' into kegan/guest-access
2016-01-06 13:59:33 +00:00
Matthew Hodgson
8c1bb90347
add fixme
2016-01-06 02:41:10 +00:00
Matthew Hodgson
f499c60b12
sundry PR feedback
2016-01-06 02:29:08 +00:00
Matthew Hodgson
44a0fa19ae
comment /tint
2016-01-06 02:12:53 +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
Matthew Hodgson
9e8daba8d7
Merge branch 'develop' into matthew/dynamic-svg
2016-01-06 01:11:34 +00:00
Richard van der Hoff
75302b1f97
Factor out a separate SearchResultTile
2016-01-05 17:56:59 +00:00
Kegan Dougal
d729dee31d
Make the settings page load for guests. Add checkboxes for guest r/w
2016-01-05 17:34:25 +00:00
Richard van der Hoff
a2b7c9ba96
RoomHeader: Make 'undefined' check more explicit
2016-01-05 15:57:58 +00:00
Richard van der Hoff
4730179c26
Fix slight mis-merge
...
We need to return 'true' from our promise of search result pagination.
Also inline _backPaginateSearch which mostly served to confuse, and use
debuglog instead of checking DEBUG_SCROLL
2016-01-05 15:51:16 +00:00
Richard van der Hoff
583d35e39f
Merge branch 'develop' into rav/new_search_api
...
Conflicts:
src/components/structures/RoomView.js
2016-01-05 15:38:30 +00:00
Richard van der Hoff
6c99fab3dd
Highlight the search term in search results
...
Sometimes we don't get the search term back in the highlights list, so make
sure we add it.
2016-01-05 15:28:32 +00:00
Matthew Hodgson
a9f7bf63ff
spell out we're doing 3PID invites
2016-01-05 14:24:36 +00:00
Richard van der Hoff
355cabb7ee
Merge pull request #70 from matrix-org/rav/scrollpanel_promises
...
Make ScrollPanel keep track of when fill requests are happening
2016-01-05 13:52:04 +00:00
Kegan Dougal
8bd4fdbd5a
Don't set presence
2016-01-05 13:24:05 +00:00
Kegan Dougal
ae7b2d54bb
Merge branch 'develop' into kegan/guest-access
2016-01-05 11:39:36 +00:00
Kegsay
a6e735dbde
Merge pull request #76 from matrix-org/kegan/bugfix-read-receipt
...
Null guard getMember
Fixes https://github.com/vector-im/vector-web/issues/566
2016-01-05 11:26:04 +00:00
Richard van der Hoff
2b169b06f5
Make ScrollPanel.isAtBottom more reliable
...
Given we want to use isAtBottom to figure out whether to show 'unread messages'
counts, we ought to return the current scroll state, rather than the saved one.
This fixes vector-im/vector-web#576
2016-01-05 11:02:18 +00:00
Matthew Hodgson
aa1012b127
oops
2016-01-05 03:59:04 +00:00
Matthew Hodgson
9cf49eb62d
oops, forgot this
2016-01-05 03:54:44 +00:00
Matthew Hodgson
0e98764d82
oops, no double classNames
2016-01-05 03:51:00 +00:00
Matthew Hodgson
001dc8612b
support fixing up dynamically loaded SVGs
2016-01-05 03:34:52 +00:00
Matthew Hodgson
555abdae30
wire up Tinter.js
2016-01-05 00:46:52 +00:00
Richard van der Hoff
e177263d9f
Address review comments
...
Minor fixes post-review
2016-01-04 16:54:27 +00:00
Richard van der Hoff
b5eae891b4
Address review comments
...
Make onFillRequest always return a promise
2016-01-04 16:28:32 +00:00
Richard van der Hoff
722c7033bc
Merge pull request #73 from matrix-org/rav/on_highlight_click
...
Expose onHighlightClick on the event tiles
2016-01-04 15:23:45 +00:00
Richard van der Hoff
89fcf019e1
Merge branch 'develop' into rav/scrollpanel_promises
...
Conflicts:
src/components/structures/RoomView.js
2016-01-04 12:56:39 +00:00
Kegan Dougal
75ad96c8ba
Null guard getMember
2016-01-04 10:11:42 +00:00
Matthew Hodgson
3009da0b39
move title attributes to the div
2016-01-03 22:34:56 +00:00
Matthew Hodgson
4f915d622e
switch SVGs from imgs to objects
2016-01-03 22:30:52 +00:00
Matthew Hodgson
640aa45956
fix comedy bug where dates in timestamps were spectacularly wrong
2016-01-03 00:40:05 +00:00
Matthew Hodgson
441a9540ca
sync CSS classnames with current react component names
2016-01-03 00:11:11 +00:00
Matthew Hodgson
15f19be408
highlight case insensitively
2015-12-28 03:14:50 +00:00
Matthew Hodgson
970bc84bb6
explicitly rejoin parted rooms
2015-12-28 02:58:40 +00:00
Matthew Hodgson
424540e57a
fix NPE if messagePanel isn't yet defined
2015-12-28 02:40:17 +00:00
Matthew Hodgson
50ac0ab4cf
wire up RoomAlias's homeserver as intended
2015-12-28 02:36:28 +00:00
Matthew Hodgson
bd498b47b3
fix 'this' scoping bug that could never have worked...
2015-12-28 02:36:18 +00:00
Richard van der Hoff
93e7f90ae4
ScrollPanel: implement forward-fill
2015-12-24 14:30:49 +00:00
Richard van der Hoff
f2a24521dc
Make ScrollPanel keep track of when fill requests are happening
...
The dance to avoid doing repeated fill requests on every update is common, so
add it to ScrollPanel. Let onFillRequest return a promise, which prevents any
updates until it completes.
2015-12-24 14:15:50 +00:00
Richard van der Hoff
b0adb1945f
Expose onHighlightClick on the event tiles
2015-12-24 13:51:14 +00:00
Richard van der Hoff
cc72f7ec24
Use new searchRoomEvents and backPaginateRoomEventsSearch methods
...
MatrixClient now exposes higher-level search APIs, so use them.
2015-12-24 13:33:58 +00:00
Kegan Dougal
103b0a03b1
Hotfix for tab press bug
...
The bug was that *sometimes* typing in some letters then
pressing tab would flash red and not auto-complete. This was
happening because nextMatchedEntry was being called with 0
because the state of inPassiveMode was wrong.
2015-12-24 11:56:50 +00:00
Kegsay
b941904078
Merge pull request #33 from matrix-org/matthew/settings
...
WIP experiment of turning UserSettings controller into UserSettingsStore
2015-12-24 10:54:26 +00:00
Kegan Dougal
5d490841bc
Review comments
2015-12-24 10:50:47 +00:00
Kegan Dougal
5286ec170f
Wrangle CSS to get avatar in right place
2015-12-24 09:20:16 +00:00
Richard van der Hoff
b4436df5e4
Refactor bodyToHtml, and allow onHighlightClicked
...
Factor out a Highlighter class to avoid passing round the static state
everywhere.
Add an optional 'opts' argument which can take an 'onHighlightClick' member.
2015-12-23 23:50:35 +00:00
Kegan Dougal
05d1d7c82d
Better error message for failing to set avatars with no connection
2015-12-23 17:30:25 +00:00
Kegan Dougal
abb170ebde
Keep one source of truth (the Notifier) when toggling notification state. Fixes notifications.
2015-12-23 17:06:30 +00:00
Kegan Dougal
a279dce027
Get avatar display and uploads working
2015-12-23 16:52:59 +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
72b8cf1be2
Refactor ChangePassword to get it working. Add 'Account' section because trying to make ChangePassword divs part of the same table as the display name is nigh impossible. Feels okay though
2015-12-23 15:38:28 +00:00
Kegan Dougal
6295cf2ec9
Merge branch 'develop' into matthew/settings
2015-12-23 14:19:42 +00:00
Kegan Dougal
fb151b35c8
Remove debug logging
2015-12-23 14:17:56 +00:00
Kegan Dougal
e657b40a7e
Use ChangeDisplayName for implict display name saving on enter
2015-12-23 14:14:25 +00:00
Kegan Dougal
82ff5c5e52
Factor out handleTabPress and remove passive flag onKeyDown
2015-12-23 13:48:44 +00:00
Kegan Dougal
b80015c69c
More comments; remove redundant if statement
2015-12-23 13:33:44 +00:00
Kegan Dougal
1af5018597
General code cleanup / tweaks / fixes
...
- Swap Phases enum to be using string literals
- Swap roomId prop on UserSettings for a more sane onUserSettingsClose and
make MatrixChat responsible for swapping the room.
- s/then/done/ when terminating Promise chains to avoid subtle errors.
- Rejig render() of UserSettings so we don't need to indent quite so much.
2015-12-23 11:47:56 +00:00
Kegan Dougal
095f82feee
Remove boolean returns
2015-12-23 10:35:54 +00:00
Kegan Dougal
7e1b107f4c
Review comments
2015-12-23 09:34:34 +00:00
Kegan Dougal
810e8993d6
Merge branch 'develop' into kegan/tab-complete
2015-12-22 17:44:04 +00:00
Kegan Dougal
62c378a619
Sort out the mess that is Javascript's \b - Fixes vector-im/vector-web#189
...
\b is *the worst*. From MDN:
Note: JavaScript's regular expression engine defines a specific set of
characters to be "word" characters. Any character not in that set is considered
a word break. This set of characters is fairly limited: it consists solely of
the Roman alphabet in both upper- and lower-case, decimal digits, and the
underscore character. Accented characters, such as "é" or "ü" are,
unfortunately, treated as word breaks.
We fix this by matching on whitespace instead, but then need to tweak the
replace() code since that bluntly replaces the entire match (which now includes
whitespace). It all works now and I can happily tab-complete non-ascii names.
2015-12-22 17:38:24 +00:00
Kegan Dougal
452c265e6a
Implement automatically entering tab complete mode after a short delay
...
This seems to work. Manually tested for sanity.
2015-12-22 16:49:58 +00:00
Kegan Dougal
460f68caef
Move RoomMember[] -> MemberEntry[] conversion somewhere sensible
...
This is required for automatically entering tab-complete mode because
onKeyDown is NOT called in that case, so we need to make sure to have a
membership list hanging around.
2015-12-22 15:38:23 +00:00
Richard van der Hoff
cdd539c3cd
Factor out a separate 'ScrollPanel'
...
Create an intelligent scrolling list, which doesn't care what it contains, to
try and clean up some of the logic in RoomView.
2015-12-22 15:18:50 +00:00
Kegan Dougal
a20cabb06f
Merge branch 'develop' into kegan/tab-complete
2015-12-22 15:16:39 +00:00
Kegan Dougal
e077517faf
Ignore more keys when determining if the user is typing
...
Specifically ignore CTRL, ALT, META, SHIFT, WINDOWS.
2015-12-22 15:13:11 +00:00
David Baker
05d9e1261c
Merge remote-tracking branch 'origin/develop' into notif_sync
2015-12-22 14:47:11 +00:00
Kegan Dougal
e541ddb060
Auto-complete clicked suggestions
2015-12-22 11:14:36 +00:00
Richard van der Hoff
cc90f4c0c6
Merge pull request #64 from matrix-org/rav/fix_date_separator
...
Fix bug with date separator flashing up on scrollback
2015-12-22 11:05:26 +00:00
Richard van der Hoff
360806a8f1
RoomView: add whitespace for disambiguation
2015-12-22 11:04:39 +00:00
Richard van der Hoff
6b07de05f3
Merge pull request #65 from matrix-org/rav/marker_at_top_of_search_results
...
Add a 'top-of-search' marker
2015-12-22 11:00:00 +00:00
Kegan Dougal
0dbb8d5294
Use MemberAvatar to generate image JSX. Split out entries from tab-complete logic
2015-12-22 10:00:30 +00:00
Matthew Hodgson
ea2405ab3a
escape double-slash commands
2015-12-22 00:57:57 +00:00
Matthew Hodgson
618978d955
add appropriate CSS for the TabCompleteBar
2015-12-22 00:47:04 +00:00
Kegan Dougal
c8aaee46d7
Mark a TODO for timeout handling
2015-12-21 17:58:36 +00:00
Kegan Dougal
ba63b5dfff
Add image URLs to TabComplete.Entry objects
2015-12-21 17:28:04 +00:00
Kegan Dougal
4e79c3c4c8
Add allowLooping opt for tab completion. Make peeking work.
2015-12-21 17:16:49 +00:00
Kegan Dougal
ab0a277d94
Rewrite tab-complete logic to allow peeking ahead
...
This primarily means pre-calculating the list of things we'll be looping over
and then returning matches from this list. Make the regex match be more generic
rather than sorta-kinda-user-id-like-ish.
2015-12-21 16:35:39 +00:00
Kegan Dougal
41d4c1d14e
Add TabComplete.Entry so we can render images AND text(!) - Add peek() option, all broken.
2015-12-21 14:34:25 +00:00
Kegan Dougal
400b5196bb
Add TabCompleteBar. Hook up display to whether we are currently tab completing.
2015-12-21 14:11:34 +00:00
Richard van der Hoff
7c285f9ad0
Add a 'No results' marker when there are no search results at all.
...
Also reword the 'no more results' marker.
2015-12-21 13:46:27 +00:00
Matthew Hodgson
b9ba4475b8
Merge branch 'develop' into matthew/settings
2015-12-21 13:09:33 +00:00
David Baker
6ea3f21a8e
Favicon badges
2015-12-21 12:55:13 +00:00
Richard van der Hoff
765e5bdeb1
Add a 'top-of-search' marker
...
Ugly as hell, pending better suggestions.
This fixes https://github.com/vector-im/vector-web/issues/547
2015-12-21 12:39:10 +00:00
Kegan Dougal
26dc3cc553
Push up instantiation of TabComplete to RoomView
...
RoomView is the parent component which creates MessageComposer AND the status
bar. By making RoomView instantiate TabComplete we can scope instances
correctly rather than relying on singleton behaviour through dispatches. This
also makes communication between status bar and the MessageComposer infinitely
easier since they are now sharing the same TabComplete object.
2015-12-21 10:59:10 +00:00
Richard van der Hoff
afadb23f89
Fix bug with date separator flashing up on scrollback
...
Refactor the event-tile generation loop to go forwards rather than backwards,
which makes it easier to figure out whether we are displaying a continuation of
the previous event, and whether we need a date separator.
Also only display the date separator at the top of the room if there's no more
scrollback to be shown.
This fixes vector-im/vector-web#431
2015-12-21 10:49:00 +00:00
Kegan Dougal
c6d02b2c26
Move tab-complete logic out from MessageComposer
...
Moved to a `TabComplete` class. Make it more generic (list of strings rather
than RoomMembers) and sort the member list by last_active_ago. Everything still
seems to work.
2015-12-21 10:38:37 +00:00
Richard van der Hoff
ff6d9454fd
Merge pull request #63 from matrix-org/rav/paginate_search
...
Pagination for search results
2015-12-21 09:16:42 +00:00
David Baker
5f6fe74ca8
Highlight status is now taken from the server's unread notif count
2015-12-18 17:51:17 +00:00
Kegan Dougal
d1baf5854c
Only display the MessageComposer if you're joined and not viewing search results
2015-12-18 17:23:46 +00:00
Matthew Hodgson
fa99c1fc59
make it clear result count is approx
2015-12-18 17:18:08 +00:00
Kegan Dougal
f0ff62166b
Remove bottommost prop - can't DND on the bottom list anymore
2015-12-18 17:13:26 +00:00
Kegan Dougal
a2872deb53
Merge branch 'develop' into kegan/archived-rooms
2015-12-18 16:59:25 +00:00
Kegan Dougal
461e3f46dc
Show an ErrorDialog when failing to forget a room
2015-12-18 16:56:37 +00:00
Richard van der Hoff
44c42394ae
Fix scroll for search results
...
Make sure that we save scroll position when searching, and use it to preserve
offset when backfilling.
2015-12-18 16:42:46 +00:00
Matthew Hodgson
831aaec457
Merge pull request #57 from matrix-org/matthew/inbound-calls
...
Position the inbound call box correctly
2015-12-18 15:59:18 +00:00
Kegan Dougal
c3bd81b83a
Make rooms the user is banned in be treated as a joined room for position in room list
...
This is so users can still find the room they've been expelled from, rather than
have it drop to the Historical section.
2015-12-18 15:56:27 +00:00
Kegan Dougal
711fdd25af
Improve perf of refreshing room list. Show spinner when loading left rooms.
...
When the JS SDK encounters a new room it will emit a flurry of events for things
like state and room members. Refreshing the room list on each event is bad for
performance. This is okay initially because the room list is only shown after
the first sync, but when getting archived rooms it locks up for 15-30s as it
thrashes. Add a 1s cap to refreshRoomList() which means that it will refresh
*AT MOST* once every second. If it has been >1s since the last refresh it will
immediately refresh. If it has been <1s it will wait the difference.
2015-12-18 15:13:59 +00:00
Matthew Hodgson
08ffadc2c4
unbreak
2015-12-18 14:04:39 +00:00
Kegan Dougal
22635f251d
Call through to syncLeftRooms when the archived header is clicked
2015-12-18 11:55:43 +00:00
Richard van der Hoff
ec32347f43
Request more search results when scroll hits top of window
2015-12-18 11:13:32 +00:00
Richard van der Hoff
4b271a332e
Refactor the search stuff in RoomView
...
* factor out the call to MatrixClient.search to a separate _getSearchBatch (so
that we can reuse it for paginated results in a bit)
* Don't group cross-room searches by room - just display them in timeline
order.
2015-12-18 11:11:41 +00:00
Richard van der Hoff
9931ef1971
Merge pull request #61 from matrix-org/rav/fix_postinvite_dnd
...
Initialise the messagepanel correctly after accepting an invite
2015-12-18 10:32:24 +00:00
Richard van der Hoff
d6c208a275
Reinstate the DnD event listener removals, with comments
2015-12-18 10:19:07 +00:00
Matthew Hodgson
4baf9d5589
Fix paths
2015-12-18 00:40:01 +00:00
Matthew Hodgson
e2ae2dd199
merge stuff from vector
2015-12-18 00:37:56 +00:00
Matthew Hodgson
272d7362fb
Merge branch 'develop' into matthew/settings
2015-12-18 00:14:36 +00:00
Matthew Hodgson
0f82b72e07
lost copyright
2015-12-18 00:13:57 +00:00
Matthew Hodgson
f30b7eec2f
Merge branch 'develop' into matthew/settings
2015-12-18 00:11:43 +00:00
Richard van der Hoff
e0d05d4f4b
Initialise the messagepanel correctly after accepting an invite
...
This should fix vector-im/vector-web#538 .
I'm sorry.
2015-12-17 22:07:56 +00:00
Richard van der Hoff
6ee0c72340
Merge pull request #58 from matrix-org/rav/yet_more_scroll_fixes
...
Fix issue with rooms not scrolling down when new events arrive
2015-12-17 17:40:41 +00:00
Kegan Dougal
8e4d0c0be7
Merge branch 'develop' into kegan/archived-rooms
2015-12-17 17:07:18 +00:00
Kegsay
498990b376
Merge pull request #59 from matrix-org/kegan/3pid-inv
...
Finish 3PID invites impl
2015-12-17 16:54:29 +00:00
Kegan Dougal
12943b11fc
Full Stop.
2015-12-17 16:40:46 +00:00
Matthew Hodgson
478ca91b4f
s/Conversations/Rooms/ as per https://github.com/vector-im/vector-web/issues/535
2015-12-17 16:27:56 +00:00
Kegan Dougal
17a8eb0109
Display m.room.third_party_invite events. Display sensible text transitions.
2015-12-17 15:48:14 +00:00
Kegan Dougal
6e324a0dd1
Whoops, didn't mean to add this
2015-12-17 15:12:09 +00:00
Kegan Dougal
32bd9d155c
Pass a new prop 'startingQueryParams' to pluck out the email from the URL
...
This is preferable to doing the way other QPs are passed (secret, etc) because
the link in the email wants to look like "#/room/<room_id_or_alias>" for guest
read-access (only bouncing you to /login if that room is not readable by guests).
This is hard to do in the current arch because we don't preserve QPs on /room
paths, and we do conditional executions depending on if it is a room ID or
alias. Rather than threading through the email in each section and creating
a fragile mess, just pass the *starting* set of query parameters through to
MatrixChat which can then do the Right Thing when the time comes.
2015-12-17 14:56:55 +00:00
Matthew Hodgson
5c999fe1ab
stop the incoming call box from scrolling off the screen
2015-12-17 14:56:09 +00:00
Kegan Dougal
1eeb732625
Supply bind_email=true at registration time - required for 3pid invites to work.
2015-12-17 14:34:45 +00:00
Richard van der Hoff
3ff19dc4db
Fix issue with rooms not scrolling down when new events arrive
...
Remove an optimisation which tried to avoid recalculating the scroll on every
render. The problem is that sometimes, when new events, the number of event
tiles remains the same, but we still need to do a scroll, because the height of
the message list changes.
The optimisation was a bit of a waste of time anyway - the actual render will
always be much more difficult than recalculating the scroll position.
2015-12-17 14:14:26 +00:00
Matthew Hodgson
bb184c12a1
fix NPE
2015-12-17 11:56:41 +00:00
Matthew Hodgson
d979a028a5
position the inbound call box correctly, and fix various issues with when the video preview and callview are shown
2015-12-17 02:49:09 +00:00
Matthew Hodgson
4327a2302d
spell out affected versions
2015-12-16 18:05:15 +00:00
Richard van der Hoff
dc13b944bc
Hacky fixes to jumpy scroll when backfilling
...
Keep resetting our scroll offset until the DOM believes us. Hopefully this will
fix vector-im/vector-web#528 .
2015-12-16 17:57:32 +00:00
Kegan Dougal
e8f82527d1
Listen for room deletions and refresh the room list when it happens
2015-12-16 16:27:46 +00:00
Kegan Dougal
f7aa8be1c1
Add a forget button. Add left rooms to the "historical" tab.
...
Call /forget when the forget button is clicked. Number of shortcomings:
- We need to lazy load the historical list (atm we never get the list of left
rooms; things only go into that list if you leave the room whilst running)
- Once a room is forgotten we need to physically nuke it from the JS SDK.
- Need icon for forget room.
2015-12-16 16:06:29 +00:00
Kegsay
186b727303
Merge pull request #54 from matrix-org/kegan/hide-fs-users
...
Do not show conf user join/parts
2015-12-16 13:56:55 +00:00
Richard van der Hoff
f24b7ba67c
use RoomView.ScrollToBottom instead of reimplementing it
2015-12-16 13:31:36 +00:00
Kegan Dougal
09e0d10d32
Do not show conf user join/parts
2015-12-16 11:54:29 +00:00
Kegsay
8aaef34319
Merge pull request #53 from matrix-org/kegan/dont-notify-immediately
...
Don't notify for events until the SDK is PREPARED
2015-12-15 17:07:09 +00:00
Kegan Dougal
6aefb3be90
Don't notify for events until the SDK is PREPARED else you can notify for stale events
2015-12-15 17:01:16 +00:00
Matthew Hodgson
8ebacc572b
apply class to typing text to fix typing notifs
2015-12-15 15:59:31 +00:00
Kegan Dougal
28908c2edb
Auto-focus username box
2015-12-15 15:27:56 +00:00
Kegan Dougal
a670a7e4c4
Don't spam logging
2015-12-15 14:23:58 +00:00
Matthew Hodgson
a8d7810bfc
add fullscreen button back
2015-12-15 00:01:47 +00:00
Matthew Hodgson
39c628d4a1
implement the 'correct' voip calling design
2015-12-14 23:37:46 +00:00
Kegan Dougal
4488844ad9
Use getSender() instead of gut wrenching event.user_id for v2 compat
2015-12-14 15:36:34 +00:00
Kegan Dougal
0f62388d3c
Don't re-render after each /sync call
2015-12-14 11:32:22 +00:00
Richard van der Hoff
68cdff1159
Fix 'Create room' and 'Settings' buttons
...
These buttons were broken by PR #49... wire them up correctly.
2015-12-14 11:07:59 +00:00
Matthew Hodgson
ead6d5a25e
backfill on accepting invites
2015-12-13 15:18:44 +00:00
Matthew Hodgson
5ce917ba84
merge in develop
2015-12-13 14:47:53 +00:00
Matthew Hodgson
6ad6ed2a49
factor out room-leaving code into MatrixChat for now, and add a dedicated leave button in to the header bar for now
2015-12-13 13:49:28 +00:00
Matthew Hodgson
43ab6074c9
sacrifice a herd of goats to correctly size the remote video element when on a call. turns out flexbox isn't smart enough to let us say that the minimum height of the element should be the (scaled) intrinsic height of the video stream, and that the max height should be ~80% of the height of the normal timeline. so we fudge it with JS instead, which turns out to work fine. after a lot of poking at flexbox i'm fairly convinced this is a fundamental limitation: the implicit height of the video tag can only be used as the minimum height of the auxPanel if you give up on the flexbox shrink/grow being able to constrain it too. there's a chance I made a mistake, but whatever, this works well enough.
2015-12-13 04:32:48 +00:00
Matthew Hodgson
bf70376d16
hoverover for full name of room
2015-12-12 17:29:53 +00:00
Matthew Hodgson
b78add39f4
fix d&d ui
2015-12-12 16:35:40 +00:00
Richard van der Hoff
0beafeddb9
Use the 'muted' icon when the mic is muted during a call
2015-12-11 15:01:16 +00:00
Richard van der Hoff
0d47495e04
RoomView: Remove another redundant unreadMessageCount reset
...
There's never any need to reset the unreadMessageCount in ComponentDidUpdate,
as an update can never cause there to be *fewer* unread messages. Instead we
rely on the reset in onMessageListScroll.
2015-12-11 11:04:12 +00:00
Matthew Hodgson
3b245f0131
discard stale search results
2015-12-11 03:22:44 +00:00
Matthew Hodgson
af3c43ca76
show result counts
2015-12-11 02:58:59 +00:00
Matthew Hodgson
f38c71d34b
update the UI whilst searching
2015-12-11 02:25:33 +00:00
Matthew Hodgson
77464c669f
switch to fake tag names for fake tags, and highlight new invites
2015-12-11 00:40:28 +00:00
Richard van der Hoff
ee0f0e332a
Remove redundant 'waiting_for_paginate'
2015-12-10 22:08:35 +00:00
Richard van der Hoff
a863839063
Don't try to fiddle with the scroll state in search mode
2015-12-10 22:04:52 +00:00
Richard van der Hoff
669fae48ea
Merge remote-tracking branch 'origin/develop' into rav/preserve_room_scroll
2015-12-10 21:53:59 +00:00
Richard van der Hoff
b7699c0544
Save scroll state when swapping to non-room pages too
2015-12-10 21:53:14 +00:00
Richard van der Hoff
d9782b35e1
Fix review comments
...
camelcasing and comments
2015-12-10 21:44:30 +00:00
Richard van der Hoff
1a3fb9aca9
Preserve scroll position when backfilling
...
Save the scroll state whenever the user does a scroll operation, and use that
to update the scroll after a backfill completes.
2015-12-10 21:34:10 +00:00
Richard van der Hoff
a1d88722aa
Avoid kicking off two pagination requests at once
...
Make sure that we don't end up with two concurrent pagination requests by
firing off the second from the completion handler of the first. This ends up
making the code a bit simpler.
2015-12-10 20:53:21 +00:00
Richard van der Hoff
00656fc1dc
Preserve scroll offset when switching rooms
...
When we change rooms, save the scroll offset, and restore the scroll when we
switch back.
Hopefully this fixes https://github.com/vector-im/vector-web/issues/80 .
2015-12-10 16:26:36 +00:00
Erik Johnston
5a1853210e
Handle the fact that newer homeservers return lists rather than dicts
2015-12-10 13:58:06 +00:00
Matthew Hodgson
072130466c
hopefully fix vector-im/vector-web#475
2015-12-08 19:49:16 +00:00
Kegan Dougal
8edfd60b64
Actually use room.name on invites. Fixes #321
2015-12-08 10:21:40 +00:00
Kegan Dougal
b64e5d49cc
Add magic flag to say 'dump pending events to the end'
2015-12-07 15:33:58 +00:00
Kegan Dougal
b110e315ec
Add removeFromQueue function to cancel sending a queued event
2015-12-07 11:36:28 +00:00
Matthew Hodgson
08d7c0232a
svgize images
2015-12-06 22:07:49 +00:00
David Baker
681138678e
Fix bolding
2015-12-04 19:14:14 +00:00
Kegsay
ae615b5c5e
Merge pull request #46 from matrix-org/kegan/ops-level-update
...
Recalculate levels when the member prop is updated.
2015-12-04 16:27:56 +00:00
David Baker
142ac67799
Add a logic class to determine whether an event affects a room's unread count / status & use it
2015-12-04 16:20:05 +00:00
Kegan Dougal
257dc62a73
Recalculate levels when the member prop is updated.
2015-12-04 16:15:55 +00:00
Kegan Dougal
92cf14d5e9
Support registration as a guest
2015-12-04 15:28:35 +00:00
David Baker
29b3b237d5
Refresh room list on timeline event even if it doesn't change highlight status since we still want to update the ordering. Fixes #413 .
2015-12-04 14:24:02 +00:00
David Baker
6a67342d02
Comment + 1
2015-12-04 12:02:54 +00:00
David Baker
141d757a01
Don't recalculate atBottom here - we do it in onScroll and it should only be necessary to do it once. Also remove the magic 150px leeway.
2015-12-04 12:00:55 +00:00
Kegan Dougal
d0ec84fe59
Hook up auto-registration as a guest to MatrixChat.
2015-12-04 11:34:50 +00:00
Kegan Dougal
d52b3149d4
Wire GuestAccess to MatrixClientPeg
2015-12-04 10:37:53 +00:00
David Baker
c0391145e5
Merge pull request #45 from matrix-org/file_uploads
...
Improve file uploads
2015-12-03 10:57:55 +00:00
David Baker
4c2fe55fdc
Don't show the error dialog if the request was canceled. Handle 'request entity too large'.
2015-12-03 10:52:06 +00:00
David Baker
e8f5131ed6
Make file uploads cancelable, make them not go weird if you change rooms, error if they fail and move upload status bar out into its own component.
2015-12-02 18:16:16 +00:00
Matthew Hodgson
aeb8e21b5d
better typing test :D
2015-12-02 17:38:02 +00:00
Kegan Dougal
cd13041b31
Make the X on the desktop notification bar work again
...
See vector-im/vector-web #464 for more info.
2015-12-02 16:35:16 +00:00
Kegan Dougal
91ee5f8a42
Add extra arg isGuest to MatrixClientPeg functions. Add GuestAccess class
...
GuestAccess serves to monitor which rooms are being tracked for guest
purposes
2015-12-02 14:59:37 +00:00
David Baker
6978436b07
Update component index
2015-12-01 18:33:46 +00:00
David Baker
4446f1d781
Merge branch 'develop' into kegan/vector-references
2015-12-01 18:21:44 +00:00
David Baker
d7a00a5a86
Merge branch 'develop' into skindex-nextgen
2015-12-01 18:10:04 +00:00
Kegan Dougal
bb289a4145
Add CustomServerDialog class
2015-12-01 16:49:15 +00:00
Kegan Dougal
673b01267a
Use LoginHeader everywhere
2015-12-01 16:29:58 +00:00
Kegan Dougal
05a6121934
Add default LoginHeader
2015-12-01 16:27:48 +00:00
Kegan Dougal
52f3d7f18b
Add generic LoginFooter. Remove vector reference
2015-12-01 16:12:13 +00:00
David Baker
77b99de46b
Update component index
2015-12-01 15:52:32 +00:00
David Baker
5e2a4fa537
Merge branch 'develop' into skindex-nextgen
2015-12-01 15:48:05 +00:00
Kegan Dougal
636be0c003
Update getComponent paths
2015-12-01 15:45:11 +00:00
Kegan Dougal
726c893663
Merge branch 'develop' into kegan/vector-components
2015-12-01 15:39:15 +00:00
Kegan Dougal
d5819d54db
Fix typos
2015-12-01 15:36:40 +00:00
Matthew Hodgson
4fe2cc54d6
Merge pull request #42 from matrix-org/kegan/controller-merging4
...
Phase 4 controller merging
2015-12-01 15:15:39 +00:00
Kegan Dougal
fe16b221f8
s/vector.im/matrix.org/
2015-12-01 13:48:53 +00:00
Kegan Dougal
784c1b63dc
Move remaining vector molecules to components
2015-12-01 11:19:25 +00:00
David Baker
1de5d68e95
Un-commit accidentally committed file upload stuff
2015-12-01 10:25:35 +00:00
David Baker
1df03aa82a
Remove unintentional logging
2015-12-01 10:20:21 +00:00
Kegan Dougal
1e694da460
Move MatrixChat and login components to react SDK.
...
Removed Modulator as it is no longer necessary in this form. ConferenceHandler
is injected in src/vector/index.js
2015-11-30 18:11:04 +00:00
David Baker
4f8895f160
Copyright header on component index
2015-11-30 18:00:19 +00:00
David Baker
ae8c5bdcb0
better comment & regenerated index
2015-11-30 17:56:01 +00:00
David Baker
ef0cf1f28e
Merge branch 'develop' into skindex-nextgen
2015-11-30 17:34:40 +00:00
David Baker
730b33535a
More WIP component indexing
2015-11-30 17:33:04 +00:00
David Baker
4a144ac03d
WIP of new component indexing
2015-11-30 17:30:32 +00:00
Kegan Dougal
02a71b20a9
Merge and move RoomView to /structures. Add Resend.js from vector.
2015-11-30 17:15:57 +00:00
Matthew Hodgson
c67005c306
switch avatar initial layout to work with Open Sans
2015-11-30 17:15:02 +00:00
Kegan Dougal
f9e38e5326
Move and merge RoomList
2015-11-30 16:55:00 +00:00
Kegan Dougal
f96e7a0dc8
Add UserSettings structure
2015-11-30 15:52:41 +00:00
Kegan Dougal
03485c2fca
Merge branch 'develop' into kegan/controller-merging4
2015-11-30 15:39:14 +00:00
Kegan Dougal
e008b5578d
Move and merge LogoutPrompt
2015-11-30 15:23:16 +00:00
Matthew Hodgson
a8fd1b5d7a
rename message components as per RL discussion this morning
2015-11-30 15:19:43 +00:00
Kegan Dougal
80a235adf9
Move and merge MemberList
2015-11-30 15:13:28 +00:00
Kegan Dougal
945a65f4b5
Move Notifier to src/ since it isn't a component.
2015-11-30 15:04:24 +00:00
Matthew Hodgson
960cc2d6b4
simplify avatar logic slightly
2015-11-30 14:39:42 +00:00
Kegan Dougal
8a98fcd427
Merge branch 'develop' into kegan/controller-merging4
2015-11-30 14:14:41 +00:00
Kegan Dougal
2002af6c7d
Assign a default onFinished call to prevent TypeErrors being thrown.
2015-11-30 14:14:30 +00:00
Kegan Dougal
fcb6db684b
Move and merge QuestionDialog and ErrorDialog
2015-11-30 14:11:04 +00:00
Kegan Dougal
78cfaeb5c3
Merge branch 'develop' into kegan/controller-merging4
2015-11-30 10:56:39 +00:00
Kegan Dougal
cf6b5461cc
Move and merge CreateRoom
2015-11-30 10:55:15 +00:00
Matthew Hodgson
28b85bb226
remove unnecessary zalgo hacks
2015-11-30 01:12:41 +00:00
Matthew Hodgson
96aa42471d
fix messagecomposer layout when switching between rooms on FF
2015-11-30 01:12:32 +00:00
Matthew Hodgson
ba090a6ad5
only dispatch user_activity event if the mouse actually moves (rather than the DOM moving under the mouse)
2015-11-29 15:39:10 +00:00
Matthew Hodgson
bed7d50ab8
reactor the highlighting code to avoid duplication and make it more coherent
2015-11-29 13:00:58 +00:00
Matthew Hodgson
ca6cdfafd3
clean up spurious whitespace
2015-11-29 13:00:37 +00:00
Matthew Hodgson
c96fa7f15d
fix autoplay on chrome and remove loop for m.video
2015-11-29 12:34:01 +00:00
Matthew Hodgson
d6b188751a
s/autoplay/autoPlay/
2015-11-29 03:25:55 +00:00
Matthew Hodgson
0b483c4707
rename searchTerms to highlights, and support highlighting multiple search terms
2015-11-29 03:22:01 +00:00
Matthew Hodgson
3cc1b1ad82
fix unwanted vertical scrollbar issue and typo
2015-11-29 03:21:21 +00:00
Matthew Hodgson
f028b343b0
HTML and Markdown emotes.
2015-11-28 22:34:45 +00:00
Matthew Hodgson
52376091cb
resize the composer when you change rooms
2015-11-28 22:20:14 +00:00
Matthew Hodgson
9befe243b5
combine M{Text,Notice,Emote}Message into a generic TextualMessage component
2015-11-28 21:12:02 +00:00
Matthew Hodgson
832da3aa8e
support del tags for markdown
2015-11-28 12:44:10 +00:00
Kegan Dougal
5ba1ef5203
Move velocity stuff / contextual menu from Vector to React.
2015-11-27 15:37:40 +00:00
Kegan Dougal
1825b0317e
Add components which were previously in vector
2015-11-27 15:02:32 +00:00
Kegan Dougal
4a2fe426bf
Move and merge RoomTile and MemberTile. Extract DND stuff.
...
DND stuff lives in Vector. RoomTile on its own is UNTESTED and will probably
break since we don't conditionally check for onDragXXX function props.
2015-11-27 11:50:33 +00:00
Kegan Dougal
bf46ce19e0
Merge and move RoomHeader/RoomSettings
2015-11-27 10:42:03 +00:00
Kegan Dougal
11efb1ede4
Move and merge MemberInfo
2015-11-26 17:49:39 +00:00
Kegan Dougal
6e9e314f24
Move and merge UserSelector
2015-11-26 17:37:40 +00:00
Kegan Dougal
206c45e703
Move and merge MessageComposer
2015-11-26 17:31:10 +00:00
Kegan Dougal
75afc3a7de
Move and merge ProgressBar
2015-11-26 17:21:08 +00:00
Kegan Dougal
fc7707971e
Move and merge Change Avatar|DisplayName|Password components
2015-11-26 17:10:36 +00:00
Kegan Dougal
6c9f3303c6
Convert voip molecules to components
...
Don't pull in VectorConferenceHandler; instead accept a prop which meets a
conference handler interface.
2015-11-26 16:38:56 +00:00
Kegan Dougal
172735a837
Move create_room atoms to components
2015-11-26 15:44:42 +00:00
Kegan Dougal
e55ecfeacb
Add VideoFeed component
2015-11-26 15:20:57 +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
Kegan Dougal
8bde761a8a
Add EnableNotificationButton component
2015-11-26 15:11:08 +00:00
Kegan Dougal
c2ae6238b9
Nuke LogoutButton; nothing used it.
2015-11-26 14:48:02 +00:00
Kegan Dougal
659fc8fcfb
Point to new Spinner location
2015-11-26 14:24:21 +00:00
Kegan Dougal
1dc4e14606
Import things at the right levels
2015-11-26 13:49:39 +00:00
Kegan Dougal
7846d49403
Add missing deps; Move stuff in 'views' to have functional descriptors
2015-11-26 13:45:04 +00:00
Kegan Dougal
776369299d
Move login components to views
2015-11-26 13:27:52 +00:00
Kegan Dougal
b69fff5b01
Define component directories. Merge MemberAvatar and RoomAvatar to new-style components.
...
Spoken to @ara4n about names/conventions. Settled on the following layout:
src/components
|_____________views
| |____ tiles
| | |___ MTextTile.js
| | |___ MNoticeTile.js
| | |___ ...
| |
| |____ avatars
| | |____ RoomAvatar.js
| | |____ MemberAvatar.js
| | |____ ...
| |
| |____ ...
|
|_____________structures
|____ RoomView.js
|____ UserSettings.js
|____ CreateRoom.js
|____ ...
Views are the "pure UI" components which can be reused. Structures are the
wire components which give important contextual information to the views e.g.
a view may be MemberList, but it's where it is in the structure that defines
that it is a *Room* MemberList.
2015-11-26 12:02:31 +00:00
Kegan Dougal
f5e2a54603
Only send HTML if we need to.
2015-11-20 17:30:14 +00:00
Matthew Hodgson
2e32383570
fix up the textbox after hitting enter
2015-11-20 17:09:28 +00:00
Kegan Dougal
b12fc67a63
Add markdown support (enabled by default)
2015-11-20 16:08:57 +00:00
Kegan Dougal
032fdc0abc
Remove diff clutter
2015-11-20 14:32:00 +00:00
Kegan Dougal
1a72cb56c6
Log an error for unknown screens
2015-11-20 14:26:49 +00:00
Kegan Dougal
d46e42f8e7
Have a post-registration screen. Fix race in ChangeAvatar where if you hadn't got an initial avatar downloaded yet you couldn't update it after the component loaded.
2015-11-20 11:57:04 +00:00
Kegan Dougal
ad60e23459
Correctly display an error if a bad IS URL is entered.
2015-11-20 10:37:46 +00:00
Kegan Dougal
05a7d76785
Remove old Register files
2015-11-20 10:15:18 +00:00
Kegan Dougal
030e2f0979
Move CaptchaForm from Vector to React SDK
2015-11-20 10:14:00 +00:00
Kegan Dougal
cad3afc7a4
Remove unhelpful log lines
2015-11-20 10:11:51 +00:00
Kegan Dougal
23467de016
Remove missed debug log
2015-11-19 16:47:28 +00:00
Kegan Dougal
b12f0f1df7
Minor refactoring; remove debug logging; add comments
2015-11-19 16:07:58 +00:00
Kegan Dougal
cc74676718
Mostly fix 2nd step email registration
...
- Don't send u/p: null
- Remove unused functions
- Moar logging
Still doesn't work yet though.
2015-11-19 15:19:30 +00:00
Kegan Dougal
7568a3b2d3
Hookup 2nd stage email registration; not finished as we aren't storing u/p
2015-11-19 14:16:49 +00:00
Kegan Dougal
8d7d338f44
Pass the right session ID
2015-11-19 13:58:34 +00:00
Kegan Dougal
f2f5496b78
Get email auth sending working (not the link back though)
2015-11-19 11:41:49 +00:00
Kegan Dougal
e800d3d477
Merge branch 'develop' into kegan/reg-refactor
2015-11-19 09:50:32 +00:00
Kegan Dougal
3e903be73d
Get Recaptcha working again. Add a backchannel for stage prodding.
...
Recaptcha is a special snowflake because it dynamically loads the script
and THEN renders with info from the registration request. This means we
need a back-channel for the UI component to 'tell' the stage that everything
is loaded. This Just Works which is nice.
2015-11-18 17:43:38 +00:00
Kegan Dougal
991a96cfc5
Get dummy registrations working
...
This means you can now register on localhost without needing an email. Email
and Recaptcha are still broken.
2015-11-18 17:13:43 +00:00
David Baker
caabe02fca
Merge pull request #32 from matrix-org/read_receipts
...
Read receipts
2015-11-18 14:53:25 +00:00
David Baker
31b083d93e
new Date() syntax & units on var name
2015-11-18 14:51:06 +00:00
David Baker
0df0935b9c
Fix presence exception. Yay, javascript.
2015-11-18 09:57:14 +00:00
Kegan Dougal
1fca3f6606
Better const name
2015-11-17 17:38:37 +00:00
Matthew Hodgson
95cdbe3a48
stop launch from wedging solid for 5 minutes >:(
2015-11-17 17:36:15 +00:00
Kegan Dougal
0f34f8b494
Extend from a Signup class to keep hs/is URL logic together
2015-11-17 17:25:14 +00:00
Kegan Dougal
257a65de14
Fix path resolution
2015-11-17 13:26:07 +00:00
Kegsay
9f7a504a20
Merge pull request #31 from matrix-org/kegan/login-refactor
...
Refactor login page
2015-11-17 10:47:47 +00:00
Matthew Hodgson
e9132a873b
experiment with turning the UserSettings controller into a UserSettingsStore logic class
2015-11-17 02:13:42 +00:00
Matthew Hodgson
0d1c06d586
relayout whenever the input textarea's scrollheight increases
2015-11-15 21:37:22 +00:00
Matthew Hodgson
152872b342
don't clobber the initial room to roomdirectory
2015-11-15 03:58:05 +00:00
Matthew Hodgson
999bb9a206
implement multiline input
2015-11-15 03:36:59 +00:00
Kegan Dougal
900b7dd94a
Guard onLoggedIn since registration uses it too and that isn't done yet
2015-11-12 16:14:01 +00:00
Kegan Dougal
b8d579ac5c
Remove old login code
2015-11-12 15:53:50 +00:00
Kegan Dougal
ccd24dd3ea
Move Cas/PasswordLogin to a new directory so it isn't confused with existing stuff
2015-11-12 15:28:57 +00:00
Kegan Dougal
b127c30436
Implement logging in via password
2015-11-12 15:15:00 +00:00
Kegan Dougal
f4dd88ed64
Remove ServerConfig; Add Signup logic class
...
- ServerConfig seems too specific to Vector, but we can always add it back later.
- Signup.js contains all the logic for determining what to show which was
previously in UI components.
2015-11-12 11:54:35 +00:00
Matthew Hodgson
a082a24f9a
fix previous commit to allow deep-linking to specific pages better
2015-11-11 02:32:16 +01:00
Matthew Hodgson
6ad210cde3
support tracking URLs for settings, new & directory
2015-11-11 02:01:48 +01:00
Matthew Hodgson
ab10f1d6b0
fix warning
2015-11-11 02:01:37 +01:00
Matthew Hodgson
a4968ca967
don't break if the user misses out an email address
2015-11-11 00:05:14 +01:00
Matthew Hodgson
b669f587de
be less shouty
2015-11-11 00:05:00 +01:00
Matthew Hodgson
e7be1ae832
you don't have to pass a description, and if you do, it could be JSX or a string
2015-11-11 00:04:50 +01:00
Matthew Hodgson
d0a4f908cf
fix nightmarish underscore-versus-camelcase confusion in propTypes, and track default URLs for placeholder content
2015-11-11 00:04:30 +01:00
Matthew Hodgson
368c24e146
s/React/ReactDOM
2015-11-10 19:53:29 +00:00
Matthew Hodgson
5fea3c2673
store the custom HS/IS URL in local storage, add some review commentary
2015-11-10 19:10:30 +00:00
Matthew Hodgson
02ad2b5152
remove react-loader (not that the controller should be rendering spinners in the first place :(
2015-11-10 18:25:10 +00:00
David Baker
2f783a7ba9
Merge remote-tracking branch 'origin/develop' into read_receipts
2015-11-10 11:27:43 +00:00
Kegsay
d4549e60cc
Merge pull request #30 from matrix-org/kegan/3pid-invites
...
Support inviting by email address and hit the right API.
2015-11-10 10:57:17 +00:00
Matthew Hodgson
b5402d0fa0
port to react 0.14, removing getDOMNode()s for DOM components and turning them into ReactDOM.findDOMNode()s for React components
2015-11-09 23:59:28 +00:00
Matthew Hodgson
efd88b9a83
upgrade to react 0.14
2015-11-09 23:13:43 +00:00
Kegan Dougal
143483ec12
Support inviting by email address and hit the right API.
2015-11-09 17:36:14 +00:00
David Baker
b556eff492
Merge pull request #28 from stevenhammerton/sh-cas-token-login
...
SH - CAS / Login Token Login Update
2015-11-06 15:40:56 +00:00
Steven Hammerton
fec362c4df
JS SDK no longer does redirect for us, get the URL and update browser window location
2015-11-06 12:12:51 +00:00
Steven Hammerton
a7c53e99d9
Clear query params from url with a nasty location update
2015-11-06 11:42:13 +00:00
Steven Hammerton
de165ea6ad
Update CAS login to allow HS to do interaction with CAS and client receives and redeems login token
2015-11-06 11:21:13 +00:00
Kegan Dougal
b0e71c9872
Fix bugs from typos from hackathon
2015-11-06 09:57:22 +00:00
David Baker
7882780357
Merge remote-tracking branch 'origin/develop' into read_receipts
2015-11-05 15:33:50 +00:00
David Baker
f4e65f8e17
Remove name event listener
2015-11-05 15:07:46 +00:00
David Baker
3114422cb7
Merge remote-tracking branch 'origin/develop' into read_receipts
2015-11-05 15:05:29 +00:00
Kegan Dougal
a7c6a923f0
Unbreak everything (JS SDK had breaking API change)
2015-11-05 14:37:05 +00:00
David Baker
f9385b455a
Don't try to send read receipts if the room is null
2015-11-05 13:27:03 +00:00
David Baker
86ef0e762e
Merge code to send read receipts into react-sdk RoomView controller
2015-11-03 14:08:51 +00:00
David Baker
5a72f199e1
listen for read receipts
2015-11-03 11:41:18 +00:00
David Baker
7c9b773bf8
unintentionally comitted logging
2015-11-03 11:22:18 +00:00
Kegan Dougal
3485a74036
Gracefully handle browsers which don't do VoIP
...
Specifically:
- Don't show inbound call ringing
- Don't let users place calls/conf calls
- Show call records with "not supported by this browser".
2015-11-02 17:39:00 +00:00
Matthew Hodgson
e792201cd6
back out ctrl-alt-number room switching as nobody used it and it broke Tor's keyboard
2015-10-31 14:00:23 +00:00
Matthew Hodgson
40da7f500e
show m.room.name changes
2015-10-30 02:07:04 +00:00
Matthew Hodgson
9df7337a6d
actually commit ability to apply a custom class to modal dialogs, used for lightboxing
2015-10-29 10:17:34 +00:00
David Baker
2365fe8ceb
Refresh room & member avatars when a roommember.name event comes in
2015-10-28 15:15:35 +00:00
Kegsay
184af9df76
Merge pull request #25 from matrix-org/246-creating-room-state
...
Add creatingRoom state to know when to show a spinner.
2015-10-28 11:38:47 +00:00
Kegan Dougal
2a1b9cd716
Add creatingRoom state to know when to show a spinner.
2015-10-27 17:01:03 +00:00
Kegsay
15af44f5fc
Merge pull request #24 from matrix-org/linkify
...
Add callback support for linkified users/aliases
2015-10-27 12:25:20 +00:00
Kegsay
e6f9c6e777
Merge pull request #23 from matrix-org/kegan/reg-errors-176
...
Add missing enum value to registration password complexity check
2015-10-27 11:11:39 +00:00
Kegan Dougal
16ddb47466
Defer entirely to the end app for handling links
2015-10-27 10:44:41 +00:00
Kegsay
66b577dc89
Merge pull request #22 from matrix-org/kegan/delete-empty-files
...
Remove empty controllers
2015-10-27 10:19:14 +00:00
Kegan Dougal
77d1b9af04
Hook up aliases via listeners too.
2015-10-27 09:58:55 +00:00
Kegan Dougal
24ac801417
Invoke onUserClick to allow impls to do whatever on user clicks.
2015-10-26 17:59:49 +00:00
Kegan Dougal
11ef1ac336
Prevent the url from being butchered when clicking user IDs
2015-10-26 17:36:03 +00:00
Kegan Dougal
a1444d3214
Linkify room aliases. Add listener for user ID clicks.
2015-10-26 17:32:31 +00:00
Kegsay
a2b77ad5b5
Merge pull request #21 from matrix-org/220-login-error-msgs
...
Login error messages
2015-10-26 16:58:46 +00:00
David Baker
a850f19cd4
Separate out the activity watcher from presence code so I can hook read receipts into it without tangling it into the presence code.
2015-10-26 13:54:54 +00:00
David Baker
5a760b71d0
Make ChangeAvatar support room avatars and tweak RoomAvatar respond to componentWillReceiveProps
2015-10-23 17:34:53 +01:00
Matthew Hodgson
03dfd57a79
really kill mime types as they are ugly (3rd time lucky)
2015-10-22 16:32:27 +01:00
David Baker
7e93b75aa0
API Change: better fallback for room avatars
2015-10-22 13:08:35 +01:00
David Baker
549d992293
API change: Make EventTiles which hold stuff common to all events that appear in a room timeline.
2015-10-21 17:50:40 +01:00
Kegan Dougal
ac5111c162
Add missing enum value
2015-10-21 17:44:05 +01:00
Kegan Dougal
0488f03b5a
Remove empty controllers
2015-10-21 15:36:59 +01:00
Kegan Dougal
d4a5ab11d4
Fix NPE if you cold boot vector on a URL with a room which you were invited to but not yet joined.
2015-10-21 14:45:39 +01:00
Kegan Dougal
d1af5a2232
More tweaks on error messages
2015-10-21 14:30:59 +01:00
Matthew Hodgson
3b988b0eac
set up remoteAudioElement
2015-10-21 01:21:39 +01:00
Matthew Hodgson
98ea35253a
shift-click the video button to screenshare rather than overriding the button entirely.
2015-10-21 01:21:21 +01:00
Kegan Dougal
8ff7d87b38
Bodge to make video = screen sharing
2015-10-20 16:45:26 +01:00
Kegan Dougal
48f162b9df
Better error messages
2015-10-20 14:03:37 +01:00
David Baker
3d8d9bac8e
Allow the dispatcher to dispatch sync if required.
2015-10-20 11:02:54 +01:00
David Baker
1041ee654e
Update for breaking js-sdk RoomAvatar / MemberAvatar changes
2015-10-20 10:31:29 +01:00
Kegan Dougal
78f2f7cfd0
Add in voip mute video/audio code. Needs dev js-sdk
2015-10-20 09:55:00 +01:00
David Baker
6baf405a05
Remove the 'resending' state which was duplicating a property of the event itself for no obvious reason. Remove onResend whose purpose was mostly to manage that state (and really should have been 'onResendClicked'). Listen for action to see when a message is resent.
2015-10-15 14:09:19 +01:00
David Baker
02a2e06d52
unused code
2015-10-13 16:03:24 +01:00
David Baker
9e596ebb75
Merge pull request #19 from stevenhammerton/sh-cas-auth
...
Add support for CAS login
2015-10-13 14:25:39 +01:00
David Baker
f7d3d4f9a9
Remove console.log
2015-10-13 11:44:45 +01:00
David Baker
d12ca92ea7
Avoid double updating: setting the state will cause a re-render so forcing an update is redundant. Also bump js sdk dep to newest to match vector.
2015-10-13 11:12:06 +01:00
Steven Hammerton
fc333067c2
Rename required var to match convention
2015-10-12 17:38:04 +01:00
David Baker
030124a59a
Make state.members always defined
2015-10-12 16:25:49 +01:00
Steven Hammerton
4e0d930014
Pull down some CAS stuff from vector into controller and logic class
2015-10-12 10:20:03 +01:00
Matthew Hodgson
f6d577d0c6
track RHS collapse state
2015-10-11 16:07:01 +01:00
Matthew Hodgson
8228a7d485
track whether the LHS is collapsed. (shouldn't this be vector specific too?)
2015-10-11 13:49:44 +01:00
Matthew Hodgson
c5e3891a5a
shrink default roomavatar size to 36x36. surely this is vector specific...
2015-10-11 02:08:39 +01:00
Steven Hammerton
3f67d8541f
Add support for CAS login
2015-10-10 18:54:19 +01:00
David Baker
05d19121d8
Slightly change memberlist api to shift the sorting into the right place (in the skin).
2015-10-09 17:24:48 +01:00
David Baker
e158eec94d
Unset matrix client first otherwise login sets it, the it gets unset and you can't log in again.
2015-10-09 13:48:17 +01:00
David Baker
53a7f4b3a8
Set state to ready only if the SDK is synced.
2015-10-09 12:05:40 +01:00
David Baker
0791cac572
Add method to Modal to create dialog with instantiated React elements as well as Classes.
2015-10-09 11:54:46 +01:00
David Baker
05f7a3b4d1
Remove now redundant displayname stuff from UserSettings now it's in ChangeDisplayName
2015-10-07 18:44:32 +01:00
David Baker
79e468217a
Add button for user settings and a change display name widget
2015-10-07 18:19:29 +01:00
David Baker
27ca7b48f7
Just do all dispatches async: setting the flag obviously does not work for more than 2 nested dispatches.
2015-10-05 18:43:22 +01:00
David Baker
b8dd2452db
Display correct message for when an invited but not joined user is kicked.
2015-10-05 16:44:50 +01:00
David Baker
a1892ee963
Improve url / screen handling
...
Including taking you to the room you asked for originally after login
2015-10-05 15:31:08 +01:00
David Baker
2d3b87d56d
Don't set empty mime types on metadata.
2015-10-02 18:37:15 +01:00
David Baker
2bce4e4d62
Merge c62d97ca04
from vector-im
...
The hack is *evil*. Not dirty.
2015-10-02 14:37:34 +01:00
David Baker
7de136a930
Port over new logic for filtering actions: makes the end call button appear & disappear approriately
2015-10-01 10:19:18 +01:00
David Baker
5004a3a5b3
Make end call button work for conf calls
2015-10-01 09:42:58 +01:00
David Baker
cb89d3760a
Hacks to make sure we don't end up with multiple split-brain CallHandlers when npm linked.
2015-09-30 18:21:25 +01:00
David Baker
b68665ead5
Add support for the basic notion of conference calls and an experimental concept of modules to provide the actual functionality. Rejig Skinner to be simpler.
2015-09-30 16:50:46 +01:00
David Baker
9fb5702c2f
make MatrixClientPeg an actual global too otherwise things go very wierd
2015-09-28 17:46:49 +01:00
David Baker
8af6c2275b
Make it easier to override default avatar urls
2015-09-28 17:06:13 +01:00
David Baker
3792d5494a
Dispatcher should be a global too
2015-09-28 14:48:50 +01:00
David Baker
3be50e327d
Manually merge memberlist fix from vector master
2015-09-28 11:32:00 +01:00
David Baker
6348c2cf99
Change how viewing a room alias works to make way for jumping into a room once you've logged in.
2015-09-25 17:22:42 +01:00
David Baker
bc2eca16f9
Unused guff
2015-09-25 16:25:20 +01:00
David Baker
fe369858b7
Unused variables & redundant stuff
2015-09-25 15:17:46 +01:00
David Baker
5af43dc6a9
Remove unused action dispatch
2015-09-23 09:39:49 +01:00
David Baker
96627d4477
Port membertile fix
2015-09-22 16:51:16 +01:00
David Baker
3838569625
Port memberlist branch fixes
2015-09-22 16:37:39 +01:00
David Baker
b32658cfd0
Load fewer events when switching to a room: they take surprisingly long to render.
2015-09-22 15:18:16 +01:00
David Baker
980ce7fdae
Remainder of the controllers from vector
2015-09-21 17:23:51 +01:00
David Baker
49c5f7cb95
Use same protocol as client was loaded over for recaptcha to prevent JS origin errors.
2015-09-21 16:53:50 +01:00
David Baker
1b82d92fa1
Port registration fixes
2015-09-21 16:38:12 +01:00
David Baker
65498600de
port login fixes
2015-09-21 16:36:17 +01:00
David Baker
28c4a648be
Port roomlist fixes
2015-09-21 16:31:31 +01:00
David Baker
e2c9afb278
port create room
2015-09-21 16:28:39 +01:00
David Baker
29d2ed7191
Merge userselector changes
2015-09-21 16:17:29 +01:00
David Baker
82aa603596
Merge in resend support
2015-09-21 16:14:19 +01:00
David Baker
a8eb93bd6f
Member list
2015-09-18 18:39:16 +01:00
David Baker
31ee667102
Room header
2015-09-18 14:34:36 +01:00
David Baker
b9538a077c
Missed files from last commit
2015-09-18 13:54:20 +01:00
David Baker
343de6245f
Port ServerConfig changes
2015-09-18 13:33:51 +01:00
David Baker
08b5888d03
More porting: make sending messages work again!
2015-09-18 10:44:57 +01:00
David Baker
abeed92501
Partial porting over of vector controller logic to react sdk.
2015-09-17 18:23:38 +01:00
David Baker
d938ba70d3
Port over room leaving
2015-09-17 12:10:01 +01:00
David Baker
88aaf82c88
Backport: linkify emotes
2015-09-16 16:23:35 +01:00
David Baker
f3b30477ce
Backport: add other presets into room presets
2015-09-16 16:10:39 +01:00
David Baker
a4cbbf0d92
Backport Notifier improvements from Vector, including TextForEvent
2015-09-16 14:48:49 +01:00
David Baker
25ab56106a
Backport labels & placeholders for Editable text from Vector
2015-09-16 14:18:25 +01:00
David Baker
6cca5f4c05
backport fixes from vector
2015-09-16 13:48:24 +01:00
David Baker
2d0c8ac9ff
Working skin stuff, minus css
2015-09-15 13:34:36 +01:00
David Baker
f3b9f8c799
WIP reworking of skinning and app integration process
2015-09-11 15:42:11 +01:00
David Baker
a06e1f23ea
Spurious react-loader require
2015-09-10 15:08:26 +01:00
David Baker
635041470f
There is no MatrixChat in the sdk anymore (well, only a controller). Advertise the Component Broker instead.
2015-09-10 15:07:34 +01:00
David Baker
a124e53a9a
Component broker loading files never really worked very well anyway, and now it can't work because they're all defined elsewhere.
2015-09-10 15:06:42 +01:00
David Baker
8fbce5fce8
de-tab
2015-09-08 16:17:06 +01:00
Mark Haines
b66488a783
Fix syntax
2015-07-20 13:48:40 +01:00
Mark Haines
3f5c220993
Move all the calls to createClient inside the MatrixClientPeg
2015-07-20 13:19:47 +01:00
David Baker
e6260987cc
some s/then/done/
2015-07-16 16:53:08 +01:00
David Baker
9b6060a363
Decouple login view & controller
2015-07-16 16:49:40 +01:00
David Baker
64042c9de8
Handle localstorage exceptions.
2015-07-16 16:12:54 +01:00
David Baker
a6df6ca29b
Don't forget form values on error
2015-07-16 14:19:13 +01:00
David Baker
7aa4d50560
Handle registration errors.
2015-07-16 14:08:52 +01:00
David Baker
df790c1b54
Refactor view/controller logic between files, fix syntax & silly bugs.
2015-07-16 12:44:04 +01:00
David Baker
e2757b3587
Merge pull request #4 from matrix-org/registration
...
Registration
2015-07-16 09:58:53 +01:00
David Baker
931a4f29c8
Argh, accidentally committed again
2015-07-16 09:57:14 +01:00
David Baker
77114e0081
Improve registration so the container page can pick what URL it's going to route through to registration.
2015-07-15 20:33:12 +01:00
David Baker
23d9cee299
didn't mean to commit that
2015-07-15 19:30:10 +01:00
David Baker
4756427e61
First cut working regisatration
2015-07-15 19:25:36 +01:00
Erik Johnston
5cd92229eb
Add an editable text atom
2015-07-15 13:55:43 +01:00
David Baker
03d048c06f
Get as far as requesting a token
2015-07-14 19:39:18 +01:00
David Baker
aacc31b2ce
Registration works with recaptcha
2015-07-14 18:46:15 +01:00
Erik Johnston
bb06b752b4
Document CreateRoom phases
2015-07-14 17:40:49 +01:00
Erik Johnston
c4764af9a2
Add phases to CreateRoom organism
2015-07-14 17:27:22 +01:00
Erik Johnston
03b715b8bf
Add onRoomCreated callback to CreateRoom organism
2015-07-14 17:01:06 +01:00
Erik Johnston
a748c090fb
Move all element specific code into skins/
2015-07-14 16:59:11 +01:00
Erik Johnston
b53e710d20
Add invite selection to create room dialog
2015-07-14 16:53:49 +01:00
Erik Johnston
ed52cdf6df
Add basic CreateRoom organism. Supports setting room name and selecting preset
2015-07-14 15:17:49 +01:00
David Baker
a7e4a2847e
Start of registration support.
2015-07-13 19:14:02 +01:00
David Baker
ed2cc33616
Linkify user IDs and room aliases (to nothing at the moment because we don't have anything to do with them)
2015-07-10 14:37:13 +01:00
David Baker
a00510c1ca
Linkify URLs
2015-07-09 15:41:19 +01:00
David Baker
12566c0c9c
Separate with space too
2015-07-08 19:57:58 +01:00
David Baker
6a92fdc5e6
Fix file size display
2015-07-08 19:52:44 +01:00
David Baker
03451d8c7d
Sort rooms for prev/next purposes
2015-07-08 19:47:58 +01:00
David Baker
bdfef5eedd
damn you javascript
2015-07-08 18:28:30 +01:00
David Baker
c14886a1ee
rename to mostRecentActivityFirst to disambiguate from sorting by when you joined a room, which this is not.
2015-07-08 18:21:57 +01:00
David Baker
d58fdef362
Order room list by most recent activity
2015-07-08 18:18:03 +01:00
David Baker
a591b66732
Don't barf if no info in m.file content
2015-07-08 16:50:49 +01:00
David Baker
5bed0b7275
typo
2015-07-08 16:32:03 +01:00
David Baker
53e9d030b7
See uploaded files
2015-07-08 16:25:27 +01:00
David Baker
36ecbfc87f
Upload files and images
2015-07-08 14:34:53 +01:00
David Baker
00dd1e180a
focus message composer when window gets focus
2015-07-07 13:30:38 +01:00
David Baker
9f37196eb7
Fix infinite scrolling
2015-07-07 11:00:02 +01:00
Matthew Hodgson
205ed54ec7
merge in matthew-css
2015-07-07 03:44:57 +01:00
David Baker
3e87e043d6
Fix docs
2015-07-06 18:29:24 +01:00
David Baker
b4abe870cf
Image displaying!
2015-07-06 18:09:19 +01:00
David Baker
dcb4b5f912
Add room membership messages
2015-07-06 16:04:09 +01:00
David Baker
6c35908949
Add example shwing how to customise, make customising work and document all the ways in which browserify will break and how to work around it being dumb.
2015-07-06 14:13:02 +01:00
David Baker
1c03eabadb
Not all events have a sender
2015-07-03 16:46:30 +01:00
David Baker
b8f9cb44b8
argh, javascript
2015-07-03 16:35:06 +01:00
David Baker
1baaf39c48
update notification button when permission granted
2015-07-03 16:29:41 +01:00
David Baker
196ee3f6d4
Only highlight room list for messages where we notify - this may want to be an option in the react client potentially.
2015-07-03 11:36:44 +01:00
David Baker
53b0ba56db
add license header
2015-07-03 11:24:04 +01:00
David Baker
fd20e82123
Add desktop notifications, overridable in the same way as other components (although it's not a react component). Also extend the flux dispatcher a little to be less dumb about dispatching while something else is already dispatching.
2015-07-03 11:12:54 +01:00
David Baker
947f389e51
be more consistent with naming
2015-07-02 13:18:03 +01:00
David Baker
acfe05db9d
Use new push actions method on client
2015-07-01 14:11:23 +01:00
David Baker
898737d806
or is not and
2015-06-29 16:50:26 +01:00
David Baker
46646cbd87
Highlight room tiles on bing
2015-06-29 16:48:13 +01:00
David Baker
57ba816919
Highlight messages using new push rules support in js sdk
2015-06-29 16:24:02 +01:00
David Baker
9aa9a60333
Some checks to see whether stuff is still mounted when adding things.
2015-06-25 17:52:40 +01:00
David Baker
30a9436485
Room List should ignore paginated events
2015-06-25 17:44:27 +01:00
David Baker
dd0d6159ce
Make alt+up/down change rooms
2015-06-25 17:41:55 +01:00
David Baker
fae629ea65
Use the pagination token to see when we've reached the room's birth
2015-06-25 15:58:51 +01:00
David Baker
5d44de9e08
Load limited number of room members when we first switch to a room, loading the rest a little later: makes switchign to large rooms much more responsive.
2015-06-25 14:57:35 +01:00
David Baker
209e052025
Limit the number of messages we load into a chat room when we switch to it (or more accurately, switch back to it).
2015-06-25 14:36:24 +01:00
David Baker
2355d5e6b5
Fix the permagrey local-echo bug
2015-06-24 18:15:34 +01:00
David Baker
c54bed02c1
Argh, javascript
2015-06-24 14:09:38 +01:00
David Baker
a54a7f80aa
Apparently Object.keys is kinda slow
2015-06-24 14:01:59 +01:00
David Baker
52f6fa89a1
Only show joined and invited members
2015-06-24 13:48:39 +01:00
David Baker
8f1258b6cc
Infinite scrolling
2015-06-24 13:28:44 +01:00
Matthew Hodgson
aaa38d95ba
s/themes/skins/g as we are always describing the whole UI layout here, whereas themes can sometimes just be small cosmetic tweaks (light-on-dark, dark-on-light etc)
2015-06-23 18:28:20 +01:00
David Baker
0c26206b88
Copyright headers (and use strict, while we're at it).
2015-06-23 16:41:25 +01:00
David Baker
a022a4b9a6
Reshuffle to put "HTML" (JSX) and CSS together as a theme with logic elsewhere.
2015-06-23 14:40:50 +01:00
David Baker
cc4fa6140c
Fix joining
2015-06-23 11:36:19 +01:00
David Baker
d10b1457ba
obey room name changes
2015-06-22 15:56:16 +01:00
David Baker
c425886a45
handle room invites
2015-06-22 14:48:58 +01:00
David Baker
2ba4ad04d1
Little fixes on member list
2015-06-22 13:15:14 +01:00
David Baker
0424ef07b3
Add member list (that doesn't really update much yet)
2015-06-22 11:42:09 +01:00
David Baker
e77e9b7704
Add displayNames so they're not all just 'exports' in the react debugger
2015-06-19 16:21:09 +01:00
David Baker
41014af471
Display new rooms as they arrive
2015-06-19 16:12:22 +01:00
David Baker
1270bc3c62
m.notice
2015-06-19 14:01:17 +01:00
David Baker
2abea931ca
Split out render methods into 'views' leaving UI logic in 'controllers'. Hopefully should make it easier to skin / customise.
2015-06-19 12:53:48 +01:00
David Baker
847e816035
grey out sending messages (although they don't go black until you send another message currently: awaiting fix in js sdk).
2015-06-18 15:49:41 +01:00
David Baker
b31794cda5
Focus the text box at appropriate times
2015-06-18 15:03:57 +01:00
David Baker
90f6764cbf
Fix cleaning unread state on room select & ignore our own messages
2015-06-18 14:40:55 +01:00
David Baker
7c405f673a
Highlight rooms with unread messages
2015-06-18 14:35:17 +01:00
David Baker
a63299aae0
Message scrolling
2015-06-18 11:23:35 +01:00
David Baker
ed58a59f82
Switch everything over to use the component broker.
2015-06-17 16:43:29 +01:00
David Baker
b35461f5c0
Unused require
2015-06-16 18:35:37 +01:00
David Baker
c9a546b73b
Load all components* through a central broker so we can overrride them with different ones
...
* only one place actually uses it currently
2015-06-16 18:18:55 +01:00
David Baker
acaff68748
Oops, commit the emote tile.
2015-06-16 18:18:34 +01:00
David Baker
3a16c8a764
The most important feature
2015-06-16 15:29:13 +01:00
David Baker
e2348c50d5
Fix logout
2015-06-16 14:37:15 +01:00
David Baker
1dbc54e172
Oops, put key in the right place
2015-06-16 14:31:35 +01:00
David Baker
2bd5b0fdad
Just be a little less ugly
2015-06-16 14:27:13 +01:00
David Baker
f25bf58d6d
Use JS-SDK recommended way of getting sender name.
2015-06-16 14:19:46 +01:00
David Baker
672258f604
Start rendering messages with something more than the json
2015-06-16 11:58:03 +01:00
David Baker
88e9ab02f9
Yay, message sending.
2015-06-16 11:08:27 +01:00
David Baker
b2843b09bc
Rest of commit adding messagecomposer, and put li's in ul.
2015-06-16 10:41:05 +01:00
David Baker
a0c5fb4a8b
Add not-working-yet text box, plus a bit more css
2015-06-15 18:35:28 +01:00
David Baker
2a15b3a98c
css tweaking
2015-06-15 15:50:24 +01:00
David Baker
52286b2316
Prevent default otherwise the form will submit and reload the page
2015-06-15 11:00:39 +01:00
David Baker
4bb570c545
messages arrive!
2015-06-12 18:17:54 +01:00
David Baker
0b0e6adce3
Make room changing work
2015-06-12 18:01:38 +01:00
David Baker
125fa78bc6
Something starting to resemble a Matrix Client
2015-06-12 17:34:17 +01:00
David Baker
2f6a123118
more Matrixy naming
2015-06-12 15:01:36 +01:00
David Baker
971a7c1133
Display the room list
2015-06-12 14:59:33 +01:00
David Baker
5f970edac5
strip out cruft
2015-06-12 13:49:23 +01:00
David Baker
ffb0dc78b8
Fixes to login, and change to not use the dispatcher because it's just unnecessary here
2015-06-12 13:45:22 +01:00
David Baker
e28fde7ae1
Save creds to localstorage
2015-06-12 13:12:39 +01:00
David Baker
add78c6e92
Oops: the file modifications for making it log in.
2015-06-11 18:25:29 +01:00
David Baker
f487b9ba04
Make it log in
2015-06-11 18:23:02 +01:00
David Baker
eeb2dfd1fc
uglify at the end so we can also mangle names, and don't bother uglifying individual modules with -g as it doesn't seem to make any difference
2015-06-11 17:46:25 +01:00
David Baker
c42733ec95
Basic structure of a react SDK and start of an implementation.
2015-06-09 17:40:42 +01:00