Mobile and Desktop drag handles part 1.

Thanks to xet7 !

Related #2081
This commit is contained in:
Lauri Ojansivu 2019-09-13 03:45:55 +03:00
parent 0fcfc3a340
commit ff550e9110
9 changed files with 39 additions and 16 deletions

View file

@ -89,7 +89,7 @@ BlazeComponent.extendComponent({
helper.append(list.clone()); helper.append(list.clone());
return helper; return helper;
}, },
handle: '.js-swimlane-header', handle: '.js-swimlane-header-handle',
items: '.swimlane:not(.placeholder)', items: '.swimlane:not(.placeholder)',
placeholder: 'swimlane placeholder', placeholder: 'swimlane placeholder',
distance: 7, distance: 7,

View file

@ -3,6 +3,8 @@ template(name="minicard")
class="{{#if isLinkedCard}}linked-card{{/if}}" class="{{#if isLinkedCard}}linked-card{{/if}}"
class="{{#if isLinkedBoard}}linked-board{{/if}}" class="{{#if isLinkedBoard}}linked-board{{/if}}"
class="minicard-{{colorClass}}") class="minicard-{{colorClass}}")
.handle
.fa.fa-arrows
if cover if cover
.minicard-cover(style="background-image: url('{{cover.url}}');") .minicard-cover(style="background-image: url('{{cover.url}}');")
if labels if labels
@ -15,8 +17,6 @@ template(name="minicard")
if hiddenMinicardLabelText if hiddenMinicardLabelText
.minicard-label(class="card-label-{{color}}" title="{{name}}") .minicard-label(class="card-label-{{color}}" title="{{name}}")
.minicard-title .minicard-title
.handle
.fa.fa-arrows
if $eq 'prefix-with-full-path' currentBoard.presentParentTask if $eq 'prefix-with-full-path' currentBoard.presentParentTask
.parent-prefix .parent-prefix
| {{ parentString ' > ' }} | {{ parentString ' > ' }}

View file

@ -105,7 +105,7 @@
right: 5px; right: 5px;
top: 5px; top: 5px;
display:none; display:none;
@media only screen and (max-width: 1199px) { @media only screen {
display:block; display:block;
} }
.fa-arrows .fa-arrows

View file

@ -31,11 +31,9 @@ BlazeComponent.extendComponent({
const itemsSelector = '.js-minicard:not(.placeholder, .js-card-composer)'; const itemsSelector = '.js-minicard:not(.placeholder, .js-card-composer)';
const $cards = this.$('.js-minicards'); const $cards = this.$('.js-minicards');
if (window.matchMedia('(max-width: 1199px)').matches) { $('.js-minicards').sortable({
$('.js-minicards').sortable({ handle: '.handle',
handle: '.handle', });
});
}
$cards.sortable({ $cards.sortable({
connectWith: '.js-minicards:not(.js-list-full)', connectWith: '.js-minicards:not(.js-list-full)',

View file

@ -84,17 +84,16 @@
padding-left: 10px padding-left: 10px
color: #a6a6a6 color: #a6a6a6
.list-header-menu .list-header-menu
position: absolute position: absolute
padding: 27px 19px padding: 27px 19px
margin-top: 1px margin-top: 1px
top: -7px top: -7px
right: -7px right: 3px
.list-header-plus-icon .list-header-plus-icon
color: #a6a6a6 color: #a6a6a6
margin-right: 10px margin-right: 15px
.highlight .highlight
color: #ce1414 color: #ce1414
@ -165,7 +164,12 @@
@media screen and (max-width: 800px) @media screen and (max-width: 800px)
.list-header-menu .list-header-menu
margin-right: 30px position: absolute
padding: 27px 19px
margin-top: 1px
top: -7px
margin-right: 50px
right: -3px
.mini-list .mini-list
flex: 0 0 60px flex: 0 0 60px
@ -221,9 +225,17 @@
padding: 7px padding: 7px
top: 50% top: 50%
transform: translateY(-50%) transform: translateY(-50%)
right: 17px margin-right: 27px
font-size: 20px font-size: 20px
.list-header-menu-handle
position: absolute
padding: 7px
top: 50%
transform: translateY(-50%)
right: 10px
font-size: 24px
.link-board-wrapper .link-board-wrapper
display: flex display: flex
align-items: baseline align-items: baseline

View file

@ -29,8 +29,10 @@ template(name="listHeader")
if canSeeAddCard if canSeeAddCard
a.js-add-card.fa.fa-plus.list-header-plus-icon a.js-add-card.fa.fa-plus.list-header-plus-icon
a.fa.fa-navicon.js-open-list-menu a.fa.fa-navicon.js-open-list-menu
a.list-header-menu-handle.handle.fa.fa-arrows.js-list-handle
else else
a.list-header-menu-icon.fa.fa-angle-right.js-select-list a.list-header-menu-icon.fa.fa-angle-right.js-select-list
a.list-header-menu-handle.handle.fa.fa-arrows.js-list-handle
else if currentUser.isBoardMember else if currentUser.isBoardMember
if isWatching if isWatching
i.list-header-watch-icon.fa.fa-eye i.list-header-watch-icon.fa.fa-eye
@ -39,6 +41,7 @@ template(name="listHeader")
if canSeeAddCard if canSeeAddCard
a.js-add-card.fa.fa-plus.list-header-plus-icon a.js-add-card.fa.fa-plus.list-header-plus-icon
a.fa.fa-navicon.js-open-list-menu a.fa.fa-navicon.js-open-list-menu
a.list-header-menu-handle.handle.fa.fa-arrows.js-list-handle
template(name="editListTitleForm") template(name="editListTitleForm")
.list-composer .list-composer

View file

@ -16,6 +16,7 @@ template(name="swimlaneFixedHeader")
unless currentUser.isCommentOnly unless currentUser.isCommentOnly
a.fa.fa-plus.js-open-add-swimlane-menu.swimlane-header-plus-icon a.fa.fa-plus.js-open-add-swimlane-menu.swimlane-header-plus-icon
a.fa.fa-navicon.js-open-swimlane-menu a.fa.fa-navicon.js-open-swimlane-menu
a.swimlane-header-menu-handle.handle.fa.fa-arrows.js-swimlane-header-handle
template(name="editSwimlaneTitleForm") template(name="editSwimlaneTitleForm")
.list-composer .list-composer

View file

@ -56,7 +56,7 @@ function initSortable(boardComponent, $listsDom) {
$listsDom.sortable({ $listsDom.sortable({
tolerance: 'pointer', tolerance: 'pointer',
helper: 'clone', helper: 'clone',
handle: '.js-list-header', handle: '.js-list-handle',
items: '.js-list:not(.js-list-composer)', items: '.js-list:not(.js-list-composer)',
placeholder: 'list placeholder', placeholder: 'list placeholder',
distance: 7, distance: 7,
@ -156,7 +156,8 @@ BlazeComponent.extendComponent({
'input', 'input',
'textarea', 'textarea',
'p', 'p',
'.js-list-header', '.js-list-handle',
'.js-swimlane-header-handle',
]; ];
if ( if (
$(evt.target).closest(noDragInside.join(',')).length === 0 && $(evt.target).closest(noDragInside.join(',')).length === 0 &&

View file

@ -50,6 +50,14 @@
margin-left: 5px margin-left: 5px
margin-right: 10px margin-right: 10px
.swimlane-header-menu-handle
position: absolute
padding: 7px
top: 50%
transform: translateY(-50%)
left: 300px
font-size: 18px
.list-group .list-group
height: 100% height: 100%