]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-12872 Rename Markdown Syntax to Formatting Syntax
authorWouter Admiraal <wouter.admiraal@sonarsource.com>
Mon, 7 Dec 2020 13:34:16 +0000 (14:34 +0100)
committersonartech <sonartech@sonarsource.com>
Thu, 17 Dec 2020 20:08:00 +0000 (20:08 +0000)
26 files changed:
server/sonar-web/src/main/js/app/components/FormattingHelp.tsx [new file with mode: 0644]
server/sonar-web/src/main/js/app/components/MarkdownHelp.tsx [deleted file]
server/sonar-web/src/main/js/app/components/__tests__/FormattingHelp-test.tsx [new file with mode: 0644]
server/sonar-web/src/main/js/app/components/__tests__/__snapshots__/FormattingHelp-test.tsx.snap [new file with mode: 0644]
server/sonar-web/src/main/js/app/index.ts
server/sonar-web/src/main/js/app/utils/startReactApp.tsx
server/sonar-web/src/main/js/apps/coding-rules/components/CustomRuleFormModal.tsx
server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsDescription.tsx
server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/__snapshots__/CustomRuleFormModal-test.tsx.snap
server/sonar-web/src/main/js/apps/issues/components/BulkChangeModal.tsx
server/sonar-web/src/main/js/apps/security-hotspots/components/HotspotCommentPopup.tsx
server/sonar-web/src/main/js/apps/security-hotspots/components/HotspotReviewHistoryAndComments.tsx
server/sonar-web/src/main/js/apps/security-hotspots/components/__tests__/__snapshots__/HotspotCommentPopup-test.tsx.snap
server/sonar-web/src/main/js/apps/security-hotspots/components/__tests__/__snapshots__/HotspotReviewHistoryAndComments-test.tsx.snap
server/sonar-web/src/main/js/apps/security-hotspots/components/status/StatusSelectionRenderer.tsx
server/sonar-web/src/main/js/apps/security-hotspots/components/status/__tests__/__snapshots__/StatusSelectionRenderer-test.tsx.snap
server/sonar-web/src/main/js/components/common/FormattingTips.tsx [new file with mode: 0644]
server/sonar-web/src/main/js/components/common/MarkdownTips.tsx [deleted file]
server/sonar-web/src/main/js/components/common/__tests__/FormattingTips-test.tsx [new file with mode: 0644]
server/sonar-web/src/main/js/components/common/__tests__/MarkdownTips-test.tsx [deleted file]
server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/FormattingTips-test.tsx.snap [new file with mode: 0644]
server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/MarkdownTips-test.tsx.snap [deleted file]
server/sonar-web/src/main/js/components/issue/popups/CommentPopup.tsx
server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/CommentPopup-test.tsx.snap
server/sonar-web/src/main/js/helpers/urls.ts
sonar-core/src/main/resources/org/sonar/l10n/core.properties

diff --git a/server/sonar-web/src/main/js/app/components/FormattingHelp.tsx b/server/sonar-web/src/main/js/app/components/FormattingHelp.tsx
new file mode 100644 (file)
index 0000000..a6e29c0
--- /dev/null
@@ -0,0 +1,145 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2020 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+import * as React from 'react';
+
+export default function FormattingHelp() {
+  return (
+    <div className="page page-limited">
+      <h2 className="spacer-bottom">Formatting Syntax</h2>
+      <table className="width-100 data zebra">
+        <thead>
+          <tr>
+            <th>Write:</th>
+            <th>To display:</th>
+          </tr>
+        </thead>
+        <tbody>
+          <tr>
+            <td>*this text is bold*</td>
+            <td className="markdown">
+              <strong>this text is bold</strong>
+            </td>
+          </tr>
+          <tr>
+            <td>https://sonarqube.org</td>
+            <td className="markdown">
+              <a href="https://sonarqube.org">https://sonarqube.org</a>
+            </td>
+          </tr>
+          <tr>
+            <td className="text-top">[SonarQube™ Home Page](https://www.sonarqube.org)</td>
+            <td className="markdown text-top">
+              <a href="https://www.sonarqube.org">SonarQube™ Home Page</a>
+            </td>
+          </tr>
+          <tr>
+            <td className="text-top">
+              * first item
+              <br />* second item
+            </td>
+            <td className="markdown">
+              <ul>
+                <li>first item</li>
+                <li>second item</li>
+              </ul>
+            </td>
+          </tr>
+          <tr>
+            <td className="text-top">
+              1. first item
+              <br />
+              1. second item
+            </td>
+            <td className="markdown text-top">
+              <ol>
+                <li>first item</li>
+                <li>second item</li>
+              </ol>
+            </td>
+          </tr>
+          <tr>
+            <td className="text-top">
+              = Heading Level 1<br />
+              == Heading Level 2<br />
+              === Heading Level 3<br />
+              ==== Heading Level 4<br />
+              ===== Heading Level 5<br />
+              ====== Heading Level 6<br />
+            </td>
+            <td className="markdown text-top">
+              <h1>Heading Level 1</h1>
+              <h2>Heading Level 2</h2>
+              <h3>Heading Level 3</h3>
+              <h4>Heading Level 4</h4>
+              <h5>Heading Level 5</h5>
+              <h6>Heading Level 6</h6>
+            </td>
+          </tr>
+          <tr>
+            <td className="text-top">``Lists#newArrayList()``</td>
+            <td className="markdown text-top">
+              <code>Lists#newArrayList()</code>
+            </td>
+          </tr>
+          <tr>
+            <td className="text-top">
+              ``
+              <br />
+              {'// code on multiple lines'}
+              <br />
+              {'public void foo() {'}
+              <br />
+              &nbsp;&nbsp;
+              {'// do some logic here'}
+              <br />
+              {'}'}
+              <br />
+              ``
+            </td>
+            <td className="markdown text-top">
+              <pre>
+                {'// code on multiple lines\npublic void foo() {\n  // do some logic here\n}'}
+              </pre>
+            </td>
+          </tr>
+          <tr>
+            <td className="text-top">
+              Standard text
+              <br />
+              &gt; Blockquoted text
+              <br />
+              &gt; that spans multiple lines
+              <br />
+            </td>
+            <td className="markdown text-top">
+              <p>Standard text</p>
+              <blockquote>
+                Blockquoted text
+                <br />
+                that spans multiple lines
+                <br />
+              </blockquote>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+  );
+}
diff --git a/server/sonar-web/src/main/js/app/components/MarkdownHelp.tsx b/server/sonar-web/src/main/js/app/components/MarkdownHelp.tsx
deleted file mode 100644 (file)
index 278d742..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-import * as React from 'react';
-
-export default function MarkdownHelp() {
-  return (
-    <div className="page page-limited">
-      <h2 className="spacer-bottom">Markdown Syntax</h2>
-      <table className="width-100 data zebra">
-        <thead>
-          <tr>
-            <th>Write:</th>
-            <th>To display:</th>
-          </tr>
-        </thead>
-        <tbody>
-          <tr>
-            <td>*this text is bold*</td>
-            <td className="markdown">
-              <strong>this text is bold</strong>
-            </td>
-          </tr>
-          <tr>
-            <td>http://sonarqube.org</td>
-            <td className="markdown">
-              <a href="http://sonarqube.org">http://sonarqube.org</a>
-            </td>
-          </tr>
-          <tr>
-            <td className="text-top">[SonarQube™ Home Page](http://www.sonarqube.org)</td>
-            <td className="markdown text-top">
-              <a href="http://www.sonarqube.org" rel="noopener noreferrer" target="_blank">
-                SonarQube™ Home Page
-              </a>
-            </td>
-          </tr>
-          <tr>
-            <td className="text-top">
-              * first item
-              <br />* second item
-            </td>
-            <td className="markdown">
-              <ul>
-                <li>first item</li>
-                <li>second item</li>
-              </ul>
-            </td>
-          </tr>
-          <tr>
-            <td className="text-top">
-              1. first item
-              <br />
-              1. second item
-            </td>
-            <td className="markdown text-top">
-              <ol>
-                <li>first item</li>
-                <li>second item</li>
-              </ol>
-            </td>
-          </tr>
-          <tr>
-            <td className="text-top">
-              = Heading Level 1<br />
-              == Heading Level 2<br />
-              === Heading Level 3<br />
-              ==== Heading Level 4<br />
-              ===== Heading Level 5<br />
-              ====== Heading Level 6<br />
-            </td>
-            <td className="markdown text-top">
-              <h1>Heading Level 1</h1>
-              <h2>Heading Level 2</h2>
-              <h3>Heading Level 3</h3>
-              <h4>Heading Level 4</h4>
-              <h5>Heading Level 5</h5>
-              <h6>Heading Level 6</h6>
-            </td>
-          </tr>
-          <tr>
-            <td className="text-top">``Lists#newArrayList()``</td>
-            <td className="markdown text-top">
-              <code>Lists#newArrayList()</code>
-            </td>
-          </tr>
-          <tr>
-            <td className="text-top">
-              ``
-              <br />
-              {'// code on multiple lines'}
-              <br />
-              {'public void foo() {'}
-              <br />
-              &nbsp;&nbsp;
-              {'// do some logic here'}
-              <br />
-              {'}'}
-              <br />
-              ``
-            </td>
-            <td className="markdown text-top">
-              <pre>
-                {'// code on multiple lines\npublic void foo() {\n  // do some logic here\n}'}
-              </pre>
-            </td>
-          </tr>
-          <tr>
-            <td className="text-top">
-              Standard text
-              <br />
-              &gt; Blockquoted text
-              <br />
-              &gt; that spans multiple lines
-              <br />
-            </td>
-            <td className="markdown text-top">
-              <p>Standard text</p>
-              <blockquote>
-                Blockquoted text
-                <br />
-                that spans multiple lines
-                <br />
-              </blockquote>
-            </td>
-          </tr>
-        </tbody>
-      </table>
-    </div>
-  );
-}
diff --git a/server/sonar-web/src/main/js/app/components/__tests__/FormattingHelp-test.tsx b/server/sonar-web/src/main/js/app/components/__tests__/FormattingHelp-test.tsx
new file mode 100644 (file)
index 0000000..e5cd672
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2020 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+import { shallow } from 'enzyme';
+import * as React from 'react';
+import FormattingHelp from '../FormattingHelp';
+
+it('should render correctly', () => {
+  expect(shallow(<FormattingHelp />)).toMatchSnapshot();
+});
diff --git a/server/sonar-web/src/main/js/app/components/__tests__/__snapshots__/FormattingHelp-test.tsx.snap b/server/sonar-web/src/main/js/app/components/__tests__/__snapshots__/FormattingHelp-test.tsx.snap
new file mode 100644 (file)
index 0000000..031748e
--- /dev/null
@@ -0,0 +1,220 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`should render correctly 1`] = `
+<div
+  className="page page-limited"
+>
+  <h2
+    className="spacer-bottom"
+  >
+    Formatting Syntax
+  </h2>
+  <table
+    className="width-100 data zebra"
+  >
+    <thead>
+      <tr>
+        <th>
+          Write:
+        </th>
+        <th>
+          To display:
+        </th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td>
+          *this text is bold*
+        </td>
+        <td
+          className="markdown"
+        >
+          <strong>
+            this text is bold
+          </strong>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          https://sonarqube.org
+        </td>
+        <td
+          className="markdown"
+        >
+          <a
+            href="https://sonarqube.org"
+          >
+            https://sonarqube.org
+          </a>
+        </td>
+      </tr>
+      <tr>
+        <td
+          className="text-top"
+        >
+          [SonarQube™ Home Page](https://www.sonarqube.org)
+        </td>
+        <td
+          className="markdown text-top"
+        >
+          <a
+            href="https://www.sonarqube.org"
+          >
+            SonarQube™ Home Page
+          </a>
+        </td>
+      </tr>
+      <tr>
+        <td
+          className="text-top"
+        >
+          * first item
+          <br />
+          * second item
+        </td>
+        <td
+          className="markdown"
+        >
+          <ul>
+            <li>
+              first item
+            </li>
+            <li>
+              second item
+            </li>
+          </ul>
+        </td>
+      </tr>
+      <tr>
+        <td
+          className="text-top"
+        >
+          1. first item
+          <br />
+          1. second item
+        </td>
+        <td
+          className="markdown text-top"
+        >
+          <ol>
+            <li>
+              first item
+            </li>
+            <li>
+              second item
+            </li>
+          </ol>
+        </td>
+      </tr>
+      <tr>
+        <td
+          className="text-top"
+        >
+          = Heading Level 1
+          <br />
+          == Heading Level 2
+          <br />
+          === Heading Level 3
+          <br />
+          ==== Heading Level 4
+          <br />
+          ===== Heading Level 5
+          <br />
+          ====== Heading Level 6
+          <br />
+        </td>
+        <td
+          className="markdown text-top"
+        >
+          <h1>
+            Heading Level 1
+          </h1>
+          <h2>
+            Heading Level 2
+          </h2>
+          <h3>
+            Heading Level 3
+          </h3>
+          <h4>
+            Heading Level 4
+          </h4>
+          <h5>
+            Heading Level 5
+          </h5>
+          <h6>
+            Heading Level 6
+          </h6>
+        </td>
+      </tr>
+      <tr>
+        <td
+          className="text-top"
+        >
+          \`\`Lists#newArrayList()\`\`
+        </td>
+        <td
+          className="markdown text-top"
+        >
+          <code>
+            Lists#newArrayList()
+          </code>
+        </td>
+      </tr>
+      <tr>
+        <td
+          className="text-top"
+        >
+          \`\`
+          <br />
+          // code on multiple lines
+          <br />
+          public void foo() {
+          <br />
+            
+          // do some logic here
+          <br />
+          }
+          <br />
+          \`\`
+        </td>
+        <td
+          className="markdown text-top"
+        >
+          <pre>
+            // code on multiple lines
+public void foo() {
+  // do some logic here
+}
+          </pre>
+        </td>
+      </tr>
+      <tr>
+        <td
+          className="text-top"
+        >
+          Standard text
+          <br />
+          &gt; Blockquoted text
+          <br />
+          &gt; that spans multiple lines
+          <br />
+        </td>
+        <td
+          className="markdown text-top"
+        >
+          <p>
+            Standard text
+          </p>
+          <blockquote>
+            Blockquoted text
+            <br />
+            that spans multiple lines
+            <br />
+          </blockquote>
+        </td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+`;
index 715df897aa9abe3545111949eb6cdb8ac35af94e..f58c8112b976eb560711d11555b9cae61858d31d 100644 (file)
@@ -112,6 +112,6 @@ function isMainApp() {
     !pathname.startsWith(`${getBaseUrl()}/sessions`) &&
     !pathname.startsWith(`${getBaseUrl()}/maintenance`) &&
     !pathname.startsWith(`${getBaseUrl()}/setup`) &&
-    !pathname.startsWith(`${getBaseUrl()}/markdown/help`)
+    !pathname.startsWith(`${getBaseUrl()}/formatting/help`)
   );
 }
index d48e43e2a9f3ba0a4f5836bf0bbaeb4e34c34e93..b667bf0d37ee011e03b5a0b7dfe9847899ba8d46 100644 (file)
@@ -142,6 +142,7 @@ function renderRedirects() {
       <Redirect from="/view" to="/portfolio" />
       <Redirect from="/users" to="/admin/users" />
       <Redirect from="/onboarding" to="/projects/create" />
+      <Redirect from="markdown/help" to="formatting/help" />
     </>
   );
 }
@@ -263,8 +264,8 @@ export default function startReactApp(
               {renderRedirects()}
 
               <Route
-                path="markdown/help"
-                component={lazyLoadComponent(() => import('../components/MarkdownHelp'))}
+                path="formatting/help"
+                component={lazyLoadComponent(() => import('../components/FormattingHelp'))}
               />
 
               <Route component={lazyLoadComponent(() => import('../components/SimpleContainer'))}>
index d0d03f69fca42862887a4db0293514459c3fbf30..d66c9ba70cc316c0eb1571cfa3b04b34588fe057 100644 (file)
@@ -27,7 +27,7 @@ import { csvEscape } from 'sonar-ui-common/helpers/csv';
 import { translate } from 'sonar-ui-common/helpers/l10n';
 import { latinize } from 'sonar-ui-common/helpers/strings';
 import { createRule, updateRule } from '../../../api/rules';
-import MarkdownTips from '../../../components/common/MarkdownTips';
+import FormattingTips from '../../../components/common/FormattingTips';
 import SeverityHelper from '../../../components/shared/SeverityHelper';
 import TypeHelper from '../../../components/shared/TypeHelper';
 import { RULE_STATUSES, RULE_TYPES, SEVERITIES } from '../../../helpers/constants';
@@ -204,7 +204,7 @@ export default class CustomRuleFormModal extends React.PureComponent<Props, Stat
         rows={5}
         value={this.state.description}
       />
-      <MarkdownTips className="modal-field-descriptor text-right" />
+      <FormattingTips className="modal-field-descriptor text-right" />
     </div>
   );
 
index be9fdf20515457f873c66d1d99cdeb6921f77c78..54195c680a5ae9104598c58caeb18a40f451d798 100644 (file)
@@ -22,7 +22,7 @@ import * as React from 'react';
 import { Button, ResetButtonLink } from 'sonar-ui-common/components/controls/buttons';
 import { translate, translateWithParameters } from 'sonar-ui-common/helpers/l10n';
 import { updateRule } from '../../../api/rules';
-import MarkdownTips from '../../../components/common/MarkdownTips';
+import FormattingTips from '../../../components/common/FormattingTips';
 import RemoveExtendedDescriptionModal from './RemoveExtendedDescriptionModal';
 
 interface Props {
@@ -176,7 +176,7 @@ export default class RuleDetailsDescription extends React.PureComponent<Props, S
               {this.state.submitting && <i className="spinner spacer-left" />}
             </td>
             <td className="text-right">
-              <MarkdownTips />
+              <FormattingTips />
             </td>
           </tr>
         </tbody>
index f244d57d3ddcc771d5297cd3e641ec09c91c3786..e51c719d869d8adfb6fe5fb568ff830371fdb213 100644 (file)
@@ -211,7 +211,7 @@ exports[`should handle re-activation 1`] = `
           rows={5}
           value=""
         />
-        <MarkdownTips
+        <FormattingTips
           className="modal-field-descriptor text-right"
         />
       </div>
@@ -442,7 +442,7 @@ exports[`should render correctly 1`] = `
           rows={5}
           value=""
         />
-        <MarkdownTips
+        <FormattingTips
           className="modal-field-descriptor text-right"
         />
       </div>
index cf8413ca5a91b0f0704dc1d8cfe5ad625288ece4..a5c94c651a6dfa895190336a71616ec7b59dbd88 100644 (file)
@@ -32,7 +32,7 @@ import { Alert } from 'sonar-ui-common/components/ui/Alert';
 import { translate, translateWithParameters } from 'sonar-ui-common/helpers/l10n';
 import { bulkChangeIssues, searchIssueTags } from '../../../api/issues';
 import throwGlobalError from '../../../app/utils/throwGlobalError';
-import MarkdownTips from '../../../components/common/MarkdownTips';
+import FormattingTips from '../../../components/common/FormattingTips';
 import SeverityHelper from '../../../components/shared/SeverityHelper';
 import Avatar from '../../../components/ui/Avatar';
 import { isLoggedIn, isUserActive } from '../../../helpers/users';
@@ -476,7 +476,7 @@ export default class BulkChangeModal extends React.PureComponent<Props, State> {
           rows={4}
           value={this.state.comment || ''}
         />
-        <MarkdownTips className="modal-field-descriptor text-right" />
+        <FormattingTips className="modal-field-descriptor text-right" />
       </div>
     );
   };
index bcde5657fb557c696fefa8a31872d0b3a683b196..18c2e74f0fc401580537f835f545f79ab5543bae 100644 (file)
@@ -20,7 +20,7 @@
 import * as React from 'react';
 import { Button, ResetButtonLink } from 'sonar-ui-common/components/controls/buttons';
 import { translate } from 'sonar-ui-common/helpers/l10n';
-import MarkdownTips from '../../../components/common/MarkdownTips';
+import FormattingTips from '../../../components/common/FormattingTips';
 
 export interface HotspotCommentPopupProps {
   markdownComment: string;
@@ -43,7 +43,7 @@ export default function HotspotCommentPopup(props: HotspotCommentPopupProps) {
       </div>
       <div className="spacer-top display-flex-space-between">
         <div className="issue-comment-form-tips">
-          <MarkdownTips />
+          <FormattingTips />
         </div>
         <div className="">
           <Button
index 20533365dd97bfbc24eb39dd24074531903a644f..a3bd862abd7233a9e2ca05c4b00908e329f8992d 100644 (file)
@@ -26,7 +26,7 @@ import {
   deleteSecurityHotspotComment,
   editSecurityHotspotComment
 } from '../../../api/security-hotspots';
-import MarkdownTips from '../../../components/common/MarkdownTips';
+import FormattingTips from '../../../components/common/FormattingTips';
 import { isLoggedIn } from '../../../helpers/users';
 import { Hotspot } from '../../../types/security-hotspots';
 import HotspotReviewHistory from './HotspotReviewHistory';
@@ -124,7 +124,7 @@ export default class HotspotReviewHistoryAndComments extends React.PureComponent
                     value={comment}
                   />
                   <div className="display-flex-space-between display-flex-center ">
-                    <MarkdownTips className="huge-spacer-bottom" />
+                    <FormattingTips className="huge-spacer-bottom" />
                     <div>
                       <Button
                         className="huge-spacer-bottom"
index e932efe0719503e77fc33c6be0505b02a2595f7a..208ccf2633e5bfe86ef89a0a3d2baf7f8ebd44d7 100644 (file)
@@ -20,7 +20,7 @@ exports[`should render correclty 1`] = `
     <div
       className="issue-comment-form-tips"
     >
-      <MarkdownTips />
+      <FormattingTips />
     </div>
     <div
       className=""
index a49b712b49c2182c64301353ed899338b09f9478..80d924e02b8401dcf14b3c673b249fe6f66d130b 100644 (file)
@@ -139,7 +139,7 @@ exports[`should render correctly 1`] = `
         <div
           className="display-flex-space-between display-flex-center "
         >
-          <MarkdownTips
+          <FormattingTips
             className="huge-spacer-bottom"
           />
           <div>
index 16487044701a645f7e285ff997fd218763595200..fc07fe3a1e764b14abeaf4701ccd9daa786a803a 100644 (file)
@@ -22,7 +22,7 @@ import * as React from 'react';
 import { SubmitButton } from 'sonar-ui-common/components/controls/buttons';
 import Radio from 'sonar-ui-common/components/controls/Radio';
 import { translate } from 'sonar-ui-common/helpers/l10n';
-import MarkdownTips from '../../../../components/common/MarkdownTips';
+import FormattingTips from '../../../../components/common/FormattingTips';
 import { HotspotStatusOption } from '../../../../types/security-hotspots';
 import StatusDescription from './StatusDescription';
 
@@ -76,7 +76,7 @@ export default function StatusSelectionRenderer(props: StatusSelectionRendererPr
           rows={4}
           value={comment}
         />
-        <MarkdownTips />
+        <FormattingTips />
 
         <div className="big-spacer-top display-flex-justify-end display-flex-center">
           <SubmitButton disabled={submitDisabled || loading} onClick={props.onSubmit}>
index 482dd86bb5430805a98e3bbe2193c86df81ec979..c5a7d5aed2de70dc41f38772b0d6e54c22cf791b 100644 (file)
@@ -53,7 +53,7 @@ exports[`should render correctly 1`] = `
       rows={4}
       value="TEST-COMMENT"
     />
-    <MarkdownTips />
+    <FormattingTips />
     <div
       className="big-spacer-top display-flex-justify-end display-flex-center"
     >
@@ -121,7 +121,7 @@ exports[`should render correctly: loading 1`] = `
       rows={4}
       value="TEST-COMMENT"
     />
-    <MarkdownTips />
+    <FormattingTips />
     <div
       className="big-spacer-top display-flex-justify-end display-flex-center"
     >
diff --git a/server/sonar-web/src/main/js/components/common/FormattingTips.tsx b/server/sonar-web/src/main/js/components/common/FormattingTips.tsx
new file mode 100644 (file)
index 0000000..f01ae64
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2020 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+import * as classNames from 'classnames';
+import * as React from 'react';
+import { translate } from 'sonar-ui-common/helpers/l10n';
+import { getFormattingHelpUrl } from '../../helpers/urls';
+
+interface Props {
+  className?: string;
+}
+
+export default class FormattingTips extends React.PureComponent<Props> {
+  handleClick(evt: React.SyntheticEvent<HTMLAnchorElement>) {
+    evt.preventDefault();
+    window.open(
+      getFormattingHelpUrl(),
+      'Formatting',
+      'height=300,width=600,scrollbars=1,resizable=1'
+    );
+  }
+
+  render() {
+    return (
+      <div className={classNames('markdown-tips', this.props.className)}>
+        <a className="little-spacer-right" href="#" onClick={this.handleClick}>
+          {translate('formatting.helplink')}
+        </a>
+        {':'}
+        <span className="spacer-left">*{translate('bold')}*</span>
+        <span className="spacer-left">
+          ``
+          {translate('code')}
+          ``
+        </span>
+        <span className="spacer-left">* {translate('bulleted_point')}</span>
+      </div>
+    );
+  }
+}
diff --git a/server/sonar-web/src/main/js/components/common/MarkdownTips.tsx b/server/sonar-web/src/main/js/components/common/MarkdownTips.tsx
deleted file mode 100644 (file)
index 52b8e31..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-import * as classNames from 'classnames';
-import * as React from 'react';
-import { translate } from 'sonar-ui-common/helpers/l10n';
-import { getMarkdownHelpUrl } from '../../helpers/urls';
-
-interface Props {
-  className?: string;
-}
-
-export default class MarkdownTips extends React.PureComponent<Props> {
-  handleClick(evt: React.SyntheticEvent<HTMLAnchorElement>) {
-    evt.preventDefault();
-    window.open(getMarkdownHelpUrl(), 'Markdown', 'height=300,width=600,scrollbars=1,resizable=1');
-  }
-
-  render() {
-    return (
-      <div className={classNames('markdown-tips', this.props.className)}>
-        <a className="little-spacer-right" href="#" onClick={this.handleClick}>
-          {translate('markdown.helplink')}
-        </a>
-        {':'}
-        <span className="spacer-left">*{translate('bold')}*</span>
-        <span className="spacer-left">
-          ``
-          {translate('code')}
-          ``
-        </span>
-        <span className="spacer-left">* {translate('bulleted_point')}</span>
-      </div>
-    );
-  }
-}
diff --git a/server/sonar-web/src/main/js/components/common/__tests__/FormattingTips-test.tsx b/server/sonar-web/src/main/js/components/common/__tests__/FormattingTips-test.tsx
new file mode 100644 (file)
index 0000000..3dcca25
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2020 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+import { shallow } from 'enzyme';
+import * as React from 'react';
+import { click } from 'sonar-ui-common/helpers/testUtils';
+import FormattingTips from '../FormattingTips';
+
+const originalOpen = window.open;
+
+beforeAll(() => {
+  Object.defineProperty(window, 'open', {
+    writable: true,
+    value: jest.fn()
+  });
+});
+
+afterAll(() => {
+  Object.defineProperty(window, 'open', {
+    writable: true,
+    value: originalOpen
+  });
+});
+
+it('should render correctly', () => {
+  expect(shallowRender()).toMatchSnapshot();
+});
+
+it('should correctly open a new window', () => {
+  const wrapper = shallowRender();
+  expect(window.open).not.toBeCalled();
+  click(wrapper.find('a'));
+  expect(window.open).toBeCalled();
+});
+
+function shallowRender(props: Partial<FormattingTips['props']> = {}) {
+  return shallow<FormattingTips>(<FormattingTips {...props} />);
+}
diff --git a/server/sonar-web/src/main/js/components/common/__tests__/MarkdownTips-test.tsx b/server/sonar-web/src/main/js/components/common/__tests__/MarkdownTips-test.tsx
deleted file mode 100644 (file)
index a54a1f5..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-import { shallow } from 'enzyme';
-import * as React from 'react';
-import MarkdownTips from '../MarkdownTips';
-
-it('should render the tips', () => {
-  expect(shallow(<MarkdownTips />)).toMatchSnapshot();
-});
diff --git a/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/FormattingTips-test.tsx.snap b/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/FormattingTips-test.tsx.snap
new file mode 100644 (file)
index 0000000..422fb77
--- /dev/null
@@ -0,0 +1,36 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`should render correctly 1`] = `
+<div
+  className="markdown-tips"
+>
+  <a
+    className="little-spacer-right"
+    href="#"
+    onClick={[Function]}
+  >
+    formatting.helplink
+  </a>
+  :
+  <span
+    className="spacer-left"
+  >
+    *
+    bold
+    *
+  </span>
+  <span
+    className="spacer-left"
+  >
+    \`\`
+    code
+    \`\`
+  </span>
+  <span
+    className="spacer-left"
+  >
+    * 
+    bulleted_point
+  </span>
+</div>
+`;
diff --git a/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/MarkdownTips-test.tsx.snap b/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/MarkdownTips-test.tsx.snap
deleted file mode 100644 (file)
index baeceb6..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`should render the tips 1`] = `
-<div
-  className="markdown-tips"
->
-  <a
-    className="little-spacer-right"
-    href="#"
-    onClick={[Function]}
-  >
-    markdown.helplink
-  </a>
-  :
-  <span
-    className="spacer-left"
-  >
-    *
-    bold
-    *
-  </span>
-  <span
-    className="spacer-left"
-  >
-    \`\`
-    code
-    \`\`
-  </span>
-  <span
-    className="spacer-left"
-  >
-    * 
-    bulleted_point
-  </span>
-</div>
-`;
index d81d8217e586c15092b8b6aa24daef14cde5d57e..0a6a9ba2af2038039aaa205335f2c9fe71ac9231 100644 (file)
@@ -22,7 +22,7 @@ import { Button, ResetButtonLink } from 'sonar-ui-common/components/controls/but
 import { DropdownOverlay } from 'sonar-ui-common/components/controls/Dropdown';
 import { PopupPlacement } from 'sonar-ui-common/components/ui/popups';
 import { translate } from 'sonar-ui-common/helpers/l10n';
-import MarkdownTips from '../../common/MarkdownTips';
+import FormattingTips from '../../common/FormattingTips';
 
 interface Props {
   comment?: Pick<T.IssueComment, 'markdown'>;
@@ -98,7 +98,7 @@ export default class CommentPopup extends React.PureComponent<Props, State> {
               </ResetButtonLink>
             </div>
             <div className="issue-comment-form-tips">
-              <MarkdownTips />
+              <FormattingTips />
             </div>
           </div>
         </div>
index d6ad2e1843952e76261532d2227cc5ce452a10d4..9962424c1c3b33cf90ef0bb6ed2653aaa95b0de7 100644 (file)
@@ -40,7 +40,7 @@ exports[`should render the comment popup correctly when changing a comment 1`] =
       <div
         className="issue-comment-form-tips"
       >
-        <MarkdownTips />
+        <FormattingTips />
       </div>
     </div>
   </div>
@@ -87,7 +87,7 @@ exports[`should render the comment popup correctly without existing comment 1`]
       <div
         className="issue-comment-form-tips"
       >
-        <MarkdownTips />
+        <FormattingTips />
       </div>
     </div>
   </div>
index 1e45ca3cf474494801c11eed24c147c08ae11ff9..05864ca8404900fccbeaacf10f2477778a645786 100644 (file)
@@ -239,8 +239,8 @@ export function getRuleUrl(rule: string) {
   return getRulesUrl({ open: rule, rule_key: rule });
 }
 
-export function getMarkdownHelpUrl(): string {
-  return getBaseUrl() + '/markdown/help';
+export function getFormattingHelpUrl(): string {
+  return getBaseUrl() + '/formatting/help';
 }
 
 export function getCodeUrl(
index 3ea97aac1d01e8b67f3051591f35ed9b560be1c3..f7e924fe00ed53f783b71617342214c86c919413 100644 (file)
@@ -2527,7 +2527,7 @@ permission_templates.delete_selected=Delete all selected items
 # HELP
 #
 #------------------------------------------------------------------------------
-markdown.helplink=Markdown Help
+formatting.helplink=Formatting Help
 
 #------------------------------------------------------------------------------
 #