aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main
diff options
context:
space:
mode:
authorPascal Mugnier <pascal.mugnier@sonarsource.com>2018-03-29 16:38:27 +0200
committerSonarTech <sonartech@sonarsource.com>2018-04-05 20:20:47 +0200
commite2e069237203558e6db52f946d6b4564f30652fe (patch)
treeeaa74492f604405b1f9a6aa7c6f2af1a38a262f6 /server/sonar-web/src/main
parentc10cd1a2764c28199b2d761bebbdbcd2507a9c91 (diff)
downloadsonarqube-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.js11
-rw-r--r--server/sonar-web/src/main/js/apps/settings/components/DefinitionActions.tsx28
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')}
{': '}