]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-10203 Scroll back to issue box when clicking on the Issue message (#25)
authorPascal Mugnier <pascal.mugnier@sonarsource.com>
Wed, 21 Mar 2018 15:32:16 +0000 (16:32 +0100)
committerSonarTech <sonartech@sonarsource.com>
Thu, 22 Mar 2018 11:37:51 +0000 (12:37 +0100)
server/sonar-web/src/main/js/apps/issues/components/App.tsx
server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssueBox.tsx
server/sonar-web/src/main/js/apps/issues/styles.css

index 84be3d5fc4712b1e6015a2045f1b70e346421c10..8eb5c82a6a949b40509ddcfa8cb41802232b9633 100644 (file)
@@ -346,7 +346,11 @@ export default class App extends React.PureComponent<Props, State> {
       }
     };
     if (this.state.openIssue) {
-      this.context.router.replace(path);
+      if (path.query.open && path.query.open === this.state.openIssue.key) {
+        this.scrollToSelectedIssue();
+      } else {
+        this.context.router.replace(path);
+      }
     } else {
       this.context.router.push(path);
     }
index 7fa6df1bad863576246608976b10ed66db66dbee..65f14bb1b249391fb8c19530647ec471eaedbdd9 100644 (file)
@@ -79,16 +79,23 @@ export default class ConciseIssueBox extends React.PureComponent<Props> {
   render() {
     const { issue, selected } = this.props;
 
-    const clickAttributes = selected
+    const clickAttributesMain = selected
       ? {}
       : { onClick: this.handleClick, role: 'listitem', tabIndex: 0 };
 
+    const clickAttributesTitle = selected
+      ? { onClick: this.handleClick, role: 'listitem', tabIndex: 0 }
+      : {};
+
     return (
       <div
         className={classNames('concise-issue-box', 'clearfix', { selected })}
         ref={node => (this.rootElement = node)}
-        {...clickAttributes}>
-        <div className="concise-issue-box-message" ref={node => (this.messageElement = node)}>
+        {...clickAttributesMain}>
+        <div
+          className="concise-issue-box-message"
+          {...clickAttributesTitle}
+          ref={node => (this.messageElement = node)}>
           {issue.message}
         </div>
         <div className="concise-issue-box-attributes">
index c4ceec2a97d417ca0380b15a44feccc01531c439..9a285c2c33eb2fdc5b7f32faf91854ac2bead2d2 100644 (file)
   font-weight: bold;
 }
 
+.concise-issue-box-message:focus {
+  outline: none;
+}
+
+.concise-issue-box.selected .concise-issue-box-message {
+  cursor: pointer;
+}
+
 .concise-issue-box-attributes {
   margin-top: 8px;
   line-height: 16px;