1
0
mirror of https://github.com/moparisthebest/kaiwa synced 2024-08-13 17:03:51 -04:00

Sort messages by time, not just order inserted into collection

This commit is contained in:
Lance Stout 2014-01-06 19:40:18 -08:00
parent fa2489ed37
commit d3d6df5d99
5 changed files with 18 additions and 5 deletions

View File

@ -51,7 +51,7 @@ var Message = module.exports = HumanModel.define({
}
},
created: {
deps: ['delay', '_created'],
deps: ['delay', '_created', '_edited'],
fn: function () {
if (this.delay && this.delay.stamp) {
return this.delay.stamp;
@ -59,6 +59,15 @@ var Message = module.exports = HumanModel.define({
return this._created;
}
},
timestamp: {
deps: ['created', '_edited'],
fn: function () {
if (this._edited && !isNaN(this._edited.valueOf())) {
return this._edited;
}
return this.created;
}
},
formattedTime: {
deps: ['created'],
fn: function () {
@ -188,6 +197,7 @@ var Message = module.exports = HumanModel.define({
},
session: {
_created: 'date',
_edited: 'date',
_mucMine: 'bool',
receiptReceived: ['bool', true, false],
edited: ['bool', true, false],
@ -200,7 +210,7 @@ var Message = module.exports = HumanModel.define({
delete msg.id;
this.set(msg);
this._created = new Date(Date.now());
this._edited = new Date(Date.now());
this.edited = true;
this.save();

View File

@ -6,5 +6,6 @@ var Message = require('./message');
module.exports = BaseCollection.extend({
type: 'messages',
model: Message
model: Message,
comparator: 'created'
});

View File

@ -22,6 +22,7 @@ module.exports = BasePage.extend({
this.listenTo(this, 'pageunloaded', this.handlePageUnloaded);
this.listenTo(this.model.messages, 'change', this.refreshModel);
this.listenTo(this.model.messages, 'sort', this.renderCollection);
this.render();
},
@ -94,6 +95,7 @@ module.exports = BasePage.extend({
},
renderCollection: function () {
var self = this;
this.$messageList.empty();
this.model.messages.each(function (model, i) {
self.appendModel(model);
});

View File

@ -207,7 +207,7 @@ exports.includes.embeds = function anonymous(locals) {
exports.includes.message = function anonymous(locals) {
var buf = [];
with (locals || {}) {
buf.push('<li><div class="message"><span class="timestamp">' + jade.escape(null == (jade.interp = message.created) ? "" : jade.interp) + '</span><p class="body">' + jade.escape(null == (jade.interp = message.body) ? "" : jade.interp) + "</p></div></li>");
buf.push('<li><div class="message"><span class="timestamp">' + jade.escape(null == (jade.interp = message.timestamp) ? "" : jade.interp) + '</span><p class="body">' + jade.escape(null == (jade.interp = message.body) ? "" : jade.interp) + "</p></div></li>");
}
return buf.join("");
};

View File

@ -1,4 +1,4 @@
li
.message
span.timestamp=message.created
span.timestamp=message.timestamp
p.body=message.body