diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index 5b49d48f0..9d9575314 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -150,6 +150,26 @@ Mousetrap.bind(numArray, (evt, key) => { } }); +Mousetrap.bind('m', evt => { + const cardId = getSelectedCardId(); + if (!cardId) { + return; + } + + const currentUserId = Meteor.userId(); + if (currentUserId === null) { + return; + } + + if (ReactiveCache.getCurrentUser().isBoardMember()) { + const card = ReactiveCache.getCard(cardId); + card.toggleAssignee(currentUserId); + // We should prevent scrolling in card when spacebar is clicked + // This should do it according to Mousetrap docs, but it doesn't + evt.preventDefault(); + } +}); + Mousetrap.bind('space', evt => { const cardId = getSelectedCardId(); if (!cardId) { @@ -258,6 +278,10 @@ Template.keyboardShortcuts.helpers({ }, { keys: ['SPACE'], + action: 'shortcut-add-self', + }, + { + keys: ['n'], action: 'shortcut-assign-self', }, { diff --git a/imports/i18n/data/en.i18n.json b/imports/i18n/data/en.i18n.json index 233c3aec4..46fdf6fd9 100644 --- a/imports/i18n/data/en.i18n.json +++ b/imports/i18n/data/en.i18n.json @@ -574,6 +574,7 @@ "select-board": "Select Board", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members",