view notifies by user [#568]

This commit is contained in:
reality 2013-08-24 17:53:16 +00:00
parent ec72489300
commit 3e8ba74459
4 changed files with 52 additions and 26 deletions

View File

@ -62,36 +62,55 @@ var pages = function(dbot) {
} }
}, },
'/notify/:server/:channel': function(req, res) { '/notify/:server/:item': function(req, res) {
var server = req.params.server, var server = req.params.server,
channel = req.params.channel,
notifies = []; notifies = [];
this.db.search('notifies', { if(req.params.item.charAt(0) == '#') {
'server': server, var channel = req.params.item;
'channel': channel
}, function(notify) { this.db.search('notifies', {
notifies.push(notify); 'server': server,
}, function(err) { 'channel': channel
var pNickCache = {}; }, function(notify) {
async.eachSeries(notifies, function(notify, next) { notifies.push(notify);
if(!_.has(pNickCache, notify.user)) { }, function(err) {
dbot.api.users.getUser(notify.user, function(user) { var pNickCache = {};
pNickCache[notify.user] = user.primaryNick; async.eachSeries(notifies, function(notify, next) {
notify.user = user.primaryNick; if(!_.has(pNickCache, notify.user)) {
dbot.api.users.getUser(notify.user, function(user) {
pNickCache[notify.user] = user.primaryNick;
notify.user = user.primaryNick;
next();
});
} else {
notify.user = pNickCache[notify.user];
next(); next();
}
}, function() {
res.render('notifies', {
'server': server,
'notifies': _.sortBy(notifies, 'time')
}); });
} else {
notify.user = pNickCache[notify.user];
next();
}
}, function() {
res.render('notifies', {
'server': server,
'notifies': _.sortBy(notifies, 'time')
}); });
}); });
}); } else {
var username = req.params.item;
dbot.api.users.resolveUser(server, username, function(user) {
this.db.search('notifies', {
'user': user.id
}, function(notify) {
notify.user = user.primaryNick;
notifies.push(notify);
}, function() {
res.render('notifies', {
'server': server,
'notifies': _.sortBy(notifies, 'time')
});
});
}.bind(this));
}
} }
}; };

View File

@ -12,7 +12,8 @@ function searchNotifies(q) {
var notifies = document.getElementById('notifies'); var notifies = document.getElementById('notifies');
for (var i=1, row; row=notifies.rows[i]; i++) { for (var i=1, row; row=notifies.rows[i]; i++) {
if(row.cells[3].innerHTML.indexOf(q) == -1 && if(row.cells[3].innerHTML.indexOf(q) == -1 &&
row.cells[2].innerHTML.indexOf(q) == -1) { row.cells[2].innerHTML.indexOf(q) == -1 &&
row.cells[1].innerHTML.indexOf(q) == -1) {
row.style.display = 'none'; row.style.display = 'none';
} else { } else {
row.style.display = ''; row.style.display = '';

View File

@ -1,10 +1,16 @@
extends ../layout extends ../layout
block content block content
h3 Channels on #{server} h3 Browse by Channel on #{server}
div#backlink div#backlink
a(href='/notify') « Server List a(href='/notify') « Server List
ul#quotelist ul#quotelist
-each channel in channels -each channel in channels
a(href='/notify/'+server+'/'+encodeURIComponent(channel)) a(href='/notify/'+server+'/'+encodeURIComponent(channel))
li.quotes #{channel} li.quotes #{channel}
h3 Browse by User on #{server}
ul#quotelist
-each nUser in users
a(href='/notify/'+server+'/'+encodeURIComponent(nUser.name))
li.quotes #{nUser.name} (#{nUser.count})

View File

@ -2,7 +2,7 @@ extends ../layout
block content block content
div#backlink div#backlink
a(href='/notify/'+server) « Server Channels a(href='/notify/'+server) « Server
p p
div#controls div#controls
input(type="text", name="search", id="search-text", oninput="searchNotifies(this.value)") input(type="text", name="search", id="search-text", oninput="searchNotifies(this.value)")