Preview the effects of a drag-and-drop operation on workboards

Summary:
Ref T10335. Ref T5474. When you drag-and-drop a card on a workboard, show a UI hint which lists all the things that the operation will do.

This shows: column moves; changes because of dragging a card to a different header; and changes which will be caused by triggers.

Not implemented here:

  - Actions are currently shown even if they have no effect. For example, if you drag a "Normal" task to a different column, it says "Change priority to Normal.". I plan to hide actions which have no effect, but figuring this out is a little bit tricky.
  - I'd like to make "trigger effects" vs "non-trigger effects" a little more clear in the future, probably.

Test Plan:
Dragged stuff between columns and headers, and into columns with triggers. Got appropriate preview text hints previewing what the action would do in the UI.

(This is tricky to take a screenshot of since it only shows up while the mouse cursor is down.)

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T10335, T5474

Differential Revision: https://secure.phabricator.com/D20299
This commit is contained in:
epriestley
2019-03-19 15:27:21 -07:00
parent 149f8cc959
commit 5dca1569b5
22 changed files with 522 additions and 101 deletions

View File

@@ -25,6 +25,7 @@ JX.install('WorkboardColumn', {
this._headers = {};
this._objects = [];
this._naturalOrder = [];
this._dropEffects = [];
},
members: {
@@ -40,6 +41,7 @@ JX.install('WorkboardColumn', {
_pointsContentNode: null,
_dirty: true,
_objects: null,
_dropEffects: null,
getPHID: function() {
return this._phid;
@@ -71,6 +73,15 @@ JX.install('WorkboardColumn', {
return this;
},
setDropEffects: function(effects) {
this._dropEffects = effects;
return this;
},
getDropEffects: function() {
return this._dropEffects;
},
getPointsNode: function() {
return this._pointsNode;
},