aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main/js/apps
diff options
context:
space:
mode:
authorStas Vilchik <stas.vilchik@sonarsource.com>2017-07-27 09:13:54 +0200
committerJulien Lancelot <julien.lancelot@sonarsource.com>2017-07-31 11:27:51 +0200
commit8b1b4f0e63736a0592921246f343b95a3e591599 (patch)
treeed3e42eaa9d540d7a268b5815b403d6e7eeabf45 /server/sonar-web/src/main/js/apps
parentf3ad96dc83606a906d3058832cb7a85ee450df3a (diff)
downloadsonarqube-8b1b4f0e63736a0592921246f343b95a3e591599.tar.gz
sonarqube-8b1b4f0e63736a0592921246f343b95a3e591599.zip
apply applications feedback (#2297)
Diffstat (limited to 'server/sonar-web/src/main/js/apps')
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysesList.js5
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysis.js2
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityApp.js9
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAppContainer.js7
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityPageHeader.js18
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/ProjectActivityAnalysesList-test.js1
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/ProjectActivityPageHeader-test.js1
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityAnalysesList-test.js.snap21
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityApp-test.js.snap12
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/projectActivity.css1
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/utils.js1
11 files changed, 65 insertions, 13 deletions
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 e6622a72ef7..a7e94e0ef84 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
@@ -44,6 +44,7 @@ type Props = {
deleteAnalysis: (analysis: string) => Promise<*>,
deleteEvent: (analysis: string, event: string) => Promise<*>,
loading: boolean,
+ project: { qualifier: string },
query: Query,
updateQuery: RawQuery => void
};
@@ -166,7 +167,8 @@ export default class ProjectActivityAnalysesList extends React.PureComponent {
<ul
className={classNames('project-activity-versions-list', this.props.className)}
onScroll={this.handleScroll}
- ref={element => (this.scrollContainer = element)}>
+ ref={element => (this.scrollContainer = element)}
+ style={{ paddingTop: this.props.project.qualifier === 'APP' ? undefined : 52 }}>
{byVersionByDay.map((version, idx) => {
const days = Object.keys(version.byDay);
if (days.length <= 0) {
@@ -197,6 +199,7 @@ export default class ProjectActivityAnalysesList extends React.PureComponent {
addVersion={this.props.addVersion}
analysis={analysis}
canAdmin={this.props.canAdmin}
+ canCreateVersion={this.props.project.qualifier !== 'APP'}
changeEvent={this.props.changeEvent}
deleteAnalysis={this.props.deleteAnalysis}
deleteEvent={this.props.deleteEvent}
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 a94b2f6ce26..72067b95261 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
@@ -32,6 +32,7 @@ type Props = {
addVersion: (analysis: string, version: string) => Promise<*>,
analysis: Analysis,
canAdmin: boolean,
+ canCreateVersion: boolean,
changeEvent: (event: string, name: string) => Promise<*>,
deleteAnalysis: (analysis: string) => Promise<*>,
deleteEvent: (analysis: string, event: string) => Promise<*>,
@@ -77,6 +78,7 @@ export default class ProjectActivityAnalysis extends React.PureComponent {
</button>
<ul className="dropdown-menu dropdown-menu-right">
{!hasVersion &&
+ this.props.canCreateVersion &&
<li>
<AddEventForm
addEvent={this.props.addVersion}
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityApp.js b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityApp.js
index 0af7a5acd85..fb825ed45ad 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityApp.js
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityApp.js
@@ -38,7 +38,12 @@ type Props = {
deleteEvent: (analysis: string, event: string) => Promise<*>,
graphLoading: boolean,
loading: boolean,
- project: { configuration?: { showHistory: boolean }, key: string, leakPeriodDate: string },
+ project: {
+ configuration?: { showHistory: boolean },
+ key: string,
+ leakPeriodDate: string,
+ qualifier: string
+ },
metrics: Array<Metric>,
measuresHistory: Array<MeasureHistory>,
query: Query,
@@ -56,6 +61,7 @@ export default function ProjectActivityApp(props: Props) {
<ProjectActivityPageHeader
category={query.category}
from={query.from}
+ project={props.project}
to={query.to}
updateQuery={props.updateQuery}
/>
@@ -73,6 +79,7 @@ export default function ProjectActivityApp(props: Props) {
deleteAnalysis={props.deleteAnalysis}
deleteEvent={props.deleteEvent}
loading={props.loading}
+ project={props.project}
query={props.query}
updateQuery={props.updateQuery}
/>
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAppContainer.js b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAppContainer.js
index 1f9a5f2ab91..0ca8c21f1a6 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAppContainer.js
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAppContainer.js
@@ -44,7 +44,12 @@ import type { Analysis, MeasureHistory, Metric, Paging, Query } from '../types';
type Props = {
location: { pathname: string, query: RawQuery },
- project: { configuration?: { showHistory: boolean }, key: string, leakPeriodDate: string },
+ project: {
+ configuration?: { showHistory: boolean },
+ key: string,
+ leakPeriodDate: string,
+ qualifier: string
+ },
router: {
push: ({ pathname: string, query?: RawQuery }) => void,
replace: ({ pathname: string, query?: RawQuery }) => void
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityPageHeader.js b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityPageHeader.js
index 2f468c7c776..969af31ee63 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityPageHeader.js
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityPageHeader.js
@@ -23,13 +23,14 @@ import Select from 'react-select';
import ProjectActivityEventSelectOption from './ProjectActivityEventSelectOption';
import ProjectActivityEventSelectValue from './ProjectActivityEventSelectValue';
import ProjectActivityDateInput from './ProjectActivityDateInput';
-import { EVENT_TYPES } from '../utils';
+import { EVENT_TYPES, APPLICATION_EVENT_TYPES } from '../utils';
import { translate } from '../../../helpers/l10n';
import type { RawQuery } from '../../../helpers/query';
type Props = {
category?: string,
from: ?Date,
+ project: { qualifier: string },
to: ?Date,
updateQuery: RawQuery => void
};
@@ -38,18 +39,17 @@ export default class ProjectActivityPageHeader extends React.PureComponent {
options: Array<{ label: string, value: string }>;
props: Props;
- constructor(props: Props) {
- super(props);
- this.options = EVENT_TYPES.map(category => ({
- label: translate('event.category', category),
- value: category
- }));
- }
-
handleCategoryChange = (option: ?{ value: string }) =>
this.props.updateQuery({ category: option ? option.value : '' });
render() {
+ const eventTypes =
+ this.props.project.qualifier === 'APP' ? APPLICATION_EVENT_TYPES : EVENT_TYPES;
+ this.options = eventTypes.map(category => ({
+ label: translate('event.category', category),
+ value: category
+ }));
+
return (
<header className="page-header">
<Select
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/ProjectActivityAnalysesList-test.js b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/ProjectActivityAnalysesList-test.js
index 147fdeca7d6..c3d7833dd5d 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/ProjectActivityAnalysesList-test.js
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/ProjectActivityAnalysesList-test.js
@@ -78,6 +78,7 @@ const DEFAULT_PROPS = {
deleteAnalysis: () => {},
deleteEvent: () => {},
loading: false,
+ project: { qualifier: 'TRK' },
query: { category: '', graph: DEFAULT_GRAPH, project: 'org.sonarsource.sonarqube:sonarqube' },
updateQuery: () => {}
};
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/ProjectActivityPageHeader-test.js b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/ProjectActivityPageHeader-test.js
index 9fe17ba339a..f6faa2a1efa 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/ProjectActivityPageHeader-test.js
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/ProjectActivityPageHeader-test.js
@@ -27,6 +27,7 @@ it('should render correctly the list of series', () => {
<ProjectActivityPageHeader
category=""
from={new Date('2016-10-27T12:21:15+0200')}
+ project={{}}
updateQuery={() => {}}
/>
)
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityAnalysesList-test.js.snap b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityAnalysesList-test.js.snap
index 53dc51ec351..482868b4505 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityAnalysesList-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityAnalysesList-test.js.snap
@@ -4,6 +4,11 @@ exports[`should correctly filter analyses by category 1`] = `
<ul
className="project-activity-versions-list"
onScroll={[Function]}
+ style={
+ Object {
+ "paddingTop": 52,
+ }
+ }
>
<li>
<div
@@ -50,6 +55,7 @@ exports[`should correctly filter analyses by category 1`] = `
}
}
canAdmin={false}
+ canCreateVersion={true}
changeEvent={[Function]}
deleteAnalysis={[Function]}
deleteEvent={[Function]}
@@ -68,6 +74,11 @@ exports[`should correctly filter analyses by date range 1`] = `
<ul
className="project-activity-versions-list"
onScroll={[Function]}
+ style={
+ Object {
+ "paddingTop": 52,
+ }
+ }
>
<li>
<div
@@ -114,6 +125,7 @@ exports[`should correctly filter analyses by date range 1`] = `
}
}
canAdmin={false}
+ canCreateVersion={true}
changeEvent={[Function]}
deleteAnalysis={[Function]}
deleteEvent={[Function]}
@@ -132,6 +144,11 @@ exports[`should render correctly 1`] = `
<ul
className="project-activity-versions-list"
onScroll={[Function]}
+ style={
+ Object {
+ "paddingTop": 52,
+ }
+ }
>
<li>
<div
@@ -178,6 +195,7 @@ exports[`should render correctly 1`] = `
}
}
canAdmin={false}
+ canCreateVersion={true}
changeEvent={[Function]}
deleteAnalysis={[Function]}
deleteEvent={[Function]}
@@ -228,6 +246,7 @@ exports[`should render correctly 1`] = `
}
}
canAdmin={false}
+ canCreateVersion={true}
changeEvent={[Function]}
deleteAnalysis={[Function]}
deleteEvent={[Function]}
@@ -274,6 +293,7 @@ exports[`should render correctly 1`] = `
}
}
canAdmin={false}
+ canCreateVersion={true}
changeEvent={[Function]}
deleteAnalysis={[Function]}
deleteEvent={[Function]}
@@ -321,6 +341,7 @@ exports[`should render correctly 1`] = `
}
}
canAdmin={false}
+ canCreateVersion={true}
changeEvent={[Function]}
deleteAnalysis={[Function]}
deleteEvent={[Function]}
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityApp-test.js.snap b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityApp-test.js.snap
index 9912ce833fc..9a69a6e5a04 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityApp-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityApp-test.js.snap
@@ -11,6 +11,12 @@ exports[`should render correctly 1`] = `
/>
<ProjectActivityPageHeader
category=""
+ project={
+ Object {
+ "key": "org.sonarsource.sonarqube:sonarqube",
+ "leakPeriodDate": "2017-05-16T13:50:02+0200",
+ }
+ }
updateQuery={[Function]}
/>
<div
@@ -65,6 +71,12 @@ exports[`should render correctly 1`] = `
deleteAnalysis={[Function]}
deleteEvent={[Function]}
loading={false}
+ project={
+ Object {
+ "key": "org.sonarsource.sonarqube:sonarqube",
+ "leakPeriodDate": "2017-05-16T13:50:02+0200",
+ }
+ }
query={
Object {
"category": "",
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 e7688258d11..41ba543df0b 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
@@ -40,7 +40,6 @@
overflow: auto;
flex-grow: 1;
flex-shrink: 0;
- padding-top: 52px;
}
.project-activity-graphs {
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 63558f363cf..029092481cc 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/utils.js
+++ b/server/sonar-web/src/main/js/apps/projectActivity/utils.js
@@ -35,6 +35,7 @@ import type { RawQuery } from '../../helpers/query';
import type { Serie } from '../../components/charts/AdvancedTimeline';
export const EVENT_TYPES = ['VERSION', 'QUALITY_GATE', 'QUALITY_PROFILE', 'OTHER'];
+export const APPLICATION_EVENT_TYPES = ['QUALITY_GATE', 'OTHER'];
export const DEFAULT_GRAPH = 'issues';
export const GRAPH_TYPES = ['issues', 'coverage', 'duplications', 'custom'];
export const GRAPHS_METRICS_DISPLAYED = {