From: Stas Vilchik Date: Thu, 30 Oct 2014 15:14:36 +0000 (+0100) Subject: SONAR-5718 Implement the manual selection of facet values X-Git-Tag: 5.0-RC1~482 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=dbdda7d721db81400fc81e81f4dedd43ebf30e73;p=sonarqube.git SONAR-5718 Implement the manual selection of facet values --- 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 7d6c15dd8af..9eb484e6533 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 @@ -13,6 +13,11 @@ define [ template: Templates['issues-assignee-facet'] + events: -> + _.extend super, + 'change .js-issues-custom-value': 'addCustomValue' + + onRender: -> super @@ -20,6 +25,20 @@ define [ if value? && (!value || value == 'false') @$('.js-issues-facet').filter("[data-unassigned]").addClass 'active' + @$('.js-issues-custom-value').select2 + placeholder: 'Add assignee' + minimumInputLength: 2 + allowClear: false + formatNoMatches: -> t 'select2.noMatches' + formatSearching: -> t 'select2.searching' + formatInputTooShort: -> tp 'select2.tooShort', 2 + width: '100%' + ajax: + quietMillis: 300 + url: "#{baseUrl}/api/users/search?f=s2" + data: (term, page) -> { s: term, p: page } + results: (data) -> { more: data.more, results: data.results } + toggleFacet: (e) -> unassigned = $(e.currentTarget).is "[data-unassigned]" @@ -49,6 +68,18 @@ define [ @options.app.state.updateFilter assigned: null, assignees: null + addCustomValue: -> + property = @model.get 'property' + customValue = @$('.js-issues-custom-value').select2 'val' + value = @getValue() + value += ',' if value.length > 0 + value += customValue + obj = {} + obj[property] = value + obj.assigned = null + @options.app.state.updateFilter obj + + serializeData: -> _.extend super, values: @getValuesWithLabels() diff --git a/server/sonar-web/src/main/coffee/issues/facets/reporter-facet.coffee b/server/sonar-web/src/main/coffee/issues/facets/reporter-facet.coffee index 0625fe3bbe7..73e00faa9a8 100644 --- a/server/sonar-web/src/main/coffee/issues/facets/reporter-facet.coffee +++ b/server/sonar-web/src/main/coffee/issues/facets/reporter-facet.coffee @@ -1,11 +1,37 @@ define [ 'issues/facets/base-facet' + 'templates/issues' ], ( BaseFacet + Templates ) -> class extends BaseFacet + template: Templates['issues-reporter-facet'] + + + events: -> + _.extend super, + 'change .js-issues-custom-value': 'addCustomValue' + + + onRender: -> + super + @$('.js-issues-custom-value').select2 + placeholder: 'Add reporter' + minimumInputLength: 2 + allowClear: false + formatNoMatches: -> t 'select2.noMatches' + formatSearching: -> t 'select2.searching' + formatInputTooShort: -> tp 'select2.tooShort', 2 + width: '100%' + ajax: + quietMillis: 300 + url: "#{baseUrl}/api/users/search?f=s2" + data: (term, page) -> { s: term, p: page } + results: (data) -> { more: data.more, results: data.results } + getValuesWithLabels: -> values = @model.getValues() @@ -20,6 +46,17 @@ define [ values + addCustomValue: -> + property = @model.get 'property' + customValue = @$('.js-issues-custom-value').select2 'val' + value = @getValue() + value += ',' if value.length > 0 + value += customValue + obj = {} + obj[property] = value + @options.app.state.updateFilter obj + + serializeData: -> _.extend super, values: @getValuesWithLabels() diff --git a/server/sonar-web/src/main/coffee/issues/facets/rule-facet.coffee b/server/sonar-web/src/main/coffee/issues/facets/rule-facet.coffee index df5b544bb9a..274238cf389 100644 --- a/server/sonar-web/src/main/coffee/issues/facets/rule-facet.coffee +++ b/server/sonar-web/src/main/coffee/issues/facets/rule-facet.coffee @@ -1,11 +1,40 @@ define [ 'issues/facets/base-facet' + 'templates/issues' ], ( BaseFacet + Templates ) -> class extends BaseFacet + template: Templates['issues-rule-facet'] + + + events: -> + _.extend super, + 'change .js-issues-custom-value': 'addCustomValue' + + + onRender: -> + super + @$('.js-issues-custom-value').select2 + placeholder: 'Add rule' + minimumInputLength: 2 + allowClear: false + formatNoMatches: -> t 'select2.noMatches' + formatSearching: -> t 'select2.searching' + formatInputTooShort: -> tp 'select2.tooShort', 2 + width: '100%' + ajax: + quietMillis: 300 + url: "#{baseUrl}/api/rules/search?f=name" + data: (term, page) -> { q: term, p: page } + results: (data) -> + results = data.rules.map (rule) -> + id: rule.key, text: rule.name + { more: (data.p * data.ps < data.total), results: results } + getValuesWithLabels: -> values = @model.getValues() @@ -20,6 +49,17 @@ define [ values + addCustomValue: -> + property = @model.get 'property' + customValue = @$('.js-issues-custom-value').select2 'val' + value = @getValue() + value += ',' if value.length > 0 + value += customValue + obj = {} + obj[property] = value + @options.app.state.updateFilter obj + + serializeData: -> _.extend super, values: @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 835b6a5b4a4..8065434d283 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,6 +1,10 @@ {{> '_issues-facet-header'}}
+
+ +
+ {{#each values}} {{#eq val ''}} {{! unassigned }} diff --git a/server/sonar-web/src/main/hbs/issues/facets/issues-reporter-facet.hbs b/server/sonar-web/src/main/hbs/issues/facets/issues-reporter-facet.hbs new file mode 100644 index 00000000000..af181c52f8b --- /dev/null +++ b/server/sonar-web/src/main/hbs/issues/facets/issues-reporter-facet.hbs @@ -0,0 +1,14 @@ +{{> '_issues-facet-header'}} + +
+
+ +
+ + {{#each values}} + + {{default label val}} + {{count}} + + {{/each}} +
diff --git a/server/sonar-web/src/main/hbs/issues/facets/issues-rule-facet.hbs b/server/sonar-web/src/main/hbs/issues/facets/issues-rule-facet.hbs new file mode 100644 index 00000000000..af181c52f8b --- /dev/null +++ b/server/sonar-web/src/main/hbs/issues/facets/issues-rule-facet.hbs @@ -0,0 +1,14 @@ +{{> '_issues-facet-header'}} + +
+
+ +
+ + {{#each values}} + + {{default label val}} + {{count}} + + {{/each}} +