From 169eaa180b816b245e66ee641ab41b7d233efc01 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 1 Jan 2025 22:22:57 +0200 Subject: [PATCH 1/4] Added support for assigning members to cards using Ctrl+Alt+Num --- client/lib/keyboard.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index 4499a5a49..c80d3df32 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -179,6 +179,35 @@ Mousetrap.bind(numArray, (evt, key) => { } }); +Mousetrap.bind(_.range(1, 10).map(x => `ctrl+alt+${x}`), (evt, key) => { + // Make sure the current user is defined + if (!ReactiveCache.getCurrentUser()) + return; + + // Make sure the current user is a board member + if (!ReactiveCache.getCurrentUser().isBoardMember()) + return; + + const pressedNumber = parseInt(key.split("+").pop()) - 1; + const currentBoard = Utils.getCurrentBoard(); + const boardMembers = currentBoard.memberUsers(); + + if (pressedNumber > boardMembers.length) + return; + + if (MultiSelection.isActive()) { + for (const cardId of MultiSelection.getSelectedCardIds()) + ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[pressedNumber]._id); + } else { + const cardId = getSelectedCardId(); + + if (!cardId) + return; + + ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[pressedNumber]._id); + } +}); + Mousetrap.bind('m', evt => { const cardId = getSelectedCardId(); if (!cardId) { @@ -333,5 +362,9 @@ Template.keyboardShortcuts.helpers({ keys: ['shift + number keys 1-9'], action: 'remove-labels-multiselect' }, + { + keys: ['ctrl + shift + number keys 1-9'], + action: 'toggle-asignees' + }, ], }); From e7d02c12eb223240cf780fda7877679f4be27381 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 1 Jan 2025 22:23:21 +0200 Subject: [PATCH 2/4] Added translation for new assigning keyboard shortcut --- imports/i18n/data/en.i18n.json | 1 + 1 file changed, 1 insertion(+) diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index 2eb6c9401..6763e62d2 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -610,6 +610,7 @@ "has-spenttime-cards": "Has spent time cards", "time": "Time", "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", "remove-labels-multiselect": "Multi-Selection removes labels 1-9", "tracking": "Tracking", From deb3a8389a670daf3256bec1f0a663e49b479136 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 1 Jan 2025 22:26:59 +0200 Subject: [PATCH 3/4] Fix member index bug in keyboard shortcut --- client/lib/keyboard.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index c80d3df32..caaf7b221 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -188,23 +188,23 @@ Mousetrap.bind(_.range(1, 10).map(x => `ctrl+alt+${x}`), (evt, key) => { if (!ReactiveCache.getCurrentUser().isBoardMember()) return; - const pressedNumber = parseInt(key.split("+").pop()) - 1; + const memberIndex = parseInt(key.split("+").pop()) - 1; const currentBoard = Utils.getCurrentBoard(); const boardMembers = currentBoard.memberUsers(); - if (pressedNumber > boardMembers.length) + if (memberIndex >= boardMembers.length) return; if (MultiSelection.isActive()) { for (const cardId of MultiSelection.getSelectedCardIds()) - ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[pressedNumber]._id); + ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[memberIndex]._id); } else { const cardId = getSelectedCardId(); if (!cardId) return; - ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[pressedNumber]._id); + ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[memberIndex]._id); } }); From f803190dd21fad8c2faca2a40c692a595bbe2a16 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 1 Jan 2025 22:54:51 +0200 Subject: [PATCH 4/4] Change shortcut help message --- client/lib/keyboard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index caaf7b221..111d2e7a4 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -363,7 +363,7 @@ Template.keyboardShortcuts.helpers({ action: 'remove-labels-multiselect' }, { - keys: ['ctrl + shift + number keys 1-9'], + keys: ['ctrl + alt + number keys 1-9'], action: 'toggle-asignees' }, ],