|
1 | | -import { useState, useEffect } from 'react'; |
2 | 1 | import { OcmResource } from '../../../src/data/loader' |
3 | 2 | import { Gallery, Title } from '@patternfly/react-core'; |
4 | 3 | import GalleryTableComponent from '../common/ConditionTable'; |
5 | | -import {DateFormat} from '../common/common' |
6 | | -export default function ShowAppliedManifestWorks() { |
7 | | - let [appliedManifestWorks, setAppliedManifestWorks] = useState<OcmResource[]>([]); |
| 4 | +import {DateFormat, kubeImage} from '../common/common' |
| 5 | +import Graph from '../common/Graph'; |
8 | 6 |
|
9 | | - useEffect(() => { |
10 | | - window.addEventListener("message", event => { |
11 | | - if ('crsDistribution' in event.data.msg && 'AppliedManifestWork' === event.data.msg.crsDistribution.kind) { |
12 | | - setAppliedManifestWorks(JSON.parse(event.data.msg.crsDistribution.crs)); |
13 | | - } |
14 | | - }); |
15 | | - }); |
16 | 7 |
|
17 | | - const AppliedResourcesColumn: Object[] = [ |
18 | | - |
| 8 | +type AppliedManifestWorksProps = { |
| 9 | + appliedManifestWorks: OcmResource[], |
| 10 | + kubeImages: kubeImage[] |
| 11 | +} |
| 12 | + |
| 13 | +export default function ShowAppliedManifestWorks(Props:AppliedManifestWorksProps) { |
| 14 | + |
| 15 | + |
| 16 | + const AppliedResourcesColumn: Object[] = [ |
19 | 17 | {title: "Resource Name",}, |
20 | 18 | {title: "Resource"}, |
21 | 19 | {title: "Group" , }, |
22 | 20 | {title: "Namespace" } |
23 | 21 | ] |
24 | 22 | return ( |
25 | 23 | <section className="component-row"> |
26 | | - { appliedManifestWorks.length > 0 && |
27 | | - <> |
| 24 | + { Props.appliedManifestWorks.length > 0 && |
| 25 | + <> |
| 26 | + |
28 | 27 | <Title headingLevel='h2' size='md' style={{ marginTop: '40px' }}>Applied ManifestWorks</Title> |
29 | 28 | <Gallery className='ocm-gallery' hasGutter={true} > |
30 | | - {appliedManifestWorks.map(appliedManifestWork => { |
| 29 | + {Props.appliedManifestWorks.map(appliedManifestWork => { |
| 30 | + console.log(`appliedManifestWork`) |
| 31 | + console.log(appliedManifestWork) |
31 | 32 | const row = appliedManifestWork.kr.status.appliedResources.map( (resource:any) => { |
32 | 33 | return [ resource.name, resource.resource, resource.group, resource.namespace] |
33 | 34 | }) |
34 | | - |
| 35 | + |
35 | 36 | return <GalleryTableComponent |
36 | 37 | title={`ManifestWork Name: ${appliedManifestWork.kr.spec.manifestWorkName}`} |
37 | 38 | subtitle={`Creation TimeStamp: ${new Date(appliedManifestWork.kr.metadata.creationTimestamp).toLocaleString("en-US",DateFormat)}`} |
38 | 39 | rows={row} |
39 | 40 | cells={AppliedResourcesColumn} |
40 | 41 | sort={{index: 1, direction:"asc"}} |
41 | 42 | id={`${appliedManifestWork.kr.spec.manifestWorkName}`} |
42 | | - /> |
| 43 | + > |
| 44 | + <Graph data={{ name: appliedManifestWork.kr.spec.manifestWorkName, |
| 45 | + namespace: appliedManifestWork.kr.metadata.namespace?appliedManifestWork.kr.metadata.namespace:'missing namespace', |
| 46 | + children: appliedManifestWork.kr.status.appliedResources.map( (appliedResources:any) => { |
| 47 | + |
| 48 | + return { |
| 49 | + group: appliedResources.group, |
| 50 | + name: appliedResources.name, |
| 51 | + namespace: appliedResources.namespace, |
| 52 | + kind: appliedResources.resource, |
| 53 | + version: appliedResources.version |
| 54 | + } |
| 55 | + }) |
| 56 | + } } images={Props.kubeImages} |
| 57 | + /> |
| 58 | + </GalleryTableComponent> |
43 | 59 | } |
44 | 60 | )} |
45 | 61 | </Gallery> |
|
0 commit comments