From 318016d585e163fba4e0a671bb8dd36088325df1 Mon Sep 17 00:00:00 2001 From: Stas Vilchik Date: Mon, 9 Mar 2015 17:59:06 +0100 Subject: [PATCH] SONAR-6145 change the way to select current user in the facet on the issues page --- .../src/main/coffee/issues/controller.coffee | 30 ++++++++++++++++++- .../issues/facets/assignee-facet.coffee | 5 ++++ .../issues/facets/issues-assignee-facet.hbs | 9 +++++- 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/server/sonar-web/src/main/coffee/issues/controller.coffee b/server/sonar-web/src/main/coffee/issues/controller.coffee index a07ded97aea..d30e8c7978c 100644 --- a/server/sonar-web/src/main/coffee/issues/controller.coffee +++ b/server/sonar-web/src/main/coffee/issues/controller.coffee @@ -35,6 +35,12 @@ define [ class extends Controller + _facetsFromServer: -> + facets = super || [] + facets.push 'assigned_to_me' + facets + + _issuesParameters: -> p: @options.app.state.get 'page' ps: @pageSize @@ -44,6 +50,14 @@ define [ facets: @_facetsFromServer().join() + _myIssuesFromResponse: (r) -> + myIssuesData = _.findWhere r.facets, property: 'assigned_to_me' + if myIssuesData? && _.isArray(myIssuesData.values) && myIssuesData.values.length > 0 + @options.app.state.set { myIssues: myIssuesData.values[0].count }, { silent: true } + else + @options.app.state.unset 'myIssues', { silent: true } + + fetchList: (firstPage = true) -> if firstPage @options.app.state.set { selectedIndex: 0, page: 1 }, { silent: true } @@ -63,7 +77,8 @@ define [ @options.app.list.setIndex() FACET_DATA_FIELDS.forEach (field) => @options.app.facets[field] = r[field] @options.app.facets.reset @_allFacets() - @options.app.facets.add r.facets, merge: true + @options.app.facets.add _.reject(r.facets, (f) -> f.property == 'assigned_to_me'), merge: true + @_myIssuesFromResponse r @enableFacets @_enabledFacets() @options.app.state.set page: r.p @@ -94,6 +109,7 @@ define [ requestFacet: (id) -> + return @requestAssigneeFacet() if id == 'assignees' facet = @options.app.facets.get id data = _.extend { facets: id, ps: 1 }, @options.app.state.get('query') _.extend data, @options.app.state.get 'contextQuery' if @options.app.state.get 'isContext' @@ -104,6 +120,18 @@ define [ facet.set facetData if facetData? + requestAssigneeFacet: -> + facet = @options.app.facets.get 'assignees' + data = _.extend { facets: 'assignees,assigned_to_me', ps: 1 }, @options.app.state.get('query') + _.extend data, @options.app.state.get 'contextQuery' if @options.app.state.get 'isContext' + $.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: 'assignees' + @_myIssuesFromResponse r + 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/assignee-facet.coffee b/server/sonar-web/src/main/coffee/issues/facets/assignee-facet.coffee index e2f6819a259..673cb5db44c 100644 --- a/server/sonar-web/src/main/coffee/issues/facets/assignee-facet.coffee +++ b/server/sonar-web/src/main/coffee/issues/facets/assignee-facet.coffee @@ -90,6 +90,11 @@ define [ x + getNumberOfMyIssues: -> + @options.app.state.get 'myIssues' + + serializeData: -> _.extend super, + myIssues: @getNumberOfMyIssues() values: @sortValues @getValuesWithLabels() diff --git a/server/sonar-web/src/main/hbs/issues/facets/issues-assignee-facet.hbs b/server/sonar-web/src/main/hbs/issues/facets/issues-assignee-facet.hbs index 1e16846e377..7aadc062605 100644 --- a/server/sonar-web/src/main/hbs/issues/facets/issues-assignee-facet.hbs +++ b/server/sonar-web/src/main/hbs/issues/facets/issues-assignee-facet.hbs @@ -1,9 +1,16 @@ {{> '_issues-facet-header'}}
+ {{#notNull myIssues}} + + {{t 'me'}} + {{myIssues}} + + {{/notNull}} + {{#each values}} {{#eq val ''}} - {{! unassigned }} + {{! unassigned }} {{t 'unassigned'}} {{numberShort count}} -- 2.39.5