Add clearRooms() to wipe data when you logout.

pull/19/head
Kegan Dougal 2014-11-17 10:12:44 +00:00
parent 2eaf689f71
commit 7799e14121
3 changed files with 29 additions and 16 deletions

View File

@ -85,6 +85,7 @@ angular.module('MatrixWebClientController', ['matrixService', 'mPresence', 'even
matrixService.saveConfig();
// Reset cached data
modelService.clearRooms();
eventHandlerService.reset();
// And go to the login page

View File

@ -47,7 +47,6 @@ function(matrixService, $rootScope, $q, $timeout, $filter, mPresence, notificati
var reset = function() {
initialSyncDeferred = $q.defer();
eventMap = {};
};
reset();

View File

@ -29,18 +29,38 @@ angular.module('modelService', [])
.factory('modelService', ['matrixService', function(matrixService) {
// alias / id lookups
var roomIdToAlias = {};
var aliasToRoomId = {};
var roomIdToAlias, aliasToRoomId;
var setRoomIdToAliasMapping = function(roomId, alias) {
roomIdToAlias[roomId] = alias;
aliasToRoomId[alias] = roomId;
};
// user > room member lookups
var userIdToRoomMember = {
// user_id: [RoomMember, RoomMember, ...]
var userIdToRoomMember;
// main store
var rooms, users;
var init = function() {
roomIdToAlias = {};
aliasToRoomId = {};
userIdToRoomMember = {
// user_id: [RoomMember, RoomMember, ...]
};
// rooms are stored here when they come in.
rooms = {
// roomid: <Room>
};
users = {
// user_id: <User>
};
console.log("Models inited.");
};
init();
/***** Room Object *****/
var Room = function Room(room_id) {
this.room_id = room_id;
@ -185,17 +205,6 @@ angular.module('modelService', [])
this.last_updated = 0; // used with last_active_ago to work out last seen times
};
// rooms are stored here when they come in.
var rooms = {
// roomid: <Room>
};
var users = {
// user_id: <User>
};
console.log("Models inited.");
return {
getRoom: function(roomId) {
@ -330,6 +339,10 @@ angular.module('modelService', [])
}
return lastMessage;
},
clearRooms: function() {
init();
}
};