summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/shortcuts_dashboard_navigation.js
blob: 4f1a19924a449f40b3b561f55b555e1c00b72d16 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/* eslint-disable func-names, space-before-function-paren, max-len, one-var, no-var, no-restricted-syntax, vars-on-top, no-use-before-define, no-param-reassign, new-cap, no-underscore-dangle, wrap-iife, prefer-arrow-callback, consistent-return, no-return-assign */
/* global Mousetrap */
/* global Shortcuts */

require('./shortcuts');

(function() {
  var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    hasProp = {}.hasOwnProperty;

  this.ShortcutsDashboardNavigation = (function(superClass) {
    extend(ShortcutsDashboardNavigation, superClass);

    function ShortcutsDashboardNavigation() {
      ShortcutsDashboardNavigation.__super__.constructor.call(this);
      Mousetrap.bind('g a', function() {
        return ShortcutsDashboardNavigation.findAndFollowLink('.dashboard-shortcuts-activity');
      });
      Mousetrap.bind('g i', function() {
        return ShortcutsDashboardNavigation.findAndFollowLink('.dashboard-shortcuts-issues');
      });
      Mousetrap.bind('g m', function() {
        return ShortcutsDashboardNavigation.findAndFollowLink('.dashboard-shortcuts-merge_requests');
      });
      Mousetrap.bind('g t', function() {
        return ShortcutsDashboardNavigation.findAndFollowLink('.shortcuts-todos');
      });
      Mousetrap.bind('g p', function() {
        return ShortcutsDashboardNavigation.findAndFollowLink('.dashboard-shortcuts-projects');
      });
    }

    ShortcutsDashboardNavigation.findAndFollowLink = function(selector) {
      var link;
      link = $(selector).attr('href');
      if (link) {
        return window.location = link;
      }
    };

    return ShortcutsDashboardNavigation;
  })(Shortcuts);
}).call(window);