Commit Graph

160 Commits

Author SHA1 Message Date
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
Erik Johnston 4c228df167 Use the new 'inviter' key from im sync for room display names. 2014-08-21 15:31:11 +01:00
Emmanuel ROHEE 14b9989660 Fixed first pagination detection 2014-08-21 16:27:34 +02:00
Matthew Hodgson 01a129cb9a cheer up erik and remove the double-horizontal-border between adjacent text plinths 2014-08-21 15:26:51 +01:00
Emmanuel ROHEE bb4490c2d7 Show image fullscreen when clicking on the thumbnail 2014-08-21 16:09:42 +02:00
Emmanuel ROHEE e4f0e1af1a If there are available, show image thumbnails in the messages list 2014-08-21 15:00:20 +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 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 7371e68f55 Quick fix to support array of room aliases 2014-08-20 17:46:16 +02:00
Emmanuel ROHEE 2f52e8ee18 BF: Apply image place holder only if the image message has the height information 2014-08-20 17:17:17 +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 ba88c9105c Create a placeholder for each image of the chat thread. The height of this placeholder is the height of the image so that the scroller position will not be disrupted when the image will be actually loaded and displayed in its full height 2014-08-20 17:04:50 +02:00
Emmanuel ROHEE 6d3391f2f0 Send images with their imageInfo (size, mymetype, width & height) 2014-08-20 17:04:50 +02:00
Emmanuel ROHEE da2f5aac0e Sanitize message text content only if the type of current message in the ng-repeat loop is "text"
In case of image message, the body can be a JSON object (ImageInfo) and ngSanitize does not like that (ie it generates exception in the console)
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
Erik Johnston 2ffb075772 Merge branch 'master' of github.com:matrix-org/synapse into develop 2014-08-20 10:29:16 +01: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
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 4f773de6ba BF: The enter key in the image URL box called sendImage() with no argument 2014-08-19 16:37:31 +02: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
Emmanuel ROHEE ff21d4d93b Merge remote-tracking branch 'origin/master' into user_page 2014-08-19 09:44:50 +02:00
Emmanuel ROHEE d7a4f2ed7f Fill user page with avatar, display name and matrix id 2014-08-19 09:37:10 +02:00
Emmanuel ROHEE 38f5c1c378 Made small avatar image center 2014-08-19 09:24:35 +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
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 ecfdf23250 Created boilerplate for user profile page 2014-08-18 18:05:42 +02:00
Emmanuel ROHEE 301e55d11d In members list, on avatar mouseover, show a tooltip with the user matrix id 2014-08-18 17:49:50 +02:00
Emmanuel ROHEE f8693c6b48 Join room: open the room URL with the room alias in it 2014-08-18 17:41:23 +02:00
Emmanuel ROHEE 43772d0b15 Support urlencoded room aliases in room URL 2014-08-18 17:40:05 +02:00
Emmanuel ROHEE cebceb7b9d If possible, use href with room alias in rooms list 2014-08-18 17:14:57 +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 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
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 71584930cb Disabled image upload UIs 2014-08-18 10:54:43 +02: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
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 39ff6c840f make my emotes white again 2014-08-18 01:30:58 +01:00
Matthew Hodgson 62b67879cd make text font sizes consistent
add a gap between bubble-blocks from different users
make sent-text lighter than received-text
wrap the memberslist text more sensibly
fix height of bubbles to match that of avatars (32px)
2014-08-17 23:49:34 +01:00
Matthew Hodgson 60245c4f90 implement html5 notifications. (have to be explicitly requested under Config) 2014-08-17 03:48:28 +01:00
Matthew Hodgson 48f4497fe9 unbreak login sequence (which spuriously required a sydent server to be specified, which login.html was no longer doing...) 2014-08-17 03:47:58 +01:00
Matthew Hodgson 1c202f9f7a oops, debugging crept in 2014-08-17 03:00:08 +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 54c47f962b use minified angular by default 2014-08-16 22:09:42 +01:00
Matthew Hodgson 1c36118d98 minified angularjs stuff to speed things up 2014-08-16 22:07:47 +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 f1d140eea8 remove log spam 2014-08-16 22:02:52 +01:00
Matthew Hodgson fe25e65f3f disambiguate identical displaynames 2014-08-16 20:48:05 +01:00
Matthew Hodgson e4770bb039 make presence timestamps less verbose 2014-08-16 13:30:34 +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 ce4ca473cb order the members list by most recently active 2014-08-16 13:23:16 +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 00e8be516a merge weirdness 2014-08-16 01:48:44 +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
Matthew Hodgson 9f7c5f161c switch some elements from being styled by class to styled by id 2014-08-15 23:24:42 +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 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
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
Emmanuel ROHEE e6c62d5d7f We can now upload avatar image somewhere 2014-08-14 18:40:20 +02:00
Emmanuel ROHEE deae7f4f5d Create a temporary upload service server side (by hacking demos/webserver.py) and client side with an angularjs service component. 2014-08-14 18:39:23 +02: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 fef3183461 Pass back the user_id in the response to /login in case it has changed. Store and use that on the webclient rather than the input field. 2014-08-14 16:40:15 +01:00
Kegan Dougal ca3747fb2f hs: Make /login accept full user IDs or just local parts. webclient: Only enable Register button when both password fields match. 2014-08-14 16:29:51 +01:00
Kegan Dougal 6f925f61ff Auto-correct the username when logging in if there isn't an @ 2014-08-14 16:08:22 +01:00
Kegan Dougal fb93e14e53 Be more helpful when failing to register/login, stating why (communication error, user in user, wrong credentials, etc). Make the HS send M_USER_IN_USE. 2014-08-14 16:03:04 +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
Kegan Dougal 24bd133d9d Added extra nesting .data and rename callback to be response not data 2014-08-14 15:43:16 +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
Kegan Dougal 76005c44f7 Added an access token interceptor to check unknown tokens. 2014-08-14 15:21:39 +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
Kegan Dougal 613e468b89 Guess the home server URL on the login screen by inspecting the URL of the web client. 2014-08-14 13:57:55 +01:00
Emmanuel ROHEE d5033849a5 BF: Use ng-src 2014-08-14 13:51:35 +02:00
Emmanuel ROHEE 60b0fca103 Use ng-src 2014-08-14 11:51:31 +02:00
Emmanuel ROHEE 28a49a9eaf Show avatar in profile section and added a button to select a file (not yet wired to upload service) 2014-08-14 11:39:03 +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
Matthew Hodgson 9391be0f5d fix emote presentation 2014-08-14 03:35:09 +01:00
Matthew Hodgson d7dcef7ff4 config css 2014-08-14 02:21:49 +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
Kegan Dougal 6904952ec4 Store public room id > alias mappings. 2014-08-13 16:29:46 +01:00