shortcuts.js.coffee 1.01 KB
Newer Older
1
class @Shortcuts
2
  constructor: ->
3 4 5 6
    @enabledHelp = []
    Mousetrap.reset()
    Mousetrap.bind('?', @selectiveHelp)
    Mousetrap.bind('s', Shortcuts.focusSearch)
7
    Mousetrap.bind('t', -> Turbolinks.visit(findFileURL)) if findFileURL?
8 9 10

  selectiveHelp: (e) =>
    Shortcuts.showHelp(e, @enabledHelp)
11

12
  @showHelp: (e, location) ->
13 14 15
    if $('#modal-shortcuts').length > 0
      $('#modal-shortcuts').modal('show')
    else
16 17
      url = '/help/shortcuts'
      url = gon.relative_url_root + url if gon.relative_url_root?
18
      $.ajax(
19
        url: url,
20 21 22
        dataType: 'script',
        success: (e) ->
          if location and location.length > 0
23
            $(l).show() for l in location
24 25 26
          else
            $('.hidden-shortcut').show()
            $('.js-more-help-button').remove()
27
      )
28
      e.preventDefault()
29

30 31 32
  @focusSearch: (e) ->
    $('#search').focus()
    e.preventDefault()
33 34 35 36 37

$(document).on 'click.more_help', '.js-more-help-button', (e) ->
  $(@).remove()
  $('.hidden-shortcut').show()
  e.preventDefault()