aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server/src/main/webapp/javascripts/quality-gate/views/quality-gate-edit-view.coffee
blob: 34d94fef340df1b51286de1e35fb7e3b7cf930ef (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
define [
  'backbone.marionette',
  'handlebars'
], (
  Marionette,
  Handlebars,
) ->

  class QualityGateEditView extends Marionette.ItemView
    className: 'modal'
    template: Handlebars.compile jQuery('#quality-gate-edit-template').html()


    ui:
      nameInput: '#quality-gate-edit-name'


    events:
      'click #quality-gate-create': 'createQualityGate'
      'click #quality-gate-save': 'saveQualityGate'
      'click #quality-gate-cancel-create': 'hide'


    onRender: ->
      @$el.dialog
        dialogClass: 'no-close',
        width: '600px',
        draggable: false,
        autoOpen: false,
        modal: true,
        minHeight: 50,
        resizable: false,
        title: null


    show: ->
      @render()
      @$el.dialog 'open'
      @ui.nameInput.focus()


    hide: ->
      @$el.dialog 'close'


    saveRequest: (method, data) ->
      jQuery.ajax
        type: 'POST'
        url: "#{baseUrl}/api/qualitygates/#{method}"
        data: data
      .done => @hide()


    createQualityGate: ->
      data = name: @ui.nameInput.val()
      @saveRequest('create', data).done (r) =>
        @model.set id: r.id, name: r.name
        @options.app.qualityGates.add @model
        @options.app.router.navigate "show/#{r.id}", trigger: true


    saveQualityGate: ->
      data = id: @model.id, name: @ui.nameInput.val()
      @saveRequest('rename', data).done (r) =>
        @model.set name: r.name