Move getLastMessage to modelService.
This commit is contained in:
parent
fbf8003237
commit
547adda446
|
@ -501,30 +501,7 @@ function(matrixService, $rootScope, $q, $timeout, $filter, mPresence, notificati
|
||||||
|
|
||||||
eventContainsBingWord: function(event) {
|
eventContainsBingWord: function(event) {
|
||||||
return containsBingWord(event);
|
return containsBingWord(event);
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the last message event of a room
|
|
||||||
* @param {String} room_id the room id
|
|
||||||
* @param {Boolean} filterFake true to not take into account fake messages
|
|
||||||
* @returns {undefined | Event} the last message event if available
|
|
||||||
*/
|
|
||||||
getLastMessage: function(room_id, filterEcho) {
|
|
||||||
var lastMessage;
|
|
||||||
|
|
||||||
var events = modelService.getRoom(room_id).events;
|
|
||||||
for (var i = events.length - 1; i >= 0; i--) {
|
|
||||||
var message = events[i];
|
|
||||||
|
|
||||||
if (!filterEcho || undefined === message.echo_msg_state) {
|
|
||||||
lastMessage = message;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return lastMessage;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
}]);
|
}]);
|
||||||
|
|
|
@ -307,6 +307,29 @@ angular.module('modelService', [])
|
||||||
}
|
}
|
||||||
|
|
||||||
return memberCount;
|
return memberCount;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the last message event of a room
|
||||||
|
* @param {String} room_id the room id
|
||||||
|
* @param {Boolean} filterFake true to not take into account fake messages
|
||||||
|
* @returns {undefined | Event} the last message event if available
|
||||||
|
*/
|
||||||
|
getLastMessage: function(room_id, filterEcho) {
|
||||||
|
var lastMessage;
|
||||||
|
|
||||||
|
var events = this.getRoom(room_id).events;
|
||||||
|
for (var i = events.length - 1; i >= 0; i--) {
|
||||||
|
var message = events[i];
|
||||||
|
|
||||||
|
// TODO: define a better marker than echo_msg_state
|
||||||
|
if (!filterEcho || undefined === message.echo_msg_state) {
|
||||||
|
lastMessage = message;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return lastMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -17,11 +17,11 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
angular.module('RecentsController', ['matrixService', 'matrixFilter'])
|
angular.module('RecentsController', ['matrixService', 'matrixFilter'])
|
||||||
.controller('RecentsController', ['$rootScope', '$scope', 'eventHandlerService', 'modelService', 'recentsService',
|
.controller('RecentsController', ['$rootScope', '$scope', 'modelService', 'recentsService',
|
||||||
function($rootScope, $scope, eventHandlerService, modelService, recentsService) {
|
function($rootScope, $scope, modelService, recentsService) {
|
||||||
|
|
||||||
// Expose the service to the view
|
// Expose the service to the view
|
||||||
$scope.eventHandlerService = eventHandlerService;
|
$scope.modelService = modelService;
|
||||||
|
|
||||||
// retrieve all rooms and expose them
|
// retrieve all rooms and expose them
|
||||||
$scope.rooms = modelService.getRooms();
|
$scope.rooms = modelService.getRooms();
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
angular.module('RecentsController')
|
angular.module('RecentsController')
|
||||||
.filter('orderRecents', ["matrixService", "eventHandlerService", "modelService", function(matrixService, eventHandlerService, modelService) {
|
.filter('orderRecents', ["matrixService", "modelService", function(matrixService, modelService) {
|
||||||
return function(rooms) {
|
return function(rooms) {
|
||||||
var user_id = matrixService.config().user_id;
|
var user_id = matrixService.config().user_id;
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ angular.module('RecentsController')
|
||||||
room.recent.inviter = member.user_id;
|
room.recent.inviter = member.user_id;
|
||||||
}
|
}
|
||||||
// Count users here
|
// Count users here
|
||||||
// TODO: Compute it directly in eventHandlerService
|
// TODO: Compute it directly in modelService
|
||||||
room.recent.numUsersInRoom = modelService.getUserCountInRoom(room_id);
|
room.recent.numUsersInRoom = modelService.getUserCountInRoom(room_id);
|
||||||
|
|
||||||
filtered.push(room);
|
filtered.push(room);
|
||||||
|
@ -54,8 +54,8 @@ angular.module('RecentsController')
|
||||||
// The room with the latest message at first
|
// The room with the latest message at first
|
||||||
filtered.sort(function (roomA, roomB) {
|
filtered.sort(function (roomA, roomB) {
|
||||||
|
|
||||||
var lastMsgRoomA = eventHandlerService.getLastMessage(roomA.room_id, true);
|
var lastMsgRoomA = modelService.getLastMessage(roomA.room_id, true);
|
||||||
var lastMsgRoomB = eventHandlerService.getLastMessage(roomB.room_id, true);
|
var lastMsgRoomB = modelService.getLastMessage(roomB.room_id, true);
|
||||||
|
|
||||||
// Invite message does not have a body message nor ts
|
// Invite message does not have a body message nor ts
|
||||||
// Puth them at the top of the list
|
// Puth them at the top of the list
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<td class="recentsRoomSummaryTS">
|
<td class="recentsRoomSummaryTS">
|
||||||
<!-- Use a temp var as alias to the last room message.
|
<!-- Use a temp var as alias to the last room message.
|
||||||
Declaring it in this way ensures the data-binding -->
|
Declaring it in this way ensures the data-binding -->
|
||||||
{{ lastMsg = eventHandlerService.getLastMessage(room.room_id, true);"" }}
|
{{ lastMsg = modelService.getLastMessage(room.room_id, true);"" }}
|
||||||
|
|
||||||
{{ (lastMsg.origin_server_ts) | date:'MMM d HH:mm' }}
|
{{ (lastMsg.origin_server_ts) | date:'MMM d HH:mm' }}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue