diff options
author | cel <cel@f/6sQ6d2CMxRUhLpspgGIulDxDCwYD7DzFzPNr7u5AU=.ed25519> | 2017-06-06 23:25:30 -1000 |
---|---|---|
committer | cel <cel@f/6sQ6d2CMxRUhLpspgGIulDxDCwYD7DzFzPNr7u5AU=.ed25519> | 2017-06-06 23:25:30 -1000 |
commit | a3dca9e424477c2745c59f482342a1580ed807f0 (patch) | |
tree | 14712ccb963a037ae9ceec1f6e9a8f4246d58592 /lib/render.js | |
parent | e9b1ee71a12fcd6c15a2f0b06671bc819da98303 (diff) | |
parent | 0e9903642e2e2c9cfb6f89f80a0256fa6f53ef5c (diff) | |
download | patchfoo-a3dca9e424477c2745c59f482342a1580ed807f0.tar.gz patchfoo-a3dca9e424477c2745c59f482342a1580ed807f0.zip |
Merge branch 'votes'
Diffstat (limited to 'lib/render.js')
-rw-r--r-- | lib/render.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/render.js b/lib/render.js index 880470a..c1c7edf 100644 --- a/lib/render.js +++ b/lib/render.js @@ -313,3 +313,36 @@ Render.prototype.gitCommitBody = function (body) { ? h('div', {innerHTML: this.markdown('\n' + body)}) : h('pre', this.linkify('\n' + body)) } + +Render.prototype.getName = function (id, cb) { + // TODO: consolidate the get name/link functions + var self = this + switch (id && id[0]) { + case '%': + return self.app.getMsgDecrypted(id, function (err, msg) { + if (err && err.name == 'NotFoundError') + return cb(null, String(id).substring(0, 8) + '…(missing)') + if (err) return fallback() + new RenderMsg(self, self.app, msg, {wrap: false}).title(cb) + }) + case '@': // fallthrough + case '&': + return self.app.getAbout(id, function (err, about) { + if (err || !about || !about.name) return fallback() + cb(null, about.name) + }) + default: + return cb(null, String(id)) + } + function fallback() { + cb(null, String(id).substr(0, 8) + '…') + } +} + +Render.prototype.getNameLink = function (id, cb) { + var self = this + self.getName(id, function (err, name) { + if (err) return cb(err) + cb(null, h('a', {href: self.toUrl(id)}, name)) + }) +} |