aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStas Vilchik <vilchiks@gmail.com>2014-10-30 09:59:48 +0100
committerStas Vilchik <vilchiks@gmail.com>2014-10-30 09:59:57 +0100
commitd32e002169ab3578de477ea882d2adfff3c47a7c (patch)
tree67a7506d6fac09bea1391885eab5802e697367f0
parent1a3678f675549ee82d492efc031de96711e9bc19 (diff)
downloadsonarqube-d32e002169ab3578de477ea882d2adfff3c47a7c.tar.gz
sonarqube-d32e002169ab3578de477ea882d2adfff3c47a7c.zip
SONAR-5718 Add an ability to collapse/expand facets
-rw-r--r--server/sonar-web/src/main/coffee/issues/controller.coffee42
-rw-r--r--server/sonar-web/src/main/coffee/issues/facets-view.coffee11
-rw-r--r--server/sonar-web/src/main/coffee/issues/facets/base-facet.coffee4
-rw-r--r--server/sonar-web/src/main/coffee/issues/models/facet.coffee1
-rw-r--r--server/sonar-web/src/main/coffee/issues/models/state.coffee4
-rw-r--r--server/sonar-web/src/main/less/issues.less2
-rw-r--r--sonar-core/src/main/resources/org/sonar/l10n/core.properties2
7 files changed, 52 insertions, 14 deletions
diff --git a/server/sonar-web/src/main/coffee/issues/controller.coffee b/server/sonar-web/src/main/coffee/issues/controller.coffee
index a1a05844c57..8ccf17ef760 100644
--- a/server/sonar-web/src/main/coffee/issues/controller.coffee
+++ b/server/sonar-web/src/main/coffee/issues/controller.coffee
@@ -13,6 +13,7 @@ define [
$ = jQuery
EXTRA_FIELDS = 'actions,transitions,assigneeName,reporterName,actionPlanName'
PAGE_SIZE = 50
+ FACET_DATA_FIELDS = ['components', 'projects', 'users', 'rules', 'actionPlans']
class extends Marionette.Controller
@@ -49,12 +50,7 @@ define [
else
@options.app.issues.add issues
- _.extend @options.app.facets,
- components: r.components
- projects: r.projects
- rules: r.rules
- users: r.users
- actionPlans: r.actionPlans
+ FACET_DATA_FIELDS.forEach (field) => @options.app.facets[field] = r[field]
@options.app.facets.reset @_allFacets()
@options.app.facets.add r.facets, merge: true
@enableFacets @options.app.state.get 'facets'
@@ -81,14 +77,44 @@ define [
@options.app.filters.reset r.favorites
- enableFacet: (facet) ->
- @options.app.facets.get(facet).set enabled: true
+ enableFacet: (id) ->
+ facet = @options.app.facets.get id
+ if facet.has 'values'
+ facet.set enabled: true
+ else
+ @requestFacet(id).done => facet.set enabled: true
+
+
+ disableFacet: (id) ->
+ facet = @options.app.facets.get id
+ facet.set enabled: false
+
+
+ toggleFacet: (id) ->
+ facet = @options.app.facets.get id
+ if facet.get('enabled') then @disableFacet(id) else @enableFacet(id)
enableFacets: (facets) ->
facets.forEach @enableFacet, @
+ _mergeCollections: (a, b) ->
+ collection = new Backbone.Collection a
+ collection.add b, merge: true
+ collection.toJSON()
+
+
+ requestFacet: (id) ->
+ facet = @options.app.facets.get id
+ data = _.extend { facets: id, ps: 1 }, @options.app.state.get('query')
+ $.get "#{baseUrl}/api/issues/search", data, (r) =>
+ FACET_DATA_FIELDS.forEach (field) =>
+ @options.app.facets[field] = @_mergeCollections @options.app.facets[field], r[field]
+ facetData = _.findWhere r.facets, property: id
+ facet.set facetData if facetData?
+
+
newSearch: ->
@options.app.state.unset 'filter'
@options.app.state.setQuery resolved: 'false'
diff --git a/server/sonar-web/src/main/coffee/issues/facets-view.coffee b/server/sonar-web/src/main/coffee/issues/facets-view.coffee
index e1e6e121a78..30811e790d7 100644
--- a/server/sonar-web/src/main/coffee/issues/facets-view.coffee
+++ b/server/sonar-web/src/main/coffee/issues/facets-view.coffee
@@ -41,3 +41,14 @@ define [
itemViewOptions: ->
app: @options.app
+
+ collectionEvents: ->
+ 'change:enabled': 'updateState'
+
+
+ updateState: ->
+ enabledFacets = @collection.filter (model) -> model.get('enabled')
+ enabledFacetIds = enabledFacets.map (model) -> model.id
+ console.log enabledFacetIds
+ @options.app.state.set facets: enabledFacetIds
+
diff --git a/server/sonar-web/src/main/coffee/issues/facets/base-facet.coffee b/server/sonar-web/src/main/coffee/issues/facets/base-facet.coffee
index 190028b9326..e8e50066c26 100644
--- a/server/sonar-web/src/main/coffee/issues/facets/base-facet.coffee
+++ b/server/sonar-web/src/main/coffee/issues/facets/base-facet.coffee
@@ -24,7 +24,6 @@ define [
onRender: ->
- console.log @model.id, @model.get 'enabled'
@$el.toggleClass 'issues-facet-box-collapsed', !@model.get('enabled')
property = @model.get 'property'
@@ -35,7 +34,7 @@ define [
toggle: ->
- @model.toggle()
+ @options.app.controller.toggleFacet @model.id
getValue: ->
@@ -49,4 +48,3 @@ define [
obj = {}
obj[property] = value
@options.app.state.updateFilter obj
-
diff --git a/server/sonar-web/src/main/coffee/issues/models/facet.coffee b/server/sonar-web/src/main/coffee/issues/models/facet.coffee
index fa7cb817441..4a80c47bba4 100644
--- a/server/sonar-web/src/main/coffee/issues/models/facet.coffee
+++ b/server/sonar-web/src/main/coffee/issues/models/facet.coffee
@@ -13,7 +13,6 @@ define [
getValues: ->
- console.log @toJSON()
@get('values') || []
diff --git a/server/sonar-web/src/main/coffee/issues/models/state.coffee b/server/sonar-web/src/main/coffee/issues/models/state.coffee
index 6ef3f104983..d838e468e71 100644
--- a/server/sonar-web/src/main/coffee/issues/models/state.coffee
+++ b/server/sonar-web/src/main/coffee/issues/models/state.coffee
@@ -13,8 +13,8 @@ define [
query: {}
facets: ['severities', 'statuses', 'resolutions', 'componentRootUuids']
- allFacets: ['severities', 'statuses', 'resolutions', 'componentRootUuids', 'assignees', 'reporters', 'rule',
- 'languages', 'actionPlan', 'creationDate']
+ allFacets: ['severities', 'statuses', 'resolutions', 'componentRootUuids', 'assignees', 'reporters', 'rules',
+ 'languages', 'actionPlans', 'creationDate']
nextPage: ->
diff --git a/server/sonar-web/src/main/less/issues.less b/server/sonar-web/src/main/less/issues.less
index 4a35c249d81..20634f1d5c0 100644
--- a/server/sonar-web/src/main/less/issues.less
+++ b/server/sonar-web/src/main/less/issues.less
@@ -61,6 +61,8 @@
.issues-facet-header {
color: @secondFontColor;
font-weight: 300;
+
+ &:hover { color: @blue; }
}
}
diff --git a/sonar-core/src/main/resources/org/sonar/l10n/core.properties b/sonar-core/src/main/resources/org/sonar/l10n/core.properties
index 934006976be..5b3cbfcc179 100644
--- a/sonar-core/src/main/resources/org/sonar/l10n/core.properties
+++ b/sonar-core/src/main/resources/org/sonar/l10n/core.properties
@@ -769,6 +769,8 @@ issues.facet.components=Component
issues.facet.rules=Rule
issues.facet.resolutions=Resolution
issues.facet.languages=Language
+issues.facet.creationDate=Creation Date
+issues.facet.reporters=Reporter
#------------------------------------------------------------------------------