From ebad14f1f97821e80e957e94d34ddafdefb0c724 Mon Sep 17 00:00:00 2001 From: Sorin Sbarnea Date: Fri, 21 Aug 2020 10:51:58 +0100 Subject: [PATCH] Consolidate js/jsx indentation Previously indentation was not checked at all and in order to avoid reviewers time with style checks, we can enforce it with eslint. Current js/jsx changes were made by: yarn lint-fix Note this this change can easily become outdated so we need to coordinate and merge it quickly as each rebase would loose previous votes. Change-Id: I85883fc8db924ad4ce9acad5acdd42aed7e4d0e4 --- web/.eslintrc | 2 + web/package.json | 3 +- web/src/App.jsx | 28 ++-- web/src/Misc.jsx | 4 +- web/src/actions/build.js | 12 +- web/src/actions/change.js | 8 +- web/src/actions/configErrors.js | 2 +- web/src/actions/job.js | 8 +- web/src/actions/labels.js | 6 +- web/src/actions/nodes.js | 6 +- web/src/actions/project.js | 8 +- web/src/actions/projects.js | 8 +- web/src/api.js | 2 +- web/src/containers/Errors.jsx | 8 +- web/src/containers/build/Artifact.jsx | 4 +- web/src/containers/build/BuildOutput.jsx | 148 +++++++++++----------- web/src/containers/build/Console.jsx | 52 ++++---- web/src/containers/config/Config.jsx | 32 ++--- web/src/containers/job/Job.jsx | 2 +- web/src/containers/job/JobProject.jsx | 4 +- web/src/containers/job/JobVariant.jsx | 20 +-- web/src/containers/job/Nodeset.jsx | 2 +- web/src/containers/jobs/Jobs.jsx | 8 +- web/src/containers/status/Change.jsx | 6 +- web/src/containers/status/ChangePanel.jsx | 4 +- web/src/containers/status/ChangeQueue.jsx | 2 +- web/src/containers/status/Pipeline.jsx | 10 +- web/src/containers/timezone/SelectTz.jsx | 40 +++--- web/src/pages/Jobs.jsx | 4 +- web/src/pages/Status.jsx | 34 ++--- web/src/pages/Stream.jsx | 6 +- web/src/pages/Tenants.jsx | 24 ++-- web/src/reducers/errors.js | 2 +- web/src/reducers/preferences.js | 12 +- web/src/reducers/timezone.js | 12 +- 35 files changed, 268 insertions(+), 265 deletions(-) diff --git a/web/.eslintrc b/web/.eslintrc index 4527f2e9f2..6576313e70 100644 --- a/web/.eslintrc +++ b/web/.eslintrc @@ -3,6 +3,8 @@ plugins: - standard - jest rules: + # SwitchCase value is a multiplicator of configured indentation value (2) + indent: ["error", 2, {"SwitchCase": 1}] no-var: error no-console: off semi: [error, never] diff --git a/web/package.json b/web/package.json index 7395778bb4..50256f45a7 100644 --- a/web/package.json +++ b/web/package.json @@ -52,7 +52,8 @@ "build": "react-scripts build", "test": "react-scripts test --env=jsdom --watchAll=false", "eject": "react-scripts eject", - "lint": "eslint --ext .js --ext .jsx src" + "lint": "eslint --ext .js --ext .jsx src", + "lint-fix": "eslint --ext .js --ext .jsx --fix src" }, "browserslist": [ ">0.2%", diff --git a/web/src/App.jsx b/web/src/App.jsx index ab54441a39..b3f574524c 100644 --- a/web/src/App.jsx +++ b/web/src/App.jsx @@ -119,7 +119,7 @@ class App extends React.Component { this.menu // Do not include '/tenants' route in white-label setup .filter(item => - (tenant.whiteLabel && !item.globalRoute) || !tenant.whiteLabel) + (tenant.whiteLabel && !item.globalRoute) || !tenant.whiteLabel) .forEach((item, index) => { // We use react-router's render function to be able to pass custom props // to our route components (pages): @@ -135,9 +135,9 @@ class App extends React.Component { )} exact - /> + /> ) - }) + }) if (tenant.defaultRoute) allRoutes.push( @@ -222,16 +222,16 @@ class App extends React.Component { return ( {errors.map(error => ( - {this.props.dispatch(clearError(error.id))}} - > - - {error.text} ({error.status})  - {error.url} - - + {this.props.dispatch(clearError(error.id))}} + > + + {error.text} ({error.status})  + {error.url} + + ))} ) @@ -259,7 +259,7 @@ class App extends React.Component { history.push(this.props.tenant.linkPrefix + '/config-errors') this.setState({showErrors: false}) }} - > + > diff --git a/web/src/Misc.jsx b/web/src/Misc.jsx index 1633b897bf..a329c2ca95 100644 --- a/web/src/Misc.jsx +++ b/web/src/Misc.jsx @@ -39,8 +39,8 @@ function ExternalLink(props) { } ExternalLink.propTypes = { - target: PropTypes.string, - children: PropTypes.node, + target: PropTypes.string, + children: PropTypes.node, } function buildExternalLink(buildish) { diff --git a/web/src/actions/build.js b/web/src/actions/build.js index 5ec58a668b..ef8b5f530e 100644 --- a/web/src/actions/build.js +++ b/web/src/actions/build.js @@ -68,7 +68,7 @@ export function renderTree(tenant, build, path, obj, textRenderer, defaultRender if ('children' in obj && obj.children) { node.nodes = obj.children.map( n => renderTree(tenant, build, path+obj.name+'/', n, - textRenderer, defaultRenderer)) + textRenderer, defaultRenderer)) } if (obj.mimetype === 'application/directory') { name = obj.name + '/' @@ -252,7 +252,7 @@ export const receiveBuildManifest = (buildId, manifest) => { type: BUILD_MANIFEST_SUCCESS, buildId: buildId, manifest: {tree: manifest.tree, index: index, - index_links: manifest.index_links}, + index_links: manifest.index_links}, receivedAt: Date.now() } } @@ -398,7 +398,7 @@ export function fetchBuildAllInfo(tenant, buildId, logfileName) { if (logfileName) { dispatch(fetchLogfile(buildId, logfileName, getState())) } - } catch (error) { + } catch (error) { dispatch(failedBuild(buildId, error, tenant.apiPrefix)) } } @@ -446,7 +446,7 @@ const shouldFetchBuildset = (buildsetId, state) => { export const fetchBuildsetIfNeeded = (tenant, buildsetId, force) => ( dispatch, getState) => { - if (force || shouldFetchBuildset(buildsetId, getState())) { - return dispatch(fetchBuildset(tenant, buildsetId)) - } + if (force || shouldFetchBuildset(buildsetId, getState())) { + return dispatch(fetchBuildset(tenant, buildsetId)) + } } diff --git a/web/src/actions/change.js b/web/src/actions/change.js index 88305aed0c..e9ead6de70 100644 --- a/web/src/actions/change.js +++ b/web/src/actions/change.js @@ -53,8 +53,8 @@ const shouldFetchChange = state => { export const fetchChangeIfNeeded = (tenant, change, force) => ( dispatch, getState) => { - if (force || shouldFetchChange(getState())) { - return dispatch(fetchChange(tenant, change)) - } - return Promise.resolve() + if (force || shouldFetchChange(getState())) { + return dispatch(fetchChange(tenant, change)) + } + return Promise.resolve() } diff --git a/web/src/actions/configErrors.js b/web/src/actions/configErrors.js index 8f52f06328..e4b17d801c 100644 --- a/web/src/actions/configErrors.js +++ b/web/src/actions/configErrors.js @@ -19,7 +19,7 @@ export function fetchConfigErrorsAction (tenant) { return fetchConfigErrors(tenant.apiPrefix) .then(response => { dispatch({type: 'FETCH_CONFIGERRORS_SUCCESS', - errors: response.data}) + errors: response.data}) }) .catch(error => { throw (error) diff --git a/web/src/actions/job.js b/web/src/actions/job.js index 0395826371..edab60cecf 100644 --- a/web/src/actions/job.js +++ b/web/src/actions/job.js @@ -59,8 +59,8 @@ const shouldFetchJob = (tenant, jobname, state) => { export const fetchJobIfNeeded = (tenant, jobname, force) => ( dispatch, getState) => { - if (force || shouldFetchJob(tenant, jobname, getState())) { - return dispatch(fetchJob(tenant, jobname)) - } - return Promise.resolve() + if (force || shouldFetchJob(tenant, jobname, getState())) { + return dispatch(fetchJob(tenant, jobname)) + } + return Promise.resolve() } diff --git a/web/src/actions/labels.js b/web/src/actions/labels.js index 0235500350..a285bbf7c7 100644 --- a/web/src/actions/labels.js +++ b/web/src/actions/labels.js @@ -54,7 +54,7 @@ const shouldFetchLabels = (tenant, state) => { export const fetchLabelsIfNeeded = (tenant, force) => ( dispatch, getState) => { - if (force || shouldFetchLabels(tenant, getState())) { - return dispatch(fetchLabels(tenant)) - } + if (force || shouldFetchLabels(tenant, getState())) { + return dispatch(fetchLabels(tenant)) + } } diff --git a/web/src/actions/nodes.js b/web/src/actions/nodes.js index a456c3fbe5..e4ce4d5a82 100644 --- a/web/src/actions/nodes.js +++ b/web/src/actions/nodes.js @@ -57,7 +57,7 @@ const shouldFetchNodes = (tenant, state) => { export const fetchNodesIfNeeded = (tenant, force) => ( dispatch, getState) => { - if (force || shouldFetchNodes(tenant, getState())) { - return dispatch(fetchNodes(tenant)) - } + if (force || shouldFetchNodes(tenant, getState())) { + return dispatch(fetchNodes(tenant)) + } } diff --git a/web/src/actions/project.js b/web/src/actions/project.js index a780ac8f36..de1da21970 100644 --- a/web/src/actions/project.js +++ b/web/src/actions/project.js @@ -91,8 +91,8 @@ const shouldFetchProject = (tenant, projectName, state) => { export const fetchProjectIfNeeded = (tenant, project, force) => ( dispatch, getState) => { - if (force || shouldFetchProject(tenant, project, getState())) { - return dispatch(fetchProject(tenant, project)) - } - return Promise.resolve() + if (force || shouldFetchProject(tenant, project, getState())) { + return dispatch(fetchProject(tenant, project)) + } + return Promise.resolve() } diff --git a/web/src/actions/projects.js b/web/src/actions/projects.js index 3e711c1caa..118388ab20 100644 --- a/web/src/actions/projects.js +++ b/web/src/actions/projects.js @@ -54,8 +54,8 @@ const shouldFetchProjects = (tenant, state) => { export const fetchProjectsIfNeeded = (tenant, force) => ( dispatch, getState) => { - if (force || shouldFetchProjects(tenant, getState())) { - return dispatch(fetchProjects(tenant)) - } - return Promise.resolve() + if (force || shouldFetchProjects(tenant, getState())) { + return dispatch(fetchProjects(tenant)) + } + return Promise.resolve() } diff --git a/web/src/api.js b/web/src/api.js index df49278b2b..bf9abc0b3c 100644 --- a/web/src/api.js +++ b/web/src/api.js @@ -97,7 +97,7 @@ const apiUrl = getZuulUrl() function getStreamUrl (apiPrefix) { const streamUrl = (apiUrl + apiPrefix) - .replace(/(http)(s)?:\/\//, 'ws$2://') + 'console-stream' + .replace(/(http)(s)?:\/\//, 'ws$2://') + 'console-stream' // console.log('Stream url is ', streamUrl) return streamUrl } diff --git a/web/src/containers/Errors.jsx b/web/src/containers/Errors.jsx index dcd3040e5d..f6ce45a4f1 100644 --- a/web/src/containers/Errors.jsx +++ b/web/src/containers/Errors.jsx @@ -44,10 +44,10 @@ function EmptyPage(props) { } EmptyPage.propTypes = { - title: PropTypes.string.isRequired, - icon: PropTypes.func.isRequired, - linkTarget: PropTypes.string.isRequired, - linkText: PropTypes.string.isRequired, + title: PropTypes.string.isRequired, + icon: PropTypes.func.isRequired, + linkTarget: PropTypes.string.isRequired, + linkText: PropTypes.string.isRequired, } export { EmptyPage } diff --git a/web/src/containers/build/Artifact.jsx b/web/src/containers/build/Artifact.jsx index e9d6243a4b..4d42594402 100644 --- a/web/src/containers/build/Artifact.jsx +++ b/web/src/containers/build/Artifact.jsx @@ -51,10 +51,10 @@ class ArtifactList extends React.Component { const nodes = artifacts.map((artifact, index) => { const node = {text: {artifact.name}, - icon: null} + icon: null} if (artifact.metadata) { node['nodes']= [{text: , - icon: ''}] + icon: ''}] } return node }) diff --git a/web/src/containers/build/BuildOutput.jsx b/web/src/containers/build/BuildOutput.jsx index c368824340..03fe17ce73 100644 --- a/web/src/containers/build/BuildOutput.jsx +++ b/web/src/containers/build/BuildOutput.jsx @@ -16,24 +16,24 @@ import * as React from 'react' import { Fragment } from 'react' import PropTypes from 'prop-types' import { - Card, - CardBody, - CardHeader, - DataList, - DataListItem, - DataListItemRow, - DataListItemCells, - DataListCell, - Label, - Flex, - FlexItem, + Card, + CardBody, + CardHeader, + DataList, + DataListItem, + DataListItemRow, + DataListItemCells, + DataListCell, + Label, + Flex, + FlexItem, } from '@patternfly/react-core' import { - CheckCircleIcon, - InfoCircleIcon, - TimesIcon, - TimesCircleIcon, + CheckCircleIcon, + InfoCircleIcon, + TimesIcon, + TimesCircleIcon, } from '@patternfly/react-icons' class BuildOutput extends React.Component { @@ -42,59 +42,59 @@ class BuildOutput extends React.Component { } renderHosts (hosts) { - return ( - - - Task run summary - - - - {Object.entries(hosts).map(([host, values]) => ( - - - {host} , - - - - - - - - - - - - - - ]} - /> - - - ))} - - - - ) + return ( + + + Task run summary + + + + {Object.entries(hosts).map(([host, values]) => ( + + + {host} , + + + + + + + + + + + + + + ]} + /> + + + ))} + + + + ) } renderFailedTask (host, task) { const max_lines = 42 return ( - - + +  Task {task.name}  failed running on host {host} - + {task.invocation && task.invocation.module_args && task.invocation.module_args._raw_params && ( -
-               {task.invocation.module_args._raw_params}
-             
- )} +
+              {task.invocation.module_args._raw_params}
+            
+ )} {task.msg && (
{task.msg}
)} @@ -109,23 +109,23 @@ class BuildOutput extends React.Component { {task.stdout_lines.slice(0, -max_lines).join('\n')} )} -
-              {task.stdout_lines.slice(-max_lines).join('\n')}
+              
+                {task.stdout_lines.slice(-max_lines).join('\n')}
               
- + )} {task.stderr_lines && task.stderr_lines.length > 0 && ( {task.stderr_lines.length > max_lines && ( -
-
-                      {task.stderr_lines.slice(0, -max_lines).join('\n')}
-                    
-
- )} -
-              {task.stderr_lines.slice(-max_lines).join('\n')}
-            
+
+
+                    {task.stderr_lines.slice(0, -max_lines).join('\n')}
+                  
+
+ )} +
+                {task.stderr_lines.slice(-max_lines).join('\n')}
+              
)} @@ -137,11 +137,11 @@ class BuildOutput extends React.Component { const { output } = this.props return ( - {this.renderHosts(output)} - {Object.entries(output) - .filter(([, values]) => values.failed.length > 0) - .map(([host, values]) => (values.failed.map(failed => ( - this.renderFailedTask(host, failed)))))} + {this.renderHosts(output)} + {Object.entries(output) + .filter(([, values]) => values.failed.length > 0) + .map(([host, values]) => (values.failed.map(failed => ( + this.renderFailedTask(host, failed)))))} ) } diff --git a/web/src/containers/build/Console.jsx b/web/src/containers/build/Console.jsx index 0e6c06f8e7..3e065db94e 100644 --- a/web/src/containers/build/Console.jsx +++ b/web/src/containers/build/Console.jsx @@ -228,9 +228,9 @@ class HostTask extends React.Component { let duration = moment.duration( moment(task.task.duration.end).diff(task.task.duration.start) ).format({ - template: 'h [hr] m [min] s [sec]', - largest: 2, - minValue: 1, + template: 'h [hr] m [min] s [sec]', + largest: 2, + minValue: 1, }) ai.push( @@ -273,7 +273,7 @@ class HostTask extends React.Component { } + dialogClassName="zuul-console-task-detail"> ]} - > -
-

User configurable settings are saved in browser local storage only.

- -
+ > +
+

User configurable settings are saved in browser local storage only.

+ +
- + ) } } export default connect(state => ({ - preferences: state.preferences, - }))(ConfigModal) + preferences: state.preferences, +}))(ConfigModal) diff --git a/web/src/containers/job/Job.jsx b/web/src/containers/job/Job.jsx index 2e62ae09ec..0ff33c5303 100644 --- a/web/src/containers/job/Job.jsx +++ b/web/src/containers/job/Job.jsx @@ -87,7 +87,7 @@ class Job extends React.Component { variant={job[variantIdx]} descriptionMaxHeight={descriptionMaxHeight} parent={this} - /> + /> diff --git a/web/src/containers/job/JobProject.jsx b/web/src/containers/job/JobProject.jsx index a34271b609..5cff95b399 100644 --- a/web/src/containers/job/JobProject.jsx +++ b/web/src/containers/job/JobProject.jsx @@ -27,9 +27,9 @@ class JobProject extends React.Component { {project.project_name} {project.override_branch && ( - ' ( override-branch: ' + project.override_branch + ')')} + ' ( override-branch: ' + project.override_branch + ')')} {project.override_checkout && ( - ' ( override-checkout: ' + project.override_checkout+ ')')} + ' ( override-checkout: ' + project.override_checkout+ ')')} ) } diff --git a/web/src/containers/job/JobVariant.jsx b/web/src/containers/job/JobVariant.jsx index 2bd5984c18..5e33e028d5 100644 --- a/web/src/containers/job/JobVariant.jsx +++ b/web/src/containers/job/JobVariant.jsx @@ -68,12 +68,12 @@ class JobVariant extends React.Component { return (
- {status.map((item, idx) => ( -
- - {item.name} -
- ))} + {status.map((item, idx) => ( +
+ + {item.name} +
+ ))}
) } @@ -145,10 +145,10 @@ class JobVariant extends React.Component { } value = ( { - if (height > descriptionMaxHeight) { - this.props.parent.setState({descriptionMaxHeight: height}) - } - }}> + if (height > descriptionMaxHeight) { + this.props.parent.setState({descriptionMaxHeight: height}) + } + }}>
{value}
diff --git a/web/src/containers/job/Nodeset.jsx b/web/src/containers/job/Nodeset.jsx index 14aba1b7d9..7e0055a2d7 100644 --- a/web/src/containers/job/Nodeset.jsx +++ b/web/src/containers/job/Nodeset.jsx @@ -53,7 +53,7 @@ class Nodeset extends React.Component { {groups.length > 0 && ' (' + groups.map(item => (item)) + ') '} ) - })} + })} ) return ( diff --git a/web/src/containers/jobs/Jobs.jsx b/web/src/containers/jobs/Jobs.jsx index 9bd54ca68c..d7ab4bc691 100644 --- a/web/src/containers/jobs/Jobs.jsx +++ b/web/src/containers/jobs/Jobs.jsx @@ -117,11 +117,11 @@ class JobsList extends React.Component { let filters = filter.replace(/ +/g, ',').split(',') for (let job of jobs) { filters.forEach(jobFilter => { - if (jobFilter && ( - (job.name.indexOf(jobFilter) !== -1) || + if (jobFilter && ( + (job.name.indexOf(jobFilter) !== -1) || (job.description && job.description.indexOf(jobFilter) !== -1))) { getNode(job, !filtered) - } + } }) } } @@ -171,7 +171,7 @@ class JobsList extends React.Component { {this.setState({filter: ''}) - this.filter.value = ''}} + this.filter.value = ''}} style={{cursor: 'pointer', zIndex: 10, pointerEvents: 'auto'}} > diff --git a/web/src/containers/status/Change.jsx b/web/src/containers/status/Change.jsx index b4d9be31d0..30043d1036 100644 --- a/web/src/containers/status/Change.jsx +++ b/web/src/containers/status/Change.jsx @@ -51,9 +51,9 @@ class Change extends React.Component { } } const icon = ( - + ) if (change.live) { return ( diff --git a/web/src/containers/status/ChangePanel.jsx b/web/src/containers/status/ChangePanel.jsx index 9f3f3456a4..a407bb6c84 100644 --- a/web/src/containers/status/ChangePanel.jsx +++ b/web/src/containers/status/ChangePanel.jsx @@ -203,7 +203,7 @@ class ChangePanel extends React.Component { return (
+ title={title}>
+ onClick={this.onClick}>
{change.project} diff --git a/web/src/containers/status/ChangeQueue.jsx b/web/src/containers/status/ChangeQueue.jsx index 97218b76a2..8bb45899cd 100644 --- a/web/src/containers/status/ChangeQueue.jsx +++ b/web/src/containers/status/ChangeQueue.jsx @@ -40,7 +40,7 @@ class ChangeQueue extends React.Component { queue={queue} expanded={expanded} key={changeIdx.toString() + idx} - />) + />) }) }) return ( diff --git a/web/src/containers/status/Pipeline.jsx b/web/src/containers/status/Pipeline.jsx index 0c0d06fe86..0d4f67de8c 100644 --- a/web/src/containers/status/Pipeline.jsx +++ b/web/src/containers/status/Pipeline.jsx @@ -95,7 +95,7 @@ class Pipeline extends React.Component { changes.forEach(change => { filters.forEach(changeFilter => { if (changeFilter && ( - (change.project && change.project.indexOf(changeFilter) !== -1) || + (change.project && change.project.indexOf(changeFilter) !== -1) || (change.id && change.id.indexOf(changeFilter) !== -1))) { found = true return @@ -127,17 +127,17 @@ class Pipeline extends React.Component { ) : ''}
{pipeline.change_queues.filter(item => item.heads.length > 0) - .filter(item => (!filter || ( - filter.indexOf(pipeline.name) !== -1 || + .filter(item => (!filter || ( + filter.indexOf(pipeline.name) !== -1 || this.filterQueue(item, filter) - ))) + ))) .map(changeQueue => ( + /> ))}
) diff --git a/web/src/containers/timezone/SelectTz.jsx b/web/src/containers/timezone/SelectTz.jsx index 8955129aa8..aaa585336f 100644 --- a/web/src/containers/timezone/SelectTz.jsx +++ b/web/src/containers/timezone/SelectTz.jsx @@ -20,8 +20,8 @@ import { setTimezoneAction } from '../../actions/timezone' class SelectTz extends React.Component { static propTypes = { - dispatch: PropTypes.func - } + dispatch: PropTypes.func + } state = { availableTz: moment.tz.names().map(item => ({value: item, label: item})), @@ -94,27 +94,27 @@ class SelectTz extends React.Component { }) } return ( -
+