aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server/src/main/webapp/coffee/coding-rules/views/actions-view.coffee
blob: 96e306ed8e883972923e1cfd64f14c7d723085c0 (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
define [
  'backbone.marionette'
  'templates/coding-rules'
], (
  Marionette
  Templates
) ->

  class CodingRulesStatusView extends Marionette.ItemView
    template: Templates['coding-rules-actions']


    collectionEvents:
      'all': 'render'


    ui:
      orderChoices: '.navigator-actions-order-choices'
      bulkChange: '.navigator-actions-bulk'


    events:
      'click .navigator-actions-order': 'toggleOrderChoices'
      'click @ui.orderChoices': 'sort'
      'click @ui.bulkChange': 'bulkChange'


    onRender: ->
      unless @collection.sorting.sortText
        @collection.sorting.sortText = @$('[data-sort=' + @collection.sorting.sort + ']:first').text()
        @render()


    toggleOrderChoices: (e) ->
      e.stopPropagation()
      @ui.orderChoices.toggleClass 'open'
      if @ui.orderChoices.is '.open'
        jQuery('body').on 'click.coding_rules_actions', =>
          @ui.orderChoices.removeClass 'open'


    sort: (e) ->
      e.stopPropagation()
      @ui.orderChoices.removeClass 'open'
      jQuery('body').off 'click.coding_rules_actions'
      el = jQuery(e.target)
      sort = el.data 'sort'
      asc = el.data 'asc'
      if sort != null && asc != null
        @collection.sorting = sort: sort, sortText: el.text(), asc: asc
        @options.app.fetchFirstPage()


    bulkChange: (e) ->
      e.stopPropagation()
      @options.app.codingRulesBulkChangeDropdownView.toggle()


    serializeData: ->
      _.extend super,
        paging: @collection.paging
        sorting: @collection.sorting