Matthew Hodgson
019f3a66f6
add fixme pointing out name disambiguation is a bit flakey
2014-08-22 01:32:17 +01:00
Matthew Hodgson
3277a65052
actually display room metadata based on m.room.membe events
2014-08-21 19:02:00 +01:00
Erik Johnston
0045a2647a
Add a var.
2014-08-21 17:59:07 +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
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