mirror of
https://github.com/wekan/wekan.git
synced 2025-12-22 18:30:13 +01:00
Fix card issues with ReactiveCache when using keyboard shortcuts
When using ReactiveCache.getCard, a buggy instance of Card is returned. The bug experienced is that .assignees and .members are not always up-to-date. This can be reproduced by trying to hover over cards and triggering a keyboard shortcut that interacts with a card.
This commit is contained in:
parent
9516b75d65
commit
e5e4b8ebfb
1 changed files with 9 additions and 9 deletions
|
|
@ -133,7 +133,7 @@ Mousetrap.bind(numbArray, (evt, key) => {
|
||||||
const cardIds = MultiSelection.getSelectedCardIds();
|
const cardIds = MultiSelection.getSelectedCardIds();
|
||||||
for (const cardId of cardIds)
|
for (const cardId of cardIds)
|
||||||
{
|
{
|
||||||
card = ReactiveCache.getCard(cardId);
|
card = Cards.findOne(cardId);
|
||||||
if(num <= board.labels.length)
|
if(num <= board.labels.length)
|
||||||
{
|
{
|
||||||
card.removeLabel(labels[num-1]["_id"]);
|
card.removeLabel(labels[num-1]["_id"]);
|
||||||
|
|
@ -157,7 +157,7 @@ Mousetrap.bind(numArray, (evt, key) => {
|
||||||
const cardIds = MultiSelection.getSelectedCardIds();
|
const cardIds = MultiSelection.getSelectedCardIds();
|
||||||
for (const cardId of cardIds)
|
for (const cardId of cardIds)
|
||||||
{
|
{
|
||||||
card = ReactiveCache.getCard(cardId);
|
card = Cards.findOne(cardId);
|
||||||
if(num <= board.labels.length)
|
if(num <= board.labels.length)
|
||||||
{
|
{
|
||||||
card.addLabel(labels[num-1]["_id"]);
|
card.addLabel(labels[num-1]["_id"]);
|
||||||
|
|
@ -171,7 +171,7 @@ Mousetrap.bind(numArray, (evt, key) => {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (ReactiveCache.getCurrentUser().isBoardMember()) {
|
if (ReactiveCache.getCurrentUser().isBoardMember()) {
|
||||||
const card = ReactiveCache.getCard(cardId);
|
const card = Cards.findOne(cardId);
|
||||||
if(num <= board.labels.length)
|
if(num <= board.labels.length)
|
||||||
{
|
{
|
||||||
card.toggleLabel(labels[num-1]["_id"]);
|
card.toggleLabel(labels[num-1]["_id"]);
|
||||||
|
|
@ -197,14 +197,14 @@ Mousetrap.bind(_.range(1, 10).map(x => `ctrl+alt+${x}`), (evt, key) => {
|
||||||
|
|
||||||
if (MultiSelection.isActive()) {
|
if (MultiSelection.isActive()) {
|
||||||
for (const cardId of MultiSelection.getSelectedCardIds())
|
for (const cardId of MultiSelection.getSelectedCardIds())
|
||||||
ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[memberIndex]._id);
|
Cards.findOne(cardId).toggleAssignee(boardMembers[memberIndex]._id);
|
||||||
} else {
|
} else {
|
||||||
const cardId = getSelectedCardId();
|
const cardId = getSelectedCardId();
|
||||||
|
|
||||||
if (!cardId)
|
if (!cardId)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[memberIndex]._id);
|
Cards.findOne(cardId).toggleAssignee(boardMembers[memberIndex]._id);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -220,7 +220,7 @@ Mousetrap.bind('m', evt => {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ReactiveCache.getCurrentUser().isBoardMember()) {
|
if (ReactiveCache.getCurrentUser().isBoardMember()) {
|
||||||
const card = ReactiveCache.getCard(cardId);
|
const card = Cards.findOne(cardId);
|
||||||
card.toggleAssignee(currentUserId);
|
card.toggleAssignee(currentUserId);
|
||||||
// We should prevent scrolling in card when spacebar is clicked
|
// We should prevent scrolling in card when spacebar is clicked
|
||||||
// This should do it according to Mousetrap docs, but it doesn't
|
// This should do it according to Mousetrap docs, but it doesn't
|
||||||
|
|
@ -240,7 +240,7 @@ Mousetrap.bind('space', evt => {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ReactiveCache.getCurrentUser().isBoardMember()) {
|
if (ReactiveCache.getCurrentUser().isBoardMember()) {
|
||||||
const card = ReactiveCache.getCard(cardId);
|
const card = Cards.findOne(cardId);
|
||||||
card.toggleMember(currentUserId);
|
card.toggleMember(currentUserId);
|
||||||
// We should prevent scrolling in card when spacebar is clicked
|
// We should prevent scrolling in card when spacebar is clicked
|
||||||
// This should do it according to Mousetrap docs, but it doesn't
|
// This should do it according to Mousetrap docs, but it doesn't
|
||||||
|
|
@ -260,7 +260,7 @@ const archiveCard = evt => {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Utils.canModifyBoard()) {
|
if (Utils.canModifyBoard()) {
|
||||||
const card = ReactiveCache.getCard(cardId);
|
const card = Cards.findOne(cardId);
|
||||||
card.archive();
|
card.archive();
|
||||||
// We should prevent scrolling in card when spacebar is clicked
|
// We should prevent scrolling in card when spacebar is clicked
|
||||||
// This should do it according to Mousetrap docs, but it doesn't
|
// This should do it according to Mousetrap docs, but it doesn't
|
||||||
|
|
@ -289,7 +289,7 @@ Mousetrap.bind('n', evt => {
|
||||||
|
|
||||||
if (Utils.canModifyBoard()) {
|
if (Utils.canModifyBoard()) {
|
||||||
// Find the current hovered card
|
// Find the current hovered card
|
||||||
const card = ReactiveCache.getCard(cardId);
|
const card = Cards.findOne(cardId);
|
||||||
|
|
||||||
// Find the button and click it
|
// Find the button and click it
|
||||||
$(`#js-list-${card.listId} .list-body .minicards .open-minicard-composer`).click();
|
$(`#js-list-${card.listId} .list-body .minicards .open-minicard-composer`).click();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue