diff options
author | Annabel Dunstone Gray <annabel.dunstone@gmail.com> | 2017-03-29 21:58:18 +0300 |
---|---|---|
committer | Jacob Schatz <jschatz1@gmail.com> | 2017-04-07 01:12:41 +0300 |
commit | 610ea22ea770821fac04f3d757f98091a85512c7 (patch) | |
tree | 934449e4f5121df89112622dd1d2a0d64b714dce | |
parent | 82ababf0a9504854ee3bb7f2b65e8711f46eb1e7 (diff) |
Map bindings to lowercase letters; only show key bindings when using keyboard shortcut
-rw-r--r-- | app/assets/javascripts/shortcuts.js | 56 | ||||
-rw-r--r-- | app/views/layouts/nav/_dashboard.html.haml | 28 |
2 files changed, 45 insertions, 39 deletions
diff --git a/app/assets/javascripts/shortcuts.js b/app/assets/javascripts/shortcuts.js index ef32cc39c1f..24b6ad02b25 100644 --- a/app/assets/javascripts/shortcuts.js +++ b/app/assets/javascripts/shortcuts.js @@ -19,43 +19,49 @@ return _this.focusFilter(e); }; })(this)); + function gotoMenu(menu){ - if($('.global-dropdown.open').length) { - window.location.href = $('.global-dropdown-menu .dashboard-shortcuts-'+menu).attr('href'); - } + window.location.href = $('.js-dashboard-shortcuts-'+menu).attr('href'); } - Mousetrap.bind('n', function() { - $('.global-dropdown-menu').addClass('shortcuts') - $('.global-dropdown-toggle').trigger('click'); + $('.global-dropdown').on('hide.bs.dropdown', function() { + $('.global-dropdown-menu').removeClass('shortcuts'); + Mousetrap.unbind(['p', 'a', 'r', 'l', 'i', 'm', 'e']); }); - Mousetrap.bind('P', function() { - gotoMenu('projects'); - }); + $('.global-dropdown').on('show.bs.dropdown', function() { + Mousetrap.bind('p', function() { + gotoMenu('projects'); + }); - Mousetrap.bind('A', function() { - gotoMenu('activity'); - }); + Mousetrap.bind('a', function() { + gotoMenu('activity'); + }); - Mousetrap.bind('G', function() { - gotoMenu('groups'); - }); + Mousetrap.bind('r', function() { + gotoMenu('groups'); + }); - Mousetrap.bind('L', function() { - gotoMenu('milestones'); - }); + Mousetrap.bind('l', function() { + gotoMenu('milestones'); + }); - Mousetrap.bind('I', function() { - gotoMenu('issues'); - }); + Mousetrap.bind('i', function() { + gotoMenu('issues'); + }); - Mousetrap.bind('M', function() { - gotoMenu('merge_requests'); + Mousetrap.bind('m', function() { + gotoMenu('merge_requests'); + }); + + Mousetrap.bind('e', function() { + gotoMenu('snippets'); + }); }); - Mousetrap.bind('S', function() { - gotoMenu('snippets'); + Mousetrap.bind('n', function() { + $('.global-dropdown-menu').addClass('shortcuts'); + $('.global-dropdown-toggle').trigger('click'); }); Mousetrap.bind(['ctrl+shift+p', 'command+shift+p'], this.toggleMarkdownPreview); diff --git a/app/views/layouts/nav/_dashboard.html.haml b/app/views/layouts/nav/_dashboard.html.haml index cc2d70aa55b..6cfbbec8c46 100644 --- a/app/views/layouts/nav/_dashboard.html.haml +++ b/app/views/layouts/nav/_dashboard.html.haml @@ -1,14 +1,14 @@ %ul = nav_link(path: ['root#index', 'projects#trending', 'projects#starred', 'dashboard/projects#index'], html_options: {class: "#{project_tab_class} home"}) do - = link_to dashboard_projects_path, title: 'Projects', class: 'dashboard-shortcuts-projects' do + = link_to dashboard_projects_path, title: 'Projects', class: 'js-dashboard-shortcuts-projects' do .kbd - P + p %span Projects = nav_link(path: 'dashboard#activity') do - = link_to activity_dashboard_path, class: 'dashboard-shortcuts-activity', title: 'Activity' do + = link_to activity_dashboard_path, class: 'js-dashboard-shortcuts-activity', title: 'Activity' do .kbd - A + a %span Activity - if koding_enabled? @@ -17,35 +17,35 @@ %span Koding = nav_link(controller: [:groups, 'groups/milestones', 'groups/group_members']) do - = link_to dashboard_groups_path, class: 'dashboard-shortcuts-groups', title: 'Groups' do + = link_to dashboard_groups_path, class: 'js-dashboard-shortcuts-groups', title: 'Groups' do .kbd - G + r %span Groups = nav_link(controller: 'dashboard/milestones') do - = link_to dashboard_milestones_path, class: 'dashboard-shortcuts-milestones', title: 'Milestones' do + = link_to dashboard_milestones_path, class: 'js-dashboard-shortcuts-milestones', title: 'Milestones' do .kbd - L + l %span Milestones = nav_link(path: 'dashboard#issues') do - = link_to assigned_issues_dashboard_path, title: 'Issues', class: 'dashboard-shortcuts-issues' do + = link_to assigned_issues_dashboard_path, title: 'Issues', class: 'js-dashboard-shortcuts-issues' do .kbd - I + i %span Issues .badge= number_with_delimiter(cached_assigned_issuables_count(current_user, :issues, :opened)) = nav_link(path: 'dashboard#merge_requests') do - = link_to assigned_mrs_dashboard_path, title: 'Merge Requests', class: 'dashboard-shortcuts-merge_requests' do + = link_to assigned_mrs_dashboard_path, title: 'Merge Requests', class: 'js-dashboard-shortcuts-merge_requests' do .kbd - M + m %span Merge Requests .badge= number_with_delimiter(cached_assigned_issuables_count(current_user, :merge_requests, :opened)) = nav_link(controller: 'dashboard/snippets') do - = link_to dashboard_snippets_path, class: 'dashboard-shortcuts-snippets', title: 'Snippets' do + = link_to dashboard_snippets_path, class: 'js-dashboard-shortcuts-snippets', title: 'Snippets' do .kbd - S + e %span Snippets %li.divider |