]> source.dussan.org Git - sonarqube.git/commitdiff
Fixes from review
authorJeremy Davis <jeremy.davis@sonarsource.com>
Mon, 16 Sep 2019 15:26:05 +0000 (17:26 +0200)
committerSonarTech <sonartech@sonarsource.com>
Tue, 24 Sep 2019 18:21:17 +0000 (20:21 +0200)
server/sonar-docs/src/EmbedDocsSuggestions.json
server/sonar-web/src/main/js/apps/projectBaseline/__tests__/ProjectBaselineSelector-test.tsx
server/sonar-web/src/main/js/apps/projectBaseline/__tests__/__snapshots__/App-test.tsx.snap
server/sonar-web/src/main/js/apps/projectBaseline/__tests__/__snapshots__/ProjectBaselineSelector-test.tsx.snap
server/sonar-web/src/main/js/apps/projectBaseline/components/App.tsx
server/sonar-web/src/main/js/apps/projectBaseline/components/ProjectBaselineSelector.tsx

index 4d3822a92926b3b0cd64c24beb5a2cf6430eae4c..9260268131c17072ddd27c541aaf46f7f8fb1263 100644 (file)
     }
   ],
   "project_activity": [],
+  "project_baseline": [
+    {
+      "link": "/documentation/project-administration/new-code-period/",
+      "text": "New Code Period"
+    }
+  ],
   "project_quality_gate": [
     {
       "link": "/documentation/user-guide/fixing-the-water-leak/",
index 68b96d50a0e8b77c6b5c87b283ce7a29e2daf6a8..ddaf4522f07aa04be2b52e9faa2fb7f8237edfaa 100644 (file)
@@ -110,6 +110,7 @@ function shallowRender(props: Partial<ProjectBaselineSelectorProps> = {}) {
       component=""
       days="12"
       generalSetting={{}}
+      onCancel={jest.fn()}
       onSelectAnalysis={jest.fn()}
       onSelectDays={jest.fn()}
       onSelectSetting={jest.fn()}
index 3cd10c0762c4947f2db72936c349a545e1d32077..d23ae1223a050b786e6aa9b18e6d576ff11115f4 100644 (file)
@@ -1,55 +1,60 @@
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
 exports[`should render correctly 1`] = `
-<div
-  className="page page-limited"
->
-  <header
-    className="page-header"
+<Fragment>
+  <Suggestions
+    suggestions="project_baseline"
+  />
+  <div
+    className="page page-limited"
   >
-    <h1
-      className="page-title"
-    >
-      project_baseline.page
-    </h1>
-    <p
-      className="page-description"
+    <header
+      className="page-header"
     >
-      <FormattedMessage
-        defaultMessage="project_baseline.page.description"
-        id="project_baseline.page.description"
-        values={
-          Object {
-            "link": <Link
-              onlyActiveOnIndex={false}
-              style={Object {}}
-              to="/documentation/user-guide/fixing-the-water-leak/"
-            >
-              project_baseline.page.description.link
-            </Link>,
+      <h1
+        className="page-title"
+      >
+        project_baseline.page
+      </h1>
+      <p
+        className="page-description"
+      >
+        <FormattedMessage
+          defaultMessage="project_baseline.page.description"
+          id="project_baseline.page.description"
+          values={
+            Object {
+              "link": <Link
+                onlyActiveOnIndex={false}
+                style={Object {}}
+                to="/documentation/project-administration/new-code-period/"
+              >
+                project_baseline.page.description.link
+              </Link>,
+            }
           }
-        }
-      />
-      <br />
-      <FormattedMessage
-        defaultMessage="project_baseline.page.description2"
-        id="project_baseline.page.description2"
-        values={
-          Object {
-            "link": <Link
-              onlyActiveOnIndex={false}
-              style={Object {}}
-              to="/admin/settings?category=new_code_period"
-            >
-              project_baseline.page.description2.link
-            </Link>,
+        />
+        <br />
+        <FormattedMessage
+          defaultMessage="project_baseline.page.description2"
+          id="project_baseline.page.description2"
+          values={
+            Object {
+              "link": <Link
+                onlyActiveOnIndex={false}
+                style={Object {}}
+                to="/admin/settings?category=new_code_period"
+              >
+                project_baseline.page.description2.link
+              </Link>,
+            }
           }
-        }
-      />
-    </p>
-  </header>
-  <DeferredSpinner
-    timeout={100}
-  />
-</div>
+        />
+      </p>
+    </header>
+    <DeferredSpinner
+      timeout={100}
+    />
+  </div>
+</Fragment>
 `;
index 215bbdd39652df464d015ee6d0407c967fa494a1..67c95df1550d969a1ad6bab4363d06552173a275 100644 (file)
@@ -80,6 +80,12 @@ exports[`should render correctly 1`] = `
     >
       save
     </SubmitButton>
+    <ResetButtonLink
+      className="spacer-left"
+      onClick={[MockFunction]}
+    >
+      cancel
+    </ResetButtonLink>
   </div>
 </form>
 `;
@@ -169,6 +175,12 @@ exports[`should render correctly 2`] = `
     >
       save
     </SubmitButton>
+    <ResetButtonLink
+      className="spacer-left"
+      onClick={[MockFunction]}
+    >
+      cancel
+    </ResetButtonLink>
   </div>
 </form>
 `;
@@ -258,6 +270,12 @@ exports[`should render correctly 3`] = `
     >
       save
     </SubmitButton>
+    <ResetButtonLink
+      className="spacer-left"
+      onClick={[MockFunction]}
+    >
+      cancel
+    </ResetButtonLink>
   </div>
 </form>
 `;
index 1c6ab579617473eeb8a12702a9d45d9fd78c2a3f..f13013635a7c2edc745bc6e4fd130b2dabb5ab89 100644 (file)
@@ -23,6 +23,7 @@ import { Link } from 'react-router';
 import DeferredSpinner from 'sonar-ui-common/components/ui/DeferredSpinner';
 import { translate } from 'sonar-ui-common/helpers/l10n';
 import { getNewCodePeriod, resetNewCodePeriod, setNewCodePeriod } from '../../../api/newCodePeriod';
+import Suggestions from '../../../app/components/embed-docs-modal/Suggestions';
 import '../styles.css';
 import { getSettingValue } from '../utils';
 import BranchList from './BranchList';
@@ -139,6 +140,12 @@ export default class App extends React.PureComponent<Props, State> {
 
   handleSelectDays = (days: string) => this.setState({ days });
 
+  handleCancel = () =>
+    this.setState(
+      ({ generalSetting = DEFAULT_GENERAL_SETTING, currentSetting, currentSettingValue }) =>
+        this.getUpdatedState({ generalSetting, currentSetting, currentSettingValue })
+    );
+
   handleSelectSetting = (selected?: T.NewCodePeriodSettingType) => this.setState({ selected });
 
   handleToggleSpecificSetting = (overrideGeneralSetting: boolean) =>
@@ -188,7 +195,7 @@ export default class App extends React.PureComponent<Props, State> {
             id="project_baseline.page.description"
             values={{
               link: (
-                <Link to="/documentation/user-guide/fixing-the-water-leak/">
+                <Link to="/documentation/project-administration/new-code-period/">
                   {translate('project_baseline.page.description.link')}
                 </Link>
               )
@@ -228,54 +235,58 @@ export default class App extends React.PureComponent<Props, State> {
     } = this.state;
 
     return (
-      <div className="page page-limited">
-        {this.renderHeader()}
-        {loading ? (
-          <DeferredSpinner />
-        ) : (
-          <div className="panel-white project-baseline">
-            {branchesEnabled && <h2>{translate('project_baseline.default_setting')}</h2>}
+      <>
+        <Suggestions suggestions="project_baseline" />
+        <div className="page page-limited">
+          {this.renderHeader()}
+          {loading ? (
+            <DeferredSpinner />
+          ) : (
+            <div className="panel-white project-baseline">
+              {branchesEnabled && <h2>{translate('project_baseline.default_setting')}</h2>}
 
-            {generalSetting && overrideGeneralSetting !== undefined && (
-              <ProjectBaselineSelector
-                analysis={analysis}
-                branchesEnabled={branchesEnabled}
-                component={component.key}
-                currentSetting={currentSetting}
-                currentSettingValue={currentSettingValue}
-                days={days}
-                generalSetting={generalSetting}
-                onSelectAnalysis={this.handleSelectAnalysis}
-                onSelectDays={this.handleSelectDays}
-                onSelectSetting={this.handleSelectSetting}
-                onSubmit={this.handleSubmit}
-                onToggleSpecificSetting={this.handleToggleSpecificSetting}
-                overrideGeneralSetting={overrideGeneralSetting}
-                saving={saving}
-                selected={selected}
-              />
-            )}
-            {generalSetting && branchesEnabled && (
-              <div className="huge-spacer-top branch-baseline-selector">
-                <hr />
-                <h2>{translate('project_baseline.configure_branches')}</h2>
-                <BranchList
-                  branchLikes={branchLikes}
-                  component={component}
-                  inheritedSetting={
-                    currentSetting
-                      ? {
-                          type: currentSetting,
-                          value: currentSettingValue
-                        }
-                      : generalSetting
-                  }
+              {generalSetting && overrideGeneralSetting !== undefined && (
+                <ProjectBaselineSelector
+                  analysis={analysis}
+                  branchesEnabled={branchesEnabled}
+                  component={component.key}
+                  currentSetting={currentSetting}
+                  currentSettingValue={currentSettingValue}
+                  days={days}
+                  generalSetting={generalSetting}
+                  onCancel={this.handleCancel}
+                  onSelectAnalysis={this.handleSelectAnalysis}
+                  onSelectDays={this.handleSelectDays}
+                  onSelectSetting={this.handleSelectSetting}
+                  onSubmit={this.handleSubmit}
+                  onToggleSpecificSetting={this.handleToggleSpecificSetting}
+                  overrideGeneralSetting={overrideGeneralSetting}
+                  saving={saving}
+                  selected={selected}
                 />
-              </div>
-            )}
-          </div>
-        )}
-      </div>
+              )}
+              {generalSetting && branchesEnabled && (
+                <div className="huge-spacer-top branch-baseline-selector">
+                  <hr />
+                  <h2>{translate('project_baseline.configure_branches')}</h2>
+                  <BranchList
+                    branchLikes={branchLikes}
+                    component={component}
+                    inheritedSetting={
+                      currentSetting
+                        ? {
+                            type: currentSetting,
+                            value: currentSettingValue
+                          }
+                        : generalSetting
+                    }
+                  />
+                </div>
+              )}
+            </div>
+          )}
+        </div>
+      </>
     );
   }
 }
index e587ae19b2571db8b0652072ce6ab3529719fd02..a632c0471051e5f09bbf53b1675ef361729d2a9f 100644 (file)
@@ -19,7 +19,7 @@
  */
 import * as classNames from 'classnames';
 import * as React from 'react';
-import { SubmitButton } from 'sonar-ui-common/components/controls/buttons';
+import { ResetButtonLink, SubmitButton } from 'sonar-ui-common/components/controls/buttons';
 import Radio from 'sonar-ui-common/components/controls/Radio';
 import DeferredSpinner from 'sonar-ui-common/components/ui/DeferredSpinner';
 import { translate, translateWithParameters } from 'sonar-ui-common/helpers/l10n';
@@ -37,6 +37,7 @@ export interface ProjectBaselineSelectorProps {
   currentSettingValue?: string;
   days: string;
   generalSetting: T.NewCodePeriod;
+  onCancel: () => void;
   onSelectAnalysis: (analysis: T.ParsedAnalysis) => void;
   onSelectDays: (value: string) => void;
   onSelectSetting: (value?: T.NewCodePeriodSettingType) => void;
@@ -149,6 +150,9 @@ export default function ProjectBaselineSelector(props: ProjectBaselineSelectorPr
         <p className="spacer-bottom">{translate('baseline.next_analysis_notice')}</p>
         <DeferredSpinner className="spacer-right" loading={saving} />
         <SubmitButton disabled={saving || !isValid || !isChanged}>{translate('save')}</SubmitButton>
+        <ResetButtonLink className="spacer-left" onClick={props.onCancel}>
+          {translate('cancel')}
+        </ResetButtonLink>
       </div>
     </form>
   );