aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main/coffee/dashboard/file-app.coffee
blob: 661562cef33b6ae9b417fb6aac36c3ce85192d7d (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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
requirejs.config
  baseUrl: "#{baseUrl}/js"

  paths:
    'backbone': 'third-party/backbone'
    'backbone.marionette': 'third-party/backbone.marionette'
    'handlebars': 'third-party/handlebars'
    'jquery.mockjax': 'third-party/jquery.mockjax'

  shim:
    'backbone.marionette':
      deps: ['backbone']
      exports: 'Marionette'
    'backbone':
      exports: 'Backbone'
    'handlebars':
      exports: 'Handlebars'


requirejs [
  'backbone.marionette'
  'component-viewer/main'
  'drilldown/conf'
], (
  Marionette
  ComponentViewer
  MetricConf
) ->

  $ = jQuery

  App = new Marionette.Application()
  el = $('#accordion-panel')


  App.addRegions
    viewerRegion: '#accordion-panel'


  App.resizeContainer = ->
    width = $(window).width()
    height = $(window).height() - el.offset().top - $('#footer').height() - 10
    el.innerWidth(width).innerHeight(height)


  App.requestComponentViewer = ->
    unless App.componentViewer?
      @resizeContainer()
      $(window).on 'resize', => @resizeContainer()
      App.componentViewer = new ComponentViewer
        elementToFit: el
      App.viewerRegion.show App.componentViewer
    App.componentViewer



  App.addInitializer ->
    viewer = App.requestComponentViewer()
    if window.metric?
      metricConf = MetricConf[window.metric]
      if metricConf?
        activeHeaderTab = metricConf.tab
        activeHeaderItem = metricConf.item
    viewer.open window.fileKey
    viewer.on 'loaded', ->
      viewer.off 'loaded'
      if activeHeaderTab? && activeHeaderItem?
        viewer.state.set activeHeaderTab: activeHeaderTab, activeHeaderItem: activeHeaderItem
        viewer.headerView.render()
      else
        viewer.showAllLines()


  # Message bundles
  l10nXHR = window.requestMessages()


  $.when(l10nXHR).done ->
    # Start the application
    App.start()