diff options
author | cel <cel@f/6sQ6d2CMxRUhLpspgGIulDxDCwYD7DzFzPNr7u5AU=.ed25519> | 2019-08-24 21:24:31 -0700 |
---|---|---|
committer | cel <cel@f/6sQ6d2CMxRUhLpspgGIulDxDCwYD7DzFzPNr7u5AU=.ed25519> | 2019-08-25 13:48:21 -0700 |
commit | fc9a0a9381d5be936e2349d4fd655094bf7e500c (patch) | |
tree | bb5f89b4928ff8030e37f54c7ea91c3e54edd9a8 /lib | |
parent | f76defc54c292f33838caf35eca329793ff7d733 (diff) | |
download | patchfoo-fc9a0a9381d5be936e2349d4fd655094bf7e500c.tar.gz patchfoo-fc9a0a9381d5be936e2349d4fd655094bf7e500c.zip |
Implement close issue checkbox
Diffstat (limited to 'lib')
-rw-r--r-- | lib/serve.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/serve.js b/lib/serve.js index 1206b36..64c96df 100644 --- a/lib/serve.js +++ b/lib/serve.js @@ -3694,6 +3694,7 @@ Serve.prototype.composer = function (opts, cb) { ' fork thread' ) ) : '', + closeIssueCheckbox(done()), h('textarea', { id: opts.id, name: 'text', @@ -3861,6 +3862,17 @@ Serve.prototype.composer = function (opts, cb) { content.root = opts.root || undefined content.branch = u.fromArray(opts.branches) || undefined } + if (data.close_issue) { + content.issue = opts.root || undefined + content.project = data.project || undefined + content.repo = data.repo || undefined + content.issues = [ + { + link: opts.root, + open: false + } + ] + } if (channel) content.channel = data.channel done(function (err) { @@ -3868,6 +3880,26 @@ Serve.prototype.composer = function (opts, cb) { }) } + function closeIssueCheckbox(cb) { + var container = h('div') + if (opts.root) self.getMsgDecryptedMaybeOoo(opts.root, function (err, rootMsg) { + if (err) return console.trace(err), cb(null) + var rootC = rootMsg && rootMsg.value.content && rootMsg.value.content + if (!rootC) return cb(null) + var canCloseIssue = rootC.type === 'issue' + var canClosePR = rootC.type === 'pull-request' + if (canCloseIssue || canClosePR) container.appendChild(h('label', {for: 'close_issue'}, + h('input', {id: 'close_issue', type: 'checkbox', name: 'close_issue', value: 'post', checked: data.close_issue || undefined}), + ' close ' + (canClosePR ? 'pull-request' : 'issue'), + rootC.project ? h('input', {type: 'hidden', name: 'project', value: rootC.project}) : '', + rootC.repo ? h('input', {type: 'hidden', name: 'repo', value: rootC.repo}) : '' + )) + cb(null) + }) + else cb(null) + return container + } + function preview(raw, cb) { var msgContainer = h('table.ssb-msgs') var contentInput = h('input', {type: 'hidden', name: 'content'}) |