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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
define [
'backbone.marionette',
'templates/coding-rules'
], (
Marionette,
Templates
) ->
class CodingRulesDetailQualityProfileView extends Marionette.ItemView
className: 'coding-rules-detail-quality-profile'
template: Templates['coding-rules-detail-quality-profile']
modelEvents:
'change': 'render'
ui:
change: '.coding-rules-detail-quality-profile-change'
revert: '.coding-rules-detail-quality-profile-revert'
deactivate: '.coding-rules-detail-quality-profile-deactivate'
events:
'click @ui.change': 'change'
'click @ui.revert': 'revert'
'click @ui.deactivate': 'deactivate'
change: ->
@options.app.codingRulesQualityProfileActivationView.model = @model
@options.app.codingRulesQualityProfileActivationView.show()
revert: ->
ruleKey = @options.rule.get('key')
confirmDialog
title: t 'coding_rules.revert_to_parent_definition'
html: tp 'coding_rules.revert_to_parent_definition.confirm', @getParent().name
yesHandler: =>
jQuery.ajax
type: 'POST'
url: "#{baseUrl}/api/qualityprofiles/activate_rule"
data:
profile_key: @model.get('qProfile')
rule_key: ruleKey
reset: true
.done =>
@options.app.showRule ruleKey
deactivate: ->
ruleKey = @options.rule.get('key')
myProfile = _.findWhere(@options.app.qualityProfiles, key: @model.get('qProfile'))
confirmDialog
title: t 'coding_rules.deactivate'
html: tp 'coding_rules.deactivate.confirm', myProfile.name
yesHandler: =>
jQuery.ajax
type: 'POST'
url: "#{baseUrl}/api/qualityprofiles/deactivate_rule"
data:
profile_key: @model.get('qProfile')
rule_key: ruleKey
.done =>
@options.app.showRule ruleKey
enableUpdate: ->
@ui.update.prop 'disabled', false
getParent: ->
return null unless @model.get('inherit') && @model.get('inherit') != 'NONE'
myProfile = _.findWhere(@options.app.qualityProfiles, key: @model.get('qProfile'))
parentKey = myProfile.parentKey
parent = _.extend {}, _.findWhere(@options.app.qualityProfiles, key: parentKey)
parentActiveInfo = @model.collection.findWhere(qProfile: parentKey) or new Backbone.Model()
_.extend parent, parentActiveInfo.toJSON()
parent
enhanceParameters: ->
parent = @getParent()
params = _.sortBy(@model.get('params'), 'key')
return params unless parent
params.map (p) ->
parentParam = _.findWhere(parent.params, key: p.key)
if parentParam
_.extend p, original: _.findWhere(parent.params, key: p.key).value
else
p
serializeData: ->
hash = _.extend super,
parent: @getParent()
parameters: @enhanceParameters()
canWrite: @options.app.canWrite
templateKey: @options.rule.get 'templateKey'
isTemplate: @options.rule.get 'isTemplate'
|