diff options
author | Jean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com> | 2014-04-23 16:57:30 +0200 |
---|---|---|
committer | Jean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com> | 2014-04-23 17:33:11 +0200 |
commit | ebad62de4864fa13b8f30e766cc6501e3b5ac04f (patch) | |
tree | 78b94066b9bf04c12623c72c650b20b71012223e /sonar-server/src | |
parent | b131f3d7faae41ae931f522b4ae208c69aab5dee (diff) | |
download | sonarqube-ebad62de4864fa13b8f30e766cc6501e3b5ac04f.tar.gz sonarqube-ebad62de4864fa13b8f30e766cc6501e3b5ac04f.zip |
SONAR-5148 Allow selection of periods 4 and 5 for quality gate conditions
Diffstat (limited to 'sonar-server/src')
6 files changed, 17 insertions, 8 deletions
diff --git a/sonar-server/src/main/coffee/quality-gate/views/quality-gate-detail-condition-view.coffee b/sonar-server/src/main/coffee/quality-gate/views/quality-gate-detail-condition-view.coffee index e73343ac80b..bf5af58c8e9 100644 --- a/sonar-server/src/main/coffee/quality-gate/views/quality-gate-detail-condition-view.coffee +++ b/sonar-server/src/main/coffee/quality-gate/views/quality-gate-detail-condition-view.coffee @@ -59,7 +59,7 @@ define [ @ui.periodSelect.select2 allowClear: false minimumResultsForSearch: 999 - width: '200px' + width: '100%' @ui.operatorSelect.select2 allowClear: false diff --git a/sonar-server/src/main/hbs/quality-gates/quality-gate-detail-condition.hbs b/sonar-server/src/main/hbs/quality-gates/quality-gate-detail-condition.hbs index 6ec2c6200f1..7acd9800f2a 100644 --- a/sonar-server/src/main/hbs/quality-gates/quality-gate-detail-condition.hbs +++ b/sonar-server/src/main/hbs/quality-gates/quality-gate-detail-condition.hbs @@ -4,9 +4,9 @@ <span class="deprecated">{{t 'deprecated'}}</span> {{/if}} </td> -<td width="10%" nowrap> +<td width="20%" nowrap> {{#if canEdit}} - <select name="period"> + <select name="period" style="width: 100%"> {{#unless isDiffMetric}}<option value="0">{{t 'value'}}</option>{{/unless}} {{#each periods}}<option value="{{key}}">Δ {{text}}</option>{{/each}} </select> diff --git a/sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGates.java b/sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGates.java index c0682042c09..4d5b8b2a649 100644 --- a/sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGates.java +++ b/sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGates.java @@ -261,8 +261,8 @@ public class QualityGates { if (metric.getKey().startsWith("new_")) { validationMessages.add(Message.of("A period must be selected for differential metrics.")); } - } else if (period < 1 || period > 3) { - validationMessages.add(Message.of("Valid periods are 1, 2 and 3.")); + } else if (period < 1 || period > 5) { + validationMessages.add(Message.of("Valid periods are integers between 1 and 5 (included).")); } } diff --git a/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QgateAppHandler.java b/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QgateAppHandler.java index bef48100273..a6734e39b67 100644 --- a/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QgateAppHandler.java +++ b/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QgateAppHandler.java @@ -78,6 +78,7 @@ public class QgateAppHandler implements RequestHandler { "quality_gates.delete.confirm.message", "quality_gates.delete.confirm.default", "quality_gates.delete_condition.confirm.message", + "quality_gates.project_period", "rename", "save", "set_as_default", @@ -120,9 +121,17 @@ public class QgateAppHandler implements RequestHandler { for (int i=0; i < 3; i ++) { writer.beginObject().prop("key", i + 1).prop("text", periods.label(i + 1)).endObject(); } + addProjectPeriod(4, writer); + addProjectPeriod(5, writer); writer.endArray(); } + private void addProjectPeriod(int periodIndex, JsonWriter writer) { + writer.beginObject().prop("key", periodIndex).prop("text", + i18n.message(Locale.getDefault(), "quality_gates.project_period", "Period " + periodIndex, periodIndex) + ).endObject(); + } + private void addMessages(JsonWriter writer) { writer.name("messages").beginObject(); for (String message: MESSAGE_KEYS) { diff --git a/sonar-server/src/test/java/org/sonar/server/qualitygate/QualityGatesTest.java b/sonar-server/src/test/java/org/sonar/server/qualitygate/QualityGatesTest.java index 435ed2c0a26..4688136979c 100644 --- a/sonar-server/src/test/java/org/sonar/server/qualitygate/QualityGatesTest.java +++ b/sonar-server/src/test/java/org/sonar/server/qualitygate/QualityGatesTest.java @@ -420,7 +420,7 @@ public class QualityGatesTest { when(metric.getType()).thenReturn(ValueType.BOOL); when(metricFinder.findByKey(anyString())).thenReturn(metric); when(dao.selectById(qGateId)).thenReturn(new QualityGateDto().setId(qGateId)); - qGates.createCondition(qGateId, "alert_status", "EQ", null, "90", 4); + qGates.createCondition(qGateId, "alert_status", "EQ", null, "90", 6); } @Test diff --git a/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QgateAppHandlerTest.java b/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QgateAppHandlerTest.java index bc0334256ed..1e6baad3415 100644 --- a/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QgateAppHandlerTest.java +++ b/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QgateAppHandlerTest.java @@ -87,9 +87,9 @@ public class QgateAppHandlerTest { Map responseJson = (Map) JSONValue.parse(json); assertThat((Boolean) responseJson.get("edit")).isFalse(); Collection<Map> periods = (Collection<Map>) responseJson.get("periods"); - assertThat(periods).hasSize(3); + assertThat(periods).hasSize(5); Map messages = (Map) responseJson.get("messages"); - assertThat(messages).isNotNull().isNotEmpty().hasSize(53); + assertThat(messages).isNotNull().isNotEmpty().hasSize(54); for (Entry message: (Set<Entry>) messages.entrySet()) { assertThat(message.getKey()).isEqualTo(message.getValue()); } |