diff options
author | Stas Vilchik <stas.vilchik@sonarsource.com> | 2017-07-17 10:07:30 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-17 10:07:30 +0200 |
commit | d5b076b2fc8988e9a3799ba7775f851e1a12cbb7 (patch) | |
tree | 3c0f98977cc487747efeeeb47974fc13e70eab97 | |
parent | c8797aabc9b4d705f7da59b43717e5c0fe0e80fb (diff) | |
download | sonarqube-d5b076b2fc8988e9a3799ba7775f851e1a12cbb7.tar.gz sonarqube-d5b076b2fc8988e9a3799ba7775f851e1a12cbb7.zip |
upgrade prettier and remove prettier-eslint (#2254)
410 files changed, 3278 insertions, 2178 deletions
diff --git a/server/sonar-web/.eslintrc b/server/sonar-web/.eslintrc index 6b892cf526f..00b255d3206 100644 --- a/server/sonar-web/.eslintrc +++ b/server/sonar-web/.eslintrc @@ -48,7 +48,7 @@ "jsx-quotes": 2, "key-spacing": 2, "keyword-spacing": 2, - "max-len": [2, 100], + // "max-len": [2, 100], "new-parens": 2, "no-lonely-if": 2, "no-multi-spaces": 2, @@ -71,7 +71,7 @@ "prefer-const": 2, "prefer-spread": 2, "quote-props": [2, "as-needed"], - "quotes": [2, "single"], + "quotes": [2, "single", { "avoidEscape": true }], "rest-spread-spacing": 2, "semi": [2, "always"], "semi-spacing": 2, diff --git a/server/sonar-web/package.json b/server/sonar-web/package.json index bf0c0af035b..7405c034c03 100644 --- a/server/sonar-web/package.json +++ b/server/sonar-web/package.json @@ -57,7 +57,7 @@ "css-loader": "0.28.4", "enzyme": "^2.6.0", "enzyme-to-json": "^1.4.5", - "eslint": "^3.12.2", + "eslint": "3.14.1", "eslint-loader": "1.8.0", "eslint-plugin-flowtype": "^2.29.1", "eslint-plugin-import": "^2.2.0", @@ -73,10 +73,7 @@ "less": "2.7.1", "less-loader": "4.0.4", "postcss-loader": "2.0.6", - "prettier": "1.2.2", - "prettier-css": "0.0.7", - "prettier-eslint": "5.1.0", - "prettier-eslint-cli": "3.4.1", + "prettier": "1.5.2", "react-addons-test-utils": "15.4.2", "react-dev-utils": "3.0.0", "react-error-overlay": "1.0.7", @@ -92,8 +89,7 @@ "build": "node scripts/build.js", "test": "node scripts/test.js", "coverage": "npm test -- --coverage", - "format": "prettier-eslint --write \"src/main/js/!(libs)/**/*.js\"", - "format-css": "prettier-css \"src/main/js/**/*.css\"", + "format": "prettier --write --single-quote --jsx-bracket-same-line --print-width 100 'src/main/{js,less}/!(libs)/**/*.{js,css,less}'", "lint": "eslint src/main/js", "typecheck": "flow src/main/js", "validate": "eslint src/main/js && flow check src/main/js && NODE_ENV=test jest" @@ -110,15 +106,8 @@ ], "jest": { "coverageDirectory": "<rootDir>/target/coverage", - "coveragePathIgnorePatterns": [ - "<rootDir>/node_modules", - "<rootDir>/tests" - ], - "moduleFileExtensions": [ - "jsx", - "js", - "json" - ], + "coveragePathIgnorePatterns": ["<rootDir>/node_modules", "<rootDir>/tests"], + "moduleFileExtensions": ["jsx", "js", "json"], "moduleNameMapper": { "^.+\\.(hbs|jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/config/jest/FileStub.js", "^.+\\.css$": "<rootDir>/config/jest/CSSStub.js" @@ -127,9 +116,7 @@ "<rootDir>/config/polyfills.js", "<rootDir>/config/jest/SetupTestEnvironment.js" ], - "snapshotSerializers": [ - "enzyme-to-json/serializer" - ], + "snapshotSerializers": ["enzyme-to-json/serializer"], "testPathIgnorePatterns": [ "<rootDir>/node_modules", "<rootDir>/src/main/webapp", diff --git a/server/sonar-web/src/main/js/api/components.js b/server/sonar-web/src/main/js/api/components.js index 60d33b1f346..8c94bf752f4 100644 --- a/server/sonar-web/src/main/js/api/components.js +++ b/server/sonar-web/src/main/js/api/components.js @@ -47,14 +47,12 @@ export function deleteProject(project: string) { return post(url, data); } -export function createProject( - data: { - branch?: string, - name: string, - project: string, - organization?: string - } -) { +export function createProject(data: { + branch?: string, + name: string, + project: string, + organization?: string +}) { const url = '/api/projects/create'; return postJSON(url, data).catch(throwGlobalError); } diff --git a/server/sonar-web/src/main/js/api/issues.js b/server/sonar-web/src/main/js/api/issues.js index 92e3c94912d..30cb211e96e 100644 --- a/server/sonar-web/src/main/js/api/issues.js +++ b/server/sonar-web/src/main/js/api/issues.js @@ -117,9 +117,10 @@ export function editIssueComment(data: { comment: string, text: string }): Promi return postJSON(url, data); } -export function setIssueAssignee( - data: { issue: string, assignee?: string } -): Promise<IssueResponse> { +export function setIssueAssignee(data: { + issue: string, + assignee?: string +}): Promise<IssueResponse> { const url = '/api/issues/assign'; return postJSON(url, data); } @@ -134,9 +135,10 @@ export function setIssueTags(data: { issue: string, tags: string }): Promise<Iss return postJSON(url, data); } -export function setIssueTransition( - data: { issue: string, transition: string } -): Promise<IssueResponse> { +export function setIssueTransition(data: { + issue: string, + transition: string +}): Promise<IssueResponse> { const url = '/api/issues/do_transition'; return postJSON(url, data); } diff --git a/server/sonar-web/src/main/js/api/organizations.js b/server/sonar-web/src/main/js/api/organizations.js index 7ca0263ba81..8daf98ac96d 100644 --- a/server/sonar-web/src/main/js/api/organizations.js +++ b/server/sonar-web/src/main/js/api/organizations.js @@ -63,9 +63,13 @@ export const updateOrganization = (key: string, changes: {}) => export const deleteOrganization = (key: string) => post('/api/organizations/delete', { key }).catch(throwGlobalError); -export const searchMembers = ( - data: { organization?: string, p?: number, ps?: number, q?: string, selected?: string } -) => getJSON('/api/organizations/search_members', data); +export const searchMembers = (data: { + organization?: string, + p?: number, + ps?: number, + q?: string, + selected?: string +}) => getJSON('/api/organizations/search_members', data); export const addMember = (data: { login: string, organization: string }) => postJSON('/api/organizations/add_member', data).then(r => r.user); diff --git a/server/sonar-web/src/main/js/api/permissions.js b/server/sonar-web/src/main/js/api/permissions.js index f002618224a..9598197dfe7 100644 --- a/server/sonar-web/src/main/js/api/permissions.js +++ b/server/sonar-web/src/main/js/api/permissions.js @@ -130,26 +130,22 @@ export function bulkApplyTemplate(data: Object) { return post(url, data); } -export function grantTemplatePermissionToUser( - data: { - templateId: string, - login: string, - permission: string, - organization?: string - } -) { +export function grantTemplatePermissionToUser(data: { + templateId: string, + login: string, + permission: string, + organization?: string +}) { const url = '/api/permissions/add_user_to_template'; return post(url, data); } -export function revokeTemplatePermissionFromUser( - data: { - templateId: string, - login: string, - permission: string, - organization?: string - } -) { +export function revokeTemplatePermissionFromUser(data: { + templateId: string, + login: string, + permission: string, + organization?: string +}) { const url = '/api/permissions/remove_user_from_template'; return post(url, data); } diff --git a/server/sonar-web/src/main/js/api/user_groups.js b/server/sonar-web/src/main/js/api/user_groups.js index de515f119b0..fdbe521e94f 100644 --- a/server/sonar-web/src/main/js/api/user_groups.js +++ b/server/sonar-web/src/main/js/api/user_groups.js @@ -20,23 +20,33 @@ //@flow import { getJSON, post } from '../helpers/request'; -export function searchUsersGroups( - data: { f?: string, organization?: string, p?: number, ps?: number, q?: string } -) { +export function searchUsersGroups(data: { + f?: string, + organization?: string, + p?: number, + ps?: number, + q?: string +}) { const url = '/api/user_groups/search'; return getJSON(url, data); } -export function addUserToGroup( - data: { id?: string, name?: string, login?: string, organization?: string } -) { +export function addUserToGroup(data: { + id?: string, + name?: string, + login?: string, + organization?: string +}) { const url = '/api/user_groups/add_user'; return post(url, data); } -export function removeUserFromGroup( - data: { id?: string, name?: string, login?: string, organization?: string } -) { +export function removeUserFromGroup(data: { + id?: string, + name?: string, + login?: string, + organization?: string +}) { const url = '/api/user_groups/remove_user'; return post(url, data); } diff --git a/server/sonar-web/src/main/js/app/components/GlobalFooter.js b/server/sonar-web/src/main/js/app/components/GlobalFooter.js index 5cfa781fbd9..a6a0c34dd45 100644 --- a/server/sonar-web/src/main/js/app/components/GlobalFooter.js +++ b/server/sonar-web/src/main/js/app/components/GlobalFooter.js @@ -60,9 +60,13 @@ export default function GlobalFooter({ sonarqubeVersion && translateWithParameters('footer.version_x', sonarqubeVersion)} {!hideLoggedInInfo && sonarqubeVersion && ' - '} - <a href="http://www.gnu.org/licenses/lgpl-3.0.txt">{translate('footer.licence')}</a> + <a href="http://www.gnu.org/licenses/lgpl-3.0.txt"> + {translate('footer.licence')} + </a> {' - '} - <a href="http://www.sonarqube.org">{translate('footer.community')}</a> + <a href="http://www.sonarqube.org"> + {translate('footer.community')} + </a> {' - '} <a href="https://redirect.sonarsource.com/doc/home.html"> {translate('footer.documentation')} @@ -76,9 +80,15 @@ export default function GlobalFooter({ {translate('footer.plugins')} </a> {!hideLoggedInInfo && ' - '} - {!hideLoggedInInfo && <Link to="/web_api">{translate('footer.web_api')}</Link>} + {!hideLoggedInInfo && + <Link to="/web_api"> + {translate('footer.web_api')} + </Link>} {!hideLoggedInInfo && ' - '} - {!hideLoggedInInfo && <Link to="/about">{translate('footer.about')}</Link>} + {!hideLoggedInInfo && + <Link to="/about"> + {translate('footer.about')} + </Link>} </div> </div> ); diff --git a/server/sonar-web/src/main/js/app/components/GlobalFooterBranding.js b/server/sonar-web/src/main/js/app/components/GlobalFooterBranding.js index bfe622734c1..5e7d3719a3c 100644 --- a/server/sonar-web/src/main/js/app/components/GlobalFooterBranding.js +++ b/server/sonar-web/src/main/js/app/components/GlobalFooterBranding.js @@ -23,13 +23,14 @@ import React from 'react'; export default function GlobalFooterBranding() { return ( <div> - This application is based on - {' '} - <a href="http://www.sonarqube.org/" title="SonarQube™">SonarQube™</a> - {' '} - but is <strong>not</strong> an official version provided by - {' '} - <a href="http://www.sonarsource.com" title="SonarSource SA">SonarSource SA</a>. + This application is based on{' '} + <a href="http://www.sonarqube.org/" title="SonarQube™"> + SonarQube™ + </a>{' '} + but is <strong>not</strong> an official version provided by{' '} + <a href="http://www.sonarsource.com" title="SonarSource SA"> + SonarSource SA + </a>. </div> ); } diff --git a/server/sonar-web/src/main/js/app/components/GlobalFooterForSonarQubeDotCom.js b/server/sonar-web/src/main/js/app/components/GlobalFooterForSonarQubeDotCom.js index ab8ec94f97a..f2763723da2 100644 --- a/server/sonar-web/src/main/js/app/components/GlobalFooterForSonarQubeDotCom.js +++ b/server/sonar-web/src/main/js/app/components/GlobalFooterForSonarQubeDotCom.js @@ -26,24 +26,37 @@ export default function GlobalFooterForSonarQubeDotCom() { return ( <div id="footer" className="page-footer page-container"> <div> - © 2008-2017, SonarCloud.io by - {' '} - <a href="http://www.sonarsource.com" title="SonarSource SA">SonarSource SA</a> + © 2008-2017, SonarCloud.io by{' '} + <a href="http://www.sonarsource.com" title="SonarSource SA"> + SonarSource SA + </a> . All rights reserved. </div> <div> - <a href="https://about.sonarcloud.io/news/">{translate('footer.news')}</a> + <a href="https://about.sonarcloud.io/news/"> + {translate('footer.news')} + </a> {' - '} - <a href="https://about.sonarcloud.io/terms.pdf">{translate('footer.terms')}</a> + <a href="https://about.sonarcloud.io/terms.pdf"> + {translate('footer.terms')} + </a> {' - '} - <a href="https://twitter.com/sonarqube">{translate('footer.twitter')}</a> + <a href="https://twitter.com/sonarqube"> + {translate('footer.twitter')} + </a> {' - '} - <a href="https://about.sonarcloud.io/get-started/">{translate('footer.get_started')}</a> + <a href="https://about.sonarcloud.io/get-started/"> + {translate('footer.get_started')} + </a> {' - '} - <a href="https://about.sonarcloud.io/contact/">{translate('footer.help')}</a> + <a href="https://about.sonarcloud.io/contact/"> + {translate('footer.help')} + </a> {' - '} - <Link to="/about">{translate('footer.about')}</Link> + <Link to="/about"> + {translate('footer.about')} + </Link> </div> </div> ); diff --git a/server/sonar-web/src/main/js/app/components/MarkdownHelp.js b/server/sonar-web/src/main/js/app/components/MarkdownHelp.js index e957fe31bdd..a5ac92da031 100644 --- a/server/sonar-web/src/main/js/app/components/MarkdownHelp.js +++ b/server/sonar-web/src/main/js/app/components/MarkdownHelp.js @@ -34,20 +34,26 @@ export default function MarkdownHelp() { <tbody> <tr> <td>*this text is bold*</td> - <td className="markdown"><strong>this text is bold</strong></td> + <td className="markdown"> + <strong>this text is bold</strong> + </td> </tr> <tr> - <td>{'http://sonarqube.org'}</td> + <td> + {'http://sonarqube.org'} + </td> <td className="markdown"> - <a href="http://sonarqube.org">{'http://sonarqube.org'}</a> + <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="text-top">[SonarQube™ Home Page](http://www.sonarqube.org)</td> <td className="markdown text-top"> - <a href="http://www.sonarqube.org" target="_blank">SonarQube™ Home Page</a> + <a href="http://www.sonarqube.org" target="_blank"> + SonarQube™ Home Page + </a> </td> </tr> <tr> @@ -94,15 +100,20 @@ export default function MarkdownHelp() { </tr> <tr> <td className="text-top">``Lists#newArrayList()``</td> - <td className="markdown text-top"><code>Lists#newArrayList()</code></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 /> + {'public void foo() {'} + <br /> + {'// do some logic here'} + <br /> + {'}'} + <br /> `` </td> <td className="markdown text-top"> diff --git a/server/sonar-web/src/main/js/app/components/NotFound.js b/server/sonar-web/src/main/js/app/components/NotFound.js index c3191e6b8ea..b3254b82fbc 100644 --- a/server/sonar-web/src/main/js/app/components/NotFound.js +++ b/server/sonar-web/src/main/js/app/components/NotFound.js @@ -25,10 +25,10 @@ export default function NotFound() { return ( <SimpleContainer> <h2 className="big-spacer-bottom">The page you were looking for does not exist.</h2> - <p className="spacer-bottom"> - You may have mistyped the address or the page may have moved. + <p className="spacer-bottom">You may have mistyped the address or the page may have moved.</p> + <p> + <Link to="/">Go back to the homepage</Link> </p> - <p><Link to="/">Go back to the homepage</Link></p> </SimpleContainer> ); } diff --git a/server/sonar-web/src/main/js/app/components/ProjectContainer.js b/server/sonar-web/src/main/js/app/components/ProjectContainer.js index 472f974fa03..06898e30d8d 100644 --- a/server/sonar-web/src/main/js/app/components/ProjectContainer.js +++ b/server/sonar-web/src/main/js/app/components/ProjectContainer.js @@ -41,7 +41,7 @@ class ProjectContainer extends React.PureComponent { qualifier: string }, fetchProject: string => Promise<*>, - receiveComponents: Array<*> => void + receiveComponents: (Array<*>) => void }; componentDidMount() { diff --git a/server/sonar-web/src/main/js/app/components/extensions/ExtensionNotFound.js b/server/sonar-web/src/main/js/app/components/extensions/ExtensionNotFound.js index a634c3556d2..330b818f931 100644 --- a/server/sonar-web/src/main/js/app/components/extensions/ExtensionNotFound.js +++ b/server/sonar-web/src/main/js/app/components/extensions/ExtensionNotFound.js @@ -44,7 +44,9 @@ export default class ExtensionNotFound extends React.PureComponent { <p className="spacer-bottom"> You may have mistyped the address or the page may have moved. </p> - <p><Link to="/">Go back to the homepage</Link></p> + <p> + <Link to="/">Go back to the homepage</Link> + </p> </div> </div> ); diff --git a/server/sonar-web/src/main/js/app/components/help/GlobalHelp.js b/server/sonar-web/src/main/js/app/components/help/GlobalHelp.js index 6f941b93f4b..ffc57095a47 100644 --- a/server/sonar-web/src/main/js/app/components/help/GlobalHelp.js +++ b/server/sonar-web/src/main/js/app/components/help/GlobalHelp.js @@ -68,7 +68,7 @@ export default class GlobalHelp extends React.PureComponent { } }; - renderMenuItem = (section: string) => ( + renderMenuItem = (section: string) => <li key={section}> <a className={classNames({ active: section === this.state.section })} @@ -77,16 +77,14 @@ export default class GlobalHelp extends React.PureComponent { onClick={this.handleSectionClick}> {translate('help.section', section)} </a> - </li> - ); + </li>; - renderMenu = () => ( + renderMenu = () => <ul className="side-tabs-menu"> {(this.props.currentUser.isLoggedIn ? ['shortcuts', 'tutorials', 'links'] : ['shortcuts', 'links']).map(this.renderMenuItem)} - </ul> - ); + </ul>; render() { return ( @@ -96,9 +94,10 @@ export default class GlobalHelp extends React.PureComponent { className="modal modal-medium" overlayClassName="modal-overlay" onRequestClose={this.props.onClose}> - <div className="modal-head"> - <h2>{translate('help')}</h2> + <h2> + {translate('help')} + </h2> </div> <div className="side-tabs-layout"> @@ -115,7 +114,6 @@ export default class GlobalHelp extends React.PureComponent { {translate('close')} </a> </div> - </Modal> ); } diff --git a/server/sonar-web/src/main/js/app/components/help/LinksHelp.js b/server/sonar-web/src/main/js/app/components/help/LinksHelp.js index b84c28222d5..c541d5fd7a5 100644 --- a/server/sonar-web/src/main/js/app/components/help/LinksHelp.js +++ b/server/sonar-web/src/main/js/app/components/help/LinksHelp.js @@ -27,10 +27,14 @@ type Props = { onClose: () => void }; export default function LinksHelp({ onClose }: Props) { return ( <div> - <h2 className="spacer-top spacer-bottom">{translate('help.section.links')}</h2> + <h2 className="spacer-top spacer-bottom"> + {translate('help.section.links')} + </h2> <p className="spacer-bottom"> - <a href="http://www.sonarqube.org">{translate('footer.community')}</a> + <a href="http://www.sonarqube.org"> + {translate('footer.community')} + </a> </p> <p className="spacer-bottom"> @@ -52,11 +56,15 @@ export default function LinksHelp({ onClose }: Props) { </p> <p className="spacer-bottom"> - <Link to="/web_api" onClick={onClose}>{translate('footer.web_api')}</Link> + <Link to="/web_api" onClick={onClose}> + {translate('footer.web_api')} + </Link> </p> <p> - <Link to="/about" onClick={onClose}>{translate('footer.about')}</Link> + <Link to="/about" onClick={onClose}> + {translate('footer.about')} + </Link> </p> </div> ); diff --git a/server/sonar-web/src/main/js/app/components/help/LinksHelpSonarCloud.js b/server/sonar-web/src/main/js/app/components/help/LinksHelpSonarCloud.js index ac2a737796e..3ce8b842da5 100644 --- a/server/sonar-web/src/main/js/app/components/help/LinksHelpSonarCloud.js +++ b/server/sonar-web/src/main/js/app/components/help/LinksHelpSonarCloud.js @@ -27,34 +27,50 @@ type Props = { onClose: () => void }; export default function LinksHelpSonarCloud({ onClose }: Props) { return ( <div> - <h2 className="spacer-top spacer-bottom">{translate('help.section.links')}</h2> + <h2 className="spacer-top spacer-bottom"> + {translate('help.section.links')} + </h2> <p className="spacer-bottom"> - <a href="https://about.sonarcloud.io/news/">{translate('footer.news')}</a> + <a href="https://about.sonarcloud.io/news/"> + {translate('footer.news')} + </a> </p> <p className="spacer-bottom"> - <a href="https://about.sonarcloud.io/terms.pdf">{translate('footer.terms')}</a> + <a href="https://about.sonarcloud.io/terms.pdf"> + {translate('footer.terms')} + </a> </p> <p className="spacer-bottom"> - <a href="https://twitter.com/sonarqube">{translate('footer.twitter')}</a> + <a href="https://twitter.com/sonarqube"> + {translate('footer.twitter')} + </a> </p> <p className="spacer-bottom"> - <a href="https://about.sonarcloud.io/get-started/">{translate('footer.get_started')}</a> + <a href="https://about.sonarcloud.io/get-started/"> + {translate('footer.get_started')} + </a> </p> <p className="spacer-bottom"> - <a href="https://about.sonarcloud.io/contact/">{translate('footer.help')}</a> + <a href="https://about.sonarcloud.io/contact/"> + {translate('footer.help')} + </a> </p> <p className="spacer-bottom"> - <Link to="/web_api" onClick={onClose}>{translate('footer.web_api')}</Link> + <Link to="/web_api" onClick={onClose}> + {translate('footer.web_api')} + </Link> </p> <p> - <Link to="/about" onClick={onClose}>{translate('footer.about')}</Link> + <Link to="/about" onClick={onClose}> + {translate('footer.about')} + </Link> </p> </div> ); diff --git a/server/sonar-web/src/main/js/app/components/help/ShortcutsHelp.js b/server/sonar-web/src/main/js/app/components/help/ShortcutsHelp.js index 1787524f5dc..feb27478d89 100644 --- a/server/sonar-web/src/main/js/app/components/help/ShortcutsHelp.js +++ b/server/sonar-web/src/main/js/app/components/help/ShortcutsHelp.js @@ -24,12 +24,16 @@ import { translate } from '../../../helpers/l10n'; export default function ShortcutsHelp() { return ( <div> - <h2 className="spacer-top spacer-bottom">{translate('help.section.shortcuts')}</h2> + <h2 className="spacer-top spacer-bottom"> + {translate('help.section.shortcuts')} + </h2> <div className="columns"> <div className="column-half"> <div className="spacer-bottom"> - <h3 className="shortcuts-section-title">{translate('shortcuts.section.global')}</h3> + <h3 className="shortcuts-section-title"> + {translate('shortcuts.section.global')} + </h3> <ul className="shortcuts-list"> <li> <span className="shortcut-button spacer-right">s</span> @@ -42,7 +46,9 @@ export default function ShortcutsHelp() { </ul> </div> - <h3 className="shortcuts-section-title">{translate('shortcuts.section.rules')}</h3> + <h3 className="shortcuts-section-title"> + {translate('shortcuts.section.rules')} + </h3> <ul className="shortcuts-list"> <li> <span className="shortcut-button little-spacer-right">↑</span> @@ -69,7 +75,9 @@ export default function ShortcutsHelp() { </div> <div className="column-half"> - <h3 className="shortcuts-section-title">{translate('shortcuts.section.issues')}</h3> + <h3 className="shortcuts-section-title"> + {translate('shortcuts.section.issues')} + </h3> <ul className="shortcuts-list"> <li> <span className="shortcut-button little-spacer-right">↑</span> diff --git a/server/sonar-web/src/main/js/app/components/help/TutorialsHelp.js b/server/sonar-web/src/main/js/app/components/help/TutorialsHelp.js index 5202060d984..82cc931e9f5 100644 --- a/server/sonar-web/src/main/js/app/components/help/TutorialsHelp.js +++ b/server/sonar-web/src/main/js/app/components/help/TutorialsHelp.js @@ -31,8 +31,12 @@ export default function TutorialsHelp({ onTutorialSelect }: Props) { return ( <div> - <h2 className="spacer-top spacer-bottom">{translate('help.section.tutorials')}</h2> - <a href="#" onClick={handleClick}>{translate('tutorials.onboarding')}</a> + <h2 className="spacer-top spacer-bottom"> + {translate('help.section.tutorials')} + </h2> + <a href="#" onClick={handleClick}> + {translate('tutorials.onboarding')} + </a> </div> ); } diff --git a/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavBreadcrumbs.js b/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavBreadcrumbs.js index 42c3efaa232..c719a568c70 100644 --- a/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavBreadcrumbs.js +++ b/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavBreadcrumbs.js @@ -61,8 +61,12 @@ class ComponentNavBreadcrumbs extends React.PureComponent { to={{ pathname: '/dashboard', query: { id: item.key } }} className="link-base-color"> {index === breadcrumbs.length - 1 - ? <strong>{itemName}</strong> - : <span>{itemName}</span>} + ? <strong> + {itemName} + </strong> + : <span> + {itemName} + </span>} </Link> {index < breadcrumbs.length - 1 && <span className="slash-separator" />} </span> @@ -93,8 +97,8 @@ class ComponentNavBreadcrumbs extends React.PureComponent { } const mapStateToProps = (state, ownProps) => ({ - organization: ownProps.component.organization && - getOrganizationByKey(state, ownProps.component.organization), + organization: + ownProps.component.organization && getOrganizationByKey(state, ownProps.component.organization), shouldOrganizationBeDisplayed: areThereCustomOrganizations(state) }); diff --git a/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavMeta.js b/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavMeta.js index 78d72cb3943..fdad7ec0280 100644 --- a/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavMeta.js +++ b/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavMeta.js @@ -39,8 +39,7 @@ export default class ComponentNavMeta extends React.PureComponent { : translate('component_navigation.status.in_progress'); metaList.push( <li key="isInProgress" data-toggle="tooltip" title={tooltip}> - <i className="spinner" style={{ marginTop: '-1px' }} /> - {' '} + <i className="spinner" style={{ marginTop: '-1px' }} />{' '} <span className="text-info">{translate('background_task.status.IN_PROGRESS')}</span> </li> ); @@ -59,22 +58,34 @@ export default class ComponentNavMeta extends React.PureComponent { : translate('component_navigation.status.failed'); metaList.push( <li key="isFailed" data-toggle="tooltip" title={tooltip}> - <span className="badge badge-danger">{translate('background_task.status.FAILED')}</span> + <span className="badge badge-danger"> + {translate('background_task.status.FAILED')} + </span> </li> ); } if (this.props.analysisDate) { - metaList.push(<li key="analysisDate">{moment(this.props.analysisDate).format('LLL')}</li>); + metaList.push( + <li key="analysisDate"> + {moment(this.props.analysisDate).format('LLL')} + </li> + ); } if (this.props.version) { - metaList.push(<li key="version">Version {this.props.version}</li>); + metaList.push( + <li key="version"> + Version {this.props.version} + </li> + ); } return ( <div className="navbar-context-meta"> - <ul className="list-inline">{metaList}</ul> + <ul className="list-inline"> + {metaList} + </ul> </div> ); } diff --git a/server/sonar-web/src/main/js/app/components/nav/global/GlobalNavBranding.js b/server/sonar-web/src/main/js/app/components/nav/global/GlobalNavBranding.js index 168ab4f188a..d0bac2720ea 100644 --- a/server/sonar-web/src/main/js/app/components/nav/global/GlobalNavBranding.js +++ b/server/sonar-web/src/main/js/app/components/nav/global/GlobalNavBranding.js @@ -43,7 +43,9 @@ class GlobalNavBranding extends React.PureComponent { 'navbar-brand' + (this.props.customLogoUrl ? ' navbar-brand-custom' : ''); return ( <div className="navbar-header"> - <Link to={homeController} className={homeLinkClassName}>{this.renderLogo()}</Link> + <Link to={homeController} className={homeLinkClassName}> + {this.renderLogo()} + </Link> </div> ); } diff --git a/server/sonar-web/src/main/js/app/components/nav/global/GlobalNavMenu.js b/server/sonar-web/src/main/js/app/components/nav/global/GlobalNavMenu.js index 0a88701f045..5b99dd06c92 100644 --- a/server/sonar-web/src/main/js/app/components/nav/global/GlobalNavMenu.js +++ b/server/sonar-web/src/main/js/app/components/nav/global/GlobalNavMenu.js @@ -61,9 +61,10 @@ export default class GlobalNavMenu extends React.PureComponent { } renderIssuesLink() { - const query = this.props.currentUser.isLoggedIn && isMySet() - ? { resolved: 'false', myIssues: 'true' } - : { resolved: 'false' }; + const query = + this.props.currentUser.isLoggedIn && isMySet() + ? { resolved: 'false', myIssues: 'true' } + : { resolved: 'false' }; const active = this.props.location.pathname === 'issues'; return ( <li> @@ -120,7 +121,9 @@ export default class GlobalNavMenu extends React.PureComponent { renderGlobalPageLink = ({ key, name }) => { return ( <li key={key}> - <Link to={`/extension/${key}`}>{name}</Link> + <Link to={`/extension/${key}`}> + {name} + </Link> </li> ); }; diff --git a/server/sonar-web/src/main/js/app/components/nav/global/GlobalNavUser.js b/server/sonar-web/src/main/js/app/components/nav/global/GlobalNavUser.js index a4e39e09398..72ae61d3b22 100644 --- a/server/sonar-web/src/main/js/app/components/nav/global/GlobalNavUser.js +++ b/server/sonar-web/src/main/js/app/components/nav/global/GlobalNavUser.js @@ -123,7 +123,9 @@ export default class GlobalNavUser extends React.PureComponent { <ul className="dropdown-menu dropdown-menu-right"> <li className="dropdown-item"> <div className="text-ellipsis text-muted" title={currentUser.name}> - <strong>{currentUser.name}</strong> + <strong> + {currentUser.name} + </strong> </div> {currentUser.email != null && <div @@ -134,22 +136,30 @@ export default class GlobalNavUser extends React.PureComponent { </li> <li className="divider" /> <li> - <Link to="/account" onClick={this.closeDropdown}>{translate('my_account.page')}</Link> + <Link to="/account" onClick={this.closeDropdown}> + {translate('my_account.page')} + </Link> </li> {hasOrganizations && <li role="separator" className="divider" />} {hasOrganizations && - <li className="dropdown-header spacer-left">{translate('my_organizations')}</li>} + <li className="dropdown-header spacer-left"> + {translate('my_organizations')} + </li>} {hasOrganizations && - sortBy(organizations, org => org.name.toLowerCase()).map(organization => ( + sortBy(organizations, org => org.name.toLowerCase()).map(organization => <li key={organization.key}> <OrganizationLink organization={organization} onClick={this.closeDropdown}> - <span className="spacer-left">{organization.name}</span> + <span className="spacer-left"> + {organization.name} + </span> </OrganizationLink> </li> - ))} + )} {hasOrganizations && <li role="separator" className="divider" />} <li> - <a onClick={this.handleLogout} href="#">{translate('layout.logout')}</a> + <a onClick={this.handleLogout} href="#"> + {translate('layout.logout')} + </a> </li> </ul>} </li> diff --git a/server/sonar-web/src/main/js/app/components/nav/settings/SettingsNav.js b/server/sonar-web/src/main/js/app/components/nav/settings/SettingsNav.js index 50454783e43..88750547c4a 100644 --- a/server/sonar-web/src/main/js/app/components/nav/settings/SettingsNav.js +++ b/server/sonar-web/src/main/js/app/components/nav/settings/SettingsNav.js @@ -52,7 +52,9 @@ class SettingsNav extends React.PureComponent { renderExtension = ({ key, name }) => { return ( <li key={key}> - <Link to={`/admin/extension/${key}`} activeClassName="active">{name}</Link> + <Link to={`/admin/extension/${key}`} activeClassName="active"> + {name} + </Link> </li> ); }; diff --git a/server/sonar-web/src/main/js/app/components/search/Search.js b/server/sonar-web/src/main/js/app/components/search/Search.js index adfd90a8b83..04098668141 100644 --- a/server/sonar-web/src/main/js/app/components/search/Search.js +++ b/server/sonar-web/src/main/js/app/components/search/Search.js @@ -294,7 +294,7 @@ export default class Search extends React.PureComponent { this.nodes[component] = node; }; - renderResult = (component: Component) => ( + renderResult = (component: Component) => <SearchResult appState={this.props.appState} component={component} @@ -305,14 +305,12 @@ export default class Search extends React.PureComponent { organizations={this.state.organizations} projects={this.state.projects} selected={this.state.selected === component.key} - /> - ); + />; - renderNoResults = () => ( + renderNoResults = () => <div className="navbar-search-no-results"> {translateWithParameters('no_results_for_x', this.state.query)} - </div> - ); + </div>; render() { const dropdownClassName = classNames('dropdown', 'navbar-search', { open: this.state.open }); diff --git a/server/sonar-web/src/main/js/app/components/search/SearchResult.js b/server/sonar-web/src/main/js/app/components/search/SearchResult.js index 252c82fc441..7f6337dcda0 100644 --- a/server/sonar-web/src/main/js/app/components/search/SearchResult.js +++ b/server/sonar-web/src/main/js/app/components/search/SearchResult.js @@ -93,7 +93,9 @@ export default class SearchResult extends React.PureComponent { const organization = this.props.organizations[component.organization]; return organization - ? <div className="navbar-search-item-right text-muted-2">{organization.name}</div> + ? <div className="navbar-search-item-right text-muted-2"> + {organization.name} + </div> : null; }; @@ -104,7 +106,9 @@ export default class SearchResult extends React.PureComponent { const project = this.props.projects[component.project]; return project - ? <div className="navbar-search-item-right text-muted-2">{project.name}</div> + ? <div className="navbar-search-item-right text-muted-2"> + {project.name} + </div> : null; }; @@ -127,7 +131,6 @@ export default class SearchResult extends React.PureComponent { onClick={this.props.onClose} onMouseEnter={this.handleMouseEnter} to={getProjectUrl(component.key)}> - <span className="navbar-search-item-icons little-spacer-right"> {component.isFavorite && <FavoriteIcon favorite={true} size={12} />} {!component.isFavorite && component.isRecentlyBrowsed && <ClockIcon size={12} />} @@ -139,11 +142,12 @@ export default class SearchResult extends React.PureComponent { className="navbar-search-item-match" dangerouslySetInnerHTML={{ __html: component.match }} /> - : <span className="navbar-search-item-match">{component.name}</span>} + : <span className="navbar-search-item-match"> + {component.name} + </span>} {this.renderOrganization(component)} {this.renderProject(component)} - </Link> </Tooltip> </li> diff --git a/server/sonar-web/src/main/js/app/components/search/SearchResults.js b/server/sonar-web/src/main/js/app/components/search/SearchResults.js index 96be176aea6..ceffcd262db 100644 --- a/server/sonar-web/src/main/js/app/components/search/SearchResults.js +++ b/server/sonar-web/src/main/js/app/components/search/SearchResults.js @@ -77,7 +77,9 @@ export default class SearchResults extends React.PureComponent { }); return renderedComponents.length > 0 - ? <ul className="menu">{renderedComponents}</ul> + ? <ul className="menu"> + {renderedComponents} + </ul> : this.props.renderNoResults(); } } diff --git a/server/sonar-web/src/main/js/app/components/search/SearchShowMore.js b/server/sonar-web/src/main/js/app/components/search/SearchShowMore.js index d3a0282849f..a36c98368ce 100644 --- a/server/sonar-web/src/main/js/app/components/search/SearchShowMore.js +++ b/server/sonar-web/src/main/js/app/components/search/SearchShowMore.js @@ -69,7 +69,9 @@ export default class SearchShowMore extends React.PureComponent { ) }} /> - <span>{translate('show_more')}</span> + <span> + {translate('show_more')} + </span> </a> </DeferredSpinner> </li> diff --git a/server/sonar-web/src/main/js/app/components/search/__tests__/SearchResults-test.js b/server/sonar-web/src/main/js/app/components/search/__tests__/SearchResults-test.js index fbba231e38f..c08bba6e14b 100644 --- a/server/sonar-web/src/main/js/app/components/search/__tests__/SearchResults-test.js +++ b/server/sonar-web/src/main/js/app/components/search/__tests__/SearchResults-test.js @@ -32,7 +32,10 @@ it('renders different components and dividers between them', () => { onMoreClick={jest.fn()} onSelect={jest.fn()} renderNoResults={() => <div />} - renderResult={component => <span key={component.key}>{component.name}</span>} + renderResult={component => + <span key={component.key}> + {component.name} + </span>} results={{ TRK: [component('foo'), component('bar')], BRC: [component('qwe', 'BRC'), component('qux', 'BRC')], @@ -54,7 +57,10 @@ it('renders "Show More" link', () => { onMoreClick={jest.fn()} onSelect={jest.fn()} renderNoResults={() => <div />} - renderResult={component => <span key={component.key}>{component.name}</span>} + renderResult={component => + <span key={component.key}> + {component.name} + </span>} results={{ TRK: [component('foo'), component('bar')], BRC: [component('qwe', 'BRC'), component('qux', 'BRC')] diff --git a/server/sonar-web/src/main/js/app/styles/boxed-group.css b/server/sonar-web/src/main/js/app/styles/boxed-group.css index f41ae1927d6..0fc395a3280 100644 --- a/server/sonar-web/src/main/js/app/styles/boxed-group.css +++ b/server/sonar-web/src/main/js/app/styles/boxed-group.css @@ -105,14 +105,16 @@ height: 0; } - 50%, 100% { + 50%, + 100% { width: 100%; height: 100%; } } @keyframes border-bottom-border { - 0%, 50% { + 0%, + 50% { width: 0; height: 0; border-width: 0; diff --git a/server/sonar-web/src/main/js/app/utils/startReactApp.js b/server/sonar-web/src/main/js/app/utils/startReactApp.js index 861f20199a9..18f4ba69ed7 100644 --- a/server/sonar-web/src/main/js/app/utils/startReactApp.js +++ b/server/sonar-web/src/main/js/app/utils/startReactApp.js @@ -132,8 +132,12 @@ const startReactApp = () => { <Route component={DefaultHelmetContainer}> <Route component={LocalizationContainer}> <Route component={SimpleContainer}> - <Route path="maintenance">{maintenanceRoutes}</Route> - <Route path="setup">{setupRoutes}</Route> + <Route path="maintenance"> + {maintenanceRoutes} + </Route> + <Route path="setup"> + {setupRoutes} + </Route> </Route> <Route component={MigrationContainer}> @@ -142,7 +146,6 @@ const startReactApp = () => { </Route> <Route path="/" component={App}> - <IndexRoute component={Landing} /> <Route component={GlobalContainer}> diff --git a/server/sonar-web/src/main/js/apps/about/components/AboutCleanCode.js b/server/sonar-web/src/main/js/apps/about/components/AboutCleanCode.js index 1ed36c5127b..92e08353bbc 100644 --- a/server/sonar-web/src/main/js/apps/about/components/AboutCleanCode.js +++ b/server/sonar-web/src/main/js/apps/about/components/AboutCleanCode.js @@ -26,9 +26,13 @@ const link = 'https://redirect.sonarsource.com/doc/issues.html'; export default function AboutCleanCode() { return ( <div className="boxed-group"> - <h2>{translate('about_page.clean_code')}</h2> + <h2> + {translate('about_page.clean_code')} + </h2> <div className="boxed-group-inner"> - <p className="about-page-text">{translate('about_page.clean_code.text')}</p> + <p className="about-page-text"> + {translate('about_page.clean_code.text')} + </p> <ReadMore link={link} /> </div> </div> diff --git a/server/sonar-web/src/main/js/apps/about/components/AboutLanguages.js b/server/sonar-web/src/main/js/apps/about/components/AboutLanguages.js index dffb976146d..2a87ba96a96 100644 --- a/server/sonar-web/src/main/js/apps/about/components/AboutLanguages.js +++ b/server/sonar-web/src/main/js/apps/about/components/AboutLanguages.js @@ -48,18 +48,26 @@ const half = (languages.length + 1) / 2; export default function AboutLanguages() { return ( <div className="boxed-group"> - <h2>{translate('about_page.languages')}</h2> + <h2> + {translate('about_page.languages')} + </h2> <div className="boxed-group-inner"> - <p className="about-page-text">{translate('about_page.languages.text')}</p> + <p className="about-page-text"> + {translate('about_page.languages.text')} + </p> <ul className="about-page-languages"> - {languages.slice(0, half).map((language, index) => ( + {languages.slice(0, half).map((language, index) => <li key={index}> - <a href={languages[index].url}>{languages[index].name}</a> + <a href={languages[index].url}> + {languages[index].name} + </a> <br /> {index + half < languages.length && - <a href={languages[index + half].url}>{languages[index + half].name}</a>} + <a href={languages[index + half].url}> + {languages[index + half].name} + </a>} </li> - ))} + )} </ul> </div> </div> diff --git a/server/sonar-web/src/main/js/apps/about/components/AboutLeakPeriod.js b/server/sonar-web/src/main/js/apps/about/components/AboutLeakPeriod.js index f959dd97cbb..1e65f5f646a 100644 --- a/server/sonar-web/src/main/js/apps/about/components/AboutLeakPeriod.js +++ b/server/sonar-web/src/main/js/apps/about/components/AboutLeakPeriod.js @@ -26,9 +26,13 @@ const link = 'https://redirect.sonarsource.com/doc/fix-the-leak.html'; export default function AboutLeakPeriod() { return ( <div className="boxed-group"> - <h2>{translate('about_page.fix_the_leak')}</h2> + <h2> + {translate('about_page.fix_the_leak')} + </h2> <div className="boxed-group-inner"> - <p className="about-page-text">{translate('about_page.fix_the_leak.text')}</p> + <p className="about-page-text"> + {translate('about_page.fix_the_leak.text')} + </p> <ReadMore link={link} /> </div> </div> diff --git a/server/sonar-web/src/main/js/apps/about/components/AboutQualityGates.js b/server/sonar-web/src/main/js/apps/about/components/AboutQualityGates.js index e83d8d77b95..8499b680883 100644 --- a/server/sonar-web/src/main/js/apps/about/components/AboutQualityGates.js +++ b/server/sonar-web/src/main/js/apps/about/components/AboutQualityGates.js @@ -26,9 +26,13 @@ const link = 'https://redirect.sonarsource.com/doc/quality-gates.html'; export default function AboutQualityGates() { return ( <div className="boxed-group"> - <h2>{translate('about_page.quality_gates')}</h2> + <h2> + {translate('about_page.quality_gates')} + </h2> <div className="boxed-group-inner"> - <p className="about-page-text">{translate('about_page.quality_gates.text')}</p> + <p className="about-page-text"> + {translate('about_page.quality_gates.text')} + </p> <ReadMore link={link} /> </div> </div> diff --git a/server/sonar-web/src/main/js/apps/about/components/AboutQualityModel.js b/server/sonar-web/src/main/js/apps/about/components/AboutQualityModel.js index 503ef74807f..20c483535d5 100644 --- a/server/sonar-web/src/main/js/apps/about/components/AboutQualityModel.js +++ b/server/sonar-web/src/main/js/apps/about/components/AboutQualityModel.js @@ -26,33 +26,38 @@ import CodeSmellIcon from '../../../components/icons-components/CodeSmellIcon'; export default function AboutQualityModel() { return ( <div className="boxed-group about-quality-model"> - <h2>{translate('about_page.quality_model')}</h2> + <h2> + {translate('about_page.quality_model')} + </h2> <div className="boxed-group-inner clearfix"> <div className="flex-columns"> <div className="flex-column flex-column-third"> - <div className="pull-left little-spacer-right"><BugIcon /></div> + <div className="pull-left little-spacer-right"> + <BugIcon /> + </div> <p className="about-page-text overflow-hidden"> - <strong>{translate('issue.type.BUG.plural')}</strong> - {' '} + <strong>{translate('issue.type.BUG.plural')}</strong>{' '} {translate('about_page.quality_model.bugs')} </p> </div> <div className="flex-column flex-column-third"> - <div className="pull-left little-spacer-right"><VulnerabilityIcon /></div> + <div className="pull-left little-spacer-right"> + <VulnerabilityIcon /> + </div> <p className="about-page-text overflow-hidden"> - <strong>{translate('issue.type.VULNERABILITY.plural')}</strong> - {' '} + <strong>{translate('issue.type.VULNERABILITY.plural')}</strong>{' '} {translate('about_page.quality_model.vulnerabilities')} </p> </div> <div className="flex-column flex-column-third"> - <div className="pull-left little-spacer-right"><CodeSmellIcon /></div> + <div className="pull-left little-spacer-right"> + <CodeSmellIcon /> + </div> <p className="about-page-text overflow-hidden"> - <strong>{translate('issue.type.CODE_SMELL.plural')}</strong> - {' '} + <strong>{translate('issue.type.CODE_SMELL.plural')}</strong>{' '} {translate('about_page.quality_model.code_smells')} </p> </div> diff --git a/server/sonar-web/src/main/js/apps/about/components/AboutQualityModelForSonarQubeDotCom.js b/server/sonar-web/src/main/js/apps/about/components/AboutQualityModelForSonarQubeDotCom.js index 6f7ff4125cb..26b60c32f88 100644 --- a/server/sonar-web/src/main/js/apps/about/components/AboutQualityModelForSonarQubeDotCom.js +++ b/server/sonar-web/src/main/js/apps/about/components/AboutQualityModelForSonarQubeDotCom.js @@ -26,15 +26,18 @@ import CodeSmellIconForSonarQubeDotCom from './CodeSmellIconForSonarQubeDotCom'; export default function AboutQualityModelForSonarQubeDotCom() { return ( <div className="boxed-group about-quality-model sqcom-about-quality-model"> - <h2>{translate('about_page.quality_model')}</h2> + <h2> + {translate('about_page.quality_model')} + </h2> <div className="boxed-group-inner clearfix"> <div className="flex-columns"> <div className="flex-column flex-column-third"> - <div className="pull-left little-spacer-right"><BugIconForSonarQubeDotCom /></div> + <div className="pull-left little-spacer-right"> + <BugIconForSonarQubeDotCom /> + </div> <p className="about-page-text overflow-hidden"> - <strong>{translate('issue.type.BUG.plural')}</strong> - {' '} + <strong>{translate('issue.type.BUG.plural')}</strong>{' '} {translate('about_page.quality_model.bugs')} </p> </div> @@ -44,8 +47,7 @@ export default function AboutQualityModelForSonarQubeDotCom() { <VulnerabilityIconForSonarQubeDotCom /> </div> <p className="about-page-text overflow-hidden"> - <strong>{translate('issue.type.VULNERABILITY.plural')}</strong> - {' '} + <strong>{translate('issue.type.VULNERABILITY.plural')}</strong>{' '} {translate('about_page.quality_model.vulnerabilities')} </p> </div> @@ -55,8 +57,7 @@ export default function AboutQualityModelForSonarQubeDotCom() { <CodeSmellIconForSonarQubeDotCom /> </div> <p className="about-page-text overflow-hidden"> - <strong>{translate('issue.type.CODE_SMELL.plural')}</strong> - {' '} + <strong>{translate('issue.type.CODE_SMELL.plural')}</strong>{' '} {translate('about_page.quality_model.code_smells')} </p> </div> diff --git a/server/sonar-web/src/main/js/apps/about/components/AboutRulesForSonarQubeDotCom.js b/server/sonar-web/src/main/js/apps/about/components/AboutRulesForSonarQubeDotCom.js index da03f74b956..5add8a0eab1 100644 --- a/server/sonar-web/src/main/js/apps/about/components/AboutRulesForSonarQubeDotCom.js +++ b/server/sonar-web/src/main/js/apps/about/components/AboutRulesForSonarQubeDotCom.js @@ -68,7 +68,9 @@ export default function AboutRulesForSonarQubeDotCom(props: Props) { className="sqcom-about-rules-link"> C# </Link> - <Link to={getRulesUrl(null, organization)} className="button">And More</Link> + <Link to={getRulesUrl(null, organization)} className="button"> + And More + </Link> </div> </div> ); diff --git a/server/sonar-web/src/main/js/apps/about/components/AboutScanners.js b/server/sonar-web/src/main/js/apps/about/components/AboutScanners.js index 8396fa6289b..2e8ffe89e0e 100644 --- a/server/sonar-web/src/main/js/apps/about/components/AboutScanners.js +++ b/server/sonar-web/src/main/js/apps/about/components/AboutScanners.js @@ -50,11 +50,15 @@ const scanners = [ export default function AboutScanners() { return ( <div className="boxed-group"> - <h2>{translate('about_page.scanners')}</h2> + <h2> + {translate('about_page.scanners')} + </h2> <div className="boxed-group-inner"> - <p className="about-page-text">{translate('about_page.scanners.text')}</p> + <p className="about-page-text"> + {translate('about_page.scanners.text')} + </p> <div className="about-page-analyzers"> - {scanners.map(scanner => ( + {scanners.map(scanner => <a key={scanner.key} className="about-page-analyzer-box" href={scanner.link}> <img src={`${window.baseUrl}/images/scanner-logos/${scanner.key}.svg`} @@ -62,7 +66,7 @@ export default function AboutScanners() { alt={translate('about_page.scanners', scanner.key)} /> </a> - ))} + )} </div> </div> </div> diff --git a/server/sonar-web/src/main/js/apps/about/components/AboutStandards.js b/server/sonar-web/src/main/js/apps/about/components/AboutStandards.js index d28330408b6..4fc1b9633ad 100644 --- a/server/sonar-web/src/main/js/apps/about/components/AboutStandards.js +++ b/server/sonar-web/src/main/js/apps/about/components/AboutStandards.js @@ -43,9 +43,13 @@ export default function AboutStandards(props: Props) { return ( <div className="boxed-group"> - <h2>{translate('about_page.standards')}</h2> + <h2> + {translate('about_page.standards')} + </h2> <div className="boxed-group-inner"> - <p className="about-page-text">{translate('about_page.standards.text')}</p> + <p className="about-page-text"> + {translate('about_page.standards.text')} + </p> <div className="spacer-top"> <ul className="list-inline"> diff --git a/server/sonar-web/src/main/js/apps/about/components/EntryIssueTypes.js b/server/sonar-web/src/main/js/apps/about/components/EntryIssueTypes.js index eac9de1a53b..8ad560410b1 100644 --- a/server/sonar-web/src/main/js/apps/about/components/EntryIssueTypes.js +++ b/server/sonar-web/src/main/js/apps/about/components/EntryIssueTypes.js @@ -50,7 +50,9 @@ export default function EntryIssueTypes({ bugs, codeSmells, loading, vulnerabili </Link> </td> <td> - <span className="little-spacer-right"><BugIcon /></span> + <span className="little-spacer-right"> + <BugIcon /> + </span> {translate('issue.type.BUG.plural')} </td> </tr> @@ -67,7 +69,9 @@ export default function EntryIssueTypes({ bugs, codeSmells, loading, vulnerabili </Link> </td> <td> - <span className="little-spacer-right"><VulnerabilityIcon /></span> + <span className="little-spacer-right"> + <VulnerabilityIcon /> + </span> {translate('issue.type.VULNERABILITY.plural')} </td> </tr> @@ -80,7 +84,9 @@ export default function EntryIssueTypes({ bugs, codeSmells, loading, vulnerabili </Link> </td> <td> - <span className="little-spacer-right"><CodeSmellIcon /></span> + <span className="little-spacer-right"> + <CodeSmellIcon /> + </span> {translate('issue.type.CODE_SMELL.plural')} </td> </tr> diff --git a/server/sonar-web/src/main/js/apps/about/components/EntryIssueTypesForSonarQubeDotCom.js b/server/sonar-web/src/main/js/apps/about/components/EntryIssueTypesForSonarQubeDotCom.js index 0dbe782918a..1bc8bd60d06 100644 --- a/server/sonar-web/src/main/js/apps/about/components/EntryIssueTypesForSonarQubeDotCom.js +++ b/server/sonar-web/src/main/js/apps/about/components/EntryIssueTypesForSonarQubeDotCom.js @@ -55,7 +55,9 @@ export default function EntryIssueTypesForSonarQubeDotCom({ </Link> </td> <td> - <span className="little-spacer-right"><BugIconForSonarQubeDotCom /></span> + <span className="little-spacer-right"> + <BugIconForSonarQubeDotCom /> + </span> {translate('issue.type.BUG.plural')} </td> </tr> @@ -72,7 +74,9 @@ export default function EntryIssueTypesForSonarQubeDotCom({ </Link> </td> <td> - <span className="little-spacer-right"><VulnerabilityIconForSonarQubeDotCom /></span> + <span className="little-spacer-right"> + <VulnerabilityIconForSonarQubeDotCom /> + </span> {translate('issue.type.VULNERABILITY.plural')} </td> </tr> @@ -85,7 +89,9 @@ export default function EntryIssueTypesForSonarQubeDotCom({ </Link> </td> <td> - <span className="little-spacer-right"><CodeSmellIconForSonarQubeDotCom /></span> + <span className="little-spacer-right"> + <CodeSmellIconForSonarQubeDotCom /> + </span> {translate('issue.type.CODE_SMELL.plural')} </td> </tr> diff --git a/server/sonar-web/src/main/js/apps/about/components/ReadMore.js b/server/sonar-web/src/main/js/apps/about/components/ReadMore.js index 7318f5eb703..47a2b0e442a 100644 --- a/server/sonar-web/src/main/js/apps/about/components/ReadMore.js +++ b/server/sonar-web/src/main/js/apps/about/components/ReadMore.js @@ -29,7 +29,9 @@ export default class ReadMore extends React.PureComponent { return ( <div className="big-spacer-top"> <a className="about-page-link-more" href={this.props.link} target="_blank"> - <span>{translate('about_page.read_more')}</span> + <span> + {translate('about_page.read_more')} + </span> </a> </div> ); diff --git a/server/sonar-web/src/main/js/apps/about/sonarqube-dot-com-styles.css b/server/sonar-web/src/main/js/apps/about/sonarqube-dot-com-styles.css index 1895646e681..598e1f77297 100644 --- a/server/sonar-web/src/main/js/apps/about/sonarqube-dot-com-styles.css +++ b/server/sonar-web/src/main/js/apps/about/sonarqube-dot-com-styles.css @@ -22,7 +22,8 @@ align-items: center; } -.sqcom-about-page-intro {} +.sqcom-about-page-intro { +} .sqcom-about-page-intro > h1 { line-height: 56px; diff --git a/server/sonar-web/src/main/js/apps/account/components/Password.js b/server/sonar-web/src/main/js/apps/account/components/Password.js index 925fc4ce901..ae30647b7e0 100644 --- a/server/sonar-web/src/main/js/apps/account/components/Password.js +++ b/server/sonar-web/src/main/js/apps/account/components/Password.js @@ -81,7 +81,12 @@ export default class Password extends Component { {translate('my_profile.password.changed')} </div>} - {errors && errors.map((e, i) => <div key={i} className="alert alert-danger">{e}</div>)} + {errors && + errors.map((e, i) => + <div key={i} className="alert alert-danger"> + {e} + </div> + )} <div className="modal-field"> <label htmlFor="old_password"> diff --git a/server/sonar-web/src/main/js/apps/account/components/UserCard.js b/server/sonar-web/src/main/js/apps/account/components/UserCard.js index f1076d9894a..8b0ecc308ef 100644 --- a/server/sonar-web/src/main/js/apps/account/components/UserCard.js +++ b/server/sonar-web/src/main/js/apps/account/components/UserCard.js @@ -33,7 +33,9 @@ export default class UserCard extends React.PureComponent { <div id="avatar" className="pull-left account-user-avatar"> <Avatar email={user.email} name={user.name} size={60} /> </div> - <h1 id="name" className="pull-left">{user.name}</h1> + <h1 id="name" className="pull-left"> + {user.name} + </h1> </div> ); } diff --git a/server/sonar-web/src/main/js/apps/account/notifications/GlobalNotifications.js b/server/sonar-web/src/main/js/apps/account/notifications/GlobalNotifications.js index 71cfd434b77..28d3181d25b 100644 --- a/server/sonar-web/src/main/js/apps/account/notifications/GlobalNotifications.js +++ b/server/sonar-web/src/main/js/apps/account/notifications/GlobalNotifications.js @@ -53,11 +53,13 @@ function GlobalNotifications(props: Props) { <thead> <tr> <th /> - {props.channels.map(channel => ( + {props.channels.map(channel => <th key={channel} className="text-center"> - <h4>{translate('notification.channel', channel)}</h4> + <h4> + {translate('notification.channel', channel)} + </h4> </th> - ))} + )} </tr> </thead> diff --git a/server/sonar-web/src/main/js/apps/account/notifications/NotificationsList.js b/server/sonar-web/src/main/js/apps/account/notifications/NotificationsList.js index 31c21caf958..e9655c829f4 100644 --- a/server/sonar-web/src/main/js/apps/account/notifications/NotificationsList.js +++ b/server/sonar-web/src/main/js/apps/account/notifications/NotificationsList.js @@ -56,10 +56,12 @@ export default class NotificationsList extends React.PureComponent { return ( <tbody> - {types.map(type => ( + {types.map(type => <tr key={type}> - <td>{translate('notification.dispatcher', type)}</td> - {channels.map(channel => ( + <td> + {translate('notification.dispatcher', type)} + </td> + {channels.map(channel => <td key={channel} className="text-center"> <Checkbox checked={this.isEnabled(type, channel)} @@ -67,9 +69,9 @@ export default class NotificationsList extends React.PureComponent { onCheck={checked => this.handleCheck(type, channel, checked)} /> </td> - ))} + )} </tr> - ))} + )} </tbody> ); } diff --git a/server/sonar-web/src/main/js/apps/account/notifications/ProjectNotifications.js b/server/sonar-web/src/main/js/apps/account/notifications/ProjectNotifications.js index f79f666e9db..d774571bb83 100644 --- a/server/sonar-web/src/main/js/apps/account/notifications/ProjectNotifications.js +++ b/server/sonar-web/src/main/js/apps/account/notifications/ProjectNotifications.js @@ -81,14 +81,18 @@ class ProjectNotifications extends React.PureComponent { <Organization organizationKey={project.organization} /> </span> <h4 className="display-inline-block"> - <Link to={getProjectUrl(project.key)}>{project.name}</Link> + <Link to={getProjectUrl(project.key)}> + {project.name} + </Link> </h4> </th> - {channels.map(channel => ( + {channels.map(channel => <th key={channel} className="text-center"> - <h4>{translate('notification.channel', channel)}</h4> + <h4> + {translate('notification.channel', channel)} + </h4> </th> - ))} + )} </tr> </thead> <NotificationsList diff --git a/server/sonar-web/src/main/js/apps/account/notifications/Projects.js b/server/sonar-web/src/main/js/apps/account/notifications/Projects.js index 318a53fa52a..d3b647ede1b 100644 --- a/server/sonar-web/src/main/js/apps/account/notifications/Projects.js +++ b/server/sonar-web/src/main/js/apps/account/notifications/Projects.js @@ -100,7 +100,9 @@ class Projects extends React.PureComponent { return ( <span> <Organization organizationKey={option.organization} link={false} /> - <strong>{option.label}</strong> + <strong> + {option.label} + </strong> </span> ); }; @@ -122,9 +124,7 @@ class Projects extends React.PureComponent { {allProjects.map(project => <ProjectNotifications key={project.key} project={project} />)} <div className="spacer-top panel bg-muted"> - <span className="text-middle spacer-right"> - Set notifications for: - </span> + <span className="text-middle spacer-right">Set notifications for:</span> <Select.Async autoload={false} cache={false} diff --git a/server/sonar-web/src/main/js/apps/account/organizations/CreateOrganizationForm.js b/server/sonar-web/src/main/js/apps/account/organizations/CreateOrganizationForm.js index 180a5dfb658..513ae8d5b7f 100644 --- a/server/sonar-web/src/main/js/apps/account/organizations/CreateOrganizationForm.js +++ b/server/sonar-web/src/main/js/apps/account/organizations/CreateOrganizationForm.js @@ -123,7 +123,9 @@ class CreateOrganizationForm extends React.PureComponent { overlayClassName="modal-overlay" onRequestClose={this.closeForm}> <header className="modal-head"> - <h2>{translate('my_account.create_organization')}</h2> + <h2> + {translate('my_account.create_organization')} + </h2> </header> <form onSubmit={this.handleSubmit}> diff --git a/server/sonar-web/src/main/js/apps/account/organizations/OrganizationCard.js b/server/sonar-web/src/main/js/apps/account/organizations/OrganizationCard.js index 8627962b54b..ee3efcc80eb 100644 --- a/server/sonar-web/src/main/js/apps/account/organizations/OrganizationCard.js +++ b/server/sonar-web/src/main/js/apps/account/organizations/OrganizationCard.js @@ -50,7 +50,9 @@ export default function OrganizationCard(props: Props) { </OrganizationLink> </h3> - <div className="account-project-key">{organization.key}</div> + <div className="account-project-key"> + {organization.key} + </div> {!!organization.description && <div className="account-project-description"> diff --git a/server/sonar-web/src/main/js/apps/account/organizations/OrganizationsList.js b/server/sonar-web/src/main/js/apps/account/organizations/OrganizationsList.js index 3969d08b0df..afc2da9ffe0 100644 --- a/server/sonar-web/src/main/js/apps/account/organizations/OrganizationsList.js +++ b/server/sonar-web/src/main/js/apps/account/organizations/OrganizationsList.js @@ -32,11 +32,11 @@ export default function OrganizationsList(props: Props) { <ul className="account-projects-list"> {sortBy(props.organizations, organization => organization.name.toLocaleLowerCase() - ).map(organization => ( + ).map(organization => <li key={organization.key}> <OrganizationCard organization={organization} /> </li> - ))} + )} </ul> ); } diff --git a/server/sonar-web/src/main/js/apps/account/organizations/UserOrganizations.js b/server/sonar-web/src/main/js/apps/account/organizations/UserOrganizations.js index 1aebb594952..e480e8a5517 100644 --- a/server/sonar-web/src/main/js/apps/account/organizations/UserOrganizations.js +++ b/server/sonar-web/src/main/js/apps/account/organizations/UserOrganizations.js @@ -71,7 +71,9 @@ class UserOrganizations extends React.PureComponent { <Helmet title={translate('my_account.organizations')} /> <header className="page-header"> - <h2 className="page-title">{translate('my_account.organizations')}</h2> + <h2 className="page-title"> + {translate('my_account.organizations')} + </h2> {canCreateOrganizations && <div className="page-actions"> <Link to="/account/organizations/create" className="button"> diff --git a/server/sonar-web/src/main/js/apps/account/profile/UserExternalIdentity.js b/server/sonar-web/src/main/js/apps/account/profile/UserExternalIdentity.js index 775716fa43e..fba6c92f27c 100644 --- a/server/sonar-web/src/main/js/apps/account/profile/UserExternalIdentity.js +++ b/server/sonar-web/src/main/js/apps/account/profile/UserExternalIdentity.js @@ -70,7 +70,9 @@ export default class UserExternalIdentity extends React.PureComponent { if (!identityProvider) { return ( <div> - {user.externalProvider}{': '}{user.externalIdentity} + {user.externalProvider} + {': '} + {user.externalIdentity} </div> ); } @@ -84,8 +86,7 @@ export default class UserExternalIdentity extends React.PureComponent { width="14" height="14" alt={identityProvider.name} - /> - {' '} + />{' '} {user.externalIdentity} </div> ); diff --git a/server/sonar-web/src/main/js/apps/account/profile/UserGroups.js b/server/sonar-web/src/main/js/apps/account/profile/UserGroups.js index f67ab5124ac..7aaf49a23c8 100644 --- a/server/sonar-web/src/main/js/apps/account/profile/UserGroups.js +++ b/server/sonar-web/src/main/js/apps/account/profile/UserGroups.js @@ -30,13 +30,15 @@ export default class UserGroups extends React.PureComponent { return ( <div> - <h2 className="spacer-bottom">{translate('my_profile.groups')}</h2> + <h2 className="spacer-bottom"> + {translate('my_profile.groups')} + </h2> <ul id="groups"> - {groups.map(group => ( + {groups.map(group => <li key={group} className="little-spacer-bottom" title={group}> {group} </li> - ))} + )} </ul> </div> ); diff --git a/server/sonar-web/src/main/js/apps/account/profile/UserScmAccounts.js b/server/sonar-web/src/main/js/apps/account/profile/UserScmAccounts.js index d1da44d3290..968f27bc8e1 100644 --- a/server/sonar-web/src/main/js/apps/account/profile/UserScmAccounts.js +++ b/server/sonar-web/src/main/js/apps/account/profile/UserScmAccounts.js @@ -31,7 +31,9 @@ export default class UserScmAccounts extends React.PureComponent { return ( <div> - <h2 className="spacer-bottom">{translate('my_profile.scm_accounts')}</h2> + <h2 className="spacer-bottom"> + {translate('my_profile.scm_accounts')} + </h2> <ul id="scm-accounts"> <li className="little-spacer-bottom text-ellipsis" title={user.login}> {user.login} @@ -42,11 +44,11 @@ export default class UserScmAccounts extends React.PureComponent { {user.email} </li>} - {scmAccounts.map(scmAccount => ( + {scmAccounts.map(scmAccount => <li key={scmAccount} className="little-spacer-bottom" title={scmAccount}> {scmAccount} </li> - ))} + )} </ul> </div> ); diff --git a/server/sonar-web/src/main/js/apps/account/projects/ProjectCard.js b/server/sonar-web/src/main/js/apps/account/projects/ProjectCard.js index 2d263a0daf8..13826f80dc8 100644 --- a/server/sonar-web/src/main/js/apps/account/projects/ProjectCard.js +++ b/server/sonar-web/src/main/js/apps/account/projects/ProjectCard.js @@ -65,7 +65,7 @@ export default class ProjectCard extends React.PureComponent { {links.length > 0 && <div className="account-project-links"> <ul className="list-inline"> - {links.map(link => ( + {links.map(link => <li key={link.type}> <a className="link-with-icon" @@ -76,11 +76,13 @@ export default class ProjectCard extends React.PureComponent { <i className={`icon-color-link icon-${link.type}`} /> </a> </li> - ))} + )} </ul> </div>} - <div className="account-project-key">{project.key}</div> + <div className="account-project-key"> + {project.key} + </div> {!!project.description && <div className="account-project-description"> diff --git a/server/sonar-web/src/main/js/apps/account/projects/Projects.js b/server/sonar-web/src/main/js/apps/account/projects/Projects.js index 9ecc0a633ee..71141b11ba7 100644 --- a/server/sonar-web/src/main/js/apps/account/projects/Projects.js +++ b/server/sonar-web/src/main/js/apps/account/projects/Projects.js @@ -46,11 +46,11 @@ export default class Projects extends React.PureComponent { {projects.length > 0 && <ul className="account-projects-list"> - {projects.map(project => ( + {projects.map(project => <li key={project.key}> <ProjectCard project={project} /> </li> - ))} + )} </ul>} {projects.length > 0 && diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/BackgroundTasksApp.js b/server/sonar-web/src/main/js/apps/background-tasks/components/BackgroundTasksApp.js index c27316d41bd..4062eaea41a 100644 --- a/server/sonar-web/src/main/js/apps/background-tasks/components/BackgroundTasksApp.js +++ b/server/sonar-web/src/main/js/apps/background-tasks/components/BackgroundTasksApp.js @@ -45,7 +45,7 @@ import { translate } from '../../../helpers/l10n'; type Props = { component: Object, location: Object, - fetchOrganizations: Array<string> => string + fetchOrganizations: (Array<string>) => string }; type State = { diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/DateFilter.js b/server/sonar-web/src/main/js/apps/background-tasks/components/DateFilter.js index e9d09a92772..4ca30c41c13 100644 --- a/server/sonar-web/src/main/js/apps/background-tasks/components/DateFilter.js +++ b/server/sonar-web/src/main/js/apps/background-tasks/components/DateFilter.js @@ -75,8 +75,7 @@ export default class DateFilter extends Component { ref="minDate" type="text" placeholder="From" - /> - {' '} + />{' '} <input className="input-small" value={maxExecutedAt} diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/ScannerContext.js b/server/sonar-web/src/main/js/apps/background-tasks/components/ScannerContext.js index f83644560cc..a2432dad135 100644 --- a/server/sonar-web/src/main/js/apps/background-tasks/components/ScannerContext.js +++ b/server/sonar-web/src/main/js/apps/background-tasks/components/ScannerContext.js @@ -72,7 +72,6 @@ export default class ScannerContext extends React.PureComponent { className="modal modal-large" overlayClassName="modal-overlay" onRequestClose={this.props.onClose}> - <div className="modal-head"> <h2> {translate('background_tasks.scanner_context')} @@ -86,7 +85,9 @@ export default class ScannerContext extends React.PureComponent { <div className="modal-body modal-container"> {scannerContext != null - ? <pre className="js-task-scanner-context">{scannerContext}</pre> + ? <pre className="js-task-scanner-context"> + {scannerContext} + </pre> : <i className="spinner" />} </div> @@ -95,7 +96,6 @@ export default class ScannerContext extends React.PureComponent { {translate('close')} </a> </div> - </Modal> ); } diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/Search.js b/server/sonar-web/src/main/js/apps/background-tasks/components/Search.js index f14ff423f91..a9b301e2e11 100644 --- a/server/sonar-web/src/main/js/apps/background-tasks/components/Search.js +++ b/server/sonar-web/src/main/js/apps/background-tasks/components/Search.js @@ -78,9 +78,7 @@ export default class Search extends React.PureComponent { return ( <li> - <h6 className="bt-search-form-label"> - Search by Task or Component - </h6> + <h6 className="bt-search-form-label">Search by Task or Component</h6> <input onChange={e => this.handleQueryChange(e.target.value)} @@ -110,16 +108,12 @@ export default class Search extends React.PureComponent { <section className="big-spacer-top big-spacer-bottom"> <ul className="bt-search-form"> <li> - <h6 className="bt-search-form-label"> - Status - </h6> + <h6 className="bt-search-form-label">Status</h6> <StatusFilter value={status} onChange={this.handleStatusChange.bind(this)} /> </li> {types.length > 1 && <li> - <h6 className="bt-search-form-label"> - Type - </h6> + <h6 className="bt-search-form-label">Type</h6> <TypesFilter value={taskType} types={types} @@ -128,15 +122,11 @@ export default class Search extends React.PureComponent { </li>} {!component && <li> - <h6 className="bt-search-form-label"> - Only Latest Analysis - </h6> + <h6 className="bt-search-form-label">Only Latest Analysis</h6> <CurrentsFilter value={currents} onChange={this.handleCurrentsChange.bind(this)} /> </li>} <li> - <h6 className="bt-search-form-label"> - Date - </h6> + <h6 className="bt-search-form-label">Date</h6> <DateFilter minSubmittedAt={minSubmittedAt} maxExecutedAt={maxExecutedAt} @@ -149,8 +139,7 @@ export default class Search extends React.PureComponent { <li className="bt-search-form-right"> <button className="js-reload" onClick={this.handleReload.bind(this)} disabled={loading}> {translate('reload')} - </button> - {' '} + </button>{' '} <button ref="resetButton" onClick={this.handleReset.bind(this)} disabled={loading}> {translate('reset_verb')} </button> diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/Stacktrace.js b/server/sonar-web/src/main/js/apps/background-tasks/components/Stacktrace.js index d6da81e314c..a89fe73ab6e 100644 --- a/server/sonar-web/src/main/js/apps/background-tasks/components/Stacktrace.js +++ b/server/sonar-web/src/main/js/apps/background-tasks/components/Stacktrace.js @@ -74,7 +74,6 @@ export default class Stacktrace extends React.PureComponent { className="modal modal-large" overlayClassName="modal-overlay" onRequestClose={this.props.onClose}> - <div className="modal-head"> <h2> {translate('background_tasks.error_stacktrace')} @@ -90,16 +89,22 @@ export default class Stacktrace extends React.PureComponent { {loading ? <i className="spinner" /> : stacktrace - ? <div> - <h4 className="spacer-bottom"> - {translate('background_tasks.error_stacktrace')} - </h4> - <pre className="js-task-stacktrace">{stacktrace}</pre> - </div> - : <div> - <h4 className="spacer-bottom">{translate('background_tasks.error_message')}</h4> - <pre className="js-task-error-message">{task.errorMessage}</pre> - </div>} + ? <div> + <h4 className="spacer-bottom"> + {translate('background_tasks.error_stacktrace')} + </h4> + <pre className="js-task-stacktrace"> + {stacktrace} + </pre> + </div> + : <div> + <h4 className="spacer-bottom"> + {translate('background_tasks.error_message')} + </h4> + <pre className="js-task-error-message"> + {task.errorMessage} + </pre> + </div>} </div> <div className="modal-foot"> @@ -107,7 +112,6 @@ export default class Stacktrace extends React.PureComponent { {translate('close')} </a> </div> - </Modal> ); } diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/TaskComponent.js b/server/sonar-web/src/main/js/apps/background-tasks/components/TaskComponent.js index 7f803d325db..fdd7aeedc7a 100644 --- a/server/sonar-web/src/main/js/apps/background-tasks/components/TaskComponent.js +++ b/server/sonar-web/src/main/js/apps/background-tasks/components/TaskComponent.js @@ -36,7 +36,9 @@ export default function TaskComponent(props: Props) { if (!task.componentKey) { return ( <td> - <span className="note">{task.id}</span> + <span className="note"> + {task.id} + </span> {types.length > 1 && <TaskType task={task} />} </td> ); diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/TaskDate.js b/server/sonar-web/src/main/js/apps/background-tasks/components/TaskDate.js index 119591b2e4e..0e5c2348f1f 100644 --- a/server/sonar-web/src/main/js/apps/background-tasks/components/TaskDate.js +++ b/server/sonar-web/src/main/js/apps/background-tasks/components/TaskDate.js @@ -25,7 +25,11 @@ const TaskDate = ({ date, baseDate, format -}: { date: string, baseDate: string, format: string }) => { +}: { + date: string, + baseDate: string, + format: string +}) => { const m = moment(date); const baseM = moment(baseDate); const diff = date && baseDate ? m.diff(baseM, 'days') : 0; diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/TaskStatus.js b/server/sonar-web/src/main/js/apps/background-tasks/components/TaskStatus.js index 471b7de04de..5feb8665762 100644 --- a/server/sonar-web/src/main/js/apps/background-tasks/components/TaskStatus.js +++ b/server/sonar-web/src/main/js/apps/background-tasks/components/TaskStatus.js @@ -36,24 +36,34 @@ const TaskStatus = ({ task }: { task: Task }) => { break; case STATUSES.SUCCESS: inner = ( - <span className="badge badge-success">{translate('background_task.status.SUCCESS')}</span> + <span className="badge badge-success"> + {translate('background_task.status.SUCCESS')} + </span> ); break; case STATUSES.FAILED: inner = ( - <span className="badge badge-danger">{translate('background_task.status.FAILED')}</span> + <span className="badge badge-danger"> + {translate('background_task.status.FAILED')} + </span> ); break; case STATUSES.CANCELED: inner = ( - <span className="badge badge-muted">{translate('background_task.status.CANCELED')}</span> + <span className="badge badge-muted"> + {translate('background_task.status.CANCELED')} + </span> ); break; default: inner = ''; } - return <td className="thin spacer-right">{inner}</td>; + return ( + <td className="thin spacer-right"> + {inner} + </td> + ); }; export default TaskStatus; diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/Tasks.js b/server/sonar-web/src/main/js/apps/background-tasks/components/Tasks.js index 5b8903a9b58..622409ca796 100644 --- a/server/sonar-web/src/main/js/apps/background-tasks/components/Tasks.js +++ b/server/sonar-web/src/main/js/apps/background-tasks/components/Tasks.js @@ -49,19 +49,33 @@ export default class Tasks extends React.PureComponent { <table className={className}> <thead> <tr> - <th>{translate('background_tasks.table.status')}</th> - <th>{translate('background_tasks.table.task')}</th> - <th>{translate('background_tasks.table.id')}</th> + <th> + {translate('background_tasks.table.status')} + </th> + <th> + {translate('background_tasks.table.task')} + </th> + <th> + {translate('background_tasks.table.id')} + </th> <th> </th> - <th className="text-right">{translate('background_tasks.table.submitted')}</th> - <th className="text-right">{translate('background_tasks.table.started')}</th> - <th className="text-right">{translate('background_tasks.table.finished')}</th> - <th className="text-right">{translate('background_tasks.table.duration')}</th> + <th className="text-right"> + {translate('background_tasks.table.submitted')} + </th> + <th className="text-right"> + {translate('background_tasks.table.started')} + </th> + <th className="text-right"> + {translate('background_tasks.table.finished')} + </th> + <th className="text-right"> + {translate('background_tasks.table.duration')} + </th> <th> </th> </tr> </thead> <tbody> - {tasks.map((task, index, tasks) => ( + {tasks.map((task, index, tasks) => <Task key={task.id} task={task} @@ -72,7 +86,7 @@ export default class Tasks extends React.PureComponent { onCancelTask={onCancelTask} onFilterTask={onFilterTask} /> - ))} + )} </tbody> </table> ); diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/TypesFilter.js b/server/sonar-web/src/main/js/apps/background-tasks/components/TypesFilter.js index 51d5fc4b759..5ca1ee54c67 100644 --- a/server/sonar-web/src/main/js/apps/background-tasks/components/TypesFilter.js +++ b/server/sonar-web/src/main/js/apps/background-tasks/components/TypesFilter.js @@ -27,7 +27,11 @@ const TypesFilter = ({ value, onChange, types -}: { value: string, onChange: Function, types: string[] }) => { +}: { + value: string, + onChange: Function, + types: string[] +}) => { const options = types.map(t => { return { value: t, diff --git a/server/sonar-web/src/main/js/apps/code/components/Breadcrumbs.js b/server/sonar-web/src/main/js/apps/code/components/Breadcrumbs.js index 1770620d9dd..a6f5a0aedfa 100644 --- a/server/sonar-web/src/main/js/apps/code/components/Breadcrumbs.js +++ b/server/sonar-web/src/main/js/apps/code/components/Breadcrumbs.js @@ -23,7 +23,7 @@ import Breadcrumb from './Breadcrumb'; export default function Breadcrumbs({ rootComponent, breadcrumbs }) { return ( <ul className="code-breadcrumbs"> - {breadcrumbs.map((component, index) => ( + {breadcrumbs.map((component, index) => <li key={component.key}> <Breadcrumb rootComponent={rootComponent} @@ -31,7 +31,7 @@ export default function Breadcrumbs({ rootComponent, breadcrumbs }) { canBrowse={index < breadcrumbs.length - 1} /> </li> - ))} + )} </ul> ); } diff --git a/server/sonar-web/src/main/js/apps/code/components/Component.js b/server/sonar-web/src/main/js/apps/code/components/Component.js index 1f5ea5fff04..6770e4c28a6 100644 --- a/server/sonar-web/src/main/js/apps/code/components/Component.js +++ b/server/sonar-web/src/main/js/apps/code/components/Component.js @@ -109,7 +109,7 @@ export default class Component extends React.PureComponent { /> </td> - {columns.map(column => ( + {columns.map(column => <td key={column.metric} className="thin nowrap text-right"> <div className="code-components-cell"> <ComponentMeasure @@ -119,7 +119,7 @@ export default class Component extends React.PureComponent { /> </div> </td> - ))} + )} </tr> ); } diff --git a/server/sonar-web/src/main/js/apps/code/components/ComponentName.js b/server/sonar-web/src/main/js/apps/code/components/ComponentName.js index 76ea80e652f..bad7f487537 100644 --- a/server/sonar-web/src/main/js/apps/code/components/ComponentName.js +++ b/server/sonar-web/src/main/js/apps/code/components/ComponentName.js @@ -51,8 +51,12 @@ const ComponentName = ({ component, rootComponent, previous, canBrowse }) => { const prefix = areBothDirs ? mostCommitPrefix([component.name + '/', previous.name + '/']) : ''; const name = prefix ? <span> - <span style={{ color: '#777' }}>{prefix}</span> - <span>{component.name.substr(prefix.length)}</span> + <span style={{ color: '#777' }}> + {prefix} + </span> + <span> + {component.name.substr(prefix.length)} + </span> </span> : component.name; @@ -63,9 +67,7 @@ const ComponentName = ({ component, rootComponent, previous, canBrowse }) => { <Link to={{ pathname: '/dashboard', query: { id: component.refKey } }} className="link-with-icon"> - <QualifierIcon qualifier={component.qualifier} /> - {' '} - <span>{name}</span> + <QualifierIcon qualifier={component.qualifier} /> <span>{name}</span> </Link> ); } else if (canBrowse) { @@ -75,17 +77,13 @@ const ComponentName = ({ component, rootComponent, previous, canBrowse }) => { } inner = ( <Link to={{ pathname: '/code', query }} className="link-with-icon"> - <QualifierIcon qualifier={component.qualifier} /> - {' '} - <span>{name}</span> + <QualifierIcon qualifier={component.qualifier} /> <span>{name}</span> </Link> ); } else { inner = ( <span> - <QualifierIcon qualifier={component.qualifier} /> - {' '} - {name} + <QualifierIcon qualifier={component.qualifier} /> {name} </span> ); } diff --git a/server/sonar-web/src/main/js/apps/code/components/Components.js b/server/sonar-web/src/main/js/apps/code/components/Components.js index 2d492285a2c..8e1451ff79e 100644 --- a/server/sonar-web/src/main/js/apps/code/components/Components.js +++ b/server/sonar-web/src/main/js/apps/code/components/Components.js @@ -39,7 +39,7 @@ export default function Components({ rootComponent, baseComponent, components, s </tbody>} <tbody> {components.length - ? components.map((component, index, list) => ( + ? components.map((component, index, list) => <Component key={component.key} rootComponent={rootComponent} @@ -48,7 +48,7 @@ export default function Components({ rootComponent, baseComponent, components, s previous={index > 0 ? list[index - 1] : null} canBrowse={true} /> - )) + ) : <ComponentsEmpty />} </tbody> </table> diff --git a/server/sonar-web/src/main/js/apps/code/components/ComponentsHeader.js b/server/sonar-web/src/main/js/apps/code/components/ComponentsHeader.js index ec63a912732..1552dfad89d 100644 --- a/server/sonar-web/src/main/js/apps/code/components/ComponentsHeader.js +++ b/server/sonar-web/src/main/js/apps/code/components/ComponentsHeader.js @@ -45,11 +45,11 @@ const ComponentsHeader = ({ baseComponent, rootComponent }) => { <tr className="code-components-header"> <th className="thin nowrap"> </th> <th> </th> - {columns.map(column => ( + {columns.map(column => <th key={column} className="thin nowrap text-right code-components-cell"> {baseComponent && column} </th> - ))} + )} </tr> </thead> ); diff --git a/server/sonar-web/src/main/js/apps/coding-rules/init.js b/server/sonar-web/src/main/js/apps/coding-rules/init.js index 6dab31d13b6..af9a1b27e24 100644 --- a/server/sonar-web/src/main/js/apps/coding-rules/init.js +++ b/server/sonar-web/src/main/js/apps/coding-rules/init.js @@ -37,13 +37,11 @@ import { areThereCustomOrganizations } from '../../store/organizations/utils'; const App = new Marionette.Application(); -App.on('start', function( - options: { - el: HTMLElement, - organization: ?string, - isDefaultOrganization: boolean - } -) { +App.on('start', function(options: { + el: HTMLElement, + organization: ?string, + isDefaultOrganization: boolean +}) { App.organization = options.organization; const data = options.organization ? { organization: options.organization } : {}; $.get(window.baseUrl + '/api/rules/app', data) diff --git a/server/sonar-web/src/main/js/apps/coding-rules/rule/rule-issues-view.js b/server/sonar-web/src/main/js/apps/coding-rules/rule/rule-issues-view.js index b6ec74ca5a0..e9cdac4acf7 100644 --- a/server/sonar-web/src/main/js/apps/coding-rules/rule/rule-issues-view.js +++ b/server/sonar-web/src/main/js/apps/coding-rules/rule/rule-issues-view.js @@ -54,7 +54,8 @@ export default Marionette.ItemView.extend({ return { ...project, name: projectBase != null ? projectBase.longName : '', - issuesUrl: projectBase != null && + issuesUrl: + projectBase != null && getComponentIssuesUrlAsString(projectBase.key, { resolved: 'false', rules: this.model.id diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/LeakPeriodLegend.js b/server/sonar-web/src/main/js/apps/component-measures/components/LeakPeriodLegend.js index de46b957a1d..302c02959bf 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/components/LeakPeriodLegend.js +++ b/server/sonar-web/src/main/js/apps/component-measures/components/LeakPeriodLegend.js @@ -37,5 +37,9 @@ export default function LeakPeriodLegend({ period }) { const date = getPeriodDate(period); const fromNow = moment(date).fromNow(); const tooltip = fromNow + ', ' + moment(date).format('LL'); - return <Tooltip placement="bottom" overlay={tooltip}>{label}</Tooltip>; + return ( + <Tooltip placement="bottom" overlay={tooltip}> + {label} + </Tooltip> + ); } diff --git a/server/sonar-web/src/main/js/apps/component-measures/details/MeasureDetailsHeader.js b/server/sonar-web/src/main/js/apps/component-measures/details/MeasureDetailsHeader.js index 6b2d5324559..392b7e19587 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/details/MeasureDetailsHeader.js +++ b/server/sonar-web/src/main/js/apps/component-measures/details/MeasureDetailsHeader.js @@ -61,7 +61,6 @@ export default function MeasureDetailsHeader({ <TooltipsContainer options={{ html: false }}> <div className="measure-details-value"> - {isDiff ? <div className="measure-details-value-leak"> <Measure measure={measure} metric={metric} /> diff --git a/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/Breadcrumb.js b/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/Breadcrumb.js index 15ac0ded735..aa038d9d004 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/Breadcrumb.js +++ b/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/Breadcrumb.js @@ -37,7 +37,11 @@ const Breadcrumb = ({ component, metric, onBrowse }) => { </a> ); } else { - inner = <span>{component.name}</span>; + inner = ( + <span> + {component.name} + </span> + ); } const value = isDiffMetric(metric.key) @@ -49,7 +53,10 @@ const Breadcrumb = ({ component, metric, onBrowse }) => { <QualifierIcon qualifier={component.qualifier} /> {inner} - {value != null && <span>{' (' + value + ')'}</span>} + {value != null && + <span> + {' (' + value + ')'} + </span>} </span> ); }; diff --git a/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/Breadcrumbs.js b/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/Breadcrumbs.js index 7bc20340cd4..227fad25782 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/Breadcrumbs.js +++ b/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/Breadcrumbs.js @@ -20,9 +20,9 @@ import React from 'react'; import Breadcrumb from './Breadcrumb'; -const Breadcrumbs = ({ breadcrumbs, metric, onBrowse }) => ( +const Breadcrumbs = ({ breadcrumbs, metric, onBrowse }) => <ul className="component-measures-breadcrumbs"> - {breadcrumbs.map((component, index) => ( + {breadcrumbs.map((component, index) => <li key={component.key}> <Breadcrumb component={component} @@ -30,8 +30,7 @@ const Breadcrumbs = ({ breadcrumbs, metric, onBrowse }) => ( onBrowse={index + 1 < breadcrumbs.length ? onBrowse : null} /> </li> - ))} - </ul> -); + )} + </ul>; export default Breadcrumbs; diff --git a/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/ComponentCell.js b/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/ComponentCell.js index 43d0d8bd422..6d9ae770a8a 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/ComponentCell.js +++ b/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/ComponentCell.js @@ -51,7 +51,10 @@ const ComponentCell = ({ component, isSelected, onClick }) => { <span title={component.refKey || component.key}> <QualifierIcon qualifier={component.qualifier} /> - {head.length > 0 && <span className="note">{head}/</span>} + {head.length > 0 && + <span className="note"> + {head}/ + </span>} <span>{tail}</span> </span> ); diff --git a/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/ComponentsList.js b/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/ComponentsList.js index 7acaeb62890..0faf5f66dfb 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/ComponentsList.js +++ b/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/ComponentsList.js @@ -39,18 +39,22 @@ const ComponentsList = ({ components, metrics, selected, metric, onClick }) => { <tr> <th> </th> <th className="text-right"> - <span className="small">{getLocalizedMetricName(metric)}</span> + <span className="small"> + {getLocalizedMetricName(metric)} + </span> </th> - {otherMetrics.map(metric => ( + {otherMetrics.map(metric => <th key={metric.key} className="text-right"> - <span className="small">{getLocalizedMetricName(metric)}</span> + <span className="small"> + {getLocalizedMetricName(metric)} + </span> </th> - ))} + )} </tr> </thead>} <tbody> - {components.map(component => ( + {components.map(component => <ComponentsListRow key={component.id} component={component} @@ -59,7 +63,7 @@ const ComponentsList = ({ components, metrics, selected, metric, onClick }) => { metric={metric} onClick={onClick} /> - ))} + )} </tbody> </table> ); diff --git a/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/ComponentsListRow.js b/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/ComponentsListRow.js index ca2f51c96a4..8e01925a987 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/ComponentsListRow.js +++ b/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/ComponentsListRow.js @@ -49,13 +49,13 @@ const ComponentsListRow = ({ component, otherMetrics, isSelected, metric, onClic <MeasureCell component={component} metric={metric} /> - {otherMeasures.map(measure => ( + {otherMeasures.map(measure => <MeasureCell key={measure.metric.key} component={replaceMeasure(component, measure)} metric={measure.metric} /> - ))} + )} </tr> ); }; diff --git a/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/ListView.js b/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/ListView.js index b3413a23c7c..901073b7a6c 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/ListView.js +++ b/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/ListView.js @@ -114,20 +114,20 @@ export default class ListView extends React.PureComponent { } const selectedIndex = components.indexOf(selected); const sourceViewerPeriod = metric.key.indexOf('new_') === 0 && !!leakPeriod ? leakPeriod : null; - const sourceViewerPeriodDate = sourceViewerPeriod != null - ? moment(sourceViewerPeriod.date).toDate() - : null; - - const filterLine = sourceViewerPeriodDate != null - ? line => { - if (line.scmDate) { - const scmDate = moment(line.scmDate).toDate(); - return scmDate >= sourceViewerPeriodDate; - } else { - return false; + const sourceViewerPeriodDate = + sourceViewerPeriod != null ? moment(sourceViewerPeriod.date).toDate() : null; + + const filterLine = + sourceViewerPeriodDate != null + ? line => { + if (line.scmDate) { + const scmDate = moment(line.scmDate).toDate(); + return scmDate >= sourceViewerPeriodDate; + } else { + return false; + } } - } - : undefined; + : undefined; return ( <div ref="container" className="measure-details-plain-list"> diff --git a/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/TreeView.js b/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/TreeView.js index a66f31d6c64..0bbfe14681e 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/TreeView.js +++ b/server/sonar-web/src/main/js/apps/component-measures/details/drilldown/TreeView.js @@ -107,20 +107,20 @@ export default class TreeView extends React.PureComponent { const selectedIndex = components.indexOf(selected); const sourceViewerPeriod = metric.key.indexOf('new_') === 0 && !!leakPeriod ? leakPeriod : null; - const sourceViewerPeriodDate = sourceViewerPeriod != null - ? moment(sourceViewerPeriod.date).toDate() - : null; - - const filterLine = sourceViewerPeriodDate != null - ? line => { - if (line.scmDate) { - const scmDate = moment(line.scmDate).toDate(); - return scmDate >= sourceViewerPeriodDate; - } else { - return false; + const sourceViewerPeriodDate = + sourceViewerPeriod != null ? moment(sourceViewerPeriod.date).toDate() : null; + + const filterLine = + sourceViewerPeriodDate != null + ? line => { + if (line.scmDate) { + const scmDate = moment(line.scmDate).toDate(); + return scmDate >= sourceViewerPeriodDate; + } else { + return false; + } } - } - : undefined; + : undefined; return ( <div ref="container" className="measure-details-plain-list"> diff --git a/server/sonar-web/src/main/js/apps/component-measures/home/AllMeasures.js b/server/sonar-web/src/main/js/apps/component-measures/home/AllMeasures.js index eafc7bcc324..ab69f4baab3 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/home/AllMeasures.js +++ b/server/sonar-web/src/main/js/apps/component-measures/home/AllMeasures.js @@ -27,14 +27,14 @@ export default function AllMeasures(props) { return ( <ul className="measures-domains"> - {domains.map(domain => ( + {domains.map(domain => <AllMeasuresDomain key={domain.name} domain={domain} component={component} leakPeriodLabel={leakPeriodLabel} /> - ))} + )} </ul> ); } diff --git a/server/sonar-web/src/main/js/apps/component-measures/home/Home.js b/server/sonar-web/src/main/js/apps/component-measures/home/Home.js index 14cbdcdab61..fa3ddd96662 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/home/Home.js +++ b/server/sonar-web/src/main/js/apps/component-measures/home/Home.js @@ -55,7 +55,7 @@ export default class Home extends React.PureComponent { {translate('all')} </IndexLink> </li> - {domains.map(domain => ( + {domains.map(domain => <li key={domain.name}> <Link to={{ @@ -66,7 +66,7 @@ export default class Home extends React.PureComponent { {getLocalizedMetricDomain(domain.name)} </Link> </li> - ))} + )} </ul> </nav> diff --git a/server/sonar-web/src/main/js/apps/component-measures/home/MeasuresList.js b/server/sonar-web/src/main/js/apps/component-measures/home/MeasuresList.js index 78bf2181269..3ba27f5785b 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/home/MeasuresList.js +++ b/server/sonar-web/src/main/js/apps/component-measures/home/MeasuresList.js @@ -26,7 +26,7 @@ import IssueTypeIcon from '../../../components/ui/IssueTypeIcon'; const MeasuresList = ({ measures, component, className = 'domain-measures' }) => { return ( <ul className={className}> - {measures.map(measure => ( + {measures.map(measure => <li key={measure.metric.key} id={`measure-${measure.metric.key}`}> <Link to={{ @@ -43,7 +43,7 @@ const MeasuresList = ({ measures, component, className = 'domain-measures' }) => <MeasureListValue measure={measure} /> </Link> </li> - ))} + )} </ul> ); }; diff --git a/server/sonar-web/src/main/js/apps/component-measures/styles.css b/server/sonar-web/src/main/js/apps/component-measures/styles.css index 2d753f413ac..1c6f8c433ba 100644 --- a/server/sonar-web/src/main/js/apps/component-measures/styles.css +++ b/server/sonar-web/src/main/js/apps/component-measures/styles.css @@ -5,7 +5,8 @@ margin-bottom: 20px; } -.measures-domains {} +.measures-domains { +} .measures-domains > li { margin-bottom: 20px; @@ -140,7 +141,8 @@ } .measure-details-metric, -.measure-details-value {} +.measure-details-value { +} .measure-details-metric { display: inline-block; @@ -221,7 +223,8 @@ fill: #4b9fd5; } -.measure-details-plain-list {} +.measure-details-plain-list { +} .measure-details-components { width: 300px; diff --git a/server/sonar-web/src/main/js/apps/issues/actions.js b/server/sonar-web/src/main/js/apps/issues/actions.js index 2bde7c95332..70f151a50d5 100644 --- a/server/sonar-web/src/main/js/apps/issues/actions.js +++ b/server/sonar-web/src/main/js/apps/issues/actions.js @@ -55,9 +55,8 @@ export const selectLocation = (nextIndex: ?number) => (state: State) => { export const selectNextLocation = (state: State) => { const { selectedFlowIndex, selectedLocationIndex: index, openIssue } = state; if (openIssue) { - const locations = selectedFlowIndex != null - ? openIssue.flows[selectedFlowIndex] - : openIssue.secondaryLocations; + const locations = + selectedFlowIndex != null ? openIssue.flows[selectedFlowIndex] : openIssue.secondaryLocations; return { selectedLocationIndex: index != null && locations.length > index + 1 ? index + 1 : index }; diff --git a/server/sonar-web/src/main/js/apps/issues/components/App.js b/server/sonar-web/src/main/js/apps/issues/components/App.js index e003d9ec0ea..60dd9d43f9f 100644 --- a/server/sonar-web/src/main/js/apps/issues/components/App.js +++ b/server/sonar-web/src/main/js/apps/issues/components/App.js @@ -385,9 +385,8 @@ export default class App extends React.PureComponent { referencedLanguages: keyBy(other.languages, 'key'), referencedRules: keyBy(other.rules, 'key'), referencedUsers: keyBy(other.users, 'login'), - selected: issues.length > 0 - ? openIssue != null ? openIssue.key : issues[0].key - : undefined, + selected: + issues.length > 0 ? (openIssue != null ? openIssue.key : issues[0].key) : undefined, selectedFlowIndex: null, selectedLocationIndex: null }); @@ -785,7 +784,9 @@ export default class App extends React.PureComponent { return ( <div className="pull-right note"> <span className="shortcut-button little-spacer-right">alt</span> - <span className="little-spacer-right">{'+'}</span> + <span className="little-spacer-right"> + {'+'} + </span> <span className="shortcut-button little-spacer-right">↑</span> <span className="shortcut-button little-spacer-right">↓</span> {hasSeveralFlows && diff --git a/server/sonar-web/src/main/js/apps/issues/components/BulkChangeModal.js b/server/sonar-web/src/main/js/apps/issues/components/BulkChangeModal.js index f9854fb1cce..8fe75c2019c 100644 --- a/server/sonar-web/src/main/js/apps/issues/components/BulkChangeModal.js +++ b/server/sonar-web/src/main/js/apps/issues/components/BulkChangeModal.js @@ -208,16 +208,17 @@ export default class BulkChangeModal extends React.PureComponent { })); } - renderCancelButton = () => ( + renderCancelButton = () => <a id="bulk-change-cancel" href="#" onClick={this.handleCloseClick}> {translate('cancel')} - </a> - ); + </a>; - renderLoading = () => ( + renderLoading = () => <div> <div className="modal-head"> - <h2>{translate('bulk_change')}</h2> + <h2> + {translate('bulk_change')} + </h2> </div> <div className="modal-body"> <div className="text-center"> @@ -227,29 +228,27 @@ export default class BulkChangeModal extends React.PureComponent { <div className="modal-foot"> {this.renderCancelButton()} </div> - </div> - ); + </div>; - renderCheckbox = (field: string) => ( - <Checkbox checked={this.state[field] != null} onCheck={this.handleFieldCheck(field)} /> - ); + renderCheckbox = (field: string) => + <Checkbox checked={this.state[field] != null} onCheck={this.handleFieldCheck(field)} />; - renderAffected = (affected: number) => ( + renderAffected = (affected: number) => <div className="pull-right note"> ({translateWithParameters('issue_bulk_change.x_issues', affected)}) - </div> - ); + </div>; - renderField = (field: string, label: string, affected: ?number, input: Object) => ( + renderField = (field: string, label: string, affected: ?number, input: Object) => <div className="modal-field" id={`issues-bulk-change-${field}`}> - <label htmlFor={field}>{translate(label)}</label> + <label htmlFor={field}> + {translate(label)} + </label> {this.renderCheckbox(field)} {input} {affected != null && this.renderAffected(affected)} - </div> - ); + </div>; - renderAssigneeOption = (option: { avatar?: string, email?: string, label: string }) => ( + renderAssigneeOption = (option: { avatar?: string, email?: string, label: string }) => <span> {(option.avatar != null || option.email != null) && <Avatar @@ -260,8 +259,7 @@ export default class BulkChangeModal extends React.PureComponent { size={16} />} {option.label} - </span> - ); + </span>; renderAssigneeField = () => { const affected: number = this.state.issues.filter(hasAction('assign')).length; @@ -294,12 +292,11 @@ export default class BulkChangeModal extends React.PureComponent { const types = ['BUG', 'VULNERABILITY', 'CODE_SMELL']; const options = types.map(type => ({ label: translate('issue.type', type), value: type })); - const optionRenderer = (option: { label: string, value: string }) => ( + const optionRenderer = (option: { label: string, value: string }) => <span> <IssueTypeIcon className="little-spacer-right" query={option.value} /> {option.label} - </span> - ); + </span>; const input = ( <Select @@ -403,8 +400,10 @@ export default class BulkChangeModal extends React.PureComponent { return ( <div className="modal-field"> - <label>{translate('issue.transition')}</label> - {transitions.map(transition => ( + <label> + {translate('issue.transition')} + </label> + {transitions.map(transition => <span key={transition.transition}> <input checked={this.state.transition === transition.transition} @@ -422,7 +421,7 @@ export default class BulkChangeModal extends React.PureComponent { {this.renderAffected(transition.count)} <br /> </span> - ))} + )} </div> ); }; @@ -458,12 +457,13 @@ export default class BulkChangeModal extends React.PureComponent { ); }; - renderNotificationsField = () => ( + renderNotificationsField = () => <div className="modal-field"> - <label htmlFor="send-notifications">{translate('issue.send_notifications')}</label> + <label htmlFor="send-notifications"> + {translate('issue.send_notifications')} + </label> {this.renderCheckbox('notifications')} - </div> - ); + </div>; renderForm = () => { const { issues, paging, submitting } = this.state; @@ -474,7 +474,9 @@ export default class BulkChangeModal extends React.PureComponent { return ( <form id="bulk-change-form" onSubmit={this.handleSubmit}> <div className="modal-head"> - <h2>{translateWithParameters('issue_bulk_change.form.title', issues.length)}</h2> + <h2> + {translateWithParameters('issue_bulk_change.form.title', issues.length)} + </h2> </div> <div className="modal-body"> @@ -495,7 +497,9 @@ export default class BulkChangeModal extends React.PureComponent { <div className="modal-foot"> {submitting && <i className="spinner spacer-right" />} - <button disabled={submitting} id="bulk-change-submit">{translate('apply')}</button> + <button disabled={submitting} id="bulk-change-submit"> + {translate('apply')} + </button> {this.renderCancelButton()} </div> </form> diff --git a/server/sonar-web/src/main/js/apps/issues/components/FiltersHeader.js b/server/sonar-web/src/main/js/apps/issues/components/FiltersHeader.js index 85868906179..8971b5e76e1 100644 --- a/server/sonar-web/src/main/js/apps/issues/components/FiltersHeader.js +++ b/server/sonar-web/src/main/js/apps/issues/components/FiltersHeader.js @@ -45,7 +45,9 @@ export default class FiltersHeader extends React.PureComponent { </button> </div>} - <h3>{translate('filters')}</h3> + <h3> + {translate('filters')} + </h3> </div> ); } diff --git a/server/sonar-web/src/main/js/apps/issues/components/IssuesCounter.js b/server/sonar-web/src/main/js/apps/issues/components/IssuesCounter.js index 019bf77961d..6fa5a9d4b3b 100644 --- a/server/sonar-web/src/main/js/apps/issues/components/IssuesCounter.js +++ b/server/sonar-web/src/main/js/apps/issues/components/IssuesCounter.js @@ -27,15 +27,17 @@ type Props = { total: number }; -const IssuesCounter = (props: Props) => ( +const IssuesCounter = (props: Props) => <span> <strong> - {props.current != null && <span>{formatMeasure(props.current + 1, 'INT')} / </span>} + {props.current != null && + <span> + {formatMeasure(props.current + 1, 'INT')} + {' / '} + </span>} {formatMeasure(props.total, 'INT')} - </strong> - {' '} + </strong>{' '} {translate('issues.issues')} - </span> -); + </span>; export default IssuesCounter; diff --git a/server/sonar-web/src/main/js/apps/issues/components/IssuesList.js b/server/sonar-web/src/main/js/apps/issues/components/IssuesList.js index f5897fd518f..a3a6097152b 100644 --- a/server/sonar-web/src/main/js/apps/issues/components/IssuesList.js +++ b/server/sonar-web/src/main/js/apps/issues/components/IssuesList.js @@ -42,7 +42,7 @@ export default class IssuesList extends React.PureComponent { return ( <div> - {issues.map((issue, index) => ( + {issues.map((issue, index) => <ListItem checked={checked.includes(issue.key)} component={component} @@ -55,7 +55,7 @@ export default class IssuesList extends React.PureComponent { previousIssue={index > 0 ? issues[index - 1] : null} selected={selectedIssue != null && selectedIssue.key === issue.key} /> - ))} + )} </div> ); } diff --git a/server/sonar-web/src/main/js/apps/issues/components/IssuesSourceViewer.js b/server/sonar-web/src/main/js/apps/issues/components/IssuesSourceViewer.js index 8580fcff5b6..48aa84d718a 100644 --- a/server/sonar-web/src/main/js/apps/issues/components/IssuesSourceViewer.js +++ b/server/sonar-web/src/main/js/apps/issues/components/IssuesSourceViewer.js @@ -65,15 +65,17 @@ export default class IssuesSourceViewer extends React.PureComponent { render() { const { openIssue, selectedFlowIndex, selectedLocationIndex } = this.props; - const locations = selectedFlowIndex != null - ? openIssue.flows[selectedFlowIndex] - : openIssue.flows.length > 0 ? openIssue.flows[0] : openIssue.secondaryLocations; + const locations = + selectedFlowIndex != null + ? openIssue.flows[selectedFlowIndex] + : openIssue.flows.length > 0 ? openIssue.flows[0] : openIssue.secondaryLocations; - const locationMessage = locations != null && + const locationMessage = + locations != null && selectedLocationIndex != null && locations.length >= selectedLocationIndex - ? { index: selectedLocationIndex, text: locations[selectedLocationIndex].msg } - : undefined; + ? { index: selectedLocationIndex, text: locations[selectedLocationIndex].msg } + : undefined; return ( <div ref={node => (this.node = node)}> diff --git a/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssueBox.js b/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssueBox.js index 922379d0a7f..e9e1c5fdce0 100644 --- a/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssueBox.js +++ b/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssueBox.js @@ -58,9 +58,10 @@ export default class ConciseIssueBox extends React.PureComponent { const { selectedFlowIndex } = this.props; const { flows, secondaryLocations } = this.props.issue; - const locations = selectedFlowIndex != null - ? flows[selectedFlowIndex] - : flows.length > 0 ? flows[0] : secondaryLocations; + const locations = + selectedFlowIndex != null + ? flows[selectedFlowIndex] + : flows.length > 0 ? flows[0] : secondaryLocations; if (locations == null || locations.length < 15) { // if there are no locations, or there are just few diff --git a/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssueComponent.js b/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssueComponent.js index 17337603555..ab8ecd13226 100644 --- a/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssueComponent.js +++ b/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssueComponent.js @@ -25,10 +25,9 @@ type Props = { path: string }; -const ConciseIssueComponent = (props: Props) => ( +const ConciseIssueComponent = (props: Props) => <div className="concise-issue-component note text-ellipsis"> {collapsePath(props.path, 20)} - </div> -); + </div>; export default ConciseIssueComponent; diff --git a/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssueLocationBadge.js b/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssueLocationBadge.js index ae19b8f367f..794cef4a105 100644 --- a/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssueLocationBadge.js +++ b/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssueLocationBadge.js @@ -39,7 +39,8 @@ export default function ConciseIssueLocationBadge(props: Props) { formatMeasure(props.count) )}> <LocationIndex onClick={props.onClick} selected={props.selected}> - {'+'}{props.count} + {'+'} + {props.count} </LocationIndex> </Tooltip> ); diff --git a/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssueLocationsNavigator.js b/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssueLocationsNavigator.js index ebe8aff7935..bbe2beb7237 100644 --- a/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssueLocationsNavigator.js +++ b/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssueLocationsNavigator.js @@ -42,9 +42,10 @@ export default class ConciseIssueLocationsNavigator extends React.PureComponent const { selectedFlowIndex, selectedLocationIndex } = this.props; const { flows, secondaryLocations } = this.props.issue; - const locations = selectedFlowIndex != null - ? flows[selectedFlowIndex] - : flows.length > 0 ? flows[0] : secondaryLocations; + const locations = + selectedFlowIndex != null + ? flows[selectedFlowIndex] + : flows.length > 0 ? flows[0] : secondaryLocations; if (locations == null || locations.length === 0) { return null; @@ -52,7 +53,7 @@ export default class ConciseIssueLocationsNavigator extends React.PureComponent return ( <div className="spacer-top"> - {locations.map((location, index) => ( + {locations.map((location, index) => <ConciseIssueLocationsNavigatorLocation key={index} index={index} @@ -61,7 +62,7 @@ export default class ConciseIssueLocationsNavigator extends React.PureComponent scroll={this.props.scroll} selected={index === selectedLocationIndex} /> - ))} + )} </div> ); } diff --git a/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssuesList.js b/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssuesList.js index fba7825a6b4..611d14deca0 100644 --- a/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssuesList.js +++ b/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/ConciseIssuesList.js @@ -46,7 +46,7 @@ export default class ConciseIssuesList extends React.PureComponent { render() { return ( <div> - {this.props.issues.map((issue, index) => ( + {this.props.issues.map((issue, index) => <ConciseIssue key={issue.key} issue={issue} @@ -59,7 +59,7 @@ export default class ConciseIssuesList extends React.PureComponent { selectedFlowIndex={this.props.selectedFlowIndex} selectedLocationIndex={this.props.selectedLocationIndex} /> - ))} + )} </div> ); } diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/AssigneeFacet.js b/server/sonar-web/src/main/js/apps/issues/sidebar/AssigneeFacet.js index 752666243da..f20e721b0ec 100644 --- a/server/sonar-web/src/main/js/apps/issues/sidebar/AssigneeFacet.js +++ b/server/sonar-web/src/main/js/apps/issues/sidebar/AssigneeFacet.js @@ -144,7 +144,7 @@ export default class AssigneeFacet extends React.PureComponent { return ( <FacetItemsList> - {assignees.map(assignee => ( + {assignees.map(assignee => <FacetItem active={this.isAssigneeActive(assignee)} facetMode={this.props.facetMode} @@ -154,7 +154,7 @@ export default class AssigneeFacet extends React.PureComponent { stat={this.getStat(assignee)} value={assignee} /> - ))} + )} </FacetItemsList> ); } diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/AuthorFacet.js b/server/sonar-web/src/main/js/apps/issues/sidebar/AuthorFacet.js index e0f85562ef9..96f81dce317 100644 --- a/server/sonar-web/src/main/js/apps/issues/sidebar/AuthorFacet.js +++ b/server/sonar-web/src/main/js/apps/issues/sidebar/AuthorFacet.js @@ -76,7 +76,7 @@ export default class AuthorFacet extends React.PureComponent { return ( <FacetItemsList> - {authors.map(author => ( + {authors.map(author => <FacetItem active={this.props.authors.includes(author)} facetMode={this.props.facetMode} @@ -86,7 +86,7 @@ export default class AuthorFacet extends React.PureComponent { stat={this.getStat(author)} value={author} /> - ))} + )} </FacetItemsList> ); } diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/CreationDateFacet.js b/server/sonar-web/src/main/js/apps/issues/sidebar/CreationDateFacet.js index a1ec652908d..ab491dd167b 100644 --- a/server/sonar-web/src/main/js/apps/issues/sidebar/CreationDateFacet.js +++ b/server/sonar-web/src/main/js/apps/issues/sidebar/CreationDateFacet.js @@ -84,7 +84,10 @@ export default class CreationDateFacet extends React.PureComponent { handleBarClick = ({ createdAfter, createdBefore - }: { createdAfter: Object, createdBefore?: Object }) => { + }: { + createdAfter: Object, + createdBefore?: Object + }) => { this.resetTo({ createdAfter: createdAfter.format(DATE_FORMAT), createdBefore: createdBefore && createdBefore.format(DATE_FORMAT) @@ -123,9 +126,10 @@ export default class CreationDateFacet extends React.PureComponent { const data = periods.map((startDate, index) => { const startMoment = moment(startDate); - const nextStartMoment = index < periods.length - 1 - ? moment(periods[index + 1]) - : createdBefore ? moment(createdBefore) : undefined; + const nextStartMoment = + index < periods.length - 1 + ? moment(periods[index + 1]) + : createdBefore ? moment(createdBefore) : undefined; const endMoment = nextStartMoment && nextStartMoment.clone().subtract(1, 'days'); let tooltip = @@ -174,7 +178,9 @@ export default class CreationDateFacet extends React.PureComponent { <div className="search-navigator-facet-container"> {m.format('LLL')} <br /> - <span className="note">({m.fromNow()})</span> + <span className="note"> + ({m.fromNow()}) + </span> </div> ); } diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/DirectoryFacet.js b/server/sonar-web/src/main/js/apps/issues/sidebar/DirectoryFacet.js index c41bad19312..13cf51d17d7 100644 --- a/server/sonar-web/src/main/js/apps/issues/sidebar/DirectoryFacet.js +++ b/server/sonar-web/src/main/js/apps/issues/sidebar/DirectoryFacet.js @@ -97,7 +97,7 @@ export default class DirectoryFacet extends React.PureComponent { return ( <FacetItemsList> - {directories.map(directory => ( + {directories.map(directory => <FacetItem active={this.props.directories.includes(directory)} facetMode={this.props.facetMode} @@ -107,7 +107,7 @@ export default class DirectoryFacet extends React.PureComponent { stat={this.getStat(directory)} value={directory} /> - ))} + )} </FacetItemsList> ); } diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/FacetMode.js b/server/sonar-web/src/main/js/apps/issues/sidebar/FacetMode.js index dcfb16202e9..1c178bc8873 100644 --- a/server/sonar-web/src/main/js/apps/issues/sidebar/FacetMode.js +++ b/server/sonar-web/src/main/js/apps/issues/sidebar/FacetMode.js @@ -48,7 +48,7 @@ export default class FacetMode extends React.PureComponent { <FacetHeader name={translate('issues.facet.mode')} /> <FacetItemsList> - {modes.map(mode => ( + {modes.map(mode => <FacetItem active={facetMode === mode} facetMode={this.props.facetMode} @@ -59,7 +59,7 @@ export default class FacetMode extends React.PureComponent { stat={null} value={mode} /> - ))} + )} </FacetItemsList> </FacetBox> ); diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/FileFacet.js b/server/sonar-web/src/main/js/apps/issues/sidebar/FileFacet.js index 48b33e83586..b6404f3fd3b 100644 --- a/server/sonar-web/src/main/js/apps/issues/sidebar/FileFacet.js +++ b/server/sonar-web/src/main/js/apps/issues/sidebar/FileFacet.js @@ -93,7 +93,7 @@ export default class FileFacet extends React.PureComponent { return ( <FacetItemsList> - {files.map(file => ( + {files.map(file => <FacetItem active={this.props.files.includes(file)} facetMode={this.props.facetMode} @@ -103,7 +103,7 @@ export default class FileFacet extends React.PureComponent { stat={this.getStat(file)} value={file} /> - ))} + )} </FacetItemsList> ); } diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/LanguageFacet.js b/server/sonar-web/src/main/js/apps/issues/sidebar/LanguageFacet.js index c2c8592c5ca..ec7ba416c86 100644 --- a/server/sonar-web/src/main/js/apps/issues/sidebar/LanguageFacet.js +++ b/server/sonar-web/src/main/js/apps/issues/sidebar/LanguageFacet.js @@ -89,7 +89,7 @@ export default class LanguageFacet extends React.PureComponent { return ( <FacetItemsList> - {languages.map(language => ( + {languages.map(language => <FacetItem active={this.props.languages.includes(language)} facetMode={this.props.facetMode} @@ -99,7 +99,7 @@ export default class LanguageFacet extends React.PureComponent { stat={this.getStat(language)} value={language} /> - ))} + )} </FacetItemsList> ); } diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/ModuleFacet.js b/server/sonar-web/src/main/js/apps/issues/sidebar/ModuleFacet.js index 35e805a54bc..c7eb7c8dc26 100644 --- a/server/sonar-web/src/main/js/apps/issues/sidebar/ModuleFacet.js +++ b/server/sonar-web/src/main/js/apps/issues/sidebar/ModuleFacet.js @@ -90,7 +90,7 @@ export default class ModuleFacet extends React.PureComponent { return ( <FacetItemsList> - {modules.map(module => ( + {modules.map(module => <FacetItem active={this.props.modules.includes(module)} facetMode={this.props.facetMode} @@ -100,7 +100,7 @@ export default class ModuleFacet extends React.PureComponent { stat={this.getStat(module)} value={module} /> - ))} + )} </FacetItemsList> ); } diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/ProjectFacet.js b/server/sonar-web/src/main/js/apps/issues/sidebar/ProjectFacet.js index d7b7becca9f..e000234b6d4 100644 --- a/server/sonar-web/src/main/js/apps/issues/sidebar/ProjectFacet.js +++ b/server/sonar-web/src/main/js/apps/issues/sidebar/ProjectFacet.js @@ -134,7 +134,7 @@ export default class ProjectFacet extends React.PureComponent { return ( <FacetItemsList> - {projects.map(project => ( + {projects.map(project => <FacetItem active={this.props.projects.includes(project)} facetMode={this.props.facetMode} @@ -144,7 +144,7 @@ export default class ProjectFacet extends React.PureComponent { stat={this.getStat(project)} value={project} /> - ))} + )} </FacetItemsList> ); } diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/RuleFacet.js b/server/sonar-web/src/main/js/apps/issues/sidebar/RuleFacet.js index f28e7de47b0..d4d322eeb6d 100644 --- a/server/sonar-web/src/main/js/apps/issues/sidebar/RuleFacet.js +++ b/server/sonar-web/src/main/js/apps/issues/sidebar/RuleFacet.js @@ -101,7 +101,7 @@ export default class RuleFacet extends React.PureComponent { return ( <FacetItemsList> - {rules.map(rule => ( + {rules.map(rule => <FacetItem active={this.props.rules.includes(rule)} facetMode={this.props.facetMode} @@ -111,7 +111,7 @@ export default class RuleFacet extends React.PureComponent { stat={this.getStat(rule)} value={rule} /> - ))} + )} </FacetItemsList> ); } diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/StatusFacet.js b/server/sonar-web/src/main/js/apps/issues/sidebar/StatusFacet.js index 14f4a09fc63..8fc81051b1b 100644 --- a/server/sonar-web/src/main/js/apps/issues/sidebar/StatusFacet.js +++ b/server/sonar-web/src/main/js/apps/issues/sidebar/StatusFacet.js @@ -68,9 +68,7 @@ export default class StatusFacet extends React.PureComponent { renderStatus(status: string) { return ( <span> - <i className={`icon-status-${status.toLowerCase()}`} /> - {' '} - {translate('issue.status', status)} + <i className={`icon-status-${status.toLowerCase()}`} /> {translate('issue.status', status)} </span> ); } diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/TagFacet.js b/server/sonar-web/src/main/js/apps/issues/sidebar/TagFacet.js index 91fc77c5f54..319bf8df0eb 100644 --- a/server/sonar-web/src/main/js/apps/issues/sidebar/TagFacet.js +++ b/server/sonar-web/src/main/js/apps/issues/sidebar/TagFacet.js @@ -98,7 +98,7 @@ export default class TagFacet extends React.PureComponent { return ( <FacetItemsList> - {tags.map(tag => ( + {tags.map(tag => <FacetItem active={this.props.tags.includes(tag)} facetMode={this.props.facetMode} @@ -108,7 +108,7 @@ export default class TagFacet extends React.PureComponent { stat={this.getStat(tag)} value={tag} /> - ))} + )} </FacetItemsList> ); } diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/TypeFacet.js b/server/sonar-web/src/main/js/apps/issues/sidebar/TypeFacet.js index f8b7630b834..362e690c997 100644 --- a/server/sonar-web/src/main/js/apps/issues/sidebar/TypeFacet.js +++ b/server/sonar-web/src/main/js/apps/issues/sidebar/TypeFacet.js @@ -76,7 +76,11 @@ export default class TypeFacet extends React.PureComponent { disabled={stat === 0 && !active} facetMode={this.props.facetMode} key={type} - name={<span><IssueTypeIcon query={type} /> {translate('issue.type', type)}</span>} + name={ + <span> + <IssueTypeIcon query={type} /> {translate('issue.type', type)} + </span> + } onClick={this.handleItemClick} stat={stat} value={type} diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/components/FacetHeader.js b/server/sonar-web/src/main/js/apps/issues/sidebar/components/FacetHeader.js index 19b720e9f7e..eb084d38f65 100644 --- a/server/sonar-web/src/main/js/apps/issues/sidebar/components/FacetHeader.js +++ b/server/sonar-web/src/main/js/apps/issues/sidebar/components/FacetHeader.js @@ -73,7 +73,11 @@ export default class FacetHeader extends React.PureComponent { if (this.props.open || !this.props.values) { return null; } - return <span className="spacer-left badge is-rounded">{this.props.values}</span>; + return ( + <span className="spacer-left badge is-rounded"> + {this.props.values} + </span> + ); } render() { @@ -90,7 +94,7 @@ export default class FacetHeader extends React.PureComponent { {this.props.onClick ? <a className="search-navigator-facet-header" href="#" onClick={this.handleClick}> - {this.renderCheckbox()}{' '}{this.props.name}{' '}{this.renderValueIndicator()} + {this.renderCheckbox()} {this.props.name} {this.renderValueIndicator()} </a> : <span className="search-navigator-facet-header"> {this.props.name} diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/components/FacetItem.js b/server/sonar-web/src/main/js/apps/issues/sidebar/components/FacetItem.js index 81feb40dbf1..58e64edbad7 100644 --- a/server/sonar-web/src/main/js/apps/issues/sidebar/components/FacetItem.js +++ b/server/sonar-web/src/main/js/apps/issues/sidebar/components/FacetItem.js @@ -61,12 +61,20 @@ export default class FacetItem extends React.PureComponent { return this.props.disabled ? <span className={className}> - <span className="facet-name">{this.props.name}</span> - <span className="facet-stat">{formattedStat}</span> + <span className="facet-name"> + {this.props.name} + </span> + <span className="facet-stat"> + {formattedStat} + </span> </span> : <a className={className} data-value={this.props.value} href="#" onClick={this.handleClick}> - <span className="facet-name">{this.props.name}</span> - <span className="facet-stat">{formattedStat}</span> + <span className="facet-name"> + {this.props.name} + </span> + <span className="facet-stat"> + {formattedStat} + </span> </a>; } } diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/components/__tests__/FacetBox-test.js b/server/sonar-web/src/main/js/apps/issues/sidebar/components/__tests__/FacetBox-test.js index 0eb453e8066..2ebd4b3feaa 100644 --- a/server/sonar-web/src/main/js/apps/issues/sidebar/components/__tests__/FacetBox-test.js +++ b/server/sonar-web/src/main/js/apps/issues/sidebar/components/__tests__/FacetBox-test.js @@ -23,5 +23,11 @@ import { shallow } from 'enzyme'; import FacetBox from '../FacetBox'; it('should render', () => { - expect(shallow(<FacetBox property="foo"><div /></FacetBox>)).toMatchSnapshot(); + expect( + shallow( + <FacetBox property="foo"> + <div /> + </FacetBox> + ) + ).toMatchSnapshot(); }); diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/components/__tests__/FacetItemsList-test.js b/server/sonar-web/src/main/js/apps/issues/sidebar/components/__tests__/FacetItemsList-test.js index 883e62b88d4..39fc1fb4eef 100644 --- a/server/sonar-web/src/main/js/apps/issues/sidebar/components/__tests__/FacetItemsList-test.js +++ b/server/sonar-web/src/main/js/apps/issues/sidebar/components/__tests__/FacetItemsList-test.js @@ -23,5 +23,11 @@ import { shallow } from 'enzyme'; import FacetItemsList from '../FacetItemsList'; it('should render', () => { - expect(shallow(<FacetItemsList><div /></FacetItemsList>)).toMatchSnapshot(); + expect( + shallow( + <FacetItemsList> + <div /> + </FacetItemsList> + ) + ).toMatchSnapshot(); }); diff --git a/server/sonar-web/src/main/js/apps/issues/styles.css b/server/sonar-web/src/main/js/apps/issues/styles.css index b2041786cf7..3d1a53be793 100644 --- a/server/sonar-web/src/main/js/apps/issues/styles.css +++ b/server/sonar-web/src/main/js/apps/issues/styles.css @@ -2,7 +2,8 @@ line-height: 24px; } -.concise-issues-list-header, .concise-issues-list-header-inner { +.concise-issues-list-header, +.concise-issues-list-header-inner { } .concise-issues-list-header { @@ -114,7 +115,8 @@ text-align: right; } -.issues .search-navigator-facet-header, .issues .search-navigator-facet-list { +.issues .search-navigator-facet-header, +.issues .search-navigator-facet-list { padding-left: 0; padding-right: 0; } diff --git a/server/sonar-web/src/main/js/apps/organizations/components/MembersList.js b/server/sonar-web/src/main/js/apps/organizations/components/MembersList.js index c4996144eae..1d70e46c067 100644 --- a/server/sonar-web/src/main/js/apps/organizations/components/MembersList.js +++ b/server/sonar-web/src/main/js/apps/organizations/components/MembersList.js @@ -38,7 +38,7 @@ export default class MembersList extends React.PureComponent { return ( <table className="data zebra"> <tbody> - {this.props.members.map(member => ( + {this.props.members.map(member => <MembersListItem key={member.login} member={member} @@ -47,7 +47,7 @@ export default class MembersList extends React.PureComponent { removeMember={this.props.removeMember} updateMemberGroups={this.props.updateMemberGroups} /> - ))} + )} </tbody> </table> ); diff --git a/server/sonar-web/src/main/js/apps/organizations/components/MembersListHeader.js b/server/sonar-web/src/main/js/apps/organizations/components/MembersListHeader.js index a609ffce38e..51e91986524 100644 --- a/server/sonar-web/src/main/js/apps/organizations/components/MembersListHeader.js +++ b/server/sonar-web/src/main/js/apps/organizations/components/MembersListHeader.js @@ -38,8 +38,7 @@ export default class MembersListHeader extends React.PureComponent { <UsersSearch onSearch={this.props.handleSearch} className="display-inline-block" /> {total != null && <span className="pull-right little-spacer-top"> - <strong>{formatMeasure(total, 'INT')}</strong> - {' '} + <strong>{formatMeasure(total, 'INT')}</strong>{' '} {translate('organization.members.members')} </span>} </div> diff --git a/server/sonar-web/src/main/js/apps/organizations/components/MembersListItem.js b/server/sonar-web/src/main/js/apps/organizations/components/MembersListItem.js index 1c4fe231339..3ee6a16d9de 100644 --- a/server/sonar-web/src/main/js/apps/organizations/components/MembersListItem.js +++ b/server/sonar-web/src/main/js/apps/organizations/components/MembersListItem.js @@ -48,8 +48,12 @@ export default class MembersListItem extends React.PureComponent { <Avatar hash={member.avatar} email={member.email} name={member.name} size={AVATAR_SIZE} /> </td> <td className="nowrap text-middle"> - <strong>{member.name}</strong> - <span className="note little-spacer-left">{member.login}</span> + <strong> + {member.name} + </strong> + <span className="note little-spacer-left"> + {member.login} + </span> </td> {organization.canAdmin && <td className="text-right text-middle"> @@ -64,9 +68,7 @@ export default class MembersListItem extends React.PureComponent { <button className="dropdown-toggle little-spacer-right button-compact" data-toggle="dropdown"> - <i className="icon-settings" /> - {' '} - <i className="icon-dropdown" /> + <i className="icon-settings" /> <i className="icon-dropdown" /> </button> <ul className="dropdown-menu dropdown-menu-right"> <li> diff --git a/server/sonar-web/src/main/js/apps/organizations/components/OrganizationDelete.js b/server/sonar-web/src/main/js/apps/organizations/components/OrganizationDelete.js index dbfce33a3fd..0269d9640a9 100644 --- a/server/sonar-web/src/main/js/apps/organizations/components/OrganizationDelete.js +++ b/server/sonar-web/src/main/js/apps/organizations/components/OrganizationDelete.js @@ -68,9 +68,10 @@ class OrganizationDelete extends React.PureComponent { className="modal" overlayClassName="modal-overlay" onRequestClose={this.handleCloseModal}> - <header className="modal-head"> - <h2>{translate('organization.delete')}</h2> + <h2> + {translate('organization.delete')} + </h2> </header> <form onSubmit={this.handleSubmit}> @@ -82,14 +83,15 @@ class OrganizationDelete extends React.PureComponent { {this.state.loading ? <i className="spinner" /> : <div> - <button type="submit" className="button-red">{translate('delete')}</button> + <button type="submit" className="button-red"> + {translate('delete')} + </button> <button type="reset" className="button-link" onClick={this.handleCloseModal}> {translate('cancel')} </button> </div>} </footer> </form> - </Modal> ); } @@ -101,8 +103,12 @@ class OrganizationDelete extends React.PureComponent { <Helmet title={title} /> <header className="page-header"> - <h1 className="page-title">{title}</h1> - <div className="page-description">{translate('organization.delete.description')}</div> + <h1 className="page-title"> + {title} + </h1> + <div className="page-description"> + {translate('organization.delete.description')} + </div> </header> <div> diff --git a/server/sonar-web/src/main/js/apps/organizations/components/OrganizationEdit.js b/server/sonar-web/src/main/js/apps/organizations/components/OrganizationEdit.js index a75fd2d9444..51c3494308e 100644 --- a/server/sonar-web/src/main/js/apps/organizations/components/OrganizationEdit.js +++ b/server/sonar-web/src/main/js/apps/organizations/components/OrganizationEdit.js @@ -101,7 +101,9 @@ class OrganizationEdit extends React.PureComponent { <Helmet title={title} /> <header className="page-header"> - <h1 className="page-title">{title}</h1> + <h1 className="page-title"> + {title} + </h1> </header> <form onSubmit={this.handleSubmit}> @@ -184,7 +186,9 @@ class OrganizationEdit extends React.PureComponent { </div> </div> <div className="modal-field"> - <button type="submit" disabled={this.state.loading}>{translate('save')}</button> + <button type="submit" disabled={this.state.loading}> + {translate('save')} + </button> {this.state.loading && <i className="spinner spacer-left" />} </div> </form> diff --git a/server/sonar-web/src/main/js/apps/organizations/components/OrganizationGroupCheckbox.js b/server/sonar-web/src/main/js/apps/organizations/components/OrganizationGroupCheckbox.js index b8afa70b90d..4c831405c7a 100644 --- a/server/sonar-web/src/main/js/apps/organizations/components/OrganizationGroupCheckbox.js +++ b/server/sonar-web/src/main/js/apps/organizations/components/OrganizationGroupCheckbox.js @@ -51,8 +51,7 @@ export default class OrganizationGroupCheckbox extends React.PureComponent { tabIndex={0} role="listitem" disabled={group.default}> - <Checkbox checked={this.props.checked} onCheck={this.onCheck} /> - {' '}{group.name} + <Checkbox checked={this.props.checked} onCheck={this.onCheck} /> {group.name} </li> ); } diff --git a/server/sonar-web/src/main/js/apps/organizations/components/forms/AddMemberForm.js b/server/sonar-web/src/main/js/apps/organizations/components/forms/AddMemberForm.js index e59f7137a8b..d31c8fa4581 100644 --- a/server/sonar-web/src/main/js/apps/organizations/components/forms/AddMemberForm.js +++ b/server/sonar-web/src/main/js/apps/organizations/components/forms/AddMemberForm.js @@ -81,12 +81,16 @@ export default class AddMemberForm extends React.PureComponent { overlayClassName="modal-overlay" onRequestClose={this.closeForm}> <header className="modal-head"> - <h2>{translate('users.add')}</h2> + <h2> + {translate('users.add')} + </h2> </header> <form onSubmit={this.handleSubmit}> <div className="modal-body"> <div className="modal-large-field"> - <label>{translate('users.search_description')}</label> + <label> + {translate('users.search_description')} + </label> <UsersSelectSearch autoFocus={true} selectedUser={this.state.selectedMember} diff --git a/server/sonar-web/src/main/js/apps/organizations/components/forms/ManageMemberGroupsForm.js b/server/sonar-web/src/main/js/apps/organizations/components/forms/ManageMemberGroupsForm.js index 4021f1a5ade..f04c903173e 100644 --- a/server/sonar-web/src/main/js/apps/organizations/components/forms/ManageMemberGroupsForm.js +++ b/server/sonar-web/src/main/js/apps/organizations/components/forms/ManageMemberGroupsForm.js @@ -109,7 +109,9 @@ export default class ManageMemberGroupsForm extends React.PureComponent { overlayClassName="modal-overlay" onRequestClose={this.closeForm}> <header className="modal-head"> - <h2>{translate('organization.members.manage_groups')}</h2> + <h2> + {translate('organization.members.manage_groups')} + </h2> </header> <form onSubmit={this.handleSubmit}> <div className="modal-body"> @@ -118,22 +120,25 @@ export default class ManageMemberGroupsForm extends React.PureComponent { 'organization.members.members_groups', this.props.member.name )} - </strong>{' '}{this.state.loading && <i className="spinner" />} + </strong>{' '} + {this.state.loading && <i className="spinner" />} {!this.state.loading && <ul className="list-spaced"> - {this.props.organizationGroups.map(group => ( + {this.props.organizationGroups.map(group => <OrganizationGroupCheckbox key={group.id} group={group} checked={this.isGroupSelected(group.name)} onCheck={this.onCheck} /> - ))} + )} </ul>} </div> <footer className="modal-foot"> <div> - <button type="submit">{translate('save')}</button> + <button type="submit"> + {translate('save')} + </button> <button type="reset" className="button-link" onClick={this.closeForm}> {translate('cancel')} </button> diff --git a/server/sonar-web/src/main/js/apps/organizations/components/forms/RemoveMemberForm.js b/server/sonar-web/src/main/js/apps/organizations/components/forms/RemoveMemberForm.js index 5d001dc026e..02eb6e6848f 100644 --- a/server/sonar-web/src/main/js/apps/organizations/components/forms/RemoveMemberForm.js +++ b/server/sonar-web/src/main/js/apps/organizations/components/forms/RemoveMemberForm.js @@ -65,7 +65,9 @@ export default class RemoveMemberForm extends React.PureComponent { overlayClassName="modal-overlay" onRequestClose={this.closeForm}> <header className="modal-head"> - <h2>{translate('users.remove')}</h2> + <h2> + {translate('users.remove')} + </h2> </header> <form onSubmit={this.handleSubmit}> <div className="modal-body markdown"> diff --git a/server/sonar-web/src/main/js/apps/organizations/navigation/OrganizationNavigation.js b/server/sonar-web/src/main/js/apps/organizations/navigation/OrganizationNavigation.js index b71ded90831..370b2bc4dfb 100644 --- a/server/sonar-web/src/main/js/apps/organizations/navigation/OrganizationNavigation.js +++ b/server/sonar-web/src/main/js/apps/organizations/navigation/OrganizationNavigation.js @@ -153,7 +153,9 @@ export default class OrganizationNavigation extends React.PureComponent { <OrganizationIcon /> </span> <Link to={`/organizations/${organization.key}`} className="link-base-color"> - <strong>{organization.name}</strong> + <strong> + {organization.name} + </strong> </Link> </h2> diff --git a/server/sonar-web/src/main/js/apps/overview/components/EmptyOverview.js b/server/sonar-web/src/main/js/apps/overview/components/EmptyOverview.js index ba9689b3b5e..3b5037fdb09 100644 --- a/server/sonar-web/src/main/js/apps/overview/components/EmptyOverview.js +++ b/server/sonar-web/src/main/js/apps/overview/components/EmptyOverview.js @@ -48,8 +48,12 @@ export default function EmptyOverview({ component }: Props) { </div> <div className="big-spacer-top"> - <h4>{translate('key')}</h4> - <code>{component.key}</code> + <h4> + {translate('key')} + </h4> + <code> + {component.key} + </code> </div> </div> ); diff --git a/server/sonar-web/src/main/js/apps/overview/components/LeakPeriodLegend.js b/server/sonar-web/src/main/js/apps/overview/components/LeakPeriodLegend.js index 4f3f98a9e5d..dc2af1733aa 100644 --- a/server/sonar-web/src/main/js/apps/overview/components/LeakPeriodLegend.js +++ b/server/sonar-web/src/main/js/apps/overview/components/LeakPeriodLegend.js @@ -85,7 +85,9 @@ export default function LeakPeriodLegend({ period }: { period: Period }) { <div className="overview-legend"> {translateWithParameters('overview.leak_period_x', leakPeriodLabel)} <br /> - <span className="note">{note}</span> + <span className="note"> + {note} + </span> </div> </Tooltip> ); diff --git a/server/sonar-web/src/main/js/apps/overview/events/Analysis.js b/server/sonar-web/src/main/js/apps/overview/events/Analysis.js index 592c91de41b..916341a2000 100644 --- a/server/sonar-web/src/main/js/apps/overview/events/Analysis.js +++ b/server/sonar-web/src/main/js/apps/overview/events/Analysis.js @@ -49,7 +49,9 @@ export default function Analysis(props: { analysis: AnalysisType }) { ? <div className="project-activity-events"> {sortedEvents.map(event => <Event event={event} key={event.key} />)} </div> - : <span className="note">{translate('project_activity.project_analyzed')}</span>} + : <span className="note"> + {translate('project_activity.project_analyzed')} + </span>} </li> </TooltipsContainer> ); diff --git a/server/sonar-web/src/main/js/apps/overview/events/Event.js b/server/sonar-web/src/main/js/apps/overview/events/Event.js index 1d377ecd253..bb79518b167 100644 --- a/server/sonar-web/src/main/js/apps/overview/events/Event.js +++ b/server/sonar-web/src/main/js/apps/overview/events/Event.js @@ -27,16 +27,21 @@ export default function Event(props: { event: EventType }) { const { event } = props; if (event.category === 'VERSION') { - return <span className="overview-analysis-event badge">{props.event.name}</span>; + return ( + <span className="overview-analysis-event badge"> + {props.event.name} + </span> + ); } return ( <div className="overview-analysis-event"> <TooltipsContainer> <span> - <span className="note">{translate('event.category', event.category)}:</span> - {' '} - <strong title={event.description} data-toggle="tooltip">{event.name}</strong> + <span className="note">{translate('event.category', event.category)}:</span>{' '} + <strong title={event.description} data-toggle="tooltip"> + {event.name} + </strong> </span> </TooltipsContainer> </div> diff --git a/server/sonar-web/src/main/js/apps/overview/events/PreviewGraph.js b/server/sonar-web/src/main/js/apps/overview/events/PreviewGraph.js index 171c6d87975..42817e83c1e 100644 --- a/server/sonar-web/src/main/js/apps/overview/events/PreviewGraph.js +++ b/server/sonar-web/src/main/js/apps/overview/events/PreviewGraph.js @@ -129,7 +129,7 @@ export default class PreviewGraph extends React.PureComponent { tabIndex={0} role="link"> <AutoSizer disableHeight={true}> - {({ width }) => ( + {({ width }) => <div> <AdvancedTimeline endDate={null} @@ -158,8 +158,7 @@ export default class PreviewGraph extends React.PureComponent { tooltipIdx={tooltipIdx} tooltipPos={tooltipXPos} />} - </div> - )} + </div>} </AutoSizer> </div> ); diff --git a/server/sonar-web/src/main/js/apps/overview/events/PreviewGraphTooltipsContent.js b/server/sonar-web/src/main/js/apps/overview/events/PreviewGraphTooltipsContent.js index a91af02daf3..f77511bc923 100644 --- a/server/sonar-web/src/main/js/apps/overview/events/PreviewGraphTooltipsContent.js +++ b/server/sonar-web/src/main/js/apps/overview/events/PreviewGraphTooltipsContent.js @@ -39,7 +39,9 @@ export default function PreviewGraphTooltipsContent({ serie, translatedName, val <td className="overview-analysis-graph-tooltip-value text-right little-spacer-right thin"> {value} </td> - <td className="text-ellipsis">{translatedName}</td> + <td className="text-ellipsis"> + {translatedName} + </td> </tr> ); } diff --git a/server/sonar-web/src/main/js/apps/overview/main/BugsAndVulnerabilities.js b/server/sonar-web/src/main/js/apps/overview/main/BugsAndVulnerabilities.js index 1de56542c21..f427b1a9a44 100644 --- a/server/sonar-web/src/main/js/apps/overview/main/BugsAndVulnerabilities.js +++ b/server/sonar-web/src/main/js/apps/overview/main/BugsAndVulnerabilities.js @@ -41,9 +41,13 @@ class BugsAndVulnerabilities extends React.PureComponent { return ( <div className="overview-card-header"> <div className="overview-title"> - <Link to={bugsDomainUrl}>{translate('metric.bugs.name')}</Link> + <Link to={bugsDomainUrl}> + {translate('metric.bugs.name')} + </Link> {' & '} - <Link to={vulnerabilitiesDomainUrl}>{translate('metric.vulnerabilities.name')}</Link> + <Link to={vulnerabilitiesDomainUrl}> + {translate('metric.vulnerabilities.name')} + </Link> </div> </div> ); @@ -95,7 +99,6 @@ class BugsAndVulnerabilities extends React.PureComponent { return ( <div className="overview-domain-nutshell"> <div className="overview-domain-measures"> - <div className="overview-domain-measure"> <div className="display-inline-block text-middle" style={{ paddingLeft: 56 }}> <div className="overview-domain-measure-value"> diff --git a/server/sonar-web/src/main/js/apps/overview/main/CodeSmells.js b/server/sonar-web/src/main/js/apps/overview/main/CodeSmells.js index 6ae5012f443..07bd2ae83ec 100644 --- a/server/sonar-web/src/main/js/apps/overview/main/CodeSmells.js +++ b/server/sonar-web/src/main/js/apps/overview/main/CodeSmells.js @@ -114,7 +114,6 @@ class CodeSmells extends React.PureComponent { return ( <div className="overview-domain-nutshell"> <div className="overview-domain-measures"> - <div className="overview-domain-measure"> <div className="display-inline-block text-middle" style={{ paddingLeft: 56 }}> <div className="overview-domain-measure-value"> diff --git a/server/sonar-web/src/main/js/apps/overview/main/Coverage.js b/server/sonar-web/src/main/js/apps/overview/main/Coverage.js index 2c86b6e6970..915b93e6857 100644 --- a/server/sonar-web/src/main/js/apps/overview/main/Coverage.js +++ b/server/sonar-web/src/main/js/apps/overview/main/Coverage.js @@ -95,32 +95,34 @@ class Coverage extends React.PureComponent { ? getPeriodValue(newLinesToCover, leakPeriod.index) : null; - const formattedValue = newCoverageValue != null - ? <div> - <DrilldownLink component={component.key} metric={newCoverageMeasure.metric.key}> - <span className="js-overview-main-new-coverage"> - {formatMeasure(newCoverageValue, 'PERCENT')} - </span> - </DrilldownLink> - </div> - : <span>—</span>; - const label = newLinesToCoverValue != null && newLinesToCoverValue > 0 - ? <div className="overview-domain-measure-label"> - {translate('overview.coverage_on')} - <br /> - <DrilldownLink - className="spacer-right overview-domain-secondary-measure-value" - component={component.key} - metric={newLinesToCover.metric.key}> - <span className="js-overview-main-new-coverage"> - {formatMeasure(newLinesToCoverValue, 'SHORT_INT')} - </span> - </DrilldownLink> - {getMetricName('new_lines_to_cover')} - </div> - : <div className="overview-domain-measure-label"> - {getMetricName('new_coverage')} - </div>; + const formattedValue = + newCoverageValue != null + ? <div> + <DrilldownLink component={component.key} metric={newCoverageMeasure.metric.key}> + <span className="js-overview-main-new-coverage"> + {formatMeasure(newCoverageValue, 'PERCENT')} + </span> + </DrilldownLink> + </div> + : <span>—</span>; + const label = + newLinesToCoverValue != null && newLinesToCoverValue > 0 + ? <div className="overview-domain-measure-label"> + {translate('overview.coverage_on')} + <br /> + <DrilldownLink + className="spacer-right overview-domain-secondary-measure-value" + component={component.key} + metric={newLinesToCover.metric.key}> + <span className="js-overview-main-new-coverage"> + {formatMeasure(newLinesToCoverValue, 'SHORT_INT')} + </span> + </DrilldownLink> + {getMetricName('new_lines_to_cover')} + </div> + : <div className="overview-domain-measure-label"> + {getMetricName('new_coverage')} + </div>; return ( <div className="overview-domain-measure"> <div className="overview-domain-measure-value"> diff --git a/server/sonar-web/src/main/js/apps/overview/main/Duplications.js b/server/sonar-web/src/main/js/apps/overview/main/Duplications.js index c6e9a8cd18f..2a3813238fa 100644 --- a/server/sonar-web/src/main/js/apps/overview/main/Duplications.js +++ b/server/sonar-web/src/main/js/apps/overview/main/Duplications.js @@ -79,32 +79,34 @@ class Duplications extends React.PureComponent { ? getPeriodValue(newLinesMeasure, leakPeriod.index) : null; - const formattedValue = newDuplicationsValue != null - ? <div> - <DrilldownLink component={component.key} metric={newDuplicationsMeasure.metric.key}> - <span className="js-overview-main-new-duplications"> - {formatMeasure(newDuplicationsValue, 'PERCENT')} - </span> - </DrilldownLink> - </div> - : <span>—</span>; - const label = newLinesValue != null && newLinesValue > 0 - ? <div className="overview-domain-measure-label"> - {translate('overview.duplications_on')} - <br /> - <DrilldownLink - className="spacer-right overview-domain-secondary-measure-value" - component={component.key} - metric={newLinesMeasure.metric.key}> - <span className="js-overview-main-new-lines"> - {formatMeasure(newLinesValue, 'SHORT_INT')} - </span> - </DrilldownLink> - {getMetricName('new_lines')} - </div> - : <div className="overview-domain-measure-label"> - {getMetricName('new_duplications')} - </div>; + const formattedValue = + newDuplicationsValue != null + ? <div> + <DrilldownLink component={component.key} metric={newDuplicationsMeasure.metric.key}> + <span className="js-overview-main-new-duplications"> + {formatMeasure(newDuplicationsValue, 'PERCENT')} + </span> + </DrilldownLink> + </div> + : <span>—</span>; + const label = + newLinesValue != null && newLinesValue > 0 + ? <div className="overview-domain-measure-label"> + {translate('overview.duplications_on')} + <br /> + <DrilldownLink + className="spacer-right overview-domain-secondary-measure-value" + component={component.key} + metric={newLinesMeasure.metric.key}> + <span className="js-overview-main-new-lines"> + {formatMeasure(newLinesValue, 'SHORT_INT')} + </span> + </DrilldownLink> + {getMetricName('new_lines')} + </div> + : <div className="overview-domain-measure-label"> + {getMetricName('new_duplications')} + </div>; return ( <div className="overview-domain-measure"> <div className="overview-domain-measure-value"> diff --git a/server/sonar-web/src/main/js/apps/overview/main/enhance.js b/server/sonar-web/src/main/js/apps/overview/main/enhance.js index 2bd0e72530b..a884d22332a 100644 --- a/server/sonar-web/src/main/js/apps/overview/main/enhance.js +++ b/server/sonar-web/src/main/js/apps/overview/main/enhance.js @@ -62,7 +62,9 @@ export default function enhance(ComposedComponent) { return ( <div className="overview-card-header"> <div className="overview-title"> - <Link to={domainUrl}>{label}</Link> + <Link to={domainUrl}> + {label} + </Link> </div> </div> ); @@ -99,9 +101,10 @@ export default function enhance(ComposedComponent) { const { measures, leakPeriod } = this.props; const measure = measures.find(measure => measure.metric.key === metricKey); const periodValue = getPeriodValue(measure, leakPeriod.index); - const formatted = periodValue != null - ? formatMeasureVariation(periodValue, getShortType(measure.metric.type)) - : NO_VALUE; + const formatted = + periodValue != null + ? formatMeasureVariation(periodValue, getShortType(measure.metric.type)) + : NO_VALUE; return ( <div className="overview-domain-measure"> <div className="overview-domain-measure-value"> diff --git a/server/sonar-web/src/main/js/apps/overview/meta/MetaSize.js b/server/sonar-web/src/main/js/apps/overview/meta/MetaSize.js index 4028e1a6a8a..0367e3a8147 100644 --- a/server/sonar-web/src/main/js/apps/overview/meta/MetaSize.js +++ b/server/sonar-web/src/main/js/apps/overview/meta/MetaSize.js @@ -49,7 +49,9 @@ export default class MetaSize extends React.PureComponent { <DrilldownLink component={this.props.component.key} metric="ncloc"> {formatMeasure(ncloc.value, 'SHORT_INT')} </DrilldownLink> - <div className="overview-domain-measure-label text-muted">{getMetricName('ncloc')}</div> + <div className="overview-domain-measure-label text-muted"> + {getMetricName('ncloc')} + </div> </div> <div id="overview-language-distribution" className="overview-meta-size-lang-dist"> <LanguageDistribution distribution={languageDistribution.value} /> diff --git a/server/sonar-web/src/main/js/apps/overview/qualityGate/QualityGateCondition.js b/server/sonar-web/src/main/js/apps/overview/qualityGate/QualityGateCondition.js index d2ac1128fce..47ff132eadd 100644 --- a/server/sonar-web/src/main/js/apps/overview/qualityGate/QualityGateCondition.js +++ b/server/sonar-web/src/main/js/apps/overview/qualityGate/QualityGateCondition.js @@ -53,7 +53,7 @@ export default class QualityGateCondition extends React.PureComponent { const delta = Math.abs(threshold - value); if (delta < 0.1 && delta > 0) { //$FlowFixMe The matching result can't null because of the previous check - return delta.toFixed(20).match('[^0\.]').index - 1; + return delta.toFixed(20).match('[^0.]').index - 1; } } diff --git a/server/sonar-web/src/main/js/apps/overview/qualityGate/QualityGateConditions.js b/server/sonar-web/src/main/js/apps/overview/qualityGate/QualityGateConditions.js index cd98f13bae9..d3edece78d7 100644 --- a/server/sonar-web/src/main/js/apps/overview/qualityGate/QualityGateConditions.js +++ b/server/sonar-web/src/main/js/apps/overview/qualityGate/QualityGateConditions.js @@ -98,13 +98,13 @@ export default class QualityGateConditions extends React.PureComponent { <div id="overview-quality-gate-conditions-list" className="overview-quality-gate-conditions-list clearfix"> - {sortedConditions.map(condition => ( + {sortedConditions.map(condition => <QualityGateCondition key={condition.measure.metric.key} component={component} condition={condition} /> - ))} + )} </div> ); } diff --git a/server/sonar-web/src/main/js/apps/overview/styles.css b/server/sonar-web/src/main/js/apps/overview/styles.css index 5de0ceca320..390ca241dea 100644 --- a/server/sonar-web/src/main/js/apps/overview/styles.css +++ b/server/sonar-web/src/main/js/apps/overview/styles.css @@ -42,7 +42,8 @@ background-color: #f3f3f3; } -.overview-quality-gate-conditions-list {} +.overview-quality-gate-conditions-list { +} .overview-quality-gate-condition { float: left; @@ -134,7 +135,6 @@ color: #ed7d20; } - /* * Domain */ @@ -354,7 +354,8 @@ box-sizing: border-box; } -.overview-analysis {} +.overview-analysis { +} .overview-analysis + .overview-analysis { margin-top: 8px; @@ -394,7 +395,8 @@ font-weight: bold; } -.overview-analysis-event {} +.overview-analysis-event { +} .overview-analysis-event.badge { vertical-align: middle; diff --git a/server/sonar-web/src/main/js/apps/permission-templates/components/ActionsCell.js b/server/sonar-web/src/main/js/apps/permission-templates/components/ActionsCell.js index 782bb4129c3..fca2990dc54 100644 --- a/server/sonar-web/src/main/js/apps/permission-templates/components/ActionsCell.js +++ b/server/sonar-web/src/main/js/apps/permission-templates/components/ActionsCell.js @@ -76,9 +76,10 @@ export default class ActionsCell extends React.PureComponent { } getAvailableQualifiers() { - const topQualifiers = this.props.organization && !this.props.organization.isDefault - ? ['TRK'] - : this.props.topQualifiers; + const topQualifiers = + this.props.organization && !this.props.organization.isDefault + ? ['TRK'] + : this.props.topQualifiers; return difference(topQualifiers, this.props.permissionTemplate.defaultFor); } @@ -89,7 +90,11 @@ export default class ActionsCell extends React.PureComponent { marginRight: 4, textAlign: 'center' }; - return <div style={style}>{icon}</div>; + return ( + <div style={style}> + {icon} + </div> + ); } renderSetDefaultsControl() { @@ -123,7 +128,9 @@ export default class ActionsCell extends React.PureComponent { return availableQualifiers.map(qualifier => this.renderSetDefaultLink( qualifier, - <span>{translate('permission_templates.set_default')}</span> + <span> + {translate('permission_templates.set_default')} + </span> ) ); } @@ -133,11 +140,8 @@ export default class ActionsCell extends React.PureComponent { this.renderSetDefaultLink( qualifier, <span> - {translate('permission_templates.set_default_for')} - {' '} - <QualifierIcon qualifier={qualifier} /> - {' '} - {translate('qualifiers', qualifier)} + {translate('permission_templates.set_default_for')}{' '} + <QualifierIcon qualifier={qualifier} /> {translate('qualifiers', qualifier)} </span> ) ); @@ -153,9 +157,7 @@ export default class ActionsCell extends React.PureComponent { return ( <div className="dropdown"> <button className="dropdown-toggle" data-toggle="dropdown"> - {translate('actions')} - {' '} - <i className="icon-dropdown" /> + {translate('actions')} <i className="icon-dropdown" /> </button> <ul className="dropdown-menu dropdown-menu-right"> diff --git a/server/sonar-web/src/main/js/apps/permission-templates/components/Defaults.js b/server/sonar-web/src/main/js/apps/permission-templates/components/Defaults.js index 0a8e7782061..4a551a419fc 100644 --- a/server/sonar-web/src/main/js/apps/permission-templates/components/Defaults.js +++ b/server/sonar-web/src/main/js/apps/permission-templates/components/Defaults.js @@ -29,9 +29,10 @@ export default class Defaults extends React.PureComponent { }; render() { - const qualifiersToDisplay = this.props.organization && !this.props.organization.isDefault - ? ['TRK'] - : this.props.permissionTemplate.defaultFor; + const qualifiersToDisplay = + this.props.organization && !this.props.organization.isDefault + ? ['TRK'] + : this.props.permissionTemplate.defaultFor; const qualifiers = sortBy(qualifiersToDisplay) .map(qualifier => translate('qualifiers', qualifier)) diff --git a/server/sonar-web/src/main/js/apps/permission-templates/components/List.js b/server/sonar-web/src/main/js/apps/permission-templates/components/List.js index 275489d3500..200fb7244fb 100644 --- a/server/sonar-web/src/main/js/apps/permission-templates/components/List.js +++ b/server/sonar-web/src/main/js/apps/permission-templates/components/List.js @@ -32,7 +32,7 @@ export default class List extends React.PureComponent { }; render() { - const permissionTemplates = this.props.permissionTemplates.map(p => ( + const permissionTemplates = this.props.permissionTemplates.map(p => <ListItem key={p.id} organization={this.props.organization} @@ -40,12 +40,14 @@ export default class List extends React.PureComponent { topQualifiers={this.props.topQualifiers} refresh={this.props.refresh} /> - )); + ); return ( <table id="permission-templates" className="data zebra permissions-table"> <ListHeader organization={this.props.organization} permissions={this.props.permissions} /> - <tbody>{permissionTemplates}</tbody> + <tbody> + {permissionTemplates} + </tbody> </table> ); } diff --git a/server/sonar-web/src/main/js/apps/permission-templates/components/ListHeader.js b/server/sonar-web/src/main/js/apps/permission-templates/components/ListHeader.js index 327003ebb85..31915dbacdd 100644 --- a/server/sonar-web/src/main/js/apps/permission-templates/components/ListHeader.js +++ b/server/sonar-web/src/main/js/apps/permission-templates/components/ListHeader.js @@ -28,24 +28,24 @@ export default class ListHeader extends React.PureComponent { }; renderTooltip = permission => - (permission.key === 'user' || permission.key === 'codeviewer' + permission.key === 'user' || permission.key === 'codeviewer' ? <div> {permission.description} <div className="alert alert-warning spacer-top"> {translate('projects_role.public_projects_warning')} </div> </div> - : permission.description); + : permission.description; render() { - const cells = this.props.permissions.map(permission => ( + const cells = this.props.permissions.map(permission => <th key={permission.key} className="permission-column"> {permission.name} <Tooltip overlay={this.renderTooltip(permission)}> <i className="icon-help little-spacer-left" /> </Tooltip> </th> - )); + ); return ( <thead> diff --git a/server/sonar-web/src/main/js/apps/permission-templates/components/ListItem.js b/server/sonar-web/src/main/js/apps/permission-templates/components/ListItem.js index 855783fcb8b..b6dbec1d7b9 100644 --- a/server/sonar-web/src/main/js/apps/permission-templates/components/ListItem.js +++ b/server/sonar-web/src/main/js/apps/permission-templates/components/ListItem.js @@ -32,9 +32,9 @@ export default class ListItem extends React.PureComponent { }; render() { - const permissions = this.props.permissionTemplate.permissions.map(p => ( + const permissions = this.props.permissionTemplate.permissions.map(p => <PermissionCell key={p.key} permission={p} /> - )); + ); return ( <tr data-id={this.props.permissionTemplate.id} data-name={this.props.permissionTemplate.name}> diff --git a/server/sonar-web/src/main/js/apps/permission-templates/components/NameCell.js b/server/sonar-web/src/main/js/apps/permission-templates/components/NameCell.js index 0cac1b1bac1..5e0d4ea196b 100644 --- a/server/sonar-web/src/main/js/apps/permission-templates/components/NameCell.js +++ b/server/sonar-web/src/main/js/apps/permission-templates/components/NameCell.js @@ -38,7 +38,9 @@ export default class NameCell extends React.PureComponent { return ( <td> <Link to={{ pathname, query: { id: t.id } }}> - <strong className="js-name">{t.name}</strong> + <strong className="js-name"> + {t.name} + </strong> </Link> {t.defaultFor.length > 0 && diff --git a/server/sonar-web/src/main/js/apps/permission-templates/components/PermissionCell.js b/server/sonar-web/src/main/js/apps/permission-templates/components/PermissionCell.js index 326b2f7d68b..ed2554903bd 100644 --- a/server/sonar-web/src/main/js/apps/permission-templates/components/PermissionCell.js +++ b/server/sonar-web/src/main/js/apps/permission-templates/components/PermissionCell.js @@ -38,10 +38,16 @@ export default class PermissionCell extends React.PureComponent { {translate('permission_templates.project_creators')} </li>} <li className="little-spacer-bottom"> - <strong>{p.usersCount}</strong>{' user(s)'} + <strong> + {p.usersCount} + </strong> + {' user(s)'} </li> <li> - <strong>{p.groupsCount}</strong>{' group(s)'} + <strong> + {p.groupsCount} + </strong> + {' group(s)'} </li> </ul> </div> diff --git a/server/sonar-web/src/main/js/apps/permission-templates/components/Template.js b/server/sonar-web/src/main/js/apps/permission-templates/components/Template.js index f36ded96c5b..a0191df28f0 100644 --- a/server/sonar-web/src/main/js/apps/permission-templates/components/Template.js +++ b/server/sonar-web/src/main/js/apps/permission-templates/components/Template.js @@ -216,14 +216,12 @@ export default class Template extends React.PureComponent { onSelectPermission={this.handleSelectPermission} onToggleUser={this.handleToggleUser} onToggleGroup={this.handleToggleGroup}> - <SearchForm query={this.state.query} filter={this.state.filter} onSearch={this.handleSearch} onFilter={this.handleFilter} /> - </HoldersList> </div> ); diff --git a/server/sonar-web/src/main/js/apps/permissions/global/components/AllHoldersList.js b/server/sonar-web/src/main/js/apps/permissions/global/components/AllHoldersList.js index ba49d7fa27b..231992c4b73 100644 --- a/server/sonar-web/src/main/js/apps/permissions/global/components/AllHoldersList.js +++ b/server/sonar-web/src/main/js/apps/permissions/global/components/AllHoldersList.js @@ -71,9 +71,10 @@ class AllHoldersList extends React.PureComponent { } render() { - const order = this.props.organization && !this.props.organization.isDefault - ? PERMISSIONS_FOR_CUSTOM_ORG - : PERMISSIONS_ORDER; + const order = + this.props.organization && !this.props.organization.isDefault + ? PERMISSIONS_FOR_CUSTOM_ORG + : PERMISSIONS_ORDER; const l10nPrefix = this.props.organization ? 'organizations_permissions' : 'global_permissions'; @@ -92,14 +93,12 @@ class AllHoldersList extends React.PureComponent { onSelectPermission={this.props.onSelectPermission} onToggleUser={this.handleToggleUser.bind(this)} onToggleGroup={this.handleToggleGroup.bind(this)}> - <SearchForm query={this.props.query} filter={this.props.filter} onSearch={this.props.onSearch} onFilter={this.props.onFilter} /> - </HoldersList> ); } diff --git a/server/sonar-web/src/main/js/apps/permissions/global/components/PageHeader.js b/server/sonar-web/src/main/js/apps/permissions/global/components/PageHeader.js index a75573a643a..933fbb7421e 100644 --- a/server/sonar-web/src/main/js/apps/permissions/global/components/PageHeader.js +++ b/server/sonar-web/src/main/js/apps/permissions/global/components/PageHeader.js @@ -43,11 +43,15 @@ class PageHeader extends React.PureComponent { return ( <header className="page-header"> - <h1 className="page-title">{title}</h1> + <h1 className="page-title"> + {title} + </h1> {this.props.loading && <i className="spinner" />} - <div className="page-description">{description}</div> + <div className="page-description"> + {description} + </div> </header> ); } diff --git a/server/sonar-web/src/main/js/apps/permissions/project/components/AllHoldersList.js b/server/sonar-web/src/main/js/apps/permissions/project/components/AllHoldersList.js index bbf41cfc88e..f91e5f9c39f 100644 --- a/server/sonar-web/src/main/js/apps/permissions/project/components/AllHoldersList.js +++ b/server/sonar-web/src/main/js/apps/permissions/project/components/AllHoldersList.js @@ -106,14 +106,12 @@ export default class AllHoldersList extends React.PureComponent { onSelectPermission={this.handleSelectPermission} onToggleUser={this.handleToggleUser} onToggleGroup={this.handleToggleGroup}> - <SearchForm query={this.props.query} filter={this.props.filter} onSearch={this.props.onQueryChange} onFilter={this.props.onFilterChange} /> - </HoldersList> ); } diff --git a/server/sonar-web/src/main/js/apps/permissions/project/components/App.js b/server/sonar-web/src/main/js/apps/permissions/project/components/App.js index aba44835c1f..d06a080b3e9 100644 --- a/server/sonar-web/src/main/js/apps/permissions/project/components/App.js +++ b/server/sonar-web/src/main/js/apps/permissions/project/components/App.js @@ -103,23 +103,25 @@ export default class App extends React.PureComponent { const { component } = this.props; const { filter, query, selectedPermission } = this.state; - const getUsers = filter !== 'groups' - ? api.getPermissionsUsersForComponent( - component.key, - query, - selectedPermission, - component.organization - ) - : Promise.resolve([]); + const getUsers = + filter !== 'groups' + ? api.getPermissionsUsersForComponent( + component.key, + query, + selectedPermission, + component.organization + ) + : Promise.resolve([]); - const getGroups = filter !== 'users' - ? api.getPermissionsGroupsForComponent( - component.key, - query, - selectedPermission, - component.organization - ) - : Promise.resolve([]); + const getGroups = + filter !== 'users' + ? api.getPermissionsGroupsForComponent( + component.key, + query, + selectedPermission, + component.organization + ) + : Promise.resolve([]); Promise.all([getUsers, getGroups]).then( responses => { @@ -157,9 +159,8 @@ export default class App extends React.PureComponent { if (this.mounted) { this.setState( (state: State) => ({ - selectedPermission: state.selectedPermission === selectedPermission - ? undefined - : selectedPermission + selectedPermission: + state.selectedPermission === selectedPermission ? undefined : selectedPermission }), this.loadHolders ); @@ -169,33 +170,33 @@ export default class App extends React.PureComponent { addPermissionToGroup = (group: string, permission: string) => this.state.groups.map( candidate => - (candidate.name === group + candidate.name === group ? { ...candidate, permissions: [...candidate.permissions, permission] } - : candidate) + : candidate ); addPermissionToUser = (user: string, permission: string) => this.state.users.map( candidate => - (candidate.login === user + candidate.login === user ? { ...candidate, permissions: [...candidate.permissions, permission] } - : candidate) + : candidate ); removePermissionFromGroup = (group: string, permission: string) => this.state.groups.map( candidate => - (candidate.name === group + candidate.name === group ? { ...candidate, permissions: without(candidate.permissions, permission) } - : candidate) + : candidate ); removePermissionFromUser = (user: string, permission: string) => this.state.users.map( candidate => - (candidate.login === user + candidate.login === user ? { ...candidate, permissions: without(candidate.permissions, permission) } - : candidate) + : candidate ); grantPermissionToGroup = (group: string, permission: string) => { diff --git a/server/sonar-web/src/main/js/apps/permissions/project/components/PageHeader.js b/server/sonar-web/src/main/js/apps/permissions/project/components/PageHeader.js index b746b0ed969..8b968108a19 100644 --- a/server/sonar-web/src/main/js/apps/permissions/project/components/PageHeader.js +++ b/server/sonar-web/src/main/js/apps/permissions/project/components/PageHeader.js @@ -59,9 +59,10 @@ export default class PageHeader extends React.PureComponent { ? translate('roles.page.description_portfolio') : translate('roles.page.description2'); - const visibilityDescription = component.qualifier === 'TRK' - ? translate('visibility', component.visibility, 'description') - : null; + const visibilityDescription = + component.qualifier === 'TRK' + ? translate('visibility', component.visibility, 'description') + : null; return ( <header className="page-header"> @@ -79,8 +80,13 @@ export default class PageHeader extends React.PureComponent { </div>} <div className="page-description"> - <p>{description}</p> - {visibilityDescription != null && <p>{visibilityDescription}</p>} + <p> + {description} + </p> + {visibilityDescription != null && + <p> + {visibilityDescription} + </p>} </div> </header> ); diff --git a/server/sonar-web/src/main/js/apps/permissions/project/components/PublicProjectDisclaimer.js b/server/sonar-web/src/main/js/apps/permissions/project/components/PublicProjectDisclaimer.js index 498487ae3d4..ed5ee186b7b 100644 --- a/server/sonar-web/src/main/js/apps/permissions/project/components/PublicProjectDisclaimer.js +++ b/server/sonar-web/src/main/js/apps/permissions/project/components/PublicProjectDisclaimer.js @@ -52,7 +52,6 @@ export default class PublicProjectDisclaimer extends React.PureComponent { className="modal" overlayClassName="modal-overlay" onRequestClose={this.props.onClose}> - <header className="modal-head"> <h2> {translateWithParameters('projects_role.turn_x_to_public', this.props.component.name)} @@ -60,7 +59,9 @@ export default class PublicProjectDisclaimer extends React.PureComponent { </header> <div className="modal-body"> - <p>{translate('projects_role.are_you_sure_to_turn_project_to_public')}</p> + <p> + {translate('projects_role.are_you_sure_to_turn_project_to_public')} + </p> <p className="spacer-top"> {translate('projects_role.are_you_sure_to_turn_project_to_public.2')} </p> @@ -70,9 +71,10 @@ export default class PublicProjectDisclaimer extends React.PureComponent { <button id="confirm-turn-to-public" onClick={this.handleConfirmClick}> {translate('projects_role.turn_project_to_public')} </button> - <a href="#" onClick={this.handleCancelClick}>{translate('cancel')}</a> + <a href="#" onClick={this.handleCancelClick}> + {translate('cancel')} + </a> </footer> - </Modal> ); } diff --git a/server/sonar-web/src/main/js/apps/permissions/shared/components/GroupHolder.js b/server/sonar-web/src/main/js/apps/permissions/shared/components/GroupHolder.js index fa051cd0b4c..dc037d86753 100644 --- a/server/sonar-web/src/main/js/apps/permissions/shared/components/GroupHolder.js +++ b/server/sonar-web/src/main/js/apps/permissions/shared/components/GroupHolder.js @@ -37,7 +37,7 @@ export default class GroupHolder extends React.PureComponent { render() { const { selectedPermission } = this.props; - const permissionCells = this.props.permissionsOrder.map(p => ( + const permissionCells = this.props.permissionsOrder.map(p => <td key={p.key} className="text-center text-middle" @@ -48,7 +48,7 @@ export default class GroupHolder extends React.PureComponent { : <i className="icon-checkbox" />} </button> </td> - )); + ); const { group } = this.props; @@ -60,7 +60,9 @@ export default class GroupHolder extends React.PureComponent { </div> <div className="display-inline-block text-middle"> <div> - <strong>{group.name}</strong> + <strong> + {group.name} + </strong> </div> <div className="little-spacer-top" style={{ whiteSpace: 'normal' }}> {group.description} diff --git a/server/sonar-web/src/main/js/apps/permissions/shared/components/HoldersList.js b/server/sonar-web/src/main/js/apps/permissions/shared/components/HoldersList.js index d5c216d865d..d2eee7396c6 100644 --- a/server/sonar-web/src/main/js/apps/permissions/shared/components/HoldersList.js +++ b/server/sonar-web/src/main/js/apps/permissions/shared/components/HoldersList.js @@ -46,19 +46,19 @@ export default class HoldersList extends React.PureComponent { }; renderTooltip = permission => - (this.props.showPublicProjectsWarning && - (permission.key === 'user' || permission.key === 'codeviewer') + this.props.showPublicProjectsWarning && + (permission.key === 'user' || permission.key === 'codeviewer') ? <div> {permission.description} <div className="alert alert-warning spacer-top"> {translate('projects_role.public_projects_warning')} </div> </div> - : permission.description); + : permission.description; renderTableHeader() { const { selectedPermission } = this.props; - const cells = this.props.permissions.map(p => ( + const cells = this.props.permissions.map(p => <th key={p.key} className="permission-column text-center" @@ -67,14 +67,16 @@ export default class HoldersList extends React.PureComponent { }}> <div className="permission-column-inner"> <Tooltip overlay={`Filter by "${p.name}" permission`}> - <a data-key={p.key} href="#" onClick={this.handlePermissionClick}>{p.name}</a> + <a data-key={p.key} href="#" onClick={this.handlePermissionClick}> + {p.name} + </a> </Tooltip> <Tooltip overlay={this.renderTooltip(p)}> <i className="icon-help little-spacer-left" /> </Tooltip> </div> </th> - )); + ); return ( <thead> <tr> @@ -99,7 +101,7 @@ export default class HoldersList extends React.PureComponent { } render() { - const users = this.props.users.map(user => ( + const users = this.props.users.map(user => <UserHolder key={'user-' + user.login} user={user} @@ -108,9 +110,9 @@ export default class HoldersList extends React.PureComponent { permissionsOrder={this.props.permissions} onToggle={this.props.onToggleUser} /> - )); + ); - const groups = this.props.groups.map(group => ( + const groups = this.props.groups.map(group => <GroupHolder key={'group-' + group.id} group={group} @@ -119,7 +121,7 @@ export default class HoldersList extends React.PureComponent { permissionsOrder={this.props.permissions} onToggle={this.props.onToggleGroup} /> - )); + ); return ( <table className="data zebra permissions-table"> diff --git a/server/sonar-web/src/main/js/apps/permissions/shared/components/SearchForm.js b/server/sonar-web/src/main/js/apps/permissions/shared/components/SearchForm.js index 9d370f93081..9687e42732a 100644 --- a/server/sonar-web/src/main/js/apps/permissions/shared/components/SearchForm.js +++ b/server/sonar-web/src/main/js/apps/permissions/shared/components/SearchForm.js @@ -59,7 +59,6 @@ export default class SearchForm extends React.PureComponent { return ( <div> - <RadioToggle value={filter} options={filterOptions} diff --git a/server/sonar-web/src/main/js/apps/permissions/shared/components/UserHolder.js b/server/sonar-web/src/main/js/apps/permissions/shared/components/UserHolder.js index 8883bbddb9f..d95158c9032 100644 --- a/server/sonar-web/src/main/js/apps/permissions/shared/components/UserHolder.js +++ b/server/sonar-web/src/main/js/apps/permissions/shared/components/UserHolder.js @@ -38,7 +38,7 @@ export default class UserHolder extends React.PureComponent { render() { const { selectedPermission } = this.props; - const permissionCells = this.props.permissionsOrder.map(p => ( + const permissionCells = this.props.permissionsOrder.map(p => <td key={p.key} className="text-center text-middle" @@ -49,7 +49,7 @@ export default class UserHolder extends React.PureComponent { : <i className="icon-checkbox" />} </button> </td> - )); + ); const { user } = this.props; @@ -67,10 +67,18 @@ export default class UserHolder extends React.PureComponent { />} <div className="display-inline-block text-middle"> <div> - <strong>{user.name}</strong> - {!isCreator && <span className="note spacer-left">{user.login}</span>} + <strong> + {user.name} + </strong> + {!isCreator && + <span className="note spacer-left"> + {user.login} + </span>} </div> - {!isCreator && <div className="little-spacer-top">{user.email}</div>} + {!isCreator && + <div className="little-spacer-top"> + {user.email} + </div>} {isCreator && <div className="little-spacer-top" style={{ whiteSpace: 'normal' }}> {translate('permission_templates.project_creators.explanation')} diff --git a/server/sonar-web/src/main/js/apps/permissions/styles.css b/server/sonar-web/src/main/js/apps/permissions/styles.css index e57af7a47f4..cf1b4bb5e55 100644 --- a/server/sonar-web/src/main/js/apps/permissions/styles.css +++ b/server/sonar-web/src/main/js/apps/permissions/styles.css @@ -1,4 +1,5 @@ -.permissions-table {} +.permissions-table { +} .permissions-table > tbody > tr > td { border-bottom: 10px solid #fff !important; diff --git a/server/sonar-web/src/main/js/apps/project-admin/deletion/Form.js b/server/sonar-web/src/main/js/apps/project-admin/deletion/Form.js index ac8ca55598b..06f7189aae5 100644 --- a/server/sonar-web/src/main/js/apps/project-admin/deletion/Form.js +++ b/server/sonar-web/src/main/js/apps/project-admin/deletion/Form.js @@ -85,7 +85,9 @@ export default class Form extends React.PureComponent { onRequestClose={this.closeModal}> <form onSubmit={this.handleSubmit}> <div className="modal-head"> - <h2>{translate('qualifiers.delete.TRK')}</h2> + <h2> + {translate('qualifiers.delete.TRK')} + </h2> </div> <div className="modal-body"> <div className="js-modal-messages" /> diff --git a/server/sonar-web/src/main/js/apps/project-admin/key/BulkUpdateResults.js b/server/sonar-web/src/main/js/apps/project-admin/key/BulkUpdateResults.js index b7beb6b213e..ff202655a41 100644 --- a/server/sonar-web/src/main/js/apps/project-admin/key/BulkUpdateResults.js +++ b/server/sonar-web/src/main/js/apps/project-admin/key/BulkUpdateResults.js @@ -60,12 +60,16 @@ export default class BulkUpdateResults extends React.PureComponent { <table id="bulk-update-results" className="data zebra zebra-hover"> <thead> <tr> - <th>{translate('update_key.old_key')}</th> - <th>{translate('update_key.new_key')}</th> + <th> + {translate('update_key.old_key')} + </th> + <th> + {translate('update_key.new_key')} + </th> </tr> </thead> <tbody> - {results.map(result => ( + {results.map(result => <tr key={result.key} data-key={result.key}> <td className="js-old-key"> {result.key} @@ -78,7 +82,7 @@ export default class BulkUpdateResults extends React.PureComponent { {result.newKey} </td> </tr> - ))} + )} </tbody> </table>} diff --git a/server/sonar-web/src/main/js/apps/project-admin/key/FineGrainedUpdate.js b/server/sonar-web/src/main/js/apps/project-admin/key/FineGrainedUpdate.js index cc148816e40..2bdd43a5fb3 100644 --- a/server/sonar-web/src/main/js/apps/project-admin/key/FineGrainedUpdate.js +++ b/server/sonar-web/src/main/js/apps/project-admin/key/FineGrainedUpdate.js @@ -29,18 +29,16 @@ export default function FineGrainedUpdate(props) { <div id="project-key-fine-grained-update"> <table className="data zebra"> <tbody> - {components.map(component => ( + {components.map(component => <tr key={component.key}> <td className="width-40"> - <QualifierIcon qualifier={component.qualifier} /> - {' '} - {component.name} + <QualifierIcon qualifier={component.qualifier} /> {component.name} </td> <td> <UpdateKeyForm component={component} onKeyChange={props.onKeyChange} /> </td> </tr> - ))} + )} </tbody> </table> </div> diff --git a/server/sonar-web/src/main/js/apps/project-admin/key/UpdateForm.js b/server/sonar-web/src/main/js/apps/project-admin/key/UpdateForm.js index 99ec9764f52..1de387c9721 100644 --- a/server/sonar-web/src/main/js/apps/project-admin/key/UpdateForm.js +++ b/server/sonar-web/src/main/js/apps/project-admin/key/UpdateForm.js @@ -72,8 +72,7 @@ export default class UpdateForm extends React.PureComponent { <div className="spacer-top"> <button id="update-key-submit" disabled={!hasChanged}> {translate('update_verb')} - </button> - {' '} + </button>{' '} <button id="update-key-reset" disabled={!hasChanged} diff --git a/server/sonar-web/src/main/js/apps/project-admin/links/LinkRow.js b/server/sonar-web/src/main/js/apps/project-admin/links/LinkRow.js index 3c32c80fc84..67313e188f4 100644 --- a/server/sonar-web/src/main/js/apps/project-admin/links/LinkRow.js +++ b/server/sonar-web/src/main/js/apps/project-admin/links/LinkRow.js @@ -56,7 +56,9 @@ export default class LinkRow extends React.PureComponent { {this.renderIcon(`icon-${link.type}`)} <div className="display-inline-block text-top"> <div> - <span className="js-name">{link.name}</span> + <span className="js-name"> + {link.name} + </span> </div> <div className="note little-spacer-top"> <span className="js-type">{`sonar.links.${link.type}`}</span> @@ -75,7 +77,9 @@ export default class LinkRow extends React.PureComponent { <div> {this.renderIcon('icon-detach')} <div className="display-inline-block text-top"> - <span className="js-name">{link.name}</span> + <span className="js-name"> + {link.name} + </span> </div> </div> ); @@ -83,7 +87,11 @@ export default class LinkRow extends React.PureComponent { renderUrl(link) { if (isClickable(link)) { - return <a href={link.url} target="_blank">{link.url}</a>; + return ( + <a href={link.url} target="_blank"> + {link.url} + </a> + ); } return link.url; @@ -106,9 +114,15 @@ export default class LinkRow extends React.PureComponent { return ( <tr data-name={link.name}> - <td className="nowrap">{this.renderName(link)}</td> - <td className="nowrap js-url">{this.renderUrl(link)}</td> - <td className="thin nowrap">{this.renderDeleteButton(link)}</td> + <td className="nowrap"> + {this.renderName(link)} + </td> + <td className="nowrap js-url"> + {this.renderUrl(link)} + </td> + <td className="thin nowrap"> + {this.renderDeleteButton(link)} + </td> </tr> ); } diff --git a/server/sonar-web/src/main/js/apps/project-admin/links/Table.js b/server/sonar-web/src/main/js/apps/project-admin/links/Table.js index 8aa1aad70e0..a7358dbb26b 100644 --- a/server/sonar-web/src/main/js/apps/project-admin/links/Table.js +++ b/server/sonar-web/src/main/js/apps/project-admin/links/Table.js @@ -52,14 +52,16 @@ export default class Table extends React.PureComponent { render() { const orderedLinks = orderLinks(this.props.links); - const linkRows = orderedLinks.map(link => ( + const linkRows = orderedLinks.map(link => <LinkRow key={link.id} link={link} onDelete={this.handleDeleteLink.bind(this, link)} /> - )); + ); return ( <table id="project-links" className="data zebra"> {this.renderHeader()} - <tbody>{linkRows}</tbody> + <tbody> + {linkRows} + </tbody> </table> ); } diff --git a/server/sonar-web/src/main/js/apps/project-admin/quality-gate/Form.js b/server/sonar-web/src/main/js/apps/project-admin/quality-gate/Form.js index cbe9b7e9fdc..5e594cac288 100644 --- a/server/sonar-web/src/main/js/apps/project-admin/quality-gate/Form.js +++ b/server/sonar-web/src/main/js/apps/project-admin/quality-gate/Form.js @@ -66,7 +66,9 @@ export default class Form extends React.PureComponent { if (gateOption.isDefault) { return ( <span> - <strong>{translate('default')}</strong> + <strong> + {translate('default')} + </strong> {': '} {gateOption.label} </span> diff --git a/server/sonar-web/src/main/js/apps/project-admin/quality-profiles/ProfileRow.js b/server/sonar-web/src/main/js/apps/project-admin/quality-profiles/ProfileRow.js index a0f3c132f30..bc1f3c55417 100644 --- a/server/sonar-web/src/main/js/apps/project-admin/quality-profiles/ProfileRow.js +++ b/server/sonar-web/src/main/js/apps/project-admin/quality-profiles/ProfileRow.js @@ -49,7 +49,9 @@ export default class ProfileRow extends React.PureComponent { if (profileOption.isDefault) { return ( <span> - <strong>{translate('default')}</strong> + <strong> + {translate('default')} + </strong> {': '} {profileOption.label} </span> @@ -87,8 +89,12 @@ export default class ProfileRow extends React.PureComponent { return ( <tr data-key={profile.language}> - <td className="thin nowrap">{profile.languageName}</td> - <td className="thin nowrap">{this.renderProfileSelect()}</td> + <td className="thin nowrap"> + {profile.languageName} + </td> + <td className="thin nowrap"> + {this.renderProfileSelect()} + </td> <td> {this.state.loading && <i className="spinner" />} </td> diff --git a/server/sonar-web/src/main/js/apps/project-admin/quality-profiles/Table.js b/server/sonar-web/src/main/js/apps/project-admin/quality-profiles/Table.js index 3bb5c8ab603..77b9039762b 100644 --- a/server/sonar-web/src/main/js/apps/project-admin/quality-profiles/Table.js +++ b/server/sonar-web/src/main/js/apps/project-admin/quality-profiles/Table.js @@ -34,8 +34,12 @@ export default class Table extends React.PureComponent { return ( <thead> <tr> - <th className="thin nowrap">{translate('language')}</th> - <th className="thin nowrap">{translate('quality_profile')}</th> + <th className="thin nowrap"> + {translate('language')} + </th> + <th className="thin nowrap"> + {translate('quality_profile')} + </th> <th> </th> </tr> </thead> @@ -47,19 +51,21 @@ export default class Table extends React.PureComponent { const orderedProfiles = orderBy(this.props.profiles, 'languageName'); // set key to language to avoid destroying of component - const profileRows = orderedProfiles.map(profile => ( + const profileRows = orderedProfiles.map(profile => <ProfileRow key={profile.language} profile={profile} possibleProfiles={profilesByLanguage[profile.language]} onChangeProfile={this.props.onChangeProfile} /> - )); + ); return ( <table className="data zebra"> {this.renderHeader()} - <tbody>{profileRows}</tbody> + <tbody> + {profileRows} + </tbody> </table> ); } diff --git a/server/sonar-web/src/main/js/apps/project-admin/store/actions.js b/server/sonar-web/src/main/js/apps/project-admin/store/actions.js index d5a5cf222ec..6701e8f07db 100644 --- a/server/sonar-web/src/main/js/apps/project-admin/store/actions.js +++ b/server/sonar-web/src/main/js/apps/project-admin/store/actions.js @@ -117,9 +117,10 @@ const setProjectGateAction = (projectKey, gateId) => ({ }); export const setProjectGate = (projectKey, oldId, newId) => dispatch => { - const request = newId != null - ? associateGateWithProject(newId, projectKey) - : dissociateGateWithProject(oldId, projectKey); + const request = + newId != null + ? associateGateWithProject(newId, projectKey) + : dissociateGateWithProject(oldId, projectKey); request.then(() => { dispatch(setProjectGateAction(projectKey, newId)); diff --git a/server/sonar-web/src/main/js/apps/projectActivity/__tests__/utils-test.js b/server/sonar-web/src/main/js/apps/projectActivity/__tests__/utils-test.js index b3e4f2b28cf..df16d8fe359 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/__tests__/utils-test.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/__tests__/utils-test.js @@ -35,7 +35,7 @@ const ANALYSES = [ { key: 'AVxZtC-N7841nF4RNEMJ', category: 'QUALITY_PROFILE', - name: 'Changes in \'Default - SonarSource conventions\' (Java)' + name: "Changes in 'Default - SonarSource conventions' (Java)" } ] }, @@ -48,7 +48,7 @@ const ANALYSES = [ { key: 'AVwQF7zXl-nNFgFWOJ3W', category: 'QUALITY_PROFILE', - name: 'Changes in \'Default - SonarSource conventions\' (Java)' + name: "Changes in 'Default - SonarSource conventions' (Java)" } ] }, diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/Event.js b/server/sonar-web/src/main/js/apps/projectActivity/components/Event.js index f5bc0579b16..df9bb12f972 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/Event.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/Event.js @@ -123,8 +123,8 @@ export default class Event extends React.PureComponent { } removeEventQuestion={ 'project_activity.' + - (isVersion ? 'remove_version' : 'remove_custom_event') + - '.question' + (isVersion ? 'remove_version' : 'remove_custom_event') + + '.question' } />} </div> diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/EventInner.js b/server/sonar-web/src/main/js/apps/projectActivity/components/EventInner.js index c6c5f8f09c1..15e53e3a994 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/EventInner.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/EventInner.js @@ -36,9 +36,10 @@ export default function EventInner(props: { event: EventType }) { /> </div> <span className="project-activity-event-inner-text"> - <span className="note">{translate('event.category', event.category)}:</span> - {' '} - <strong title={event.description} data-toggle="tooltip">{event.name}</strong> + <span className="note">{translate('event.category', event.category)}:</span>{' '} + <strong title={event.description} data-toggle="tooltip"> + {event.name} + </strong> </span> </div> </TooltipsContainer> diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/Events.js b/server/sonar-web/src/main/js/apps/projectActivity/components/Events.js index b1e03e06656..5e8aa73566b 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/Events.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/Events.js @@ -43,7 +43,7 @@ export default function Events(props: Props) { return ( <div className="project-activity-events"> - {sortedEvents.map(event => ( + {sortedEvents.map(event => <Event analysis={props.analysis} canAdmin={props.canAdmin} @@ -53,7 +53,7 @@ export default function Events(props: Props) { isFirst={props.isFirst} key={event.key} /> - ))} + )} </div> ); } diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsHistory.js b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsHistory.js index 6ce8ad5825b..963128938be 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsHistory.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsHistory.js @@ -147,7 +147,7 @@ export default class GraphsHistory extends React.PureComponent { : <GraphsLegendStatic series={series} />} <div className="project-activity-graph"> <AutoSizer> - {({ height, width }) => ( + {({ height, width }) => <div> <AdvancedTimeline endDate={this.props.graphEndDate} @@ -179,8 +179,7 @@ export default class GraphsHistory extends React.PureComponent { tooltipIdx={tooltipIdx} tooltipPos={tooltipXPos} />} - </div> - )} + </div>} </AutoSizer> </div> </div> diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsLegendStatic.js b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsLegendStatic.js index 123bc9548b7..9a8fa09a7da 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsLegendStatic.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsLegendStatic.js @@ -27,7 +27,7 @@ type Props = { export default function GraphsLegendStatic({ series }: Props) { return ( <div className="project-activity-graph-legends"> - {series.map(serie => ( + {series.map(serie => <GraphsLegendItem className="big-spacer-left big-spacer-right" key={serie.name} @@ -35,7 +35,7 @@ export default function GraphsLegendStatic({ series }: Props) { name={serie.translatedName} style={serie.style} /> - ))} + )} </div> ); } diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContent.js b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContent.js index f3dae718ad6..5d35236a723 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContent.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContent.js @@ -43,7 +43,9 @@ export default function GraphsTooltipsContent({ serie, translatedName, value }: <td className="project-activity-graph-tooltip-value text-right spacer-right thin"> {value} </td> - <td>{translatedName}</td> + <td> + {translatedName} + </td> </tr> ); } diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContentCoverage.js b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContentCoverage.js index ca2219e6947..a9be3cdb64b 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContentCoverage.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContentCoverage.js @@ -38,7 +38,11 @@ export default function GraphsTooltipsContentCoverage({ measuresHistory, tooltip const coverageValue = coverage.history[tooltipIdx].value; return ( <tbody> - <tr><td className="project-activity-graph-tooltip-separator" colSpan="3"><hr /></td></tr> + <tr> + <td className="project-activity-graph-tooltip-separator" colSpan="3"> + <hr /> + </td> + </tr> {uncoveredValue && <tr className="project-activity-graph-tooltip-line"> <td @@ -46,7 +50,9 @@ export default function GraphsTooltipsContentCoverage({ measuresHistory, tooltip className="project-activity-graph-tooltip-value text-right spacer-right thin"> {formatMeasure(uncoveredValue, 'SHORT_INT')} </td> - <td>{translate('metric.uncovered_lines.name')}</td> + <td> + {translate('metric.uncovered_lines.name')} + </td> </tr>} {coverageValue && <tr className="project-activity-graph-tooltip-line"> @@ -55,7 +61,9 @@ export default function GraphsTooltipsContentCoverage({ measuresHistory, tooltip className="project-activity-graph-tooltip-value text-right spacer-right thin"> {formatMeasure(coverageValue, 'PERCENT')} </td> - <td>{translate('metric.coverage.name')}</td> + <td> + {translate('metric.coverage.name')} + </td> </tr>} </tbody> ); diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContentDuplication.js b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContentDuplication.js index cea4d9da585..9a8813fa2f7 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContentDuplication.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContentDuplication.js @@ -41,14 +41,20 @@ export default function GraphsTooltipsContentDuplication({ measuresHistory, tool } return ( <tbody> - <tr><td className="project-activity-graph-tooltip-separator" colSpan="3"><hr /></td></tr> + <tr> + <td className="project-activity-graph-tooltip-separator" colSpan="3"> + <hr /> + </td> + </tr> <tr className="project-activity-graph-tooltip-line"> <td colSpan="2" className="project-activity-graph-tooltip-value text-right spacer-right thin"> {formatMeasure(duplicationDensityValue, 'PERCENT')} </td> - <td>{translate('metric.duplicated_lines_density.name')}</td> + <td> + {translate('metric.duplicated_lines_density.name')} + </td> </tr> </tbody> ); diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContentEvents.js b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContentEvents.js index 4348f21e872..c2759dc7f35 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContentEvents.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContentEvents.js @@ -30,8 +30,12 @@ type Props = { export default function GraphsTooltipsContentEvents({ events }: Props) { return ( <tbody> - <tr><td className="project-activity-graph-tooltip-separator" colSpan="3"><hr /></td></tr> - {events.map(event => ( + <tr> + <td className="project-activity-graph-tooltip-separator" colSpan="3"> + <hr /> + </td> + </tr> + {events.map(event => <tr key={event.key} className="project-activity-graph-tooltip-line"> <td className="text-top spacer-right thin"> <ProjectEventIcon @@ -45,7 +49,7 @@ export default function GraphsTooltipsContentEvents({ events }: Props) { {event.name} </td> </tr> - ))} + )} </tbody> ); } diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContentOverview.js b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContentOverview.js index f16476bd41e..ecd0f5ac126 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContentOverview.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltipsContentOverview.js @@ -57,10 +57,14 @@ export default function GraphsTooltipsContentOverview(props: Props) { /> </td> <td className="text-right spacer-right"> - <span className="project-activity-graph-tooltip-value">{props.value}</span> + <span className="project-activity-graph-tooltip-value"> + {props.value} + </span> {ratingValue && <Rating className="spacer-left" small={true} value={ratingValue} />} </td> - <td>{props.serie.translatedName}</td> + <td> + {props.serie.translatedName} + </td> </tr> ); } diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsZoom.js b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsZoom.js index f6e6bab8dc7..3acdafc99ad 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsZoom.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsZoom.js @@ -44,7 +44,7 @@ export default function GraphsZoom(props: Props) { return ( <div className="project-activity-graph-zoom"> <AutoSizer disableHeight={true}> - {({ width }) => ( + {({ width }) => <ZoomTimeLine endDate={props.graphEndDate} height={64} @@ -57,8 +57,7 @@ export default function GraphsZoom(props: Props) { showAreas={props.showAreas} startDate={props.graphStartDate} updateZoom={props.updateGraphZoom} - /> - )} + />} </AutoSizer> </div> ); diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysesList.js b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysesList.js index 2706f9d2b14..e6622a72ef7 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysesList.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysesList.js @@ -148,8 +148,12 @@ export default class ProjectActivityAnalysesList extends React.PureComponent { return ( <div className={this.props.className}> {this.props.loading - ? <div className="text-center"><i className="spinner" /></div> - : <span className="note">{translate('no_results')}</span>} + ? <div className="text-center"> + <i className="spinner" /> + </div> + : <span className="note"> + {translate('no_results')} + </span>} </div> ); } @@ -177,7 +181,7 @@ export default class ProjectActivityAnalysesList extends React.PureComponent { </span> </div>} <ul className="project-activity-days-list"> - {days.map(day => ( + {days.map(day => <li key={day} className="project-activity-day" @@ -187,7 +191,7 @@ export default class ProjectActivityAnalysesList extends React.PureComponent { </div> <ul className="project-activity-analyses-list"> {version.byDay[day] != null && - version.byDay[day].map(analysis => ( + version.byDay[day].map(analysis => <ProjectActivityAnalysis addCustomEvent={this.props.addCustomEvent} addVersion={this.props.addVersion} @@ -201,15 +205,18 @@ export default class ProjectActivityAnalysesList extends React.PureComponent { selected={analysis.date.valueOf() === selectedDate} updateSelectedDate={this.updateSelectedDate} /> - ))} + )} </ul> </li> - ))} + )} </ul> </li> ); })} - {this.props.analysesLoading && <li className="text-center"><i className="spinner" /></li>} + {this.props.analysesLoading && + <li className="text-center"> + <i className="spinner" /> + </li>} </ul> ); } diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysis.js b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysis.js index 72490f7d41b..a94b2f6ce26 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysis.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysis.js @@ -73,9 +73,7 @@ export default class ProjectActivityAnalysis extends React.PureComponent { className="js-analysis-actions button-small button-compact dropdown-toggle" data-toggle="dropdown" onClick={this.stopPropagation}> - <i className="icon-settings" /> - {' '} - <i className="icon-dropdown" /> + <i className="icon-settings" /> <i className="icon-dropdown" /> </button> <ul className="dropdown-menu dropdown-menu-right"> {!hasVersion && @@ -114,7 +112,6 @@ export default class ProjectActivityAnalysis extends React.PureComponent { events={events} isFirst={this.props.isFirst} />} - </li> ); } diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityEventSelectOption.js b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityEventSelectOption.js index 8198162e3c3..a77c653b147 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityEventSelectOption.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityEventSelectOption.js @@ -62,7 +62,9 @@ export default class ProjectActivityEventSelectOption extends React.PureComponen onMouseMove={this.handleMouseMove} title={option.label}> <ProjectEventIcon className={'project-activity-event-icon ' + option.value} /> - <span className="little-spacer-left">{this.props.children}</span> + <span className="little-spacer-left"> + {this.props.children} + </span> </div> ); } diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityEventSelectValue.js b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityEventSelectValue.js index 3475c1b7e9c..08665bf06e4 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityEventSelectValue.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityEventSelectValue.js @@ -33,7 +33,9 @@ export default function ProjectActivityEventSelectValue(props: Props) { <div className="Select-value" title={value.label}> <div className="Select-value-label"> <ProjectEventIcon className={'project-activity-event-icon ' + value.value} /> - <span className="little-spacer-left">{props.children}</span> + <span className="little-spacer-left"> + {props.children} + </span> </div> </div> ); diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddEventForm.js b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddEventForm.js index 028fbc125a1..bcfc6672789 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddEventForm.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddEventForm.js @@ -100,15 +100,18 @@ export default class AddEventForm extends React.PureComponent { className="modal" overlayClassName="modal-overlay" onRequestClose={this.closeForm}> - <header className="modal-head"> - <h2>{translate(this.props.addEventButtonText)}</h2> + <h2> + {translate(this.props.addEventButtonText)} + </h2> </header> <form onSubmit={this.handleSubmit}> <div className="modal-body"> <div className="modal-field"> - <label>{translate('name')}</label> + <label> + {translate('name')} + </label> <input value={this.state.name} autoFocus={true} @@ -124,7 +127,9 @@ export default class AddEventForm extends React.PureComponent { {this.state.processing ? <i className="spinner" /> : <div> - <button type="submit">{translate('save')}</button> + <button type="submit"> + {translate('save')} + </button> <button type="reset" className="button-link" onClick={this.closeForm}> {translate('cancel')} </button> diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddGraphMetric.js b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddGraphMetric.js index 69c5a19d918..6d75c964004 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddGraphMetric.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddGraphMetric.js @@ -105,12 +105,16 @@ export default class AddGraphMetric extends React.PureComponent { overlayClassName="modal-overlay" onRequestClose={this.closeForm}> <header className="modal-head"> - <h2>{translate('project_activity.graphs.custom.add_metric')}</h2> + <h2> + {translate('project_activity.graphs.custom.add_metric')} + </h2> </header> <form onSubmit={this.handleSubmit}> <div className="modal-body"> <div className="modal-large-field"> - <label>{translate('project_activity.graphs.custom.search')}</label> + <label> + {translate('project_activity.graphs.custom.search')} + </label> <Select autofocus={true} className="Select-big" diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/ChangeEventForm.js b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/ChangeEventForm.js index 6a091dcae76..40c19cba887 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/ChangeEventForm.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/ChangeEventForm.js @@ -98,15 +98,18 @@ export default class ChangeEventForm extends React.PureComponent { className="modal" overlayClassName="modal-overlay" onRequestClose={this.closeForm}> - <header className="modal-head"> - <h2>{translate(this.props.changeEventButtonText)}</h2> + <h2> + {translate(this.props.changeEventButtonText)} + </h2> </header> <form onSubmit={this.handleSubmit}> <div className="modal-body"> <div className="modal-field"> - <label>{translate('name')}</label> + <label> + {translate('name')} + </label> <input value={this.state.name} autoFocus={true} @@ -122,7 +125,9 @@ export default class ChangeEventForm extends React.PureComponent { {this.state.processing ? <i className="spinner" /> : <div> - <button type="submit">{translate('change_verb')}</button> + <button type="submit"> + {translate('change_verb')} + </button> <button type="reset" className="button-link" onClick={this.closeForm}> {translate('cancel')} </button> diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/RemoveAnalysisForm.js b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/RemoveAnalysisForm.js index d96a05f7334..d8a12f791c5 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/RemoveAnalysisForm.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/RemoveAnalysisForm.js @@ -91,9 +91,10 @@ export default class RemoveAnalysisForm extends React.PureComponent { className="modal" overlayClassName="modal-overlay" onRequestClose={this.closeForm}> - <header className="modal-head"> - <h2>{translate('project_activity.delete_analysis')}</h2> + <h2> + {translate('project_activity.delete_analysis')} + </h2> </header> <form onSubmit={this.handleSubmit}> diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/RemoveEventForm.js b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/RemoveEventForm.js index b23522db21c..ac50df35dc7 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/RemoveEventForm.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/RemoveEventForm.js @@ -84,9 +84,10 @@ export default class RemoveEventForm extends React.PureComponent { className="modal" overlayClassName="modal-overlay" onRequestClose={this.closeForm}> - <header className="modal-head"> - <h2>{translate(this.props.removeEventButtonText)}</h2> + <h2> + {translate(this.props.removeEventButtonText)} + </h2> </header> <form onSubmit={this.handleSubmit}> diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/projectActivity.css b/server/sonar-web/src/main/js/apps/projectActivity/components/projectActivity.css index a42cbc13f2e..7e63c546db9 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/projectActivity.css +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/projectActivity.css @@ -99,11 +99,13 @@ margin-bottom: 8px; } -.project-activity-graph-tooltip-title, .project-activity-graph-tooltip-value { +.project-activity-graph-tooltip-title, +.project-activity-graph-tooltip-value { font-weight: bold; } -.project-activity-days-list {} +.project-activity-days-list { +} .project-activity-day { margin-top: 8px; @@ -120,7 +122,8 @@ font-weight: bold; } -.project-activity-analyses-list {} +.project-activity-analyses-list { +} .project-activity-analysis { position: relative; @@ -238,7 +241,8 @@ background-color: white; } -.project-activity-version-badge.sticky, .project-activity-version-badge.first { +.project-activity-version-badge.sticky, +.project-activity-version-badge.first { position: absolute; top: 0; left: 12px; diff --git a/server/sonar-web/src/main/js/apps/projectActivity/utils.js b/server/sonar-web/src/main/js/apps/projectActivity/utils.js index 83f5960b6e7..cdf5fa75eb7 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/utils.js +++ b/server/sonar-web/src/main/js/apps/projectActivity/utils.js @@ -179,7 +179,7 @@ export const getDisplayedHistoryMetrics = ( ): Array<string> => (isCustomGraph(graph) ? customMetrics : GRAPHS_METRICS_DISPLAYED[graph]); export const getHistoryMetrics = (graph: string, customMetrics: Array<string>): Array<string> => - (isCustomGraph(graph) ? customMetrics : GRAPHS_METRICS[graph]); + isCustomGraph(graph) ? customMetrics : GRAPHS_METRICS[graph]; const parseGraph = (value?: string): string => { const graph = parseAsString(value); diff --git a/server/sonar-web/src/main/js/apps/projects-admin/AppContainer.js b/server/sonar-web/src/main/js/apps/projects-admin/AppContainer.js index 69f890b5caa..1531bb344dc 100644 --- a/server/sonar-web/src/main/js/apps/projects-admin/AppContainer.js +++ b/server/sonar-web/src/main/js/apps/projects-admin/AppContainer.js @@ -66,8 +66,8 @@ class AppContainer extends React.PureComponent { const mapStateToProps = (state, ownProps) => ({ appState: getAppState(state), - organization: ownProps.organization || - getOrganizationByKey(state, getAppState(state).defaultOrganization) + organization: + ownProps.organization || getOrganizationByKey(state, getAppState(state).defaultOrganization) }); const onVisibilityChange = (organization, visibility) => dispatch => { diff --git a/server/sonar-web/src/main/js/apps/projects-admin/ChangeVisibilityForm.js b/server/sonar-web/src/main/js/apps/projects-admin/ChangeVisibilityForm.js index fcb2d35b142..99f70766510 100644 --- a/server/sonar-web/src/main/js/apps/projects-admin/ChangeVisibilityForm.js +++ b/server/sonar-web/src/main/js/apps/projects-admin/ChangeVisibilityForm.js @@ -73,13 +73,14 @@ export default class ChangeVisibilityForm extends React.PureComponent { className="modal" overlayClassName="modal-overlay" onRequestClose={this.props.onClose}> - <header className="modal-head"> - <h2>{translate('organization.change_visibility_form.header')}</h2> + <h2> + {translate('organization.change_visibility_form.header')} + </h2> </header> <div className="modal-body"> - {['public', 'private'].map(visibility => ( + {['public', 'private'].map(visibility => <div className="big-spacer-bottom" key={visibility}> <p> {visibility === 'private' && !canUpdateProjectsVisibilityToPrivate @@ -107,7 +108,7 @@ export default class ChangeVisibilityForm extends React.PureComponent { {translate('visibility', visibility, 'description.short')} </p> </div> - ))} + )} {canUpdateProjectsVisibilityToPrivate ? <div className="alert alert-warning"> @@ -120,9 +121,10 @@ export default class ChangeVisibilityForm extends React.PureComponent { <button onClick={this.handleConfirmClick}> {translate('organization.change_visibility_form.submit')} </button> - <a href="#" onClick={this.handleCancelClick}>{translate('cancel')}</a> + <a href="#" onClick={this.handleCancelClick}> + {translate('cancel')} + </a> </footer> - </Modal> ); } diff --git a/server/sonar-web/src/main/js/apps/projects-admin/CreateProjectForm.js b/server/sonar-web/src/main/js/apps/projects-admin/CreateProjectForm.js index 0266656aa8d..adb2353292a 100644 --- a/server/sonar-web/src/main/js/apps/projects-admin/CreateProjectForm.js +++ b/server/sonar-web/src/main/js/apps/projects-admin/CreateProjectForm.js @@ -122,19 +122,19 @@ export default class CreateProjectForm extends React.PureComponent { className="modal" overlayClassName="modal-overlay" onRequestClose={this.props.onClose}> - {createdProject ? <div> <header className="modal-head"> - <h2>{translate('qualifiers.create.TRK')}</h2> + <h2> + {translate('qualifiers.create.TRK')} + </h2> </header> <div className="modal-body"> <div className="alert alert-success"> - Project - {' '} - <Link to={getProjectUrl(createdProject.key)}>{createdProject.name}</Link> - {' '} + Project <Link to={getProjectUrl(createdProject.key)}> + {createdProject.name} + </Link>{' '} has been successfully created. </div> </div> @@ -147,7 +147,9 @@ export default class CreateProjectForm extends React.PureComponent { </div> : <form id="create-project-form" onSubmit={this.handleFormSubmit}> <header className="modal-head"> - <h2>{translate('qualifiers.create.TRK')}</h2> + <h2> + {translate('qualifiers.create.TRK')} + </h2> </header> <div className="modal-body"> @@ -196,7 +198,9 @@ export default class CreateProjectForm extends React.PureComponent { /> </div> <div className="modal-field"> - <label> {translate('visibility')} </label> + <label> + {' '}{translate('visibility')}{' '} + </label> <VisibilitySelector canTurnToPrivate={ organization == null || organization.canUpdateProjectsVisibilityToPrivate @@ -223,7 +227,6 @@ export default class CreateProjectForm extends React.PureComponent { </a> </footer> </form>} - </Modal> ); } diff --git a/server/sonar-web/src/main/js/apps/projects-admin/header.js b/server/sonar-web/src/main/js/apps/projects-admin/header.js index f0b23d0ef61..8538e20cd73 100644 --- a/server/sonar-web/src/main/js/apps/projects-admin/header.js +++ b/server/sonar-web/src/main/js/apps/projects-admin/header.js @@ -57,14 +57,13 @@ export default class Header extends React.PureComponent { return ( <header className="page-header"> - <h1 className="page-title">{translate('projects_management')}</h1> + <h1 className="page-title"> + {translate('projects_management')} + </h1> <div className="page-actions"> <span className="big-spacer-right"> - {translate('organization.default_visibility_of_new_projects')} - {' '} - <strong> - {translate('visibility', organization.projectVisibility)} - </strong> + {translate('organization.default_visibility_of_new_projects')}{' '} + <strong>{translate('visibility', organization.projectVisibility)}</strong> <a className="spacer-left icon-edit" href="#" diff --git a/server/sonar-web/src/main/js/apps/projects-admin/projects.js b/server/sonar-web/src/main/js/apps/projects-admin/projects.js index cbf2aab4a72..847d2a5f702 100644 --- a/server/sonar-web/src/main/js/apps/projects-admin/projects.js +++ b/server/sonar-web/src/main/js/apps/projects-admin/projects.js @@ -74,13 +74,13 @@ export default class Projects extends React.PureComponent { <Link to={{ pathname: '/dashboard', query: { id: project.key } }} className="link-with-icon"> - <QualifierIcon qualifier={project.qualifier} /> - {' '} - <span>{project.name}</span> + <QualifierIcon qualifier={project.qualifier} /> <span>{project.name}</span> </Link> </td> <td className="nowrap"> - <span className="note">{project.key}</span> + <span className="note"> + {project.key} + </span> </td> <td className="width-20"> {project.visibility === 'private' && <PrivateBadge />} @@ -88,9 +88,7 @@ export default class Projects extends React.PureComponent { <td className="thin nowrap"> <div className="dropdown"> <button className="dropdown-toggle" data-toggle="dropdown"> - {translate('actions')} - {' '} - <i className="icon-dropdown" /> + {translate('actions')} <i className="icon-dropdown" /> </button> <ul className="dropdown-menu dropdown-menu-right"> <li> @@ -115,7 +113,9 @@ export default class Projects extends React.PureComponent { return ( <table className={className} id="projects-management-page-projects"> - <tbody>{this.props.projects.map(this.renderProject)}</tbody> + <tbody> + {this.props.projects.map(this.renderProject)} + </tbody> </table> ); } diff --git a/server/sonar-web/src/main/js/apps/projects-admin/views/BulkApplyTemplateView.js b/server/sonar-web/src/main/js/apps/projects-admin/views/BulkApplyTemplateView.js index 9769576cc53..ee11a8d1eda 100644 --- a/server/sonar-web/src/main/js/apps/projects-admin/views/BulkApplyTemplateView.js +++ b/server/sonar-web/src/main/js/apps/projects-admin/views/BulkApplyTemplateView.js @@ -90,9 +90,10 @@ export default ModalForm.extend({ const applyTo = this.$('[name="apply-to"]:checked').val(); this.disableForm(); - const request = applyTo === 'all' - ? this.bulkApplyToAll(permissionTemplate) - : this.bulkApplyToSelected(permissionTemplate); + const request = + applyTo === 'all' + ? this.bulkApplyToAll(permissionTemplate) + : this.bulkApplyToSelected(permissionTemplate); request .then(() => { diff --git a/server/sonar-web/src/main/js/apps/projects/components/AllProjects.js b/server/sonar-web/src/main/js/apps/projects/components/AllProjects.js index cc8ebb4af9a..37472169965 100644 --- a/server/sonar-web/src/main/js/apps/projects/components/AllProjects.js +++ b/server/sonar-web/src/main/js/apps/projects/components/AllProjects.js @@ -144,7 +144,7 @@ export default class AllProjects extends React.PureComponent { }); }; - renderSide = () => ( + renderSide = () => <div className="layout-page-side-outer"> <div className="layout-page-side projects-page-side" @@ -161,10 +161,9 @@ export default class AllProjects extends React.PureComponent { </div> </div> </div> - </div> - ); + </div>; - renderHeader = () => ( + renderHeader = () => <div className="layout-page-header-panel layout-page-main-header"> <div className="layout-page-header-panel-inner layout-page-main-header-inner"> <div className="layout-page-main-inner"> @@ -181,11 +180,10 @@ export default class AllProjects extends React.PureComponent { /> </div> </div> - </div> - ); + </div>; renderMain = () => - (this.getView() === 'visualizations' + this.getView() === 'visualizations' ? <div className="layout-page-main-inner"> <VisualizationsContainer sort={this.state.query.sort} @@ -204,7 +202,7 @@ export default class AllProjects extends React.PureComponent { isFavorite={this.props.isFavorite} organization={this.props.organization} /> - </div>); + </div>; render() { return ( diff --git a/server/sonar-web/src/main/js/apps/projects/components/EmptyInstance.js b/server/sonar-web/src/main/js/apps/projects/components/EmptyInstance.js index 1eb2241cfb1..00d1edf2c22 100644 --- a/server/sonar-web/src/main/js/apps/projects/components/EmptyInstance.js +++ b/server/sonar-web/src/main/js/apps/projects/components/EmptyInstance.js @@ -23,7 +23,9 @@ import { translate } from '../../../helpers/l10n'; export default function EmptyInstance() { return ( <div className="projects-empty-list"> - <h3>{translate('projects.no_projects.empty_instance')}</h3> + <h3> + {translate('projects.no_projects.empty_instance')} + </h3> </div> ); } diff --git a/server/sonar-web/src/main/js/apps/projects/components/NoFavoriteProjects.js b/server/sonar-web/src/main/js/apps/projects/components/NoFavoriteProjects.js index f69fbebc834..86c62bd2a03 100644 --- a/server/sonar-web/src/main/js/apps/projects/components/NoFavoriteProjects.js +++ b/server/sonar-web/src/main/js/apps/projects/components/NoFavoriteProjects.js @@ -24,8 +24,12 @@ import { translate } from '../../../helpers/l10n'; export default function NoFavoriteProjects() { return ( <div className="projects-empty-list"> - <h3>{translate('projects.no_favorite_projects')}</h3> - <p className="big-spacer-top">{translate('projects.no_favorite_projects.engagement')}</p> + <h3> + {translate('projects.no_favorite_projects')} + </h3> + <p className="big-spacer-top"> + {translate('projects.no_favorite_projects.engagement')} + </p> <p className="big-spacer-top"> <Link to="/projects/all" className="button"> {translate('projects.explore_projects')} diff --git a/server/sonar-web/src/main/js/apps/projects/components/PageHeader.js b/server/sonar-web/src/main/js/apps/projects/components/PageHeader.js index 356690901e6..588920ead76 100644 --- a/server/sonar-web/src/main/js/apps/projects/components/PageHeader.js +++ b/server/sonar-web/src/main/js/apps/projects/components/PageHeader.js @@ -101,8 +101,7 @@ export default function PageHeader(props: Props) { {props.projectsAppState.total != null && <span> - <strong id="projects-total">{props.projectsAppState.total}</strong> - {' '} + <strong id="projects-total">{props.projectsAppState.total}</strong>{' '} {translate('projects._projects')} </span>} </div> diff --git a/server/sonar-web/src/main/js/apps/projects/components/PageSidebar.js b/server/sonar-web/src/main/js/apps/projects/components/PageSidebar.js index 65fa894d22c..ab9dcd4326a 100644 --- a/server/sonar-web/src/main/js/apps/projects/components/PageSidebar.js +++ b/server/sonar-web/src/main/js/apps/projects/components/PageSidebar.js @@ -83,7 +83,9 @@ export default function PageSidebar({ </Link> </div>} - <h3>{translate('filters')}</h3> + <h3> + {translate('filters')} + </h3> </div> <QualityGateFilter {...facetProps} /> {!isLeakView && [ diff --git a/server/sonar-web/src/main/js/apps/projects/components/PerspectiveSelect.js b/server/sonar-web/src/main/js/apps/projects/components/PerspectiveSelect.js index 8f6f5f41c0d..6dff8ffa6de 100644 --- a/server/sonar-web/src/main/js/apps/projects/components/PerspectiveSelect.js +++ b/server/sonar-web/src/main/js/apps/projects/components/PerspectiveSelect.js @@ -66,7 +66,9 @@ export default class PerspectiveSelect extends React.PureComponent { const perspective = view === 'visualizations' ? visualization : view; return ( <div className={this.props.className}> - <label>{translate('projects.perspective')}:</label> + <label> + {translate('projects.perspective')}: + </label> <Select className="little-spacer-left input-medium" clearable={false} diff --git a/server/sonar-web/src/main/js/apps/projects/components/ProjectCardLanguages.js b/server/sonar-web/src/main/js/apps/projects/components/ProjectCardLanguages.js index 3e19ee801ce..a79b33def4c 100644 --- a/server/sonar-web/src/main/js/apps/projects/components/ProjectCardLanguages.js +++ b/server/sonar-web/src/main/js/apps/projects/components/ProjectCardLanguages.js @@ -46,7 +46,12 @@ class ProjectCardLanguages extends React.PureComponent { const tooltip = ( <span> - {finalLanguages.map(language => <span key={language}>{language}<br /></span>)} + {finalLanguages.map(language => + <span key={language}> + {language} + <br /> + </span> + )} </span> ); @@ -56,7 +61,9 @@ class ProjectCardLanguages extends React.PureComponent { return ( <div className="project-card-languages"> <Tooltip placement="bottom" overlay={tooltip}> - <span>{languagesText}</span> + <span> + {languagesText} + </span> </Tooltip> </div> ); diff --git a/server/sonar-web/src/main/js/apps/projects/components/ProjectCardLeak.js b/server/sonar-web/src/main/js/apps/projects/components/ProjectCardLeak.js index ac47c003b7a..6de5f6a687f 100644 --- a/server/sonar-web/src/main/js/apps/projects/components/ProjectCardLeak.js +++ b/server/sonar-web/src/main/js/apps/projects/components/ProjectCardLeak.js @@ -75,7 +75,9 @@ export default function ProjectCardLeak({ measures, organization, project }: Pro <span className="text-normal"> <Organization organizationKey={project.organization} /> </span>} - <Link to={{ pathname: '/dashboard', query: { id: project.key } }}>{project.name}</Link> + <Link to={{ pathname: '/dashboard', query: { id: project.key } }}> + {project.name} + </Link> </h2> {displayQualityGate && <ProjectCardQualityGate status={measures['alert_status']} />} <div className="pull-right text-right"> diff --git a/server/sonar-web/src/main/js/apps/projects/components/ProjectCardOverall.js b/server/sonar-web/src/main/js/apps/projects/components/ProjectCardOverall.js index 72bbccbd7ae..49c9d27fcc8 100644 --- a/server/sonar-web/src/main/js/apps/projects/components/ProjectCardOverall.js +++ b/server/sonar-web/src/main/js/apps/projects/components/ProjectCardOverall.js @@ -74,7 +74,9 @@ export default function ProjectCardOverall({ measures, organization, project }: <span className="text-normal"> <Organization organizationKey={project.organization} /> </span>} - <Link to={{ pathname: '/dashboard', query: { id: project.key } }}>{project.name}</Link> + <Link to={{ pathname: '/dashboard', query: { id: project.key } }}> + {project.name} + </Link> </h2> {displayQualityGate && <ProjectCardQualityGate status={measures['alert_status']} />} <div className="pull-right text-right"> diff --git a/server/sonar-web/src/main/js/apps/projects/components/ProjectsList.js b/server/sonar-web/src/main/js/apps/projects/components/ProjectsList.js index e9eea0c0a88..1b2f615bced 100644 --- a/server/sonar-web/src/main/js/apps/projects/components/ProjectsList.js +++ b/server/sonar-web/src/main/js/apps/projects/components/ProjectsList.js @@ -55,14 +55,14 @@ export default class ProjectsList extends React.PureComponent { return ( <div className="projects-list"> {projects.length > 0 - ? projects.map(projectKey => ( + ? projects.map(projectKey => <ProjectCardContainer key={projectKey} projectKey={projectKey} organization={this.props.organization} type={this.props.cardType} /> - )) + ) : this.renderNoProjects()} </div> ); diff --git a/server/sonar-web/src/main/js/apps/projects/components/ProjectsSortingSelect.js b/server/sonar-web/src/main/js/apps/projects/components/ProjectsSortingSelect.js index 2d97d5cad68..fa9fb3b7f00 100644 --- a/server/sonar-web/src/main/js/apps/projects/components/ProjectsSortingSelect.js +++ b/server/sonar-web/src/main/js/apps/projects/components/ProjectsSortingSelect.js @@ -83,7 +83,9 @@ export default class ProjectsSortingSelect extends React.PureComponent { return ( <div className={this.props.className}> - <label>{translate('projects.sort_by')}:</label> + <label> + {translate('projects.sort_by')}: + </label> <Select className="little-spacer-left input-medium" clearable={false} diff --git a/server/sonar-web/src/main/js/apps/projects/filters/CoverageFilter.js b/server/sonar-web/src/main/js/apps/projects/filters/CoverageFilter.js index 2440b2e7541..277c59a4e1d 100644 --- a/server/sonar-web/src/main/js/apps/projects/filters/CoverageFilter.js +++ b/server/sonar-web/src/main/js/apps/projects/filters/CoverageFilter.js @@ -54,7 +54,9 @@ export default class CoverageFilter extends React.PureComponent { <span className="spacer-left"> {option < 6 ? getCoverageRatingLabel(option) - : <span className="big-spacer-left">{translate('no_data')}</span>} + : <span className="big-spacer-left"> + {translate('no_data')} + </span>} </span> </span> ); diff --git a/server/sonar-web/src/main/js/apps/projects/filters/DuplicationsFilter.js b/server/sonar-web/src/main/js/apps/projects/filters/DuplicationsFilter.js index 371da910a82..5b9f30484c0 100644 --- a/server/sonar-web/src/main/js/apps/projects/filters/DuplicationsFilter.js +++ b/server/sonar-web/src/main/js/apps/projects/filters/DuplicationsFilter.js @@ -57,7 +57,9 @@ export default class DuplicationsFilter extends React.PureComponent { <span className="spacer-left"> {option < 6 ? getDuplicationsRatingLabel(option) - : <span className="big-spacer-left">{translate('no_data')}</span>} + : <span className="big-spacer-left"> + {translate('no_data')} + </span>} </span> </span> ); diff --git a/server/sonar-web/src/main/js/apps/projects/filters/Filter.js b/server/sonar-web/src/main/js/apps/projects/filters/Filter.js index bdc9fc66948..876eb1e7abf 100644 --- a/server/sonar-web/src/main/js/apps/projects/filters/Filter.js +++ b/server/sonar-web/src/main/js/apps/projects/filters/Filter.js @@ -113,9 +113,8 @@ export default class Filter extends React.PureComponent { ); const path = this.getPath(option); - const facetValue = facet && getFacetValueForOption - ? getFacetValueForOption(facet, option) - : null; + const facetValue = + facet && getFacetValueForOption ? getFacetValueForOption(facet, option) : null; const isUnderSelectedOption = this.highlightUnder(value) && option > value; diff --git a/server/sonar-web/src/main/js/apps/projects/filters/IssuesFilter.js b/server/sonar-web/src/main/js/apps/projects/filters/IssuesFilter.js index 52e52bc92a2..69d68a033ff 100644 --- a/server/sonar-web/src/main/js/apps/projects/filters/IssuesFilter.js +++ b/server/sonar-web/src/main/js/apps/projects/filters/IssuesFilter.js @@ -44,7 +44,9 @@ export default class IssuesFilter extends React.PureComponent { <Rating value={option} small={true} muted={!selected} /> {option > 1 && option < 5 && - <span className="note spacer-left">{translate('and_worse')}</span>} + <span className="note spacer-left"> + {translate('and_worse')} + </span>} </span> ); } diff --git a/server/sonar-web/src/main/js/apps/projects/filters/LanguagesFilter.js b/server/sonar-web/src/main/js/apps/projects/filters/LanguagesFilter.js index d610b721939..6548c9441e0 100644 --- a/server/sonar-web/src/main/js/apps/projects/filters/LanguagesFilter.js +++ b/server/sonar-web/src/main/js/apps/projects/filters/LanguagesFilter.js @@ -60,12 +60,11 @@ export default class LanguagesFilter extends React.PureComponent { getFacetValueForOption = (facet: {} = {}, option: string) => facet[option]; - renderOption = (option: string) => ( + renderOption = (option: string) => <SearchableFilterOption optionKey={option} option={getLanguageByKey(this.props.languages, option)} - /> - ); + />; render() { return ( diff --git a/server/sonar-web/src/main/js/apps/projects/filters/NewReliabilityFilter.js b/server/sonar-web/src/main/js/apps/projects/filters/NewReliabilityFilter.js index 0dbb948a577..9e42ab27e69 100644 --- a/server/sonar-web/src/main/js/apps/projects/filters/NewReliabilityFilter.js +++ b/server/sonar-web/src/main/js/apps/projects/filters/NewReliabilityFilter.js @@ -29,7 +29,10 @@ export default function NewReliabilityFilter(props) { className="leak-facet-box" headerDetail={ <span className="note little-spacer-left"> - {'('}<BugIcon className="little-spacer-right" />{translate('metric.bugs.name')}{' )'} + {'('} + <BugIcon className="little-spacer-right" /> + {translate('metric.bugs.name')} + {' )'} </span> } name="Reliability" diff --git a/server/sonar-web/src/main/js/apps/projects/filters/SearchableFilterOption.js b/server/sonar-web/src/main/js/apps/projects/filters/SearchableFilterOption.js index ef176a9e45e..ed8877f6df5 100644 --- a/server/sonar-web/src/main/js/apps/projects/filters/SearchableFilterOption.js +++ b/server/sonar-web/src/main/js/apps/projects/filters/SearchableFilterOption.js @@ -28,6 +28,10 @@ export default class SearchableFilterOption extends React.PureComponent { render() { const optionName = this.props.option ? this.props.option.name : this.props.optionKey; - return <span>{this.props.optionKey !== '<null>' ? optionName : translate('unknown')}</span>; + return ( + <span> + {this.props.optionKey !== '<null>' ? optionName : translate('unknown')} + </span> + ); } } diff --git a/server/sonar-web/src/main/js/apps/projects/visualizations/RatingsLegend.js b/server/sonar-web/src/main/js/apps/projects/visualizations/RatingsLegend.js index 246ce40c685..b22d9729157 100644 --- a/server/sonar-web/src/main/js/apps/projects/visualizations/RatingsLegend.js +++ b/server/sonar-web/src/main/js/apps/projects/visualizations/RatingsLegend.js @@ -25,7 +25,7 @@ import { RATING_COLORS } from '../../../helpers/constants'; export default function RatingsLegend() { return ( <div className="projects-visualizations-ratings"> - {[1, 2, 3, 4, 5].map(rating => ( + {[1, 2, 3, 4, 5].map(rating => <div key={rating}> <span className="projects-visualizations-ratings-rect" @@ -37,7 +37,7 @@ export default function RatingsLegend() { </span> {formatMeasure(rating, 'RATING')} </div> - ))} + )} </div> ); } diff --git a/server/sonar-web/src/main/js/apps/projects/visualizations/Risk.js b/server/sonar-web/src/main/js/apps/projects/visualizations/Risk.js index 5a4f0cac15d..fc881790b54 100644 --- a/server/sonar-web/src/main/js/apps/projects/visualizations/Risk.js +++ b/server/sonar-web/src/main/js/apps/projects/visualizations/Risk.js @@ -63,9 +63,10 @@ export default class Risk extends React.PureComponent { color1: ?number, color2: ?number ) { - const fullProjectName = this.props.displayOrganizations && project.organization - ? `${project.organization.name} / <strong>${project.name}</strong>` - : `<strong>${project.name}</strong>`; + const fullProjectName = + this.props.displayOrganizations && project.organization + ? `${project.organization.name} / <strong>${project.name}</strong>` + : `<strong>${project.name}</strong>`; const inner = [ `<div class="little-spacer-bottom">${fullProjectName}</div>`, this.getMetricTooltip({ key: COLOR_METRIC_1, type: COLOR_METRIC_TYPE }, color1), @@ -81,22 +82,20 @@ export default class Risk extends React.PureComponent { const items = this.props.projects.map(project => { const x = project.measures[X_METRIC] != null ? Number(project.measures[X_METRIC]) : null; const y = project.measures[Y_METRIC] != null ? Number(project.measures[Y_METRIC]) : null; - const size = project.measures[SIZE_METRIC] != null - ? Number(project.measures[SIZE_METRIC]) - : null; - const color1 = project.measures[COLOR_METRIC_1] != null - ? Number(project.measures[COLOR_METRIC_1]) - : null; - const color2 = project.measures[COLOR_METRIC_2] != null - ? Number(project.measures[COLOR_METRIC_2]) - : null; + const size = + project.measures[SIZE_METRIC] != null ? Number(project.measures[SIZE_METRIC]) : null; + const color1 = + project.measures[COLOR_METRIC_1] != null ? Number(project.measures[COLOR_METRIC_1]) : null; + const color2 = + project.measures[COLOR_METRIC_2] != null ? Number(project.measures[COLOR_METRIC_2]) : null; return { x: x || 0, y: y || 0, size: size || 0, - color: color1 != null && color2 != null - ? RATING_COLORS[Math.max(color1, color2) - 1] - : undefined, + color: + color1 != null && color2 != null + ? RATING_COLORS[Math.max(color1, color2) - 1] + : undefined, key: project.key, tooltip: this.getTooltip(project, x, y, size, color1, color2), link: getProjectUrl(project.key) diff --git a/server/sonar-web/src/main/js/apps/projects/visualizations/SimpleBubbleChart.js b/server/sonar-web/src/main/js/apps/projects/visualizations/SimpleBubbleChart.js index abf13ea589c..ede73dbf87b 100644 --- a/server/sonar-web/src/main/js/apps/projects/visualizations/SimpleBubbleChart.js +++ b/server/sonar-web/src/main/js/apps/projects/visualizations/SimpleBubbleChart.js @@ -53,9 +53,10 @@ export default class SimpleBubbleChart extends React.PureComponent { } getTooltip(project: Project, x: ?number, y: ?number, size: ?number, color?: number) { - const fullProjectName = this.props.displayOrganizations && project.organization - ? `${project.organization.name} / <strong>${project.name}</strong>` - : `<strong>${project.name}</strong>`; + const fullProjectName = + this.props.displayOrganizations && project.organization + ? `${project.organization.name} / <strong>${project.name}</strong>` + : `<strong>${project.name}</strong>`; const inner = [ `<div class="little-spacer-bottom">${fullProjectName}</div>`, @@ -78,15 +79,14 @@ export default class SimpleBubbleChart extends React.PureComponent { const items = this.props.projects .filter(project => colorMetric == null || project.measures[colorMetric] !== null) .map(project => { - const x = project.measures[xMetric.key] != null - ? Number(project.measures[xMetric.key]) - : null; - const y = project.measures[yMetric.key] != null - ? Number(project.measures[yMetric.key]) - : null; - const size = project.measures[sizeMetric.key] != null - ? Number(project.measures[sizeMetric.key]) - : null; + const x = + project.measures[xMetric.key] != null ? Number(project.measures[xMetric.key]) : null; + const y = + project.measures[yMetric.key] != null ? Number(project.measures[yMetric.key]) : null; + const size = + project.measures[sizeMetric.key] != null + ? Number(project.measures[sizeMetric.key]) + : null; const color = colorMetric ? Number(project.measures[colorMetric]) : undefined; return { x: x || 0, diff --git a/server/sonar-web/src/main/js/apps/projects/visualizations/Visualizations.js b/server/sonar-web/src/main/js/apps/projects/visualizations/Visualizations.js index cc7627f740f..ee32e11c30f 100644 --- a/server/sonar-web/src/main/js/apps/projects/visualizations/Visualizations.js +++ b/server/sonar-web/src/main/js/apps/projects/visualizations/Visualizations.js @@ -60,7 +60,9 @@ export default class Visualizations extends React.PureComponent { return ( <footer className="projects-visualizations-footer"> - <p>{translate('projects.visualization', this.props.visualization, 'description')}</p> + <p> + {translate('projects.visualization', this.props.visualization, 'description')} + </p> {limitReached && <p className="note spacer-top"> {translateWithParameters( diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/Condition.js b/server/sonar-web/src/main/js/apps/quality-gates/components/Condition.js index 42788371e7f..ce2ff884636 100644 --- a/server/sonar-web/src/main/js/apps/quality-gates/components/Condition.js +++ b/server/sonar-web/src/main/js/apps/quality-gates/components/Condition.js @@ -196,7 +196,11 @@ export default class Condition extends Component { } if (metric.type === 'RATING') { - return <span className="note">{translate('quality_gates.operator.GT.rating')}</span>; + return ( + <span className="note"> + {translate('quality_gates.operator.GT.rating')} + </span> + ); } const operators = ['LT', 'GT', 'EQ', 'NE']; @@ -289,7 +293,6 @@ export default class Condition extends Component { </a> </div>} </td>} - </tr> ); } diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/Conditions.js b/server/sonar-web/src/main/js/apps/quality-gates/components/Conditions.js index cfd353cc655..b9e07816788 100644 --- a/server/sonar-web/src/main/js/apps/quality-gates/components/Conditions.js +++ b/server/sonar-web/src/main/js/apps/quality-gates/components/Conditions.js @@ -100,11 +100,15 @@ export default class Conditions extends React.PureComponent { {uniqDuplicates.length > 0 && <div className="alert alert-warning"> - <p>{translate('quality_gates.duplicated_conditions')}</p> + <p> + {translate('quality_gates.duplicated_conditions')} + </p> <ul className="list-styled spacer-top"> - {uniqDuplicates.map(d => ( - <li key={d.metric.key}>{getLocalizedMetricName(d.metric)}</li> - ))} + {uniqDuplicates.map(d => + <li key={d.metric.key}> + {getLocalizedMetricName(d.metric)} + </li> + )} </ul> </div>} @@ -131,7 +135,7 @@ export default class Conditions extends React.PureComponent { </tr> </thead> <tbody> - {sortedConditions.map((condition, index) => ( + {sortedConditions.map((condition, index) => <Condition key={getKey(condition, index)} qualityGate={qualityGate} @@ -143,7 +147,7 @@ export default class Conditions extends React.PureComponent { onError={this.handleError.bind(this)} onResetError={this.handleResetError.bind(this)} /> - ))} + )} </tbody> </table> : <div className="big-spacer-top"> diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/ConditionsAlert.js b/server/sonar-web/src/main/js/apps/quality-gates/components/ConditionsAlert.js index a7d754f2028..334b4d2a397 100644 --- a/server/sonar-web/src/main/js/apps/quality-gates/components/ConditionsAlert.js +++ b/server/sonar-web/src/main/js/apps/quality-gates/components/ConditionsAlert.js @@ -45,19 +45,13 @@ export default class ConditionsAlert extends Component { {translate('quality_gates.health_icons')} <ul> <li className="little-spacer-top"> - <i className="icon-alert-ok" /> - {' '} - {translate('alerts.notes.ok')} + <i className="icon-alert-ok" /> {translate('alerts.notes.ok')} </li> <li className="little-spacer-top"> - <i className="icon-alert-warn" /> - {' '} - {translate('alerts.notes.warn')} + <i className="icon-alert-warn" /> {translate('alerts.notes.warn')} </li> <li className="little-spacer-top"> - <i className="icon-alert-error" /> - {' '} - {translate('alerts.notes.error')} + <i className="icon-alert-error" /> {translate('alerts.notes.error')} </li> </ul> </div>} diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/DetailsHeader.js b/server/sonar-web/src/main/js/apps/quality-gates/components/DetailsHeader.js index 55cf486fbbd..e7252e1d9be 100644 --- a/server/sonar-web/src/main/js/apps/quality-gates/components/DetailsHeader.js +++ b/server/sonar-web/src/main/js/apps/quality-gates/components/DetailsHeader.js @@ -50,7 +50,9 @@ export default function DetailsHeader({ return ( <div className="search-navigator-workspace-header" style={{ top: 30 }}> - <h2 className="search-navigator-header-component">{qualityGate.name}</h2> + <h2 className="search-navigator-header-component"> + {qualityGate.name} + </h2> {edit && <div className="search-navigator-header-actions"> <div className="button-group"> diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/Intro.js b/server/sonar-web/src/main/js/apps/quality-gates/components/Intro.js index e1c4c262097..e7ccb6c49f3 100644 --- a/server/sonar-web/src/main/js/apps/quality-gates/components/Intro.js +++ b/server/sonar-web/src/main/js/apps/quality-gates/components/Intro.js @@ -24,8 +24,12 @@ export default function Intro() { return ( <div className="search-navigator-workspace"> <div className="search-navigator-intro markdown"> - <p>{translate('quality_gates.intro.1')}</p> - <p>{translate('quality_gates.intro.2')}</p> + <p> + {translate('quality_gates.intro.1')} + </p> + <p> + {translate('quality_gates.intro.2')} + </p> </div> </div> ); diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/List.js b/server/sonar-web/src/main/js/apps/quality-gates/components/List.js index 51f4f6b4c7b..9729392a1b8 100644 --- a/server/sonar-web/src/main/js/apps/quality-gates/components/List.js +++ b/server/sonar-web/src/main/js/apps/quality-gates/components/List.js @@ -24,7 +24,7 @@ import { translate } from '../../../helpers/l10n'; export default function List({ qualityGates }) { return ( <div className="list-group"> - {qualityGates.map(qualityGate => ( + {qualityGates.map(qualityGate => <Link key={qualityGate.id} to={`/quality_gates/show/${qualityGate.id}`} @@ -39,13 +39,15 @@ export default function List({ qualityGates }) { </td> <td className="text-top thin nowrap spacer-left"> {qualityGate.isDefault && - <span className="badge pull-right">{translate('default')}</span>} + <span className="badge pull-right"> + {translate('default')} + </span>} </td> </tr> </tbody> </table> </Link> - ))} + )} </div> ); } diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/ListHeader.js b/server/sonar-web/src/main/js/apps/quality-gates/components/ListHeader.js index 2c48ed591a3..e7717e0a40f 100644 --- a/server/sonar-web/src/main/js/apps/quality-gates/components/ListHeader.js +++ b/server/sonar-web/src/main/js/apps/quality-gates/components/ListHeader.js @@ -29,7 +29,9 @@ export default function ListHeader({ canEdit, onAdd }) { return ( <div> - <h1 className="page-title">{translate('quality_gates.page')}</h1> + <h1 className="page-title"> + {translate('quality_gates.page')} + </h1> {canEdit && <div className="page-actions"> <div className="button-group"> diff --git a/server/sonar-web/src/main/js/apps/quality-gates/styles.css b/server/sonar-web/src/main/js/apps/quality-gates/styles.css index f9a40f07de4..76653cb7171 100644 --- a/server/sonar-web/src/main/js/apps/quality-gates/styles.css +++ b/server/sonar-web/src/main/js/apps/quality-gates/styles.css @@ -5,4 +5,4 @@ .quality-gate-section + .quality-gate-section { margin-top: 10px; padding-top: 20px; -}
\ No newline at end of file +} diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/changelog/Changelog.js b/server/sonar-web/src/main/js/apps/quality-profiles/changelog/Changelog.js index 87b52056f88..01ae2464b8e 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/changelog/Changelog.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/changelog/Changelog.js @@ -67,7 +67,9 @@ export default class Changelog extends React.PureComponent { <td className="thin nowrap"> {!isBulkChange && (event.authorName - ? <span>{event.authorName}</span> + ? <span> + {event.authorName} + </span> : <span className="note">System</span>)} </td> @@ -93,17 +95,25 @@ export default class Changelog extends React.PureComponent { <thead> <tr> <th className="thin nowrap"> - {translate('date')} - {' '} - <i className="icon-sort-desc" /> + {translate('date')} <i className="icon-sort-desc" /> + </th> + <th className="thin nowrap"> + {translate('user')} + </th> + <th className="thin nowrap"> + {translate('action')} + </th> + <th> + {translate('rule')} + </th> + <th className="thin nowrap"> + {translate('parameters')} </th> - <th className="thin nowrap">{translate('user')}</th> - <th className="thin nowrap">{translate('action')}</th> - <th>{translate('rule')}</th> - <th className="thin nowrap">{translate('parameters')}</th> </tr> </thead> - <tbody>{rows}</tbody> + <tbody> + {rows} + </tbody> </table> ); } diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/changelog/ChangesList.js b/server/sonar-web/src/main/js/apps/quality-profiles/changelog/ChangesList.js index 6377b4f3799..f905a86df53 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/changelog/ChangesList.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/changelog/ChangesList.js @@ -34,13 +34,13 @@ export default class ChangesList extends React.PureComponent { return ( <ul> - {Object.keys(changes).map(key => ( + {Object.keys(changes).map(key => <li key={key}> {key === 'severity' ? <SeverityChange severity={changes[key]} /> : <ParameterChange name={key} value={changes[key]} />} </li> - ))} + )} </ul> ); } diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/changelog/SeverityChange.js b/server/sonar-web/src/main/js/apps/quality-profiles/changelog/SeverityChange.js index d6f03008f15..d1ead07091a 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/changelog/SeverityChange.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/changelog/SeverityChange.js @@ -32,8 +32,7 @@ export default class SeverityChange extends React.PureComponent { render() { return ( <div> - {translate('quality_profiles.severity_set_to')} - {' '} + {translate('quality_profiles.severity_set_to')}{' '} <SeverityHelper severity={this.props.severity} /> </div> ); diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResults.js b/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResults.js index 0e5e292b694..208346cc636 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResults.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResults.js @@ -42,11 +42,8 @@ export default class ComparisonResults extends React.PureComponent { renderRule(rule: { key: string, name: string }, severity: string) { return ( <div> - <SeverityIcon severity={severity} /> - {' '} - <Link to={getRulesUrl({ rule_key: rule.key }, this.props.organization)}> - {rule.name} - </Link> + <SeverityIcon severity={severity} />{' '} + <Link to={getRulesUrl({ rule_key: rule.key }, this.props.organization)}>{rule.name}</Link> </div> ); } @@ -57,11 +54,15 @@ export default class ComparisonResults extends React.PureComponent { } return ( <ul> - {Object.keys(params).map(key => ( + {Object.keys(params).map(key => <li key={key} className="spacer-top"> - <code>{key}{': '}{params[key]}</code> + <code> + {key} + {': '} + {params[key]} + </code> </li> - ))} + )} </ul> ); } @@ -74,20 +75,24 @@ export default class ComparisonResults extends React.PureComponent { <tr key="left-header"> <td> <h6> - {translateWithParameters('quality_profiles.x_rules_only_in', this.props.inLeft.length)} - {' '} + {translateWithParameters( + 'quality_profiles.x_rules_only_in', + this.props.inLeft.length + )}{' '} {this.props.left.name} </h6> </td> <td> </td> </tr> ); - const rows = this.props.inLeft.map(rule => ( + const rows = this.props.inLeft.map(rule => <tr key={`left-${rule.key}`} className="js-comparison-in-left"> - <td>{this.renderRule(rule, rule.severity)}</td> + <td> + {this.renderRule(rule, rule.severity)} + </td> <td> </td> </tr> - )); + ); return [header, ...rows]; } @@ -100,19 +105,23 @@ export default class ComparisonResults extends React.PureComponent { <td> </td> <td> <h6> - {translateWithParameters('quality_profiles.x_rules_only_in', this.props.inRight.length)} - {' '} + {translateWithParameters( + 'quality_profiles.x_rules_only_in', + this.props.inRight.length + )}{' '} {this.props.right.name} </h6> </td> </tr> ); - const rows = this.props.inRight.map(rule => ( + const rows = this.props.inRight.map(rule => <tr key={`right-${rule.key}`} className="js-comparison-in-right"> <td> </td> - <td>{this.renderRule(rule, rule.severity)}</td> + <td> + {this.renderRule(rule, rule.severity)} + </td> </tr> - )); + ); return [header, ...rows]; } @@ -134,11 +143,19 @@ export default class ComparisonResults extends React.PureComponent { ); const secondHeader = ( <tr key="modified-second-header"> - <td><h6>{this.props.left.name}</h6></td> - <td><h6>{this.props.right.name}</h6></td> + <td> + <h6> + {this.props.left.name} + </h6> + </td> + <td> + <h6> + {this.props.right.name} + </h6> + </td> </tr> ); - const rows = this.props.modified.map(rule => ( + const rows = this.props.modified.map(rule => <tr key={`modified-${rule.key}`} className="js-comparison-modified"> <td> {this.renderRule(rule, rule.left.severity)} @@ -149,7 +166,7 @@ export default class ComparisonResults extends React.PureComponent { {this.renderParameters(rule.right.params)} </td> </tr> - )); + ); return [header, secondHeader, ...rows]; } diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/components/BuiltInBadge.js b/server/sonar-web/src/main/js/apps/quality-profiles/components/BuiltInBadge.js index 1703b88767f..8df1be7a80d 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/components/BuiltInBadge.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/components/BuiltInBadge.js @@ -37,13 +37,16 @@ export default function BuiltInBadge(props: Props) { const overlay = ( <span> - {translate('quality_profiles.built_in.description.1')} - {' '} + {translate('quality_profiles.built_in.description.1')}{' '} {translate('quality_profiles.built_in.description.2')} </span> ); - return props.tooltip ? <Tooltip overlay={overlay}>{badge}</Tooltip> : badge; + return props.tooltip + ? <Tooltip overlay={overlay}> + {badge} + </Tooltip> + : badge; } BuiltInBadge.defaultProps = { diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/components/CopyProfileForm.js b/server/sonar-web/src/main/js/apps/quality-profiles/components/CopyProfileForm.js index 3ced39bc3e3..ca7cf6363e3 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/components/CopyProfileForm.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/components/CopyProfileForm.js @@ -94,15 +94,17 @@ export default class CopyProfileForm extends React.PureComponent { className="modal" overlayClassName="modal-overlay" onRequestClose={this.props.onClose}> - <form id="copy-profile-form" onSubmit={this.handleFormSubmit}> <div className="modal-head"> - <h2>{header}</h2> + <h2> + {header} + </h2> </div> <div className="modal-body"> <div className="modal-field"> <label htmlFor="copy-profile-name"> - {translate('quality_profiles.copy_new_name')}<em className="mandatory">*</em> + {translate('quality_profiles.copy_new_name')} + <em className="mandatory">*</em> </label> <input autoFocus={true} @@ -127,7 +129,6 @@ export default class CopyProfileForm extends React.PureComponent { </a> </div> </form> - </Modal> ); } diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/components/DeleteProfileForm.js b/server/sonar-web/src/main/js/apps/quality-profiles/components/DeleteProfileForm.js index 03ca6da00cd..d83588a3baa 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/components/DeleteProfileForm.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/components/DeleteProfileForm.js @@ -75,10 +75,11 @@ export default class DeleteProfileForm extends React.PureComponent { className="modal" overlayClassName="modal-overlay" onRequestClose={this.props.onClose}> - <form id="delete-profile-form" onSubmit={this.handleFormSubmit}> <div className="modal-head"> - <h2>{header}</h2> + <h2> + {header} + </h2> </div> <div className="modal-body"> <div className="js-modal-messages" /> @@ -113,7 +114,6 @@ export default class DeleteProfileForm extends React.PureComponent { </a> </div> </form> - </Modal> ); } diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileDate.js b/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileDate.js index 7077dd39aaf..67d3ad79a87 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileDate.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileDate.js @@ -33,7 +33,11 @@ export default class ProfileDate extends React.PureComponent { const { date } = this.props; if (!date) { - return <span>{translate('never')}</span>; + return ( + <span> + {translate('never')} + </span> + ); } return ( diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/components/RenameProfileForm.js b/server/sonar-web/src/main/js/apps/quality-profiles/components/RenameProfileForm.js index 9a2af870205..a75ba8197ec 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/components/RenameProfileForm.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/components/RenameProfileForm.js @@ -94,15 +94,17 @@ export default class RenameProfileForm extends React.PureComponent { className="modal" overlayClassName="modal-overlay" onRequestClose={this.props.onClose}> - <form id="rename-profile-form" onSubmit={this.handleFormSubmit}> <div className="modal-head"> - <h2>{header}</h2> + <h2> + {header} + </h2> </div> <div className="modal-body"> <div className="modal-field"> <label htmlFor="rename-profile-name"> - {translate('quality_profiles.new_name')}<em className="mandatory">*</em> + {translate('quality_profiles.new_name')} + <em className="mandatory">*</em> </label> <input autoFocus={true} @@ -127,7 +129,6 @@ export default class RenameProfileForm extends React.PureComponent { </a> </div> </form> - </Modal> ); } diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeParentForm.js b/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeParentForm.js index ddf97081803..a14e64384b8 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeParentForm.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeParentForm.js @@ -105,10 +105,11 @@ export default class ChangeParentForm extends React.PureComponent { className="modal" overlayClassName="modal-overlay" onRequestClose={this.props.onClose}> - <form id="change-profile-parent-form" onSubmit={this.handleFormSubmit}> <div className="modal-head"> - <h2>{translate('quality_profiles.change_parent')}</h2> + <h2> + {translate('quality_profiles.change_parent')} + </h2> </div> <div className="modal-body"> <div className="modal-field"> @@ -139,7 +140,6 @@ export default class ChangeParentForm extends React.PureComponent { </a> </div> </form> - </Modal> ); } diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeProjectsForm.js b/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeProjectsForm.js index 6f46189d3e3..45e2d1fcae2 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeProjectsForm.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeProjectsForm.js @@ -84,9 +84,10 @@ export default class ChangeProjectsForm extends React.PureComponent { className="modal" overlayClassName="modal-overlay" onRequestClose={this.props.onClose}> - <div className="modal-head"> - <h2>{header}</h2> + <h2> + {header} + </h2> </div> <div className="modal-body"> @@ -94,9 +95,10 @@ export default class ChangeProjectsForm extends React.PureComponent { </div> <div className="modal-foot"> - <a href="#" onClick={this.handleCloseClick}>{translate('close')}</a> + <a href="#" onClick={this.handleCloseClick}> + {translate('close')} + </a> </div> - </Modal> ); } diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileExporters.js b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileExporters.js index be6702dd7ed..2d387eff92c 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileExporters.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileExporters.js @@ -58,16 +58,18 @@ export default class ProfileExporters extends React.PureComponent { return ( <div className="quality-profile-box quality-profile-exporters"> <header className="big-spacer-bottom"> - <h2>{translate('quality_profiles.exporters')}</h2> + <h2> + {translate('quality_profiles.exporters')} + </h2> </header> <ul> - {exportersForLanguage.map(exporter => ( + {exportersForLanguage.map(exporter => <li key={exporter.key} data-key={exporter.key} className="spacer-top"> <a href={this.getExportUrl(exporter)} target="_blank"> {exporter.name} </a> </li> - ))} + )} </ul> </div> ); diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileHeader.js b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileHeader.js index 2073ecb7c2a..3f802ef13ee 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileHeader.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileHeader.js @@ -48,9 +48,7 @@ export default class ProfileHeader extends React.PureComponent { const { profile } = this.props; let inner = ( <span> - {translate('quality_profiles.updated_')} - {' '} - <ProfileDate date={profile.userUpdatedAt} /> + {translate('quality_profiles.updated_')} <ProfileDate date={profile.userUpdatedAt} /> </span> ); if (isStagnant(profile)) { @@ -71,9 +69,7 @@ export default class ProfileHeader extends React.PureComponent { const { profile } = this.props; let inner = ( <span> - {translate('quality_profiles.used_')} - {' '} - <ProfileDate date={profile.lastUsed} /> + {translate('quality_profiles.used_')} <ProfileDate date={profile.lastUsed} /> </span> ); if (!profile.lastUsed) { @@ -114,7 +110,9 @@ export default class ProfileHeader extends React.PureComponent { language={profile.language} name={profile.name} organization={organization}> - <span>{profile.name}</span> + <span> + {profile.name} + </span> </ProfileLink> {profile.isBuiltIn && <BuiltInBadge className="spacer-left" tooltip={false} />} </h1> @@ -133,9 +131,7 @@ export default class ProfileHeader extends React.PureComponent { <li> <div className="pull-left dropdown"> <button className="dropdown-toggle" data-toggle="dropdown"> - {translate('actions')} - {' '} - <i className="icon-dropdown" /> + {translate('actions')} <i className="icon-dropdown" /> </button> <ProfileActions canAdmin={this.props.canAdmin} diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileInheritance.js b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileInheritance.js index 591466fa0f6..d94b46b7680 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileInheritance.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileInheritance.js @@ -136,7 +136,7 @@ export default class ProfileInheritance extends React.PureComponent { <table className="data zebra"> <tbody> {ancestors != null && - ancestors.map((ancestor, index) => ( + ancestors.map((ancestor, index) => <ProfileInheritanceBox className="js-inheritance-ancestor" depth={index} @@ -145,7 +145,7 @@ export default class ProfileInheritance extends React.PureComponent { organization={this.props.organization} profile={ancestor} /> - ))} + )} <ProfileInheritanceBox className={currentClassName} @@ -158,7 +158,7 @@ export default class ProfileInheritance extends React.PureComponent { /> {this.state.children != null && - this.state.children.map(child => ( + this.state.children.map(child => <ProfileInheritanceBox className="js-inheritance-child" depth={ancestors ? ancestors.length + 1 : 0} @@ -167,7 +167,7 @@ export default class ProfileInheritance extends React.PureComponent { organization={this.props.organization} profile={child} /> - ))} + )} </tbody> </table>} diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileProjects.js b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileProjects.js index e3b08402dd6..0c59dec26be 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileProjects.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileProjects.js @@ -119,17 +119,15 @@ export default class ProfileProjects extends React.PureComponent { return ( <ul> - {projects.map(project => ( + {projects.map(project => <li key={project.uuid} className="spacer-top js-profile-project" data-key={project.key}> <Link to={{ pathname: '/dashboard', query: { id: project.key } }} className="link-with-icon"> - <QualifierIcon qualifier="TRK" /> - {' '} - <span>{project.name}</span> + <QualifierIcon qualifier="TRK" /> <span>{project.name}</span> </Link> </li> - ))} + )} </ul> ); } diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.js b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.js index 51bc22ee082..fe68a8385d8 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.js @@ -150,10 +150,16 @@ export default class ProfileRules extends React.PureComponent { <thead> <tr> <th> - <h2>{translate('rules')}</h2> + <h2> + {translate('rules')} + </h2> + </th> + <th> + {translate('active')} + </th> + <th> + {translate('inactive')} </th> - <th>{translate('active')}</th> - <th>{translate('inactive')}</th> </tr> </thead> <tbody> @@ -164,7 +170,7 @@ export default class ProfileRules extends React.PureComponent { qprofile={profile.key} total={this.state.total} /> - {TYPES.map(type => ( + {TYPES.map(type => <ProfileRulesRowOfType key={type} count={this.getRulesCountForType(type)} @@ -173,7 +179,7 @@ export default class ProfileRules extends React.PureComponent { total={this.getRulesTotalForType(type)} type={type} /> - ))} + )} </tbody> </table> diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/CreateProfileForm.js b/server/sonar-web/src/main/js/apps/quality-profiles/home/CreateProfileForm.js index 4219dbd37f6..895fc4ca6c4 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/home/CreateProfileForm.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/CreateProfileForm.js @@ -114,22 +114,25 @@ export default class CreateProfileForm extends React.PureComponent { className="modal" overlayClassName="modal-overlay" onRequestClose={this.props.onClose}> - <form id="create-profile-form" onSubmit={this.handleFormSubmit} ref={node => (this.form = node)}> - <div className="modal-head"> - <h2>{header}</h2> + <h2> + {header} + </h2> </div> {this.state.preloading - ? <div className="modal-body"><i className="spinner" /></div> + ? <div className="modal-body"> + <i className="spinner" /> + </div> : <div className="modal-body"> <div className="modal-field"> <label htmlFor="create-profile-name"> - {translate('name')}<em className="mandatory">*</em> + {translate('name')} + <em className="mandatory">*</em> </label> <input autoFocus={true} @@ -145,7 +148,8 @@ export default class CreateProfileForm extends React.PureComponent { </div> <div className="modal-field spacer-bottom"> <label htmlFor="create-profile-language"> - {translate('language')}<em className="mandatory">*</em> + {translate('language')} + <em className="mandatory">*</em> </label> <Select clearable={false} @@ -159,7 +163,7 @@ export default class CreateProfileForm extends React.PureComponent { value={selectedLanguage} /> </div> - {importers.map(importer => ( + {importers.map(importer => <div className="modal-field spacer-bottom js-importer" data-key={importer.key} @@ -176,7 +180,7 @@ export default class CreateProfileForm extends React.PureComponent { {translate('quality_profiles.optional_configuration_file')} </p> </div> - ))} + )} </div>} <div className="modal-foot"> @@ -190,7 +194,6 @@ export default class CreateProfileForm extends React.PureComponent { </a> </div> </form> - </Modal> ); } diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionDeprecated.js b/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionDeprecated.js index 037c1e9f16f..239d492b8b8 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionDeprecated.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionDeprecated.js @@ -48,7 +48,9 @@ export default class EvolutionDeprecated extends React.PureComponent { return ( <div className="quality-profile-box quality-profiles-evolution-deprecated"> <div className="spacer-bottom"> - <strong>{translate('quality_profiles.deprecated_rules')}</strong> + <strong> + {translate('quality_profiles.deprecated_rules')} + </strong> </div> <div className="spacer-bottom"> {translateWithParameters( @@ -57,7 +59,7 @@ export default class EvolutionDeprecated extends React.PureComponent { )} </div> <ul> - {sortedProfiles.map(profile => ( + {sortedProfiles.map(profile => <li key={profile.key} className="spacer-top"> <div className="text-ellipsis"> <ProfileLink @@ -84,7 +86,7 @@ export default class EvolutionDeprecated extends React.PureComponent { </Link> </div> </li> - ))} + )} </ul> </div> ); diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionRules.js b/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionRules.js index 123b9394b91..54c74a6febd 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionRules.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionRules.js @@ -96,14 +96,13 @@ export default class EvolutionRules extends React.PureComponent { </strong> </div> <ul> - {this.state.latestRules.map(rule => ( + {this.state.latestRules.map(rule => <li key={rule.key} className="spacer-top"> <div className="text-ellipsis"> <Link to={getRulesUrl({ rule_key: rule.key }, this.props.organization)} className="link-no-underline"> - {' '} - {rule.name} + {' '}{rule.name} </Link> <div className="note"> {rule.activations @@ -119,14 +118,12 @@ export default class EvolutionRules extends React.PureComponent { </div> </div> </li> - ))} + )} </ul> {this.state.latestRulesTotal > RULES_LIMIT && <div className="spacer-top"> <Link to={newRulesUrl} className="small"> - {translate('see_all')} - {' '} - {formatMeasure(this.state.latestRulesTotal, 'SHORT_INT')} + {translate('see_all')} {formatMeasure(this.state.latestRulesTotal, 'SHORT_INT')} </Link> </div>} </div> diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionStagnant.js b/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionStagnant.js index 63f0ff7bdef..8e65b78868f 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionStagnant.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionStagnant.js @@ -45,13 +45,15 @@ export default class EvolutionStagnant extends React.PureComponent { return ( <div className="quality-profile-box quality-profiles-evolution-stagnant"> <div className="spacer-bottom"> - <strong>{translate('quality_profiles.stagnant_profiles')}</strong> + <strong> + {translate('quality_profiles.stagnant_profiles')} + </strong> </div> <div className="spacer-bottom"> {translate('quality_profiles.not_updated_more_than_year')} </div> <ul> - {outdated.map(profile => ( + {outdated.map(profile => <li key={profile.key} className="spacer-top"> <div className="text-ellipsis"> <ProfileLink @@ -68,7 +70,7 @@ export default class EvolutionStagnant extends React.PureComponent { updated on {moment(profile.rulesUpdatedAt).format('LL')} </div> </li> - ))} + )} </ul> </div> ); diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesList.js b/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesList.js index dbcf7840677..baf66452149 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesList.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesList.js @@ -40,7 +40,7 @@ export default class ProfilesList extends React.PureComponent { props: Props; renderProfiles(profiles: Array<Profile>) { - return profiles.map(profile => ( + return profiles.map(profile => <ProfilesListRow canAdmin={this.props.canAdmin} key={profile.key} @@ -49,7 +49,7 @@ export default class ProfilesList extends React.PureComponent { profile={profile} updateProfiles={this.props.updateProfiles} /> - )); + ); } renderHeader(languageKey: string, profilesCount: number) { @@ -107,10 +107,9 @@ export default class ProfilesList extends React.PureComponent { {translate('no_results')} </div>} - {languagesToShow.map(languageKey => ( + {languagesToShow.map(languageKey => <div key={languageKey} className="quality-profile-box quality-profiles-table"> <table data-language={languageKey} className="data zebra zebra-hover"> - {profilesToShow[languageKey] != null && this.renderHeader(languageKey, profilesToShow[languageKey].length)} @@ -120,11 +119,9 @@ export default class ProfilesList extends React.PureComponent { this.renderProfiles(profilesToShow[languageKey])} </tbody> </TooltipsContainer> - </table> </div> - ))} - + )} </div> ); } diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesListHeader.js b/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesListHeader.js index 1d0c931aa04..b05b6ff01c8 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesListHeader.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesListHeader.js @@ -58,7 +58,7 @@ export default class ProfilesListHeader extends React.PureComponent { {translate('quality_profiles.all_profiles')} </IndexLink> </li> - {this.props.languages.map(language => ( + {this.props.languages.map(language => <li key={language.key}> <IndexLink to={getProfilesForLanguagePath(language.key, this.props.organization)} @@ -67,7 +67,7 @@ export default class ProfilesListHeader extends React.PureComponent { {language.name} </IndexLink> </li> - ))} + )} </ul> ); } diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesListRow.js b/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesListRow.js index 0547623d744..afdebe740a4 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesListRow.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesListRow.js @@ -117,7 +117,11 @@ export default class ProfilesListRow extends React.PureComponent { renderUpdateDate() { const date = <ProfileDate date={this.props.profile.userUpdatedAt} />; if (isStagnant(this.props.profile)) { - return <span className="badge badge-normal-size badge-focus">{date}</span>; + return ( + <span className="badge badge-normal-size badge-focus"> + {date} + </span> + ); } else { return date; } @@ -127,7 +131,11 @@ export default class ProfilesListRow extends React.PureComponent { const { lastUsed } = this.props.profile; const date = <ProfileDate date={lastUsed} />; if (!lastUsed) { - return <span className="badge badge-normal-size badge-focus">{date}</span>; + return ( + <span className="badge badge-normal-size badge-focus"> + {date} + </span> + ); } else { return date; } diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/RestoreProfileForm.js b/server/sonar-web/src/main/js/apps/quality-profiles/home/RestoreProfileForm.js index 911482ee914..973e2947bff 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/home/RestoreProfileForm.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/RestoreProfileForm.js @@ -99,37 +99,38 @@ export default class RestoreProfileForm extends React.PureComponent { className="modal" overlayClassName="modal-overlay" onRequestClose={this.props.onClose}> - <form id="restore-profile-form" onSubmit={this.handleFormSubmit} ref={node => (this.form = node)}> - <div className="modal-head"> - <h2>{header}</h2> + <h2> + {header} + </h2> </div> <div className="modal-body"> {profile != null && ruleSuccesses != null ? ruleFailures - ? <div className="alert alert-warning"> - {translateWithParameters( - 'quality_profiles.restore_profile.warning', - profile.name, - ruleSuccesses, - ruleFailures - )} - </div> - : <div className="alert alert-success"> - {translateWithParameters( - 'quality_profiles.restore_profile.success', - profile.name, - ruleSuccesses - )} - </div> + ? <div className="alert alert-warning"> + {translateWithParameters( + 'quality_profiles.restore_profile.warning', + profile.name, + ruleSuccesses, + ruleFailures + )} + </div> + : <div className="alert alert-success"> + {translateWithParameters( + 'quality_profiles.restore_profile.success', + profile.name, + ruleSuccesses + )} + </div> : <div className="modal-field"> <label htmlFor="restore-profile-backup"> - {translate('backup')}<em className="mandatory">*</em> + {translate('backup')} + <em className="mandatory">*</em> </label> <input id="restore-profile-backup" name="backup" required={true} type="file" /> </div>} @@ -150,9 +151,7 @@ export default class RestoreProfileForm extends React.PureComponent { {translate('close')} </a> </div>} - </form> - </Modal> ); } diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/styles.css b/server/sonar-web/src/main/js/apps/quality-profiles/styles.css index 2712ddf243e..f00a77c24b1 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/styles.css +++ b/server/sonar-web/src/main/js/apps/quality-profiles/styles.css @@ -11,7 +11,8 @@ padding-bottom: 10px; } -.quality-profiles-table-name {} +.quality-profiles-table-name { +} .quality-profiles-table-inheritance { width: 280px; @@ -104,7 +105,8 @@ margin-top: 20px; } -.quality-profile-inheritance {} +.quality-profile-inheritance { +} .quality-profile-not-found { padding-top: 100px; diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/utils.js b/server/sonar-web/src/main/js/apps/quality-profiles/utils.js index c9af9dc3f88..a98b28b9acb 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/utils.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/utils.js @@ -71,7 +71,7 @@ export function isStagnant(profile: Profile) { } export const getProfilesPath = (organization: ?string) => - (organization ? `/organizations/${organization}/quality_profiles` : '/profiles'); + organization ? `/organizations/${organization}/quality_profiles` : '/profiles'; export const getProfilesForLanguagePath = (language: string, organization: ?string) => ({ pathname: getProfilesPath(organization), diff --git a/server/sonar-web/src/main/js/apps/sessions/components/LoginForm.js b/server/sonar-web/src/main/js/apps/sessions/components/LoginForm.js index 3ac61372fdf..dbfca919bae 100644 --- a/server/sonar-web/src/main/js/apps/sessions/components/LoginForm.js +++ b/server/sonar-web/src/main/js/apps/sessions/components/LoginForm.js @@ -64,12 +64,14 @@ export default class LoginForm extends React.PureComponent { render() { return ( <div id="login_form"> - <h1 className="maintenance-title text-center">{translate('login.login_to_sonarqube')}</h1> + <h1 className="maintenance-title text-center"> + {translate('login.login_to_sonarqube')} + </h1> {this.props.identityProviders.length > 0 && <section className="oauth-providers"> <ul> - {this.props.identityProviders.map(identityProvider => ( + {this.props.identityProviders.map(identityProvider => <li key={identityProvider.key}> <a href={`${window.baseUrl}/sessions/init/${identityProvider.key}`} @@ -81,10 +83,12 @@ export default class LoginForm extends React.PureComponent { height="20" src={window.baseUrl + identityProvider.iconPath} /> - <span>Log in with {identityProvider.name}</span> + <span> + Log in with {identityProvider.name} + </span> </a> </li> - ))} + )} </ul> </section>} @@ -101,7 +105,9 @@ export default class LoginForm extends React.PureComponent { <GlobalMessagesContainer /> <div className="big-spacer-bottom"> - <label htmlFor="login" className="login-label">{translate('login')}</label> + <label htmlFor="login" className="login-label"> + {translate('login')} + </label> <input type="text" id="login" @@ -117,7 +123,9 @@ export default class LoginForm extends React.PureComponent { </div> <div className="big-spacer-bottom"> - <label htmlFor="password" className="login-label">{translate('password')}</label> + <label htmlFor="password" className="login-label"> + {translate('password')} + </label> <input type="password" id="password" @@ -132,8 +140,12 @@ export default class LoginForm extends React.PureComponent { <div> <div className="text-right overflow-hidden"> - <button name="commit" type="submit">{translate('sessions.log_in')}</button> - <a className="spacer-left" href={window.baseUrl + '/'}>{translate('cancel')}</a> + <button name="commit" type="submit"> + {translate('sessions.log_in')} + </button> + <a className="spacer-left" href={window.baseUrl + '/'}> + {translate('cancel')} + </a> </div> </div> </form>} diff --git a/server/sonar-web/src/main/js/apps/sessions/components/SimpleSessionsContainer.js b/server/sonar-web/src/main/js/apps/sessions/components/SimpleSessionsContainer.js index 1973d6fd996..2c6820f55f7 100644 --- a/server/sonar-web/src/main/js/apps/sessions/components/SimpleSessionsContainer.js +++ b/server/sonar-web/src/main/js/apps/sessions/components/SimpleSessionsContainer.js @@ -26,5 +26,9 @@ type Props = { }; export default function SimpleSessionsContainer({ children }: Props) { - return <SimpleContainer hideLoggedInInfo={true}>{children}</SimpleContainer>; + return ( + <SimpleContainer hideLoggedInInfo={true}> + {children} + </SimpleContainer> + ); } diff --git a/server/sonar-web/src/main/js/apps/sessions/components/Unauthorized.js b/server/sonar-web/src/main/js/apps/sessions/components/Unauthorized.js index 5be984a1524..52f00e1b8f6 100644 --- a/server/sonar-web/src/main/js/apps/sessions/components/Unauthorized.js +++ b/server/sonar-web/src/main/js/apps/sessions/components/Unauthorized.js @@ -31,7 +31,7 @@ export default class Unauthorized extends React.PureComponent { return ( <div className="text-center"> <p id="unauthorized"> - {'You\'re not authorized to access this page. Please contact the administrator.'} + {"You're not authorized to access this page. Please contact the administrator."} </p> {!!message && diff --git a/server/sonar-web/src/main/js/apps/settings/components/CategoriesList.js b/server/sonar-web/src/main/js/apps/settings/components/CategoriesList.js index 676f5511174..aee685e3d61 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/CategoriesList.js +++ b/server/sonar-web/src/main/js/apps/settings/components/CategoriesList.js @@ -49,9 +49,8 @@ export default class CategoriesList extends React.PureComponent { query.id = this.props.component.key; } - const className = category.key.toLowerCase() === this.props.selectedCategory.toLowerCase() - ? 'active' - : ''; + const className = + category.key.toLowerCase() === this.props.selectedCategory.toLowerCase() ? 'active' : ''; const pathname = this.props.component ? '/project/settings' : '/settings'; @@ -71,11 +70,11 @@ export default class CategoriesList extends React.PureComponent { return ( <ul className="side-tabs-menu"> - {sortedCategories.map(category => ( + {sortedCategories.map(category => <li key={category.key}> {this.renderLink(category)} </li> - ))} + )} </ul> ); } diff --git a/server/sonar-web/src/main/js/apps/settings/components/DefinitionDefaults.js b/server/sonar-web/src/main/js/apps/settings/components/DefinitionDefaults.js index 4f156e2a521..d686f9097db 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/DefinitionDefaults.js +++ b/server/sonar-web/src/main/js/apps/settings/components/DefinitionDefaults.js @@ -50,9 +50,13 @@ export default class DefinitionDefaults extends React.PureComponent { {isExplicitlySet && <div className="spacer-top nowrap"> - <button onClick={e => this.handleReset(e)}>{translate('reset_verb')}</button> + <button onClick={e => this.handleReset(e)}> + {translate('reset_verb')} + </button> <span className="spacer-left note"> - {translate('default')}{': '}{getDefaultValue(setting)} + {translate('default')} + {': '} + {getDefaultValue(setting)} </span> </div>} </div> diff --git a/server/sonar-web/src/main/js/apps/settings/components/DefinitionsList.js b/server/sonar-web/src/main/js/apps/settings/components/DefinitionsList.js index 7a6c4c6d8e5..8a9399e2c8b 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/DefinitionsList.js +++ b/server/sonar-web/src/main/js/apps/settings/components/DefinitionsList.js @@ -30,11 +30,11 @@ export default class DefinitionsList extends React.PureComponent { render() { return ( <ul className="settings-definitions-list"> - {this.props.settings.map(setting => ( + {this.props.settings.map(setting => <li key={setting.definition.key}> <Definition component={this.props.component} setting={setting} /> </li> - ))} + )} </ul> ); } diff --git a/server/sonar-web/src/main/js/apps/settings/components/EmailForm.js b/server/sonar-web/src/main/js/apps/settings/components/EmailForm.js index 2017a265f2c..89e821bc5fb 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/EmailForm.js +++ b/server/sonar-web/src/main/js/apps/settings/components/EmailForm.js @@ -50,7 +50,9 @@ class EmailForm extends React.PureComponent { render() { return ( <div className="huge-spacer-top"> - <h3 className="spacer-bottom">{translate('email_configuration.test.title')}</h3> + <h3 className="spacer-bottom"> + {translate('email_configuration.test.title')} + </h3> <form style={{ marginLeft: 201 }} onSubmit={e => this.handleFormSubmit(e)}> {this.state.success && diff --git a/server/sonar-web/src/main/js/apps/settings/components/PageHeader.js b/server/sonar-web/src/main/js/apps/settings/components/PageHeader.js index c4bf4675a9c..44fc1f1976c 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/PageHeader.js +++ b/server/sonar-web/src/main/js/apps/settings/components/PageHeader.js @@ -27,18 +27,24 @@ export default class PageHeader extends React.PureComponent { }; render() { - const title = this.props.component != null - ? translate('project_settings.page') - : translate('settings.page'); + const title = + this.props.component != null + ? translate('project_settings.page') + : translate('settings.page'); - const description = this.props.component != null - ? translate('project_settings.page.description') - : translate('settings.page.description'); + const description = + this.props.component != null + ? translate('project_settings.page.description') + : translate('settings.page.description'); return ( <header className="page-header"> - <h1 className="page-title">{title}</h1> - <div className="page-description">{description}</div> + <h1 className="page-title"> + {title} + </h1> + <div className="page-description"> + {description} + </div> </header> ); } diff --git a/server/sonar-web/src/main/js/apps/settings/components/SubCategoryDefinitionsList.js b/server/sonar-web/src/main/js/apps/settings/components/SubCategoryDefinitionsList.js index 8aceab77b13..51186fde3b8 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/SubCategoryDefinitionsList.js +++ b/server/sonar-web/src/main/js/apps/settings/components/SubCategoryDefinitionsList.js @@ -51,9 +51,11 @@ export default class SubCategoryDefinitionsList extends React.PureComponent { return ( <ul className="settings-sub-categories-list"> - {sortedSubCategories.map(subCategory => ( + {sortedSubCategories.map(subCategory => <li key={subCategory.key}> - <h2 className="settings-sub-category-name">{subCategory.name}</h2> + <h2 className="settings-sub-category-name"> + {subCategory.name} + </h2> {subCategory.description != null && <div className="settings-sub-category-description markdown" @@ -65,7 +67,7 @@ export default class SubCategoryDefinitionsList extends React.PureComponent { /> {this.renderEmailForm(subCategory.key)} </li> - ))} + )} </ul> ); } diff --git a/server/sonar-web/src/main/js/apps/settings/components/WildcardsHelp.js b/server/sonar-web/src/main/js/apps/settings/components/WildcardsHelp.js index 071989e672e..c0ee695b2b6 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/WildcardsHelp.js +++ b/server/sonar-web/src/main/js/apps/settings/components/WildcardsHelp.js @@ -99,9 +99,7 @@ export default function WildcardsHelp() { </td> </tr> <tr> - <td> - **/foo?.js - </td> + <td>**/foo?.js</td> <td> <ul> <li>src/foo1.js</li> diff --git a/server/sonar-web/src/main/js/apps/settings/components/inputs/InputForBoolean.js b/server/sonar-web/src/main/js/apps/settings/components/inputs/InputForBoolean.js index 66f02465338..66794971de7 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/inputs/InputForBoolean.js +++ b/server/sonar-web/src/main/js/apps/settings/components/inputs/InputForBoolean.js @@ -36,7 +36,10 @@ export default class InputForBoolean extends React.PureComponent { <div className="display-inline-block text-top"> <Toggle name={this.props.name} value={displayedValue} onChange={this.props.onChange} /> - {!hasValue && <span className="spacer-left note">{translate('settings.not_set')}</span>} + {!hasValue && + <span className="spacer-left note"> + {translate('settings.not_set')} + </span>} </div> ); } diff --git a/server/sonar-web/src/main/js/apps/settings/components/inputs/InputForPassword.js b/server/sonar-web/src/main/js/apps/settings/components/inputs/InputForPassword.js index 9f7a35f3f4e..0d95d4d5c17 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/inputs/InputForPassword.js +++ b/server/sonar-web/src/main/js/apps/settings/components/inputs/InputForPassword.js @@ -66,7 +66,9 @@ export default class InputForPassword extends React.PureComponent { onChange={e => this.handleInputChange(e)} /> - <button className="spacer-left button-success">{translate('save')}</button> + <button className="spacer-left button-success"> + {translate('save')} + </button> <a className="spacer-left" href="#" onClick={e => this.handleCancelChangeClick(e)}> {translate('cancel')} diff --git a/server/sonar-web/src/main/js/apps/settings/components/inputs/PropertySetInput.js b/server/sonar-web/src/main/js/apps/settings/components/inputs/PropertySetInput.js index 5f807976d4d..8a48eede7f9 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/inputs/PropertySetInput.js +++ b/server/sonar-web/src/main/js/apps/settings/components/inputs/PropertySetInput.js @@ -58,7 +58,7 @@ export default class PropertySetInput extends React.PureComponent { return ( <tr key={index}> - {setting.definition.fields.map(field => ( + {setting.definition.fields.map(field => <td key={field.key}> <PrimitiveInput name={this.getFieldName(field)} @@ -67,7 +67,7 @@ export default class PropertySetInput extends React.PureComponent { onChange={this.handleInputChange.bind(this, index, field.key)} /> </td> - ))} + )} <td className="thin nowrap"> {!isLast && <button @@ -92,13 +92,15 @@ export default class PropertySetInput extends React.PureComponent { style={{ width: 'auto', minWidth: 480, marginTop: -12 }}> <thead> <tr> - {setting.definition.fields.map(field => ( + {setting.definition.fields.map(field => <th key={field.key}> {field.name} {field.description != null && - <span className="spacer-top small">{field.description}</span>} + <span className="spacer-top small"> + {field.description} + </span>} </th> - ))} + )} <th> </th> </tr> </thead> diff --git a/server/sonar-web/src/main/js/apps/settings/encryption/EncryptionApp.js b/server/sonar-web/src/main/js/apps/settings/encryption/EncryptionApp.js index 72927a664e3..9b769007425 100644 --- a/server/sonar-web/src/main/js/apps/settings/encryption/EncryptionApp.js +++ b/server/sonar-web/src/main/js/apps/settings/encryption/EncryptionApp.js @@ -45,7 +45,9 @@ export default class EncryptionApp extends React.PureComponent { <div id="encryption-page" className="page page-limited"> <Helmet title={translate('property.category.security.encryption')} /> <header className="page-header"> - <h1 className="page-title">{translate('property.category.security.encryption')}</h1> + <h1 className="page-title"> + {translate('property.category.security.encryption')} + </h1> {this.props.loading && <i className="spinner" />} </header> diff --git a/server/sonar-web/src/main/js/apps/settings/encryption/EncryptionForm.js b/server/sonar-web/src/main/js/apps/settings/encryption/EncryptionForm.js index 4fed5596a5e..544c19fa45c 100644 --- a/server/sonar-web/src/main/js/apps/settings/encryption/EncryptionForm.js +++ b/server/sonar-web/src/main/js/apps/settings/encryption/EncryptionForm.js @@ -75,10 +75,8 @@ export default class EncryptionForm extends React.PureComponent { <div className="huge-spacer-top bordered-top"> <div className="big-spacer-top spacer-bottom"> - Note that the secret key can be changed, but all the encrypted properties - {' '} - will have to be updated. - {' '} + Note that the secret key can be changed, but all the encrypted properties will have to + be updated.{' '} <a href="https://redirect.sonarsource.com/doc/settings-encryption.html"> More information </a> diff --git a/server/sonar-web/src/main/js/apps/settings/encryption/GenerateSecretKeyForm.js b/server/sonar-web/src/main/js/apps/settings/encryption/GenerateSecretKeyForm.js index 68e0cb74233..f6ae735d4eb 100644 --- a/server/sonar-web/src/main/js/apps/settings/encryption/GenerateSecretKeyForm.js +++ b/server/sonar-web/src/main/js/apps/settings/encryption/GenerateSecretKeyForm.js @@ -50,44 +50,32 @@ export default class GenerateSecretKeyForm extends React.PureComponent { <ul className="list-styled markdown"> <li className="spacer-bottom"> - Store the secret key in the file - {' '} - <code>~/.sonar/sonar-secret.txt</code> - {' '} - of the server. This file can - be relocated by defining the property <code>sonar.secretKeyPath</code>{' '} - in <code>conf/sonar.properties</code> + Store the secret key in the file <code>~/.sonar/sonar-secret.txt</code> of the + server. This file can be relocated by defining the property{' '} + <code>sonar.secretKeyPath</code> in <code>conf/sonar.properties</code> </li> <li className="spacer-bottom"> Restrict access to this file by making it readable and by owner only </li> <li className="spacer-bottom"> - Restart the server if the property - {' '} - <code>sonar.secretKeyPath</code> - {' '} - has been set or changed. + Restart the server if the property <code>sonar.secretKeyPath</code> has been set + or changed. </li> <li className="spacer-bottom"> - Copy this file on all the machines that execute code inspection. Define the - {' '} - property <code>sonar.secretKeyPath</code> on those machines if the path is not - {' '} + Copy this file on all the machines that execute code inspection. Define the{' '} + property <code>sonar.secretKeyPath</code> on those machines if the path is not{' '} <code>~/.sonar/sonar-secret.txt</code>. </li> <li> - For each property that you want to encrypt, generate the encrypted value and - {' '} - replace the original value wherever it is stored - {' '} - (configuration files, command lines). + For each property that you want to encrypt, generate the encrypted value and{' '} + replace the original value wherever it is stored (configuration files, command + lines). </li> </ul> </div> : <div> <p className="spacer-bottom"> - Secret key is required to be able to encrypt properties. - {' '} + Secret key is required to be able to encrypt properties.{' '} <a href="https://redirect.sonarsource.com/doc/settings-encryption.html"> More information </a> diff --git a/server/sonar-web/src/main/js/apps/settings/licenses/LicenseChangeForm.js b/server/sonar-web/src/main/js/apps/settings/licenses/LicenseChangeForm.js index ff068c49d98..b9b6c56b737 100644 --- a/server/sonar-web/src/main/js/apps/settings/licenses/LicenseChangeForm.js +++ b/server/sonar-web/src/main/js/apps/settings/licenses/LicenseChangeForm.js @@ -76,10 +76,14 @@ export default class LicenseChangeForm extends React.PureComponent { onRequestClose={this.closeModal}> <form onSubmit={this.handleSubmit}> <div className="modal-head"> - <h2>{translateWithParameters('licenses.update_license_for_x', productName)}</h2> + <h2> + {translateWithParameters('licenses.update_license_for_x', productName)} + </h2> </div> <div className="modal-body"> - <label htmlFor="license-input">{translate('licenses.license_input_label')}</label> + <label htmlFor="license-input"> + {translate('licenses.license_input_label')} + </label> <textarea autoFocus={true} className="width-100 spacer-top" @@ -88,7 +92,9 @@ export default class LicenseChangeForm extends React.PureComponent { id="license-input" defaultValue={license.value} /> - <div className="spacer-top note">{translate('licenses.license_input_note')}</div> + <div className="spacer-top note"> + {translate('licenses.license_input_note')} + </div> </div> <div className="modal-foot"> {this.state.loading && <i className="js-modal-spinner spinner spacer-right" />} diff --git a/server/sonar-web/src/main/js/apps/settings/licenses/LicenseRow.js b/server/sonar-web/src/main/js/apps/settings/licenses/LicenseRow.js index 9a5a332ac20..277d8a4c636 100644 --- a/server/sonar-web/src/main/js/apps/settings/licenses/LicenseRow.js +++ b/server/sonar-web/src/main/js/apps/settings/licenses/LicenseRow.js @@ -35,20 +35,26 @@ export default class LicenseRow extends React.PureComponent { return ( <tr className="js-license" data-license-key={license.key}> - <td className="text-middle"><LicenseStatus license={license} /></td> + <td className="text-middle"> + <LicenseStatus license={license} /> + </td> <td className="js-product text-middle"> <div className={license.invalidProduct ? 'text-danger' : null}> {license.name || license.key} </div> </td> - <td className="js-organization text-middle">{license.organization}</td> + <td className="js-organization text-middle"> + {license.organization} + </td> <td className="js-expiration text-middle"> {license.expiration != null && <div className={license.invalidExpiration ? 'text-danger' : null}> {moment(license.expiration).format('LL')} </div>} </td> - <td className="js-type text-middle">{license.type}</td> + <td className="js-type text-middle"> + {license.type} + </td> <td className="js-server-id text-middle"> <div className={license.invalidServerId ? 'text-danger' : null}> {license.serverId} diff --git a/server/sonar-web/src/main/js/apps/settings/licenses/LicensesAppHeader.js b/server/sonar-web/src/main/js/apps/settings/licenses/LicensesAppHeader.js index 153efb04fa5..c512f32a770 100644 --- a/server/sonar-web/src/main/js/apps/settings/licenses/LicensesAppHeader.js +++ b/server/sonar-web/src/main/js/apps/settings/licenses/LicensesAppHeader.js @@ -23,7 +23,9 @@ import { translate } from '../../../helpers/l10n'; export default function LicensesAppHeader() { return ( <header className="page-header"> - <h1 className="page-title">{translate('property.category.licenses')}</h1> + <h1 className="page-title"> + {translate('property.category.licenses')} + </h1> <div className="page-description" dangerouslySetInnerHTML={{ __html: translate('property.category.licenses.description') }} diff --git a/server/sonar-web/src/main/js/apps/settings/licenses/LicensesList.js b/server/sonar-web/src/main/js/apps/settings/licenses/LicensesList.js index afb1efc5c18..9104cd830ee 100644 --- a/server/sonar-web/src/main/js/apps/settings/licenses/LicensesList.js +++ b/server/sonar-web/src/main/js/apps/settings/licenses/LicensesList.js @@ -39,18 +39,28 @@ export default class LicensesList extends React.PureComponent { <thead> <tr> <th width={40}> </th> - <th>{translate('licenses.list.product')}</th> - <th width={150}>{translate('licenses.list.organization')}</th> - <th width={150}>{translate('licenses.list.expiration')}</th> - <th width={150}>{translate('licenses.list.type')}</th> - <th width={150}>{translate('licenses.list.server')}</th> + <th> + {translate('licenses.list.product')} + </th> + <th width={150}> + {translate('licenses.list.organization')} + </th> + <th width={150}> + {translate('licenses.list.expiration')} + </th> + <th width={150}> + {translate('licenses.list.type')} + </th> + <th width={150}> + {translate('licenses.list.server')} + </th> <th width={80}> </th> </tr> </thead> <tbody> - {this.props.licenses.map(licenseKey => ( + {this.props.licenses.map(licenseKey => <LicenseRowContainer key={licenseKey} licenseKey={licenseKey} /> - ))} + )} </tbody> </table> ); diff --git a/server/sonar-web/src/main/js/apps/settings/serverId/ServerIdApp.js b/server/sonar-web/src/main/js/apps/settings/serverId/ServerIdApp.js index ebe44676016..ef2ded655bc 100644 --- a/server/sonar-web/src/main/js/apps/settings/serverId/ServerIdApp.js +++ b/server/sonar-web/src/main/js/apps/settings/serverId/ServerIdApp.js @@ -79,9 +79,13 @@ export default class ServerIdApp extends React.PureComponent { <div id="server-id-page" className="page page-limited"> <Helmet title={translate('property.category.server_id')} /> <header className="page-header"> - <h1 className="page-title">{translate('property.category.server_id')}</h1> + <h1 className="page-title"> + {translate('property.category.server_id')} + </h1> {this.state.loading && <i className="spinner" />} - <div className="page-description">{translate('server_id_configuration.information')}</div> + <div className="page-description"> + {translate('server_id_configuration.information')} + </div> </header> {this.state.serverId != null && @@ -95,7 +99,9 @@ export default class ServerIdApp extends React.PureComponent { value={this.state.serverId} /> {!!this.state.invalidServerId && - <span className="spacer-left">{translate('server_id_configuration.bad_key')}</span>} + <span className="spacer-left"> + {translate('server_id_configuration.bad_key')} + </span>} </div>} <div className="panel"> @@ -136,9 +142,11 @@ export default class ServerIdApp extends React.PureComponent { <div className="modal-field-description"> {translate('server_id_configuration.ip.desc')} <ul className="list-styled"> - {this.state.validIpAddresses.map(ip => ( - <li key={ip} className="little-spacer-top">{ip}</li> - ))} + {this.state.validIpAddresses.map(ip => + <li key={ip} className="little-spacer-top"> + {ip} + </li> + )} </ul> </div> </div> diff --git a/server/sonar-web/src/main/js/apps/settings/styles.css b/server/sonar-web/src/main/js/apps/settings/styles.css index 4d188e811dc..c3d0a6588b8 100644 --- a/server/sonar-web/src/main/js/apps/settings/styles.css +++ b/server/sonar-web/src/main/js/apps/settings/styles.css @@ -79,9 +79,11 @@ border-top: 1px dotted #e6e6e6; } -.settings-sub-categories-list {} +.settings-sub-categories-list { +} -.settings-sub-categories-list > li {} +.settings-sub-categories-list > li { +} .settings-sub-categories-list > li + li { margin: 30px -20px 0; diff --git a/server/sonar-web/src/main/js/apps/system/item-log-level.js b/server/sonar-web/src/main/js/apps/system/item-log-level.js index 473213a4870..3a0a5019cf3 100644 --- a/server/sonar-web/src/main/js/apps/system/item-log-level.js +++ b/server/sonar-web/src/main/js/apps/system/item-log-level.js @@ -37,15 +37,22 @@ export default class ItemLogLevel extends React.PureComponent { }; render() { - const options = LOG_LEVELS.map(level => <option key={level} value={level}>{level}</option>); - const warning = this.state.level !== 'INFO' - ? <div className="alert alert-danger spacer-top" style={{ wordBreak: 'normal' }}> - {translate('system.log_level.warning')} - </div> - : null; + const options = LOG_LEVELS.map(level => + <option key={level} value={level}> + {level} + </option> + ); + const warning = + this.state.level !== 'INFO' + ? <div className="alert alert-danger spacer-top" style={{ wordBreak: 'normal' }}> + {translate('system.log_level.warning')} + </div> + : null; return ( <div> - <select ref="select" onChange={this.onChange} value={this.state.level}>{options}</select> + <select ref="select" onChange={this.onChange} value={this.state.level}> + {options} + </select> {warning} </div> ); diff --git a/server/sonar-web/src/main/js/apps/system/item-object.js b/server/sonar-web/src/main/js/apps/system/item-object.js index 32b81388595..d5e2b127efa 100644 --- a/server/sonar-web/src/main/js/apps/system/item-object.js +++ b/server/sonar-web/src/main/js/apps/system/item-object.js @@ -25,14 +25,20 @@ export default class ItemObject extends React.PureComponent { const rows = Object.keys(this.props.value).map(key => { return ( <tr key={key}> - <td className="thin nowrap">{key}</td> - <td><ItemValue value={this.props.value[key]} /></td> + <td className="thin nowrap"> + {key} + </td> + <td> + <ItemValue value={this.props.value[key]} /> + </td> </tr> ); }); return ( <table className="data"> - <tbody>{rows}</tbody> + <tbody> + {rows} + </tbody> </table> ); } diff --git a/server/sonar-web/src/main/js/apps/system/item-value.js b/server/sonar-web/src/main/js/apps/system/item-value.js index 5461aa95e8b..09b1220ea2b 100644 --- a/server/sonar-web/src/main/js/apps/system/item-value.js +++ b/server/sonar-web/src/main/js/apps/system/item-value.js @@ -38,7 +38,11 @@ export default class ItemValue extends React.PureComponent { formattedValue = <ItemObject value={rawValue} />; break; default: - formattedValue = <code>{rawValue}</code>; + formattedValue = ( + <code> + {rawValue} + </code> + ); } return formattedValue; } diff --git a/server/sonar-web/src/main/js/apps/system/main.js b/server/sonar-web/src/main/js/apps/system/main.js index 3bb364b83c0..53fb1380a5b 100644 --- a/server/sonar-web/src/main/js/apps/system/main.js +++ b/server/sonar-web/src/main/js/apps/system/main.js @@ -69,20 +69,26 @@ export default class Main extends React.PureComponent { if (this.state && this.state.sections) { sections = this.state.sections .filter(section => SECTIONS_ORDER.indexOf(section.name) >= 0) - .map(section => ( + .map(section => <Section key={section.name} section={section.name} items={section.items} /> - )); + ); } return ( <div className="page"> <Helmet title={translate('system_info.page')} /> <header className="page-header"> - <h1 className="page-title">{translate('system_info.page')}</h1> + <h1 className="page-title"> + {translate('system_info.page')} + </h1> <div className="page-actions"> - <a href={window.baseUrl + '/api/system/info'} id="download-link">Download</a> + <a href={window.baseUrl + '/api/system/info'} id="download-link"> + Download + </a> <div className="display-inline-block dropdown big-spacer-left"> - <button data-toggle="dropdown">Logs <i className="icon-dropdown" /></button> + <button data-toggle="dropdown"> + Logs <i className="icon-dropdown" /> + </button> <ul className="dropdown-menu"> <li> <a href={window.baseUrl + '/api/system/logs?process=app'} id="logs-link"> diff --git a/server/sonar-web/src/main/js/apps/system/section.js b/server/sonar-web/src/main/js/apps/system/section.js index 89b90e99c5d..e9f540cc3ea 100644 --- a/server/sonar-web/src/main/js/apps/system/section.js +++ b/server/sonar-web/src/main/js/apps/system/section.js @@ -39,9 +39,13 @@ export default class Section extends React.PureComponent { return ( <div className="big-spacer-bottom"> - <h3 className="spacer-bottom">{this.props.section}</h3> + <h3 className="spacer-bottom"> + {this.props.section} + </h3> <table className="data zebra" id={this.props.section}> - <tbody>{items}</tbody> + <tbody> + {items} + </tbody> </table> </div> ); diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/AnalysisStep.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/AnalysisStep.js index 497f104b304..a3b938727d6 100644 --- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/AnalysisStep.js +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/AnalysisStep.js @@ -81,9 +81,10 @@ export default class AnalysisStep extends React.PureComponent { ); }; - renderFormattedCommand = (...lines: Array<string>) => ( - <pre>{lines.join(' ' + '\\' + '\n' + ' ')}</pre> - ); + renderFormattedCommand = (...lines: Array<string>) => + <pre> + {lines.join(' ' + '\\' + '\n' + ' ')} + </pre>; renderCommand = () => { const { result } = this.state; @@ -107,21 +108,19 @@ export default class AnalysisStep extends React.PureComponent { } }; - renderCommandForMaven = () => ( + renderCommandForMaven = () => <JavaMaven host={this.getHost()} organization={this.props.organization} token={this.props.token} - /> - ); + />; - renderCommandForGradle = () => ( + renderCommandForGradle = () => <JavaGradle host={this.getHost()} organization={this.props.organization} token={this.props.token} - /> - ); + />; renderCommandForDotNet = () => { return ( @@ -147,7 +146,7 @@ export default class AnalysisStep extends React.PureComponent { ); }; - renderCommandForClangGCC = () => ( + renderCommandForClangGCC = () => <ClangGCC host={this.getHost()} organization={this.props.organization} @@ -156,10 +155,9 @@ export default class AnalysisStep extends React.PureComponent { // $FlowFixMe projectKey={this.state.result.projectKey} token={this.props.token} - /> - ); + />; - renderCommandForOther = () => ( + renderCommandForOther = () => <Other host={this.getHost()} organization={this.props.organization} @@ -168,8 +166,7 @@ export default class AnalysisStep extends React.PureComponent { // $FlowFixMe projectKey={this.state.result.projectKey} token={this.props.token} - /> - ); + />; renderResult = () => null; diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/LanguageStep.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/LanguageStep.js index 44bfb4ed766..55e030422fb 100644 --- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/LanguageStep.js +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/LanguageStep.js @@ -90,7 +90,7 @@ export default class LanguageStep extends React.PureComponent { this.setState({ projectKey: undefined }, this.handleChange); }; - renderJavaBuild = () => ( + renderJavaBuild = () => <div className="big-spacer-top"> <h4 className="spacer-bottom"> {translate('onboarding.language.java.build_technology')} @@ -104,10 +104,9 @@ export default class LanguageStep extends React.PureComponent { }))} value={this.state.javaBuild} /> - </div> - ); + </div>; - renderCFamilyCompiler = () => ( + renderCFamilyCompiler = () => <div className="big-spacer-top"> <h4 className="spacer-bottom"> {translate('onboarding.language.c-family.compiler')} @@ -121,10 +120,9 @@ export default class LanguageStep extends React.PureComponent { }))} value={this.state.cFamilyCompiler} /> - </div> - ); + </div>; - renderOS = () => ( + renderOS = () => <div className="big-spacer-top"> <h4 className="spacer-bottom"> {translate('onboarding.language.os')} @@ -138,17 +136,15 @@ export default class LanguageStep extends React.PureComponent { }))} value={this.state.os} /> - </div> - ); + </div>; - renderProjectKey = () => ( + renderProjectKey = () => <NewProjectForm onDelete={this.handleProjectKeyDelete} onDone={this.handleProjectKeyDone} organization={this.props.organization} projectKey={this.state.projectKey} - /> - ); + />; render() { const shouldAskProjectKey = @@ -165,7 +161,9 @@ export default class LanguageStep extends React.PureComponent { return ( <div> <div> - <h4 className="spacer-bottom">{translate('onboarding.language')}</h4> + <h4 className="spacer-bottom"> + {translate('onboarding.language')} + </h4> <RadioToggle name="language" onCheck={this.handleLanguageChange} diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/NewOrganizationForm.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/NewOrganizationForm.js index 1f20fe29572..dd7594e8ed5 100644 --- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/NewOrganizationForm.js +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/NewOrganizationForm.js @@ -123,7 +123,9 @@ export default class NewOrganizationForm extends React.PureComponent { return done ? <form onSubmit={this.handleOrganizationDelete}> - <span className="spacer-right text-middle">{organization}</span> + <span className="spacer-right text-middle"> + {organization} + </span> {loading ? <i className="spinner text-middle" /> : <button className="button-clean text-middle"> @@ -144,7 +146,9 @@ export default class NewOrganizationForm extends React.PureComponent { /> {loading ? <i className="spinner text-middle" /> - : <button className="text-middle" disabled={!valid}>{translate('create')}</button>} + : <button className="text-middle" disabled={!valid}> + {translate('create')} + </button>} {!unique && <span className="big-spacer-left text-danger text-middle"> <i className="icon-alert-error little-spacer-right text-text-top" /> diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/NewProjectForm.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/NewProjectForm.js index 11f24180d82..5f7a87855ca 100644 --- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/NewProjectForm.js +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/NewProjectForm.js @@ -108,7 +108,9 @@ export default class NewProjectForm extends React.PureComponent { const form = done ? <form onSubmit={this.handleProjectDelete}> - <span className="spacer-right text-middle">{projectKey}</span> + <span className="spacer-right text-middle"> + {projectKey} + </span> {loading ? <i className="spinner text-middle" /> : <button className="button-clean text-middle"> @@ -128,7 +130,9 @@ export default class NewProjectForm extends React.PureComponent { /> {loading ? <i className="spinner text-middle" /> - : <button className="text-middle" disabled={!valid}>{translate('Done')}</button>} + : <button className="text-middle" disabled={!valid}> + {translate('Done')} + </button>} <div className="note spacer-top abs-width-300"> {translate('onboarding.project_key_requirement')} </div> diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/Onboarding.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/Onboarding.js index 45df83f7dcd..b648f3a5197 100644 --- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/Onboarding.js +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/Onboarding.js @@ -139,7 +139,9 @@ export default class Onboarding extends React.PureComponent { <div className="page page-limited onboarding"> <header className="page-header"> - <h1 className="page-title">{header}</h1> + <h1 className="page-title"> + {header} + </h1> <div className="page-actions"> {this.state.skipping ? <i className="spinner" /> diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/OrganizationStep.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/OrganizationStep.js index 9270d7c6033..64f7eb6504c 100644 --- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/OrganizationStep.js +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/OrganizationStep.js @@ -130,7 +130,7 @@ export default class OrganizationStep extends React.PureComponent { } }; - renderPersonalOrganizationOption = () => ( + renderPersonalOrganizationOption = () => <div> <a className="link-base-color link-no-underline" href="#" onClick={this.handlePersonalClick}> <i @@ -139,12 +139,13 @@ export default class OrganizationStep extends React.PureComponent { })} /> {translate('onboarding.organization.my_personal_organization')} - <span className="note spacer-left">{this.props.currentUser.login}</span> + <span className="note spacer-left"> + {this.props.currentUser.login} + </span> </a> - </div> - ); + </div>; - renderExistingOrganizationOption = () => ( + renderExistingOrganizationOption = () => <div className="big-spacer-top"> <a className="js-existing link-base-color link-no-underline" @@ -170,10 +171,9 @@ export default class OrganizationStep extends React.PureComponent { value={this.state.existingOrganization} /> </div>} - </div> - ); + </div>; - renderNewOrganizationOption = () => ( + renderNewOrganizationOption = () => <div className="big-spacer-top"> <a className="js-new link-base-color link-no-underline" @@ -194,8 +194,7 @@ export default class OrganizationStep extends React.PureComponent { organization={this.state.newOrganization} /> </div>} - </div> - ); + </div>; renderForm = () => { return ( @@ -224,7 +223,9 @@ export default class OrganizationStep extends React.PureComponent { return result != null ? <div className="boxed-group-actions"> <i className="icon-check spacer-right" /> - <strong>{result}</strong> + <strong> + {result} + </strong> </div> : null; }; diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/ProjectKeyStep.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/ProjectKeyStep.js index 156fc34b470..9a173d999f5 100644 --- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/ProjectKeyStep.js +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/ProjectKeyStep.js @@ -107,7 +107,9 @@ export default class ProjectKeyStep extends React.PureComponent { const form = done ? <form onSubmit={this.handleProjectDelete}> - <span className="spacer-right text-middle">{projectKey}</span> + <span className="spacer-right text-middle"> + {projectKey} + </span> {loading ? <i className="spinner" /> : <button className="button-clean"> @@ -127,7 +129,9 @@ export default class ProjectKeyStep extends React.PureComponent { /> {loading ? <i className="spinner" /> - : <button className="text-middle" disabled={!valid}>{translate('Done')}</button>} + : <button className="text-middle" disabled={!valid}> + {translate('Done')} + </button>} <div className="note spacer-top abs-width-300"> {translate('onboarding.project_key_requirement')} </div> diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/Step.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/Step.js index fba30c8102b..e2ae5cc9c40 100644 --- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/Step.js +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/Step.js @@ -50,10 +50,14 @@ export default function Step(props: Props) { onClick={clickable ? handleClick : undefined} role={clickable ? 'button' : undefined} tabIndex={clickable ? 0 : undefined}> - <div className="onboarding-step-number">{props.stepNumber}</div> + <div className="onboarding-step-number"> + {props.stepNumber} + </div> {!props.open && props.renderResult()} <div className="boxed-group-header"> - <h2>{props.stepTitle}</h2> + <h2> + {props.stepTitle} + </h2> </div> {props.open ? props.renderForm() : <div className="boxed-group-inner" />} </div> diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/TokenStep.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/TokenStep.js index 443d4f5c2ec..0209d26b6c8 100644 --- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/TokenStep.js +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/TokenStep.js @@ -111,8 +111,13 @@ export default class TokenStep extends React.PureComponent { <div className="boxed-group-inner"> {token != null ? <form onSubmit={this.handleTokenRevoke}> - <span className="text-middle">{tokenName}{': '}</span> - <strong className="spacer-right text-middle">{token}</strong> + <span className="text-middle"> + {tokenName} + {': '} + </span> + <strong className="spacer-right text-middle"> + {token} + </strong> {loading ? <i className="spinner text-middle" /> : <button className="button-clean text-middle" onClick={this.handleTokenRevoke}> @@ -131,7 +136,9 @@ export default class TokenStep extends React.PureComponent { /> {loading ? <i className="spinner text-middle" /> - : <button className="text-middle">{translate('onboarding.token.generate')}</button>} + : <button className="text-middle"> + {translate('onboarding.token.generate')} + </button>} </form>} <div className="note big-spacer-top width-50"> @@ -158,8 +165,11 @@ export default class TokenStep extends React.PureComponent { return ( <div className="boxed-group-actions"> <i className="icon-check spacer-right" /> - {tokenName}{': '} - <strong>{token}</strong> + {tokenName} + {': '} + <strong> + {token} + </strong> </div> ); }; diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/Command.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/Command.js index ec9f980083d..ef1fb50431c 100644 --- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/Command.js +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/Command.js @@ -77,7 +77,9 @@ export default class Command extends React.PureComponent { return ( <div className="onboarding-command"> - <pre>{finalCommand}</pre> + <pre> + {finalCommand} + </pre> {this.state.tooltipShown ? <Tooltip defaultVisible={true} placement="top" overlay="Copied!" trigger="manual"> {button} diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaGradle.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaGradle.js index f7a710b9472..7bec8730768 100644 --- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaGradle.js +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaGradle.js @@ -40,7 +40,9 @@ export default function JavaGradle(props: Props) { return ( <div> - <h4 className="spacer-bottom">{translate('onboarding.analysis.java.gradle.header')}</h4> + <h4 className="spacer-bottom"> + {translate('onboarding.analysis.java.gradle.header')} + </h4> <p className="spacer-bottom markdown" dangerouslySetInnerHTML={{ __html: translate('onboarding.analysis.java.gradle.text.1') }} diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaMaven.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaMaven.js index 1166463012a..bbe6a513686 100644 --- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaMaven.js +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaMaven.js @@ -38,8 +38,12 @@ export default function JavaMaven(props: Props) { return ( <div> - <h4 className="spacer-bottom">{translate('onboarding.analysis.java.maven.header')}</h4> - <p className="spacer-bottom markdown">{translate('onboarding.analysis.java.maven.text')}</p> + <h4 className="spacer-bottom"> + {translate('onboarding.analysis.java.maven.header')} + </h4> + <p className="spacer-bottom markdown"> + {translate('onboarding.analysis.java.maven.text')} + </p> <Command command={command} /> <p className="big-spacer-top markdown" diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/MSBuildScanner.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/MSBuildScanner.js index 3be38395ca9..2716e636090 100644 --- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/MSBuildScanner.js +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/MSBuildScanner.js @@ -28,7 +28,9 @@ type Props = { export default function MSBuildScanner(props: Props) { return ( <div className={props.className}> - <h4 className="spacer-bottom">{translate('onboarding.analysis.msbuild.header')}</h4> + <h4 className="spacer-bottom"> + {translate('onboarding.analysis.msbuild.header')} + </h4> <p className="spacer-bottom markdown" dangerouslySetInnerHTML={{ __html: translate('onboarding.analysis.msbuild.text') }} diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/styles.css b/server/sonar-web/src/main/js/apps/tutorials/onboarding/styles.css index ba588639db3..81266990209 100644 --- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/styles.css +++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/styles.css @@ -1,6 +1,6 @@ - .onboarding { - min-height: calc(70vh - 60px); - } +.onboarding { + min-height: calc(70vh - 60px); +} .onboarding-step { position: relative; diff --git a/server/sonar-web/src/main/js/apps/users/components/UsersSelectSearch.js b/server/sonar-web/src/main/js/apps/users/components/UsersSelectSearch.js index 3e887b078c4..dd64d1159bf 100644 --- a/server/sonar-web/src/main/js/apps/users/components/UsersSelectSearch.js +++ b/server/sonar-web/src/main/js/apps/users/components/UsersSelectSearch.js @@ -98,9 +98,10 @@ export default class UsersSelectSearch extends React.PureComponent { }; render() { - const noResult = this.state.search.length === 1 - ? translateWithParameters('select2.tooShort', 2) - : translate('no_results'); + const noResult = + this.state.search.length === 1 + ? translateWithParameters('select2.tooShort', 2) + : translate('no_results'); return ( <Select autofocus={this.props.autoFocus} diff --git a/server/sonar-web/src/main/js/apps/users/components/UsersSelectSearchOption.js b/server/sonar-web/src/main/js/apps/users/components/UsersSelectSearchOption.js index e1b8056fd0e..5636a042c10 100644 --- a/server/sonar-web/src/main/js/apps/users/components/UsersSelectSearchOption.js +++ b/server/sonar-web/src/main/js/apps/users/components/UsersSelectSearchOption.js @@ -63,8 +63,12 @@ export default class UsersSelectSearchOption extends React.PureComponent { onMouseMove={this.handleMouseMove} title={user.name}> <Avatar hash={user.avatar} email={user.email} name={user.name} size={AVATAR_SIZE} /> - <strong className="spacer-left">{this.props.children}</strong> - <span className="note little-spacer-left">{user.login}</span> + <strong className="spacer-left"> + {this.props.children} + </strong> + <span className="note little-spacer-left"> + {user.login} + </span> </div> ); } diff --git a/server/sonar-web/src/main/js/apps/users/components/UsersSelectSearchValue.js b/server/sonar-web/src/main/js/apps/users/components/UsersSelectSearchValue.js index 090ad3a0d22..d8e43c15f7e 100644 --- a/server/sonar-web/src/main/js/apps/users/components/UsersSelectSearchValue.js +++ b/server/sonar-web/src/main/js/apps/users/components/UsersSelectSearchValue.js @@ -40,8 +40,12 @@ export default class UsersSelectSearchValue extends React.PureComponent { user.login && <div className="Select-value-label"> <Avatar hash={user.avatar} email={user.email} name={user.name} size={AVATAR_SIZE} /> - <strong className="spacer-left">{this.props.children}</strong> - <span className="note little-spacer-left">{user.login}</span> + <strong className="spacer-left"> + {this.props.children} + </strong> + <span className="note little-spacer-left"> + {user.login} + </span> </div>} </div> ); diff --git a/server/sonar-web/src/main/js/apps/users/components/__tests__/UsersSelectSearchOption-test.js b/server/sonar-web/src/main/js/apps/users/components/__tests__/UsersSelectSearchOption-test.js index 3023f73918c..090808dc979 100644 --- a/server/sonar-web/src/main/js/apps/users/components/__tests__/UsersSelectSearchOption-test.js +++ b/server/sonar-web/src/main/js/apps/users/components/__tests__/UsersSelectSearchOption-test.js @@ -35,14 +35,18 @@ const user2 = { it('should render correctly without all parameters', () => { const wrapper = shallow( - <UsersSelectSearchOption option={user}>{user.name}</UsersSelectSearchOption> + <UsersSelectSearchOption option={user}> + {user.name} + </UsersSelectSearchOption> ); expect(wrapper).toMatchSnapshot(); }); it('should render correctly with email instead of hash', () => { const wrapper = shallow( - <UsersSelectSearchOption option={user2}>{user.name}</UsersSelectSearchOption> + <UsersSelectSearchOption option={user2}> + {user.name} + </UsersSelectSearchOption> ); expect(wrapper).toMatchSnapshot(); }); diff --git a/server/sonar-web/src/main/js/apps/users/components/__tests__/UsersSelectSearchValue-test.js b/server/sonar-web/src/main/js/apps/users/components/__tests__/UsersSelectSearchValue-test.js index 357365a0826..cd182e98fc5 100644 --- a/server/sonar-web/src/main/js/apps/users/components/__tests__/UsersSelectSearchValue-test.js +++ b/server/sonar-web/src/main/js/apps/users/components/__tests__/UsersSelectSearchValue-test.js @@ -35,14 +35,18 @@ const user2 = { it('should render correctly with a user', () => { const wrapper = shallow( - <UsersSelectSearchValue value={user}>{user.name}</UsersSelectSearchValue> + <UsersSelectSearchValue value={user}> + {user.name} + </UsersSelectSearchValue> ); expect(wrapper).toMatchSnapshot(); }); it('should render correctly with email instead of hash', () => { const wrapper = shallow( - <UsersSelectSearchValue value={user2}>{user2.name}</UsersSelectSearchValue> + <UsersSelectSearchValue value={user2}> + {user2.name} + </UsersSelectSearchValue> ); expect(wrapper).toMatchSnapshot(); }); diff --git a/server/sonar-web/src/main/js/apps/web-api/components/Action.js b/server/sonar-web/src/main/js/apps/web-api/components/Action.js index a62bc2c4b6e..0d09aeb6973 100644 --- a/server/sonar-web/src/main/js/apps/web-api/components/Action.js +++ b/server/sonar-web/src/main/js/apps/web-api/components/Action.js @@ -100,7 +100,10 @@ export default class Action extends React.PureComponent { <InternalBadge /> </span>} - {action.since && <span className="spacer-left badge">since {action.since}</span>} + {action.since && + <span className="spacer-left badge"> + since {action.since} + </span>} {action.deprecatedSince && <span className="spacer-left"> diff --git a/server/sonar-web/src/main/js/apps/web-api/components/ActionChangelog.js b/server/sonar-web/src/main/js/apps/web-api/components/ActionChangelog.js index 7297daed368..1b0b5b9e0c0 100644 --- a/server/sonar-web/src/main/js/apps/web-api/components/ActionChangelog.js +++ b/server/sonar-web/src/main/js/apps/web-api/components/ActionChangelog.js @@ -33,14 +33,14 @@ export default class ActionChangelog extends React.PureComponent { render() { return ( <ul className="big-spacer-top"> - {this.props.changelog.map((item, index) => ( + {this.props.changelog.map((item, index) => <li key={index} className="spacer-top"> <span className="spacer-right badge"> {item.version} </span> {item.description} </li> - ))} + )} </ul> ); } diff --git a/server/sonar-web/src/main/js/apps/web-api/components/Domain.js b/server/sonar-web/src/main/js/apps/web-api/components/Domain.js index 0c79d15d6b8..a421f123144 100644 --- a/server/sonar-web/src/main/js/apps/web-api/components/Domain.js +++ b/server/sonar-web/src/main/js/apps/web-api/components/Domain.js @@ -44,7 +44,9 @@ export default class Domain extends React.PureComponent { return ( <div className="web-api-domain"> <header className="web-api-domain-header"> - <h2 className="web-api-domain-title">{domain.path}</h2> + <h2 className="web-api-domain-title"> + {domain.path} + </h2> {domain.deprecated && <span className="spacer-left"> @@ -64,7 +66,7 @@ export default class Domain extends React.PureComponent { />} <div className="web-api-domain-actions"> - {filteredActions.map(action => ( + {filteredActions.map(action => <Action key={getActionKey(domain.path, action.key)} action={action} @@ -72,7 +74,7 @@ export default class Domain extends React.PureComponent { showDeprecated={showDeprecated} showInternal={showInternal} /> - ))} + )} </div> </div> ); diff --git a/server/sonar-web/src/main/js/apps/web-api/components/Menu.js b/server/sonar-web/src/main/js/apps/web-api/components/Menu.js index 815cb1d4077..a3069a0f7bb 100644 --- a/server/sonar-web/src/main/js/apps/web-api/components/Menu.js +++ b/server/sonar-web/src/main/js/apps/web-api/components/Menu.js @@ -53,7 +53,7 @@ export default class Menu extends React.PureComponent { <div className="api-documentation-results panel"> <TooltipsContainer> <div className="list-group"> - {filteredDomains.map(domain => ( + {filteredDomains.map(domain => <Link key={domain.path} className={classNames('list-group-item', { @@ -71,7 +71,7 @@ export default class Menu extends React.PureComponent { dangerouslySetInnerHTML={{ __html: domain.description }} />} </Link> - ))} + )} </div> </TooltipsContainer> </div> diff --git a/server/sonar-web/src/main/js/apps/web-api/components/Params.js b/server/sonar-web/src/main/js/apps/web-api/components/Params.js index ddb229fee99..cda32ebceeb 100644 --- a/server/sonar-web/src/main/js/apps/web-api/components/Params.js +++ b/server/sonar-web/src/main/js/apps/web-api/components/Params.js @@ -39,10 +39,12 @@ export default class Params extends React.PureComponent { <div className="web-api-params"> <table> <tbody> - {displayedParameters.map(param => ( + {displayedParameters.map(param => <tr key={param.key}> <td className="markdown" style={{ width: 180 }}> - <code>{param.key}</code> + <code> + {param.key} + </code> {param.internal && <div className="little-spacer-top"> @@ -57,7 +59,9 @@ export default class Params extends React.PureComponent { {showDeprecated && param.deprecatedKey && <div className="little-spacer-top"> - <code>{param.deprecatedKey}</code> + <code> + {param.deprecatedKey} + </code> </div>} {showDeprecated && @@ -89,34 +93,42 @@ export default class Params extends React.PureComponent { <div> <h4>Possible values</h4> <ul className="list-styled"> - {param.possibleValues.map(value => ( + {param.possibleValues.map(value => <li key={value} className="little-spacer-top"> - <code>{value}</code> + <code> + {value} + </code> </li> - ))} + )} </ul> </div>} {param.defaultValue && <div className="little-spacer-top"> <h4>Default value</h4> - <code>{param.defaultValue}</code> + <code> + {param.defaultValue} + </code> </div>} {param.exampleValue && <div className="little-spacer-top"> <h4>Example value</h4> - <code>{param.exampleValue}</code> + <code> + {param.exampleValue} + </code> </div>} {param.maxValuesAllowed != null && <div className="little-spacer-top"> <h4>Maximum allowed values</h4> - <code>{param.maxValuesAllowed}</code> + <code> + {param.maxValuesAllowed} + </code> </div>} </td> </tr> - ))} + )} </tbody> </table> </div> diff --git a/server/sonar-web/src/main/js/apps/web-api/components/ResponseExample.js b/server/sonar-web/src/main/js/apps/web-api/components/ResponseExample.js index 7f9c5869e7a..88bf4973bec 100644 --- a/server/sonar-web/src/main/js/apps/web-api/components/ResponseExample.js +++ b/server/sonar-web/src/main/js/apps/web-api/components/ResponseExample.js @@ -50,7 +50,10 @@ export default class ResponseExample extends React.PureComponent { return ( <div className="web-api-response"> - {responseExample && <pre style={{ whiteSpace: 'pre-wrap' }}>{responseExample.example}</pre>} + {responseExample && + <pre style={{ whiteSpace: 'pre-wrap' }}> + {responseExample.example} + </pre>} </div> ); } diff --git a/server/sonar-web/src/main/js/apps/web-api/components/WebApiApp.js b/server/sonar-web/src/main/js/apps/web-api/components/WebApiApp.js index 166babf4c99..a6dd2212369 100644 --- a/server/sonar-web/src/main/js/apps/web-api/components/WebApiApp.js +++ b/server/sonar-web/src/main/js/apps/web-api/components/WebApiApp.js @@ -148,7 +148,9 @@ export default class WebApiApp extends React.PureComponent { <div className="search-navigator-side search-navigator-side-light" style={{ top: 30 }}> <div className="web-api-page-header"> <Link to="/web_api/"> - <h1>{translate('api_documentation.page')}</h1> + <h1> + {translate('api_documentation.page')} + </h1> </Link> </div> diff --git a/server/sonar-web/src/main/js/apps/web-api/styles/web-api.css b/server/sonar-web/src/main/js/apps/web-api/styles/web-api.css index aa30002f3b3..121d9b55a35 100644 --- a/server/sonar-web/src/main/js/apps/web-api/styles/web-api.css +++ b/server/sonar-web/src/main/js/apps/web-api/styles/web-api.css @@ -32,7 +32,8 @@ line-height: 1.5; } -.web-api-domain-actions {} +.web-api-domain-actions { +} .web-api-action { padding-top: 30px; diff --git a/server/sonar-web/src/main/js/components/SourceViewer/SourceViewer.js b/server/sonar-web/src/main/js/components/SourceViewer/SourceViewer.js index 0e70dfb09f9..7e301a6bae1 100644 --- a/server/sonar-web/src/main/js/components/SourceViewer/SourceViewer.js +++ b/server/sonar-web/src/main/js/components/SourceViewer/SourceViewer.js @@ -24,9 +24,11 @@ import { receiveFavorites } from '../../store/favorites/duck'; const mapStateToProps = null; -const onReceiveComponent = ( - component: { key: string, canMarkAsFavorite: boolean, fav: boolean } -) => dispatch => { +const onReceiveComponent = (component: { + key: string, + canMarkAsFavorite: boolean, + fav: boolean +}) => dispatch => { if (component.canMarkAsFavorite) { const favorites = []; const notFavorites = []; diff --git a/server/sonar-web/src/main/js/components/SourceViewer/SourceViewerCode.js b/server/sonar-web/src/main/js/components/SourceViewer/SourceViewerCode.js index 87605714ffd..b8708d91d7f 100644 --- a/server/sonar-web/src/main/js/components/SourceViewer/SourceViewerCode.js +++ b/server/sonar-web/src/main/js/components/SourceViewer/SourceViewerCode.js @@ -66,7 +66,7 @@ export default class SourceViewerCode extends React.PureComponent { onLineClick: (SourceLine, HTMLElement) => void, onLocationSelect?: number => void, onSCMClick: (SourceLine, HTMLElement) => void, - onSymbolClick: Array<string> => void, + onSymbolClick: (Array<string>) => void, openIssuesByLine: { [number]: boolean }, scroll?: HTMLElement => void, selectedIssue: string | null, @@ -126,21 +126,21 @@ export default class SourceViewerCode extends React.PureComponent { optimizedHighlightedSymbols = undefined; } - const optimizedSelectedIssue = selectedIssue != null && - issuesForLine.find(issue => issue.key === selectedIssue) - ? selectedIssue - : null; + const optimizedSelectedIssue = + selectedIssue != null && issuesForLine.find(issue => issue.key === selectedIssue) + ? selectedIssue + : null; - const optimizedSecondaryIssueLocations = secondaryIssueLocations.length > 0 - ? secondaryIssueLocations - : EMPTY_ARRAY; + const optimizedSecondaryIssueLocations = + secondaryIssueLocations.length > 0 ? secondaryIssueLocations : EMPTY_ARRAY; - const optimizedLocationMessage = highlightedLocationMessage != null && + const optimizedLocationMessage = + highlightedLocationMessage != null && optimizedSecondaryIssueLocations.some( location => location.index === highlightedLocationMessage.index ) - ? highlightedLocationMessage - : undefined; + ? highlightedLocationMessage + : undefined; return ( <Line diff --git a/server/sonar-web/src/main/js/components/SourceViewer/SourceViewerHeader.js b/server/sonar-web/src/main/js/components/SourceViewer/SourceViewerHeader.js index 2e9922b91b1..0a0e2b3c21b 100644 --- a/server/sonar-web/src/main/js/components/SourceViewer/SourceViewerHeader.js +++ b/server/sonar-web/src/main/js/components/SourceViewer/SourceViewerHeader.js @@ -99,11 +99,8 @@ export default class SourceViewerHeader extends React.PureComponent { </div>} <div className="component-name-path"> - <QualifierIcon qualifier={q} /> - {' '} - <span>{collapsedDirFromPath(path)}</span> + <QualifierIcon qualifier={q} /> <span>{collapsedDirFromPath(path)}</span> <span className="component-name-file">{fileFromPath(path)}</span> - {this.props.component.canMarkAsFavorite && <FavoriteContainer className="component-name-favorite" componentKey={key} />} </div> @@ -171,8 +168,7 @@ export default class SourceViewerHeader extends React.PureComponent { to={getComponentIssuesUrl(project, { resolved: 'false', fileUuids: uuid })} className="source-viewer-header-external-link" target="_blank"> - {measures.issues != null ? formatMeasure(measures.issues, 'SHORT_INT') : 0} - {' '} + {measures.issues != null ? formatMeasure(measures.issues, 'SHORT_INT') : 0}{' '} <i className="icon-detach" /> </Link> </span> diff --git a/server/sonar-web/src/main/js/components/SourceViewer/components/Line.js b/server/sonar-web/src/main/js/components/SourceViewer/components/Line.js index 7d44d23183f..664297c4774 100644 --- a/server/sonar-web/src/main/js/components/SourceViewer/components/Line.js +++ b/server/sonar-web/src/main/js/components/SourceViewer/components/Line.js @@ -59,7 +59,7 @@ type Props = {| onIssuesClose: SourceLine => void, onLocationSelect?: number => void, onSCMClick: (SourceLine, HTMLElement) => void, - onSymbolClick: Array<string> => void, + onSymbolClick: (Array<string>) => void, openIssues: boolean, previousLine?: SourceLine, scroll?: HTMLElement => void, @@ -115,7 +115,7 @@ export default class Line extends React.PureComponent { {this.props.displayDuplications && <LineDuplications line={line} onClick={this.props.loadDuplications} />} - {times(duplicationsCount).map(index => ( + {times(duplicationsCount).map(index => <LineDuplicationBlock duplicated={duplications.includes(index)} index={index} @@ -123,7 +123,7 @@ export default class Line extends React.PureComponent { line={this.props.line} onClick={this.props.onDuplicationClick} /> - ))} + )} {this.props.displayIssues && !this.props.displayAllIssues && diff --git a/server/sonar-web/src/main/js/components/SourceViewer/components/LineCode.js b/server/sonar-web/src/main/js/components/SourceViewer/components/LineCode.js index 42df538cff2..1183a2b83b8 100644 --- a/server/sonar-web/src/main/js/components/SourceViewer/components/LineCode.js +++ b/server/sonar-web/src/main/js/components/SourceViewer/components/LineCode.js @@ -38,7 +38,7 @@ type Props = {| onIssueChange: Issue => void, onIssueSelect: (issueKey: string) => void, onLocationSelect?: number => void, - onSymbolClick: Array<string> => void, + onSymbolClick: (Array<string>) => void, scroll?: HTMLElement => void, secondaryIssueLocations: Array<{ from: number, @@ -133,8 +133,13 @@ export default class LineCode extends React.PureComponent { const ref = message != null ? node => (this.activeMarkerNode = node) : undefined; return ( <LocationIndex key={`marker-${index}`} onClick={onClick} selected={message != null}> - <span href="#" ref={ref}>{index + 1}</span> - {message != null && <LocationMessage selected={true}>{message}</LocationMessage>} + <span href="#" ref={ref}> + {index + 1} + </span> + {message != null && + <LocationMessage selected={true}> + {message} + </LocationMessage>} </LocationIndex> ); } @@ -185,20 +190,26 @@ export default class LineCode extends React.PureComponent { tokens.forEach((token, index) => { if (token.markers.length > 0) { token.markers.forEach(marker => { - const message = highlightedLocationMessage != null && - highlightedLocationMessage.index === marker - ? highlightedLocationMessage.text - : null; + const message = + highlightedLocationMessage != null && highlightedLocationMessage.index === marker + ? highlightedLocationMessage.text + : null; renderedTokens.push(this.renderMarker(marker, message)); }); } - renderedTokens.push(<span className={token.className} key={index}>{token.text}</span>); + renderedTokens.push( + <span className={token.className} key={index}> + {token.text} + </span> + ); }); return ( <td className={className} data-line-number={line.line}> <div className="source-line-code-inner"> - <pre ref={node => (this.codeNode = node)}>{renderedTokens}</pre> + <pre ref={node => (this.codeNode = node)}> + {renderedTokens} + </pre> </div> {showIssues && issues.length > 0 && diff --git a/server/sonar-web/src/main/js/components/SourceViewer/components/LineIssuesIndicator.js b/server/sonar-web/src/main/js/components/SourceViewer/components/LineIssuesIndicator.js index b7f1c2a176e..283dc54709a 100644 --- a/server/sonar-web/src/main/js/components/SourceViewer/components/LineIssuesIndicator.js +++ b/server/sonar-web/src/main/js/components/SourceViewer/components/LineIssuesIndicator.js @@ -55,7 +55,10 @@ export default class LineIssuesIndicator extends React.PureComponent { tabIndex={hasIssues ? '0' : undefined} onClick={hasIssues ? this.handleClick : undefined}> {mostImportantIssue != null && <SeverityIcon severity={mostImportantIssue.severity} />} - {issues.length > 1 && <span className="source-line-issues-counter">{issues.length}</span>} + {issues.length > 1 && + <span className="source-line-issues-counter"> + {issues.length} + </span>} </td> ); } diff --git a/server/sonar-web/src/main/js/components/SourceViewer/components/LineIssuesList.js b/server/sonar-web/src/main/js/components/SourceViewer/components/LineIssuesList.js index 97bc6e99501..64fd1202ca5 100644 --- a/server/sonar-web/src/main/js/components/SourceViewer/components/LineIssuesList.js +++ b/server/sonar-web/src/main/js/components/SourceViewer/components/LineIssuesList.js @@ -37,7 +37,7 @@ export default class LineIssuesList extends React.PureComponent { return ( <div className="issue-list"> - {issues.map(issue => ( + {issues.map(issue => <Issue issue={issue} key={issue.key} @@ -45,7 +45,7 @@ export default class LineIssuesList extends React.PureComponent { onClick={onIssueClick} selected={selectedIssue === issue.key} /> - ))} + )} </div> ); } diff --git a/server/sonar-web/src/main/js/components/SourceViewer/helpers/highlight.js b/server/sonar-web/src/main/js/components/SourceViewer/helpers/highlight.js index 5aa34c09067..1666f781644 100644 --- a/server/sonar-web/src/main/js/components/SourceViewer/helpers/highlight.js +++ b/server/sonar-web/src/main/js/components/SourceViewer/helpers/highlight.js @@ -49,9 +49,9 @@ export const highlightSymbol = (tokens: Tokens, symbol: string): Tokens => { const symbolRegExp = new RegExp(`\\b${symbol}\\b`); return tokens.map( token => - (symbolRegExp.test(token.className) + symbolRegExp.test(token.className) ? { ...token, className: `${token.className} highlighted` } - : token) + : token ); }; @@ -104,14 +104,16 @@ export const highlightIssueLocations = ( nextTokens.push({ ...token, text: p1 }); } if (p2.length) { - const newClassName = token.className.indexOf(rootClassName) === -1 - ? `${token.className} ${rootClassName}` - : token.className; + const newClassName = + token.className.indexOf(rootClassName) === -1 + ? `${token.className} ${rootClassName}` + : token.className; nextTokens.push({ className: newClassName, - markers: !markerAdded && location.index != null - ? uniq([...token.markers, location.index]) - : token.markers, + markers: + !markerAdded && location.index != null + ? uniq([...token.markers, location.index]) + : token.markers, text: p2 }); markerAdded = true; diff --git a/server/sonar-web/src/main/js/components/charts/AdvancedTimeline.js b/server/sonar-web/src/main/js/components/charts/AdvancedTimeline.js index 260e7a5050e..e5ddd480076 100644 --- a/server/sonar-web/src/main/js/components/charts/AdvancedTimeline.js +++ b/server/sonar-web/src/main/js/components/charts/AdvancedTimeline.js @@ -208,9 +208,10 @@ export default class AdvancedTimeline extends React.PureComponent { handleMouseOut = (evt: Event & { relatedTarget: HTMLElement }) => { const { updateTooltip } = this.props; - const targetClass = evt.relatedTarget && typeof evt.relatedTarget.className === 'string' - ? evt.relatedTarget.className - : ''; + const targetClass = + evt.relatedTarget && typeof evt.relatedTarget.className === 'string' + ? evt.relatedTarget.className + : ''; if ( !updateTooltip || targetClass.includes('bubble-popup') || @@ -269,7 +270,7 @@ export default class AdvancedTimeline extends React.PureComponent { return ( <g> - {ticks.map(tick => ( + {ticks.map(tick => <g key={tick}> {formatYTick != null && <text @@ -289,7 +290,7 @@ export default class AdvancedTimeline extends React.PureComponent { y2={yScale(tick)} /> </g> - ))} + )} </g> ); }; @@ -342,13 +343,13 @@ export default class AdvancedTimeline extends React.PureComponent { } return ( <g> - {this.props.series.map(serie => ( + {this.props.series.map(serie => <path key={serie.name} className={classNames('line-chart-path', 'line-chart-path-' + serie.style)} d={lineGenerator(serie.data)} /> - ))} + )} </g> ); }; @@ -364,13 +365,13 @@ export default class AdvancedTimeline extends React.PureComponent { } return ( <g> - {this.props.series.map(serie => ( + {this.props.series.map(serie => <path key={serie.name} className={classNames('line-chart-area', 'line-chart-area-' + serie.style)} d={areaGenerator(serie.data)} /> - ))} + )} </g> ); }; @@ -387,14 +388,14 @@ export default class AdvancedTimeline extends React.PureComponent { const offset = eventSize / 2; return ( <g> - {inRangeEvents.map((event, idx) => ( + {inRangeEvents.map((event, idx) => <path d={this.getEventMarker(eventSize)} className={classNames('line-chart-event', event.className)} key={`${idx}-${event.date.getTime()}`} transform={`translate(${xScale(event.date) - offset}, ${yScale.range()[0] + offset})`} /> - ))} + )} </g> ); }; diff --git a/server/sonar-web/src/main/js/components/charts/BubbleChart.js b/server/sonar-web/src/main/js/components/charts/BubbleChart.js index 2d740b2dfe5..a17e603b151 100644 --- a/server/sonar-web/src/main/js/components/charts/BubbleChart.js +++ b/server/sonar-web/src/main/js/components/charts/BubbleChart.js @@ -38,7 +38,7 @@ export class Bubble extends React.PureComponent { props: { color?: string, link?: string, - onClick: ?string => void, + onClick: (?string) => void, r: number, tooltip?: string, x: number, @@ -74,10 +74,20 @@ export class Bubble extends React.PureComponent { ); if (this.props.link && !this.props.onClick) { - circle = <Link to={this.props.link}>{circle}</Link>; + circle = ( + <Link to={this.props.link}> + {circle} + </Link> + ); } - return this.props.tooltip ? <TooltipsContainer><g>{circle}</g></TooltipsContainer> : circle; + return this.props.tooltip + ? <TooltipsContainer> + <g> + {circle} + </g> + </TooltipsContainer> + : circle; } } @@ -101,7 +111,7 @@ export default class BubbleChart extends React.PureComponent { padding: [number, number, number, number], formatXTick: number => string, formatYTick: number => string, - onBubbleClick?: ?string => void, + onBubbleClick?: (?string) => void, xDomain?: [number, number], yDomain?: [number, number] |}; @@ -152,7 +162,11 @@ export default class BubbleChart extends React.PureComponent { return <line key={index} x1={x} x2={x} y1={y1} y2={y2} className="bubble-chart-grid" />; }); - return <g ref="xGrid">{lines}</g>; + return ( + <g ref="xGrid"> + {lines} + </g> + ); } renderYGrid(ticks: Array<number>, xScale: Scale, yScale: Scale) { @@ -167,7 +181,11 @@ export default class BubbleChart extends React.PureComponent { return <line key={index} x1={x1} x2={x2} y1={y} y2={y} className="bubble-chart-grid" />; }); - return <g ref="yGrid">{lines}</g>; + return ( + <g ref="yGrid"> + {lines} + </g> + ); } renderXTicks(xTicks: Array<number>, xScale: Scale, yScale: Scale) { @@ -186,7 +204,11 @@ export default class BubbleChart extends React.PureComponent { ); }); - return <g>{ticks}</g>; + return ( + <g> + {ticks} + </g> + ); } renderYTicks(yTicks: Array<number>, xScale: Scale, yScale: Scale) { @@ -211,7 +233,11 @@ export default class BubbleChart extends React.PureComponent { ); }); - return <g>{ticks}</g>; + return ( + <g> + {ticks} + </g> + ); } renderChart(width: number) { diff --git a/server/sonar-web/src/main/js/components/charts/Timeline.js b/server/sonar-web/src/main/js/components/charts/Timeline.js index 080d08c3b9a..f8c5568df02 100644 --- a/server/sonar-web/src/main/js/components/charts/Timeline.js +++ b/server/sonar-web/src/main/js/components/charts/Timeline.js @@ -114,7 +114,11 @@ const Timeline = React.createClass({ ); }); - return <g>{grid}</g>; + return ( + <g> + {grid} + </g> + ); }, renderTicks(xScale, yScale) { @@ -133,7 +137,11 @@ const Timeline = React.createClass({ ); }); - return <g>{ticks}</g>; + return ( + <g> + {ticks} + </g> + ); }, renderLeak(xScale, yScale) { @@ -191,7 +199,11 @@ const Timeline = React.createClass({ /> ); }); - return <g>{points}</g>; + return ( + <g> + {points} + </g> + ); }, render() { if (!this.state.width || !this.state.height) { diff --git a/server/sonar-web/src/main/js/components/charts/ZoomTimeLine.js b/server/sonar-web/src/main/js/components/charts/ZoomTimeLine.js index 81ad1921a0e..f7693b06485 100644 --- a/server/sonar-web/src/main/js/components/charts/ZoomTimeLine.js +++ b/server/sonar-web/src/main/js/components/charts/ZoomTimeLine.js @@ -159,12 +159,14 @@ export default class ZoomTimeLine extends React.PureComponent { handleZoomUpdate = (xScale: Scale, xArray: Array<number>) => { const xRange = xScale.range(); - const startDate = xArray[0] > xRange[0] && xArray[0] < xRange[xRange.length - 1] - ? xScale.invert(xArray[0]) - : null; - const endDate = xArray[1] > xRange[0] && xArray[1] < xRange[xRange.length - 1] - ? xScale.invert(xArray[1]) - : null; + const startDate = + xArray[0] > xRange[0] && xArray[0] < xRange[xRange.length - 1] + ? xScale.invert(xArray[0]) + : null; + const endDate = + xArray[1] > xRange[0] && xArray[1] < xRange[xRange.length - 1] + ? xScale.invert(xArray[1]) + : null; if (this.props.startDate !== startDate || this.props.endDate !== endDate) { this.props.updateZoom(startDate, endDate); } @@ -227,13 +229,13 @@ export default class ZoomTimeLine extends React.PureComponent { } return ( <g> - {this.props.series.map((serie, idx) => ( + {this.props.series.map((serie, idx) => <path key={`${idx}-${serie.name}`} className={classNames('line-chart-path', 'line-chart-path-' + serie.style)} d={lineGenerator(serie.data)} /> - ))} + )} </g> ); }; @@ -249,27 +251,25 @@ export default class ZoomTimeLine extends React.PureComponent { } return ( <g> - {this.props.series.map((serie, idx) => ( + {this.props.series.map((serie, idx) => <path key={`${idx}-${serie.name}`} className={classNames('line-chart-area', 'line-chart-area-' + serie.style)} d={areaGenerator(serie.data)} /> - ))} + )} </g> ); }; - renderZoomHandle = ( - options: { - xScale: Scale, - xPos: number, - fixedPos: number, - yDim: Array<number>, - xDim: Array<number>, - direction: string - } - ) => ( + renderZoomHandle = (options: { + xScale: Scale, + xPos: number, + fixedPos: number, + yDim: Array<number>, + xDim: Array<number>, + direction: string + }) => <Draggable axis="x" bounds={{ left: options.xDim[0], right: options.xDim[1] }} @@ -294,8 +294,7 @@ export default class ZoomTimeLine extends React.PureComponent { height={options.yDim[0] - options.yDim[1]} width={6} /> - </Draggable> - ); + </Draggable>; renderZoom = (xScale: Scale, yScale: Scale) => { const xRange = xScale.range(); diff --git a/server/sonar-web/src/main/js/components/charts/bar-chart.js b/server/sonar-web/src/main/js/components/charts/bar-chart.js index 95b3fd32dd7..1d89adb5475 100644 --- a/server/sonar-web/src/main/js/components/charts/bar-chart.js +++ b/server/sonar-web/src/main/js/components/charts/bar-chart.js @@ -80,7 +80,11 @@ export const BarChart = React.createClass({ </text> ); }); - return <g>{ticks}</g>; + return ( + <g> + {ticks} + </g> + ); }, renderXValues(xScale, yScale) { @@ -111,7 +115,11 @@ export const BarChart = React.createClass({ </text> ); }); - return <g>{ticks}</g>; + return ( + <g> + {ticks} + </g> + ); }, renderBars(xScale, yScale) { @@ -139,7 +147,11 @@ export const BarChart = React.createClass({ /> ); }); - return <g>{bars}</g>; + return ( + <g> + {bars} + </g> + ); }, render() { diff --git a/server/sonar-web/src/main/js/components/charts/histogram.js b/server/sonar-web/src/main/js/components/charts/histogram.js index de0d72efa04..c7542b3a0de 100644 --- a/server/sonar-web/src/main/js/components/charts/histogram.js +++ b/server/sonar-web/src/main/js/components/charts/histogram.js @@ -80,7 +80,11 @@ export const Histogram = React.createClass({ </text> ); }); - return <g>{ticks}</g>; + return ( + <g> + {ticks} + </g> + ); }, renderValues(xScale, yScale) { @@ -105,7 +109,11 @@ export const Histogram = React.createClass({ </text> ); }); - return <g>{ticks}</g>; + return ( + <g> + {ticks} + </g> + ); }, renderBars(xScale, yScale) { @@ -125,7 +133,11 @@ export const Histogram = React.createClass({ /> ); }); - return <g>{bars}</g>; + return ( + <g> + {bars} + </g> + ); }, render() { diff --git a/server/sonar-web/src/main/js/components/charts/line-chart.js b/server/sonar-web/src/main/js/components/charts/line-chart.js index f230a6ea48f..1b574db1216 100644 --- a/server/sonar-web/src/main/js/components/charts/line-chart.js +++ b/server/sonar-web/src/main/js/components/charts/line-chart.js @@ -83,7 +83,11 @@ export const LineChart = React.createClass({ const y = yScale(point.y); return <circle key={index} className="line-chart-point" r="3" cx={x} cy={y} />; }); - return <g>{points}</g>; + return ( + <g> + {points} + </g> + ); }, renderVerticalGrid(xScale, yScale) { @@ -96,7 +100,11 @@ export const LineChart = React.createClass({ const y2 = yScale(point.y); return <line key={index} className="line-chart-grid" x1={x} x2={x} y1={y1} y2={y2} />; }); - return <g>{lines}</g>; + return ( + <g> + {lines} + </g> + ); }, renderXTicks(xScale, yScale) { @@ -107,9 +115,17 @@ export const LineChart = React.createClass({ const point = this.props.data[index]; const x = xScale(point.x); const y = yScale.range()[0]; - return <text key={index} className="line-chart-tick" x={x} y={y} dy="1.5em">{tick}</text>; + return ( + <text key={index} className="line-chart-tick" x={x} y={y} dy="1.5em"> + {tick} + </text> + ); }); - return <g>{ticks}</g>; + return ( + <g> + {ticks} + </g> + ); }, renderXValues(xScale, yScale) { @@ -120,9 +136,17 @@ export const LineChart = React.createClass({ const point = this.props.data[index]; const x = xScale(point.x); const y = yScale(point.y); - return <text key={index} className="line-chart-tick" x={x} y={y} dy="-1em">{value}</text>; + return ( + <text key={index} className="line-chart-tick" x={x} y={y} dy="-1em"> + {value} + </text> + ); }); - return <g>{ticks}</g>; + return ( + <g> + {ticks} + </g> + ); }, renderLine(xScale, yScale) { diff --git a/server/sonar-web/src/main/js/components/charts/treemap-breadcrumbs.js b/server/sonar-web/src/main/js/components/charts/treemap-breadcrumbs.js index aeaab7525c0..3e23cb080ac 100644 --- a/server/sonar-web/src/main/js/components/charts/treemap-breadcrumbs.js +++ b/server/sonar-web/src/main/js/components/charts/treemap-breadcrumbs.js @@ -54,7 +54,9 @@ export class TreemapBreadcrumbs extends React.PureComponent { <span key={b.key} className="treemap-breadcrumbs-item" title={b.name}> <i className="icon-chevron-right" /> <QualifierIcon qualifier={b.qualifier} /> - <a onClick={this.handleItemClick.bind(this, b)} href="#">{b.name}</a> + <a onClick={this.handleItemClick.bind(this, b)} href="#"> + {b.name} + </a> </span> ); }; diff --git a/server/sonar-web/src/main/js/components/charts/word-cloud.js b/server/sonar-web/src/main/js/components/charts/word-cloud.js index b3ea398c8cc..021b5bcba59 100644 --- a/server/sonar-web/src/main/js/components/charts/word-cloud.js +++ b/server/sonar-web/src/main/js/components/charts/word-cloud.js @@ -71,7 +71,7 @@ export const WordCloud = React.createClass({ const sizeScale = scaleLinear() .domain([0, max(this.props.items, d => d.size)]) .range(this.props.sizeRange); - const words = sortedItems.map((item, index) => ( + const words = sortedItems.map((item, index) => <Word key={index} text={item.text} @@ -79,7 +79,11 @@ export const WordCloud = React.createClass({ link={item.link} tooltip={item.tooltip} /> - )); - return <div className="word-cloud">{words}</div>; + ); + return ( + <div className="word-cloud"> + {words} + </div> + ); } }); diff --git a/server/sonar-web/src/main/js/components/common/BubblePopupHelper.js b/server/sonar-web/src/main/js/components/common/BubblePopupHelper.js index 81923c806ba..9a6b17f561e 100644 --- a/server/sonar-web/src/main/js/components/common/BubblePopupHelper.js +++ b/server/sonar-web/src/main/js/components/common/BubblePopupHelper.js @@ -30,7 +30,7 @@ type Props = { }, popup: Object, position: 'bottomleft' | 'bottomright', - togglePopup: ?boolean => void + togglePopup: (?boolean) => void }; type State = { diff --git a/server/sonar-web/src/main/js/components/common/EmptySearch.js b/server/sonar-web/src/main/js/components/common/EmptySearch.js index 719a2239c90..8a426f4474c 100644 --- a/server/sonar-web/src/main/js/components/common/EmptySearch.js +++ b/server/sonar-web/src/main/js/components/common/EmptySearch.js @@ -22,11 +22,14 @@ import React from 'react'; import { translate } from '../../helpers/l10n'; import './EmptySearch.css'; -const EmptySearch = () => ( +const EmptySearch = () => <div className="empty-search"> - <h3>{translate('no_results_search')}</h3> - <p className="big-spacer-top">{translate('no_results_search.2')}</p> - </div> -); + <h3> + {translate('no_results_search')} + </h3> + <p className="big-spacer-top"> + {translate('no_results_search.2')} + </p> + </div>; export default EmptySearch; diff --git a/server/sonar-web/src/main/js/components/common/FavoriteIcon.js b/server/sonar-web/src/main/js/components/common/FavoriteIcon.js index 98157aa9e5d..5d16a8d4b70 100644 --- a/server/sonar-web/src/main/js/components/common/FavoriteIcon.js +++ b/server/sonar-web/src/main/js/components/common/FavoriteIcon.js @@ -31,7 +31,11 @@ export default function FavoriteIcon(props: Props) { /* eslint max-len: 0 */ return ( <span - className={classNames('icon-star', { 'icon-star-favorite': props.favorite }, props.className)}> + className={classNames( + 'icon-star', + { 'icon-star-favorite': props.favorite }, + props.className + )}> <svg width={props.size} height={props.size} viewBox="0 0 16 16"> <path d="M15.4275,5.77678C15.4275,5.90773 15.3501,6.05059 15.1953,6.20536L11.9542,9.36608L12.7221,13.8304C12.728,13.872 12.731,13.9316 12.731,14.0089C12.731,14.1339 12.6998,14.2396 12.6373,14.3259C12.5748,14.4122 12.484,14.4554 12.3649,14.4554C12.2518,14.4554 12.1328,14.4197 12.0078,14.3482L7.99888,12.2411L3.98995,14.3482C3.85901,14.4197 3.73996,14.4554 3.63281,14.4554C3.50781,14.4554 3.41406,14.4122 3.35156,14.3259C3.28906,14.2396 3.25781,14.1339 3.25781,14.0089C3.25781,13.9732 3.26377,13.9137 3.27567,13.8304L4.04353,9.36608L0.793531,6.20536C0.644719,6.04464 0.570313,5.90178 0.570313,5.77678C0.570313,5.55654 0.736979,5.41964 1.07031,5.36606L5.55245,4.71428L7.56138,0.651781C7.67447,0.407729 7.8203,0.285703 7.99888,0.285703C8.17745,0.285703 8.32328,0.407729 8.43638,0.651781L10.4453,4.71428L14.9274,5.36606C15.2608,5.41964 15.4274,5.55654 15.4274,5.77678L15.4275,5.77678Z" /> </svg> diff --git a/server/sonar-web/src/main/js/components/common/MarkdownTips.js b/server/sonar-web/src/main/js/components/common/MarkdownTips.js index 8c5db3a8fe1..323838e06c5 100644 --- a/server/sonar-web/src/main/js/components/common/MarkdownTips.js +++ b/server/sonar-web/src/main/js/components/common/MarkdownTips.js @@ -35,9 +35,15 @@ export default class MarkdownTips extends React.PureComponent { {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> + <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/MultiSelect.js b/server/sonar-web/src/main/js/components/common/MultiSelect.js index 2c75904d706..5e618e45e1f 100644 --- a/server/sonar-web/src/main/js/components/common/MultiSelect.js +++ b/server/sonar-web/src/main/js/components/common/MultiSelect.js @@ -242,7 +242,7 @@ export default class MultiSelect extends React.PureComponent { </div> <ul className="menu"> {selectedElements.length > 0 && - selectedElements.map(element => ( + selectedElements.map(element => <MultiSelectOption key={element} element={element} @@ -251,9 +251,9 @@ export default class MultiSelect extends React.PureComponent { onSelectChange={this.handleSelectChange} onHover={this.handleElementHover} /> - ))} + )} {unselectedElements.length > 0 && - unselectedElements.map(element => ( + unselectedElements.map(element => <MultiSelectOption key={element} element={element} @@ -261,7 +261,7 @@ export default class MultiSelect extends React.PureComponent { onSelectChange={this.handleSelectChange} onHover={this.handleElementHover} /> - ))} + )} {this.isNewElement(query, this.props) && <MultiSelectOption key={query} diff --git a/server/sonar-web/src/main/js/components/common/MultiSelectOption.js b/server/sonar-web/src/main/js/components/common/MultiSelectOption.js index 02291254fc1..c9fb52632eb 100644 --- a/server/sonar-web/src/main/js/components/common/MultiSelectOption.js +++ b/server/sonar-web/src/main/js/components/common/MultiSelectOption.js @@ -64,7 +64,8 @@ export default class MultiSelectOption extends React.PureComponent { onClick={this.handleSelect} onMouseOver={this.handleHover} onFocus={this.handleHover}> - <i className={className} />{' '}{this.props.custom && '+ '}{this.props.element} + <i className={className} /> {this.props.custom && '+ '} + {this.props.element} </a> </li> ); diff --git a/server/sonar-web/src/main/js/components/common/SelectList.js b/server/sonar-web/src/main/js/components/common/SelectList.js index cbfadc9307a..d4096080c66 100644 --- a/server/sonar-web/src/main/js/components/common/SelectList.js +++ b/server/sonar-web/src/main/js/components/common/SelectList.js @@ -144,7 +144,7 @@ export default class SelectList extends React.PureComponent { }) )} {!hasChildren && - this.props.items.map(item => ( + this.props.items.map(item => <SelectListItem active={this.state.active} item={item} @@ -152,7 +152,7 @@ export default class SelectList extends React.PureComponent { onHover={this.handleHover} onSelect={this.handleSelect} /> - ))} + )} </ul> ); } diff --git a/server/sonar-web/src/main/js/components/common/UpgradeOrganizationBox.js b/server/sonar-web/src/main/js/components/common/UpgradeOrganizationBox.js index 0a521fd2391..eceab041969 100644 --- a/server/sonar-web/src/main/js/components/common/UpgradeOrganizationBox.js +++ b/server/sonar-web/src/main/js/components/common/UpgradeOrganizationBox.js @@ -30,9 +30,13 @@ type Props = { export default function UpgradeOrganizationBox(props: Props) { return ( <div className="boxed-group boxed-group-inner upgrade-organization-box"> - <h3 className="spacer-bottom">{translate('billing.upgrade_box.header')}</h3> + <h3 className="spacer-bottom"> + {translate('billing.upgrade_box.header')} + </h3> - <p>{translate('billing.upgrade_box.text')}</p> + <p> + {translate('billing.upgrade_box.text')} + </p> {hasMessage('billing.upgrade_box.button') && <div className="big-spacer-top"> diff --git a/server/sonar-web/src/main/js/components/common/VisibilitySelector.js b/server/sonar-web/src/main/js/components/common/VisibilitySelector.js index 08f204e48ab..dd35ad56609 100644 --- a/server/sonar-web/src/main/js/components/common/VisibilitySelector.js +++ b/server/sonar-web/src/main/js/components/common/VisibilitySelector.js @@ -57,7 +57,9 @@ export default class VisibilitySelector extends React.PureComponent { 'is-checked': this.props.visibility === 'public' })} /> - <span className="spacer-left">{translate('visibility.public')}</span> + <span className="spacer-left"> + {translate('visibility.public')} + </span> </a> {this.props.canTurnToPrivate @@ -71,7 +73,9 @@ export default class VisibilitySelector extends React.PureComponent { 'is-checked': this.props.visibility === 'private' })} /> - <span className="spacer-left">{translate('visibility.private')}</span> + <span className="spacer-left"> + {translate('visibility.private')} + </span> </a> : <span className="huge-spacer-left text-muted cursor-not-allowed" @@ -81,7 +85,9 @@ export default class VisibilitySelector extends React.PureComponent { 'is-checked': this.props.visibility === 'private' })} /> - <span className="spacer-left">{translate('visibility.private')}</span> + <span className="spacer-left"> + {translate('visibility.private')} + </span> </span>} </div> ); diff --git a/server/sonar-web/src/main/js/components/common/__tests__/BubblePopup-test.js b/server/sonar-web/src/main/js/components/common/__tests__/BubblePopup-test.js index add930864e5..f9b67ca38b3 100644 --- a/server/sonar-web/src/main/js/components/common/__tests__/BubblePopup-test.js +++ b/server/sonar-web/src/main/js/components/common/__tests__/BubblePopup-test.js @@ -27,6 +27,10 @@ const props = { }; it('should render popup', () => { - const popup = shallow(<BubblePopup {...props}><span>test</span></BubblePopup>); + const popup = shallow( + <BubblePopup {...props}> + <span>test</span> + </BubblePopup> + ); expect(popup).toMatchSnapshot(); }); diff --git a/server/sonar-web/src/main/js/components/common/__tests__/DeferredSpinner-test.js b/server/sonar-web/src/main/js/components/common/__tests__/DeferredSpinner-test.js index 62d755cc949..560c705c4cb 100644 --- a/server/sonar-web/src/main/js/components/common/__tests__/DeferredSpinner-test.js +++ b/server/sonar-web/src/main/js/components/common/__tests__/DeferredSpinner-test.js @@ -38,14 +38,22 @@ it('add custom className', () => { }); it('renders children before timeout', () => { - const spinner = mount(<DeferredSpinner><div>foo</div></DeferredSpinner>); + const spinner = mount( + <DeferredSpinner> + <div>foo</div> + </DeferredSpinner> + ); expect(spinner).toMatchSnapshot(); jest.runAllTimers(); expect(spinner).toMatchSnapshot(); }); it('is controlled by loading prop', () => { - const spinner = mount(<DeferredSpinner loading={false}><div>foo</div></DeferredSpinner>); + const spinner = mount( + <DeferredSpinner loading={false}> + <div>foo</div> + </DeferredSpinner> + ); expect(spinner).toMatchSnapshot(); spinner.setProps({ loading: true }); expect(spinner).toMatchSnapshot(); diff --git a/server/sonar-web/src/main/js/components/common/__tests__/SelectList-test.js b/server/sonar-web/src/main/js/components/common/__tests__/SelectList-test.js index 58afbecad26..817f852d023 100644 --- a/server/sonar-web/src/main/js/components/common/__tests__/SelectList-test.js +++ b/server/sonar-web/src/main/js/components/common/__tests__/SelectList-test.js @@ -42,11 +42,11 @@ it('should render correctly with children', () => { expect( shallow( <SelectList items={items} currentItem="seconditem" onSelect={onSelect}> - {items.map(item => ( + {items.map(item => <SelectListItem key={item} item={item}> <i className="myicon" />item </SelectListItem> - ))} + )} </SelectList> ) ).toMatchSnapshot(); @@ -57,11 +57,11 @@ it('should correclty handle user actions', () => { const items = ['item', 'seconditem', 'third']; const list = mount( <SelectList items={items} currentItem="seconditem" onSelect={onSelect}> - {items.map(item => ( + {items.map(item => <SelectListItem key={item} item={item}> <i className="myicon" />item </SelectListItem> - ))} + )} </SelectList> ); keydown(40); diff --git a/server/sonar-web/src/main/js/components/common/__tests__/SelectListItem-test.js b/server/sonar-web/src/main/js/components/common/__tests__/SelectListItem-test.js index 235be5bfae6..6e839b45e6e 100644 --- a/server/sonar-web/src/main/js/components/common/__tests__/SelectListItem-test.js +++ b/server/sonar-web/src/main/js/components/common/__tests__/SelectListItem-test.js @@ -29,7 +29,8 @@ it('should render correctly with children', () => { expect( shallow( <SelectListItem active="myitem" item="seconditem"> - <i className="custom-icon" /><p>seconditem</p> + <i className="custom-icon" /> + <p>seconditem</p> </SelectListItem> ) ).toMatchSnapshot(); diff --git a/server/sonar-web/src/main/js/components/controls/RadioToggle.js b/server/sonar-web/src/main/js/components/controls/RadioToggle.js index 8725c67a1b3..83f36d2d846 100644 --- a/server/sonar-web/src/main/js/components/controls/RadioToggle.js +++ b/server/sonar-web/src/main/js/components/controls/RadioToggle.js @@ -61,7 +61,9 @@ export default class RadioToggle extends React.PureComponent { onChange={this.handleChange} /> - <label htmlFor={htmlId}>{option.label}</label> + <label htmlFor={htmlId}> + {option.label} + </label> </li> ); } diff --git a/server/sonar-web/src/main/js/components/controls/styles.css b/server/sonar-web/src/main/js/components/controls/styles.css index b67f7f5eb71..3b4e315805b 100644 --- a/server/sonar-web/src/main/js/components/controls/styles.css +++ b/server/sonar-web/src/main/js/components/controls/styles.css @@ -55,7 +55,7 @@ border-radius: 22px; box-sizing: border-box; background-color: #f6f6f6; - transition: transform 0.3s cubic-bezier(.87,-.41,.19,1.44), border 0.3s ease; + transition: transform 0.3s cubic-bezier(.87, -.41, .19, 1.44), border 0.3s ease; } .boolean-toggle-on { diff --git a/server/sonar-web/src/main/js/components/issue/IssueView.js b/server/sonar-web/src/main/js/components/issue/IssueView.js index a22fdfc432a..edcd1e32a42 100644 --- a/server/sonar-web/src/main/js/components/issue/IssueView.js +++ b/server/sonar-web/src/main/js/components/issue/IssueView.js @@ -102,14 +102,14 @@ export default class IssueView extends React.PureComponent { {issue.comments && issue.comments.length > 0 && <div className="issue-comments"> - {issue.comments.map(comment => ( + {issue.comments.map(comment => <IssueCommentLine comment={comment} key={comment.key} onEdit={this.editComment} onDelete={this.deleteComment} /> - ))} + )} </div>} <a className="issue-navigate js-issue-navigate"> <i className="issue-navigate-to-left icon-chevron-left" /> diff --git a/server/sonar-web/src/main/js/components/issue/components/IssueChangelog.js b/server/sonar-web/src/main/js/components/issue/components/IssueChangelog.js index d3a91a9dc18..8c582920d3e 100644 --- a/server/sonar-web/src/main/js/components/issue/components/IssueChangelog.js +++ b/server/sonar-web/src/main/js/components/issue/components/IssueChangelog.js @@ -56,7 +56,9 @@ export default class IssueChangelog extends React.PureComponent { className="button-link issue-action issue-action-with-options js-issue-show-changelog" title={momentCreationDate.format('LLL')} onClick={this.handleClick}> - <span className="issue-meta-label">{momentCreationDate.fromNow()}</span> + <span className="issue-meta-label"> + {momentCreationDate.fromNow()} + </span> <i className="icon-dropdown little-spacer-left" /> </button> </BubblePopupHelper> diff --git a/server/sonar-web/src/main/js/components/issue/components/IssueChangelogDiff.js b/server/sonar-web/src/main/js/components/issue/components/IssueChangelogDiff.js index 4006a140956..bfe753329e3 100644 --- a/server/sonar-web/src/main/js/components/issue/components/IssueChangelogDiff.js +++ b/server/sonar-web/src/main/js/components/issue/components/IssueChangelogDiff.js @@ -67,5 +67,9 @@ export default function IssueChangelogDiff(props: { diff: ChangelogDiff }) { } message += ` (${translateWithParameters('issue.changelog.was', oldValue)})`; } - return <p>{message}</p>; + return ( + <p> + {message} + </p> + ); } diff --git a/server/sonar-web/src/main/js/components/issue/components/IssueCommentLine.js b/server/sonar-web/src/main/js/components/issue/components/IssueCommentLine.js index aa37ea0873b..1ad62e60eb6 100644 --- a/server/sonar-web/src/main/js/components/issue/components/IssueCommentLine.js +++ b/server/sonar-web/src/main/js/components/issue/components/IssueCommentLine.js @@ -84,7 +84,9 @@ export default class IssueCommentLine extends React.PureComponent { className="issue-comment-text markdown" dangerouslySetInnerHTML={{ __html: comment.htmlText }} /> - <div className="issue-comment-age">({moment(comment.createdAt).fromNow()})</div> + <div className="issue-comment-age"> + ({moment(comment.createdAt).fromNow()}) + </div> <div className="issue-comment-actions"> {comment.updatable && <BubblePopupHelper diff --git a/server/sonar-web/src/main/js/components/issue/components/IssueTitleBar.js b/server/sonar-web/src/main/js/components/issue/components/IssueTitleBar.js index 507328bcb2c..bca586eadd2 100644 --- a/server/sonar-web/src/main/js/components/issue/components/IssueTitleBar.js +++ b/server/sonar-web/src/main/js/components/issue/components/IssueTitleBar.js @@ -55,7 +55,9 @@ export default function IssueTitleBar(props: Props) { formatMeasure(locationsCount) )} placement="left"> - <LocationIndex>{locationsCount}</LocationIndex> + <LocationIndex> + {locationsCount} + </LocationIndex> </Tooltip> ); diff --git a/server/sonar-web/src/main/js/components/issue/components/SimilarIssuesFilter.js b/server/sonar-web/src/main/js/components/issue/components/SimilarIssuesFilter.js index d49abfa8939..f7086c8018d 100644 --- a/server/sonar-web/src/main/js/components/issue/components/SimilarIssuesFilter.js +++ b/server/sonar-web/src/main/js/components/issue/components/SimilarIssuesFilter.js @@ -60,8 +60,7 @@ export default class SimilarIssuesFilter extends React.PureComponent { className="js-issue-filter button-link issue-action issue-action-with-options" aria-label={translate('issue.filter_similar_issues')} onClick={this.handleClick}> - <i className="icon-filter icon-half-transparent" />{' '} - <i className="icon-dropdown" /> + <i className="icon-filter icon-half-transparent" /> <i className="icon-dropdown" /> </button> </BubblePopupHelper> ); diff --git a/server/sonar-web/src/main/js/components/issue/popups/ChangelogPopup.js b/server/sonar-web/src/main/js/components/issue/popups/ChangelogPopup.js index 7551e9869db..735411774cf 100644 --- a/server/sonar-web/src/main/js/components/issue/popups/ChangelogPopup.js +++ b/server/sonar-web/src/main/js/components/issue/popups/ChangelogPopup.js @@ -87,7 +87,7 @@ export default class ChangelogPopup extends React.PureComponent { </td> </tr> - {this.state.changelogs.map((item, idx) => ( + {this.state.changelogs.map((item, idx) => <tr key={idx}> <td className="thin text-left text-top nowrap"> {moment(item.creationDate).format('LLL')} @@ -106,7 +106,7 @@ export default class ChangelogPopup extends React.PureComponent { {item.diffs.map(diff => <IssueChangelogDiff key={diff.key} diff={diff} />)} </td> </tr> - ))} + )} </tbody> </table> </div> diff --git a/server/sonar-web/src/main/js/components/issue/popups/CommentDeletePopup.js b/server/sonar-web/src/main/js/components/issue/popups/CommentDeletePopup.js index 3e06c95c07d..23a2dc4c154 100644 --- a/server/sonar-web/src/main/js/components/issue/popups/CommentDeletePopup.js +++ b/server/sonar-web/src/main/js/components/issue/popups/CommentDeletePopup.js @@ -31,8 +31,12 @@ export default function CommentDeletePopup(props: Props) { return ( <BubblePopup position={props.popupPosition} customClass="bubble-popup-bottom-right"> <div className="text-right"> - <div className="spacer-bottom">{translate('issue.comment.delete_confirm_message')}</div> - <button className="button-red" onClick={props.onDelete}>{translate('delete')}</button> + <div className="spacer-bottom"> + {translate('issue.comment.delete_confirm_message')} + </div> + <button className="button-red" onClick={props.onDelete}> + {translate('delete')} + </button> </div> </BubblePopup> ); diff --git a/server/sonar-web/src/main/js/components/issue/popups/SetAssigneePopup.js b/server/sonar-web/src/main/js/components/issue/popups/SetAssigneePopup.js index 9a4243e65ad..7a6bdc6107d 100644 --- a/server/sonar-web/src/main/js/components/issue/popups/SetAssigneePopup.js +++ b/server/sonar-web/src/main/js/components/issue/popups/SetAssigneePopup.js @@ -139,7 +139,7 @@ export default class SetAssigneePopup extends React.PureComponent { items={map(this.state.users, 'login')} currentItem={this.state.currentUser} onSelect={this.props.onSelect}> - {this.state.users.map(user => ( + {this.state.users.map(user => <SelectListItem key={user.login} item={user.login}> {!!user.login && <Avatar @@ -155,7 +155,7 @@ export default class SetAssigneePopup extends React.PureComponent { {user.name} </span> </SelectListItem> - ))} + )} </SelectList> </div> </BubblePopup> diff --git a/server/sonar-web/src/main/js/components/issue/popups/SetIssueTagsPopup.js b/server/sonar-web/src/main/js/components/issue/popups/SetIssueTagsPopup.js index ca155303323..6a5a8150b23 100644 --- a/server/sonar-web/src/main/js/components/issue/popups/SetIssueTagsPopup.js +++ b/server/sonar-web/src/main/js/components/issue/popups/SetIssueTagsPopup.js @@ -27,7 +27,7 @@ type Props = { popupPosition?: {}, onFail: Error => void, selectedTags: Array<string>, - setTags: Array<string> => void + setTags: (Array<string>) => void }; type State = { diff --git a/server/sonar-web/src/main/js/components/issue/popups/SetSeverityPopup.js b/server/sonar-web/src/main/js/components/issue/popups/SetSeverityPopup.js index be89f2120b9..bc5969532be 100644 --- a/server/sonar-web/src/main/js/components/issue/popups/SetSeverityPopup.js +++ b/server/sonar-web/src/main/js/components/issue/popups/SetSeverityPopup.js @@ -46,12 +46,12 @@ export default class SetSeverityPopup extends React.PureComponent { items={SEVERITY} currentItem={this.props.issue.severity} onSelect={this.props.onSelect}> - {SEVERITY.map(severity => ( + {SEVERITY.map(severity => <SelectListItem key={severity} item={severity}> <SeverityIcon className="little-spacer-right" severity={severity} /> {translate('severity', severity)} </SelectListItem> - ))} + )} </SelectList> </BubblePopup> ); diff --git a/server/sonar-web/src/main/js/components/issue/popups/SetTypePopup.js b/server/sonar-web/src/main/js/components/issue/popups/SetTypePopup.js index 1f1864307a7..64e780fdbbe 100644 --- a/server/sonar-web/src/main/js/components/issue/popups/SetTypePopup.js +++ b/server/sonar-web/src/main/js/components/issue/popups/SetTypePopup.js @@ -46,12 +46,12 @@ export default class SetTypePopup extends React.PureComponent { items={TYPES} currentItem={this.props.issue.type} onSelect={this.props.onSelect}> - {TYPES.map(type => ( + {TYPES.map(type => <SelectListItem key={type} item={type}> <IssueTypeIcon className="little-spacer-right" query={type} /> {translate('issue.type', type)} </SelectListItem> - ))} + )} </SelectList> </BubblePopup> ); diff --git a/server/sonar-web/src/main/js/components/issue/popups/SimilarIssuesPopup.js b/server/sonar-web/src/main/js/components/issue/popups/SimilarIssuesPopup.js index 3281838da05..e6dddbc21ff 100644 --- a/server/sonar-web/src/main/js/components/issue/popups/SimilarIssuesPopup.js +++ b/server/sonar-web/src/main/js/components/issue/popups/SimilarIssuesPopup.js @@ -66,7 +66,9 @@ export default class SimilarIssuesPopup extends React.PureComponent { position={this.props.popupPosition} customClass="bubble-popup-menu bubble-popup-bottom-right"> <header className="menu-search"> - <h6>{translate('issue.filter_similar_issues')}</h6> + <h6> + {translate('issue.filter_similar_issues')} + </h6> </header> <SelectList currentItem={items[0]} items={items} onSelect={this.handleSelect}> @@ -109,12 +111,12 @@ export default class SimilarIssuesPopup extends React.PureComponent { </SelectListItem> {issue.tags != null && - issue.tags.map(tag => ( + issue.tags.map(tag => <SelectListItem key={`tag###${tag}`} item={`tag###${tag}`}> <i className="icon-tags icon-half-transparent little-spacer-right" /> {tag} </SelectListItem> - ))} + )} <SelectListItem item="project"> <QualifierIcon className="little-spacer-right" qualifier="TRK" /> diff --git a/server/sonar-web/src/main/js/components/select-list/footer.js b/server/sonar-web/src/main/js/components/select-list/footer.js index 01c050650b9..3088c2f2337 100644 --- a/server/sonar-web/src/main/js/components/select-list/footer.js +++ b/server/sonar-web/src/main/js/components/select-list/footer.js @@ -36,7 +36,11 @@ export default class Footer extends React.PureComponent { if (!hasMore) { return null; } - return <a onClick={this.loadMore} className="spacer-left" href="#">show more</a>; + return ( + <a onClick={this.loadMore} className="spacer-left" href="#"> + show more + </a> + ); }; render() { diff --git a/server/sonar-web/src/main/js/components/select-list/list.js b/server/sonar-web/src/main/js/components/select-list/list.js index 22462d40ee5..6a701f51eb4 100644 --- a/server/sonar-web/src/main/js/components/select-list/list.js +++ b/server/sonar-web/src/main/js/components/select-list/list.js @@ -34,6 +34,10 @@ export default class List extends React.PureComponent { const key = this.props.getItemKey(item); return <Item key={key} {...this.props} item={item} />; }); - return <ul>{renderedItems}</ul>; + return ( + <ul> + {renderedItems} + </ul> + ); } } diff --git a/server/sonar-web/src/main/js/components/shared/StatusHelper.js b/server/sonar-web/src/main/js/components/shared/StatusHelper.js index 07d7b81386b..a355348f720 100644 --- a/server/sonar-web/src/main/js/components/shared/StatusHelper.js +++ b/server/sonar-web/src/main/js/components/shared/StatusHelper.js @@ -22,9 +22,11 @@ import React from 'react'; import StatusIcon from './StatusIcon'; import { translate } from '../../helpers/l10n'; -export default function StatusHelper( - props: { resolution?: string, status: string, className?: string } -) { +export default function StatusHelper(props: { + resolution?: string, + status: string, + className?: string +}) { const resolution = props.resolution != null && ` (${translate('issue.resolution', props.resolution)})`; return ( diff --git a/server/sonar-web/src/main/js/components/shared/TypeHelper.js b/server/sonar-web/src/main/js/components/shared/TypeHelper.js index f984e4f4e66..030337e5242 100644 --- a/server/sonar-web/src/main/js/components/shared/TypeHelper.js +++ b/server/sonar-web/src/main/js/components/shared/TypeHelper.js @@ -26,11 +26,10 @@ type Props = { type: string }; -const TypeHelper = (props: Props) => ( +const TypeHelper = (props: Props) => <span> <IssueTypeIcon className="little-spacer-right" query={props.type} /> {translate('issue.type', props.type)} - </span> -); + </span>; export default TypeHelper; diff --git a/server/sonar-web/src/main/js/components/shared/drilldown-link.js b/server/sonar-web/src/main/js/components/shared/drilldown-link.js index 1a0febed8e0..55b64727a8a 100644 --- a/server/sonar-web/src/main/js/components/shared/drilldown-link.js +++ b/server/sonar-web/src/main/js/components/shared/drilldown-link.js @@ -122,7 +122,11 @@ export class DrilldownLink extends React.PureComponent { renderIssuesLink = () => { const url = getComponentIssuesUrl(this.props.component, this.propsToIssueParams()); - return <Link to={url} className={this.props.className}>{this.props.children}</Link>; + return ( + <Link to={url} className={this.props.className}> + {this.props.children} + </Link> + ); }; render() { @@ -131,6 +135,10 @@ export class DrilldownLink extends React.PureComponent { } const url = getComponentDrilldownUrl(this.props.component, this.props.metric); - return <Link to={url} className={this.props.className}>{this.props.children}</Link>; + return ( + <Link to={url} className={this.props.className}> + {this.props.children} + </Link> + ); } } diff --git a/server/sonar-web/src/main/js/components/tags/TagsList.js b/server/sonar-web/src/main/js/components/tags/TagsList.js index 08a3d4c91b1..2c568cee8f6 100644 --- a/server/sonar-web/src/main/js/components/tags/TagsList.js +++ b/server/sonar-web/src/main/js/components/tags/TagsList.js @@ -43,7 +43,9 @@ export default class TagsList extends React.PureComponent { return ( <span className={tagListClass} title={tags.join(', ')}> <i className="icon-tags icon-half-transparent" /> - <span className={spanClass}>{tags.join(', ')}</span> + <span className={spanClass}> + {tags.join(', ')} + </span> {allowUpdate && <i className="icon-dropdown" />} </span> ); diff --git a/server/sonar-web/src/main/js/components/ui/IssueTypeIcon.js b/server/sonar-web/src/main/js/components/ui/IssueTypeIcon.js index cdd7295598f..8fce48ba236 100644 --- a/server/sonar-web/src/main/js/components/ui/IssueTypeIcon.js +++ b/server/sonar-web/src/main/js/components/ui/IssueTypeIcon.js @@ -55,6 +55,10 @@ export default class IssueTypeIcon extends React.PureComponent { return null; } - return this.props.className ? <span className={this.props.className}>{icon}</span> : icon; + return this.props.className + ? <span className={this.props.className}> + {icon} + </span> + : icon; } } diff --git a/server/sonar-web/src/main/js/components/ui/Level.js b/server/sonar-web/src/main/js/components/ui/Level.js index 35648bfdc1b..66a2bbe5025 100644 --- a/server/sonar-web/src/main/js/components/ui/Level.js +++ b/server/sonar-web/src/main/js/components/ui/Level.js @@ -40,6 +40,10 @@ export default class Level extends React.PureComponent { 'level-small': this.props.small, 'level-muted': this.props.muted }); - return <span className={className}>{formatted}</span>; + return ( + <span className={className}> + {formatted} + </span> + ); } } diff --git a/server/sonar-web/src/main/js/components/ui/OrganizationLink.js b/server/sonar-web/src/main/js/components/ui/OrganizationLink.js index 9e2c14306e9..1126da0a70c 100644 --- a/server/sonar-web/src/main/js/components/ui/OrganizationLink.js +++ b/server/sonar-web/src/main/js/components/ui/OrganizationLink.js @@ -21,15 +21,17 @@ import React from 'react'; import { Link } from 'react-router'; -export default function OrganizationLink( - props: { - children?: React.Element<*>, - organization: { - key: string - } +export default function OrganizationLink(props: { + children?: React.Element<*>, + organization: { + key: string } -) { +}) { const { children, organization, ...other } = props; - return <Link to={`/organizations/${organization.key}`} {...other}>{children}</Link>; + return ( + <Link to={`/organizations/${organization.key}`} {...other}> + {children} + </Link> + ); } diff --git a/server/sonar-web/src/main/js/components/ui/Rating.js b/server/sonar-web/src/main/js/components/ui/Rating.js index eb6a35dcb32..65a56c46999 100644 --- a/server/sonar-web/src/main/js/components/ui/Rating.js +++ b/server/sonar-web/src/main/js/components/ui/Rating.js @@ -52,6 +52,10 @@ export default class Rating extends React.PureComponent { }, this.props.className ); - return <span className={className}>{formatted}</span>; + return ( + <span className={className}> + {formatted} + </span> + ); } } diff --git a/server/sonar-web/src/main/js/components/ui/SizeRating.js b/server/sonar-web/src/main/js/components/ui/SizeRating.js index db1a15f2a1a..545db164fc2 100644 --- a/server/sonar-web/src/main/js/components/ui/SizeRating.js +++ b/server/sonar-web/src/main/js/components/ui/SizeRating.js @@ -60,6 +60,10 @@ export default class SizeRating extends React.PureComponent { 'size-rating-muted': this.props.muted }); - return <div className={className}>{letter}</div>; + return ( + <div className={className}> + {letter} + </div> + ); } } diff --git a/server/sonar-web/src/main/js/components/widgets/barchart.js b/server/sonar-web/src/main/js/components/widgets/barchart.js index 99f2695b599..670068ed228 100644 --- a/server/sonar-web/src/main/js/components/widgets/barchart.js +++ b/server/sonar-web/src/main/js/components/widgets/barchart.js @@ -104,9 +104,8 @@ $.fn.barchart = function(data) { }) .attr('title', (d, i) => { const beginning = moment(d.val); - const ending = i < data.length - 1 - ? moment(data[i + 1].val).subtract(1, 'days') - : options.endDate; + const ending = + i < data.length - 1 ? moment(data[i + 1].val).subtract(1, 'days') : options.endDate; if (ending) { const isSameDay = ending.diff(beginning, 'days') <= 1; return ( diff --git a/server/sonar-web/src/main/js/helpers/latinize.js b/server/sonar-web/src/main/js/helpers/latinize.js index 05c2d242541..18b5cfe8de1 100644 --- a/server/sonar-web/src/main/js/helpers/latinize.js +++ b/server/sonar-web/src/main/js/helpers/latinize.js @@ -26,7 +26,8 @@ const defaultDiacriticsRemovalap = [ { base: 'A', - letters: '\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F' + letters: + '\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F' }, { base: 'AA', @@ -74,7 +75,8 @@ const defaultDiacriticsRemovalap = [ }, { base: 'E', - letters: '\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E' + letters: + '\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E' }, { base: 'F', @@ -82,7 +84,8 @@ const defaultDiacriticsRemovalap = [ }, { base: 'G', - letters: '\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E' + letters: + '\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E' }, { base: 'H', @@ -90,7 +93,8 @@ const defaultDiacriticsRemovalap = [ }, { base: 'I', - letters: '\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197' + letters: + '\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197' }, { base: 'J', @@ -102,7 +106,8 @@ const defaultDiacriticsRemovalap = [ }, { base: 'L', - letters: '\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780' + letters: + '\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780' }, { base: 'LJ', @@ -118,7 +123,8 @@ const defaultDiacriticsRemovalap = [ }, { base: 'N', - letters: '\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4' + letters: + '\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4' }, { base: 'NJ', @@ -130,7 +136,8 @@ const defaultDiacriticsRemovalap = [ }, { base: 'O', - letters: '\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C' + letters: + '\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C' }, { base: 'OI', @@ -162,15 +169,18 @@ const defaultDiacriticsRemovalap = [ }, { base: 'R', - letters: '\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782' + letters: + '\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782' }, { base: 'S', - letters: '\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784' + letters: + '\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784' }, { base: 'T', - letters: '\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786' + letters: + '\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786' }, { base: 'TZ', @@ -178,7 +188,8 @@ const defaultDiacriticsRemovalap = [ }, { base: 'U', - letters: '\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244' + letters: + '\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244' }, { base: 'V', @@ -198,7 +209,8 @@ const defaultDiacriticsRemovalap = [ }, { base: 'Y', - letters: '\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE' + letters: + '\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE' }, { base: 'Z', @@ -206,7 +218,8 @@ const defaultDiacriticsRemovalap = [ }, { base: 'a', - letters: '\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250' + letters: + '\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250' }, { base: 'aa', @@ -250,7 +263,8 @@ const defaultDiacriticsRemovalap = [ }, { base: 'e', - letters: '\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD' + letters: + '\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD' }, { base: 'f', @@ -258,11 +272,13 @@ const defaultDiacriticsRemovalap = [ }, { base: 'g', - letters: '\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F' + letters: + '\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F' }, { base: 'h', - letters: '\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265' + letters: + '\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265' }, { base: 'hv', @@ -270,7 +286,8 @@ const defaultDiacriticsRemovalap = [ }, { base: 'i', - letters: '\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131' + letters: + '\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131' }, { base: 'j', @@ -282,7 +299,8 @@ const defaultDiacriticsRemovalap = [ }, { base: 'l', - letters: '\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747' + letters: + '\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747' }, { base: 'lj', @@ -294,7 +312,8 @@ const defaultDiacriticsRemovalap = [ }, { base: 'n', - letters: '\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5' + letters: + '\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5' }, { base: 'nj', @@ -302,7 +321,8 @@ const defaultDiacriticsRemovalap = [ }, { base: 'o', - letters: '\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275' + letters: + '\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275' }, { base: 'oi', @@ -326,15 +346,18 @@ const defaultDiacriticsRemovalap = [ }, { base: 'r', - letters: '\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783' + letters: + '\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783' }, { base: 's', - letters: '\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B' + letters: + '\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B' }, { base: 't', - letters: '\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787' + letters: + '\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787' }, { base: 'tz', @@ -342,7 +365,8 @@ const defaultDiacriticsRemovalap = [ }, { base: 'u', - letters: '\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289' + letters: + '\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289' }, { base: 'v', @@ -362,7 +386,8 @@ const defaultDiacriticsRemovalap = [ }, { base: 'y', - letters: '\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF' + letters: + '\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF' }, { base: 'z', diff --git a/server/sonar-web/src/main/js/helpers/query.js b/server/sonar-web/src/main/js/helpers/query.js index 5f4a28ec12c..a8be9843cfc 100644 --- a/server/sonar-web/src/main/js/helpers/query.js +++ b/server/sonar-web/src/main/js/helpers/query.js @@ -44,16 +44,16 @@ export const queriesEqual = <T>(a: T, b: T): boolean => { return keysA.every( key => - (Array.isArray(a[key]) && Array.isArray(b[key]) + Array.isArray(a[key]) && Array.isArray(b[key]) ? arraysEqual(a[key], b[key]) - : a[key] === b[key]) + : a[key] === b[key] ); }; export const cleanQuery = (query: { [string]: ?string }): RawQuery => omitBy(query, isNil); export const parseAsBoolean = (value: ?string, defaultValue: boolean = true): boolean => - (value === 'false' ? false : value === 'true' ? true : defaultValue); + value === 'false' ? false : value === 'true' ? true : defaultValue; export const parseAsDate = (value: ?string): ?Date => { const date = moment(value); @@ -63,12 +63,12 @@ export const parseAsDate = (value: ?string): ?Date => { }; export const parseAsFacetMode = (facetMode: string) => - (facetMode === 'debt' || facetMode === 'effort' ? 'effort' : 'count'); + facetMode === 'debt' || facetMode === 'effort' ? 'effort' : 'count'; export const parseAsString = (value: ?string): string => value || ''; export const parseAsArray = <T>(value: ?string, itemParser: string => T): Array<T> => - (value ? value.split(',').map(itemParser) : []); + value ? value.split(',').map(itemParser) : []; export const serializeDate = (value: ?Date): ?string => { if (value != null && value.toISOString) { @@ -79,4 +79,4 @@ export const serializeDate = (value: ?Date): ?string => { export const serializeString = (value: string): ?string => value || undefined; export const serializeStringArray = (value: ?Array<string>): ?string => - (value && value.length ? value.join() : undefined); + value && value.length ? value.join() : undefined; diff --git a/server/sonar-web/src/main/js/helpers/scrolling.js b/server/sonar-web/src/main/js/helpers/scrolling.js index 8f23cf7f327..2530db103eb 100644 --- a/server/sonar-web/src/main/js/helpers/scrolling.js +++ b/server/sonar-web/src/main/js/helpers/scrolling.js @@ -77,9 +77,8 @@ export const scrollToElement = ( const scrollTop = getScrollPosition(parent); - const height: number = parent === window - ? window.innerHeight - : parent.getBoundingClientRect().height; + const height: number = + parent === window ? window.innerHeight : parent.getBoundingClientRect().height; const parentTop = parent === window ? 0 : parent.getBoundingClientRect().top; diff --git a/server/sonar-web/src/main/js/store/globalMessages/duck.js b/server/sonar-web/src/main/js/store/globalMessages/duck.js index b8a1c1fd3cc..b74b8efdfaa 100644 --- a/server/sonar-web/src/main/js/store/globalMessages/duck.js +++ b/server/sonar-web/src/main/js/store/globalMessages/duck.js @@ -84,7 +84,8 @@ const globalMessages = (state: State = [], action: Action = {}) => { return [ { id: uniqueId('global-message-'), - message: 'You are not authorized to access this page. ' + + message: + 'You are not authorized to access this page. ' + 'Please log in with more privileges and try again.', level: ERROR } diff --git a/server/sonar-web/src/main/js/store/organizationsMembers/reducer.js b/server/sonar-web/src/main/js/store/organizationsMembers/reducer.js index 3a2e1410703..1a946656fc4 100644 --- a/server/sonar-web/src/main/js/store/organizationsMembers/reducer.js +++ b/server/sonar-web/src/main/js/store/organizationsMembers/reducer.js @@ -28,7 +28,7 @@ export const getOrganizationMembersLogins = (state, organization) => { }; export const getOrganizationMembersState = (state, organization) => - (organization && state[organization] ? state[organization] : {}); + organization && state[organization] ? state[organization] : {}; const organizationMembers = (state = {}, action = {}) => { const members = state.members || []; diff --git a/server/sonar-web/src/main/less/components/alerts.less b/server/sonar-web/src/main/less/components/alerts.less index 2a2010771ea..fb874b2ecab 100644 --- a/server/sonar-web/src/main/less/components/alerts.less +++ b/server/sonar-web/src/main/less/components/alerts.less @@ -20,7 +20,6 @@ @import (reference) "../variables"; @import (reference) "../mixins"; - // Base .alert { @@ -30,14 +29,15 @@ border: 1px solid @secondFontColor; } -.alert:empty { display: none; } +.alert:empty { + display: none; +} .alert-inline { display: inline-block; vertical-align: middle; } - // Color .alert-emphasis-variant(@color, @background-color, @border-color) { @@ -45,9 +45,15 @@ background-color: @background-color; color: @color; } -.alert-danger { .alert-emphasis-variant(#a94442, #f2dede, #ebccd1); } -.alert-warning { .alert-emphasis-variant(#8a6d3b, #fcf8e3, #faebcc); } -.alert-info { .alert-emphasis-variant(#31708f, #d9edf7, #bce8f1); } -.alert-success { .alert-emphasis-variant(#3c763d, #dff0d8, #d6e9c6); } - - +.alert-danger { + .alert-emphasis-variant(#a94442, #f2dede, #ebccd1); +} +.alert-warning { + .alert-emphasis-variant(#8a6d3b, #fcf8e3, #faebcc); +} +.alert-info { + .alert-emphasis-variant(#31708f, #d9edf7, #bce8f1); +} +.alert-success { + .alert-emphasis-variant(#3c763d, #dff0d8, #d6e9c6); +} diff --git a/server/sonar-web/src/main/less/components/badges.less b/server/sonar-web/src/main/less/components/badges.less index 2b640be062d..764e4943aad 100644 --- a/server/sonar-web/src/main/less/components/badges.less +++ b/server/sonar-web/src/main/less/components/badges.less @@ -35,11 +35,19 @@ text-align: center; background-color: @blue; - &:empty { display: none; } + &:empty { + display: none; + } - a&:hover, a&:focus, a&:active { color: @white; } + a&:hover, + a&:focus, + a&:active { + color: @white; + } - a& { .link-no-underline; } + a& { + .link-no-underline; + } &.is-rounded { padding-left: 5px; @@ -68,7 +76,11 @@ background-color: transparent; color: @secondFontColor; - &:hover, &:focus, &:active { color: @blue; } + &:hover, + &:focus, + &:active { + color: @blue; + } } .badge-success, @@ -83,7 +95,7 @@ .badge-danger, .badge-error { - background-color: @red + background-color: @red; } .badge-danger-light { @@ -92,7 +104,11 @@ background-color: #f2dede; color: #a94442; - a&:hover, a&:focus, a&:active { color: #a94442; } + a&:hover, + a&:focus, + a&:active { + color: #a94442; + } } .badge-focus { @@ -102,11 +118,15 @@ color: #8a6d3b; font-weight: 400; - a&:hover, a&:focus, a&:active { color: #8a6d3b; } + a&:hover, + a&:focus, + a&:active { + color: #8a6d3b; + } } .private-badge, -.built-in-badge, { +.built-in-badge { display: inline-block; vertical-align: middle; height: 20px; diff --git a/server/sonar-web/src/main/less/components/bubble-popup.less b/server/sonar-web/src/main/less/components/bubble-popup.less index ae9f5cd3770..b438adc84e5 100644 --- a/server/sonar-web/src/main/less/components/bubble-popup.less +++ b/server/sonar-web/src/main/less/components/bubble-popup.less @@ -168,5 +168,7 @@ .bubble-popup-list { margin-top: 5px; - & > li { padding: 2px 0; } + & > li { + padding: 2px 0; + } } diff --git a/server/sonar-web/src/main/less/components/columns.less b/server/sonar-web/src/main/less/components/columns.less index 1a6a6317d62..23d8041173e 100644 --- a/server/sonar-web/src/main/less/components/columns.less +++ b/server/sonar-web/src/main/less/components/columns.less @@ -20,7 +20,6 @@ @import (reference) "../variables"; @import (reference) "../mixins"; - .columns { .clearfix; margin-left: -10px; @@ -38,7 +37,9 @@ padding: 0 10px; box-sizing: border-box; - &.column-one { margin: 0 25%; } + &.column-one { + margin: 0 25%; + } } .column-third { @@ -55,7 +56,6 @@ box-sizing: border-box; } - .flex-columns { display: flex; } diff --git a/server/sonar-web/src/main/less/components/component-name.less b/server/sonar-web/src/main/less/components/component-name.less index 0d4413e97fe..7b01129d4a7 100644 --- a/server/sonar-web/src/main/less/components/component-name.less +++ b/server/sonar-web/src/main/less/components/component-name.less @@ -46,7 +46,6 @@ } .component-name-file { - } .component-name-favorite { @@ -55,4 +54,3 @@ margin-left: 4px; padding: 2px 0; } - diff --git a/server/sonar-web/src/main/less/components/dropdowns.less b/server/sonar-web/src/main/less/components/dropdowns.less index 382b487d163..e9cef542a0f 100644 --- a/server/sonar-web/src/main/less/components/dropdowns.less +++ b/server/sonar-web/src/main/less/components/dropdowns.less @@ -23,7 +23,6 @@ @import (reference) "menu"; @import (reference) "ui"; - .dropdown { position: relative; } diff --git a/server/sonar-web/src/main/less/components/graphics.less b/server/sonar-web/src/main/less/components/graphics.less index 5ba0e6da818..d3ca9af1283 100644 --- a/server/sonar-web/src/main/less/components/graphics.less +++ b/server/sonar-web/src/main/less/components/graphics.less @@ -48,12 +48,15 @@ .sonar-d3 .treemap-link { position: absolute; z-index: @treemap-link-z-index; - top: 5px; right: 5px; + top: 5px; + right: 5px; line-height: @iconSmallFontSize; opacity: 0.5; .link-no-underline; - &:hover { opacity: 1; } + &:hover { + opacity: 1; + } } .sonar-d3 .treemap-link i, @@ -64,12 +67,18 @@ } .sonar-d3 .treemap-cell-small { - .treemap-inner { display: none; } + .treemap-inner { + display: none; + } } .sonar-d3 .treemap-cell-very-small { - .treemap-inner { display: none; } - .treemap-link { display: none; } + .treemap-inner { + display: none; + } + .treemap-link { + display: none; + } } .sonar-d3 .treemap-breadcrumbs { @@ -82,13 +91,17 @@ .sonar-d3 .treemap-breadcrumbs-item { color: @secondFontColor; - & > [class^="icon-qualifier-"] { margin-right: 4px; } + & > [class^="icon-qualifier-"] { + margin-right: 4px; + } } .sonar-d3 .treemap-breadcrumbs-item + .treemap-breadcrumbs-item { margin-left: 10px; - & > .icon-chevron-right { margin-right: 10px; } + & > .icon-chevron-right { + margin-right: 10px; + } } .word-cloud { @@ -304,11 +317,10 @@ } .chart-zoom { - - .zoom-overlay{ + .zoom-overlay { fill: none; stroke: none; - cursor: crosshair;; + cursor: crosshair; pointer-events: all; } diff --git a/server/sonar-web/src/main/less/components/issues.less b/server/sonar-web/src/main/less/components/issues.less index 6a861ec641f..37ee80aeb50 100644 --- a/server/sonar-web/src/main/less/components/issues.less +++ b/server/sonar-web/src/main/less/components/issues.less @@ -28,7 +28,6 @@ @topPadding: 8px; @bottomPadding: 8px; - .issue-list { margin: 10px 0; } @@ -123,7 +122,9 @@ &:before { content: " "; position: absolute; - top: 0; bottom: 0; right: 100%; + top: 0; + bottom: 0; + right: 100%; width: 10px; background-image: linear-gradient(to right, fade(#fff, 0%), #fff 75%); } @@ -230,7 +231,8 @@ input.issue-action-options-search { .issue-action-options-search-icon { position: absolute; - top: 3px; left: 10px; + top: 3px; + left: 10px; color: @secondFontColor; &:before { @@ -254,7 +256,6 @@ input.issue-action-options-search { } .issue-comment-form-text { - } .issue-comment-form-text textarea { @@ -297,8 +298,8 @@ input.issue-action-options-search { margin: -8px 0 0 -3px; &:before { - font-size: 18px; - } + font-size: 18px; + } } &:hover { diff --git a/server/sonar-web/src/main/less/components/measures.less b/server/sonar-web/src/main/less/components/measures.less index 76b390db1a4..b8d725bd7e3 100644 --- a/server/sonar-web/src/main/less/components/measures.less +++ b/server/sonar-web/src/main/less/components/measures.less @@ -22,9 +22,7 @@ @import (reference) "../init/misc"; @import (reference) "ui"; - .measures { - } .measures + .measures { @@ -50,7 +48,6 @@ } .measure + .measure { - } .measure-name { diff --git a/server/sonar-web/src/main/less/components/menu.less b/server/sonar-web/src/main/less/components/menu.less index 30858724604..362d85a3b76 100644 --- a/server/sonar-web/src/main/less/components/menu.less +++ b/server/sonar-web/src/main/less/components/menu.less @@ -60,7 +60,8 @@ } > li > a { - &:hover, &:focus { + &:hover, + &:focus { text-decoration: none; color: @baseFontColor; background-color: @barBackgroundColor; @@ -69,7 +70,9 @@ > .active > a, > li > .active { - &, &:hover, &:focus { + &, + &:hover, + &:focus { color: @baseFontColor; text-decoration: none; outline: 0; @@ -96,9 +99,13 @@ position: relative; padding: 4px 16px 0; - .search-box-input { font-size: @smallFontSize; } + .search-box-input { + font-size: @smallFontSize; + } - .search-box-submit { vertical-align: baseline; } + .search-box-submit { + vertical-align: baseline; + } } .menu-search-full-width { @@ -113,14 +120,17 @@ .menu-search ~ .menu { > li > a { - &:hover, &:focus { + &:hover, + &:focus { background-color: transparent; } } > .active > a, > li > .active { - &, &:hover, &:focus { + &, + &:hover, + &:focus { background-color: @barBackgroundColor; } } diff --git a/server/sonar-web/src/main/less/components/modals.less b/server/sonar-web/src/main/less/components/modals.less index 306cf00fca6..0d40cb9c65e 100644 --- a/server/sonar-web/src/main/less/components/modals.less +++ b/server/sonar-web/src/main/less/components/modals.less @@ -94,7 +94,8 @@ border-bottom: 1px solid #ddd; } -.modal-head h1, .modal-head h2 { +.modal-head h1, +.modal-head h2 { line-height: 30px; min-height: 30px; } @@ -173,7 +174,8 @@ ul.modal-head-metadata li { line-height: 1; } -.modal-field, .modal-large-field { +.modal-field, +.modal-large-field { input, select, textarea, @@ -240,6 +242,8 @@ ul.modal-head-metadata li { } } -.modal-error, .modal-warning, .modal-notice { +.modal-error, +.modal-warning, +.modal-notice { display: none; } diff --git a/server/sonar-web/src/main/less/components/navbar.less b/server/sonar-web/src/main/less/components/navbar.less index 303d4b3cd78..3573ab3bc4f 100644 --- a/server/sonar-web/src/main/less/components/navbar.less +++ b/server/sonar-web/src/main/less/components/navbar.less @@ -27,7 +27,9 @@ @navbarLineHeight: 20px; @navbarTopPadding: (@navbarGlobalHeight - @navbarLineHeight) / 2; -.navbar, [class^="navbar-"], [class*=" navbar-"] { +.navbar, +[class^="navbar-"], +[class*=" navbar-"] { box-sizing: border-box; } @@ -251,7 +253,7 @@ .navbar-nav > li > a:hover, .navbar-nav > .active > a, - .navbar-nav > li> a.active, + .navbar-nav > li > a.active, .navbar-nav > .dropdown.open > a { background-color: @blue; } @@ -272,7 +274,6 @@ margin-right: 4px; } - .navbar-context { position: static; top: @navbarGlobalHeight; @@ -346,14 +347,12 @@ box-sizing: border-box; } - .navbar-side { padding: 10px; border-bottom: 1px solid @barBorderColor; background-color: #e5f1f9; } - .global-navbar-search-dropdown { max-height: 80vh; width: 440px; diff --git a/server/sonar-web/src/main/less/components/navigator/base.less b/server/sonar-web/src/main/less/components/navigator/base.less index 4e5ad13a0bd..e16babca1e5 100644 --- a/server/sonar-web/src/main/less/components/navigator/base.less +++ b/server/sonar-web/src/main/less/components/navigator/base.less @@ -21,9 +21,8 @@ @import (reference) "../../mixins"; @import (reference) "config"; - -.navigator { } - +.navigator { +} .navigator-element() { position: fixed; @@ -92,35 +91,34 @@ } .navigator-with-notes { - .navigator-notes { display: block; } } - .measures-page { - .navigator-details { overflow: visible; } + .navigator-details { + overflow: visible; + } } - .navigator-fetching { &:before { content: " "; position: absolute; z-index: @navigator-fetching-z-index; - top: 0; bottom: 0; left: 0; right: 0; + top: 0; + bottom: 0; + left: 0; + right: 0; background: #fff url(../../../images/loading.gif) no-repeat 4px 4px; } } - .navigator-page-loader { padding: @navigatorPadding 0 0 @navigatorPadding; } - - // Header .navigator-header { padding: 0 @navigatorPadding; @@ -191,13 +189,12 @@ background-color: #fff; } - [class^="icon-"], [class*=" icon-"] { + [class^="icon-"], + [class*=" icon-"] { font-size: 16px; } } - - // Notes .navigator-notes { margin: 0 @navigatorPadding @navigatorPadding @navigatorPadding; @@ -210,8 +207,6 @@ line-height: @navigatorNotesHeight; } - - // Facets .navigator-facets { padding: @navigatorPadding; @@ -220,7 +215,6 @@ } .navigator-facets-list { - } .navigator-facets-list-item { @@ -246,8 +240,6 @@ overflow: hidden; } - - // Results .navigator-results { background-color: @white; @@ -255,8 +247,12 @@ overflow-y: auto; &.fetching { - .navigator-results-list { visibility: hidden; } - .navigator-results-loader { display: block; } + .navigator-results-list { + visibility: hidden; + } + .navigator-results-loader { + display: block; + } } } @@ -268,7 +264,6 @@ } .navigator-results-list { - & > li { position: relative; z-index: @normal-z-index; @@ -304,12 +299,14 @@ &.active { z-index: @above-normal-z-index; - background-color: #CAE3F2; - border-color: #4B9FD5; + background-color: #cae3f2; + border-color: #4b9fd5; } } - & > li + li { margin-top: -1px; } + & > li + li { + margin-top: -1px; + } } .navigator-results-no-results { @@ -321,8 +318,6 @@ text-align: center; } - - // Details .navigator-details { background-color: @white; @@ -333,8 +328,6 @@ } } - - // Status .navigator-actions { padding: 0 @navigatorPadding 0 0; @@ -344,7 +337,9 @@ background-color: @navigatorBarBackground; font-size: @smallFontSize; - strong { font-weight: bold; } + strong { + font-weight: bold; + } } .navigator-actions-order { @@ -401,8 +396,6 @@ text-decoration: none; } - - // Footer .navigator-page #footer { margin: 0; diff --git a/server/sonar-web/src/main/less/components/navigator/config.less b/server/sonar-web/src/main/less/components/navigator/config.less index 49b28ca3bf7..96268a7d1a9 100644 --- a/server/sonar-web/src/main/less/components/navigator/config.less +++ b/server/sonar-web/src/main/less/components/navigator/config.less @@ -35,7 +35,6 @@ @navigatorPadding: 10px; - // Colors @navigatorBarBackground: @barBackgroundColor; @navigatorBorderColor: @barBorderColor; @@ -46,6 +45,5 @@ @navigatorFacetStatColor: @secondFontColor; @navigatorFacetInactiveBackground: lighten(@barBackgroundColor, 4%); - @navigatorHover: darken(@navigatorBarBackground, 5%); @navigatorFilterPadding: @navigatorPadding; diff --git a/server/sonar-web/src/main/less/components/navigator/filters.less b/server/sonar-web/src/main/less/components/navigator/filters.less index e480d1d1021..3fc042bb698 100644 --- a/server/sonar-web/src/main/less/components/navigator/filters.less +++ b/server/sonar-web/src/main/less/components/navigator/filters.less @@ -21,7 +21,6 @@ @import (reference) "../../mixins"; @import (reference) "config"; - .navigator-filters { padding-right: 85px; background-color: @navigatorBarBackground; @@ -44,7 +43,8 @@ .navigator-filter-submit { position: absolute; - bottom: 0; right: 0; + bottom: 0; + right: 0; width: 85px; height: @navigatorFiltersHeight; margin: -1px -1px -1px 0; @@ -55,9 +55,12 @@ font-weight: normal; transition: all 0.2s ease; - &::-moz-focus-inner { border: 0; } + &::-moz-focus-inner { + border: 0; + } - &:hover, &:focus { + &:hover, + &:focus { border-color: @blue; background-color: lighten(@blue, 10%); } @@ -101,7 +104,6 @@ border-color: @darkGrey; background: #fff; } - } .navigator-filter-disabled { @@ -125,7 +127,7 @@ } .navigator-filter-inline .navigator-filter-label:after { - content: ""; + content: ""; } .navigator-filter-inactive { @@ -145,7 +147,9 @@ color: #333; font-size: @baseFontSize; - &:after { content: ":"; } + &:after { + content: ":"; + } } .navigator-filter-value { @@ -297,7 +301,8 @@ .fetching &:after { content: ' '; position: absolute; - top: 6px; right: -21px; + top: 6px; + right: -21px; display: block; width: 16px; height: 16px; @@ -305,8 +310,9 @@ } &.fetching-error { - - input { border: 2px solid @red; } + input { + border: 2px solid @red; + } } } diff --git a/server/sonar-web/src/main/less/components/page.less b/server/sonar-web/src/main/less/components/page.less index fa128f99095..57f76aa02ac 100644 --- a/server/sonar-web/src/main/less/components/page.less +++ b/server/sonar-web/src/main/less/components/page.less @@ -245,7 +245,8 @@ background-color: #f3f3f3; } -.layout-page-header-panel, .layout-page-header-panel-inner { +.layout-page-header-panel, +.layout-page-header-panel-inner { height: 56px; box-sizing: border-box; } diff --git a/server/sonar-web/src/main/less/components/pills.less b/server/sonar-web/src/main/less/components/pills.less index 4b459b19258..a49e5acd2e5 100644 --- a/server/sonar-web/src/main/less/components/pills.less +++ b/server/sonar-web/src/main/less/components/pills.less @@ -24,7 +24,6 @@ } .pills > li { - } .pills > li + li { diff --git a/server/sonar-web/src/main/less/components/react-select.less b/server/sonar-web/src/main/less/components/react-select.less index e191986705f..b14f3c147ca 100644 --- a/server/sonar-web/src/main/less/components/react-select.less +++ b/server/sonar-web/src/main/less/components/react-select.less @@ -117,20 +117,28 @@ } .has-value:not(.Select--multi) > .Select-control > .Select-value .Select-value-label, -.has-value.is-pseudo-focused:not(.Select--multi) > .Select-control > .Select-value .Select-value-label { +.has-value.is-pseudo-focused:not(.Select--multi) + > .Select-control + > .Select-value .Select-value-label { color: @baseFontColor; } .has-value:not(.Select--multi) > .Select-control > .Select-value a.Select-value-label, -.has-value.is-pseudo-focused:not(.Select--multi) > .Select-control > .Select-value a.Select-value-label { +.has-value.is-pseudo-focused:not(.Select--multi) + > .Select-control + > .Select-value a.Select-value-label { cursor: pointer; text-decoration: none; } .has-value:not(.Select--multi) > .Select-control > .Select-value a.Select-value-label:hover, -.has-value.is-pseudo-focused:not(.Select--multi) > .Select-control > .Select-value a.Select-value-label:hover, +.has-value.is-pseudo-focused:not(.Select--multi) + > .Select-control + > .Select-value a.Select-value-label:hover, .has-value:not(.Select--multi) > .Select-control > .Select-value a.Select-value-label:focus, -.has-value.is-pseudo-focused:not(.Select--multi) > .Select-control > .Select-value a.Select-value-label:focus { +.has-value.is-pseudo-focused:not(.Select--multi) + > .Select-control + > .Select-value a.Select-value-label:focus { color: #007eff; outline: none; text-decoration: underline; diff --git a/server/sonar-web/src/main/less/components/search-navigator.less b/server/sonar-web/src/main/less/components/search-navigator.less index e281de0a6c6..eebff4f1c0b 100644 --- a/server/sonar-web/src/main/less/components/search-navigator.less +++ b/server/sonar-web/src/main/less/components/search-navigator.less @@ -24,9 +24,7 @@ @sideWidth: 300px; .search-navigator { - &.sticky { - .search-navigator-workspace-header { position: fixed; z-index: @search-navigator-sticky-workspace-header-z-index; @@ -46,7 +44,6 @@ bottom: 0; overflow-y: auto; } - } } @@ -81,7 +78,8 @@ } } -.search-navigator-facet-box:not(.hidden):not(.leak-facet-box) + .search-navigator-facet-box:not(.leak-facet-box) { +.search-navigator-facet-box:not(.hidden):not(.leak-facet-box) + + .search-navigator-facet-box:not(.leak-facet-box) { border-top: 1px solid @barBorderColor; } @@ -102,7 +100,9 @@ color: @secondFontColor; font-weight: 400; - &:hover { color: @blue; } + &:hover { + color: @blue; + } } } @@ -113,7 +113,9 @@ .search-navigator-facet-header { cursor: default; - &:hover { color: @secondFontColor; } + &:hover { + color: @secondFontColor; + } } } @@ -142,7 +144,8 @@ color: @baseFontColor; } - &:hover, &:focus { + &:hover, + &:focus { border: 1px solid @blue; padding: 3px 5px; @@ -178,7 +181,11 @@ bottom: 0; right: 100%; width: 10px; - background-image: linear-gradient(to right, fade(@barBackgroundColor, 0%), @barBackgroundColor 75%); + background-image: linear-gradient( + to right, + fade(@barBackgroundColor, 0%), + @barBackgroundColor 75% + ); } } @@ -218,7 +225,11 @@ background-color: @leakBackgroundColor; &:before { - background-image: linear-gradient(to right, fade(@leakBackgroundColor, 0%), @leakBackgroundColor 75%); + background-image: linear-gradient( + to right, + fade(@leakBackgroundColor, 0%), + @leakBackgroundColor 75% + ); } } } @@ -284,7 +295,8 @@ .search-navigator-facet { margin-bottom: 0; - &:hover, &.active { + &:hover, + &.active { border-bottom: none; padding-bottom: 4px; border-radius: 2px 2px 0 0; @@ -339,7 +351,8 @@ &.active ~ .search-navigator-facet { .selectFacet(@lightBlue); - &:hover, &:hover ~ .search-navigator-facet { + &:hover, + &:hover ~ .search-navigator-facet { .selectFacet(darken(@lightBlue, 10%)); } } @@ -384,16 +397,21 @@ } .search-navigator-facet-list-align-right { - .facet-name { float: right; &:before { content: " "; position: absolute; - top: 0; bottom: 0; left: 0; + top: 0; + bottom: 0; + left: 0; width: 10px; - background-image: linear-gradient(to left, fade(@barBackgroundColor, 0%), @barBackgroundColor 75%); + background-image: linear-gradient( + to left, + fade(@barBackgroundColor, 0%), + @barBackgroundColor 75% + ); } } @@ -404,7 +422,6 @@ .facet.active .facet-name:before { background-image: linear-gradient(to left, fade(@lightBlue, 0%), @lightBlue 75%); } - } .search-navigator-facet-container { @@ -449,12 +466,15 @@ .link-no-underline; transition: none; - &:hover, &:focus, - &:hover .search-navigator-facet-histogram-bar-inner, &:focus .search-navigator-facet-histogram-bar-inner { + &:hover, + &:focus, + &:hover .search-navigator-facet-histogram-bar-inner, + &:focus .search-navigator-facet-histogram-bar-inner { background-color: @barBorderColor; } - &:hover .search-navigator-facet-histogram-bar, &:focus .search-navigator-facet-histogram-bar { + &:hover .search-navigator-facet-histogram-bar, + &:focus .search-navigator-facet-histogram-bar { background-color: @blue; } } @@ -514,7 +534,6 @@ visibility: hidden; } - .search-navigator-filters { position: relative; .clearfix; @@ -552,7 +571,6 @@ } .search-navigator-filters-filter { - } .search-navigator-filters-header { @@ -628,9 +646,15 @@ &:before { content: " "; position: absolute; - top: 0; bottom: 0; right: 100%; + top: 0; + bottom: 0; + right: 100%; width: 10px; - background-image: linear-gradient(to right, fade(@barBackgroundColor, 0%), @barBackgroundColor 75%); + background-image: linear-gradient( + to right, + fade(@barBackgroundColor, 0%), + @barBackgroundColor 75% + ); } } @@ -673,7 +697,6 @@ } .search-navigator-extended-view { - .search-navigator-workspace-list { display: none; } diff --git a/server/sonar-web/src/main/less/components/source.less b/server/sonar-web/src/main/less/components/source.less index bc7eb17c41d..470faab9805 100644 --- a/server/sonar-web/src/main/less/components/source.less +++ b/server/sonar-web/src/main/less/components/source.less @@ -234,14 +234,24 @@ .source-line-partially-covered { background-color: @orange !important; - background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, .5) 4px, transparent 4px, transparent 8px, rgba(255, 255, 255, .5) 8px, rgba(255, 255, 255, .5) 12px, transparent 12px, transparent 16px, rgba(255, 255, 255, .5) 16px, rgba(255, 255, 255, .5) 20px) !important; + background-image: repeating-linear-gradient( + 45deg, + rgba(255, 255, 255, .5) 4px, + transparent 4px, + transparent 8px, + rgba(255, 255, 255, .5) 8px, + rgba(255, 255, 255, .5) 12px, + transparent 12px, + transparent 16px, + rgba(255, 255, 255, .5) 16px, + rgba(255, 255, 255, .5) 20px + ) !important; } .source-line-duplicated { background-color: @duplicationColor !important; } - // Header .source-viewer-header { @@ -422,7 +432,6 @@ overflow-y: scroll; } - //.source-viewer-measures-section + .source-viewer-measures-section { // border-left: 1px solid @barBorderColor; //} diff --git a/server/sonar-web/src/main/less/components/tooltips.less b/server/sonar-web/src/main/less/components/tooltips.less index ac14eefb361..641d42c63f8 100644 --- a/server/sonar-web/src/main/less/components/tooltips.less +++ b/server/sonar-web/src/main/less/components/tooltips.less @@ -40,7 +40,6 @@ } .tooltip.in { - } .tooltip.top, @@ -81,7 +80,7 @@ word-break: break-word; .alert { - margin-bottom: 5px /* align with side padding */ ; + margin-bottom: 5px; border-radius: 4px; } } @@ -167,6 +166,10 @@ } @keyframes fadeIn { - from { opacity: 0; } - to { opacity: 1; } -}
\ No newline at end of file + from { + opacity: 0; + } + to { + opacity: 1; + } +} diff --git a/server/sonar-web/src/main/less/components/typography.less b/server/sonar-web/src/main/less/components/typography.less index 7455ef03535..42a90e3f761 100644 --- a/server/sonar-web/src/main/less/components/typography.less +++ b/server/sonar-web/src/main/less/components/typography.less @@ -24,7 +24,17 @@ .formatted() { line-height: 1.5; - p, ul, ol, pre, blockquote, table, h2, h3, h4, h5, h6 { + p, + ul, + ol, + pre, + blockquote, + table, + h2, + h3, + h4, + h5, + h6 { margin: 1em 0; } @@ -33,12 +43,16 @@ font-weight: 400; } - h3, h4, h5, h6 { + h3, + h4, + h5, + h6 { font-size: @baseFontSize; font-weight: 600; } - pre, code { + pre, + code { font-family: @monoFontFamily; font-size: @smallFontSize; } @@ -103,5 +117,4 @@ padding: 5px 10px; border: 1px solid @barBorderColor; } - } diff --git a/server/sonar-web/src/main/less/components/ui.less b/server/sonar-web/src/main/less/components/ui.less index cfdd43a1bde..16f8d9e45c0 100644 --- a/server/sonar-web/src/main/less/components/ui.less +++ b/server/sonar-web/src/main/less/components/ui.less @@ -40,7 +40,9 @@ opacity: 0; transition: all 0.2s ease; - &.shown { opacity: 1; } + &.shown { + opacity: 1; + } } .process-spinner + .process-spinner { @@ -71,10 +73,7 @@ color: #fff; } - - .shortcuts-section { - } .shortcuts-section + .shortcuts-section { @@ -115,7 +114,6 @@ margin-right: 4px; } - .nav { margin: 0; padding: 0; @@ -134,14 +132,14 @@ padding: 10px 15px; } - .nav-crumbs { padding: 2px 0; a { color: @baseFontColorLight; - &:hover, &:focus { + &:hover, + &:focus { color: @blue !important; } } @@ -158,7 +156,8 @@ color: fade(@baseFontColor, 30%); } - [class^="icon-"], [class*=" icon-"] { + [class^="icon-"], + [class*=" icon-"] { position: relative; top: 3px; } @@ -218,7 +217,6 @@ } } - .flash { background-color: transparent; transition: all 0.5s ease; @@ -232,7 +230,6 @@ background-color: #ffe456; } - .identity-provider { display: inline-block; line-height: 14px; diff --git a/server/sonar-web/src/main/less/components/workspace.less b/server/sonar-web/src/main/less/components/workspace.less index f64c3e926bc..33e1c807400 100644 --- a/server/sonar-web/src/main/less/components/workspace.less +++ b/server/sonar-web/src/main/less/components/workspace.less @@ -81,7 +81,9 @@ color: @white; font-weight: 300; - i { margin-top: 3px; } + i { + margin-top: 3px; + } } .workspace-viewer-resize { @@ -99,7 +101,9 @@ float: right; line-height: @formControlHeight; - a { color: inherit; } + a { + color: inherit; + } } .workspace-viewer-container { @@ -112,12 +116,11 @@ box-sizing: border-box; } - // Misc .with-workspace .source-viewer { padding-bottom: 40vh; } .with-workspace .workspace-viewer .source-viewer { - padding-bottom: 0 + padding-bottom: 0; } diff --git a/server/sonar-web/src/main/less/init/base.less b/server/sonar-web/src/main/less/init/base.less index 779a38f49d2..0251bd272b9 100644 --- a/server/sonar-web/src/main/less/init/base.less +++ b/server/sonar-web/src/main/less/init/base.less @@ -20,12 +20,15 @@ @import (reference) "../variables"; @import (reference) "../mixins"; -*, *:before, *:after { +*, +*:before, +*:after { margin: 0; - padding: 0 + padding: 0; } -html, body { +html, +body { background-color: @baseBackgroundColor; } @@ -33,56 +36,80 @@ body { overflow-y: scroll; } -fieldset, img { +fieldset, +img { border: 0; } -address, caption, cite, code, dfn, em, strong, th, var { +address, +caption, +cite, +code, +dfn, +em, +strong, +th, +var { font-style: normal; font-weight: normal; } -caption, th { +caption, +th { text-align: left; } -q:before, q:after { +q:before, +q:after { content: ''; } -abbr, acronym { +abbr, +acronym { border: 0; font-variant: normal; } -input, textarea, select { +input, +textarea, +select { font-family: inherit; font-size: inherit; font-weight: inherit; } -select, input, button, textarea { +select, +input, +button, +textarea { font-size: inherit; font-family: inherit; } /*Remove button padding in FF*/ -select::-moz-focus-inner, input::-moz-focus-inner, button::-moz-focus-inner { +select::-moz-focus-inner, +input::-moz-focus-inner, +button::-moz-focus-inner { border: 0; padding: 0; } legend { - color: #000 + color: #000; } -pre, code, kbd, samp, tt { +pre, +code, +kbd, +samp, +tt { font-family: @monoFontFamily; font-size: @monoFontSize; line-height: @monoLineHeight; } -svg, img { +svg, +img { vertical-align: top; } diff --git a/server/sonar-web/src/main/less/init/forms.less b/server/sonar-web/src/main/less/init/forms.less index f7993a30f24..7852cb8b2c7 100644 --- a/server/sonar-web/src/main/less/init/forms.less +++ b/server/sonar-web/src/main/less/init/forms.less @@ -52,7 +52,9 @@ select { outline: none; } - &.invalid { border-color: @red; } + &.invalid { + border-color: @red; + } } input[type=text], @@ -112,7 +114,9 @@ input[type=button] { outline: none; transition: border-color 0.2s ease; - &:hover, &:focus, &.button-active { + &:hover, + &:focus, + &.button-active { background: @darkBlue; color: #fff; } @@ -139,7 +143,9 @@ input[type="submit"].button-red { border-color: @red; color: @red; - &:hover, &:focus, &.active { + &:hover, + &:focus, + &.active { background: @red; color: #fff; } @@ -150,7 +156,9 @@ input[type="submit"].button-success { border-color: @green; color: @green; - &:hover, &:focus, &.active { + &:hover, + &:focus, + &.active { background: @green; color: #fff; } @@ -161,7 +169,9 @@ input[type="submit"].button-grey { border-color: @middleGrey; color: @secondFontColor; - &:hover, &:focus, &.active { + &:hover, + &:focus, + &.active { background: @middleGrey; color: @white; } @@ -205,14 +215,15 @@ input[type="submit"].button-grey { line-height: inherit; transition: all 0.2s ease; - &:hover, &:focus { + &:hover, + &:focus { background: transparent; color: @blue; } &:active { box-shadow: none; - outline: thin dotted #CCC; + outline: thin dotted #ccc; } &:disabled, @@ -258,13 +269,18 @@ input[type="submit"].button-grey { margin: 0; cursor: pointer; - &:hover, &:focus, &:active, &.active { + &:hover, + &:focus, + &:active, + &.active { &:not(:disabled) { z-index: @above-normal-z-index; } } - &:disabled { z-index: @below-normal-z-index; } + &:disabled { + z-index: @below-normal-z-index; + } } & > button:not(:first-child), @@ -293,10 +309,18 @@ input[type="submit"].button-grey { } } -.input-tiny { width: 60px; } -.input-small { width: 100px; } -.input-medium { width: 150px; } -.input-large { width: 200px; } +.input-tiny { + width: 60px; +} +.input-small { + width: 100px; +} +.input-medium { + width: 150px; +} +.input-large { + width: 200px; +} .input-super-large { width: 100%; max-width: 300px; @@ -350,7 +374,9 @@ label[for] { } } - & > li + li > label { border-left: none; } + & > li + li > label { + border-left: none; + } & > li > label { @padding-top: (@formControlHeight - 16px) / 2; @@ -377,5 +403,4 @@ label[for] { background: #ebebeb; cursor: not-allowed; } - } diff --git a/server/sonar-web/src/main/less/init/icons.less b/server/sonar-web/src/main/less/init/icons.less index e0546239f38..3c8c61dcecf 100644 --- a/server/sonar-web/src/main/less/init/icons.less +++ b/server/sonar-web/src/main/less/init/icons.less @@ -22,17 +22,18 @@ @import (reference) "../components/ui"; @font-face { - font-family: 'sonar'; - src:url('../../fonts/sonar-5.2.eot?'); - src:url('../../fonts/sonar-5.2.eot?#iefix') format('embedded-opentype'), - url('../../fonts/sonar-5.2.woff?') format('woff'), - url('../../fonts/sonar-5.2.ttf?') format('truetype'), - url('../../fonts/sonar-5.2.svg?#sonar') format('svg'); - font-weight: normal; - font-style: normal; + font-family: 'sonar'; + src: url('../../fonts/sonar-5.2.eot?'); + src: url('../../fonts/sonar-5.2.eot?#iefix') format('embedded-opentype'), + url('../../fonts/sonar-5.2.woff?') format('woff'), + url('../../fonts/sonar-5.2.ttf?') format('truetype'), + url('../../fonts/sonar-5.2.svg?#sonar') format('svg'); + font-weight: normal; + font-style: normal; } -[class^="icon-"], [class*=" icon-"] { +[class^="icon-"], +[class*=" icon-"] { font-family: 'sonar'; speak: none; font-style: normal; @@ -47,7 +48,8 @@ -moz-osx-font-smoothing: grayscale; } -a[class^="icon-"], a[class*=" icon-"] { +a[class^="icon-"], +a[class*=" icon-"] { .link-no-underline; } @@ -55,25 +57,35 @@ a[class^="icon-"], a[class*=" icon-"] { opacity: 0.5; } - /* * Colors */ - -.icon-black { color: @baseFontColor; } -.icon-gray { color: #999; } -.icon-gray path { fill: #999; } -.icon-red { color: @red; } -.icon-green { color: @green; } -.icon-color-link { color: @darkBlue; } - +.icon-black { + color: @baseFontColor; +} +.icon-gray { + color: #999; +} +.icon-gray path { + fill: #999; +} +.icon-red { + color: @red; +} +.icon-green { + color: @green; +} +.icon-color-link { + color: @darkBlue; +} /* * Severity */ -[class^="icon-severity-"], [class*=" icon-severity"] { +[class^="icon-severity-"], +[class*=" icon-severity"] { display: inline-block; vertical-align: top; width: 16px; @@ -81,18 +93,33 @@ a[class^="icon-"], a[class*=" icon-"] { background-size: 12px 12px; background: no-repeat center center; } -.icon-severity-blocker, .icon-severity-4 { background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%3E%3Cg%20transform%3D%22matrix(-1%2C1.22465e-16%2C-1.22465e-16%2C-1%2C12%2C12)%22%3E%3Cpath%20fill%3D%22%23d4333f%22%20d%3D%22M6%2C0C9.311%2C0%2012%2C2.689%2012%2C6C12%2C9.311%209.311%2C12%206%2C12C2.689%2C12%200%2C9.311%200%2C6C0%2C2.689%202.689%2C0%206%2C0ZM7%2C5L5%2C5L5%2C10L7%2C10L7%2C5ZM7%2C2L5%2C2L5%2C4L7%2C4L7%2C2Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); } -.icon-severity-critical, .icon-severity-3 { background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%3E%3Cpath%20fill%3D%22%23d4333f%22%20d%3D%22M6%2C0C9.311%2C0%2012%2C2.689%2012%2C6C12%2C9.311%209.311%2C12%206%2C12C2.689%2C12%200%2C9.311%200%2C6C0%2C2.689%202.689%2C0%206%2C0ZM7%2C10L7%2C5.414L8.893%2C7.307C9.023%2C7.431%209.175%2C7.523%209.35%2C7.568C9.717%2C7.663%2010.116%2C7.537%2010.361%2C7.248C10.43%2C7.167%2010.486%2C7.075%2010.526%2C6.977C10.573%2C6.861%2010.598%2C6.738%2010.6%2C6.613C10.602%2C6.489%2010.58%2C6.365%2010.536%2C6.248C10.485%2C6.113%2010.406%2C5.997%2010.307%2C5.893C9.095%2C4.681%207.913%2C3.437%206.669%2C2.257C6.616%2C2.211%206.561%2C2.169%206.5%2C2.134C6.362%2C2.054%206.211%2C2.014%206.052%2C2.001C6%2C2%206%2C2%205.948%2C2.001C5.772%2C2.015%205.604%2C2.065%205.455%2C2.161C5.396%2C2.2%205.344%2C2.245%205.293%2C2.293C4.08%2C3.505%202.836%2C4.687%201.656%2C5.932C1.563%2C6.041%201.49%2C6.161%201.447%2C6.299C1.409%2C6.417%201.394%2C6.542%201.402%2C6.667C1.409%2C6.773%201.433%2C6.878%201.474%2C6.977C1.507%2C7.059%201.551%2C7.136%201.605%2C7.207C1.813%2C7.478%202.153%2C7.627%202.493%2C7.596C2.691%2C7.577%202.871%2C7.498%203.028%2C7.378C3.069%2C7.343%203.068%2C7.344%203.107%2C7.307L5%2C5.414L5%2C10L7%2C10Z%22%2F%3E%3C%2Fsvg%3E'); } -.icon-severity-major, .icon-severity-2 { background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2212px%22%20height%3D%2212px%22%20viewBox%3D%220%200%2012%2012%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20xml%3Aspace%3D%22preserve%22%20style%3D%22fill-rule%3Aevenodd%3Bclip-rule%3Aevenodd%3Bstroke-linejoin%3Around%3Bstroke-miterlimit%3A1.41421%3B%22%3E%3Cpath%20fill%3D%22%23d4333f%22%20d%3D%22M6%2C0C9.311%2C0%2012%2C2.689%2012%2C6C12%2C9.311%209.311%2C12%206%2C12C2.689%2C12%200%2C9.311%200%2C6C0%2C2.689%202.689%2C0%206%2C0ZM6.08%2C2.903C6.151%2C2.911%206.22%2C2.922%206.288%2C2.942C6.426%2C2.984%206.548%2C3.056%206.658%2C3.147C7.902%2C4.293%209.084%2C5.504%2010.297%2C6.683C10.397%2C6.786%2010.478%2C6.901%2010.531%2C7.035C10.576%2C7.151%2010.6%2C7.275%2010.6%2C7.399C10.6%2C7.524%2010.577%2C7.648%2010.532%2C7.763C10.493%2C7.863%2010.438%2C7.956%2010.37%2C8.038C10.129%2C8.33%209.732%2C8.461%209.363%2C8.372C9.188%2C8.329%209.035%2C8.239%208.903%2C8.117L6%2C5.295L3.097%2C8.117C3.058%2C8.153%203.058%2C8.153%203.017%2C8.187C2.902%2C8.273%202.777%2C8.337%202.637%2C8.372C2.516%2C8.401%202.39%2C8.408%202.267%2C8.391C1.928%2C8.345%201.63%2C8.124%201.489%2C7.813C1.452%2C7.732%201.427%2C7.646%201.413%2C7.558C1.396%2C7.453%201.396%2C7.345%201.413%2C7.24C1.445%2C7.044%201.535%2C6.87%201.666%2C6.721C2.847%2C5.51%204.09%2C4.362%205.303%2C3.183C5.355%2C3.135%205.409%2C3.09%205.47%2C3.052C5.623%2C2.956%205.794%2C2.91%205.973%2C2.9C6.027%2C2.9%206.027%2C2.9%206.08%2C2.903Z%22%2F%3E%3C%2Fsvg%3E'); } -.icon-severity-minor, .icon-severity-1 { background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%3E%3Cpath%20fill%3D%22%2387bb43%22%20d%3D%22M6%2C0C9.311%2C0%2012%2C2.689%2012%2C6C12%2C9.311%209.311%2C12%206%2C12C2.689%2C12%200%2C9.311%200%2C6C0%2C2.689%202.689%2C0%206%2C0ZM7%2C6.586L7%2C2L5%2C2L5%2C6.586L3.107%2C4.693C3.055%2C4.644%203.002%2C4.598%202.942%2C4.559C2.79%2C4.461%202.619%2C4.413%202.44%2C4.401C2.386%2C4.4%202.334%2C4.402%202.28%2C4.407C2.121%2C4.431%201.97%2C4.482%201.836%2C4.574C1.748%2C4.634%201.67%2C4.708%201.605%2C4.793C1.398%2C5.064%201.344%2C5.432%201.464%2C5.752C1.515%2C5.887%201.594%2C6.003%201.693%2C6.107C2.905%2C7.319%204.087%2C8.563%205.331%2C9.743C5.425%2C9.823%205.526%2C9.889%205.642%2C9.934C5.904%2C10.034%206.203%2C10.019%206.454%2C9.891C6.548%2C9.843%206.631%2C9.78%206.707%2C9.707C7.92%2C8.495%209.164%2C7.313%2010.344%2C6.068C10.437%2C5.959%2010.51%2C5.839%2010.553%2C5.701C10.591%2C5.583%2010.606%2C5.458%2010.598%2C5.333C10.591%2C5.227%2010.567%2C5.122%2010.526%2C5.023C10.493%2C4.941%2010.449%2C4.864%2010.395%2C4.793C10.187%2C4.522%209.847%2C4.373%209.507%2C4.404C9.309%2C4.423%209.129%2C4.502%208.972%2C4.622C8.932%2C4.656%208.932%2C4.656%208.893%2C4.693L7%2C6.586Z%22%2F%3E%3C%2Fsvg%3E'); } -.icon-severity-info, .icon-severity-0 { background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%3E%3Cpath%20fill%3D%22%234b9fd5%22%20d%3D%22M6%2C0C9.311%2C0%2012%2C2.689%2012%2C6C12%2C9.311%209.311%2C12%206%2C12C2.689%2C12%200%2C9.311%200%2C6C0%2C2.689%202.689%2C0%206%2C0ZM7%2C5L5%2C5L5%2C10L7%2C10L7%2C5ZM7%2C2L5%2C2L5%2C4L7%2C4L7%2C2Z%22%2F%3E%3C%2Fsvg%3E'); } - +.icon-severity-blocker, +.icon-severity-4 { + background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%3E%3Cg%20transform%3D%22matrix(-1%2C1.22465e-16%2C-1.22465e-16%2C-1%2C12%2C12)%22%3E%3Cpath%20fill%3D%22%23d4333f%22%20d%3D%22M6%2C0C9.311%2C0%2012%2C2.689%2012%2C6C12%2C9.311%209.311%2C12%206%2C12C2.689%2C12%200%2C9.311%200%2C6C0%2C2.689%202.689%2C0%206%2C0ZM7%2C5L5%2C5L5%2C10L7%2C10L7%2C5ZM7%2C2L5%2C2L5%2C4L7%2C4L7%2C2Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); +} +.icon-severity-critical, +.icon-severity-3 { + background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%3E%3Cpath%20fill%3D%22%23d4333f%22%20d%3D%22M6%2C0C9.311%2C0%2012%2C2.689%2012%2C6C12%2C9.311%209.311%2C12%206%2C12C2.689%2C12%200%2C9.311%200%2C6C0%2C2.689%202.689%2C0%206%2C0ZM7%2C10L7%2C5.414L8.893%2C7.307C9.023%2C7.431%209.175%2C7.523%209.35%2C7.568C9.717%2C7.663%2010.116%2C7.537%2010.361%2C7.248C10.43%2C7.167%2010.486%2C7.075%2010.526%2C6.977C10.573%2C6.861%2010.598%2C6.738%2010.6%2C6.613C10.602%2C6.489%2010.58%2C6.365%2010.536%2C6.248C10.485%2C6.113%2010.406%2C5.997%2010.307%2C5.893C9.095%2C4.681%207.913%2C3.437%206.669%2C2.257C6.616%2C2.211%206.561%2C2.169%206.5%2C2.134C6.362%2C2.054%206.211%2C2.014%206.052%2C2.001C6%2C2%206%2C2%205.948%2C2.001C5.772%2C2.015%205.604%2C2.065%205.455%2C2.161C5.396%2C2.2%205.344%2C2.245%205.293%2C2.293C4.08%2C3.505%202.836%2C4.687%201.656%2C5.932C1.563%2C6.041%201.49%2C6.161%201.447%2C6.299C1.409%2C6.417%201.394%2C6.542%201.402%2C6.667C1.409%2C6.773%201.433%2C6.878%201.474%2C6.977C1.507%2C7.059%201.551%2C7.136%201.605%2C7.207C1.813%2C7.478%202.153%2C7.627%202.493%2C7.596C2.691%2C7.577%202.871%2C7.498%203.028%2C7.378C3.069%2C7.343%203.068%2C7.344%203.107%2C7.307L5%2C5.414L5%2C10L7%2C10Z%22%2F%3E%3C%2Fsvg%3E'); +} +.icon-severity-major, +.icon-severity-2 { + background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2212px%22%20height%3D%2212px%22%20viewBox%3D%220%200%2012%2012%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20xml%3Aspace%3D%22preserve%22%20style%3D%22fill-rule%3Aevenodd%3Bclip-rule%3Aevenodd%3Bstroke-linejoin%3Around%3Bstroke-miterlimit%3A1.41421%3B%22%3E%3Cpath%20fill%3D%22%23d4333f%22%20d%3D%22M6%2C0C9.311%2C0%2012%2C2.689%2012%2C6C12%2C9.311%209.311%2C12%206%2C12C2.689%2C12%200%2C9.311%200%2C6C0%2C2.689%202.689%2C0%206%2C0ZM6.08%2C2.903C6.151%2C2.911%206.22%2C2.922%206.288%2C2.942C6.426%2C2.984%206.548%2C3.056%206.658%2C3.147C7.902%2C4.293%209.084%2C5.504%2010.297%2C6.683C10.397%2C6.786%2010.478%2C6.901%2010.531%2C7.035C10.576%2C7.151%2010.6%2C7.275%2010.6%2C7.399C10.6%2C7.524%2010.577%2C7.648%2010.532%2C7.763C10.493%2C7.863%2010.438%2C7.956%2010.37%2C8.038C10.129%2C8.33%209.732%2C8.461%209.363%2C8.372C9.188%2C8.329%209.035%2C8.239%208.903%2C8.117L6%2C5.295L3.097%2C8.117C3.058%2C8.153%203.058%2C8.153%203.017%2C8.187C2.902%2C8.273%202.777%2C8.337%202.637%2C8.372C2.516%2C8.401%202.39%2C8.408%202.267%2C8.391C1.928%2C8.345%201.63%2C8.124%201.489%2C7.813C1.452%2C7.732%201.427%2C7.646%201.413%2C7.558C1.396%2C7.453%201.396%2C7.345%201.413%2C7.24C1.445%2C7.044%201.535%2C6.87%201.666%2C6.721C2.847%2C5.51%204.09%2C4.362%205.303%2C3.183C5.355%2C3.135%205.409%2C3.09%205.47%2C3.052C5.623%2C2.956%205.794%2C2.91%205.973%2C2.9C6.027%2C2.9%206.027%2C2.9%206.08%2C2.903Z%22%2F%3E%3C%2Fsvg%3E'); +} +.icon-severity-minor, +.icon-severity-1 { + background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%3E%3Cpath%20fill%3D%22%2387bb43%22%20d%3D%22M6%2C0C9.311%2C0%2012%2C2.689%2012%2C6C12%2C9.311%209.311%2C12%206%2C12C2.689%2C12%200%2C9.311%200%2C6C0%2C2.689%202.689%2C0%206%2C0ZM7%2C6.586L7%2C2L5%2C2L5%2C6.586L3.107%2C4.693C3.055%2C4.644%203.002%2C4.598%202.942%2C4.559C2.79%2C4.461%202.619%2C4.413%202.44%2C4.401C2.386%2C4.4%202.334%2C4.402%202.28%2C4.407C2.121%2C4.431%201.97%2C4.482%201.836%2C4.574C1.748%2C4.634%201.67%2C4.708%201.605%2C4.793C1.398%2C5.064%201.344%2C5.432%201.464%2C5.752C1.515%2C5.887%201.594%2C6.003%201.693%2C6.107C2.905%2C7.319%204.087%2C8.563%205.331%2C9.743C5.425%2C9.823%205.526%2C9.889%205.642%2C9.934C5.904%2C10.034%206.203%2C10.019%206.454%2C9.891C6.548%2C9.843%206.631%2C9.78%206.707%2C9.707C7.92%2C8.495%209.164%2C7.313%2010.344%2C6.068C10.437%2C5.959%2010.51%2C5.839%2010.553%2C5.701C10.591%2C5.583%2010.606%2C5.458%2010.598%2C5.333C10.591%2C5.227%2010.567%2C5.122%2010.526%2C5.023C10.493%2C4.941%2010.449%2C4.864%2010.395%2C4.793C10.187%2C4.522%209.847%2C4.373%209.507%2C4.404C9.309%2C4.423%209.129%2C4.502%208.972%2C4.622C8.932%2C4.656%208.932%2C4.656%208.893%2C4.693L7%2C6.586Z%22%2F%3E%3C%2Fsvg%3E'); +} +.icon-severity-info, +.icon-severity-0 { + background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%3E%3Cpath%20fill%3D%22%234b9fd5%22%20d%3D%22M6%2C0C9.311%2C0%2012%2C2.689%2012%2C6C12%2C9.311%209.311%2C12%206%2C12C2.689%2C12%200%2C9.311%200%2C6C0%2C2.689%202.689%2C0%206%2C0ZM7%2C5L5%2C5L5%2C10L7%2C10L7%2C5ZM7%2C2L5%2C2L5%2C4L7%2C4L7%2C2Z%22%2F%3E%3C%2Fsvg%3E'); +} /* * Status */ -[class^="icon-status-"], [class*=" icon-status"] { +[class^="icon-status-"], +[class*=" icon-status"] { display: inline-block; vertical-align: top; width: 16px; @@ -100,12 +127,21 @@ a[class^="icon-"], a[class*=" icon-"] { background-size: 14px 14px; background: no-repeat center center; } -.icon-status-open { background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M7%202.75c-.77%200-1.482.19-2.133.57-.65.38-1.166.896-1.547%201.547-.38.65-.57%201.362-.57%202.133%200%20.77.19%201.482.57%202.133.38.65.896%201.167%201.547%201.547.65.38%201.362.57%202.133.57.77%200%201.482-.19%202.133-.57.65-.38%201.167-.896%201.547-1.547.38-.65.57-1.362.57-2.133%200-.77-.19-1.482-.57-2.133-.38-.65-.896-1.166-1.547-1.547-.65-.38-1.362-.57-2.133-.57zM13%207c0%201.09-.268%202.092-.805%203.012-.536.92-1.264%201.647-2.183%202.183C9.092%2012.732%208.09%2013%207%2013c-1.09%200-2.092-.268-3.012-.805-.92-.536-1.647-1.264-2.183-2.183C1.268%209.092%201%208.09%201%207c0-1.09.268-2.092.805-3.012.536-.92%201.264-1.647%202.183-2.183C4.908%201.268%205.91%201%207%201c1.09%200%202.092.268%203.012.805.92.536%201.647%201.264%202.183%202.183C12.732%204.908%2013%205.91%2013%207z%22%20fill%3D%22%234B9FD5%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); } -.icon-status-confirmed { background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M9%207c0%20.552-.195%201.023-.586%201.414C8.024%208.804%207.552%209%207%209c-.552%200-1.023-.195-1.414-.586C5.196%208.024%205%207.552%205%207c0-.552.195-1.023.586-1.414C5.976%205.196%206.448%205%207%205c.552%200%201.023.195%201.414.586.39.39.586.862.586%201.414zM7%202.75c-.77%200-1.482.19-2.133.57-.65.38-1.166.896-1.547%201.547-.38.65-.57%201.362-.57%202.133%200%20.77.19%201.482.57%202.133.38.65.896%201.167%201.547%201.547.65.38%201.362.57%202.133.57.77%200%201.482-.19%202.133-.57.65-.38%201.167-.896%201.547-1.547.38-.65.57-1.362.57-2.133%200-.77-.19-1.482-.57-2.133-.38-.65-.896-1.166-1.547-1.547-.65-.38-1.362-.57-2.133-.57zM13%207c0%201.09-.268%202.092-.805%203.012-.536.92-1.264%201.647-2.183%202.183C9.092%2012.732%208.09%2013%207%2013c-1.09%200-2.092-.268-3.012-.805-.92-.536-1.647-1.264-2.183-2.183C1.268%209.092%201%208.09%201%207c0-1.09.268-2.092.805-3.012.536-.92%201.264-1.647%202.183-2.183C4.908%201.268%205.91%201%207%201c1.09%200%202.092.268%203.012.805.92.536%201.647%201.264%202.183%202.183C12.732%204.908%2013%205.91%2013%207z%22%20fill%3D%22%234B9FD5%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); } -.icon-status-reopened { background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M7%2011.25v-8.5c-.77%200-1.482.19-2.133.57-.65.38-1.166.896-1.547%201.547-.38.65-.57%201.362-.57%202.133%200%20.77.19%201.482.57%202.133.38.65.896%201.167%201.547%201.547.65.38%201.362.57%202.133.57zM13%207c0%201.09-.268%202.092-.805%203.012-.536.92-1.264%201.647-2.183%202.183C9.092%2012.732%208.09%2013%207%2013c-1.09%200-2.092-.268-3.012-.805-.92-.536-1.647-1.264-2.183-2.183C1.268%209.092%201%208.09%201%207c0-1.09.268-2.092.805-3.012.536-.92%201.264-1.647%202.183-2.183C4.908%201.268%205.91%201%207%201c1.09%200%202.092.268%203.012.805.92.536%201.647%201.264%202.183%202.183C12.732%204.908%2013%205.91%2013%207z%22%20fill%3D%22%234B9FD5%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); } -.icon-status-resolved { background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M11.03%205.734c0-.145-.046-.265-.14-.36l-.71-.702c-.1-.1-.216-.15-.352-.15-.135%200-.252.05-.35.15l-3.19%203.18-1.765-1.766c-.1-.1-.216-.15-.35-.15-.137%200-.254.05-.353.15l-.71.703c-.094.093-.14.213-.14.358%200%20.14.046.258.14.352l2.828%202.828c.098.1.216.15.35.15.142%200%20.26-.05.36-.15l4.243-4.242c.094-.094.14-.21.14-.352zM13%207c0%201.09-.268%202.092-.805%203.012-.536.92-1.264%201.647-2.183%202.183C9.092%2012.732%208.09%2013%207%2013c-1.09%200-2.092-.268-3.012-.805-.92-.536-1.647-1.264-2.183-2.183C1.268%209.092%201%208.09%201%207c0-1.09.268-2.092.805-3.012.536-.92%201.264-1.647%202.183-2.183C4.908%201.268%205.91%201%207%201c1.09%200%202.092.268%203.012.805.92.536%201.647%201.264%202.183%202.183C12.732%204.908%2013%205.91%2013%207z%22%20fill%3D%22%23444%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); } -.icon-status-closed { background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M13%207c0%201.09-.268%202.092-.805%203.012-.536.92-1.264%201.647-2.183%202.183C9.092%2012.732%208.09%2013%207%2013c-1.09%200-2.092-.268-3.012-.805-.92-.536-1.647-1.264-2.183-2.183C1.268%209.092%201%208.09%201%207c0-1.09.268-2.092.805-3.012.536-.92%201.264-1.647%202.183-2.183C4.908%201.268%205.91%201%207%201c1.09%200%202.092.268%203.012.805.92.536%201.647%201.264%202.183%202.183C12.732%204.908%2013%205.91%2013%207z%22%20fill%3D%22%23444%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); } - +.icon-status-open { + background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M7%202.75c-.77%200-1.482.19-2.133.57-.65.38-1.166.896-1.547%201.547-.38.65-.57%201.362-.57%202.133%200%20.77.19%201.482.57%202.133.38.65.896%201.167%201.547%201.547.65.38%201.362.57%202.133.57.77%200%201.482-.19%202.133-.57.65-.38%201.167-.896%201.547-1.547.38-.65.57-1.362.57-2.133%200-.77-.19-1.482-.57-2.133-.38-.65-.896-1.166-1.547-1.547-.65-.38-1.362-.57-2.133-.57zM13%207c0%201.09-.268%202.092-.805%203.012-.536.92-1.264%201.647-2.183%202.183C9.092%2012.732%208.09%2013%207%2013c-1.09%200-2.092-.268-3.012-.805-.92-.536-1.647-1.264-2.183-2.183C1.268%209.092%201%208.09%201%207c0-1.09.268-2.092.805-3.012.536-.92%201.264-1.647%202.183-2.183C4.908%201.268%205.91%201%207%201c1.09%200%202.092.268%203.012.805.92.536%201.647%201.264%202.183%202.183C12.732%204.908%2013%205.91%2013%207z%22%20fill%3D%22%234B9FD5%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); +} +.icon-status-confirmed { + background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M9%207c0%20.552-.195%201.023-.586%201.414C8.024%208.804%207.552%209%207%209c-.552%200-1.023-.195-1.414-.586C5.196%208.024%205%207.552%205%207c0-.552.195-1.023.586-1.414C5.976%205.196%206.448%205%207%205c.552%200%201.023.195%201.414.586.39.39.586.862.586%201.414zM7%202.75c-.77%200-1.482.19-2.133.57-.65.38-1.166.896-1.547%201.547-.38.65-.57%201.362-.57%202.133%200%20.77.19%201.482.57%202.133.38.65.896%201.167%201.547%201.547.65.38%201.362.57%202.133.57.77%200%201.482-.19%202.133-.57.65-.38%201.167-.896%201.547-1.547.38-.65.57-1.362.57-2.133%200-.77-.19-1.482-.57-2.133-.38-.65-.896-1.166-1.547-1.547-.65-.38-1.362-.57-2.133-.57zM13%207c0%201.09-.268%202.092-.805%203.012-.536.92-1.264%201.647-2.183%202.183C9.092%2012.732%208.09%2013%207%2013c-1.09%200-2.092-.268-3.012-.805-.92-.536-1.647-1.264-2.183-2.183C1.268%209.092%201%208.09%201%207c0-1.09.268-2.092.805-3.012.536-.92%201.264-1.647%202.183-2.183C4.908%201.268%205.91%201%207%201c1.09%200%202.092.268%203.012.805.92.536%201.647%201.264%202.183%202.183C12.732%204.908%2013%205.91%2013%207z%22%20fill%3D%22%234B9FD5%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); +} +.icon-status-reopened { + background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M7%2011.25v-8.5c-.77%200-1.482.19-2.133.57-.65.38-1.166.896-1.547%201.547-.38.65-.57%201.362-.57%202.133%200%20.77.19%201.482.57%202.133.38.65.896%201.167%201.547%201.547.65.38%201.362.57%202.133.57zM13%207c0%201.09-.268%202.092-.805%203.012-.536.92-1.264%201.647-2.183%202.183C9.092%2012.732%208.09%2013%207%2013c-1.09%200-2.092-.268-3.012-.805-.92-.536-1.647-1.264-2.183-2.183C1.268%209.092%201%208.09%201%207c0-1.09.268-2.092.805-3.012.536-.92%201.264-1.647%202.183-2.183C4.908%201.268%205.91%201%207%201c1.09%200%202.092.268%203.012.805.92.536%201.647%201.264%202.183%202.183C12.732%204.908%2013%205.91%2013%207z%22%20fill%3D%22%234B9FD5%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); +} +.icon-status-resolved { + background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M11.03%205.734c0-.145-.046-.265-.14-.36l-.71-.702c-.1-.1-.216-.15-.352-.15-.135%200-.252.05-.35.15l-3.19%203.18-1.765-1.766c-.1-.1-.216-.15-.35-.15-.137%200-.254.05-.353.15l-.71.703c-.094.093-.14.213-.14.358%200%20.14.046.258.14.352l2.828%202.828c.098.1.216.15.35.15.142%200%20.26-.05.36-.15l4.243-4.242c.094-.094.14-.21.14-.352zM13%207c0%201.09-.268%202.092-.805%203.012-.536.92-1.264%201.647-2.183%202.183C9.092%2012.732%208.09%2013%207%2013c-1.09%200-2.092-.268-3.012-.805-.92-.536-1.647-1.264-2.183-2.183C1.268%209.092%201%208.09%201%207c0-1.09.268-2.092.805-3.012.536-.92%201.264-1.647%202.183-2.183C4.908%201.268%205.91%201%207%201c1.09%200%202.092.268%203.012.805.92.536%201.647%201.264%202.183%202.183C12.732%204.908%2013%205.91%2013%207z%22%20fill%3D%22%23444%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); +} +.icon-status-closed { + background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M13%207c0%201.09-.268%202.092-.805%203.012-.536.92-1.264%201.647-2.183%202.183C9.092%2012.732%208.09%2013%207%2013c-1.09%200-2.092-.268-3.012-.805-.92-.536-1.647-1.264-2.183-2.183C1.268%209.092%201%208.09%201%207c0-1.09.268-2.092.805-3.012.536-.92%201.264-1.647%202.183-2.183C4.908%201.268%205.91%201%207%201c1.09%200%202.092.268%203.012.805.92.536%201.647%201.264%202.183%202.183C12.732%204.908%2013%205.91%2013%207z%22%20fill%3D%22%23444%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); +} /* * Test Status @@ -132,42 +168,49 @@ a[class^="icon-"], a[class*=" icon-"] { font-size: @iconFontSize; } - /* * Alert */ -.icon-alert-ok { font-size: @iconFontSize; } +.icon-alert-ok { + font-size: @iconFontSize; +} .icon-alert-ok:before { content: "\f013"; color: @green; font-size: @iconFontSize; } -.icon-alert-warn { font-size: @iconFontSize; } +.icon-alert-warn { + font-size: @iconFontSize; +} .icon-alert-warn:before { content: "\f000"; color: @orange; font-size: @iconFontSize; } -.icon-alert-error { font-size: @iconFontSize; } +.icon-alert-error { + font-size: @iconFontSize; +} .icon-alert-error:before { content: "\f057"; color: @red; font-size: @iconFontSize; } -.icon-alert-none { font-size: @iconFontSize; } +.icon-alert-none { + font-size: @iconFontSize; +} .icon-alert-none:before { content: "\f056"; color: @middleGrey; font-size: @iconFontSize; } - /* * Qualifier */ -[class^="icon-qualifier-"], [class*=" icon-qualifier-"] { +[class^="icon-qualifier-"], +[class*=" icon-qualifier-"] { display: inline-block; vertical-align: top; width: 16px; @@ -176,18 +219,35 @@ a[class^="icon-"], a[class*=" icon-"] { background: no-repeat center center; } .icon-qualifier-dir, -.icon-qualifier-pac { background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M14%2012.286V5.703c0-.198-.058-.36-.195-.5S13.512%205%2013.315%205H6.704c-.196%200-.36-.075-.5-.214-.136-.14-.203-.312-.203-.51v-.57c0-.2-.07-.363-.207-.502C5.655%203.064%205.487%203%205.29%203H2.707c-.196%200-.363.065-.5.204-.137.14-.206.302-.206.5v8.582c0%20.2.07.367.206.506.137.14.304.208.5.208h10.61c.196%200%20.352-.07.49-.208.137-.14.194-.307.194-.506zm1-6.598v6.65c0%20.458-.152.83-.475%201.16-.324.326-.7.502-1.15.502H2.647c-.452%200-.84-.175-1.162-.503-.324-.328-.486-.7-.486-1.158V3.654c0-.457.162-.842.486-1.17C1.81%202.158%202.196%202%202.648%202h2.7c.45%200%20.84.157%201.164.485.324.328.488.714.488%201.17V4h6.373c.452%200%20.83.174%201.152.5.323.33.475.73.475%201.187z%22%20fill%3D%22%23F90%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); } +.icon-qualifier-pac { + background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M14%2012.286V5.703c0-.198-.058-.36-.195-.5S13.512%205%2013.315%205H6.704c-.196%200-.36-.075-.5-.214-.136-.14-.203-.312-.203-.51v-.57c0-.2-.07-.363-.207-.502C5.655%203.064%205.487%203%205.29%203H2.707c-.196%200-.363.065-.5.204-.137.14-.206.302-.206.5v8.582c0%20.2.07.367.206.506.137.14.304.208.5.208h10.61c.196%200%20.352-.07.49-.208.137-.14.194-.307.194-.506zm1-6.598v6.65c0%20.458-.152.83-.475%201.16-.324.326-.7.502-1.15.502H2.647c-.452%200-.84-.175-1.162-.503-.324-.328-.486-.7-.486-1.158V3.654c0-.457.162-.842.486-1.17C1.81%202.158%202.196%202%202.648%202h2.7c.45%200%20.84.157%201.164.485.324.328.488.714.488%201.17V4h6.373c.452%200%20.83.174%201.152.5.323.33.475.73.475%201.187z%22%20fill%3D%22%23F90%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); +} .icon-qualifier-trk, -.icon-qualifier-dev_prj { background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M14.985%2013.988L1%2014.005%201.02%205h13.966v8.988zM1.998%205.995l.006%207.02L14.022%2013%2014%206.004l-12.002-.01zM3%204.5V4h9.996l.004.5h1l-.005-1.497-11.98.003L2%204.5zm1-2v-.504h8.002L12%202.5h1l-.004-1.495H3.003L3%202.5z%22%20fill%3D%22%232D88C0%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); } -.icon-qualifier-brc { background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%3E%3Cpath%20d%3D%22M16%2016H6v-6h10v6zm-9-1h8v-4H7v4zM7%209h8v1H7zM8%208h6v1H8z%22%20fill%3D%22%232D88C0%22%2F%3E%3Cpath%20d%3D%22M5%2012H1V5h12v2h1V4H0v9h5zM3%201h8v.5h1V0H2v1.5h1zM2%203h10v.5h1V2H1v1.5h1z%22%20fill%3D%22%232D88C0%22%2F%3E%3C%2Fsvg%3E'); } +.icon-qualifier-dev_prj { + background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M14.985%2013.988L1%2014.005%201.02%205h13.966v8.988zM1.998%205.995l.006%207.02L14.022%2013%2014%206.004l-12.002-.01zM3%204.5V4h9.996l.004.5h1l-.005-1.497-11.98.003L2%204.5zm1-2v-.504h8.002L12%202.5h1l-.004-1.495H3.003L3%202.5z%22%20fill%3D%22%232D88C0%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); +} +.icon-qualifier-brc { + background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%3E%3Cpath%20d%3D%22M16%2016H6v-6h10v6zm-9-1h8v-4H7v4zM7%209h8v1H7zM8%208h6v1H8z%22%20fill%3D%22%232D88C0%22%2F%3E%3Cpath%20d%3D%22M5%2012H1V5h12v2h1V4H0v9h5zM3%201h8v.5h1V0H2v1.5h1zM2%203h10v.5h1V2H1v1.5h1z%22%20fill%3D%22%232D88C0%22%2F%3E%3C%2Fsvg%3E'); +} .icon-qualifier-cla, -.icon-qualifier-uts { background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M3%2014h10V6H9V2H3zm7.012-9h3.008c-.012-.674-.78-1.258-1.27-1.752-.488-.495-.973-1.243-1.75-1.24v2.96zM14%204.995V15H2V1l7.997.02c1.013-.03%201.57.893%202.239%201.555.667.663%201.75%201.47%201.763%202.42z%22%20fill%3D%22%232D88C0%22%20fill-rule%3D%22nonzero%22%2F%3E%3Cpath%20d%3D%22M7%208l-3%202.5L7%2013zM8%2013l3-2.5L8%208z%22%20fill%3D%22%232D88C0%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); } -.icon-qualifier-fil { background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2215%22%20height%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M3%2014h10V6H9V2H3zm7.012-9h3.008c-.012-.674-.78-1.258-1.27-1.752-.488-.495-.973-1.243-1.75-1.24v2.96zM14%204.995V15H2V1l7.997.02c1.013-.03%201.57.893%202.239%201.555.667.663%201.75%201.47%201.763%202.42z%22%20fill%3D%22%232D88C0%22%20fill-rule%3D%22nonzero%22%2F%3E%3Cpath%20fill%3D%22%232D88C0%22%20d%3D%22M4%2011h8v1H4zM4%209h8v1H4z%22%2F%3E%3C%2Fsvg%3E'); } -.icon-qualifier-lib { background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M1%2013h4V3H1zm3-1H2v-2h2v2zM2%204h2v4H2zM6%2013h4V3H6zm3-1H7v-2h2v2zM7%204h2v4H7zM11%2013h4V3h-4zm3-1h-2v-2h2v2zm-2-8h2v4h-2z%22%20fill%3D%22%232D88C0%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); } -.icon-qualifier-vw { background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M1.016%2014.97V1.015H14.97V14.97H1.015zm1-1H13.97V2.015H2.015V13.97z%22%20fill%3D%22%232D88C0%22%2F%3E%3Cpath%20d%3D%22M3.006%207V3.006H7V7H3.006zm1-1H6V4.006H4.006V6zM9%207V3.015h3.985V7H9zm1-1h1.985V4.015H10V6zM3.004%2012.996V9H7v3.996H3.004zm1-1H6V10H4.004v1.996zM9%2012.997V9h3.997v3.997H9zm1-1h1.997V10H10v1.997z%22%20fill%3D%22%232D88C0%22%2F%3E%3C%2Fsvg%3E'); } -.icon-qualifier-svw { background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%3E%3Cpath%20d%3D%22M13%207.2V1H1v12h7v1H0V0h14v7.2%22%20fill%3D%22%232D88C0%22%2F%3E%3Cpath%20d%3D%22M2%206V2h4v4H2zm1-1h2V3H3v2zm5%201V2h4v4H8zm1-1h2V3H9v2zm-7%207V8h4v4H2zm1-1h2V9H3v2zM16%2016H7V7h9v9zm-8-1h7V8H8v7z%22%20fill%3D%22%232D88C0%22%2F%3E%3Cpath%20d%3D%22M9%209h2v2H9zM12%209h2v2h-2zM9%2012h2v2H9zM12%2012h2v2h-2z%22%20fill%3D%22%232D88C0%22%2F%3E%3C%2Fsvg%3E'); } -.icon-qualifier-dev { background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M7.974%208.02c-.938%200-1.82-.36-2.482-1.017-.663-.655-1.028-1.527-1.028-2.455%200-.927.365-1.8%201.028-2.455.663-.656%201.544-1.017%202.482-1.017.937%200%201.82.36%202.482%201.017.662.656%201.027%201.528%201.027%202.455%200%20.928-.365%201.8-1.027%202.455C9.793%207.66%208.91%208.02%207.974%208.02zm0-5.778c-1.286%200-2.332%201.034-2.332%202.306s1.046%202.307%202.332%202.307c1.285%200%202.332-1.035%202.332-2.307S9.258%202.242%207.974%202.242zm3.534%206.418c.127.016.243.045.348.086.17.066.302.146.406.246.132.124.253.282.36.47.126.218.226.442.3.668.08.253.15.535.206.838.056.313.095.604.113.867.02.28.03.57.03.862%200%20.532-.174.758-.306.882-.142.132-.397.31-.973.31H3.948c-.233%200-.437-.03-.606-.09-.14-.05-.26-.123-.366-.222-.13-.123-.306-.35-.306-.88%200-.294.01-.584.03-.863.018-.263.056-.554.112-.867.055-.303.125-.585.207-.838.073-.226.173-.45.298-.667.108-.19.23-.347.36-.47.106-.1.238-.18.407-.247.105-.04.22-.07.348-.086.202.13.432.277.683.435.342.217.756.4%201.265.564.523.166%201.06.25%201.59.25.534%200%201.07-.084%201.592-.25.51-.164.923-.348%201.266-.565.25-.158.48-.304.682-.435zm-.244-1.18c-.055%200-.184.066-.387.196-.202.13-.43.276-.685.437-.255.16-.586.307-.994.437-.408.13-.818.196-1.23.196-.41%200-.82-.065-1.228-.196-.408-.13-.74-.276-.993-.437-.255-.16-.484-.306-.686-.437-.202-.13-.33-.196-.386-.196-.374%200-.716.06-1.026.183-.31.12-.572.283-.787.487-.213.203-.404.45-.57.737-.165.288-.297.584-.395.888-.098.303-.18.633-.244.988-.063.355-.106.685-.128.992-.02.306-.032.62-.032.942%200%20.73.224%201.304.672%201.726.448.42%201.043.632%201.785.632h8.044c.743%200%201.34-.21%201.787-.633.447-.42.67-.996.67-1.725%200-.32-.01-.635-.03-.942-.022-.307-.065-.637-.13-.992-.064-.355-.146-.685-.244-.988-.098-.304-.23-.6-.395-.888-.166-.288-.356-.534-.57-.737-.216-.204-.478-.366-.788-.487-.31-.122-.652-.183-1.026-.183z%22%20fill%3D%22%232D88C0%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); } - +.icon-qualifier-uts { + background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M3%2014h10V6H9V2H3zm7.012-9h3.008c-.012-.674-.78-1.258-1.27-1.752-.488-.495-.973-1.243-1.75-1.24v2.96zM14%204.995V15H2V1l7.997.02c1.013-.03%201.57.893%202.239%201.555.667.663%201.75%201.47%201.763%202.42z%22%20fill%3D%22%232D88C0%22%20fill-rule%3D%22nonzero%22%2F%3E%3Cpath%20d%3D%22M7%208l-3%202.5L7%2013zM8%2013l3-2.5L8%208z%22%20fill%3D%22%232D88C0%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); +} +.icon-qualifier-fil { + background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2215%22%20height%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M3%2014h10V6H9V2H3zm7.012-9h3.008c-.012-.674-.78-1.258-1.27-1.752-.488-.495-.973-1.243-1.75-1.24v2.96zM14%204.995V15H2V1l7.997.02c1.013-.03%201.57.893%202.239%201.555.667.663%201.75%201.47%201.763%202.42z%22%20fill%3D%22%232D88C0%22%20fill-rule%3D%22nonzero%22%2F%3E%3Cpath%20fill%3D%22%232D88C0%22%20d%3D%22M4%2011h8v1H4zM4%209h8v1H4z%22%2F%3E%3C%2Fsvg%3E'); +} +.icon-qualifier-lib { + background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M1%2013h4V3H1zm3-1H2v-2h2v2zM2%204h2v4H2zM6%2013h4V3H6zm3-1H7v-2h2v2zM7%204h2v4H7zM11%2013h4V3h-4zm3-1h-2v-2h2v2zm-2-8h2v4h-2z%22%20fill%3D%22%232D88C0%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); +} +.icon-qualifier-vw { + background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M1.016%2014.97V1.015H14.97V14.97H1.015zm1-1H13.97V2.015H2.015V13.97z%22%20fill%3D%22%232D88C0%22%2F%3E%3Cpath%20d%3D%22M3.006%207V3.006H7V7H3.006zm1-1H6V4.006H4.006V6zM9%207V3.015h3.985V7H9zm1-1h1.985V4.015H10V6zM3.004%2012.996V9H7v3.996H3.004zm1-1H6V10H4.004v1.996zM9%2012.997V9h3.997v3.997H9zm1-1h1.997V10H10v1.997z%22%20fill%3D%22%232D88C0%22%2F%3E%3C%2Fsvg%3E'); +} +.icon-qualifier-svw { + background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%3E%3Cpath%20d%3D%22M13%207.2V1H1v12h7v1H0V0h14v7.2%22%20fill%3D%22%232D88C0%22%2F%3E%3Cpath%20d%3D%22M2%206V2h4v4H2zm1-1h2V3H3v2zm5%201V2h4v4H8zm1-1h2V3H9v2zm-7%207V8h4v4H2zm1-1h2V9H3v2zM16%2016H7V7h9v9zm-8-1h7V8H8v7z%22%20fill%3D%22%232D88C0%22%2F%3E%3Cpath%20d%3D%22M9%209h2v2H9zM12%209h2v2h-2zM9%2012h2v2H9zM12%2012h2v2h-2z%22%20fill%3D%22%232D88C0%22%2F%3E%3C%2Fsvg%3E'); +} +.icon-qualifier-dev { + background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M7.974%208.02c-.938%200-1.82-.36-2.482-1.017-.663-.655-1.028-1.527-1.028-2.455%200-.927.365-1.8%201.028-2.455.663-.656%201.544-1.017%202.482-1.017.937%200%201.82.36%202.482%201.017.662.656%201.027%201.528%201.027%202.455%200%20.928-.365%201.8-1.027%202.455C9.793%207.66%208.91%208.02%207.974%208.02zm0-5.778c-1.286%200-2.332%201.034-2.332%202.306s1.046%202.307%202.332%202.307c1.285%200%202.332-1.035%202.332-2.307S9.258%202.242%207.974%202.242zm3.534%206.418c.127.016.243.045.348.086.17.066.302.146.406.246.132.124.253.282.36.47.126.218.226.442.3.668.08.253.15.535.206.838.056.313.095.604.113.867.02.28.03.57.03.862%200%20.532-.174.758-.306.882-.142.132-.397.31-.973.31H3.948c-.233%200-.437-.03-.606-.09-.14-.05-.26-.123-.366-.222-.13-.123-.306-.35-.306-.88%200-.294.01-.584.03-.863.018-.263.056-.554.112-.867.055-.303.125-.585.207-.838.073-.226.173-.45.298-.667.108-.19.23-.347.36-.47.106-.1.238-.18.407-.247.105-.04.22-.07.348-.086.202.13.432.277.683.435.342.217.756.4%201.265.564.523.166%201.06.25%201.59.25.534%200%201.07-.084%201.592-.25.51-.164.923-.348%201.266-.565.25-.158.48-.304.682-.435zm-.244-1.18c-.055%200-.184.066-.387.196-.202.13-.43.276-.685.437-.255.16-.586.307-.994.437-.408.13-.818.196-1.23.196-.41%200-.82-.065-1.228-.196-.408-.13-.74-.276-.993-.437-.255-.16-.484-.306-.686-.437-.202-.13-.33-.196-.386-.196-.374%200-.716.06-1.026.183-.31.12-.572.283-.787.487-.213.203-.404.45-.57.737-.165.288-.297.584-.395.888-.098.303-.18.633-.244.988-.063.355-.106.685-.128.992-.02.306-.032.62-.032.942%200%20.73.224%201.304.672%201.726.448.42%201.043.632%201.785.632h8.044c.743%200%201.34-.21%201.787-.633.447-.42.67-.996.67-1.725%200-.32-.01-.635-.03-.942-.022-.307-.065-.637-.13-.992-.064-.355-.146-.685-.244-.988-.098-.304-.23-.6-.395-.888-.166-.288-.356-.534-.57-.737-.216-.204-.478-.366-.788-.487-.31-.122-.652-.183-1.026-.183z%22%20fill%3D%22%232D88C0%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); +} /* * Checkbox @@ -215,7 +275,9 @@ a[class^="icon-"], a[class*=" icon-"] { background-image: url('data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M12%204.665c0%20.172-.06.318-.18.438l-5.55%205.55c-.12.12-.266.18-.438.18s-.318-.06-.438-.18L2.18%207.438C2.06%207.317%202%207.17%202%207s.06-.318.18-.44l.878-.876c.12-.12.267-.18.44-.18.17%200%20.317.06.437.18l1.897%201.903%204.233-4.24c.12-.12.266-.18.438-.18s.32.06.44.18l.876.88c.12.12.18.265.18.438z%22%20fill%3D%22%23fff%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); border-color: @blue; - .ie9 & { background-position: -3px 0; } + .ie9 & { + background-position: -3px 0; + } } .icon-checkbox-checked.icon-checkbox-single:before { @@ -227,7 +289,6 @@ a[class^="icon-"], a[class*=" icon-"] { visibility: hidden; } - /* * Radio */ @@ -267,7 +328,6 @@ a:hover > .icon-radio { opacity: 1; } - /* * Common */ @@ -388,7 +448,6 @@ a:hover > .icon-radio { } .icon-star-favorite { - } .icon-star-favorite path { @@ -667,7 +726,6 @@ a:hover > .icon-radio { } } - /* * Spinner */ @@ -716,6 +774,10 @@ a:hover > .icon-radio { } @keyframes spin { - from { transform: rotate(0deg); } - to { transform: rotate(360deg); } + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } } diff --git a/server/sonar-web/src/main/less/init/links.less b/server/sonar-web/src/main/less/init/links.less index 10f5effe426..be43662f4f7 100644 --- a/server/sonar-web/src/main/less/init/links.less +++ b/server/sonar-web/src/main/less/init/links.less @@ -20,14 +20,17 @@ @import (reference) "../variables"; @import (reference) "../mixins"; - // Base .link-variant(@baseColor, @hoverColor, @borderColor) { border-bottom: 1px solid @borderColor; color: @baseColor; - - &:hover, &:active, &:focus { color: @hoverColor; } + + &:hover, + &:active, + &:focus { + color: @hoverColor; + } } a { @@ -41,21 +44,34 @@ a { .link-base-color { .link-variant(@baseFontColor, @blue, mix(@baseFontColor, @barBackgroundColor, 20%)); - &:hover { border-bottom-color: @lightBlue; } - &:active, &:focus { border-bottom-color: @lightBlue; } + &:hover { + border-bottom-color: @lightBlue; + } + &:active, + &:focus { + border-bottom-color: @lightBlue; + } } - -.tooltip a { color: @lightBlue; } - +.tooltip a { + color: @lightBlue; +} // Misc -.link-no-underline { border-bottom: none; } -.link-underline { border-bottom: 1px solid #cae3f2 !important; } +.link-no-underline { + border-bottom: none; +} +.link-underline { + border-bottom: 1px solid #cae3f2 !important; +} -.link-with-icon { border-bottom: none; } -.link-with-icon > span:last-child { border-bottom: 1px solid @lightBlue; } +.link-with-icon { + border-bottom: none; +} +.link-with-icon > span:last-child { + border-bottom: 1px solid @lightBlue; +} a.active-link, .link-active { @@ -63,12 +79,21 @@ a.active-link, cursor: default; } - // Color -.link-red, /* deprecated */ -a.text-danger { .link-variant(@red, darken(@red, 10%), lighten(@red, 40%)); } -a.text-muted { .link-variant(@secondFontColor, darken(@secondFontColor, 10%), lighten(@secondFontColor, 40%)); } -a.text-warning { .link-variant(@orange, lighten(@orange, 10%), lighten(@orange, 40%)); } -a.text-info { } -a.text-success { .link-variant(@green, darken(@green, 10%), lighten(@green, 40%)); } +.link-red, +/* deprecated */ +a.text-danger { + .link-variant(@red, darken(@red, 10%), lighten(@red, 40%)); +} +a.text-muted { + .link-variant(@secondFontColor, darken(@secondFontColor, 10%), lighten(@secondFontColor, 40%)); +} +a.text-warning { + .link-variant(@orange, lighten(@orange, 10%), lighten(@orange, 40%)); +} +a.text-info { +} +a.text-success { + .link-variant(@green, darken(@green, 10%), lighten(@green, 40%)); +} diff --git a/server/sonar-web/src/main/less/init/lists.less b/server/sonar-web/src/main/less/init/lists.less index e0006f22a3f..a3429967dc4 100644 --- a/server/sonar-web/src/main/less/init/lists.less +++ b/server/sonar-web/src/main/less/init/lists.less @@ -21,23 +21,26 @@ @import (reference) "../mixins"; @import (reference) "../components/ui"; -ol, ul { +ol, +ul { padding-left: 0; list-style: none; } - // Styled lists .list-styled { margin-bottom: 10px; padding-left: 40px; - ul& { list-style: disc; } - ol& { list-style: decimal; } + ul& { + list-style: disc; + } + ol& { + list-style: decimal; + } } - // Inline lists .list-inline { @@ -80,7 +83,6 @@ ol, ul { } } - // Definition lists dl { @@ -88,7 +90,8 @@ dl { margin-bottom: 20px; } -dt, dd { +dt, +dd { line-height: 1.42857143; } diff --git a/server/sonar-web/src/main/less/init/misc.less b/server/sonar-web/src/main/less/init/misc.less index ccb7e767196..c46f93386cb 100644 --- a/server/sonar-web/src/main/less/init/misc.less +++ b/server/sonar-web/src/main/less/init/misc.less @@ -21,12 +21,24 @@ @import (reference) "../mixins"; @import (reference) "../components/ui"; -.vertical-top { vertical-align: top; } -.vertical-bottom { vertical-align: bottom; } -.vertical-middle { vertical-align: middle; } +.vertical-top { + vertical-align: top; +} +.vertical-bottom { + vertical-align: bottom; +} +.vertical-middle { + vertical-align: middle; +} -.nowrap { white-space: nowrap; } -table.nowrap td, td.nowrap, th.nowrap { white-space: nowrap; } +.nowrap { + white-space: nowrap; +} +table.nowrap td, +td.nowrap, +th.nowrap { + white-space: nowrap; +} .hidden { display: none !important; @@ -42,70 +54,168 @@ table.nowrap td, td.nowrap, th.nowrap { white-space: nowrap; } } } -.spacer-left { margin-left: 8px; } -.spacer-right { margin-right: 8px; } -.spacer-bottom { margin-bottom: 8px; } -.spacer-top { margin-top: 8px; } - -.big-spacer-left { margin-left: 16px; } -.big-spacer-right { margin-right: 16px; } -.big-spacer-bottom { margin-bottom: 16px; } -.big-spacer-top { margin-top: 16px; } - -.huge-spacer-top { margin-top: 40px; } -.huge-spacer-left { margin-left: 40px; } - -.little-spacer-left { margin-left: 4px; } -.little-spacer-right { margin-right: 4px; } -.little-spacer-bottom { margin-bottom: 4px; } -.little-spacer-top { margin-top: 4px; } - -td.little-spacer-left { padding-left: 4px; } -td.little-spacer-right { padding-right: 4px; } - -td.spacer-left { padding-left: 8px; } -td.spacer-right { padding-right: 8px; } -td.spacer-bottom { padding-bottom: 8px; } -td.spacer-top { padding-top: 8px; } - -td.big-spacer-left { padding-left: 16px; } -td.big-spacer-right { padding-right: 16px; } -td.big-spacer-bottom { padding-bottom: 16px; } -td.big-spacer-top { padding-top: 16px; } - -.pull-left { float: left !important; } -.pull-right { float: right !important; } - -.bordered { border: 1px solid @barBorderColor; } -.bordered-left { border-left: 1px solid @barBorderColor; } -.bordered-right { border-right: 1px solid @barBorderColor; } -.bordered-bottom { border-bottom: 1px solid @barBorderColor; } -.bordered-top { border-top: 1px solid @barBorderColor; } - -.overflow-hidden { overflow: hidden; } - -.width-100 { width: 100%; } -.width-80 { width: 80%; } -.width-60 { width: 60%; } -.width-55 { width: 55%; } -.width-50 { width: 50%; } -.width-40 { width: 40%; } -.width-30 { width: 30%; } -.width-25 { width: 25%; } -.width-20 { width: 20%; } -.width-15 { width: 15%; } -.width-10 { width: 10%; } - -.abs-width-240 { width: 240px; } -.abs-width-300 { width: 300px; } -.abs-width-400 { width: 400px; } +.spacer-left { + margin-left: 8px; +} +.spacer-right { + margin-right: 8px; +} +.spacer-bottom { + margin-bottom: 8px; +} +.spacer-top { + margin-top: 8px; +} + +.big-spacer-left { + margin-left: 16px; +} +.big-spacer-right { + margin-right: 16px; +} +.big-spacer-bottom { + margin-bottom: 16px; +} +.big-spacer-top { + margin-top: 16px; +} + +.huge-spacer-top { + margin-top: 40px; +} +.huge-spacer-left { + margin-left: 40px; +} + +.little-spacer-left { + margin-left: 4px; +} +.little-spacer-right { + margin-right: 4px; +} +.little-spacer-bottom { + margin-bottom: 4px; +} +.little-spacer-top { + margin-top: 4px; +} + +td.little-spacer-left { + padding-left: 4px; +} +td.little-spacer-right { + padding-right: 4px; +} + +td.spacer-left { + padding-left: 8px; +} +td.spacer-right { + padding-right: 8px; +} +td.spacer-bottom { + padding-bottom: 8px; +} +td.spacer-top { + padding-top: 8px; +} + +td.big-spacer-left { + padding-left: 16px; +} +td.big-spacer-right { + padding-right: 16px; +} +td.big-spacer-bottom { + padding-bottom: 16px; +} +td.big-spacer-top { + padding-top: 16px; +} + +.pull-left { + float: left !important; +} +.pull-right { + float: right !important; +} + +.bordered { + border: 1px solid @barBorderColor; +} +.bordered-left { + border-left: 1px solid @barBorderColor; +} +.bordered-right { + border-right: 1px solid @barBorderColor; +} +.bordered-bottom { + border-bottom: 1px solid @barBorderColor; +} +.bordered-top { + border-top: 1px solid @barBorderColor; +} + +.overflow-hidden { + overflow: hidden; +} + +.width-100 { + width: 100%; +} +.width-80 { + width: 80%; +} +.width-60 { + width: 60%; +} +.width-55 { + width: 55%; +} +.width-50 { + width: 50%; +} +.width-40 { + width: 40%; +} +.width-30 { + width: 30%; +} +.width-25 { + width: 25%; +} +.width-20 { + width: 20%; +} +.width-15 { + width: 15%; +} +.width-10 { + width: 10%; +} + +.abs-width-240 { + width: 240px; +} +.abs-width-300 { + width: 300px; +} +.abs-width-400 { + width: 400px; +} .justify { margin-bottom: -1em; text-align: justify; - & > .ib { display: inline-block; } - &:after { display: inline-block; width: 100%; content: " "; } + & > .ib { + display: inline-block; + } + &:after { + display: inline-block; + width: 100%; + content: " "; + } } .first-letter-uppercase::first-letter { @@ -155,7 +265,6 @@ td.big-spacer-top { padding-top: 16px; } cursor: not-allowed; } - // Background Color .bg-variant(@color, @fontColor: #fff) { @@ -163,8 +272,18 @@ td.big-spacer-top { padding-top: 16px; } color: @fontColor; } -.bg-danger { .bg-variant(@red); } -.bg-warning { .bg-variant(@orange); } -.bg-info { .bg-variant(@blue); } -.bg-success { .bg-variant(@green); } -.bg-muted { .bg-variant(@barBackgroundColor, inherit); } +.bg-danger { + .bg-variant(@red); +} +.bg-warning { + .bg-variant(@orange); +} +.bg-info { + .bg-variant(@blue); +} +.bg-success { + .bg-variant(@green); +} +.bg-muted { + .bg-variant(@barBackgroundColor, inherit); +} diff --git a/server/sonar-web/src/main/less/init/tables.less b/server/sonar-web/src/main/less/init/tables.less index acd590724c5..60aad77fe5a 100644 --- a/server/sonar-web/src/main/less/init/tables.less +++ b/server/sonar-web/src/main/less/init/tables.less @@ -68,7 +68,8 @@ table { color: @baseFontColor; } -table.data, table.spaced { +table.data, +table.spaced { width: 100%; } @@ -108,7 +109,8 @@ table.data > tbody > tr > td { } } -table.data td.small, table.data th.small { +table.data td.small, +table.data th.small { padding: 0; white-space: nowrap; } @@ -137,28 +139,28 @@ table.data.condensed > tbody > tr > td { table.data.no-outer-padding > thead > tr { > th:first-child { - padding-left: 0 + padding-left: 0; } > th:last-child { - padding-right: 0 + padding-right: 0; } } table.data.no-outer-padding > tbody > tr { > td:first-child { - padding-left: 0 + padding-left: 0; } > td:last-child { - padding-right: 0 + padding-right: 0; } } .data thead tr.total { - background-color: #EFEFEF; + background-color: #efefef; font-weight: normal; - border: 1px solid #DDD; + border: 1px solid #ddd; } .data thead tr.total th { @@ -175,12 +177,14 @@ table.data.no-outer-padding > tbody > tr { background-color: @lightBlue; } -.data input, .data select, .data button { +.data input, +.data select, +.data button { vertical-align: middle; } .hoverable:hover { - background-color: #CAE3F2; + background-color: #cae3f2; } .hoverable:hover a { @@ -193,7 +197,8 @@ table.spaced th { padding: 4px 5px; } -table.spaced td, table.matrix tfoot td { +table.spaced td, +table.matrix tfoot td { padding: 3px 5px; line-height: 18px; } @@ -233,7 +238,7 @@ td.sep { padding: 0 5px; } -table.form td{ +table.form td { padding: 2px 5px; vertical-align: top; } @@ -260,7 +265,7 @@ table.form td img { border-left: none; border-right: none; border-top: none; - border-bottom: 1px dashed #FFD324; + border-bottom: 1px dashed #ffd324; height: 1px; } diff --git a/server/sonar-web/src/main/less/init/type.less b/server/sonar-web/src/main/less/init/type.less index bdf19f94f7d..dc8dbabffd7 100644 --- a/server/sonar-web/src/main/less/init/type.less +++ b/server/sonar-web/src/main/less/init/type.less @@ -21,10 +21,10 @@ @import (reference) "../mixins"; @import (reference) "../components/ui"; - // Top Level -html, body { +html, +body { color: @baseFontColor; } @@ -34,7 +34,6 @@ body { line-height: @baseLineHeight; } - // Headers .header(@h) { @@ -43,30 +42,55 @@ body { font-size: ~"@{@{h}-font-size}"; font-weight: ~"@{@{h}-font-weight}"; - img, svg { + img, + svg { vertical-align: middle; transform: translateY(-1px); } } -h1, .h1 { .header(h1); } -h2, .h2 { .header(h2); } -h3, .h3 { .header(h3); } -h4, .h4 { .header(h4); } -h5, .h5 { .header(h5); } -h6, .h6 { .header(h6); } - +h1, +.h1 { + .header(h1); +} +h2, +.h2 { + .header(h2); +} +h3, +.h3 { + .header(h3); +} +h4, +.h4 { + .header(h4); +} +h5, +.h5 { + .header(h5); +} +h6, +.h6 { + .header(h6); +} // Superset & Subset -sup { vertical-align: text-top; } -sub { vertical-align: text-bottom; } - +sup { + vertical-align: text-top; +} +sub { + vertical-align: text-bottom; +} // Emphasising -em { font-style: italic; } -strong { font-weight: 600; } +em { + font-style: italic; +} +strong { + font-weight: 600; +} mark { background: none; @@ -78,7 +102,6 @@ mark { font-weight: 300; } - // Quotes blockquote { @@ -93,30 +116,51 @@ blockquote cite { font-size: @smallFontSize; } - // Size small, -.small { font-size: (100% * (@smallFontSize / @baseFontSize)); } - -.big { font-size: (100% * (@bigFontSize / @baseFontSize)); } +.small { + font-size: (100% * (@smallFontSize / @baseFontSize)); +} -.zero-font-size { font-size: 0 !important; } +.big { + font-size: (100% * (@bigFontSize / @baseFontSize)); +} +.zero-font-size { + font-size: 0 !important; +} // Alignment -.text-left { text-align: left; } -.text-center { text-align: center; } -.text-right { text-align: right; } -.text-justify { text-align: justify; } - -.text-top { vertical-align: top; } -.text-middle { vertical-align: middle; } -.text-bottom { vertical-align: bottom; } -.text-text-top { vertical-align: text-top !important; } -.text-text-bottom { vertical-align: text-bottom !important; } +.text-left { + text-align: left; +} +.text-center { + text-align: center; +} +.text-right { + text-align: right; +} +.text-justify { + text-align: justify; +} +.text-top { + vertical-align: top; +} +.text-middle { + vertical-align: middle; +} +.text-bottom { + vertical-align: bottom; +} +.text-text-top { + vertical-align: text-top !important; +} +.text-text-bottom { + vertical-align: text-bottom !important; +} // Overflow @@ -132,26 +176,45 @@ small, .text-ellipsis; } - // Transformation -.text-uppercase { text-transform: uppercase; } -.text-lowercase { text-transform: lowercase; } -.text-no-transform { text-transform: none; } - -.text-normal { font-weight: normal; } +.text-uppercase { + text-transform: uppercase; +} +.text-lowercase { + text-transform: lowercase; +} +.text-no-transform { + text-transform: none; +} +.text-normal { + font-weight: normal; +} // Color -.text-emphasis-variant(@color) { color: @color; } -.text-muted { .text-emphasis-variant(@secondFontColor); } -.text-muted-2 { .text-emphasis-variant(@middleGrey); } -.text-danger { .text-emphasis-variant(@red); } -.text-warning { .text-emphasis-variant(@orange); } -.text-info { .text-emphasis-variant(@blue); } -.text-success { .text-emphasis-variant(@green); } - +.text-emphasis-variant(@color) { + color: @color; +} +.text-muted { + .text-emphasis-variant(@secondFontColor); +} +.text-muted-2 { + .text-emphasis-variant(@middleGrey); +} +.text-danger { + .text-emphasis-variant(@red); +} +.text-warning { + .text-emphasis-variant(@orange); +} +.text-info { + .text-emphasis-variant(@blue); +} +.text-success { + .text-emphasis-variant(@green); +} // Font diff --git a/server/sonar-web/src/main/less/pages/coding-rules.less b/server/sonar-web/src/main/less/pages/coding-rules.less index 2cfddf3e9b0..fefd9a34845 100644 --- a/server/sonar-web/src/main/less/pages/coding-rules.less +++ b/server/sonar-web/src/main/less/pages/coding-rules.less @@ -25,7 +25,6 @@ @facetsHeight: 36px; .coding-rules-page { - .navigator-facets { min-height: 3 * @facetsHeight; } @@ -52,7 +51,6 @@ .navigator-results-list .line-small { color: @secondFontColor; } - } .navigator-filter-query { @@ -68,7 +66,6 @@ } } - /* * Detail */ @@ -98,7 +95,9 @@ border: 1px solid @contextBorder; background-color: @contextBackground; - .coding-rules-detail-quality-profile { margin-left: 0; } + .coding-rules-detail-quality-profile { + margin-left: 0; + } .coding-rules-detail-quality-profile-name, .coding-rules-detail-quality-profile-severity, .coding-rules-detail-quality-profile-parameters, @@ -123,7 +122,9 @@ padding-top: 0; padding-right: @navigatorPadding; - .key, .value, .sep { + .key, + .value, + .sep { display: inline; vertical-align: top; } @@ -139,10 +140,11 @@ font-family: @monoFontFamily; } } -.coding-rules-detail-quality-profile-parameter + .coding-rules-detail-quality-profile-parameter { margin-top: 0; } +.coding-rules-detail-quality-profile-parameter + .coding-rules-detail-quality-profile-parameter { + margin-top: 0; +} .coding-rules-detail-context-actions { - padding: @navigatorPadding / 2; background-color: @contextBackground; border: 1px solid @contextBorder; @@ -193,7 +195,9 @@ height: 22px; line-height: 18px; - .select2-search-field { line-height: 1; } + .select2-search-field { + line-height: 1; + } } .coding-rules-subcharacteristic { @@ -202,7 +206,7 @@ .coding-rules-debt-popup { h3 { - display: inline + display: inline; } } @@ -214,7 +218,9 @@ cursor: pointer; &:hover { - span { text-decoration: underline; } + span { + text-decoration: underline; + } } } @@ -244,7 +250,6 @@ } .coding-rules-detail-parameter { - } .coding-rules-detail-parameter-name { @@ -275,10 +280,8 @@ font-size: @smallFontSize; } - // Quality Profiles .coding-rules-detail-quality-profiles-section { - } .coding-rules-detail-quality-profiles-header { @@ -380,7 +383,9 @@ .link-no-underline; transition: all 0.2s ease; - &:hover { background-color: @barBackgroundColor; } + &:hover { + background-color: @barBackgroundColor; + } strong { font-weight: bold; @@ -397,7 +402,8 @@ textarea.coding-rules-markdown-description { } .coding-rules-modal .property { - input, textarea { + input, + textarea { width: 100%; } } @@ -414,11 +420,12 @@ textarea.coding-rules-markdown-description { text-overflow: ellipsis; white-space: nowrap; - .icon-tags:before { font-size: 12px; } + .icon-tags:before { + font-size: 12px; + } } .coding-rules-most-violated-projects { - td { border-top-color: transparent; } diff --git a/server/sonar-web/src/main/less/pages/login.less b/server/sonar-web/src/main/less/pages/login.less index 991fa4383b3..46780ee7c00 100644 --- a/server/sonar-web/src/main/less/pages/login.less +++ b/server/sonar-web/src/main/less/pages/login.less @@ -33,7 +33,9 @@ margin-bottom: 8px; font-size: 15px; - .ie9 & { display: block; } + .ie9 & { + display: block; + } } .login-remember-me { @@ -61,7 +63,9 @@ background-color: @blue; background-image: url('data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%20stroke-miterlimit%3D%221.414%22%3E%3Cpath%20d%3D%22M12%204.665c0%20.172-.06.318-.18.438l-5.55%205.55c-.12.12-.266.18-.438.18s-.318-.06-.438-.18L2.18%207.438C2.06%207.317%202%207.17%202%207s.06-.318.18-.44l.878-.876c.12-.12.267-.18.44-.18.17%200%20.317.06.437.18l1.897%201.903%204.233-4.24c.12-.12.266-.18.438-.18s.32.06.44.18l.876.88c.12.12.18.265.18.438z%22%20fill%3D%22%23fff%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); - .ie9 & { background-position: -3px 0; } + .ie9 & { + background-position: -3px 0; + } } & ~ label { @@ -92,7 +96,8 @@ overflow: hidden; text-overflow: ellipsis; - &:hover, &:focus { + &:hover, + &:focus { box-shadow: inset 0 0 16px rgba(0, 0, 0, 0.3); } diff --git a/server/sonar-web/yarn.lock b/server/sonar-web/yarn.lock index 971d60e487c..b130cf318b3 100644 --- a/server/sonar-web/yarn.lock +++ b/server/sonar-web/yarn.lock @@ -42,15 +42,11 @@ acorn-jsx@^3.0.0, acorn-jsx@^3.0.1: dependencies: acorn "^3.0.4" -acorn@4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a" - acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" -acorn@^4.0.1, acorn@^4.0.3, acorn@^4.0.4: +acorn@^4.0.3, acorn@^4.0.4: version "4.0.11" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.11.tgz#edcda3bd937e7556410d42ed5860f67399c794c0" @@ -58,6 +54,10 @@ acorn@^5.0.0, acorn@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" +acorn@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75" + add-dom-event-listener@1.x: version "1.0.2" resolved "https://registry.yarnpkg.com/add-dom-event-listener/-/add-dom-event-listener-1.0.2.tgz#8faed2c41008721cf111da1d30d995b85be42bed" @@ -240,10 +240,6 @@ assert@^1.1.1: dependencies: util "0.10.3" -ast-types@0.9.8: - version "0.9.8" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.8.tgz#6cb6a40beba31f49f20928e28439fc14a3dab078" - async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" @@ -854,7 +850,7 @@ babel-register@^6.22.0: mkdirp "^0.5.1" source-map-support "^0.4.2" -babel-runtime@6.23.0, babel-runtime@6.x, babel-runtime@^6.0.0, babel-runtime@^6.18.0, babel-runtime@^6.20.0, babel-runtime@^6.23.0, babel-runtime@^6.9.0: +babel-runtime@6.23.0, babel-runtime@6.x, babel-runtime@^6.0.0, babel-runtime@^6.18.0, babel-runtime@^6.20.0, babel-runtime@^6.9.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" dependencies: @@ -901,10 +897,6 @@ babel-types@^6.0.19, babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.20 lodash "^4.2.0" to-fast-properties "^1.0.1" -babylon@7.0.0-beta.8: - version "7.0.0-beta.8" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.8.tgz#2bdc5ae366041442c27e068cce6f0d7c06ea9949" - babylon@^6.0.18, babylon@^6.11.0: version "6.14.1" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.14.1.tgz#956275fab72753ad9b3435d7afe58f8bf0a29815" @@ -990,10 +982,6 @@ boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" -boolify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolify/-/boolify-1.0.0.tgz#4523d3550215cc1f2b567b9a015cfbcd5e6e038b" - boom@2.x.x: version "2.10.1" resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" @@ -1157,14 +1145,6 @@ camel-case@3.0.x: no-case "^2.2.0" upper-case "^1.1.1" -camelcase-keys@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.1.0.tgz#214d348cc5457f39316a2c31cc3e37246325e73f" - dependencies: - camelcase "^4.1.0" - map-obj "^2.0.0" - quick-lru "^1.0.0" - camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" @@ -1173,10 +1153,6 @@ camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - caniuse-db@^1.0.30000525, caniuse-db@^1.0.30000527, caniuse-db@^1.0.30000617: version "1.0.30000622" resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000622.tgz#9d9690b577384990a58e33ebb903a14da735e5fd" @@ -1386,12 +1362,6 @@ commander@2.9.x, commander@^2.9.0, commander@~2.9.0: dependencies: graceful-readlink ">= 1.0.0" -common-tags@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.4.0.tgz#1187be4f3d4cf0c0427d43f74eef1f73501614c0" - dependencies: - babel-runtime "^6.18.0" - commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -1427,7 +1397,7 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.4.6, concat-stream@^1.5.2: +concat-stream@^1.4.6: version "1.6.0" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" dependencies: @@ -1876,10 +1846,6 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" -dlv@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.0.tgz#fee1a7c43f63be75f3f679e85262da5f102764a7" - doctrine@1.5.0, doctrine@^1.2.2: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" @@ -1887,13 +1853,6 @@ doctrine@1.5.0, doctrine@^1.2.2: esutils "^2.0.2" isarray "^1.0.0" -doctrine@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - dom-align@1.x: version "1.5.3" resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.5.3.tgz#b906b616822a5e599f579ec8505e367c51da7588" @@ -2211,9 +2170,9 @@ eslint-plugin-react@^6.8.0: doctrine "^1.2.2" jsx-ast-utils "^1.3.4" -eslint@^3.12.2: - version "3.12.2" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.12.2.tgz#6be5a9aa29658252abd7f91e9132bab1f26f3c34" +eslint@3.14.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.14.1.tgz#8a62175f2255109494747a1b25128d97b8eb3d97" dependencies: babel-code-frame "^6.16.0" chalk "^1.1.3" @@ -2245,75 +2204,22 @@ eslint@^3.12.2: require-uncached "^1.0.2" shelljs "^0.7.5" strip-bom "^3.0.0" - strip-json-comments "~1.0.1" - table "^3.7.8" - text-table "~0.2.0" - user-home "^2.0.0" - -eslint@^3.19.0: - version "3.19.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc" - dependencies: - babel-code-frame "^6.16.0" - chalk "^1.1.3" - concat-stream "^1.5.2" - debug "^2.1.1" - doctrine "^2.0.0" - escope "^3.6.0" - espree "^3.4.0" - esquery "^1.0.0" - estraverse "^4.2.0" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - glob "^7.0.3" - globals "^9.14.0" - ignore "^3.2.0" - imurmurhash "^0.1.4" - inquirer "^0.12.0" - is-my-json-valid "^2.10.0" - is-resolvable "^1.0.0" - js-yaml "^3.5.1" - json-stable-stringify "^1.0.0" - levn "^0.3.0" - lodash "^4.0.0" - mkdirp "^0.5.0" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.1" - pluralize "^1.2.1" - progress "^1.1.8" - require-uncached "^1.0.2" - shelljs "^0.7.5" - strip-bom "^3.0.0" strip-json-comments "~2.0.1" table "^3.7.8" text-table "~0.2.0" user-home "^2.0.0" espree@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.3.2.tgz#dbf3fadeb4ecb4d4778303e50103b3d36c88b89c" - dependencies: - acorn "^4.0.1" - acorn-jsx "^3.0.0" - -espree@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.0.tgz#41656fa5628e042878025ef467e78f125cb86e1d" + version "3.4.3" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.3.tgz#2910b5ccd49ce893c2ffffaab4fd8b3a31b82374" dependencies: - acorn "4.0.4" + acorn "^5.0.1" acorn-jsx "^3.0.0" esprima@^2.6.0, esprima@^2.7.1: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" -esquery@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" - dependencies: - estraverse "^4.0.0" - esrecurse@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" @@ -2325,7 +2231,7 @@ estraverse@^1.9.1: version "1.9.3" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" -estraverse@^4.0.0, estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" @@ -2333,7 +2239,7 @@ estraverse@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" -esutils@2.0.2, esutils@^2.0.0, esutils@^2.0.2: +esutils@^2.0.0, esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -2613,10 +2519,6 @@ flow-bin@0.47.0: version "0.47.0" resolved "https://repox.sonarsource.com/api/npm/npm/flow-bin/-/flow-bin-0.47.0.tgz#a2a08ab3e0d1f1cb57d17e27b30b118b62fda367" -flow-parser@0.43.0: - version "0.43.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.43.0.tgz#e2b8eb1ac83dd53f7b6b04a7c35b6a52c33479b7" - for-in@^0.1.5: version "0.1.6" resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" @@ -2729,10 +2631,6 @@ get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" -get-stdin@5.0.1, get-stdin@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" - getpass@^0.1.1: version "0.1.6" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" @@ -2752,7 +2650,7 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob@7.1.1, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: version "7.1.1" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: @@ -2763,17 +2661,6 @@ glob@7.1.1, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@~7.0.6: - version "7.0.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - globals@^9.0.0, globals@^9.14.0: version "9.14.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034" @@ -3076,10 +2963,6 @@ ignore@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.0.tgz#8d88f03c3002a0ac52114db25d2c673b0bf1e435" -ignore@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.7.tgz#4810ca5f1d8eca5595213a34b94f2eb4ed926bbd" - image-size@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.1.tgz#28eea8548a4b1443480ddddc1e083ae54652439f" @@ -3088,10 +2971,6 @@ imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" -indent-string@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.1.0.tgz#08ff4334603388399b329e6b9538dc7a3cf5de7d" - indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" @@ -3634,15 +3513,6 @@ jest-util@^19.0.2: leven "^2.0.0" mkdirp "^0.5.1" -jest-validate@19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-19.0.0.tgz#8c6318a20ecfeaba0ba5378bfbb8277abded4173" - dependencies: - chalk "^1.1.1" - jest-matcher-utils "^19.0.0" - leven "^2.0.0" - pretty-format "^19.0.0" - jest-validate@^19.0.2: version "19.0.2" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-19.0.2.tgz#dc534df5f1278d5b63df32b14241d4dbf7244c0c" @@ -3975,11 +3845,7 @@ lodash.map@^4.4.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - -lodash.merge@^4.4.0, lodash.merge@^4.6.0: +lodash.merge@^4.4.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" @@ -4019,17 +3885,6 @@ lodash@^4.14.0, lodash@^4.17.4, lodash@^4.3.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" -loglevel-colored-level-prefix@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz#6a40218fdc7ae15fc76c3d0f3e676c465388603e" - dependencies: - chalk "^1.1.3" - loglevel "^1.4.1" - -loglevel@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.4.1.tgz#95b383f91a3c2756fd4ab093667e4309161f2bcd" - longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" @@ -4055,22 +3910,12 @@ macaddress@^0.2.8: version "0.2.8" resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" -make-plural@~3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-3.0.6.tgz#2033a03bac290b8f3bb91258f65b9df7e8b01ca7" - optionalDependencies: - minimist "^1.2.0" - makeerror@1.0.x: version "1.0.11" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" dependencies: tmpl "1.0.x" -map-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" - math-expression-evaluator@^1.2.14: version "1.2.14" resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.14.tgz#39511771ed9602405fba9affff17eb4d2a3843ab" @@ -4096,20 +3941,6 @@ merge@^1.1.3: version "1.2.0" resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" -messageformat-parser@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-1.0.0.tgz#3dea21419f141c50026a29d4b2239203ad613d3f" - -messageformat@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/messageformat/-/messageformat-1.0.2.tgz#908f4691f29ff28dae35c45436a24cff93402388" - dependencies: - glob "~7.0.6" - make-plural "~3.0.6" - messageformat-parser "^1.0.0" - nopt "~3.0.6" - reserved-words "^0.1.1" - methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -4185,7 +4016,7 @@ minimist@0.0.8, minimist@~0.0.1: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -minimist@1.2.0, minimist@^1.1.1, minimist@^1.2.0: +minimist@^1.1.1, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" @@ -4923,7 +4754,7 @@ postcss-zindex@^2.0.1: postcss "^5.0.4" uniqs "^2.0.0" -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.1.2, postcss@^5.2.17: +postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.1.2: version "5.2.17" resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.17.tgz#cf4f597b864d65c8a492b2eabe9d706c879c388b" dependencies: @@ -4952,63 +4783,9 @@ preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" -prettier-css@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/prettier-css/-/prettier-css-0.0.7.tgz#6dc62e708b9899c414f5be01cbdf3d87f4f8c84c" - dependencies: - glob "^7.1.1" - postcss "^5.2.17" - -prettier-eslint-cli@3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/prettier-eslint-cli/-/prettier-eslint-cli-3.4.1.tgz#467bbf2caa0adddbed67bfc6f75b0a0cceb82311" - dependencies: - arrify "^1.0.1" - babel-runtime "^6.23.0" - boolify "^1.0.0" - camelcase-keys "^4.1.0" - chalk "^1.1.3" - common-tags "^1.4.0" - find-up "^2.1.0" - get-stdin "^5.0.1" - glob "^7.1.1" - ignore "^3.2.7" - indent-string "^3.1.0" - lodash.memoize "^4.1.2" - loglevel-colored-level-prefix "^1.0.0" - messageformat "^1.0.2" - prettier-eslint "^5.1.0" - rxjs "^5.3.0" - yargs "^7.0.2" - -prettier-eslint@5.1.0, prettier-eslint@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/prettier-eslint/-/prettier-eslint-5.1.0.tgz#cee9aaaa9f3370665e5897057313a823da0932e2" - dependencies: - common-tags "^1.4.0" - dlv "^1.1.0" - eslint "^3.19.0" - indent-string "^3.1.0" - lodash.merge "^4.6.0" - loglevel-colored-level-prefix "^1.0.0" - prettier "^1.0.2" - pretty-format "^19.0.0" - require-relative "^0.8.7" - -prettier@1.2.2, prettier@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.2.2.tgz#22d17c1132faaaea1f1d4faea31f19f7a1959f3e" - dependencies: - ast-types "0.9.8" - babel-code-frame "6.22.0" - babylon "7.0.0-beta.8" - chalk "1.1.3" - esutils "2.0.2" - flow-parser "0.43.0" - get-stdin "5.0.1" - glob "7.1.1" - jest-validate "19.0.0" - minimist "1.2.0" +prettier@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.5.2.tgz#7ea0751da27b93bfb6cecfcec509994f52d83bb3" pretty-error@^2.0.2: version "2.0.2" @@ -5113,10 +4890,6 @@ querystringify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" -quick-lru@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.0.0.tgz#7fa80304ab72c1f81cef738739cd47d7cc0c8bff" - randomatic@^1.1.3: version "1.1.6" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" @@ -5536,10 +5309,6 @@ require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" -require-relative@^0.8.7: - version "0.8.7" - resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" - require-uncached@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" @@ -5551,10 +5320,6 @@ requires-port@1.0.x, requires-port@1.x.x: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" -reserved-words@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.1.tgz#6f7c15e5e5614c50da961630da46addc87c0cef2" - resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" @@ -5626,12 +5391,6 @@ rx@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" -rxjs@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.3.0.tgz#d88ccbdd46af290cbdb97d5d8055e52453fabe2d" - dependencies: - symbol-observable "^1.0.1" - safe-buffer@^5.0.1, safe-buffer@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" @@ -5995,7 +5754,7 @@ strip-bom@^2.0.0: dependencies: is-utf8 "^0.2.0" -strip-json-comments@~1.0.1, strip-json-comments@~1.0.4: +strip-json-comments@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" @@ -6036,10 +5795,6 @@ svgo@^0.7.0: sax "~1.2.1" whet.extend "~0.9.9" -symbol-observable@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" - symbol-tree@^3.2.1: version "3.2.2" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" @@ -6582,12 +6337,6 @@ yargs-parser@^4.2.0: dependencies: camelcase "^3.0.0" -yargs-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" - dependencies: - camelcase "^3.0.0" - yargs@^6.0.0, yargs@^6.3.0: version "6.6.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" @@ -6606,24 +6355,6 @@ yargs@^6.0.0, yargs@^6.3.0: y18n "^3.2.1" yargs-parser "^4.2.0" -yargs@^7.0.2: - version "7.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^5.0.0" - yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" |