summaryrefslogtreecommitdiffstats
path: root/client/components/swimlanes/swimlanes.js
diff options
context:
space:
mode:
Diffstat (limited to 'client/components/swimlanes/swimlanes.js')
-rw-r--r--client/components/swimlanes/swimlanes.js95
1 files changed, 75 insertions, 20 deletions
diff --git a/client/components/swimlanes/swimlanes.js b/client/components/swimlanes/swimlanes.js
index 8faad870..b7a55ce6 100644
--- a/client/components/swimlanes/swimlanes.js
+++ b/client/components/swimlanes/swimlanes.js
@@ -1,3 +1,5 @@
+import { Cookies } from 'meteor/ostrio:cookies';
+const cookies = new Cookies();
const { calculateIndex, enableClickOnTouch } = Utils;
function currentListIsInThisSwimlane(swimlaneId) {
@@ -14,7 +16,7 @@ function currentCardIsInThisList(listId, swimlaneId) {
if (
currentUser &&
currentUser.profile &&
- currentUser.profile.boardView === 'board-view-swimlanes'
+ Utils.boardView() === 'board-view-swimlanes'
)
return (
currentCard &&
@@ -53,18 +55,6 @@ 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',
@@ -104,19 +94,64 @@ function initSortable(boardComponent, $listsDom) {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
- !Meteor.user().isCommentOnly()
+ !Meteor.user().isCommentOnly() &&
+ !Meteor.user().isWorker()
);
}
- // Disable drag-dropping while in multi-selection mode, or if the current user
- // is not a board member
boardComponent.autorun(() => {
+ let showDesktopDragHandles = false;
+ currentUser = Meteor.user();
+ if (currentUser) {
+ showDesktopDragHandles = (currentUser.profile || {})
+ .showDesktopDragHandles;
+ } else if (cookies.has('showDesktopDragHandles')) {
+ showDesktopDragHandles = true;
+ } else {
+ showDesktopDragHandles = false;
+ }
+
+ if (!Utils.isMiniScreen() && showDesktopDragHandles) {
+ $listsDom.sortable({
+ handle: '.js-list-handle',
+ });
+ } else if (!Utils.isMiniScreen() && !showDesktopDragHandles) {
+ $listsDom.sortable({
+ handle: '.js-list-header',
+ });
+ }
+
const $listDom = $listsDom;
if ($listDom.data('sortable')) {
$listsDom.sortable(
'option',
'disabled',
- MultiSelection.isActive() || !userIsMember(),
+ // Disable drag-dropping when user is not member/is worker/is miniscreen
+ !userIsMember(),
+ // Not disable drag-dropping while in multi-selection mode
+ // MultiSelection.isActive() || !userIsMember(),
+ );
+ }
+
+ if ($listDom.data('sortable')) {
+ $listsDom.sortable(
+ 'option',
+ 'disabled',
+ // Disable drag-dropping when user is not member/is worker/is miniscreen
+ Meteor.user().isWorker(),
+ // Not disable drag-dropping while in multi-selection mode
+ // MultiSelection.isActive() || !userIsMember(),
+ );
+ }
+
+ if ($listDom.data('sortable')) {
+ $listsDom.sortable(
+ 'option',
+ 'disabled',
+ // Disable drag-dropping when user is not member/is worker/is miniscreen
+ Utils.isMiniScreen(),
+ // Not disable drag-dropping while in multi-selection mode
+ // MultiSelection.isActive() || !userIsMember(),
);
}
});
@@ -163,8 +198,20 @@ BlazeComponent.extendComponent({
// the user will legitimately expect to be able to select some text with
// his mouse.
+ let showDesktopDragHandles = false;
+ currentUser = Meteor.user();
+ if (currentUser) {
+ showDesktopDragHandles = (currentUser.profile || {})
+ .showDesktopDragHandles;
+ } else if (cookies.has('showDesktopDragHandles')) {
+ showDesktopDragHandles = true;
+ } else {
+ showDesktopDragHandles = false;
+ }
+
const noDragInside = ['a', 'input', 'textarea', 'p'].concat(
- Util.isMiniScreen || (!Util.isMiniScreen && showDesktopDragHandles)
+ Utils.isMiniScreen() ||
+ (!Utils.isMiniScreen() && showDesktopDragHandles)
? ['.js-list-handle', '.js-swimlane-header-handle']
: ['.js-list-header'],
);
@@ -245,13 +292,21 @@ BlazeComponent.extendComponent({
Template.swimlane.helpers({
showDesktopDragHandles() {
- return Meteor.user().hasShowDesktopDragHandles();
+ currentUser = Meteor.user();
+ if (currentUser) {
+ return (currentUser.profile || {}).showDesktopDragHandles;
+ } else if (cookies.has('showDesktopDragHandles')) {
+ return true;
+ } else {
+ return false;
+ }
},
canSeeAddList() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
- !Meteor.user().isCommentOnly()
+ !Meteor.user().isCommentOnly() &&
+ !Meteor.user().isWorker()
);
},
});