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:
parent
fa2489ed37
commit
d3d6df5d99
@ -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();
|
||||
|
@ -6,5 +6,6 @@ var Message = require('./message');
|
||||
|
||||
module.exports = BaseCollection.extend({
|
||||
type: 'messages',
|
||||
model: Message
|
||||
model: Message,
|
||||
comparator: 'created'
|
||||
});
|
||||
|
@ -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);
|
||||
});
|
||||
|
@ -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("");
|
||||
};
|
||||
|
@ -1,4 +1,4 @@
|
||||
li
|
||||
.message
|
||||
span.timestamp=message.created
|
||||
span.timestamp=message.timestamp
|
||||
p.body=message.body
|
||||
|
Loading…
Reference in New Issue
Block a user