storeChat: function(callback, key, messages, unlockDate, title) {
var self = this;
this.get(function(chats) {
- chats.push({key: key, unlockDate: unlockDate, title: title});
+ chats.list.push({key: key, unlockDate: unlockDate, title: title});
self.store(function() {
- self.store(callback, "chat-" + key, messages);
+ self.store(callback, "chat-" + key, {messages:messages});
}, "chats", chats);
- }, "chats", []);
+ }, "chats", {list:[]});
},
getAvailableChats: function(callback, isAdmin) {
- this.get(function(allChats) {
+ this.get(function(chats) {
+ var allChats = chats.list;
var now = new Date();
var unlockedChats = _.filter(allChats, function(chat) {
return chat.unlockDate < now;
});
callback(isAdmin ? allChats : unlockedChats);
- }, "chats", []);
+ }, "chats", {list:[]});
},
getChat: function(callback, key) {
- this.get(callback, "chat-" + key, []);
+ this.get(callback, "chat-" + key, {messages:[]});
},
store: function(callback, key, value) {
//localStorage[key] = JSON.stringify(value);
var rev;
- if (value._rev) {
- rev = value._rev;
- delete value._rev;
+ if (value.rev) {
+ value._rev = value._rev + 1;
+ delete value.rev;
}
- var data = { content: JSON.stringify(value) };
- if (rev) data._rev = rev;
-
$.ajax({
type: 'PUT',
url: this.url + "/chats/" + key,
- data: JSON.stringify(data),
+ data: JSON.stringify(value),
contentType: 'application/json',
dataType: 'application/json',
success: callback,
type: 'get',
dataType: 'jsonp',
success: function(value) {
- if (value && value.content) {
- var content = JSON.parse(value.content);
- content._rev = value._rev;
- callback(content);
+ if (value) {
+ if (value.content) value = value.content;
+ callback(value);
} else {
callback(default_);
}
Playback.prototype = {
start: function() {
var self = this;
- this.datastore.getChat(function(messages) {
- self.messages = messages;
+ this.datastore.getChat(function(chat) {
+ self.messages = chat.messages;
_.each(self.messages, self.queueSend, self);
var lastTime = self.messages[self.messages.length - 1].delayMs;
setTimeout(function() {