aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Mugnier <pascal.mugnier@sonarsource.com>2018-05-24 09:32:40 +0200
committerSonarTech <sonartech@sonarsource.com>2018-05-24 20:20:47 +0200
commit1209ca37476442602fd40e06a9636f470bd9385c (patch)
treefd0fc9141f74dd1abe5455f407bb4bb4de037b65
parent74fc9a991a81542cb51b3bbdcf9b364670e505aa (diff)
downloadsonarqube-1209ca37476442602fd40e06a9636f470bd9385c.tar.gz
sonarqube-1209ca37476442602fd40e06a9636f470bd9385c.zip
Fix after review
-rw-r--r--server/sonar-web/src/main/js/apps/quality-gates/components/ConditionModal.tsx47
-rw-r--r--server/sonar-web/src/main/js/apps/quality-gates/components/ConditionOperator.tsx2
2 files changed, 15 insertions, 34 deletions
diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/ConditionModal.tsx b/server/sonar-web/src/main/js/apps/quality-gates/components/ConditionModal.tsx
index b5d8fbf5b89..cf70214b296 100644
--- a/server/sonar-web/src/main/js/apps/quality-gates/components/ConditionModal.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-gates/components/ConditionModal.tsx
@@ -71,17 +71,6 @@ export default class ConditionModal extends React.PureComponent<Props, State> {
this.mounted = false;
}
- handleError = (error: any) => {
- parseError(error).then(
- message => {
- if (this.mounted) {
- this.setState({ errorMessage: message });
- }
- },
- () => {}
- );
- };
-
getUpdatedCondition = (metric: Metric) => {
const data: Omit<Condition, 'id'> = {
metric: metric.key,
@@ -101,34 +90,26 @@ export default class ConditionModal extends React.PureComponent<Props, State> {
return data;
};
- handleConditionResponse = (newCondition: Condition) => {
- this.props.onAddCondition(newCondition);
- };
-
handleFormSubmit = () => {
if (this.state.metric) {
const { condition, qualityGate, organization } = this.props;
-
+ const newCondition = this.getUpdatedCondition(this.state.metric);
+ let submitPromise: Promise<Condition>;
if (condition) {
- const data: Condition = {
- id: condition.id,
- ...this.getUpdatedCondition(this.state.metric)
- };
-
- return updateCondition({ organization, ...data }).then(
- this.handleConditionResponse,
- this.handleError
- );
+ submitPromise = updateCondition({ organization, id: condition.id, ...newCondition });
} else {
- const data = this.getUpdatedCondition(this.state.metric);
-
- return createCondition({ gateId: qualityGate.id, organization, ...data }).then(
- this.handleConditionResponse,
- this.handleError
- );
+ submitPromise = createCondition({ gateId: qualityGate.id, organization, ...newCondition });
}
+ return submitPromise.then(this.props.onAddCondition, (error: any) =>
+ parseError(error).then(message => {
+ if (this.mounted) {
+ this.setState({ errorMessage: message });
+ }
+ return Promise.reject(message);
+ })
+ );
}
- return Promise.resolve();
+ return Promise.reject('No metric selected');
};
handleChooseType = (metric: Metric) => {
@@ -162,7 +143,7 @@ export default class ConditionModal extends React.PureComponent<Props, State> {
onClose={onClose}
onConfirm={this.handleFormSubmit}>
{this.state.errorMessage && (
- <div className="alert alert-warning modal-alert">{this.state.errorMessage}</div>
+ <div className="alert alert-danger modal-alert">{this.state.errorMessage}</div>
)}
<div className="modal-field">
<label htmlFor="create-user-login">{translate('quality_gates.conditions.metric')}</label>
diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/ConditionOperator.tsx b/server/sonar-web/src/main/js/apps/quality-gates/components/ConditionOperator.tsx
index f75a1fe388b..526813bde06 100644
--- a/server/sonar-web/src/main/js/apps/quality-gates/components/ConditionOperator.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-gates/components/ConditionOperator.tsx
@@ -58,7 +58,7 @@ export default class ConditionOperator extends React.PureComponent<Props> {
return (
<Select
- autofocus={true}
+ autoFocus={true}
className="input-medium"
clearable={false}
name="operator"