Commit Graph

232 Commits

Author SHA1 Message Date
David Baker cc2cee4af6 Retry sending events that fail to send. 2014-09-12 16:32:22 +01:00
David Baker 8b28f7d14e Always pick the incoming call if we've not yet sent out our invite, otherwise the remorte party will see their call get rejected and our call won't come in until our user clicks allow. 2014-09-12 14:06:35 +01:00
David Baker a81ec21762 Remove the local AV stream from ourselves when handing it off to a new call or we'll close it when we hang up. 2014-09-12 11:51:57 +01:00
Emmanuel ROHEE d934328904 Added edition of room name 2014-09-12 10:48:06 +02:00
Emmanuel ROHEE 6ea20f3503 Show room name updates in room history and recents.
Update it with the latest value
2014-09-12 10:12:56 +02:00
Emmanuel ROHEE 8b3ce85183 BF: temp workaround while /initialSync on a particular room is not available
initRoom on a new room is not called. Call it for any received events
2014-09-12 08:54:18 +02:00
David Baker a059ca6915 few fixes for errors in glare conditions. still seem to end up with no audio if both calls are placed at the same time. 2014-09-11 19:16:57 +01:00
David Baker 1e05e30472 Put back the line that adds the stream to the invite, otherwise caller->callee audio won't work... 2014-09-11 18:59:22 +01:00
David Baker 81d061e74e Fix bug where web client wold break trying to add the earliest token without having initialised the room if your first page of history contained only events which didn't call initRoom. Just call initRoom in handleMessages since we use it there rather than leaving it to the individual event handling methods. 2014-09-11 17:40:38 +01:00
David Baker fb082cf50f start towards glare support (currently not much better but no worse than before) including fixing a lot of self/var self/this fails that caused chaos when we started to have more than one call in play. 2014-09-11 15:24:18 +01:00
Emmanuel ROHEE 7e7eb0efc1 Show room topic change in the chat history and in the recents 2014-09-11 11:31:24 +02:00
Emmanuel ROHEE 8dcb6f24b5 getRoomEventIndex: improved speed for what it is used 2014-09-11 09:11:24 +02:00
Emmanuel ROHEE 44998ca450 Merge remote-tracking branch 'origin/develop' into webclient_initialSync 2014-09-10 18:35:05 +02:00
Emmanuel ROHEE 5a06f5c5fc Reenabled transparent echo message. It turns to opaque without flickering now. 2014-09-10 18:24:03 +02:00
Emmanuel ROHEE 30bfa911fc Member event: store use the the latest one 2014-09-10 16:26:11 +02:00
Emmanuel ROHEE da3f842b8c Removed wrong comments about recents-controller.js: it uses $rootScope.rooms not $rootScope.events.rooms managed by event-handler-service.js and used by other controllers 2014-09-10 14:53:03 +02:00
Emmanuel ROHEE 130cbdd7af dedup events: state events conflict with messages events. Do not consider them in deduplication 2014-09-10 14:45:32 +02:00
Emmanuel ROHEE b099634ba1 Reenabled handle of room states events in initialSync but do not add them to the displayed messages in the room page.
Show the m.room.member events only when they come from room.messages (from initialSync of pagination) not from room.state.
2014-09-10 14:36:30 +02:00
Emmanuel ROHEE c2afc6cd0a Presence events do not have event id. Do not discard them 2014-09-10 13:48:33 +02:00
David Baker 55fe0d8adc Less buggy rejection of calls when busy 2014-09-10 11:12:02 +01:00
Emmanuel ROHEE b63dd9506e Improved requests: pagination is done from the data received in initialSync 2014-09-10 12:01:00 +02:00
David Baker f90ce04a83 Hangup call if user denies media access. 2014-09-09 18:21:03 +01:00
David Baker ccfb42e4ff Don't try setting up the call if the user has canceled it before allowing permission. 2014-09-09 17:58:26 +01:00
David Baker 25e96f82db Don't break if you press the hangup button before allowing media permission. 2014-09-09 17:52:01 +01:00
David Baker 253c327252 Don't play an engaged tone if we hang up locally. 2014-09-09 17:38:40 +01:00
David Baker 472b4fe48c make calls work in Firefox 2014-09-09 14:54:06 +01:00
David Baker 16b40cbede Show call invites in the message table 2014-09-09 11:45:36 +01:00
Kegan Dougal 6bdb23449a Add ability to set topic by double-clicking on the topic text then hitting enter. 2014-09-08 18:40:34 -07:00
Kegan Dougal f64cc237fc Fixed bug which displayed an older room topic because it was being returned from /initialSync messages key. Check the ts of the event before clobbering state. 2014-09-08 17:27:51 -07:00
Kegan Dougal 324020d5fe Display the room topic in the room, underneath the name of the room. 2014-09-08 15:36:52 -07:00
Kegan Dougal da9b7b0368 Added big massive TODOs on a huge design problem with initial sync 2014-09-08 13:54:09 -07:00
Emmanuel ROHEE 9a5f224931 matrixService.rooms must be renamed matrixService.initialSync now 2014-09-08 18:21:41 +02:00
Emmanuel ROHEE 21d6ce2380 App startup improvements:
- do one and only one initialSync when the app starts. (recents-controller does not do its own anymore)
 - initialSync: get only the last message per room instead of default number of messages (10)

Prevent recents-controller from loosing its data each time the page URL changes
2014-09-08 18:14:35 +02:00
David Baker 972f664b6b add sounds to the calling interface 2014-09-08 16:10:36 +01:00
Matthew Hodgson dc1f202eca fix desktop notifs, which were broken in eab463fd 2014-09-08 11:28:51 +02:00
Matthew Hodgson ef0304beff disable broken event dup suppression, and fix echo for /me 2014-09-08 11:28:50 +02:00
Kegan Dougal dd2ae64120 Set the room_alias field when we encounter a new one, rather than only from local storage. 2014-09-08 11:28:50 +02:00
Matthew Hodgson 6e341aebab dedup all events 2014-09-06 00:36:55 -07:00
Matthew Hodgson a1bf28b7f0 handle m.room.aliases for id<->alias mapping; remove local_storage map; stop local echo flickering by removing opacity transition for now; implement /join 2014-09-06 00:32:39 -07:00
Kegan Dougal 1a298aad9c Added captcha support on both the HS and web client.
Merge branch 'captcha' of github.com:matrix-org/synapse into develop
2014-09-05 23:32:51 -07:00
Kegan Dougal 0b9e1e7b56 Added a captcha config to the HS, to enable registration captcha checking and for the recaptcha private key. 2014-09-05 17:58:06 -07:00
David Baker c03c255304 Better call bar (visually: still lacks ring[back] tones). 2014-09-06 00:14:02 +01:00
Kegan Dougal 130458385e Modified matrixService.register to specify if captcha results should be sent with the registration request. This is toggleable via useCaptcha in register-controller. 2014-09-05 13:56:36 -07:00
Emmanuel ROHEE 3be6156774 Created kick & unban methods in matrixService. Made some factorisation. 2014-09-05 17:30:50 +02:00
Emmanuel ROHEE 3501478828 BF: Make /unban work again 2014-09-05 16:56:50 +02:00
Emmanuel ROHEE 4b7a5b7bfa Fixed empty display name (content.displayname in a room member can be null) 2014-09-05 15:54:34 +02:00
Emmanuel ROHEE ec1cc29ecb Revert "Fixed empty display name (content.displayname in a room member can be null)"
This reverts commit f286a4fcd4.
2014-09-05 15:53:44 +02:00
Emmanuel ROHEE f286a4fcd4 Fixed empty display name (content.displayname in a room member can be null) 2014-09-05 15:50:44 +02:00
Matthew Hodgson 3bc7bba262 switch IRC-style command parser to use regexps rather than split(" ") so that it doesn't choke on consecutive whitespaces
yield better errors for invalid commands
don't pass invalid commands through as messages
support kick reasons
2014-09-04 23:14:52 -07:00
Emmanuel ROHEE 1bf6c3faad BF: presence PUT requests stopped to work with old "state" param yesterday evening :( -cda31fb755?diff=unified 2014-09-04 15:10:43 +02:00
Emmanuel ROHEE 3983bae160 Added mUserDisplayName, a filter to resolve a user display name from a user_id 2014-09-04 13:57:27 +02:00
Emmanuel ROHEE 7346ea85c0 Moved mRoomName filter into matrix-filter.js, a place for all generic filters using Matrix data. 2014-09-04 13:43:48 +02:00
David Baker d72ce4da64 Merge branch 'develop' of github.com:matrix-org/synapse into develop
Conflicts:
	synapse/http/client.py
2014-09-03 18:25:17 +01:00
David Baker a25d1530ef Make registering and logging in with a threepid work in the webclient. 2014-09-03 18:23:56 +01:00
Erik Johnston 66a5bc4fad Fix ban path 2014-09-03 18:19:57 +01:00
Erik Johnston 0d75b9fa96 Fix a few cases where we used user_id instead of state_key 2014-09-03 18:03:10 +01:00
Emmanuel ROHEE 5dd1a738f8 Use /rooms/$room_id/state/m.room.member/$user_id to change the membership of another user 2014-09-03 18:33:51 +02:00
Matthew Hodgson 8a7c1d6a00 fix the copyright holder from matrix.org to OpenMarket Ltd, as matrix.org hasn't been incorporated in time for launch. 2014-09-03 17:31:57 +01:00
Erik Johnston 073a42cc95 Add support for room names 2014-09-03 14:41:38 +01:00
Emmanuel ROHEE 4c7da89219 Do not define power level limits in setUserPowerLevel. Update the function to be used as a resetUserPowerLevel 2014-09-03 15:20:09 +02:00
Emmanuel ROHEE 932f35a7f0 Added /deop $user_id 2014-09-03 15:20:09 +02:00
Emmanuel ROHEE 4777c1cd5b BF: Do not be polluted by ops events that come when paginating back 2014-09-03 15:00:19 +02:00
Emmanuel ROHEE 4b85c5f52c Added /op $user_id $powerLevel 2014-09-03 14:12:56 +02:00
Emmanuel ROHEE 56427b8057 Added /ban command 2014-09-03 11:17:58 +02:00
Emmanuel ROHEE d5da6b0cef Handle "m.room.create" in order to inform controllers about new rooms 2014-09-02 13:55:23 +02:00
Emmanuel ROHEE 828101dd51 Represent user power level in a room by a red bar at the bottom of his avatar image. The width of this bar depends on the power level. 2014-09-02 11:54:35 +02:00
Matthew Hodgson 8fe912d95c change the world: make the default matrix API URL prefix /_matrix rather than /matrix to make it easier for existing websites to mount a HS in their namespace without collisions.
perl -pi -e 's#/matrix#/_matrix#g' ./cmdclient/console.py ./docs/client-server/howto.rst ./docs/client-server/specification.rst ./docs/client-server/swagger_matrix/directory ./docs/client-server/swagger_matrix/events ./docs/client-server/swagger_matrix/login ./docs/client-server/swagger_matrix/presence ./docs/client-server/swagger_matrix/profile ./docs/client-server/swagger_matrix/registration ./docs/client-server/swagger_matrix/rooms ./docs/server-server/specification.rst ./graph/graph.py ./jsfiddles/create_room_send_msg/demo.js ./jsfiddles/event_stream/demo.js ./jsfiddles/example_app/demo.js ./jsfiddles/register_login/demo.js ./jsfiddles/room_memberships/demo.js ./synapse/api/urls.py ./tests/federation/test_federation.py ./tests/handlers/test_presence.py ./tests/handlers/test_typing.py ./tests/rest/test_events.py ./tests/rest/test_presence.py ./tests/rest/test_profile.py ./tests/rest/test_rooms.py ./webclient/components/fileUpload/file-upload-service.js ./webclient/components/matrix/matrix-service.js
2014-08-31 14:51:37 +01:00
Matthew Hodgson 1bc036a12d nasty big monolithic commit of a whole bunch of UI/UX improvements:
- add a simple CSS template across the app for navigation & cosmetics
 - split login into login & register, and totally reskin it
 - restructure room CSS to play nicely with it
 - implement basis 1:1 chat from user pages
 - disable autofocus on iOS to improve UX
2014-08-31 00:40:42 +01:00
David Baker 490f142d73 Give basic feedback on the state of VoIP calls in the UI. 2014-08-29 18:01:01 +01:00
David Baker 0ef54caa28 better support for call hangups 2014-08-29 15:18:57 +01:00
Emmanuel ROHEE 7c4b47652e The away state is unavailable not offline 2014-08-29 15:33:02 +02:00
David Baker 073bec4830 Oops, forgot a s/sendObject/sendEvent/ - make messages work again! 2014-08-29 13:45:15 +01:00
David Baker cc413be446 Don't break if the call ends before it connects 2014-08-29 13:28:39 +01:00
David Baker 5308e3026a Change call signalling messages to be their own types of room events rather than room messages with different msgtypes: room messages should be things that the client can display as a unit message to the user. 2014-08-29 13:23:01 +01:00
David Baker 171d8b032f Merge branch 'voip' into develop
Conflicts:
	webclient/room/room-controller.js
2014-08-29 11:33:36 +01:00
David Baker 41d02ab674 More basic functionality for voip calls (like hanging up) 2014-08-29 11:29:36 +01:00
Emmanuel ROHEE ee079cd250 Added a timeout(40s) to $http stream requests (/events) in order to be notified by an error when there is a network issue. Thus, we can retry with a new request. 2014-08-29 11:32:06 +02:00
Emmanuel ROHEE 246b2a3c3e Renamed matrixService.assignRoomAliases into getRoomAliasAndDisplayName 2014-08-29 09:32:09 +02:00
David Baker ca7426eee0 First basic working VoIP call support 2014-08-28 19:03:34 +01:00
Emmanuel ROHEE 7c99ebdbd1 Added waitForInitialSyncCompletion so that clients can know when they can access to the data retrieved by the initialSync Request 2014-08-28 16:23:30 +02:00
Emmanuel ROHEE 06c79a23d4 BF: Made member events parsing work (handleEvents expects an array of events) 2014-08-28 16:23:30 +02:00
David Baker 7d34a1c108 WIP voip support on web client 2014-08-27 18:57:54 +01:00
Emmanuel ROHEE c67cac134f Moved assignRoomAliases into a central piece: matrixService for now 2014-08-27 15:55:51 +02:00
Emmanuel ROHEE e40d829363 Support limit and feedback param of initialSync 2014-08-27 15:55:51 +02:00
Kegan Dougal c585c87c4b Renamed /ds to /directory 2014-08-27 14:54:29 +01:00
Kegan Dougal 1d9d287c7c Renamed /public/rooms to /publicRooms 2014-08-27 14:52:07 +01:00
David Baker 474d913712 fix joining rooms on webclient 2014-08-27 13:59:14 +01:00
Kegan Dougal dd661769e1 Renamed /rooms to /createRoom. Removed ability to PUT raw room IDs, and removed tests which tested that. Updated cmdclient and webclient. 2014-08-27 11:33:56 +01:00
Kegan Dougal 5a93bfe1f0 Removed MessageRestServlet, use RoomSendEventRestServlet instead. Updated cmdclient, tests and webclient. All appears to work. 2014-08-26 17:21:48 +01:00
Kegan Dougal 2e70de09b9 Renaming: /im/sync >> /initialSync. /rooms/$roomid/members/list >> /rooms/$roomid/members. /rooms$roomid/messages/list >> /room/$roomid/messages. Updated cmdclient, tests and webclient. 2014-08-26 16:19:17 +01:00
Emmanuel ROHEE c21fcb3373 Determine and send user presence state 2014-08-26 16:25:27 +02:00
Kegan Dougal 9ff9caeb74 webclient: Updated to use /rooms/$roomid/[invite|join|leave] 2014-08-26 14:59:31 +01:00
Kegan Dougal 5796232cb1 Adjusted webclient to use new state paths. Updated membership msg template to actually show the person invited. Factored out common membership functions in matrix service. 2014-08-26 10:24:47 +01:00
Erik Johnston 239622f80b Merge branch 'develop' of github.com:matrix-org/synapse into release-v0.0.1 2014-08-22 15:48:09 +01:00
Erik Johnston 6118a102c1 Keep track of people's presence and query that when we update the members list. 2014-08-22 10:51:00 +01:00
Erik Johnston 74c90f7815 Reinitialize room when creating a RoomController so that we start off with a clean slate, as it expects/ 2014-08-22 10:51:00 +01:00
David Baker 3c349b408b Update web client to use new IS API. 2014-08-22 11:34:27 +02:00
Erik Johnston acf5127604 Make the content repo work with in daemon mode. Return the full url on upload. Update the webclient to use new content repo api. 2014-08-22 10:25:32 +01:00
Emmanuel ROHEE 53f4fbd99a resizeImage: generate an image in the format of the original image. (Tested with tranparent PNG, transparent GIF, BMP, JPEG) 2014-08-22 10:48:00 +02:00
Emmanuel ROHEE c8d0c4762d Safari needs the img.onload event before actually working on the img 2014-08-22 10:15:15 +02:00
Matthew Hodgson 3277a65052 actually display room metadata based on m.room.membe events 2014-08-21 19:02:00 +01:00
Erik Johnston 2e1ab9db08 Only start event streaming after having set up the controllers. 2014-08-21 17:55:41 +01:00
Erik Johnston 7dac1bfc91 Change webclient to always hit the im sync api before streaming so we get current presence state 2014-08-21 17:17:41 +01:00
Emmanuel ROHEE aac52fce15 Generate thumbnail client side and send its URL and info with the image message body 2014-08-21 15:00:20 +02:00
Emmanuel ROHEE 9d4bc8985f Made uploadContent compatible for sending Blob objects 2014-08-21 15:00:20 +02:00
Emmanuel ROHEE efe5aa6464 Added resizeImage() 2014-08-21 15:00:20 +02:00
Emmanuel ROHEE 6d3391f2f0 Send images with their imageInfo (size, mymetype, width & height) 2014-08-20 17:04:50 +02:00
Erik Johnston e2b861cc67 Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor 2014-08-19 16:41:13 +01:00
Emmanuel ROHEE c5d601d5cd Cleaned dead code 2014-08-19 16:24:49 +02:00
Erik Johnston 347242a5c4 Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
Conflicts:
	tests/rest/test_presence.py
	tests/rest/test_rooms.py
	tests/utils.py
2014-08-19 14:48:19 +01:00
Erik Johnston 598a1d8ff9 Change the way pagination works to support out of order events. 2014-08-19 14:19:48 +01:00
Emmanuel ROHEE 509ce6c137 Change mouse cursor to pointer on elements user can click on 2014-08-19 11:37:07 +02:00
Kegan Dougal 58548ab557 Implemented GETs for the ContentRepoResource. It all actually appears to be working. 2014-08-18 17:18:54 +01:00
Kegan Dougal 35da1bf4a3 Auth content uploads. Added a mapping function from request > filename. Added exception handling for content uploads. webclient: Only prefix the client API path on doRequest, not doBaseRequest (this would've broken the identity server auth too). Added matrixService.uploadContent. May not require mFileUpload anymore. 2014-08-18 17:18:54 +01:00
Emmanuel ROHEE e5257b21b3 Support room alias in rooms URL (ex: http://127.0.0.1:8000/#/room/#public:localhost:8080) 2014-08-18 17:11:08 +02:00
Kegan Dougal c12f55aa3b Increase /events timeout to 30 secs. We don't need it so low anymore to get around request suppression when changing rooms, since there is just a single event stream now. 2014-08-18 14:25:25 +01:00
Emmanuel ROHEE 0b5674ccc5 Do not start the event stream if the user is not logged in (=if he does not has an access token yet)
Add isUserLoggedIn to check this.
2014-08-18 10:44:29 +02:00
Kegan Dougal 02e45da895 When new invites come down, update the My Rooms list. Added hacks to make the display name a bit nicer (/im/sync needs to return room aliases / membership events better) 2014-08-15 17:42:11 +01:00
Kegan Dougal 5ac87292c4 Remove old polling stuff from RoomController. Added service comments. Do not start the event stream on startup unless you have credentials. 2014-08-15 14:06:56 +01:00
Kegan Dougal 7ddb7a5cbb Event streaming now happens on an app level, rather than a per-room level. Make eventStreamService manage it's own repolling provided no one calls stop() on it. Couple the stream with eventHandlerService so any controller can just blithely call eventStreamService.resume() and expect to 'get stuff' without having to handle promises (though resume() still returns a promise for that request and proxies it through $q). Kill and reset the stream if you logout. 2014-08-15 14:06:56 +01:00
Kegan Dougal c51cf4efca Store messages in $rootScope so they can be accessed from multiple controllers without duplicated storage for each. This also gives updates. 2014-08-15 14:06:56 +01:00
Kegan Dougal 5dbceaf5a4 Added event handler service which.. handles events. More specifically, it $broadcasts events depending on their type, and does processing on events (shuffling keys, adding events to $rootScope so displays will automatically update, sending delivery receipts, and so on). Some of this logic was previously contained in the RoomController, which fails the moment you add >1 room into the mix, hence requiring a Service to handle events, rather than having each individual controller maintain their part of the world. 2014-08-15 14:06:56 +01:00
Kegan Dougal 8bf3994c2e Added event stream service which neatly blobs together requests / state for the event stream. This depends on matrix service to do the actual hit. Currently this has exactly the same behaviour as before. 2014-08-15 14:06:56 +01:00
Emmanuel ROHEE f5973d8ddb Create a temporary upload service server side (by hacking demos/webserver.py) and client side with an angularjs service component. 2014-08-14 18:38:56 +02:00
Kegan Dougal 30da8c81c7 webclient: You can now paginate in rooms. Defaults to 10 messages, with a button to get more (needs to be hooked into infini-scrolling). 2014-08-14 17:23:47 +01:00
Kegan Dougal db3e1d73c6 Move the unknown token broadcast to the interceptor. Return the $http promise and not a wrapped one via $q. Everything now needs a level deeper nesting. Fixed registration and login. 2014-08-14 15:36:40 +01:00
Emmanuel ROHEE 7143f358f1 Detect when the user access token is no more valid and log the user out in this case 2014-08-14 15:00:21 +02:00
Emmanuel ROHEE 7dc0a28e17 Created m-file-input. A directive to open a file selection dialog on whatever HTML element 2014-08-14 11:36:11 +02:00
Emmanuel ROHEE c87e1f6418 Room: Added a text input to type an image URL in order to send an image message 2014-08-13 11:42:28 +02:00
Matthew Hodgson 3e35a9f96e add in copyrights to everything, not just the synapse subdir, and add a copyrighter.pl whilst we're at it 2014-08-13 03:32:18 +01:00
Erik Johnston fe3c5a2726 Fix the 'Go to room' button to use the correct room alias api 2014-08-12 17:17:14 +01:00
matrix.org 4f475c7697 Reference Matrix Home Server 2014-08-12 15:10:52 +01:00