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

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

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

13 14 15
    unless page
      return false

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

    switch page
19
      when 'projects:issues:index'
20
        Issues.init()
D
Dmitriy Zaporozhets 已提交
21 22
      when 'projects:issues:new', 'projects:merge_requests:new'
        GitLab.GfmAutoComplete.setup()
23 24
      when 'dashboard:show'
        new Dashboard()
25
        new Activities()
26
      when 'projects:commit:show'
27
        new Commit()
28
      when 'groups:show', 'projects:show'
29
        new Activities()
30
      when 'projects:new', 'projects:edit'
31
        new Project()
32
      when 'projects:walls:show'
33
        new Wall(project_id)
34
      when 'projects:teams:members:index'
D
Dmitriy Zaporozhets 已提交
35
        new TeamMembers()
36
      when 'groups:members'
37
        new GroupMembers()
38 39 40 41
      when 'projects:tree:show'
        new TreeView()
      when 'projects:blob:show'
        new BlobView()
42 43

    switch path.first()
44
      when 'admin' then new Admin()
45 46 47
      when 'projects'
        new Wikis() if path[1] == 'wikis'

48

49
  initSearch: ->
50 51 52 53 54 55
    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)