diff --git a/client/components/boards/boardBody.jade b/client/components/boards/boardBody.jade index 32cd274f2..89e99ae6d 100644 --- a/client/components/boards/boardBody.jade +++ b/client/components/boards/boardBody.jade @@ -17,7 +17,8 @@ template(name="boardBody") | {{_ 'tableVisibilityMode-allowPrivateOnly'}} else .board-wrapper(class=currentBoard.colorClass) - .board-canvas.js-swimlanes.dragscroll( + .board-canvas.js-swimlanes( + class="{{#if hasSwimlanes}}dragscroll{{/if}}" class="{{#if Sidebar.isOpen}}is-sibling-sidebar-open{{/if}}" class="{{#if MultiSelection.isActive}}is-multiselection-active{{/if}}" class="{{#if draggingActive.get}}is-dragging-active{{/if}}") @@ -27,8 +28,13 @@ template(name="boardBody") each currentBoard.swimlanes +swimlane(this) else if isViewSwimlanes - each currentBoard.swimlanes - +swimlane(this) + if hasSwimlanes + each currentBoard.swimlanes + +swimlane(this) + else + a.js-empty-board-add-swimlane(title="{{_ 'add-swimlane'}}") + h1.big-message.quiet + | {{_ 'add-swimlane'}} + else if isViewLists +listsGroup(currentBoard) else if isViewCalendar diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js index 346bb181f..eb5690f43 100644 --- a/client/components/boards/boardBody.js +++ b/client/components/boards/boardBody.js @@ -248,6 +248,10 @@ BlazeComponent.extendComponent({ } }, + hasSwimlanes() { + return Utils.getCurrentBoard().swimlanes().length > 0; + }, + isViewLists() { const currentUser = ReactiveCache.getCurrentUser(); if (currentUser) { @@ -288,6 +292,7 @@ BlazeComponent.extendComponent({ this._isDragging = false; } }, + 'click .js-empty-board-add-swimlane': Popup.open('swimlaneAdd'), }, ]; }, diff --git a/client/components/swimlanes/swimlaneHeader.js b/client/components/swimlanes/swimlaneHeader.js index 2b1547500..17988f454 100644 --- a/client/components/swimlanes/swimlaneHeader.js +++ b/client/components/swimlanes/swimlaneHeader.js @@ -143,7 +143,7 @@ BlazeComponent.extendComponent({ Swimlanes.insert({ title, boardId: Session.get('currentBoard'), - sort: sortValue.base, + sort: sortValue.base || 0, type: swimlaneType, });