summaryrefslogtreecommitdiffstats
path: root/sonar-server/src/main/coffee/coding-rules/views/coding-rules-detail-view.coffee
diff options
context:
space:
mode:
authorStas Vilchik <vilchiks@gmail.com>2014-03-25 15:18:29 +0600
committerStas Vilchik <vilchiks@gmail.com>2014-03-25 15:18:47 +0600
commit1c3cbb0af1a1294d2d3c672ee35f10008bee2ac7 (patch)
tree64cc0dff86514008bf4f45cdb54b68639b316fa7 /sonar-server/src/main/coffee/coding-rules/views/coding-rules-detail-view.coffee
parent6349cd3b899f37567637c78187f73071c1f64e3c (diff)
downloadsonarqube-1c3cbb0af1a1294d2d3c672ee35f10008bee2ac7.tar.gz
sonarqube-1c3cbb0af1a1294d2d3c672ee35f10008bee2ac7.zip
Move source outside from webapp
Diffstat (limited to 'sonar-server/src/main/coffee/coding-rules/views/coding-rules-detail-view.coffee')
-rw-r--r--sonar-server/src/main/coffee/coding-rules/views/coding-rules-detail-view.coffee131
1 files changed, 131 insertions, 0 deletions
diff --git a/sonar-server/src/main/coffee/coding-rules/views/coding-rules-detail-view.coffee b/sonar-server/src/main/coffee/coding-rules/views/coding-rules-detail-view.coffee
new file mode 100644
index 00000000000..4cf361c7a5c
--- /dev/null
+++ b/sonar-server/src/main/coffee/coding-rules/views/coding-rules-detail-view.coffee
@@ -0,0 +1,131 @@
+define [
+ 'backbone',
+ 'backbone.marionette',
+ 'coding-rules/views/coding-rules-detail-quality-profiles-view'
+ 'templates/coding-rules'
+], (
+ Backbone,
+ Marionette,
+ CodingRulesDetailQualityProfilesView,
+ Templates
+) ->
+
+ class CodingRulesDetailView extends Marionette.Layout
+ template: Templates['coding-rules-detail']
+
+
+ regions:
+ qualityProfilesRegion: '#coding-rules-detail-quality-profiles'
+
+
+ ui:
+ tagsChange: '.coding-rules-detail-tags-change'
+ tagInput: '.coding-rules-detail-tag-input'
+ tagsEdit: '.coding-rules-detail-tag-edit'
+ tagsEditDone: '.coding-rules-detail-tag-edit-done'
+ tagsList: '.coding-rules-detail-tag-list'
+
+ descriptionExtra: '#coding-rules-detail-description-extra'
+ extendDescriptionLink: '#coding-rules-detail-extend-description'
+ extendDescriptionForm: '#coding-rules-detail-extend-description-form'
+ extendDescriptionSubmit: '#coding-rules-detail-extend-description-submit'
+ extendDescriptionText: '#coding-rules-detail-extend-description-text'
+ extendDescriptionSpinner: '#coding-rules-detail-extend-description-spinner'
+ cancelExtendDescription: '#coding-rules-detail-extend-description-cancel'
+
+ activateQualityProfile: '#coding-rules-quality-profile-activate'
+ changeQualityProfile: '.coding-rules-detail-quality-profile-update'
+
+
+ events:
+ 'click @ui.tagsChange': 'changeTags'
+ 'click @ui.tagsEditDone': 'editDone'
+
+ 'click @ui.extendDescriptionLink': 'showExtendDescriptionForm'
+ 'click @ui.cancelExtendDescription': 'hideExtendDescriptionForm'
+ 'click @ui.extendDescriptionSubmit': 'submitExtendDescription'
+
+ 'click @ui.activateQualityProfile': 'activateQualityProfile'
+ 'click @ui.changeQualityProfile': 'changeQualityProfile'
+
+
+ initialize: (options) ->
+ @qualityProfilesView = new CodingRulesDetailQualityProfilesView
+ app: @options.app
+ collection: new Backbone.Collection options.model.get 'qualityProfiles'
+
+
+ onRender: ->
+ @qualityProfilesRegion.show @qualityProfilesView
+
+ @ui.tagInput.select2
+ tags: _.difference @options.app.tags, @model.get 'tags'
+ width: '300px'
+ @ui.tagsEdit.hide()
+
+ @ui.extendDescriptionForm.hide()
+ @ui.extendDescriptionSpinner.hide()
+
+
+ changeTags: ->
+ @ui.tagsEdit.show()
+ @ui.tagsList.hide()
+
+
+ editDone: ->
+ @ui.tagsEdit.html '<i class="spinner"></i>'
+ tags = @ui.tagInput.val()
+ jQuery.ajax
+ type: 'POST'
+ url: "#{baseUrl}/api/codingrules/set_tags"
+ data: tags: tags
+ .done =>
+ @model.set 'tags', tags.split ','
+ @render()
+
+
+ showExtendDescriptionForm: ->
+ @ui.descriptionExtra.hide()
+ @ui.extendDescriptionForm.show()
+
+
+ hideExtendDescriptionForm: ->
+ @ui.descriptionExtra.show()
+ @ui.extendDescriptionForm.hide()
+
+
+ submitExtendDescription: ->
+ @ui.extendDescriptionForm.hide()
+ @ui.extendDescriptionSpinner.show()
+ jQuery.ajax
+ type: 'POST'
+ url: "#{baseUrl}/api/codingrules/extend_description"
+ dataType: 'json'
+ data: text: @ui.extendDescriptionText.val()
+ .done (r) =>
+ @model.set extra: r.extra, extraRaw: r.extraRaw
+ @render()
+
+
+ getContextQualilyProfile: ->
+ contextQualityProfile = @options.app.getQualityProfile()
+ _.findWhere @model.get('qualityProfiles'), key: contextQualityProfile
+
+
+ activateQualityProfile: ->
+ @options.app.codingRulesQualityProfileActivationView.model = null
+ @options.app.codingRulesQualityProfileActivationView.show()
+
+
+ changeQualityProfile: ->
+ @options.app.codingRulesQualityProfileActivationView.model = new Backbone.Model @getContextQualilyProfile()
+ @options.app.codingRulesQualityProfileActivationView.show()
+
+
+ serializeData: ->
+ contextQualityProfile = @options.app.getQualityProfile()
+
+ _.extend super,
+ contextQualityProfile: contextQualityProfile
+ contextQualityProfileName: @options.app.qualityProfileFilter.view.renderValue()
+ qualityProfile: @getContextQualilyProfile() \ No newline at end of file