Commit Graph

155 Commits

Author SHA1 Message Date
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
Emmanuel ROHEE 8a7f7f5004 BF: Update the members list on banned & kicked "events" 2014-09-05 18:05:23 +02:00
Emmanuel ROHEE 12a23f01b4 autoscroll down(if the scroller was already at the bottom) when receiving member events 2014-09-05 17:52:11 +02:00
Emmanuel ROHEE 3be6156774 Created kick & unban methods in matrixService. Made some factorisation. 2014-09-05 17:30:50 +02:00
Emmanuel ROHEE cf4c17deaf Added sanity checks in commands 2014-09-05 17:23:41 +02:00
Emmanuel ROHEE 3501478828 BF: Make /unban work again 2014-09-05 16:56:50 +02:00
Emmanuel ROHEE 584591c3e3 Fixed duplicated messages sending in slow network condition.
Show the message sending flow state in the messages list:
  - While sending, the message appears semi transparent in the chat.
  - If successfully sent, it appears as before, ie normal
  - In case of failure, it appears in red with an Unsent text.
2014-09-05 14:09:14 +02:00
Emmanuel ROHEE 43369cbe06 Cleaned all sending references as it not used 2014-09-05 11:13:33 +02:00
Emmanuel ROHEE 3bfffab201 Do not systematically scroll to the bottom on new events in the room 2014-09-05 10:40:59 +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 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
Emmanuel ROHEE 069a9745b0 Ignore leave members in the list too 2014-09-03 19:37:54 +02:00
Emmanuel ROHEE 1a32b1f002 Normalise users power levels so that the user with the higher power level will have a bar covering 100% of the width of his avatar 2014-09-03 18:55:48 +02: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
Emmanuel ROHEE ede161d296 Added /kick $user_id 2014-09-03 17:02:02 +02:00
Emmanuel ROHEE 277fd2250a Added /unban $user_id 2014-09-03 15:58:40 +02:00
Emmanuel ROHEE c06d07a276 Send unrecognized commands as text message (as before) 2014-09-03 15:25:59 +02: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 4b85c5f52c Added /op $user_id $powerLevel 2014-09-03 14:12:56 +02:00
Emmanuel ROHEE d29d41322a Better indicate in the page feedback section that a user can't join a room (because he has been banned for ex). May be worth to be put in the middle of screen 2014-09-03 11:45:40 +02:00
Emmanuel ROHEE 4ba5b4b55d Do not show banned people in member list. Format ban events strings in room and recent flows 2014-09-03 11:38:24 +02:00
Emmanuel ROHEE 56427b8057 Added /ban command 2014-09-03 11:17:58 +02:00
Emmanuel ROHEE 65c7f78e9f Made IRC style command easier to handle specifically for possible arguments 2014-09-03 11:07:53 +02:00
Emmanuel ROHEE bcf30b29ad BF: Reset base timer time ($scope.now) everytime last_active_ago is touched 2014-09-02 16:39:29 +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
Emmanuel ROHEE 1bc05aef20 BF: Armed updateMemberListPresenceAge only once 2014-09-02 11:14:58 +02:00
Emmanuel ROHEE 07d609cbc2 BF: Take into account MEMBER_EVENT and PRESENCE_EVENT events only after the initialSync is done 2014-09-02 09:39:43 +02:00
Emmanuel ROHEE 0271e8e692 Follow API renaming. state -> presence. mtime_ago -> last_active_ago 2014-09-01 19:09:49 +02:00
David Baker 57f047a05a Fairly simple move of the call status widget to the header bar (and therefore into the index page rather than the rooms page). 2014-09-01 17:16:27 +01:00
Emmanuel ROHEE 26a95988da Fixed presence change that occurs -Xs ago 2014-09-01 16:27:11 +02:00
Emmanuel ROHEE c9ee9b45c7 Fixed presence state update. Specifically, the current user was sometimes indicated as offline 2014-09-01 16:22:59 +02: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
Matthew Hodgson 26766c22eb todo 2014-08-29 17:54:18 +01:00
Emmanuel ROHEE e1f249ce20 Implemented /nick 2014-08-29 18:24:13 +02:00
Matthew Hodgson b86d2a2d4f update presence times in realtime through the magic of two-way binding 2014-08-29 17:22:48 +01:00
David Baker 4b7f6dd7fc Only show voice call button if there are exactly 2 members in the room. Also hide the somewhat user unfriendly call state. 2014-08-29 14:00:20 +01:00
David Baker 3e6a19cf09 Merge branch 'develop' of github.com:matrix-org/synapse into develop 2014-08-29 13:24:08 +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
Emmanuel ROHEE eab463fda5 Show notifications only when the user is detected as idle 2014-08-29 13:44:10 +02:00
David Baker 171d8b032f Merge branch 'voip' into develop
Conflicts:
	webclient/room/room-controller.js
2014-08-29 11:33:36 +01:00
Emmanuel ROHEE 1abc93d65c Cleaned up ng deps. By convention, angular modules must be listed at first 2014-08-29 11:58:35 +02:00
David Baker ca7426eee0 First basic working VoIP call support 2014-08-28 19:03:34 +01:00
Emmanuel ROHEE c44293db2f When opening this page, do not join a room already joined 2014-08-28 16:23:30 +02:00
Emmanuel ROHEE 466fbe4c4e Cleaned up deps 2014-08-28 16:23:30 +02:00
Emmanuel ROHEE 6ac298f2f1 Start the events stream once the app starts (if credentials are in cache) or once the user gets logged in 2014-08-28 11:04:15 +02:00
David Baker 7d34a1c108 WIP voip support on web client 2014-08-27 18:57:54 +01:00
Emmanuel ROHEE 234c50b834 BF: mFileInput dependency got lost somewhere and upload buttons did not work anymore 2014-08-27 18:00:19 +02:00
Emmanuel ROHEE d9155b6a25 Highlight the current room in the recents list 2014-08-27 17:20:53 +02: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
Emmanuel ROHEE 41d1db2d4a Merge branch 'settings-page' into develop 2014-08-22 18:18:27 +02:00
Emmanuel ROHEE de0706493a Use /home everywhere 2014-08-22 18:08:03 +02:00
Erik Johnston f3cea238b9 Check if the membership message was for the room we were in before updating the membership list 2014-08-22 10:56:16 +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
Emmanuel ROHEE dde50d4245 Use $location.url instead of $location.path to get clean page URL without hash arguments of the previous page.
This happpens with room URL like http://127.0.0.1:8080/matrix/client/#/room/#public:localhost. The second hash part is transferred to the next page when using $location.path.
2014-08-22 11:44:09 +02:00
Matthew Hodgson 3248aed03b fix mainInput retaining focus between sending consecutive messages by disabling commit 955662d6 2014-08-22 01:54:37 +01:00
Erik Johnston 2e1ab9db08 Only start event streaming after having set up the controllers. 2014-08-21 17:55:41 +01:00
Matthew Hodgson ad869fa4b3 stop hammering the HS for displayname and avatar URLs 2014-08-21 15:44:03 +01:00
Erik Johnston 2b1297c501 Merge branch 'develop' of github.com:matrix-org/synapse into release-v0.0.1 2014-08-21 15:34:49 +01:00
Emmanuel ROHEE 14b9989660 Fixed first pagination detection 2014-08-21 16:27:34 +02: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 96da42085c BF: Wait for the room_id being resolved before starting pagination 2014-08-20 17:08:18 +02:00
Emmanuel ROHEE 6d3391f2f0 Send images with their imageInfo (size, mymetype, width & height) 2014-08-20 17:04:50 +02:00
Emmanuel ROHEE d6a3639269 Replaced the image URL text input by a file selector button: "Send Image" 2014-08-20 14:09:55 +02:00
Emmanuel ROHEE 955662d64c Disabled sending buttons while a message is being sent. Useful on bad Internet connection. 2014-08-20 13:43:31 +02:00
Emmanuel ROHEE ecce301632 File organisation sanity: put directives and filters into dedicated files 2014-08-20 11:28:36 +02:00
Emmanuel ROHEE 9ca5bc7892 keepScroll: a directive to anchor the scroller position at the bottom when the browser is resizing 2014-08-19 18:30:02 +02:00
Emmanuel ROHEE ff21d4d93b Merge remote-tracking branch 'origin/master' into user_page 2014-08-19 09:44:50 +02:00
Emmanuel ROHEE f144f8cc56 Use $location.url to open the user profile page. The user page URL is then the one expected: http://127.0.0.1:8000/#/user/@Manu:localhost:8080 insteaf of
http://127.0.0.1:8000/#/user/@Manu:localhost:8080#public:localhost:8080
2014-08-19 09:06:21 +02:00
Emmanuel ROHEE c3f1548bb4 Added link to user profile pages 2014-08-19 08:58:53 +02:00
Matthew Hodgson cdc5ffe2a2 show private room_ids rather than nulls in notifs if there is no room_alias 2014-08-18 20:56:27 +01:00
Emmanuel ROHEE 43772d0b15 Support urlencoded room aliases in room URL 2014-08-18 17:40:05 +02: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 f65176564f webclient: Tweak namespace of auto-complete directive. ng- should really only be used for official ng directives. 2014-08-18 10:07:16 +01:00
Emmanuel ROHEE d5bebc9eaa Added another button to upload and send an image.
The text input and its send button for sending an image URL will be removed once we have a true upload image service
2014-08-18 10:41:21 +02:00
Matthew Hodgson 60245c4f90 implement html5 notifications. (have to be explicitly requested under Config) 2014-08-17 03:48:28 +01:00
Matthew Hodgson a56a346343 dial down logging 2014-08-17 02:58:01 +01:00
Matthew Hodgson 00c0737b0e - use css3 to make avatars always the right aspect ratio
- implement slightly overengineered tab/shift-tab autocomplete function
2014-08-17 02:56:34 +01:00
Matthew Hodgson 831c218a93 autohyperlink messages using linky 2014-08-16 22:21:52 +01:00
Matthew Hodgson 8c69eff14c improve infinite scrolling so it keeps paginating until you have a scrollbar (if it can) 2014-08-16 22:05:31 +01:00
Matthew Hodgson dc6212b6fb roll back b602834 as it made a bizarre subset of avatars go awol 2014-08-16 13:28:04 +01:00
Matthew Hodgson b60283473a don't hammer a new hit for every displayname and avatar_url when we already have them in the members list... 2014-08-16 13:23:15 +01:00
Matthew Hodgson 207ef144c5 display mtime_age in webclient 2014-08-16 01:07:23 +01:00
Matthew Hodgson 4068339770 slightly hacky but more functional infinite scrolling 2014-08-16 00:14:47 +01:00
Kegan Dougal 60a9f27edb Formatting 2014-08-15 17:58:51 +01:00
Kegan Dougal 0e6a2f87f9 Get presence for members when you enter a room (it was coming down but wasn't being stored in the right place) 2014-08-15 17:47:45 +01:00
Kegan Dougal 5b817ecd44 Added infinite scrolling. It's sliiiightly buggy in that it jumps down the list a bit, but it is overall working pretty well. Added ng-infinite-scroll-matrix.js and jquery-1.8.3 as deps. 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
Kegan Dougal 5de086b736 More helpful display when the event stream fails, wiping it when the connection is regained. 2014-08-14 17:40:38 +01: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 40c998336d Finish up room controller too. May have missed one or two, but testing didn't pick anything up. 2014-08-14 15:47:38 +01:00
Matthew Hodgson 6c2db18be1 completely change the CSS to be an entirely 'position: absolute' layout rather than top-to-bottom. makes the overscroll much more predictable and sane and not dependent on CSS expressions. 2014-08-14 02:14:15 +01:00
Matthew Hodgson f729f13735 don't hammer after 403 2014-08-13 18:17:09 +01:00