summaryrefslogtreecommitdiffstats
path: root/client/components/sidebar
diff options
context:
space:
mode:
authorMaxime Quandalle <maxime@quandalle.com>2015-12-29 18:08:24 +0100
committerMaxime Quandalle <maxime@quandalle.com>2015-12-30 19:22:30 +0100
commitf6c01161a02e273b87c9f6cc02d3809b997241ba (patch)
tree77e2199c414070b8663bba4ba24f4167013081a7 /client/components/sidebar
parent46bf6ef80376e6fee0fb15e518373bf194ab961d (diff)
downloadwekan-f6c01161a02e273b87c9f6cc02d3809b997241ba.tar.gz
wekan-f6c01161a02e273b87c9f6cc02d3809b997241ba.tar.bz2
wekan-f6c01161a02e273b87c9f6cc02d3809b997241ba.zip
Fix drag and drop on Sandstorm
This bug was introduced with the introduction of fast-render in 41b23f8. With fast-render data is available instantly after the page logging, but calls to `Meteor.userId()` still return `null` as the user isn't authenticated on the DDP channel yet (previously the data was loaded on DDP after user authentication). Which mean that we know need to reactively activate Drag and Drop on user log in. I'm not sure why I was not able to reproduce this bug outside of Sandstorm. Fixes #453
Diffstat (limited to 'client/components/sidebar')
-rw-r--r--client/components/sidebar/sidebar.js14
1 files changed, 10 insertions, 4 deletions
diff --git a/client/components/sidebar/sidebar.js b/client/components/sidebar/sidebar.js
index 35651622..15a4ce44 100644
--- a/client/components/sidebar/sidebar.js
+++ b/client/components/sidebar/sidebar.js
@@ -195,9 +195,6 @@ Template.labelsWidget.events({
// autorun function and register a dependency on the both members and labels
// fields of the current board document.
function draggableMembersLabelsWidgets() {
- if (!Meteor.user() || !Meteor.user().isBoardMember())
- return;
-
this.autorun(() => {
const currentBoardId = Tracker.nonreactive(() => {
return Session.get('currentBoard');
@@ -209,7 +206,8 @@ function draggableMembersLabelsWidgets() {
},
});
Tracker.afterFlush(() => {
- this.$('.js-member,.js-label').draggable({
+ const $draggables = this.$('.js-member,.js-label');
+ $draggables.draggable({
appendTo: 'body',
helper: 'clone',
revert: 'invalid',
@@ -220,6 +218,14 @@ function draggableMembersLabelsWidgets() {
EscapeActions.executeUpTo('popup-back');
},
});
+
+ function userIsMember() {
+ return Meteor.user() && Meteor.user().isBoardMember();
+ }
+
+ this.autorun(() => {
+ $draggables.draggable('option', 'disabled', !userIsMember());
+ });
});
});
}