diff options
author | Pascal Mugnier <pascal.mugnier@sonarsource.com> | 2018-05-24 09:32:40 +0200 |
---|---|---|
committer | SonarTech <sonartech@sonarsource.com> | 2018-05-24 20:20:47 +0200 |
commit | 1209ca37476442602fd40e06a9636f470bd9385c (patch) | |
tree | fd0fc9141f74dd1abe5455f407bb4bb4de037b65 | |
parent | 74fc9a991a81542cb51b3bbdcf9b364670e505aa (diff) | |
download | sonarqube-1209ca37476442602fd40e06a9636f470bd9385c.tar.gz sonarqube-1209ca37476442602fd40e06a9636f470bd9385c.zip |
Fix after review
-rw-r--r-- | server/sonar-web/src/main/js/apps/quality-gates/components/ConditionModal.tsx | 47 | ||||
-rw-r--r-- | server/sonar-web/src/main/js/apps/quality-gates/components/ConditionOperator.tsx | 2 |
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" |