diff options
author | Sam X. Chen <sam.xi.chen@gmail.com> | 2019-09-26 10:53:40 -0400 |
---|---|---|
committer | Sam X. Chen <sam.xi.chen@gmail.com> | 2019-09-26 10:53:40 -0400 |
commit | 62b72a03c4889377169411c8cdbf372c71cac1af (patch) | |
tree | 5328397ddf7ae571038ffe5d201fb2d77eadf742 /client/components | |
parent | d5cff1ec48bf9ab13a32576e7495ae54c3d2c0f7 (diff) | |
download | wekan-62b72a03c4889377169411c8cdbf372c71cac1af.tar.gz wekan-62b72a03c4889377169411c8cdbf372c71cac1af.tar.bz2 wekan-62b72a03c4889377169411c8cdbf372c71cac1af.zip |
Add feature: Add due timeline into Calendar view
Diffstat (limited to 'client/components')
-rw-r--r-- | client/components/boards/boardBody.js | 52 |
1 files changed, 36 insertions, 16 deletions
diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js index 07cd306a..d64636f4 100644 --- a/client/components/boards/boardBody.js +++ b/client/components/boards/boardBody.js @@ -309,26 +309,46 @@ BlazeComponent.extendComponent({ events(start, end, timezone, callback) { const currentBoard = Boards.findOne(Session.get('currentBoard')); const events = []; + const pushEvent = function(card, title, start, end, extraCls) { + start = start || card.startAt; + end = end || card.endAt; + title = title || card.title; + const className = + (extraCls ? `${extraCls} ` : '') + + (card.color ? `calendar-event-${card.color}` : ''); + events.push({ + id: card._id, + title, + start, + end: end || card.endAt, + allDay: + Math.abs(end.getTime() - start.getTime()) / 1000 === 24 * 3600, + url: FlowRouter.url('card', { + boardId: currentBoard._id, + slug: currentBoard.slug, + cardId: card._id, + }), + className, + }); + }; currentBoard .cardsInInterval(start.toDate(), end.toDate()) .forEach(function(card) { - events.push({ - id: card._id, - title: card.title, - start: card.startAt, - end: card.endAt, - allDay: - Math.abs(card.endAt.getTime() - card.startAt.getTime()) / - 1000 === - 24 * 3600, - url: FlowRouter.url('card', { - boardId: currentBoard._id, - slug: currentBoard.slug, - cardId: card._id, - }), - className: card.color ? `calendar-event-${card.color}` : null, - }); + pushEvent(card); + }); + currentBoard + .cardsDueInBetween(start.toDate(), end.toDate()) + .forEach(function(card) { + pushEvent( + card, + `${card.title} ${TAPi18n.__('card-due')}`, + card.dueAt, + new Date(card.dueAt.getTime() + 36e5), + ); }); + events.sort(function(first, second) { + return first.id > second.id ? 1 : -1; + }); callback(events); }, eventResize(event, delta, revertFunc) { |