diff options
author | cel <cel@f/6sQ6d2CMxRUhLpspgGIulDxDCwYD7DzFzPNr7u5AU=.ed25519> | 2017-10-18 10:52:56 -1000 |
---|---|---|
committer | cel <cel@f/6sQ6d2CMxRUhLpspgGIulDxDCwYD7DzFzPNr7u5AU=.ed25519> | 2017-10-18 11:30:09 -1000 |
commit | cbb586300896002d22da7fcb9b8f86ede9745e8a (patch) | |
tree | fcf67eaf491d2e9c5ada0370c933fff6ccb7137e /lib/serve.js | |
parent | 9be582e55325ff484c3c49baa155a4deb09450af (diff) | |
download | patchfoo-cbb586300896002d22da7fcb9b8f86ede9745e8a.tar.gz patchfoo-cbb586300896002d22da7fcb9b8f86ede9745e8a.zip |
Render blocks and blockers on contacts pages
Diffstat (limited to 'lib/serve.js')
-rw-r--r-- | lib/serve.js | 55 |
1 files changed, 36 insertions, 19 deletions
diff --git a/lib/serve.js b/lib/serve.js index 2bbc80d..e8313f4 100644 --- a/lib/serve.js +++ b/lib/serve.js @@ -794,10 +794,10 @@ Serve.prototype.channels = function (ext) { Serve.prototype.contacts = function (path) { var self = this var id = String(path).substr(1) - var contacts = self.app.createContactStreams(id) - function renderFriendsList() { + function renderFriendsList(ids) { return pull( + pull.values(ids), paramap(function (id, cb) { self.app.getAbout(id, function (err, about) { var name = about && about.name || id.substr(0, 8) + '…' @@ -812,23 +812,40 @@ Serve.prototype.contacts = function (path) { ) } - pull( - cat([ - ph('section', {}, [ - ph('h3', {}, ['Contacts: ', self.phIdLink(id)]), - ph('h4', {}, 'Friends'), - renderFriendsList()(contacts.friends), - ph('h4', {}, 'Follows'), - renderFriendsList()(contacts.follows), - ph('h4', {}, 'Followers'), - renderFriendsList()(contacts.followers) - ]) - ]), - this.wrapPage('contacts: ' + id), - this.respondSink(200, { - 'Content-Type': ctype('html') - }) - ) + self.app.getContacts(id, function (err, contacts) { + if (err) return self.respond(500, err.stack || err) + pull( + cat([ + ph('section', {}, [ + ph('h3', {}, ['Contacts: ', self.phIdLink(id)]), + contacts.friends.length ? [ + ph('h4', {}, 'Friends'), + renderFriendsList(contacts.friends), + ] : [], + contacts.follows.length ? [ + ph('h4', {}, 'Follows'), + renderFriendsList(contacts.follows), + ] : [], + contacts.followers.length ? [ + ph('h4', {}, 'Followers'), + renderFriendsList(contacts.followers), + ] : [], + contacts.blocks.length ? [ + ph('h4', {}, 'Blocks'), + renderFriendsList(contacts.blocks), + ] : [], + contacts.blockers.length ? [ + ph('h4', {}, 'Blocked by'), + renderFriendsList(contacts.blockers), + ] : [], + ]) + ]), + self.wrapPage('contacts: ' + id), + self.respondSink(200, { + 'Content-Type': ctype('html') + }) + ) + }) } Serve.prototype.about = function (path) { |