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,
channel = req.params.channel,
notifies = [];
this.db.search('notifies', {
'server': server,
'channel': channel
}, function(notify) {
notifies.push(notify);
}, function(err) {
var pNickCache = {};
async.eachSeries(notifies, function(notify, next) {
if(!_.has(pNickCache, notify.user)) {
dbot.api.users.getUser(notify.user, function(user) {
pNickCache[notify.user] = user.primaryNick;
notify.user = user.primaryNick;
if(req.params.item.charAt(0) == '#') {
var channel = req.params.item;
this.db.search('notifies', {
'server': server,
'channel': channel
}, function(notify) {
notifies.push(notify);
}, function(err) {
var pNickCache = {};
async.eachSeries(notifies, function(notify, next) {
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();
}
}, 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');
for (var i=1, row; row=notifies.rows[i]; i++) {
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';
} else {
row.style.display = '';

View File

@ -1,10 +1,16 @@
extends ../layout
block content
h3 Channels on #{server}
h3 Browse by Channel on #{server}
div#backlink
a(href='/notify') « Server List
ul#quotelist
-each channel in channels
a(href='/notify/'+server+'/'+encodeURIComponent(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
div#backlink
a(href='/notify/'+server) « Server Channels
a(href='/notify/'+server) « Server
p
div#controls
input(type="text", name="search", id="search-text", oninput="searchNotifies(this.value)")