Kegan Dougal
4cebded04f
Add canResetTimeline callback and thread it through to TimelinePanel
2017-03-22 15:06:52 +00:00
Luke Barnard
5330e47b3f
Add null check
2017-03-15 13:05:03 +00:00
Luke Barnard
238e48e4af
Do routing to /register _onLoadCompleted
...
_onLoadCompleted happens straight away because Lifecycle finishes loading the session instantly when registration parameters (client_secret etc.) are set.
2017-03-15 12:02:08 +00:00
Luke Barnard
47958180a6
Add null check to start_login
2017-03-14 15:13:36 +00:00
Luke Barnard
5e93dde0dd
Merge pull request #746 from matrix-org/luke/merge-RoomTile-context-menus
...
Merge the two RoomTile context menus into one
2017-03-14 14:19:36 +00:00
David Baker
30b442515e
Merge pull request #743 from matrix-org/luke/fix-screen-after-login
...
Decide on which screen to show after login in one place
2017-03-14 13:44:08 +00:00
Matthew Hodgson
3aaf37df1a
beautify a tonne more errors
2017-03-12 22:59:41 +00:00
Luke Barnard
1f788feacd
Merge the two RoomTile context menus into one
...
This will require riot-web changes https://github.com/vector-im/riot-web/pull/3395
2017-03-09 17:03:57 +00:00
Luke Barnard
c4001b5c5d
Use else instead of two returns
2017-03-08 15:11:38 +00:00
Luke Barnard
eca82bdb42
Make sure the screen is set, otherwise ignore screenAfterLogin
2017-03-08 10:45:07 +00:00
Luke Barnard
06a05c351d
Decide on which screen to show after login in one place
...
This follows from a small amount of refactoring done when RTS was introduced. Instead of setting the screen after sync, do it only after login.
This requires as-yet-to-be-PRd riot-web changes.
This includes:
- initialScreenAfterLogin, which can be used to set the screen after login, and represents the screen that would be viewed if the window.location at the time of initialising Riot were routed.
- guestCreds are now part of state, because otherwise they don't cause the login/registration views to update when set.
- instead of worrying about races and using this._setPage, use a dispatch.
2017-03-08 10:25:54 +00:00
David Baker
1bdf213d67
Merge pull request #729 from matrix-org/dbkr/register_ui_auth
...
Port registration over to use InteractiveAuth
2017-03-03 13:37:41 +00:00
David Baker
0914226327
Actuall pass our proxy makeRegistrationUrl
2017-03-02 14:47:47 +00:00
David Baker
3028b335a4
Oops, re-add referrer param
...
as Registration was still using it
2017-03-02 14:46:18 +00:00
David Baker
dd762cc835
Add makeRegistrationUrl to proptypes
2017-03-02 14:40:55 +00:00
David Baker
a5cf3a964b
doc
2017-03-02 14:39:25 +00:00
David Baker
95cff17698
Merge pull request #721 from matrix-org/luke/fix-refactor-UnknownDeviceDialog
...
Show UDDialog on UDE during VoIP calls
2017-03-02 13:13:45 +00:00
Luke Barnard
39427839b9
Use ES6 export style
2017-03-01 14:33:25 +00:00
David Baker
dd33624454
Merge remote-tracking branch 'origin/develop' into dbkr/register_ui_auth
...
(This ended up mostly being merged by hand as git made a complete
mess of the merge)
2017-03-01 10:45:17 +00:00
Luke Barnard
0ef8e2a8f4
Various fixes
2017-02-28 15:18:00 +00:00
Luke Barnard
48a3d0d595
Refactor to not set team token in bad ways
...
Use the on_logged_in dispatch instead. Call setPage in one place, _onLoggedIn, when deciding which page to view on login. Change some require to import, var to const. Remove onTeamMemberRegistered and just use a nullable argument to onRegistered
2017-02-28 15:05:49 +00:00
David Baker
c22db1db5f
Fix race when signup is completed elsewhere
...
as commented
2017-02-27 18:22:26 +00:00
Luke Barnard
7221900497
Refactor remove resend_all_events and cancel_all_events dispatches
2017-02-27 13:39:12 +00:00
David Baker
51467506f8
Port registration over to use InteractiveAuth
...
These changes are moved over from the dbkr/msisdn_signin branch
2017-02-24 11:41:23 +00:00
Luke Barnard
e1a40a8ef0
Notify MatrixChat of teamToken after login
2017-02-23 16:30:26 +00:00
Luke Barnard
436e6b36f1
Move UDE handling to a its own file, adjust wording
2017-02-22 16:42:14 +00:00
Luke Barnard
c13ff254b1
Add "Retry" button to UDE
2017-02-22 10:21:43 +00:00
Luke Barnard
878e31eba2
Show UDDialog on m.call.invite failure
...
Requires https://github.com/matrix-org/matrix-js-sdk/pull/378
Also, refactored UDDialog creation into its own dispatch event, because there will be other parts of the code that will want to spawn one.
2017-02-21 17:22:22 +00:00
Luke Barnard
9eef3c53a3
Allow setting the default HS from the query parameter
...
Fixes https://github.com/vector-im/riot-web/issues/3207
2017-02-20 16:53:26 +00:00
Luke Barnard
9d2bb70823
If the home page is somehow accessed, goto directory
...
For example, if someone ends up on /home somehow, just redirect to the directory instead of displaying a very awkward "File not found" plain text in the home page iFrame.
2017-02-16 17:03:22 +00:00
David Baker
973b92b8f6
Merge pull request #694 from matrix-org/dbkr/confirm_ban
...
Add confirmation dialog to kick/ban buttons
2017-02-14 17:31:51 +00:00
David Baker
6663f5bff0
Remove commented stuff
...
That I've now broken such that it wouldnt work if it were
uncommented
2017-02-14 16:12:04 +00:00
Luke Barnard
1b8e93d4f2
Treat the literal team token string "undefined" as undefined
...
Some users appear to have gotten team tokens into their local storage. This fix will treat the literal string "undefined" as undefined.
2017-02-14 12:56:29 +00:00
David Baker
18cba1fe45
Merge pull request #689 from matrix-org/luke/rts-set-team-token-view-home
...
View /home on registered /w team
2017-02-14 10:21:23 +00:00
Luke Barnard
16e3365240
Use a callback prop instead of window.
2017-02-13 14:36:35 +00:00
Luke Barnard
75deb55844
Null check on teamName
2017-02-13 11:48:03 +00:00
Luke Barnard
bdd031eac2
Enable branded URLs again by parsing the path client-side
...
Use the first path segment to key off config.teamTokenMap, which contains a mapping to teamTokens. The client then behaves as before, keeping the path in the address bar constant with no redirects required.
2017-02-10 15:09:45 +00:00
Luke Barnard
ec730056d8
Alter comment
2017-02-10 11:39:22 +00:00
Luke Barnard
bab6a0b84a
Persist query parameter team token across refreshes
2017-02-10 11:31:04 +00:00
David Baker
fe17e2452b
Merge pull request #676 from matrix-org/luke/rts-team-token-login
...
Get team_token from the RTS on login
2017-02-08 10:54:24 +00:00
Luke Barnard
3d30db81e0
Only init RTS if configured correctly
2017-02-07 15:24:57 +00:00
Luke Barnard
d5f6ecdc49
Use teamToken, not config when doing screen fallback
2017-02-07 13:23:58 +00:00
Luke Barnard
c93b6c3c34
Style, fixes
2017-02-07 13:15:40 +00:00
Luke Barnard
173e80a5de
Get team_token from the RTS on login
...
Use the /login endpoint of the RTS to get the team token when the user has successfully logged in.
2017-02-03 14:34:24 +00:00
Luke Barnard
efae5f6bf1
Use localStorage team token with fall-back on query parameter
2017-02-03 11:48:24 +00:00
Luke Barnard
8c941b11cd
Use mx_team_token
instead of config
2017-02-02 11:22:40 +00:00
Luke Barnard
acde1f3db7
Merge branch 'develop' into luke/rts-welcome-pages
...
Conflicts:
src/components/views/avatars/BaseAvatar.js
2017-02-01 17:22:45 +00:00
Luke Barnard
878e5593ba
Implement tracking of referrals ( #659 )
...
* Implement tracking of referrals
This also modifies (or fixes) auto-joining.
2017-01-31 11:13:05 +00:00
Luke Barnard
4e0889454a
GET /teams from RTS instead of config.json
...
Now that the RTS contains config for teams, use GET /teams to get that information so that users will see be able to register as a team (but not yet auto-join rooms, be sent to welcome page or be tracked as a referral).
2017-01-30 15:50:31 +00:00
Kegan Dougal
97387db014
Reduce log spam: Revert a16aeeef2a
...
As per #riot-dev, this is no longer required.
2017-01-24 16:40:26 +00:00
David Baker
18d4d3392a
Fix a bunch of linting errors
...
eslint --fix and a few manual ones
2017-01-20 14:22:27 +00:00
Richard van der Hoff
a16aeeef2a
Temporarily add more logging, to try to catch failures on travis
2017-01-20 13:06:06 +00:00
Matthew Hodgson
b76b0f755d
fix context menu bg
2017-01-20 02:47:47 +00:00
Richard van der Hoff
a88f9fdd73
(hopefully) fix theming on Chrome
...
Jump through some hoops to make Chrome behave sensibly on non-default themes.
2017-01-19 15:36:57 +00:00
Matthew Hodgson
4e5689082d
correctly load synced themes without NPE
2017-01-18 20:06:54 +00:00
Matthew Hodgson
3d30553b7f
review fixes, plus unbreak to work with new webpack layout
2017-01-18 14:06:47 +00:00
Matthew Hodgson
a0bbe3a306
Merge branch 'develop' into matthew/postcss
2017-01-18 12:52:59 +00:00
Luke Barnard
5ef5204c8c
Implement simple team-based registration ( #620 )
...
* Implement simple team-based registration
Config required goes in the `teams` top-level property in config.json. This consists of an array of team objects:
```json
{
"name": "University of Bath",
"emailSuffix": "bath.ac.uk"
}
```
These can be selected on registration and require a user to have a certain email address in order to register as part of a team. This is for vector-im/riot-web#2940 . The next step would be sending users with emails matching the emailSuffix of a team to the correct welcome page as in vector-im/riot-web#2430 .
2017-01-18 12:48:28 +01:00
Matthew Hodgson
8288eb730c
a rather hacky implementation of theme switching
2017-01-17 19:13:23 +00:00
David Baker
13a5337e0f
Fix 'create account' link in 'forgot password'
...
Fixes https://github.com/vector-im/riot-web/issues/2853
2017-01-10 15:16:39 +00:00
Mark Haines
81e429eb14
Fix e2e attachment download by using iframes. ( #562 )
...
* Render attachments inside iframes.
* Fix up the image and video views
* Fix m.audio
* Comments, and only use the cross domain renderer if the attachment is encrypted
* Fix whitespace
* Don't decrypt file attachments immediately
* Use https://usercontent.riot.im/v1.html by default
* typos
* Put the config in the React context.
Use it in MFileBody to configure the cross origin renderer URL.
* Call it appConfig in the context
* Return the promises so they don't get dropped
2016-12-02 14:21:07 +00:00
David Baker
8547d00f32
Don't default the page_type to room directory
...
As it breaks the behaviour of redirecting to /#/directory
2016-11-24 16:39:48 +00:00
David Baker
2aba646acd
Clear room alias etc. on logout
2016-11-24 14:58:37 +00:00
David Baker
0069393650
Go back to same room after logging in
2016-11-24 13:28:51 +00:00
David Baker
0bc4659fe0
Fix crash on logging in
...
If you arrived at the page via a link to a room.
Fixes https://github.com/vector-im/vector-web/issues/2634
2016-11-24 12:33:31 +00:00
Matthew Hodgson
a967ddd1cb
quick and dirty support for custom welcome pages, with an example for geektime techfest
2016-11-13 14:10:46 +00:00
Richard van der Hoff
cb5b311e44
Move saveScrollState into RoomView
...
It fits much more naturally here than in LoggedInView.
2016-11-04 09:28:35 +00:00
Richard van der Hoff
f85a37c667
Factor out LoggedInView from MatrixChat
...
The idea here is to make a layer which sits around for as long as we have a
valid MatrixClient. Also it makes a plausible split for the render of
MatrixChat, even if they are much too tightly bound for now.
2016-11-03 18:59:32 +00:00
David Baker
3c4370c180
Move 'new version' support into Platform
...
Also adds support for the platform providing a changelog
2016-11-02 15:58:17 +00:00
David Baker
f433f9ca32
Move platform-specific functionality into Platform
...
Platform classes are provided by the application via
PlatformPeg.set().
2016-11-02 15:10:21 +00:00
David Baker
91771ec17d
Ce n'est pas Python
2016-10-01 10:34:21 +01:00
David Baker
6abf6c9ec0
Merge pull request #505 from matrix-org/dbkr/dont_replacestate
...
Fix version going blank after logging in
2016-09-30 14:32:01 +01:00
David Baker
be99f17ee0
Oops, right variable
2016-09-30 14:05:01 +01:00
David Baker
8aeb0cfb68
Dedicated function for resetting screen state
2016-09-30 11:56:32 +01:00
David Baker
c41a8da4be
Argh, there's more
2016-09-30 11:40:27 +01:00
David Baker
2f7366cb8a
Comment state fields
2016-09-30 11:37:50 +01:00
David Baker
d5af2d2c52
Use 'Sign In' / 'Sign Out' universally
...
Rather than a mix of 'sign in/out' and 'log in/out'
2016-09-29 17:38:52 +01:00
David Baker
8cbddfcf28
Fix version going blank after logging in
...
Don't use replaceState in MatrixClient: there's lots of stuff in
MatrixClient's state now (including the app version) so replacing
the entire state doesn't really make sense (and also blows away
all of the nice defaults we set in getInitialState). Instead,
setState of the things we actually care about wherever we used
replaceState.
Also add a couple of state variables to getInitialState that were
missing.
Fixes https://github.com/vector-im/vector-web/issues/2322
2016-09-29 17:23:07 +01:00
David Baker
746aad9a18
Oops, missed one
2016-09-19 14:47:08 +01:00
David Baker
1341ffca59
Merge pull request #479 from matrix-org/dbkr/directory_network_selector
...
Pass through config for Room Directory
2016-09-16 17:08:44 +01:00
Matthew Hodgson
ff00474aa5
show RightPanel when people click on users
2016-09-16 02:37:06 +01:00
David Baker
44fa851275
Pass through config for Room Directory
2016-09-15 17:18:53 +01:00
Matthew Hodgson
8508e006f0
Merge pull request #469 from matrix-org/wmwragg/chat-multi-invite
...
Wmwragg/chat multi invite
2016-09-13 19:30:02 +01:00
Matthew Hodgson
17cf2fc745
Merge pull request #470 from matrix-org/matthew/right-panel-collapse
...
Matthew/right panel collapse
2016-09-13 19:09:18 +01:00
David Baker
5450e93df1
Verbiage
2016-09-13 16:56:53 +01:00
David Baker
3741768a3a
Add modal dialog on new room button
...
https://github.com/vector-im/vector-web/issues/2178
2016-09-13 16:40:15 +01:00
wmwragg
2db8f4ae67
Added pass through of roomId
2016-09-13 14:30:37 +01:00
wmwragg
ca1bb0f700
Added new Invite button in the RHS footer which calls the new 'view_invite' action
2016-09-13 14:28:03 +01:00
Matthew Hodgson
3b52081092
wip for collapsable RHS
2016-09-13 12:18:22 +01:00
wmwragg
99dfcb4ed2
It's no longer a onde to one chat dialog, as you can invite multiple people
2016-09-13 10:33:15 +01:00
wmwragg
7dfb8857d8
Merge branch 'develop' into wmwragg/one-to-one-chat
2016-09-07 17:22:10 +01:00
David Baker
df1cc8748f
Change references to MatrixTools to Rooms
...
or remove where they were unused
2016-09-07 11:33:58 +01:00
wmwragg
d9c6448a0f
Adding better deafults and ErrorDialog message
2016-09-05 14:29:21 +01:00
wmwragg
9c0f51fb82
Merge branch 'develop' into wmwragg/one-to-one-chat
2016-09-05 12:06:31 +01:00
wmwragg
ca443e01d8
Initial commit of the new ChatInviteDialog
2016-09-05 12:03:16 +01:00
wmwragg
67c623d410
Rename the action to make it clearer what it is doing
2016-09-05 10:29:03 +01:00
Richard van der Hoff
b4521bc44c
review feedback
2016-09-01 22:45:09 +01:00
wmwragg
e7d4ef74d0
Placeholder for one to one chat dialog and functionality
2016-09-01 16:45:24 +01:00
Richard van der Hoff
ba341c11fb
Show session restore errors on the login screen
...
If we are unable to load the matrix session on startup, don't just get stuck at
a spinner; instead, show the error on the login screen.
2016-09-01 11:08:40 +01:00
Matthew Hodgson
5e105e1be6
make /user URLs work
2016-08-28 14:04:11 +01:00
Matthew Hodgson
de82ac3bc0
don't change URL bar when clicking on linkified rooms or users.
...
be aware of /user paths.
2016-08-28 02:05:31 +01:00
Matthew Hodgson
ad873c2b60
handle matrix.to links correctly. add partial support for #/user URLs
2016-08-28 01:55:42 +01:00
Aviral Dasgupta
ff39d52431
add fancy changelog dialog
2016-08-16 03:33:47 +05:30
Richard van der Hoff
b9870f2c23
defaultDeviceDisplayName should be a prop
...
... not a bit of config.
2016-08-12 11:41:45 +01:00
Richard van der Hoff
a29325cc46
Set initial_device_display_name on login and register
...
Let Vector pass in a default device name, and thread it through everywhere to
set it on login and register calls
2016-08-12 10:55:02 +01:00
Richard van der Hoff
e32c325863
Don't use MatrixClientPeg for temporary clients
...
Get rid of MatrixClientPeg.replaceUsingUrls, and instead create local,
temporary MatrixClients for the unauthed steps; we therefore only use
MatrixClientPeg for logged-in clients.
2016-08-11 16:23:03 +01:00
Richard van der Hoff
e06763d421
Move guest registration into the login logic
2016-08-11 13:05:16 +01:00
Richard van der Hoff
bbfb9291f8
Refactor login token
...
move the logic for handling login tokens into Lifecycle.loadSession
This means it needs access to the (real) query parmeters, so it depends on
corresponding changes in vector-web.
2016-08-11 11:02:52 +01:00
Richard van der Hoff
1fbddcf6af
Use the current HS for guest login
...
Make sure that we use the homeserver from localstorage for guest regsistration,
in preference to the default.
Also rename the parameters for loadSession
2016-08-11 01:39:33 +01:00
Richard van der Hoff
68f8db3834
Avoid flashing up login screen during guest registration
...
Fix a bug where we would flash up the login screen during guest registration if
you followed a room link.
2016-08-10 14:34:44 +01:00
David Baker
e0f71977b4
Merge pull request #397 from matrix-org/rav/factor_out_sessionloader
...
Start to factor out session-loading magic
2016-08-10 11:40:58 +01:00
Richard van der Hoff
26c7c9e994
Make SessionLoader a function
...
There's no point in it being a React component.
2016-08-10 11:36:26 +01:00
David Baker
13a4bfa8fe
Merge pull request #396 from matrix-org/rav/fix_react_warning
...
Hack around a react warning
2016-08-10 10:09:18 +01:00
Richard van der Hoff
24841cc5c4
Start to factor out session-loading magic
...
Take some of the magic out of MatrixChat.componentDidMount() into a new
component.
Also delete the MatrixChat test. It wasn't really doing much, is broken by the
change, and I am replacing it with (better) app-level tests in the vector
project.
2016-08-10 00:05:44 +01:00
Richard van der Hoff
a1d3db76e5
Hack around a react warning
...
when login completes, we replace the whole state, which means we unset
collapse_lhs, which then leads to complaints from the RoomList.
I think the 'default view' for MatrixChat ought to be factored out to another
component, which could manage collapse_lhs properly; but for now, hack around
it.
2016-08-09 23:57:36 +01:00
David Baker
4b8ad3c102
Merge pull request #393 from matrix-org/dbkr/enable_labs
...
Add config to hide the labs section
2016-08-05 17:25:25 +01:00
David Baker
f8d02c1551
pr feedback
2016-08-05 16:36:35 +01:00
David Baker
e8ee5c2f96
Add config to hide the labs section
2016-08-05 16:13:06 +01:00
Matthew Hodgson
90e5ab2ca3
merge in develop
2016-08-04 13:39:47 +01:00
David Baker
cbfb0ad998
Merge pull request #377 from matrix-org/dbkr/use_logout_api
...
Call the logout API when we log out
2016-08-03 17:51:42 +01:00
David Baker
d9a7d50a03
Add an interface for MatrixClientCreds
...
and make MatrixClientPeg functions use it consistently
2016-08-03 10:46:42 +01:00
David Baker
cf7e7d65c8
Don't start the client twice
...
if we have a guest_access_token
2016-08-03 10:15:50 +01:00
David Baker
e3a5776eae
We should clear /login off the URL after login
2016-08-03 09:57:12 +01:00
David Baker
4825ab8fe7
No need to set options in WillStartClient
...
We can set them any time up to that point
2016-08-03 09:53:02 +01:00
David Baker
0c2bd10594
Comment functions
2016-08-02 19:05:05 +01:00
David Baker
0c61c52480
Just use Lifecycle.setLoggedIn
2016-08-02 19:02:07 +01:00
David Baker
d74a8e405d
Remove unused function
2016-08-02 19:00:01 +01:00
David Baker
65865f879f
We already know we're a guest here
2016-08-02 18:59:09 +01:00
David Baker
58bbb35096
s/login/setLoggedIn/
2016-08-02 18:48:27 +01:00
David Baker
3818a89ca3
Comment guestCreds
2016-08-02 18:46:43 +01:00
David Baker
db9750a7e3
Call the logout API when we log out
...
Also try to refactor some of the login/logout code out of MatrixChat and into a separate Lifecycle.js. This still isn't great, but it at least gets some code out of MatrixClient.
2016-08-02 14:04:20 +01:00
wmwragg
0660b9feff
Fixes to properly point to the moved components
2016-07-27 14:49:10 +01:00
wmwragg
a385955c6b
Fixed MatrixChat Dialog Spinner. Still needs testing, unsure what triggers it.
2016-07-17 21:23:52 +01:00
Richard van der Hoff
2ddfccdab3
Merge pull request #318 from matrix-org/dbkr/fix_default_hs
...
Fix https://github.com/vector-im/vector-web/issues/1679
2016-06-21 17:55:27 +01:00
David Baker
d3265ab970
Redundant getDeafultHs()
...
This now can never be falsey so no point checking it
2016-06-21 17:46:55 +01:00
David Baker
213e284edf
Fix https://github.com/vector-im/vector-web/issues/1679
2016-06-21 11:05:37 +01:00
David Baker
fc06ebcc63
Fix view_next_room
2016-06-20 18:43:56 +01:00
David Baker
4c214119b2
Fix PR feedback
2016-06-20 18:05:58 +01:00
David Baker
d8dedae084
Fix /join to be consistent with the other code
...
Plus a number of other tidyups:
* Fix /join to dispatch a view_room for the room alias
with the additional auto_join parameter
* Make RoomView automatically join the room if the auto_join
parameter is true and the user isn't already in it
* Tidy up RoomView's peeking code, also fixing
https://github.com/vector-im/vector-web/issues/1220
in react-sdk (although it still requires a synapse change
to actually fix, but react-sdk does 'the right thing').
* Remove duplication of usage text from /join command
* Amalgamate MatrixChat::_viewRoom's many, many parameters
into an object and sort out case consistency a little.
2016-06-20 16:30:51 +01:00
Matthew Hodgson
94aec10512
Merge branch 'develop' into dbkr/scalar
2016-06-19 22:40:48 +01:00
David Baker
6adce649eb
Use the first alias is there's no canonical alias
2016-06-17 16:56:34 +01:00
David Baker
3b5378fa53
Show canonical alias in URL bar
...
Use https://github.com/matrix-org/matrix-js-sdk/pull/140 to get the canonical alias, because that's a thing now.
2016-06-17 15:17:45 +01:00
David Baker
0ef5cc891e
Add currentRoomId / Alias to getInitialState
...
with docs
2016-06-14 14:10:49 +01:00
David Baker
b8eee08d69
Fix member list vanishing
...
Add a callback to RoomView that it can give the room ID to once it's resolved it, since this lookup is now the responsibility of the roomview and only the roomview. The view_room action now has either an alias or an ID, not both. Also fix RoomView to load the room properly and not try to peek when it shouldn't.
2016-06-14 12:56:37 +01:00
David Baker
aaefdf19c5
Fix MatrixChat syntax fail
2016-06-14 11:57:07 +01:00
David Baker
11a38fce48
Fix peeking
...
Sorts out more of the room joining mess. currentRoom which held the room ID is now more appropriately called currentRoomId. RoomView will now take a roomID or alias as before but will now look up the room ID as required if given the alias. Also, now look up the alias every time you click on it so it's never stale, rather than looking in your current rooms for a room that thinks it has that ID.
2016-06-14 11:37:04 +01:00
David Baker
719928f389
Remove view_room_alias
...
As it was basically the same as view_room. Use view_room instead which will handle whether we pass an ID or an alias into RoomView
2016-06-10 15:12:42 +01:00
David Baker
72b3ce200d
Make the room directory join rooms by alias
...
Also makes some improvement on the multiple code path mess for joining rooms
2016-06-09 18:49:06 +01:00
David Baker
049e3a968b
Merge pull request #303 from matrix-org/rav/factor_out_createroom
...
Factor out common parts of room creation
2016-06-09 11:05:22 +01:00
Richard van der Hoff
de36aa63fb
Factor out common parts of room creation
...
Take the duplicated code out of MatrixChat and MemberInfo, and put it in a
separate 'createRoom' module
2016-06-09 10:58:25 +01:00
David Baker
98ef793809
Default IS should be vector.im now
2016-06-09 10:56:14 +01:00
David Baker
bb405563c8
Fix default servers
2016-06-09 10:54:56 +01:00
David Baker
05404efa34
Remove if (this.props.config)
...
Since it now defaults to the empty dictionary (and if you pass null in, you deserve everything you get).
2016-06-09 09:53:37 +01:00
David Baker
c123f02842
Make the config optional
2016-06-08 18:45:46 +01:00
David Baker
7e8c8dd336
Remove SdkConfig
...
just take a config in MatrixChat, pass the individual things down through the chain.
This may become unwieldy: let's see how it goes.
2016-06-08 14:54:34 +01:00
David Baker
b54376aa2a
Add singleton object to hold SDK configuration
2016-06-07 21:49:06 +01:00
David Baker
fdcebe1e56
Merge remote-tracking branch 'origin/develop' into dbkr/scalar
2016-06-06 17:19:38 +01:00
Matthew Hodgson
83fd02bdfa
specify a brand when registering accounts
2016-06-02 11:51:26 +01:00
Matthew Hodgson
272afe39dc
do not list rooms by default
2016-06-01 02:03:53 +01:00
David Baker
118eec8cc0
Add a fallback home server to log into
...
If login fail with a credential error on the default HS, try
logging in on the fallback one.
2016-05-27 14:57:43 +01:00
Matthew Hodgson
be5f29d03b
Merge branch 'develop' into dbkr/scalar
2016-05-17 20:37:16 +01:00
Matthew Hodgson
fd09d5c570
switch badge count to per-conversation, and add per-room badges
2016-05-17 11:14:12 +01:00
David Baker
6da4b9d671
Add suport for showing the scalar UI
2016-05-06 14:19:56 +01:00
Matthew Hodgson
b86af8939a
fix usersettings cancel fail on new accounts
2016-05-05 15:30:56 +01:00
Richard van der Hoff
0fd0b0c5f3
Whitespace fixes
...
Fix some trailing whitespace
2016-04-22 17:05:48 +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
19770563f4
add cancelButton to simpleHeader
2016-04-15 22:16:19 +01:00
Richard van der Hoff
85277a237a
Merge pull request #270 from matrix-org/rav/issue_1314_federated_rooms
...
RoomView: Handle joining federated rooms
2016-04-13 16:36:46 +01:00
Richard van der Hoff
ec5ca1ca28
s/roomAlias/roomAddress/ to reduce confusion
2016-04-13 12:26:40 +01:00
Richard van der Hoff
047524d093
Merge pull request #269 from matrix-org/rav/stop_client_on_unmount
...
Stop the MatrixClient when the MatrixChat is unmounted
2016-04-13 11:05:02 +01:00
Richard van der Hoff
93a142480c
RoomView: Handle joining federated rooms
...
This hopefully fixes an issue where joining a federated room via the directory
would get stuck at a spinner of doom, due to us not recognising the room in
question when it came down the /sync. We now catch the room id in the response
from the /join, and use it to match up the room in onRoom.
props.roomAlias, props.roomId, and state.room.roomId were somewhat confusing,
so I've tried to rationalise them:
* props.roomAlias (named thus to stop you assuming it's a room id) is the
thing that the parent component uses to identify the room of interest, and
can be either an ID or an alias (ie, it replaces props.roomId and
props.roomAlias)
* Everything that needs a room ID now has to get it from state.room.roomId.
2016-04-13 08:59:28 +01:00
Richard van der Hoff
1361333fdc
Stop the MatrixClient when the MatrixChat is unmounted
...
The MatrixClient never gets unmounted in the real app, but I've been working on
some tests which would rather like to be able to create and destroy MatrixChats
and not have the clients hang around forever.
2016-04-12 18:38:10 +01:00
Matthew Hodgson
11f3d5f993
make the UI fadable to help with decluttering
2016-04-12 17:18:32 +01:00
Richard van der Hoff
8b8ee21765
Catch pageup/down and ctrl-home/end at the top level
...
Make the scroll keys work when the focus is outside the message panel.
2016-04-05 13:40:36 +01:00
Matthew Hodgson
1a62369a01
prioritise new version bar
2016-03-23 18:05:47 +00:00
David Baker
d6218ca153
Actually calling functions often helps.
2016-03-23 12:02:26 +00:00
David Baker
30b76d372c
Error messages for guests creating rooms
2016-03-22 12:58:12 +00:00
Matthew Hodgson
bbd57f2bdf
when starting chat from memberinfo, allow guest access. in future synapse should make guest_access a default for the private_chat preset.
2016-03-20 12:39:49 +00:00
Richard van der Hoff
15c9ad87a1
Merge pull request #231 from matrix-org/rav/pending_event_list
...
Use new pendingEventList functionality from matrix-js-sdk
2016-03-18 16:17:56 +00:00
David Baker
b4dd7ba509
I mean string, object
2016-03-18 16:04:58 +00:00
Richard van der Hoff
b93af2d536
Use new pendingEventList functionality from matrix-js-sdk
...
Update react-sdk to use `pendingEventOrdering`==`detached` instead of
`end`. Look for pending events in the pendingEvent list, and use
MatrixClient.cancelPendingEvent to, uh, cancel pending events.
2016-03-17 22:26:06 +00:00
David Baker
f1844a99e7
WIP on fixing https://github.com/vector-im/vector-web/issues/924
...
Pass the invited email through to RoomPreviewBar, display it in a temporary way currently.
Remove a condition from RoomView render that appears to be functionally identical to the previous.
2016-03-17 18:38:25 +00:00
Matthew Hodgson
9dcdf0ae51
Merge pull request #227 from matrix-org/matthew/fix-notif-spam
...
Correctly fix notif spam after logout/login
2016-03-17 14:37:01 +00:00
David Baker
b960d1d462
Make getCurrent[H|I]SUrl honour the state setting that comes from the url bar.
...
Fixes @ara4n's later bug in https://github.com/vector-im/vector-web/issues/1027
2016-03-17 11:33:25 +00:00
Matthew Hodgson
08618f6ad5
remove start_login_from_guest and instead make logout able to preserve guestCreds
2016-03-17 02:09:49 +00:00
Matthew Hodgson
74acc0b564
keep the existing colour scheme
2016-03-16 18:58:04 +00:00
Matthew Hodgson
6016ba70d9
Merge pull request #221 from aviraldg/feature-sync-status
...
Display sync status in favicon and title.
2016-03-16 18:56:57 +00:00
Matthew Hodgson
74aad34dfb
Merge pull request #220 from matrix-org/matthew/cancellable-upgrade
...
allow registration and login from guest to be cancellable
2016-03-16 14:38:00 +00:00
Matthew Hodgson
90aa4223f2
merge develop
2016-03-16 14:37:12 +00:00
Matthew Hodgson
b58a1707cb
Merge pull request #219 from matrix-org/matthew/fix-guest-upgrade
...
let registering guests either upgrade or create a new account by spec…
2016-03-16 11:58:44 +00:00
Matthew Hodgson
b457a4e4a2
improve semantics for when the 'return to app' prompt is shown
2016-03-16 11:48:32 +00:00
Aviral Dasgupta
b47ea1ca4b
Color for sync status, less scary message
2016-03-16 06:32:49 +05:30
Aviral Dasgupta
47c3419c0e
Display sync status in favicon and title
...
Signed-off-by: Aviral Dasgupta <me@aviraldg.com>
2016-03-16 05:31:50 +05:30
Matthew Hodgson
5f68f1313b
show warning if guest login disabled
2016-03-15 23:01:59 +00:00
Matthew Hodgson
b7726d34d5
allow registration and login from guest to be cancellable
2016-03-15 21:04:11 +00:00
Matthew Hodgson
f66dd69710
oops, revert - do this on the right branch...
2016-03-15 18:40:03 +00:00
Matthew Hodgson
b23cad5613
let registering guests either upgrade or create a new account by specifying a new username. fixes https://github.com/vector-im/vector-web/issues/1161
2016-03-15 18:36:13 +00:00
Matthew Hodgson
f70eec62d1
let registering guests either upgrade or create a new account by specifying a new username. fixes https://github.com/vector-im/vector-web/issues/1161
2016-03-15 18:35:09 +00:00
Matthew Hodgson
672a5cb89c
Merge pull request #200 from matrix-org/matthew/loginfixes
...
Bring back lost functionality on login/register/password-reset screens
2016-03-15 15:21:32 +00:00
David Baker
836f7ca80d
Merge pull request #218 from matrix-org/session_logged_out
...
Handle the new Session.logged_out event.
2016-03-15 14:51:50 +00:00
Matthew Hodgson
438558da55
PR feedback
2016-03-15 13:48:46 +00:00
David Baker
a1b875bb25
Handle the new Session.logged_out event. Log the user out and display a message telling them they've been logged out.
...
Requires https://github.com/matrix-org/matrix-js-sdk/pull/100 (but safe without)
Fixes https://github.com/vector-im/vector-web/issues/414
2016-03-15 10:48:16 +00:00
Matthew Hodgson
5e050c6276
hopefully fix https://github.com/vector-im/vector-web/issues/819
2016-03-15 00:49:44 +00:00
Matthew Hodgson
79eb54058f
oops, backout WIP
2016-03-15 00:48:19 +00:00
Matthew Hodgson
005ebbd037
stop avatar mxids being copy-pastable (unless they contain an initial). should significantly improve https://github.com/vector-im/vector-web/issues/893
2016-03-15 00:21:05 +00:00
Matthew Hodgson
893e338917
incorporate keganfeedback
2016-03-12 19:49:54 +00:00
David Baker
42a90f49c2
Use the guest access tokens sent in 3pid invite emails.
2016-03-07 17:11:01 +00:00
Minhaz A V
7e7493b336
removed typeof and todo
...
Signed-off-by: Minhaz A V <minhazav@gmail.com>
2016-03-07 21:16:35 +05:30
Matthew Hodgson
0bb58dd60c
brings back the functionality in login/register/screens that got lost in @kegsay's refactor. specifically:
...
1) custom HS/IS urls are now persisted in HTML5 local storage. As a result, all the login components now distinguish between default HS/IS URLs and custom specified ones again. (
2) custom HS/IS urls are synchronised between the instances of ServerConfig found in the Login, Registration and Forgot Password screens.
3) username are persisted over changing homeserver (but not password, to stop accidentally leaking passwords to the wrong server)
4) correctly interpret a blank URL field as meaning the placeholder text
5) when toggling custom URLs on and off, remember what the custom values were, and use the default URLs if custom mode is not engaged
also, guest access now upholds custom HS/IS URLs found in local storage rather than being limited to the server config ()
also adds assorted comments and improved console debug and a few minor cosmetic changes to the login components.
this commit sponsored by VS27...
2016-03-06 14:33:36 -05:00
Minhaz A V
3c1312a9e6
fixed issue vector-im/vector-web 1079
2016-03-05 23:36:24 +05:30
David Baker
068429f3e3
Tidy up starting from a room alias when not logged in.
2016-03-04 17:37:06 +00:00
David Baker
c585b3edee
anothert stray room_
2016-03-02 14:31:01 +00:00
David Baker
5827a883bf
This should be just oob_data too
2016-03-02 14:02:36 +00:00
David Baker
4184158a9a
Make comment match reality, attempt 2.
2016-03-02 14:01:21 +00:00
David Baker
6319c85272
Make comment match reality
2016-03-02 13:59:55 +00:00
David Baker
5bd2316e7f
Oops, it's just oob_data here
2016-03-02 13:58:52 +00:00
David Baker
9085a2a866
Pass room metadata from 3pid invite emails all the way through to the relevant components so we can display it.
2016-03-01 18:23:57 +00:00
Richard van der Hoff
4ce3598274
Make the initialSyncLimit configurable
...
I keep wanting to change this to test things, and can never find the right
place to change it. Make it configurable.
2016-02-24 16:42:23 +00:00
David Baker
3f51cda846
Register a s a guest even if email invite: this is ok now.
2016-02-23 18:30:35 +00:00
David Baker
e2bafcbf02
Don't redirect to registration on 3pid invite: it's ok to be a guest now.
2016-02-23 18:26:15 +00:00
David Baker
b2b7354018
Comment guest access initial state
2016-02-23 18:10:48 +00:00
David Baker
418bf8e39c
Allow guest access by default (by specifying initial state) as rooms are private by default so they'd have to be invited to join. People can't get a 3pid invite & join as guest without this.
2016-02-23 17:55:45 +00:00
David Baker
ac9f0f204d
Wire up support for keypair 3pid invites.
2016-02-23 10:15:07 +00:00
Matthew Hodgson
30e9c76089
login as guest button on the login page
2016-02-15 20:44:13 +02:00
Richard van der Hoff
576b59be66
Kill off the remains of auto_peek
...
Remove some dead code.
2016-02-09 15:45:41 +00:00
Kegan Dougal
ecaa2c1e11
Fix the mess of warning bars so it doesn't trigger remounts of alllll the components
2016-02-08 17:20:52 +00:00
Kegan Dougal
f3fa5d6a2a
Set the sync limit back to sane levels
2016-02-04 13:30:25 +00:00
Kegan Dougal
8b96af4ccb
Display the version in UserSettings. Change MatrixChat.onNewVersion to onVersion
2016-02-03 16:51:53 +00:00
Kegan Dougal
7bdd9f57a5
Add MatrixChat.onNewVersion to trigger the new version bar
2016-02-03 16:16:52 +00:00
David Baker
11df2fc285
Merge remote-tracking branch 'origin/develop' into dbkr/no_auto_join
2016-02-03 15:18:18 +00:00
Richard van der Hoff
e01d61dfeb
Merge branch 'rav/timeline_window' into rav/link_to_event
...
Conflicts:
src/components/structures/MatrixChat.js
src/components/structures/ScrollPanel.js
2016-02-03 14:12:28 +00:00
Richard van der Hoff
2479c81cf6
Merge remote-tracking branch 'origin/develop' into rav/timeline_window
2016-02-03 14:09:50 +00:00
Richard van der Hoff
c82b364ca8
Address review comments
...
Mostly renaming things and adding comments.
2016-02-03 08:03:10 +00:00
David Baker
1cabe2ec37
Don't auto join rooms: always 'autoPeek' (ie. see if we can peek, otherwise offer to join)
2016-02-02 15:50:15 +00:00
David Baker
c187eda832
Don't assert that we're not logged in before starting registration because uprading is now a thing.
2016-02-01 16:53:39 +00:00
Richard van der Hoff
d9e13780b8
Implement direct-to-event linking.
...
This adds support for links to particular event ids: add /<eventId> to the URL
for a room.
This commit also ensures that we scroll to the 'read marker' when switching to
a room which has no previous scroll state, as well as preventing that marker
from going past the middle of the screen.
This also reinstates the preservation of scroll state when switching rooms,
which was disabled previously.
2016-02-01 16:31:12 +00:00
David Baker
401d18bcc6
Fix registration: don't auto-log in as a guest if we have a URL from sydent.
2016-01-28 15:42:14 +00:00
David Baker
640e87e7c5
Merge pull request #117 from matrix-org/dbkr/guest_warning_bar
...
Add warning bar for guest users.
2016-01-28 13:44:06 +00:00
David Baker
83119d21d6
New style guest warning bar
2016-01-28 12:59:51 +00:00
Kegsay
12463aec4d
Merge pull request #115 from matrix-org/kegan/fix-3pid-signup
...
Redirect to the registration page when landing with ?email=
2016-01-28 12:00:06 +00:00
Richard van der Hoff
a4f4bb9e72
Convert RoomView to using a TimelineWindow
...
Instead of using the Room's active timeline directly, use a
TimelineWindow. This shouldn't (yet) have much effect, beyond maybe making
scrollback after a gappy sync slightly more efficient.
For now, I have disabled the 'restoreScrollState' functionality. This will be
reinstated once I land the link-to-event code.
2016-01-28 10:53:43 +00:00
Kegan Dougal
e017559765
New line
2016-01-28 09:58:51 +00:00
David Baker
7ea45f9888
Move message count to suffix in title, as requested by @ara4n
2016-01-27 18:03:01 +00:00
David Baker
8360c112fb
Put the favicon badge call in a try block, as per comment
2016-01-27 15:19:25 +00:00
Kegan Dougal
db8fab8019
Redirect to the registration page when landing with ?email=
...
Fixes "Missing access token" error.
2016-01-27 10:47:54 +00:00
Matthew Hodgson
c1f28bb6b9
hide 'unknown screen' warning
2016-01-24 19:14:14 +00:00
David Baker
99a491bb0e
Merge pull request #68 from matrix-org/notif_sync
...
Set room highlight from unread_notification_count
2016-01-21 10:31:42 +00:00
David Baker
acce08194d
Apply patch to the right branch: update for new count format
2016-01-21 10:23:18 +00:00
David Baker
1c54c64850
Merge pull request #99 from matrix-org/user_settings_on_register
...
Show user settings screen on registration
2016-01-21 10:11:28 +00:00
Matthew Hodgson
deca90d0a7
fix up Start Chat behaviour as per Amandine's feedback
2016-01-21 00:16:10 +00:00
David Baker
83634bf930
Update for new unread count format
2016-01-20 15:56:11 +00:00
Matthew Hodgson
491ba94230
WIP: try to support non-guest room peek. Rename visibility permissions in room settings a bit, and fix how they are persisted.
2016-01-18 17:39:23 +00:00
David Baker
0ac997491e
Clarify comment
2016-01-18 14:23:31 +00:00
Matthew Hodgson
51648b9bf0
merge develop
2016-01-18 14:02:19 +00:00
Matthew Hodgson
6e3245a3b0
make linkify userid jump to memberinfo
2016-01-18 01:26:15 +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
David Baker
7045906d5d
Show user settings screen on registration instead of the PostRegister stuff.
2016-01-15 18:58:18 +00:00
Matthew Hodgson
7cc5925ec4
increase initialSyncLimit enormously to avoid slow gappy /syncs for now
2016-01-15 13:28:41 +00:00
Matthew Hodgson
5f763f8ebb
merge develop
2016-01-13 14:03:54 +00:00
Matthew Hodgson
c9c496f0e5
WIP all new roomsettings
2016-01-13 13:15:13 +00:00
Matthew Hodgson
f715662d18
merge in develop, fixing conflicts
2016-01-13 13:06:27 +00:00
Matthew Hodgson
3934b42ac8
s/m.room.color_scheme/org.matrix.room.color_scheme/g # to make kegan happier
2016-01-13 13:01:00 +00:00
David Baker
67ff769962
Include invites in the badge count
2016-01-13 13:00:03 +00:00
Kegan Dougal
ec4e0d7687
Implement password reset
...
This adds a link to the login screen with "Forgot your password?". Clicking it
takes you to a form with fields for an email address and a new password. This
makes the same API calls as the Angular SDK.
Manually tested resetting + not clicking link + invalid email and it all seems
to work.
2016-01-12 17:20:16 +00:00
Kegan Dougal
fcdfce3760
Toggle auto-reg off when successfully registered as a guest.
...
Otherwise if you refresh -> auto-reg -> logout, you will get an infinite
spinner as it will think it is auto-registering again.
2016-01-11 15:12:55 +00:00
Matthew Hodgson
ef00a1624d
fix up RoomSettings somewhat and implement room colors
2016-01-08 03:22:38 +00:00
Kegan Dougal
a3df50f4c3
Implement guest account upgrading
2016-01-07 17:23:32 +00:00
Kegan Dougal
c64f36c81b
Merge branch 'develop' into kegan/guest-access
2016-01-07 13:21:06 +00:00
David Baker
99abd58f1a
Merge remote-tracking branch 'origin/develop' into notif_sync
2016-01-07 10:41:16 +00:00
David Baker
287da54fbc
Address PR comments
2016-01-07 10:38:44 +00:00
Matthew Hodgson
0772f50fab
update copyright for 2016
2016-01-07 04:06:52 +00:00
Kegan Dougal
ae7b2d54bb
Merge branch 'develop' into kegan/guest-access
2016-01-05 11:39:36 +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
David Baker
6ea3f21a8e
Favicon badges
2015-12-21 12:55:13 +00:00
Matthew Hodgson
e2ae2dd199
merge stuff from vector
2015-12-18 00:37:56 +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
Kegan Dougal
a670a7e4c4
Don't spam logging
2015-12-15 14:23:58 +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
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
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
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
Kegan Dougal
b64e5d49cc
Add magic flag to say 'dump pending events to the end'
2015-12-07 15:33:58 +00:00
Kegan Dougal
92cf14d5e9
Support registration as a guest
2015-12-04 15:28:35 +00:00
Kegan Dougal
d0ec84fe59
Hook up auto-registration as a guest to MatrixChat.
2015-12-04 11:34:50 +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
Kegan Dougal
784c1b63dc
Move remaining vector molecules to components
2015-12-01 11:19:25 +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