1
1
import * as React from 'react' ;
2
2
import { useTranslation } from 'react-i18next' ;
3
3
import { Flex , FlexItem } from '@patternfly/react-core' ;
4
+ import {
5
+ useActiveNamespace ,
6
+ useFlag ,
7
+ } from '@openshift-console/dynamic-plugin-sdk' ;
4
8
import { formatPrometheusDuration , parsePrometheusDuration } from './dateTime' ;
5
9
import NameSpaceDropdown from './NamespaceDropdown' ;
6
10
import TimeRangeDropdown from './TimeRangeDropdown' ;
7
11
import RefreshDropdown from './RefreshDropdown' ;
8
12
import { IntervalOptions , TimeRangeOptionsK8s , useQueryParams } from './utils' ;
9
- import { useActiveNamespace } from '@openshift-console/dynamic-plugin-sdk' ;
10
13
import PipelineRunsStatusCardK8s from './PipelineRunsStatusCardK8s' ;
11
14
import PipelineRunsNumbersChartK8s from './PipelineRunsNumbersChartK8s' ;
12
15
import PipelineRunsTotalCardK8s from './PipelineRunsTotalCardK8s' ;
13
16
import PipelineRunsDurationCardK8s from './PipelineRunsDurationCardK8s' ;
14
17
import PipelineRunsListPageK8s from './list-pages/PipelineRunsListPageK8s' ;
15
18
import { K8sDataLimitationAlert } from './K8sDataLimitationAlert' ;
19
+ import { FLAGS } from '../../types' ;
20
+ import { ALL_NAMESPACES_KEY } from '../../consts' ;
21
+ import AllProjectsPage from '../projects-list/AllProjectsPage' ;
16
22
import './PipelinesOverview.scss' ;
17
23
18
24
const PipelinesOverviewPageK8s : React . FC = ( ) => {
19
25
const { t } = useTranslation ( 'plugin__pipelines-console-plugin' ) ;
26
+ const canListNS = useFlag ( FLAGS . CAN_LIST_NS ) ;
20
27
const [ activeNamespace , setActiveNamespace ] = useActiveNamespace ( ) ;
21
- const [ namespace , setNamespace ] = React . useState ( activeNamespace ) ;
22
28
const [ timespan , setTimespan ] = React . useState ( parsePrometheusDuration ( '1d' ) ) ;
23
29
const [ interval , setInterval ] = React . useState (
24
30
parsePrometheusDuration ( '30s' ) ,
25
31
) ;
26
- React . useEffect ( ( ) => {
27
- setActiveNamespace ( namespace ) ;
28
- } , [ namespace ] ) ;
29
32
30
33
useQueryParams ( {
31
34
key : 'refreshinterval' ,
@@ -47,6 +50,10 @@ const PipelinesOverviewPageK8s: React.FC = () => {
47
50
loadFormat : parsePrometheusDuration ,
48
51
} ) ;
49
52
53
+ if ( ! canListNS && activeNamespace === ALL_NAMESPACES_KEY ) {
54
+ return < AllProjectsPage pageTitle = { t ( 'Overview' ) } /> ;
55
+ }
56
+
50
57
return (
51
58
< >
52
59
< div className = "co-m-nav-title" >
@@ -59,7 +66,10 @@ const PipelinesOverviewPageK8s: React.FC = () => {
59
66
</ div >
60
67
< Flex className = "project-dropdown-label__flex" >
61
68
< FlexItem >
62
- < NameSpaceDropdown selected = { namespace } setSelected = { setNamespace } />
69
+ < NameSpaceDropdown
70
+ selected = { activeNamespace }
71
+ setSelected = { setActiveNamespace }
72
+ />
63
73
</ FlexItem >
64
74
< FlexItem >
65
75
< TimeRangeDropdown timespan = { timespan } setTimespan = { setTimespan } />
@@ -73,7 +83,7 @@ const PipelinesOverviewPageK8s: React.FC = () => {
73
83
timespan = { timespan }
74
84
domain = { { y : [ 0 , 100 ] } }
75
85
bordered = { true }
76
- namespace = { namespace }
86
+ namespace = { activeNamespace }
77
87
interval = { interval }
78
88
/>
79
89
@@ -84,7 +94,7 @@ const PipelinesOverviewPageK8s: React.FC = () => {
84
94
className = "pipelines-overview__cards"
85
95
>
86
96
< PipelineRunsDurationCardK8s
87
- namespace = { namespace }
97
+ namespace = { activeNamespace }
88
98
timespan = { timespan }
89
99
interval = { interval }
90
100
bordered = { true }
@@ -96,7 +106,7 @@ const PipelinesOverviewPageK8s: React.FC = () => {
96
106
className = "pipelines-overview__cards"
97
107
>
98
108
< PipelineRunsTotalCardK8s
99
- namespace = { namespace }
109
+ namespace = { activeNamespace }
100
110
timespan = { timespan }
101
111
interval = { interval }
102
112
bordered = { true }
@@ -108,7 +118,7 @@ const PipelinesOverviewPageK8s: React.FC = () => {
108
118
className = "pipelines-overview__cards"
109
119
>
110
120
< PipelineRunsNumbersChartK8s
111
- namespace = { namespace }
121
+ namespace = { activeNamespace }
112
122
timespan = { timespan }
113
123
interval = { interval }
114
124
domain = { { y : [ 0 , 500 ] } }
@@ -119,7 +129,7 @@ const PipelinesOverviewPageK8s: React.FC = () => {
119
129
</ div >
120
130
< div className = "pipelines-metrics__background" >
121
131
< PipelineRunsListPageK8s
122
- namespace = { namespace }
132
+ namespace = { activeNamespace }
123
133
timespan = { timespan }
124
134
interval = { interval }
125
135
/>
0 commit comments