From 34982291bc2e6ecdd54fcc74d09d16f6e0929db0 Mon Sep 17 00:00:00 2001 From: cel Date: Mon, 13 Mar 2017 14:15:36 -0400 Subject: render missing thread root --- lib/render-msg.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'lib/render-msg.js') diff --git a/lib/render-msg.js b/lib/render-msg.js index 23e236f..703f5cd 100644 --- a/lib/render-msg.js +++ b/lib/render-msg.js @@ -10,10 +10,12 @@ function RenderMsg(render, app, msg, opts) { this.render = render this.app = app this.msg = msg + this.value = msg && msg.value || {} + var content = this.value.content + this.c = content || {} + this.isMissing = !content var opts = opts || {} this.shouldWrap = opts.wrap !== false - - this.c = msg.value.content || {} } RenderMsg.prototype.toUrl = function (href) { @@ -125,13 +127,13 @@ RenderMsg.prototype.wrap = function (content, cb) { RenderMsg.prototype.wrapMini = function (content, cb) { if (!this.shouldWrap) return cb(null, content) - var date = new Date(this.msg.value.timestamp) + var date = new Date(this.value.timestamp) var self = this var channel = this.c.channel ? '#' + this.c.channel : '' var done = multicb({pluck: 1, spread: true}) done()(null, h('tr.msg-row', h('td.msg-left', - this.render.idLink(this.msg.value.author, done()), ' ', + this.render.idLink(this.value.author, done()), ' ', this.recpsLine(done()), channel ? [h('a', {href: this.toUrl(channel)}, channel), ' '] : ''), h('td.msg-main', @@ -154,8 +156,8 @@ RenderMsg.prototype.wrapMini = function (content, cb) { } RenderMsg.prototype.recpsLine = function (cb) { - if (!this.msg.value.private) return cb(), '' - var author = this.msg.value.author + if (!this.value.private) return cb(), '' + var author = this.value.author var recpsNotSelf = u.toArray(this.c.recps).filter(function (link) { return u.linkDest(link) !== author }) @@ -163,7 +165,7 @@ RenderMsg.prototype.recpsLine = function (cb) { } RenderMsg.prototype.recpsIds = function () { - return this.msg.value.private + return this.value.private ? u.toArray(this.c.recps).map(u.linkDest) : [] } @@ -181,6 +183,7 @@ RenderMsg.prototype.voteFormInner = function (expression) { RenderMsg.prototype.message = function (raw, cb) { if (raw) return this.raw(cb) if (typeof this.c === 'string') return this.encrypted(cb) + if (this.isMissing) return this.missing(cb) switch (this.c.type) { case 'post': return this.post(cb) case 'ferment/like': @@ -458,6 +461,10 @@ RenderMsg.prototype.object = function (cb) { this.wrapMini(h('pre', this.c.type), cb) } +RenderMsg.prototype.missing = function (cb) { + this.wrapMini(h('code', 'MISSING'), cb) +} + RenderMsg.prototype.issues = function (cb) { var self = this var done = multicb({pluck: 1, spread: true}) -- cgit v1.2.3