dispatcher.js.coffee 2.0 KB
Newer Older
1 2
$ ->
  new Dispatcher()
3

4 5
class Dispatcher
  constructor: () ->
6
    @initSearch()
7
    @initHighlight()
8 9 10
    @initPageScripts()

  initPageScripts: ->
11
    page = $('body').attr('data-page')
12
    project_id = $('body').attr('data-project-id')
13

14 15 16
    unless page
      return false

17
    path = page.split(':')
18 19

    switch page
20
      when 'projects:issues:index'
21
        Issues.init()
22 23
      when 'projects:issues:show'
        new Issue()
24 25
      when 'projects:milestones:show'
        new Milestone()
S
skv 已提交
26
      when 'projects:issues:new'
D
Dmitriy Zaporozhets 已提交
27
        GitLab.GfmAutoComplete.setup()
S
skv 已提交
28 29 30 31 32 33 34
      when 'projects:merge_requests:new'
        GitLab.GfmAutoComplete.setup()
        new Diff()
      when 'projects:merge_requests:show'
        new Diff()
      when "projects:merge_requests:diffs"
        new Diff()
35 36
      when 'dashboard:show'
        new Dashboard()
37
        new Activities()
38
      when 'projects:commit:show'
39
        new Commit()
S
skv 已提交
40
        new Diff()
41
      when 'groups:show', 'projects:show'
42
        new Activities()
43
      when 'projects:new', 'projects:edit'
44
        new Project()
45
      when 'projects:teams:members:index'
D
Dmitriy Zaporozhets 已提交
46
        new TeamMembers()
47
      when 'groups:members'
48
        new GroupMembers()
49 50 51 52
      when 'projects:tree:show'
        new TreeView()
      when 'projects:blob:show'
        new BlobView()
53
      when 'projects:labels:new', 'projects:labels:edit'
54
        new Labels()
55 56

    switch path.first()
57
      when 'admin' then new Admin()
58 59 60
      when 'projects'
        new Wikis() if path[1] == 'wikis'

61

62
  initSearch: ->
63 64 65 66 67 68
    opts = $('.search-autocomplete-opts')
    path = opts.data('autocomplete-path')
    project_id = opts.data('autocomplete-project-id')
    project_ref = opts.data('autocomplete-project-ref')

    new SearchAutocomplete(path, project_id, project_ref)
69 70

  initHighlight: ->
71
    $('.highlight pre code').each (i, e) ->
72
      $(e).html($.map($(e).html().split("\n"), (line, i) ->
E
Evan Lucas 已提交
73
        "<span class='line' id='LC" + (i + 1) + "'>" + line + "</span>"
74
      ).join("\n"))
E
Evan Lucas 已提交
75
      hljs.highlightBlock(e)