diff --git a/webclient/app.css b/webclient/app.css
index d2b951d3b6..83b0c9c65a 100644
--- a/webclient/app.css
+++ b/webclient/app.css
@@ -195,6 +195,7 @@ h1 {
border: 1px solid #d8d8d8;
height: 31px;
display: inline-table;
+ margin-top: -1px;
max-width: 90%;
font-size: 16px;
/* word-wrap: break-word; */
diff --git a/webclient/room/room-controller.js b/webclient/room/room-controller.js
index 7de50dd960..8dea64a804 100644
--- a/webclient/room/room-controller.js
+++ b/webclient/room/room-controller.js
@@ -29,6 +29,7 @@ angular.module('RoomController', ['ngSanitize', 'mUtilities'])
user_id: matrixService.config().user_id,
events_from: "END", // when to start the event stream from.
earliest_token: "END", // stores how far back we've paginated.
+ first_pagination: true, // this is toggled off when the first pagination is done
can_paginate: true, // this is toggled off when we run out of items
paginating: false, // used to avoid concurrent pagination requests pulling in dup contents
stream_failure: undefined, // the response when the stream fails
@@ -100,7 +101,6 @@ angular.module('RoomController', ['ngSanitize', 'mUtilities'])
var originalTopRow = $("#messageTable>tbody>tr:first")[0];
matrixService.paginateBackMessages($scope.room_id, $scope.state.earliest_token, numItems).then(
function(response) {
- var firstPagination = !$scope.events.rooms[$scope.room_id];
eventHandlerService.handleEvents(response.data.chunk, false);
$scope.state.earliest_token = response.data.end;
if (response.data.chunk.length < MESSAGES_PER_PAGINATION) {
@@ -126,8 +126,9 @@ angular.module('RoomController', ['ngSanitize', 'mUtilities'])
}, 0);
}
- if (firstPagination) {
+ if ($scope.state.first_pagination) {
scrollToBottom();
+ $scope.state.first_pagination = false;
}
else {
// lock the scroll position
diff --git a/webclient/rooms/rooms-controller.js b/webclient/rooms/rooms-controller.js
index c25e24c8bc..f2ff4a25ba 100644
--- a/webclient/rooms/rooms-controller.js
+++ b/webclient/rooms/rooms-controller.js
@@ -59,7 +59,7 @@ angular.module('RoomsController', ['matrixService', 'mFileInput', 'mFileUpload',
// FIXME push membership to top level key to match /im/sync
event.membership = event.content.membership;
// FIXME bodge a nicer name than the room ID for this invite.
- event.room_alias = event.user_id + "'s room";
+ event.room_display_name = event.user_id + "'s room";
$scope.rooms[event.room_id] = event;
}
});
@@ -70,15 +70,20 @@ angular.module('RoomsController', ['matrixService', 'mFileInput', 'mFileUpload',
if (alias) {
// use the existing alias from storage
data[i].room_alias = alias;
+ data[i].room_display_name = alias;
}
else if (data[i].aliases && data[i].aliases[0]) {
// save the mapping
// TODO: select the smarter alias from the array
matrixService.createRoomIdToAliasMapping(data[i].room_id, data[i].aliases[0]);
+ data[i].room_display_name = data[i].aliases[0];
+ }
+ else if (data[i].membership == "invite" && "inviter" in data[i]) {
+ data[i].room_display_name = data[i].inviter + "'s room"
}
else {
// last resort use the room id
- data[i].room_alias = data[i].room_id;
+ data[i].room_display_name = data[i].room_id;
}
}
return data;
diff --git a/webclient/rooms/rooms.html b/webclient/rooms/rooms.html
index 2602209bd3..ba3b7d8bad 100644
--- a/webclient/rooms/rooms.html
+++ b/webclient/rooms/rooms.html
@@ -65,7 +65,7 @@
<div class="rooms" ng-repeat="(rm_id, room) in rooms">
<div>
- <a href="#/room/{{ room.room_alias ? room.room_alias : rm_id }}" >{{ room.room_alias }}</a> {{room.membership === 'invite' ? ' (invited)' : ''}}
+ <a href="#/room/{{ room.room_alias ? room.room_alias : rm_id }}" >{{ room.room_display_name }}</a> {{room.membership === 'invite' ? ' (invited)' : ''}}
</div>
</div>
<br/>
|