swimlane: insert the new swimlane after the one we clicked on

This commit is contained in:
Benjamin Tissoires 2019-01-24 20:45:52 +01:00
parent 416b17062e
commit c075187088
2 changed files with 22 additions and 2 deletions

View file

@ -1,3 +1,5 @@
const { calculateIndexData } = Utils;
BlazeComponent.extendComponent({
editTitle(evt) {
evt.preventDefault();
@ -26,18 +28,25 @@ Template.swimlaneActionPopup.events({
});
BlazeComponent.extendComponent({
onCreated() {
this.currentSwimlane = this.currentData();
},
events() {
return [{
submit(evt) {
evt.preventDefault();
const currentBoard = Boards.findOne(Session.get('currentBoard'));
const nextSwimlane = currentBoard.nextSwimlane(this.currentSwimlane);
const titleInput = this.find('.swimlane-name-input');
const title = titleInput.value.trim();
const sortValue = calculateIndexData(this.currentSwimlane, nextSwimlane, 1);
if (title) {
Swimlanes.insert({
title,
boardId: Session.get('currentBoard'),
// XXX we should insert the swimlane right after the caller
sort: $('.swimlane').length,
sort: sortValue.base,
});
titleInput.value = '';

View file

@ -351,6 +351,17 @@ Boards.helpers({
return Swimlanes.find({ boardId: this._id, archived: false }, { sort: { sort: 1 } });
},
nextSwimlane(swimlane) {
return Swimlanes.findOne({
boardId: this._id,
archived: false,
sort: { $gte: swimlane.sort },
_id: { $ne: swimlane._id },
}, {
sort: { sort: 1 },
});
},
hasOvertimeCards(){
const card = Cards.findOne({isOvertime: true, boardId: this._id, archived: false} );
return card !== undefined;