From 97822f35fd6365e5631c5488e8ee595f76ab4e34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Manelli?= Date: Fri, 8 Mar 2019 20:41:20 +0100 Subject: Avoid set self as parent card, for real --- client/components/cards/cardDetails.jade | 10 ++++---- client/components/cards/cardDetails.js | 39 +++++++++++++------------------- 2 files changed, 21 insertions(+), 28 deletions(-) diff --git a/client/components/cards/cardDetails.jade b/client/components/cards/cardDetails.jade index df76edce..5fd7b748 100644 --- a/client/components/cards/cardDetails.jade +++ b/client/components/cards/cardDetails.jade @@ -306,27 +306,27 @@ template(name="cardMorePopup") h2 {{_ 'change-card-parent'}} label {{_ 'source-board'}}: select.js-field-parent-board + if isTopLevel + option(value="none" selected) {{_ 'custom-field-dropdown-none'}} + else + option(value="none") {{_ 'custom-field-dropdown-none'}} each boards if isParentBoard option(value="{{_id}}" selected) {{title}} else option(value="{{_id}}") {{title}} - if isTopLevel - option(value="none" selected) {{_ 'custom-field-dropdown-none'}} - else - option(value="none") {{_ 'custom-field-dropdown-none'}} label {{_ 'parent-card'}}: select.js-field-parent-card if isTopLevel option(value="none" selected) {{_ 'custom-field-dropdown-none'}} else + option(value="none") {{_ 'custom-field-dropdown-none'}} each cards if isParentCard option(value="{{_id}}" selected) {{title}} else option(value="{{_id}}") {{title}} - option(value="none") {{_ 'custom-field-dropdown-none'}} br | {{_ 'added'}} span.date(title=card.createdAt) {{ moment createdAt 'LLL' }} diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js index 9b47531f..d27fe732 100644 --- a/client/components/cards/cardDetails.js +++ b/client/components/cards/cardDetails.js @@ -578,11 +578,14 @@ BlazeComponent.extendComponent({ BlazeComponent.extendComponent({ onCreated() { this.currentCard = this.currentData(); + this.parentBoard = new ReactiveVar(null); this.parentCard = this.currentCard.parentCard(); if (this.parentCard) { - this.parentBoard = this.parentCard.board(); + const list = $('.js-field-parent-card'); + list.val(this.parentCard._id); + this.parentBoard.set(this.parentCard.board()._id); } else { - this.parentBoard = null; + this.parentBoard.set(null); } }, @@ -601,9 +604,9 @@ BlazeComponent.extendComponent({ cards() { const currentId = Session.get('currentCard'); - if (this.parentBoard) { + if (this.parentBoard.get()) { return Cards.find({ - boardId: this.parentBoard, + boardId: this.parentBoard.get(), _id: {$ne: currentId}, }); } else { @@ -613,8 +616,8 @@ BlazeComponent.extendComponent({ isParentBoard() { const board = this.currentData(); - if (this.parentBoard) { - return board._id === this.parentBoard; + if (this.parentBoard.get()) { + return board._id === this.parentBoard.get(); } return false; }, @@ -628,11 +631,10 @@ BlazeComponent.extendComponent({ }, setParentCardId(cardId) { - if (cardId === 'null') { - cardId = null; - this.parentCard = null; - } else { + if (cardId) { this.parentCard = Cards.findOne(cardId); + } else { + this.parentCard = null; } this.currentCard.setParentId(cardId); }, @@ -669,23 +671,14 @@ BlazeComponent.extendComponent({ 'change .js-field-parent-board'(evt) { const selection = $(evt.currentTarget).val(); const list = $('.js-field-parent-card'); - list.empty(); if (selection === 'none') { - this.parentBoard = null; - list.prop('disabled', true); + this.parentBoard.set(null); } else { - this.parentBoard = Boards.findOne(selection); - this.parentBoard.cards().forEach(function(card) { - list.append( - $('').val(card._id).html(card.title) - ); - }); + subManager.subscribe('board', $(evt.currentTarget).val()); + this.parentBoard.set(selection); list.prop('disabled', false); } - list.append( - `` - ); - this.setParentCardId('null'); + this.setParentCardId(null); }, 'change .js-field-parent-card'(evt) { const selection = $(evt.currentTarget).val(); -- cgit v1.2.3-1-g7c22