Browse Source

SONAR-12106 Add link to overall issues of a file in new slim header

tags/8.0
Wouter Admiraal 5 years ago
parent
commit
fc415711a8

+ 0
- 4
server/sonar-web/src/main/js/components/SourceViewer/SourceViewerHeaderSlim.css View File

align-items: center; align-items: center;
min-height: 25px; min-height: 25px;
} }

.source-viewer-header-slim-actions {
margin-left: calc(3 * var(--gridSize));
}

+ 32
- 4
server/sonar-web/src/main/js/components/SourceViewer/SourceViewerHeaderSlim.tsx View File

* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
import * as React from 'react'; import * as React from 'react';
import { Link } from 'react-router';
import * as classNames from 'classnames';
import DeferredSpinner from '../common/DeferredSpinner'; import DeferredSpinner from '../common/DeferredSpinner';
import Favorite from '../controls/Favorite'; import Favorite from '../controls/Favorite';
import ExpandSnippetIcon from '../icons-components/ExpandSnippetIcon'; import ExpandSnippetIcon from '../icons-components/ExpandSnippetIcon';
import QualifierIcon from '../icons-components/QualifierIcon'; import QualifierIcon from '../icons-components/QualifierIcon';
import { ButtonIcon } from '../ui/buttons'; import { ButtonIcon } from '../ui/buttons';
import { getPathUrlAsString, getBranchLikeUrl } from '../../helpers/urls';
import { translate } from '../../helpers/l10n';
import { getPathUrlAsString, getBranchLikeUrl, getComponentIssuesUrl } from '../../helpers/urls';
import { collapsedDirFromPath, fileFromPath } from '../../helpers/path'; import { collapsedDirFromPath, fileFromPath } from '../../helpers/path';
import { isMainBranch } from '../../helpers/branches';
import { isMainBranch, getBranchLikeQuery } from '../../helpers/branches';
import './SourceViewerHeaderSlim.css'; import './SourceViewerHeaderSlim.css';


export interface Props { export interface Props {
onExpand, onExpand,
sourceViewerFile sourceViewerFile
}: Props) { }: Props) {
const { key, path, project, projectName, q, subProject, subProjectName } = sourceViewerFile;
const {
key,
measures,
path,
project,
projectName,
q,
subProject,
subProjectName
} = sourceViewerFile;


return ( return (
<div className="source-viewer-header-slim display-flex-row display-flex-space-between"> <div className="source-viewer-header-slim display-flex-row display-flex-space-between">
)} )}
</div> </div>


{measures.issues !== undefined && (
<div
className={classNames('flex-0 big-spacer-left', {
'little-spacer-right': !expandable || loading
})}>
<Link
to={getComponentIssuesUrl(project, {
...getBranchLikeQuery(branchLike),
fileUuids: sourceViewerFile.uuid,
resolved: 'false'
})}>
{translate('source_viewer.view_all_issues')}
</Link>
</div>
)}

{expandable && ( {expandable && (
<DeferredSpinner className="little-spacer-right" loading={loading}> <DeferredSpinner className="little-spacer-right" loading={loading}>
<div className="source-viewer-header-slim-actions flex-0">
<div className="flex-0 big-spacer-left">
<ButtonIcon className="js-actions" onClick={onExpand}> <ButtonIcon className="js-actions" onClick={onExpand}>
<ExpandSnippetIcon /> <ExpandSnippetIcon />
</ButtonIcon> </ButtonIcon>

+ 42
- 2
server/sonar-web/src/main/js/components/SourceViewer/__tests__/__snapshots__/SourceViewerHeaderSlim-test.tsx.snap View File

</span> </span>
</div> </div>
</div> </div>
<div
className="flex-0 big-spacer-left"
>
<Link
onlyActiveOnIndex={false}
style={Object {}}
to={
Object {
"pathname": "/project/issues",
"query": Object {
"fileUuids": "foo-bar",
"id": "my-project",
"resolved": "false",
},
}
}
>
source_viewer.view_all_issues
</Link>
</div>
<DeferredSpinner <DeferredSpinner
className="little-spacer-right" className="little-spacer-right"
timeout={100} timeout={100}
> >
<div <div
className="source-viewer-header-slim-actions flex-0"
className="flex-0 big-spacer-left"
> >
<ButtonIcon <ButtonIcon
className="js-actions" className="js-actions"
</span> </span>
</div> </div>
</div> </div>
<div
className="flex-0 big-spacer-left"
>
<Link
onlyActiveOnIndex={false}
style={Object {}}
to={
Object {
"pathname": "/project/issues",
"query": Object {
"fileUuids": "foo-bar",
"id": "my-project",
"resolved": "false",
},
}
}
>
source_viewer.view_all_issues
</Link>
</div>
<DeferredSpinner <DeferredSpinner
className="little-spacer-right" className="little-spacer-right"
timeout={100} timeout={100}
> >
<div <div
className="source-viewer-header-slim-actions flex-0"
className="flex-0 big-spacer-left"
> >
<ButtonIcon <ButtonIcon
className="js-actions" className="js-actions"

+ 1
- 0
sonar-core/src/main/resources/org/sonar/l10n/core.properties View File

component_viewer.show_all_measures=Show all measures component_viewer.show_all_measures=Show all measures
component_viewer.no_component=The component has been removed or never existed. component_viewer.no_component=The component has been removed or never existed.


source_viewer.view_all_issues=See all issues in this file
source_viewer.covered=Covered by the following tests source_viewer.covered=Covered by the following tests
source_viewer.not_covered=Not covered by tests source_viewer.not_covered=Not covered by tests
source_viewer.conditions=conditions source_viewer.conditions=conditions

Loading…
Cancel
Save