diff options
author | Pascal Mugnier <pascal.mugnier@sonarsource.com> | 2018-03-29 16:38:27 +0200 |
---|---|---|
committer | SonarTech <sonartech@sonarsource.com> | 2018-04-05 20:20:47 +0200 |
commit | e2e069237203558e6db52f946d6b4564f30652fe (patch) | |
tree | eaa74492f604405b1f9a6aa7c6f2af1a38a262f6 /server/sonar-web/src/main | |
parent | c10cd1a2764c28199b2d761bebbdbcd2507a9c91 (diff) | |
download | sonarqube-e2e069237203558e6db52f946d6b4564f30652fe.tar.gz sonarqube-e2e069237203558e6db52f946d6b4564f30652fe.zip |
Fix reset button on settings page
Diffstat (limited to 'server/sonar-web/src/main')
-rw-r--r-- | server/sonar-web/src/main/js/apps/settings/components/Definition.js | 11 | ||||
-rw-r--r-- | server/sonar-web/src/main/js/apps/settings/components/DefinitionActions.tsx | 28 |
2 files changed, 20 insertions, 19 deletions
diff --git a/server/sonar-web/src/main/js/apps/settings/components/Definition.js b/server/sonar-web/src/main/js/apps/settings/components/Definition.js index b1a1f32503b..ab25a45251b 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/Definition.js +++ b/server/sonar-web/src/main/js/apps/settings/components/Definition.js @@ -82,11 +82,7 @@ class Definition extends React.PureComponent { handleChange = value => { clearTimeout(this.timeout); this.props.changeValue(this.props.setting.definition.key, value); - if (this.props.setting.definition.type === TYPE_PASSWORD) { - this.handleSave(); - } else { - this.handleCheck(); - } + this.handleCheck(); }; handleReset = () => { @@ -145,7 +141,7 @@ class Definition extends React.PureComponent { const effectiveValue = hasValueChanged ? changedValue : getSettingValue(setting); - const isDefault = isDefaultOrInherited(setting) && !hasValueChanged; + const isDefault = isDefaultOrInherited(setting); return ( <div className={className} data-key={definition.key}> @@ -197,9 +193,9 @@ class Definition extends React.PureComponent { </div> <Input + hasValueChanged={hasValueChanged} onCancel={this.handleCancel} onChange={this.handleChange} - onSave={this.handleSave} setting={setting} value={effectiveValue} /> @@ -207,6 +203,7 @@ class Definition extends React.PureComponent { <DefinitionActions changedValue={changedValue} hasError={hasError} + hasValueChanged={hasValueChanged} isDefault={isDefault} onCancel={this.handleCancel} onReset={this.handleReset} diff --git a/server/sonar-web/src/main/js/apps/settings/components/DefinitionActions.tsx b/server/sonar-web/src/main/js/apps/settings/components/DefinitionActions.tsx index b8b74dd5ca0..f45f0d984d9 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/DefinitionActions.tsx +++ b/server/sonar-web/src/main/js/apps/settings/components/DefinitionActions.tsx @@ -27,6 +27,7 @@ import { SettingValue, Definition } from '../../../api/settings'; type Props = { changedValue: string; hasError: boolean; + hasValueChanged: boolean; isDefault: boolean; onCancel: () => void; onReset: () => void; @@ -75,19 +76,22 @@ export default class DefinitionActions extends React.PureComponent<Props, State> } render() { - const { setting, isDefault, changedValue } = this.props; - const hasValueChanged = changedValue != null; - const canBeReset = !isDefault && isEmptyValue(setting.definition, changedValue); - const isExplicitlySet = - !isDefault && !isEmptyValue(setting.definition, getSettingValue(setting)); + const { setting, isDefault, changedValue, hasValueChanged } = this.props; + + const hasValueToResetTo = !isEmptyValue(setting.definition, getSettingValue(setting)); + const hasBeenChangedToEmptyValue = + changedValue != null && isEmptyValue(setting.definition, changedValue); + const showReset = + hasValueToResetTo && (hasBeenChangedToEmptyValue || (!isDefault && !hasValueChanged)); return ( <> - {isDefault && ( - <div className="spacer-top note" style={{ lineHeight: '24px' }}> - {translate('settings._default')} - </div> - )} + {isDefault && + !hasValueChanged && ( + <div className="spacer-top note" style={{ lineHeight: '24px' }}> + {translate('settings._default')} + </div> + )} <div className="settings-definition-changes nowrap"> {hasValueChanged && ( <Button @@ -98,7 +102,7 @@ export default class DefinitionActions extends React.PureComponent<Props, State> </Button> )} - {canBeReset && ( + {showReset && ( <Button className="spacer-right" onClick={this.handleReset}> {translate('reset_verb')} </Button> @@ -110,7 +114,7 @@ export default class DefinitionActions extends React.PureComponent<Props, State> </Button> )} - {isExplicitlySet && ( + {showReset && ( <span className="note"> {translate('default')} {': '} |