Allow toogle of lists and swimlanes views

pull/1441/head
Andrés Manelli 7 years ago
parent a14f4ffee2
commit 7b04f14e3c
  1. 7
      client/components/boards/boardBody.jade
  2. 12
      client/components/boards/boardBody.js
  3. 4
      client/components/boards/boardHeader.js
  4. 2
      client/components/lists/listBody.jade
  5. 7
      client/components/lists/listBody.js
  6. 18
      client/components/swimlanes/swimlanes.jade
  7. 9
      models/lists.js

@ -20,5 +20,8 @@ template(name="boardBody")
class="{{#if draggingActive.get}}is-dragging-active{{/if}}")
if showOverlay.get
.board-overlay
each currentBoard.swimlanes
+swimlane(this)
if isViewSwimlanes
each currentBoard.swimlanes
+swimlane(this)
if isViewLists
+listsGroup

@ -47,6 +47,18 @@ BlazeComponent.extendComponent({
return Utils.isMiniScreen() && Session.get('currentCard');
},
isViewSwimlanes() {
const currentBoardId = Session.get('currentBoard');
const board = Boards.findOne(currentBoardId);
return (board.view === 'board-view-swimlanes');
},
isViewLists() {
const currentBoardId = Session.get('currentBoard');
const board = Boards.findOne(currentBoardId);
return (board.view === 'board-view-lists');
},
events() {
return [{
// XXX The board-overlay div should probably be moved to the parent

@ -82,13 +82,13 @@ BlazeComponent.extendComponent({
Boards.update(currentBoard._id, {
$set: {
view: 'board-view-lists',
}
},
});
} else if (currentBoard.view === 'board-view-lists') {
Boards.update(currentBoard._id, {
$set: {
view: 'board-view-swimlanes',
}
},
});
}
},

@ -4,7 +4,7 @@ template(name="listBody")
if cards.count
+inlinedForm(autoclose=false position="top")
+addCardForm(listId=_id position="top")
each cards ../../_id
each (cards (idOrNull ../../_id))
a.minicard-wrapper.js-minicard(href=absoluteUrl
class="{{#if cardIsSelected}}is-selected{{/if}}"
class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}")

@ -98,6 +98,13 @@ BlazeComponent.extendComponent({
MultiSelection.toggle(this.currentData()._id);
},
idOrNull(swimlaneId) {
const board = Boards.findOne(Session.get('currentBoard'));
if (board.view === 'board-view-swimlanes')
return swimlaneId;
return undefined;
},
canSeeAddCard() {
return !this.reachedWipLimit() && Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
},

@ -20,6 +20,24 @@ template(name="swimlane")
+addListForm
+addListAndSwimlaneForm
template(name="listsGroup")
.swimlane.js-lists
if isMiniScreen
if currentList
+list(currentList)
else
each currentBoard.lists
+miniList(this)
if currentUser.isBoardMember
+addListForm
else
each currentBoard.lists
+list(this)
if currentCardIsInThisList
+cardDetails(currentCard)
if currentUser.isBoardMember
+addListForm
template(name="addListAndSwimlaneForm")
.list.js-list.list-composer.js-list-composer
.list-header

@ -76,11 +76,14 @@ Lists.allow({
Lists.helpers({
cards(swimlaneId) {
return Cards.find(Filter.mongoSelector({
const selector = {
listId: this._id,
archived: false,
swimlaneId: swimlaneId,
}), { sort: ['sort'] });
};
if (swimlaneId)
selector.swimlaneId = swimlaneId;
return Cards.find(Filter.mongoSelector(selector,
{ sort: ['sort'] }));
},
allCards() {

Loading…
Cancel
Save