diff options
-rw-r--r-- | .travis.yml | 8 | ||||
-rw-r--r-- | client/components/boards/boardHeader.jade | 4 | ||||
-rw-r--r-- | client/components/sidebar/sidebar.jade | 31 | ||||
-rw-r--r-- | client/lib/keyboard.js | 34 | ||||
-rw-r--r-- | i18n/en.i18n.json | 4 |
5 files changed, 63 insertions, 18 deletions
diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..2499948a --- /dev/null +++ b/.travis.yml @@ -0,0 +1,8 @@ +sudo: false +language: node_js +node_js: + - "0.10.40" +install: + - "npm install -g eslint" +script: + - "eslint ./" diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade index 94225730..ffc79143 100644 --- a/client/components/boards/boardHeader.jade +++ b/client/components/boards/boardHeader.jade @@ -32,7 +32,7 @@ template(name="headerBoard") title="{{#if MultiSelection.isActive}}{{_ 'filter-on-desc'}}{{/if}}" class="{{#if MultiSelection.isActive}}emphasis{{/if}}") i.fa.fa-check-square-o - span Multi-Selection {{#if MultiSelection.isActive}}is on{{/if}} + span {{#if MultiSelection.isActive}}{{_ 'multi-selection-on'}}{{else}}{{_ 'multi-selection'}}{{/if}} if MultiSelection.isActive a.board-header-btn-close.js-multiselection-reset(title="{{_ 'filter-clear'}}") i.fa.fa-times-thin @@ -105,7 +105,7 @@ template(name="createBoardPopup") span.fa.fa-lock.colorful = " " | {{{_ 'board-private-info'}}} - a.js-change-visibility Change. + a.js-change-visibility {{_ 'change'}}. input.primary.wide(type="submit" value="{{_ 'create'}}") diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade index 7f7519c6..b90b1b91 100644 --- a/client/components/sidebar/sidebar.jade +++ b/client/components/sidebar/sidebar.jade @@ -57,23 +57,22 @@ template(name="memberPopup") .js-profile= user.profile.fullname p.quiet @#{user.username} - if currentUser.isBoardMember - ul.pop-over-list - li - a.js-filter-member Filter cards + ul.pop-over-list + li + a.js-filter-member {{_ 'filter-cards'}} + if currentUser.isBoardAdmin unless isSandstorm - if currentUser.isBoardAdmin - li - a.js-change-role - | {{_ 'change-permissions'}} - span.quiet (#{memberType}) - li - if $eq currentUser._id userId - //- - XXX Not implemented! - // a.js-leave-member {{_ 'leave-board'}} - else - a.js-remove-member {{_ 'remove-from-board'}} + li + a.js-change-role + | {{_ 'change-permissions'}} + span.quiet (#{memberType}) + li + if $eq currentUser._id userId + //- + XXX Not implemented! + // a.js-leave-member {{_ 'leave-board'}} + else + a.js-remove-member {{_ 'remove-from-board'}} template(name="removeMemberPopup") diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index af5fb7a2..f8212c9b 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -23,6 +23,14 @@ Mousetrap.bind('x', () => { } }); +Mousetrap.bind('f', () => { + if (Sidebar.isOpen() && Sidebar.getView() === 'filter') { + Sidebar.toggle(); + } else { + Sidebar.setView('filter'); + } +}); + Mousetrap.bind(['down', 'up'], (evt, key) => { if (!Session.get('currentCard')) { return; @@ -36,6 +44,26 @@ Mousetrap.bind(['down', 'up'], (evt, key) => { } }); +// XXX This shortcut should also work when hovering over a card in board view +Mousetrap.bind('space', (evt) => { + if (!Session.get('currentCard')) { + return; + } + + const currentUserId = Meteor.userId(); + if (currentUserId === null) { + return; + } + + if (Meteor.user().isBoardMember()) { + const card = Cards.findOne(Session.get('currentCard')); + card.toggleMember(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(); + } +}); + Template.keyboardShortcuts.helpers({ mapping: [{ keys: ['W'], @@ -44,6 +72,9 @@ Template.keyboardShortcuts.helpers({ keys: ['Q'], action: 'shortcut-filter-my-cards', }, { + keys: ['F'], + action: 'shortcut-toggle-filterbar', + }, { keys: ['X'], action: 'shortcut-clear-filters', }, { @@ -58,5 +89,8 @@ Template.keyboardShortcuts.helpers({ }, { keys: [':'], action: 'shortcut-autocomplete-emojies', + }, { + keys: ['SPACE'], + action: 'shortcut-assign-self', }], }); diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 3486aa93..a8c2c5d9 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -74,6 +74,7 @@ "cardMembersPopup-title": "Members", "cardMorePopup-title": "More", "cards": "Cards", + "change": "Change", "change-avatar": "Change Avatar", "change-password": "Change Password", "change-permissions": "Change permissions", @@ -144,6 +145,7 @@ "menu": "Menu", "moveCardPopup-title": "Move Card", "multi-selection": "Multi-Selection", + "multi-selection-on": "Multi-Selection is on", "my-boards": "My Boards", "name": "Name", "name": "Name", @@ -175,12 +177,14 @@ "save": "Save", "search": "Search", "select-color": "Select a color", + "shortcut-assign-self": "Assign yourself to current card", "shortcut-autocomplete-emojies": "Autocomplete emojies", "shortcut-autocomplete-members": "Autocomplete members", "shortcut-clear-filters": "Clear all filters", "shortcut-close-dialog": "Close Dialog", "shortcut-filter-my-cards": "Filter my cards", "shortcut-show-shortcuts": "Bring up this shortcuts list", + "shortcut-toggle-filterbar": "Toggle Filter Sidebar", "shortcut-toggle-sidebar": "Toggle Board Sidebar", "signupPopup-title": "Create an Account", "star-board-title": "Click to star this board. It will show up at top of your boards list.", |