|
@@ -53,10 +53,21 @@ function initSortable(boardComponent, $listsDom) {
|
|
|
},
|
|
|
};
|
|
|
|
|
|
+ if (Utils.isMiniScreen) {
|
|
|
+ $listsDom.sortable({
|
|
|
+ handle: '.js-list-handle',
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!Utils.isMiniScreen && showDesktopDragHandles) {
|
|
|
+ $listsDom.sortable({
|
|
|
+ handle: '.js-list-header',
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
$listsDom.sortable({
|
|
|
tolerance: 'pointer',
|
|
|
helper: 'clone',
|
|
|
- handle: '.js-list-header',
|
|
|
items: '.js-list:not(.js-list-composer)',
|
|
|
placeholder: 'list placeholder',
|
|
|
distance: 7,
|
|
@@ -151,13 +162,39 @@ BlazeComponent.extendComponent({
|
|
|
// define a list of elements in which we disable the dragging because
|
|
|
// the user will legitimately expect to be able to select some text with
|
|
|
// his mouse.
|
|
|
- const noDragInside = [
|
|
|
- 'a',
|
|
|
- 'input',
|
|
|
- 'textarea',
|
|
|
- 'p',
|
|
|
- '.js-list-header',
|
|
|
- ];
|
|
|
+
|
|
|
+ if (Utils.isMiniScreen) {
|
|
|
+ const noDragInside = [
|
|
|
+ 'a',
|
|
|
+ 'input',
|
|
|
+ 'textarea',
|
|
|
+ 'p',
|
|
|
+ '.js-list-handle',
|
|
|
+ '.js-swimlane-header-handle',
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!Utils.isMiniScreen && !showDesktopDragHandles) {
|
|
|
+ const noDragInside = [
|
|
|
+ 'a',
|
|
|
+ 'input',
|
|
|
+ 'textarea',
|
|
|
+ 'p',
|
|
|
+ '.js-list-header',
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!Utils.isMiniScreen && showDesktopDragHandles) {
|
|
|
+ const noDragInside = [
|
|
|
+ 'a',
|
|
|
+ 'input',
|
|
|
+ 'textarea',
|
|
|
+ 'p',
|
|
|
+ '.js-list-handle',
|
|
|
+ '.js-swimlane-header-handle',
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
if (
|
|
|
$(evt.target).closest(noDragInside.join(',')).length === 0 &&
|
|
|
this.$('.swimlane').prop('clientHeight') > evt.offsetY
|
|
@@ -233,6 +270,9 @@ BlazeComponent.extendComponent({
|
|
|
}).register('addListForm');
|
|
|
|
|
|
Template.swimlane.helpers({
|
|
|
+ showDesktopDragHandles() {
|
|
|
+ return Meteor.user().hasShowDesktopDragHandles();
|
|
|
+ },
|
|
|
canSeeAddList() {
|
|
|
return (
|
|
|
Meteor.user() &&
|