فهرست منبع

Merge pull request #5653 from NadavTasher/feature/assign-members-by-numbers

Feature - Assign members using keyboard shortcut `Ctrl+Alt+[1-9]`
Lauri Ojansivu 6 ماه پیش
والد
کامیت
02b99e0555
2فایلهای تغییر یافته به همراه34 افزوده شده و 0 حذف شده
  1. 33 0
      client/lib/keyboard.js
  2. 1 0
      imports/i18n/data/en.i18n.json

+ 33 - 0
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 memberIndex = parseInt(key.split("+").pop()) - 1;
+  const currentBoard = Utils.getCurrentBoard();
+  const boardMembers = currentBoard.memberUsers();
+
+  if (memberIndex >= boardMembers.length)
+    return;
+
+  if (MultiSelection.isActive()) {
+    for (const cardId of MultiSelection.getSelectedCardIds())
+      ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[memberIndex]._id);
+  } else {
+    const cardId = getSelectedCardId();
+
+    if (!cardId)
+      return;
+
+    ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[memberIndex]._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 + alt + number keys 1-9'],
+      action: 'toggle-asignees'
+    },
   ],
 });

+ 1 - 0
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",