@@ -6,8 +6,13 @@ import Tabs from '@material-ui/core/Tabs';
66import Tab from '@material-ui/core/Tab' ;
77import Typography from '@material-ui/core/Typography' ;
88import MUIDataTable from "mui-datatables" ;
9+ import TableRow from "@material-ui/core/TableRow" ;
10+ import TableCell from "@material-ui/core/TableCell" ;
911import axios from 'axios'
1012
13+ import JobDetailsDialog from './JobDetailsDialog' ;
14+
15+
1116function TabContainer ( props ) {
1217 return (
1318 < Typography component = "div" style = { { padding : 8 * 3 } } >
@@ -35,7 +40,8 @@ class SimpleTabs extends React.Component {
3540 value : 0 ,
3641 jobs : [ ] ,
3742 datasets : [ ] ,
38- namespace : null
43+ namespace : null ,
44+ jobDetails : { runs : [ ] }
3945 } ;
4046 }
4147
@@ -47,7 +53,7 @@ class SimpleTabs extends React.Component {
4753 } ) ;
4854 axios . get ( '/api/v1/namespaces/' + namespace + '/datasets/' ) . then ( ( response ) => {
4955 const datasetData = response . data
50- const datasetRows = datasetData . datasets . map ( dataset => [ dataset . name , dataset . createdAt ] )
56+ const datasetRows = datasetData . datasets . map ( dataset => [ dataset . name , dataset . urn , dataset . createdAt ] )
5157 this . setState ( { datasets : datasetRows } )
5258 } ) ;
5359 }
@@ -67,45 +73,82 @@ class SimpleTabs extends React.Component {
6773 this . setState ( { value } ) ;
6874 } ;
6975
76+ handleJobRowClick = ( rowData , rowState ) => {
77+ const jobName = rowData [ 0 ]
78+ var jobRuns = [ ]
79+ axios . get ( '/api/v1/namespaces/' + this . state . namespace + '/jobs/' + jobName + '/runs' ) . then ( ( response ) => {
80+ jobRuns = response . data ;
81+ this . setState (
82+ {
83+ jobDetails : {
84+ runs : jobRuns
85+ }
86+ } )
87+ this . setState ( { showJobDetails : true } ) ;
88+ } ) ;
89+ }
90+
91+ handleJobDetailsClose = ( ) => {
92+ this . setState ( { showJobDetails : false } ) ;
93+ }
94+
7095 render ( ) {
7196 const { classes } = this . props ;
7297 const { value } = this . state ;
73- const jobColumns = [ "Name" , "Description" , "Created At" ] ;
98+ const jobColumns = [
99+ "Name" ,
100+ "Description" ,
101+ "Created At"
102+ ] ;
74103 const datasetColumns = [ "URN" , "Created At" ] ;
75104
76105 const options = {
77106 filter : true ,
78- filterType : 'dropdown'
107+ filterType : 'dropdown' ,
108+ onRowClick : this . handleJobRowClick
79109 } ;
80110
81111 return (
82- < div className = { classes . root } >
83- < AppBar position = "static" >
84- < Tabs value = { value } onChange = { this . handleChange } >
85- < Tab label = "Jobs" />
86- < Tab label = "Datasets" />
87- </ Tabs >
88- </ AppBar >
89- { value === 0 &&
90- < TabContainer >
91- < MUIDataTable
92- title = { "Jobs" }
93- data = { this . state . jobs }
94- columns = { jobColumns }
95- options = { options }
96- />
97- </ TabContainer >
98- }
99- { value === 1 &&
100- < TabContainer >
101- < MUIDataTable
102- title = { "Datasets" }
103- data = { this . state . datasets }
104- columns = { datasetColumns }
105- options = { options }
106- />
107- </ TabContainer >
108- } </ div >
112+ < React . Fragment >
113+ < div className = { classes . root } >
114+ < AppBar position = "static" >
115+ < Tabs value = { value } onChange = { this . handleChange } >
116+ < Tab label = "Jobs" />
117+ < Tab label = "Datasets" />
118+ </ Tabs >
119+ </ AppBar >
120+ { value === 0 &&
121+ < TabContainer >
122+ < MUIDataTable
123+ title = { "Jobs" }
124+ data = { this . state . jobs }
125+ columns = { jobColumns }
126+ options = { options }
127+ />
128+ </ TabContainer >
129+ }
130+ { value === 1 &&
131+ < TabContainer >
132+ < MUIDataTable
133+ title = { "Datasets" }
134+ data = { this . state . datasets }
135+ columns = { datasetColumns }
136+ options = { options }
137+ />
138+ </ TabContainer >
139+ }
140+ </ div >
141+
142+ { /* Job Details Dialog */ }
143+ < JobDetailsDialog
144+ open = { this . state . showJobDetails }
145+ onClose = { this . handleJobDetailsClose }
146+ jobDetails = { this . state . jobDetails }
147+ />
148+
149+
150+ { /* Dataset Details Dialog */ }
151+ </ React . Fragment >
109152 ) ;
110153 }
111154}
0 commit comments