Hotfix more sortable elements

This commit is contained in:
Haocen Xu 2018-07-06 14:42:36 -04:00
parent 43d86d7d5d
commit 616dade81c
6 changed files with 21 additions and 22 deletions

View file

@ -75,9 +75,7 @@ BlazeComponent.extendComponent({
});
// ugly touch event hotfix
$('.js-swimlane:not(.placeholder)').each(function() {
enableClickOnTouch(this);
});
enableClickOnTouch('.js-swimlane:not(.placeholder)');
function userIsMember() {
return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();

View file

@ -132,6 +132,9 @@ BlazeComponent.extendComponent({
},
});
// ugly touch event hotfix
enableClickOnTouch('.card-checklist-items .js-checklist');
const $subtasksDom = this.$('.card-subtasks-items');
$subtasksDom.sortable({
@ -167,6 +170,9 @@ BlazeComponent.extendComponent({
},
});
// ugly touch event hotfix
enableClickOnTouch('.card-subtasks-items .js-subtasks');
function userIsMember() {
return Meteor.user() && Meteor.user().isBoardMember();
}

View file

@ -38,9 +38,7 @@ function initSorting(items) {
});
// ugly touch event hotfix
$('.js-checklist-item:not(.placeholder)').each(function() {
enableClickOnTouch(this);
});
enableClickOnTouch('.js-checklist-item:not(.placeholder)');
}
BlazeComponent.extendComponent({

View file

@ -84,9 +84,7 @@ BlazeComponent.extendComponent({
});
// ugly touch event hotfix
$(itemsSelector).each(function() {
enableClickOnTouch(this);
});
enableClickOnTouch(itemsSelector);
// Disable drag-dropping if the current user is not a board member or is comment only
this.autorun(() => {

View file

@ -67,9 +67,7 @@ function initSortable(boardComponent, $listsDom) {
});
// ugly touch event hotfix
$('.js-list:not(.js-list-composer)').each(function() {
enableClickOnTouch(this);
});
enableClickOnTouch('.js-list:not(.js-list-composer)');
function userIsMember() {
return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();

View file

@ -123,23 +123,24 @@ Utils = {
);
},
enableClickOnTouch(element) {
enableClickOnTouch(selector) {
let touchStart = null;
let lastTouch = null;
element.addEventListener('touchstart', function(e) {
touchStart = e.touches[0];
}, false);
element.addEventListener('touchmove', function(e) {
const touches = e.touches;
$(document).on('touchstart', selector, function(e) {
touchStart = e.originalEvent.touches[0];
});
$(document).on('touchmove', selector, function(e) {
const touches = e.originalEvent.touches;
lastTouch = touches[touches.length - 1];
}, true);
element.addEventListener('touchend', function() {
});
$(document).on('touchend', selector, function(e) {
if (touchStart && lastTouch && Utils.calculateTouchDistance(touchStart, lastTouch) <= 20) {
const clickEvent = document.createEvent('MouseEvents');
clickEvent.initEvent('click', true, true);
this.dispatchEvent(clickEvent);
e.target.dispatchEvent(clickEvent);
}
}, false);
});
},
};