]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5133 Enable language filter when quality profile is changed
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Mon, 2 Jun 2014 12:00:33 +0000 (14:00 +0200)
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Mon, 2 Jun 2014 12:05:56 +0000 (14:05 +0200)
sonar-server/src/main/coffee/coding-rules/app.coffee
sonar-server/src/main/coffee/coding-rules/views/filters/language-filter-view.coffee [new file with mode: 0644]

index 8d7fe22f9ad700ef43295ae05392a26d62e38ab1..095867e4b8d061b41465ef06eafdffb24e619dd8 100644 (file)
@@ -45,6 +45,7 @@ requirejs [
   'coding-rules/views/filters/characteristic-filter-view',
   'coding-rules/views/filters/repository-filter-view',
   'coding-rules/views/filters/tag-filter-view',
+  'coding-rules/views/filters/language-filter-view',
 
   'coding-rules/mockjax',
   'common/handlebars-extensions'
@@ -75,7 +76,8 @@ requirejs [
   ActivationFilterView,
   CharacteristicFilterView,
   RepositoryFilterView,
-  TagFilterView
+  TagFilterView,
+  LanguageFilterView
 ) ->
 
   # Create a generic error handler for ajax requests
@@ -249,7 +251,8 @@ requirejs [
     @languageFilter =  new BaseFilters.Filter
       name: t 'coding_rules.filters.language'
       property: 'languages'
-      type: ChoiceFilters.ChoiceFilterView
+      type: LanguageFilterView
+      app: @
       choices: @languages
       optional: true
     @filters.add @languageFilter
diff --git a/sonar-server/src/main/coffee/coding-rules/views/filters/language-filter-view.coffee b/sonar-server/src/main/coffee/coding-rules/views/filters/language-filter-view.coffee
new file mode 100644 (file)
index 0000000..c8cbd44
--- /dev/null
@@ -0,0 +1,22 @@
+define [
+  'navigator/filters/choice-filters',
+  'templates/coding-rules'
+], (
+  ChoiceFilters,
+  Templates
+) ->
+
+  class LanguageFilterView extends ChoiceFilters.ChoiceFilterView
+
+    initialize: ->
+      super
+      @app = @model.get 'app'
+      @listenTo @app.qualityProfileFilter, 'change:value', @onChangeProfile
+
+    onChangeProfile: ->
+      profiles = @app.qualityProfileFilter.get 'value'
+      if _.isArray(profiles) && profiles.length > 0
+        profile = _.findWhere @app.qualityProfiles, key: profiles[0]
+        @restore profile.lang
+        # force alignment of details list
+        @app.qualityProfileFilter.view.showDetails()