Sort users by mode
This commit is contained in:
parent
5eefa31400
commit
765f8ad4cc
|
@ -60,7 +60,7 @@ $(function() {
|
||||||
|
|
||||||
case "MESSAGES":
|
case "MESSAGES":
|
||||||
var message = data.data;
|
var message = data.data;
|
||||||
if (message.type == "error") {
|
if (message.type == "error" || message.type == "notice") {
|
||||||
target = target.parent().find(".active");
|
target = target.parent().find(".active");
|
||||||
}
|
}
|
||||||
target = target.find(".messages");
|
target = target.find(".messages");
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
var irc = require("irc");
|
var irc = require("irc");
|
||||||
|
var _ = require("lodash");
|
||||||
var Backbone = require("backbone");
|
var Backbone = require("backbone");
|
||||||
var moment = require("moment");
|
var moment = require("moment");
|
||||||
|
|
||||||
|
@ -18,10 +19,27 @@ models.User = Backbone.Model.extend({
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var x = 1;
|
||||||
models.UserCollection = Backbone.Collection.extend({
|
models.UserCollection = Backbone.Collection.extend({
|
||||||
model: models.User,
|
model: models.User,
|
||||||
comparator: function(user) {
|
sort: function(options) {
|
||||||
return user.get("name");
|
this.models = _.sortBy(
|
||||||
|
this.models,
|
||||||
|
function(user) {
|
||||||
|
return user.get("name").toLowerCase();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
// Lets iterate all modes and move users with these
|
||||||
|
// modes to top of the list.
|
||||||
|
var modes = ["+", "@"];
|
||||||
|
for (var i in modes) {
|
||||||
|
this.models = _.remove(this.models, function(user) {
|
||||||
|
if (user.get("mode") == modes[i]) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}).concat(this.models);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -51,14 +69,6 @@ models.Channel = Backbone.Model.extend({
|
||||||
id: id++
|
id: id++
|
||||||
});
|
});
|
||||||
|
|
||||||
this.set("users", new models.UserCollection());
|
|
||||||
this.get("users").on("all", function() {
|
|
||||||
this.trigger("USERS", {
|
|
||||||
target: this.get("id"),
|
|
||||||
data: this.get("users")
|
|
||||||
});
|
|
||||||
}, this);
|
|
||||||
|
|
||||||
this.set("messages", new models.MessageCollection());
|
this.set("messages", new models.MessageCollection());
|
||||||
this.get("messages").on("all", function() {
|
this.get("messages").on("all", function() {
|
||||||
this.trigger("MESSAGES", {
|
this.trigger("MESSAGES", {
|
||||||
|
@ -66,6 +76,14 @@ models.Channel = Backbone.Model.extend({
|
||||||
data: this.get("messages").last()
|
data: this.get("messages").last()
|
||||||
});
|
});
|
||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
|
this.set("users", new models.UserCollection());
|
||||||
|
this.get("users").on("all", function() {
|
||||||
|
this.trigger("USERS", {
|
||||||
|
target: this.get("id"),
|
||||||
|
data: this.get("users")
|
||||||
|
});
|
||||||
|
}, this);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -284,15 +284,11 @@ function handleEvent(argv) {
|
||||||
|
|
||||||
case "NOTICE":
|
case "NOTICE":
|
||||||
var from = argv.nick ? argv.nick : "-!-";
|
var from = argv.nick ? argv.nick : "-!-";
|
||||||
var message = new models.Message({
|
channels.first().get("messages").add(new models.Message({
|
||||||
user: from,
|
user: from,
|
||||||
text: "notice: " + argv.args[1],
|
text: "notice: " + argv.args[1],
|
||||||
type: "notice"
|
type: "notice"
|
||||||
});
|
}));
|
||||||
|
|
||||||
channels.each(function(channel) {
|
|
||||||
channel.get("messages").add(message);
|
|
||||||
});
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "JOIN":
|
case "JOIN":
|
||||||
|
@ -314,6 +310,7 @@ function handleEvent(argv) {
|
||||||
name: argv.nick
|
name: argv.nick
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
users.sort();
|
||||||
}
|
}
|
||||||
|
|
||||||
messages.add(
|
messages.add(
|
||||||
|
@ -512,6 +509,8 @@ function handleEvent(argv) {
|
||||||
|
|
||||||
// .. here!
|
// .. here!
|
||||||
delete rpl_namreply;
|
delete rpl_namreply;
|
||||||
|
|
||||||
|
users.sort();
|
||||||
users.trigger(
|
users.trigger(
|
||||||
"add", {}, users
|
"add", {}, users
|
||||||
);
|
);
|
||||||
|
@ -565,7 +564,4 @@ function handleEvent(argv) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Debug
|
|
||||||
console.log(argv);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
"commander": "2.1.0",
|
"commander": "2.1.0",
|
||||||
"connect": "2.13.0",
|
"connect": "2.13.0",
|
||||||
"irc": "0.3.6",
|
"irc": "0.3.6",
|
||||||
|
"lodash": "2.4.1",
|
||||||
"moment": "2.5.1",
|
"moment": "2.5.1",
|
||||||
"socket.io": "0.9.16"
|
"socket.io": "0.9.16"
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue