mirror of
https://we.phorge.it/source/phorge.git
synced 2025-02-16 16:58:38 +01:00
When a user drags a card over a column, highlight the column border
Summary: Ref T10334. Partly, this just improves visual feedback for all drag operations. After D20242, we can have cases where you (for example) drag a low-priority node to a very tall column on a priority-ordered workboard. In this case, the actual dashed-border-drop-target may not be on screen. We might make the column scroll or put some kind of hint in the UI in this case, but an easy starting point is just to make the "yes, you're targeting this column" state a bit more clear. Test Plan: Dragged tasks between columns, saw the border higlight on the target columns. This is very tricky to take a screenshot of. Reviewers: amckinley Reviewed By: amckinley Maniphest Tasks: T10334 Differential Revision: https://secure.phabricator.com/D20245
This commit is contained in:
parent
2260738de9
commit
be1e3b2cc0
5 changed files with 63 additions and 36 deletions
|
@ -10,7 +10,7 @@ return array(
|
||||||
'conpherence.pkg.css' => '3c8a0668',
|
'conpherence.pkg.css' => '3c8a0668',
|
||||||
'conpherence.pkg.js' => '020aebcf',
|
'conpherence.pkg.js' => '020aebcf',
|
||||||
'core.pkg.css' => '34ce1741',
|
'core.pkg.css' => '34ce1741',
|
||||||
'core.pkg.js' => '9eb1254b',
|
'core.pkg.js' => 'b96c872e',
|
||||||
'differential.pkg.css' => '1755a478',
|
'differential.pkg.css' => '1755a478',
|
||||||
'differential.pkg.js' => '67e02996',
|
'differential.pkg.js' => '67e02996',
|
||||||
'diffusion.pkg.css' => '42c75c37',
|
'diffusion.pkg.css' => '42c75c37',
|
||||||
|
@ -178,7 +178,7 @@ return array(
|
||||||
'rsrc/css/phui/workboards/phui-workboard-color.css' => 'e86de308',
|
'rsrc/css/phui/workboards/phui-workboard-color.css' => 'e86de308',
|
||||||
'rsrc/css/phui/workboards/phui-workboard.css' => '74fc9d98',
|
'rsrc/css/phui/workboards/phui-workboard.css' => '74fc9d98',
|
||||||
'rsrc/css/phui/workboards/phui-workcard.css' => '8c536f90',
|
'rsrc/css/phui/workboards/phui-workcard.css' => '8c536f90',
|
||||||
'rsrc/css/phui/workboards/phui-workpanel.css' => 'bd546a49',
|
'rsrc/css/phui/workboards/phui-workpanel.css' => '7e12d43c',
|
||||||
'rsrc/css/sprite-login.css' => '18b368a6',
|
'rsrc/css/sprite-login.css' => '18b368a6',
|
||||||
'rsrc/css/sprite-tokens.css' => 'f1896dc5',
|
'rsrc/css/sprite-tokens.css' => 'f1896dc5',
|
||||||
'rsrc/css/syntax/syntax-default.css' => '055fc231',
|
'rsrc/css/syntax/syntax-default.css' => '055fc231',
|
||||||
|
@ -409,9 +409,9 @@ return array(
|
||||||
'rsrc/js/application/phortune/phortune-credit-card-form.js' => 'd12d214f',
|
'rsrc/js/application/phortune/phortune-credit-card-form.js' => 'd12d214f',
|
||||||
'rsrc/js/application/policy/behavior-policy-control.js' => '0eaa33a9',
|
'rsrc/js/application/policy/behavior-policy-control.js' => '0eaa33a9',
|
||||||
'rsrc/js/application/policy/behavior-policy-rule-editor.js' => '9347f172',
|
'rsrc/js/application/policy/behavior-policy-rule-editor.js' => '9347f172',
|
||||||
'rsrc/js/application/projects/WorkboardBoard.js' => '3a8c42a3',
|
'rsrc/js/application/projects/WorkboardBoard.js' => 'fd96a6e8',
|
||||||
'rsrc/js/application/projects/WorkboardCard.js' => '9a513421',
|
'rsrc/js/application/projects/WorkboardCard.js' => '9a513421',
|
||||||
'rsrc/js/application/projects/WorkboardColumn.js' => 'b451fd4c',
|
'rsrc/js/application/projects/WorkboardColumn.js' => '1f71e559',
|
||||||
'rsrc/js/application/projects/WorkboardController.js' => '42c7a5a7',
|
'rsrc/js/application/projects/WorkboardController.js' => '42c7a5a7',
|
||||||
'rsrc/js/application/projects/behavior-project-boards.js' => '05c74d65',
|
'rsrc/js/application/projects/behavior-project-boards.js' => '05c74d65',
|
||||||
'rsrc/js/application/projects/behavior-project-create.js' => '34c53422',
|
'rsrc/js/application/projects/behavior-project-create.js' => '34c53422',
|
||||||
|
@ -434,7 +434,7 @@ return array(
|
||||||
'rsrc/js/application/uiexample/notification-example.js' => '29819b75',
|
'rsrc/js/application/uiexample/notification-example.js' => '29819b75',
|
||||||
'rsrc/js/core/Busy.js' => '5202e831',
|
'rsrc/js/core/Busy.js' => '5202e831',
|
||||||
'rsrc/js/core/DragAndDropFileUpload.js' => '4370900d',
|
'rsrc/js/core/DragAndDropFileUpload.js' => '4370900d',
|
||||||
'rsrc/js/core/DraggableList.js' => 'd594c805',
|
'rsrc/js/core/DraggableList.js' => '8437c663',
|
||||||
'rsrc/js/core/Favicon.js' => '7930776a',
|
'rsrc/js/core/Favicon.js' => '7930776a',
|
||||||
'rsrc/js/core/FileUpload.js' => 'ab85e184',
|
'rsrc/js/core/FileUpload.js' => 'ab85e184',
|
||||||
'rsrc/js/core/Hovercard.js' => '074f0783',
|
'rsrc/js/core/Hovercard.js' => '074f0783',
|
||||||
|
@ -727,9 +727,9 @@ return array(
|
||||||
'javelin-view-renderer' => '9aae2b66',
|
'javelin-view-renderer' => '9aae2b66',
|
||||||
'javelin-view-visitor' => '308f9fe4',
|
'javelin-view-visitor' => '308f9fe4',
|
||||||
'javelin-websocket' => 'fdc13e4e',
|
'javelin-websocket' => 'fdc13e4e',
|
||||||
'javelin-workboard-board' => '3a8c42a3',
|
'javelin-workboard-board' => 'fd96a6e8',
|
||||||
'javelin-workboard-card' => '9a513421',
|
'javelin-workboard-card' => '9a513421',
|
||||||
'javelin-workboard-column' => 'b451fd4c',
|
'javelin-workboard-column' => '1f71e559',
|
||||||
'javelin-workboard-controller' => '42c7a5a7',
|
'javelin-workboard-controller' => '42c7a5a7',
|
||||||
'javelin-workflow' => '958e9045',
|
'javelin-workflow' => '958e9045',
|
||||||
'maniphest-report-css' => '3d53188b',
|
'maniphest-report-css' => '3d53188b',
|
||||||
|
@ -755,7 +755,7 @@ return array(
|
||||||
'phabricator-diff-changeset-list' => '04023d82',
|
'phabricator-diff-changeset-list' => '04023d82',
|
||||||
'phabricator-diff-inline' => 'a4a14a94',
|
'phabricator-diff-inline' => 'a4a14a94',
|
||||||
'phabricator-drag-and-drop-file-upload' => '4370900d',
|
'phabricator-drag-and-drop-file-upload' => '4370900d',
|
||||||
'phabricator-draggable-list' => 'd594c805',
|
'phabricator-draggable-list' => '8437c663',
|
||||||
'phabricator-fatal-config-template-css' => '20babf50',
|
'phabricator-fatal-config-template-css' => '20babf50',
|
||||||
'phabricator-favicon' => '7930776a',
|
'phabricator-favicon' => '7930776a',
|
||||||
'phabricator-feed-css' => 'd8b6e3f8',
|
'phabricator-feed-css' => 'd8b6e3f8',
|
||||||
|
@ -854,7 +854,7 @@ return array(
|
||||||
'phui-workboard-color-css' => 'e86de308',
|
'phui-workboard-color-css' => 'e86de308',
|
||||||
'phui-workboard-view-css' => '74fc9d98',
|
'phui-workboard-view-css' => '74fc9d98',
|
||||||
'phui-workcard-view-css' => '8c536f90',
|
'phui-workcard-view-css' => '8c536f90',
|
||||||
'phui-workpanel-view-css' => 'bd546a49',
|
'phui-workpanel-view-css' => '7e12d43c',
|
||||||
'phuix-action-list-view' => 'c68f183f',
|
'phuix-action-list-view' => 'c68f183f',
|
||||||
'phuix-action-view' => 'aaa08f3b',
|
'phuix-action-view' => 'aaa08f3b',
|
||||||
'phuix-autocomplete' => '8f139ef0',
|
'phuix-autocomplete' => '8f139ef0',
|
||||||
|
@ -1034,6 +1034,10 @@ return array(
|
||||||
'javelin-behavior',
|
'javelin-behavior',
|
||||||
'javelin-dom',
|
'javelin-dom',
|
||||||
),
|
),
|
||||||
|
'1f71e559' => array(
|
||||||
|
'javelin-install',
|
||||||
|
'javelin-workboard-card',
|
||||||
|
),
|
||||||
'1ff278aa' => array(
|
'1ff278aa' => array(
|
||||||
'phui-button-css',
|
'phui-button-css',
|
||||||
),
|
),
|
||||||
|
@ -1188,15 +1192,6 @@ return array(
|
||||||
'javelin-install',
|
'javelin-install',
|
||||||
'javelin-dom',
|
'javelin-dom',
|
||||||
),
|
),
|
||||||
'3a8c42a3' => array(
|
|
||||||
'javelin-install',
|
|
||||||
'javelin-dom',
|
|
||||||
'javelin-util',
|
|
||||||
'javelin-stratcom',
|
|
||||||
'javelin-workflow',
|
|
||||||
'phabricator-draggable-list',
|
|
||||||
'javelin-workboard-column',
|
|
||||||
),
|
|
||||||
'3b4899b0' => array(
|
'3b4899b0' => array(
|
||||||
'javelin-behavior',
|
'javelin-behavior',
|
||||||
'phabricator-prefab',
|
'phabricator-prefab',
|
||||||
|
@ -1540,6 +1535,9 @@ return array(
|
||||||
'javelin-install',
|
'javelin-install',
|
||||||
'javelin-dom',
|
'javelin-dom',
|
||||||
),
|
),
|
||||||
|
'7e12d43c' => array(
|
||||||
|
'phui-workcard-view-css',
|
||||||
|
),
|
||||||
'80bff3af' => array(
|
'80bff3af' => array(
|
||||||
'javelin-install',
|
'javelin-install',
|
||||||
'javelin-typeahead-source',
|
'javelin-typeahead-source',
|
||||||
|
@ -1557,6 +1555,14 @@ return array(
|
||||||
'javelin-workflow',
|
'javelin-workflow',
|
||||||
'phabricator-draggable-list',
|
'phabricator-draggable-list',
|
||||||
),
|
),
|
||||||
|
'8437c663' => array(
|
||||||
|
'javelin-install',
|
||||||
|
'javelin-dom',
|
||||||
|
'javelin-stratcom',
|
||||||
|
'javelin-util',
|
||||||
|
'javelin-vector',
|
||||||
|
'javelin-magical-init',
|
||||||
|
),
|
||||||
'87428eb2' => array(
|
'87428eb2' => array(
|
||||||
'javelin-behavior',
|
'javelin-behavior',
|
||||||
'javelin-diffusion-locate-file-source',
|
'javelin-diffusion-locate-file-source',
|
||||||
|
@ -1843,10 +1849,6 @@ return array(
|
||||||
'b347a301' => array(
|
'b347a301' => array(
|
||||||
'javelin-behavior',
|
'javelin-behavior',
|
||||||
),
|
),
|
||||||
'b451fd4c' => array(
|
|
||||||
'javelin-install',
|
|
||||||
'javelin-workboard-card',
|
|
||||||
),
|
|
||||||
'b517bfa0' => array(
|
'b517bfa0' => array(
|
||||||
'phui-oi-list-view-css',
|
'phui-oi-list-view-css',
|
||||||
),
|
),
|
||||||
|
@ -1885,9 +1887,6 @@ return array(
|
||||||
'javelin-uri',
|
'javelin-uri',
|
||||||
'phabricator-notification',
|
'phabricator-notification',
|
||||||
),
|
),
|
||||||
'bd546a49' => array(
|
|
||||||
'phui-workcard-view-css',
|
|
||||||
),
|
|
||||||
'bdce4d78' => array(
|
'bdce4d78' => array(
|
||||||
'javelin-install',
|
'javelin-install',
|
||||||
'javelin-util',
|
'javelin-util',
|
||||||
|
@ -1986,14 +1985,6 @@ return array(
|
||||||
'd3799cb4' => array(
|
'd3799cb4' => array(
|
||||||
'javelin-install',
|
'javelin-install',
|
||||||
),
|
),
|
||||||
'd594c805' => array(
|
|
||||||
'javelin-install',
|
|
||||||
'javelin-dom',
|
|
||||||
'javelin-stratcom',
|
|
||||||
'javelin-util',
|
|
||||||
'javelin-vector',
|
|
||||||
'javelin-magical-init',
|
|
||||||
),
|
|
||||||
'd8a86cfb' => array(
|
'd8a86cfb' => array(
|
||||||
'javelin-behavior',
|
'javelin-behavior',
|
||||||
'javelin-dom',
|
'javelin-dom',
|
||||||
|
@ -2129,6 +2120,15 @@ return array(
|
||||||
'javelin-magical-init',
|
'javelin-magical-init',
|
||||||
'javelin-util',
|
'javelin-util',
|
||||||
),
|
),
|
||||||
|
'fd96a6e8' => array(
|
||||||
|
'javelin-install',
|
||||||
|
'javelin-dom',
|
||||||
|
'javelin-util',
|
||||||
|
'javelin-stratcom',
|
||||||
|
'javelin-workflow',
|
||||||
|
'phabricator-draggable-list',
|
||||||
|
'javelin-workboard-column',
|
||||||
|
),
|
||||||
'fdc13e4e' => array(
|
'fdc13e4e' => array(
|
||||||
'javelin-install',
|
'javelin-install',
|
||||||
),
|
),
|
||||||
|
|
|
@ -137,3 +137,11 @@
|
||||||
.phui-workpanel-view.project-panel-over-limit .phui-header-shell {
|
.phui-workpanel-view.project-panel-over-limit .phui-header-shell {
|
||||||
border-color: {$red};
|
border-color: {$red};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.phui-workpanel-view .phui-box-grey {
|
||||||
|
border: 1px solid transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.phui-workpanel-view.workboard-column-drop-target .phui-box-grey {
|
||||||
|
border-color: {$lightblueborder};
|
||||||
|
}
|
||||||
|
|
|
@ -116,7 +116,8 @@ JX.install('WorkboardBoard', {
|
||||||
.setOuterContainer(this.getRoot())
|
.setOuterContainer(this.getRoot())
|
||||||
.setFindItemsHandler(JX.bind(column, column.getCardNodes))
|
.setFindItemsHandler(JX.bind(column, column.getCardNodes))
|
||||||
.setCanDragX(true)
|
.setCanDragX(true)
|
||||||
.setHasInfiniteHeight(true);
|
.setHasInfiniteHeight(true)
|
||||||
|
.setIsDropTargetHandler(JX.bind(column, column.setIsDropTarget));
|
||||||
|
|
||||||
if (this.getOrder() !== 'natural') {
|
if (this.getOrder() !== 'natural') {
|
||||||
list.setCompareHandler(JX.bind(column, column.compareHandler));
|
list.setCompareHandler(JX.bind(column, column.compareHandler));
|
||||||
|
|
|
@ -188,6 +188,11 @@ JX.install('WorkboardColumn', {
|
||||||
return this._compareVectors(u_vec, v_vec);
|
return this._compareVectors(u_vec, v_vec);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setIsDropTarget: function(is_target) {
|
||||||
|
var node = this.getWorkpanelNode();
|
||||||
|
JX.DOM.alterClass(node, 'workboard-column-drop-target', is_target);
|
||||||
|
},
|
||||||
|
|
||||||
_getCardsSortedNaturally: function() {
|
_getCardsSortedNaturally: function() {
|
||||||
var list = [];
|
var list = [];
|
||||||
|
|
||||||
|
|
|
@ -40,6 +40,7 @@ JX.install('DraggableList', {
|
||||||
properties : {
|
properties : {
|
||||||
findItemsHandler: null,
|
findItemsHandler: null,
|
||||||
compareHandler: null,
|
compareHandler: null,
|
||||||
|
isDropTargetHandler: null,
|
||||||
canDragX: false,
|
canDragX: false,
|
||||||
outerContainer: null,
|
outerContainer: null,
|
||||||
hasInfiniteHeight: false
|
hasInfiniteHeight: false
|
||||||
|
@ -318,7 +319,7 @@ JX.install('DraggableList', {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
JX.DOM.alterClass(root, 'drag-target-list', is_target);
|
group[ii]._setIsDropTarget(is_target);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
target_list = this;
|
target_list = this;
|
||||||
|
@ -368,6 +369,18 @@ JX.install('DraggableList', {
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_setIsDropTarget: function(is_target) {
|
||||||
|
var root = this.getRootNode();
|
||||||
|
JX.DOM.alterClass(root, 'drag-target-list', is_target);
|
||||||
|
|
||||||
|
var handler = this.getIsDropTargetHandler();
|
||||||
|
if (handler) {
|
||||||
|
handler(is_target);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
|
||||||
_getOrderedTarget: function(src_list, src_node) {
|
_getOrderedTarget: function(src_list, src_node) {
|
||||||
var targets = this._getTargets();
|
var targets = this._getTargets();
|
||||||
|
|
||||||
|
@ -633,7 +646,7 @@ JX.install('DraggableList', {
|
||||||
|
|
||||||
var group = this._group;
|
var group = this._group;
|
||||||
for (var ii = 0; ii < group.length; ii++) {
|
for (var ii = 0; ii < group.length; ii++) {
|
||||||
JX.DOM.alterClass(group[ii].getRootNode(), 'drag-target-list', false);
|
group[ii]._setIsDropTarget(false);
|
||||||
group[ii]._clearTarget();
|
group[ii]._clearTarget();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue