diff options
author | Lauri Ojansivu <x@xet7.org> | 2019-09-19 01:12:04 +0300 |
---|---|---|
committer | Lauri Ojansivu <x@xet7.org> | 2019-09-19 01:12:04 +0300 |
commit | 55a2473d813c6e6687de393bda1ccc0c21f9ebcc (patch) | |
tree | 4cd96ee0c363153c6733454b91dea3185a11e76d /client/components/swimlanes | |
parent | ba754cfaea9a467e18b2b4b4bcbaafaaac442677 (diff) | |
parent | 03d7fc02ecc90690e1282d417f35b7e4561af066 (diff) | |
download | wekan-55a2473d813c6e6687de393bda1ccc0c21f9ebcc.tar.gz wekan-55a2473d813c6e6687de393bda1ccc0c21f9ebcc.tar.bz2 wekan-55a2473d813c6e6687de393bda1ccc0c21f9ebcc.zip |
Merge branch 'feature-drag-handle'
Diffstat (limited to 'client/components/swimlanes')
-rw-r--r-- | client/components/swimlanes/swimlaneHeader.jade | 2 | ||||
-rw-r--r-- | client/components/swimlanes/swimlaneHeader.js | 6 | ||||
-rw-r--r-- | client/components/swimlanes/swimlanes.js | 56 | ||||
-rw-r--r-- | client/components/swimlanes/swimlanes.styl | 8 |
4 files changed, 64 insertions, 8 deletions
diff --git a/client/components/swimlanes/swimlaneHeader.jade b/client/components/swimlanes/swimlaneHeader.jade index 8c6aa5a3..fb6ef21d 100644 --- a/client/components/swimlanes/swimlaneHeader.jade +++ b/client/components/swimlanes/swimlaneHeader.jade @@ -16,6 +16,8 @@ template(name="swimlaneFixedHeader") unless currentUser.isCommentOnly a.fa.fa-plus.js-open-add-swimlane-menu.swimlane-header-plus-icon a.fa.fa-navicon.js-open-swimlane-menu + if showDesktopDragHandles + a.swimlane-header-menu-handle.handle.fa.fa-arrows.js-swimlane-header-handle template(name="editSwimlaneTitleForm") .list-composer diff --git a/client/components/swimlanes/swimlaneHeader.js b/client/components/swimlanes/swimlaneHeader.js index ee21d100..6f8029fd 100644 --- a/client/components/swimlanes/swimlaneHeader.js +++ b/client/components/swimlanes/swimlaneHeader.js @@ -28,6 +28,12 @@ BlazeComponent.extendComponent({ }, }).register('swimlaneHeader'); +Template.swimlaneHeader.helpers({ + showDesktopDragHandles() { + return Meteor.user().hasShowDesktopDragHandles(); + }, +}); + Template.swimlaneActionPopup.events({ 'click .js-set-swimlane-color': Popup.open('setSwimlaneColor'), 'click .js-close-swimlane'(event) { diff --git a/client/components/swimlanes/swimlanes.js b/client/components/swimlanes/swimlanes.js index e0857003..33a7991e 100644 --- a/client/components/swimlanes/swimlanes.js +++ b/client/components/swimlanes/swimlanes.js @@ -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() && diff --git a/client/components/swimlanes/swimlanes.styl b/client/components/swimlanes/swimlanes.styl index 1056e1e3..503091ee 100644 --- a/client/components/swimlanes/swimlanes.styl +++ b/client/components/swimlanes/swimlanes.styl @@ -50,6 +50,14 @@ margin-left: 5px margin-right: 10px + .swimlane-header-menu-handle + position: absolute + padding: 7px + top: 50% + transform: translateY(-50%) + left: 300px + font-size: 18px + .list-group height: 100% |