mirror of
https://we.phorge.it/source/phorge.git
synced 2025-02-07 20:38:32 +01:00
Add a Delete link to Differential inline comment previews
Summary: This lets you delete inlines from the preview at the bottom of the page, instead of hunting for them through the diffs. There is not yet a keyboard shortcut. The mechanism for updating the inlines in the diffs is kind of a hack and I'm sure I'm special-casing way too much, but at least it works. Test Plan: Load revision with many diffs. Create inlines all over the place. Delete them all. Mwahaha. Reviewers: epriestley Reviewed By: epriestley CC: aran, Korvin Maniphest Tasks: T1433, T1431 Differential Revision: https://secure.phabricator.com/D3131
This commit is contained in:
parent
ce8bcf887d
commit
8e5189b439
3 changed files with 36 additions and 0 deletions
|
@ -90,6 +90,9 @@ final class DifferentialInlineCommentView extends AphrontView {
|
||||||
);
|
);
|
||||||
|
|
||||||
$sigil = 'differential-inline-comment';
|
$sigil = 'differential-inline-comment';
|
||||||
|
if ($this->preview) {
|
||||||
|
$sigil = $sigil . ' differential-inline-comment-preview';
|
||||||
|
}
|
||||||
|
|
||||||
$content = $inline->getContent();
|
$content = $inline->getContent();
|
||||||
$handles = $this->handles;
|
$handles = $this->handles;
|
||||||
|
@ -177,6 +180,14 @@ final class DifferentialInlineCommentView extends AphrontView {
|
||||||
'sigil' => 'differential-inline-preview-jump',
|
'sigil' => 'differential-inline-preview-jump',
|
||||||
),
|
),
|
||||||
'Not Visible');
|
'Not Visible');
|
||||||
|
$links[] = javelin_render_tag(
|
||||||
|
'a',
|
||||||
|
array(
|
||||||
|
'href' => '#',
|
||||||
|
'mustcapture' => true,
|
||||||
|
'sigil' => 'differential-inline-delete',
|
||||||
|
),
|
||||||
|
'Delete');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($links) {
|
if ($links) {
|
||||||
|
|
|
@ -134,6 +134,10 @@ JX.install('DifferentialInlineCommentEditor', {
|
||||||
var remove_old = (op == 'edit' || op == 'delete');
|
var remove_old = (op == 'edit' || op == 'delete');
|
||||||
if (remove_old) {
|
if (remove_old) {
|
||||||
JX.DOM.remove(this.getRow());
|
JX.DOM.remove(this.getRow());
|
||||||
|
var other_rows = this.getOtherRows();
|
||||||
|
for(var i = 0; i < other_rows.length; ++i) {
|
||||||
|
JX.DOM.remove(other_rows[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Once the user saves something, get rid of the 'undo' option. A
|
// Once the user saves something, get rid of the 'undo' option. A
|
||||||
|
@ -251,6 +255,7 @@ JX.install('DifferentialInlineCommentEditor', {
|
||||||
properties : {
|
properties : {
|
||||||
operation : null,
|
operation : null,
|
||||||
row : null,
|
row : null,
|
||||||
|
otherRows: [],
|
||||||
table : null,
|
table : null,
|
||||||
onRight : null,
|
onRight : null,
|
||||||
ID : null,
|
ID : null,
|
||||||
|
|
|
@ -200,6 +200,25 @@ JX.behavior('differential-edit-inline-comments', function(config) {
|
||||||
var handle_inline_action = function(node, op) {
|
var handle_inline_action = function(node, op) {
|
||||||
var data = JX.Stratcom.getData(node);
|
var data = JX.Stratcom.getData(node);
|
||||||
var row = node.parentNode.parentNode;
|
var row = node.parentNode.parentNode;
|
||||||
|
var other_rows = [];
|
||||||
|
if (JX.Stratcom.hasSigil(node, 'differential-inline-comment-preview')) {
|
||||||
|
// The DOM structure around the comment is different if it's part of the
|
||||||
|
// preview, so make sure not to pass the wrong container.
|
||||||
|
row = node;
|
||||||
|
if (op === 'delete') {
|
||||||
|
// Furthermore, deleting a comment in the preview does not automatically
|
||||||
|
// delete other occurrences of the same comment, so do that manually.
|
||||||
|
var nodes = JX.DOM.scry(
|
||||||
|
document.body,
|
||||||
|
'div',
|
||||||
|
'differential-inline-comment');
|
||||||
|
for (var i = 0; i < nodes.length; ++i) {
|
||||||
|
if (JX.Stratcom.getData(nodes[i]).id === data.id) {
|
||||||
|
other_rows.push(nodes[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var original = data.original;
|
var original = data.original;
|
||||||
if (op == 'reply') {
|
if (op == 'reply') {
|
||||||
|
@ -217,6 +236,7 @@ JX.behavior('differential-edit-inline-comments', function(config) {
|
||||||
.setOnRight(data.on_right)
|
.setOnRight(data.on_right)
|
||||||
.setOriginalText(original)
|
.setOriginalText(original)
|
||||||
.setRow(row)
|
.setRow(row)
|
||||||
|
.setOtherRows(other_rows)
|
||||||
.setTable(row.parentNode)
|
.setTable(row.parentNode)
|
||||||
.start();
|
.start();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue