1
1
import * as React from "react" ;
2
- import { Dropdown , TextField , PrimaryButton } from "@fluentui/react" ;
2
+ import { Dropdown , TextField , PrimaryButton , Stack , Checkbox } from "@fluentui/react" ;
3
3
import nlsHPCC from "src/nlsHPCC" ;
4
- import { SashaService } from "@hpcc-js/comms" ;
4
+ import { scopedLogger } from "@hpcc-js/util" ;
5
+ import { SashaService , WsSasha } from "@hpcc-js/comms" ;
5
6
6
- interface SashaProps { }
7
+ const logger = scopedLogger ( "src-react/components/Sasha.tsx" ) ;
8
+
9
+ interface SashaProps { }
7
10
8
11
export const Sasha : React . FunctionComponent < SashaProps > = ( ) => {
9
12
const [ selectedOption , setSelectedOption ] = React . useState ( "" ) ;
10
13
const [ wuid , setWuid ] = React . useState ( "" ) ;
14
+ const [ cluster , setCluster ] = React . useState ( "" ) ;
15
+ const [ owner , setOwner ] = React . useState ( "" ) ;
16
+ const [ jobName , setJobName ] = React . useState ( "" ) ;
17
+ const [ stateFilter , setStateFilter ] = React . useState ( "" ) ;
18
+ const [ fromDate , setFromDate ] = React . useState ( "" ) ;
19
+ const [ toDate , setToDate ] = React . useState ( "" ) ;
20
+ const [ beforeWU , setBeforeWU ] = React . useState ( "" ) ;
21
+ const [ afterWU , setAfterWU ] = React . useState ( "" ) ;
22
+ const [ outputFields , setOutputFields ] = React . useState ( "" ) ;
23
+ const [ archived , setArchived ] = React . useState ( false ) ;
24
+ const [ online , setOnline ] = React . useState ( false ) ;
25
+ const [ includeDT , setIncludeDT ] = React . useState ( false ) ;
26
+ const [ descending , setDescending ] = React . useState ( false ) ;
27
+
11
28
const [ result , setResult ] = React . useState ( "" ) ;
12
29
13
- // Create an instance of SashaService (adjust baseUrl if needed)
14
30
const sashaService = new SashaService ( { baseUrl : "" } ) ;
15
31
16
32
const handleOptionChange = ( event : React . FormEvent < HTMLDivElement > , option : any ) => {
@@ -46,11 +62,53 @@ export const Sasha: React.FunctionComponent<SashaProps> = () => {
46
62
case "archiveDFUWorkUnit" :
47
63
// Implement archiveDFUWorkUnit function call
48
64
break ;
49
- case "backupECLWorkUnit" :
50
- // Implement backupECLWorkUnit function call
65
+ case "listECLWorkunit" :
66
+ sashaService . ListWU ( {
67
+ WUType : WsSasha . WUTypes . ECL ,
68
+ Wuid : wuid ,
69
+ Cluster : cluster ,
70
+ Owner : owner ,
71
+ JobName : jobName ,
72
+ State : stateFilter ,
73
+ FromDate : fromDate ,
74
+ ToDate : toDate ,
75
+ Archived : archived ,
76
+ Online : online ,
77
+ IncludeDT : includeDT ,
78
+ BeforeWU : beforeWU ,
79
+ AfterWU : afterWU ,
80
+ MaxNumberWUs : 500 ,
81
+ Descending : descending ,
82
+ OutputFields : outputFields
83
+ } )
84
+ . then ( response => {
85
+ setResult ( response . Result ) ;
86
+ } )
87
+ . catch ( err => logger . error ( err ) ) ;
51
88
break ;
52
- case "backupDFUWorkUnit" :
53
- // Implement backupDFUWorkUnit function call
89
+ case "listDFUWorkunit" :
90
+ sashaService . ListWU ( {
91
+ WUType : WsSasha . WUTypes . DFU ,
92
+ Wuid : wuid ,
93
+ Cluster : cluster ,
94
+ Owner : owner ,
95
+ JobName : jobName ,
96
+ State : stateFilter ,
97
+ FromDate : fromDate ,
98
+ ToDate : toDate ,
99
+ Archived : archived ,
100
+ Online : online ,
101
+ IncludeDT : includeDT ,
102
+ BeforeWU : beforeWU ,
103
+ AfterWU : afterWU ,
104
+ MaxNumberWUs : 500 ,
105
+ Descending : descending ,
106
+ OutputFields : outputFields
107
+ } )
108
+ . then ( response => {
109
+ setResult ( response . Result ) ;
110
+ } )
111
+ . catch ( err => logger . error ( err ) ) ;
54
112
break ;
55
113
default :
56
114
console . log ( "Invalid option selected" ) ;
@@ -62,36 +120,125 @@ export const Sasha: React.FunctionComponent<SashaProps> = () => {
62
120
return (
63
121
< div >
64
122
< form onSubmit = { handleSubmit } >
65
- < Dropdown
66
- placeholder = { nlsHPCC . SelectAnOption }
67
- selectedKey = { selectedOption }
68
- onChange = { handleOptionChange }
69
- options = { [
70
- { key : "" , text : nlsHPCC . SelectAnOption } ,
71
- { key : "getVersion" , text : nlsHPCC . GetVersion } ,
72
- { key : "getLastServerMessage" , text : nlsHPCC . GetLastServerMessage } ,
73
- { key : "restoreECLWorkUnit" , text : nlsHPCC . RestoreECLWorkunit } ,
74
- { key : "restoreDFUWorkUnit" , text : nlsHPCC . RestoreDFUWorkunit } ,
75
- { key : "archiveECLWorkUnit" , text : nlsHPCC . ArchiveECLWorkunit } ,
76
- { key : "archiveDFUWorkUnit" , text : nlsHPCC . ArchiveDFUWorkunit } ,
77
- { key : "backupECLWorkUnit" , text : nlsHPCC . BackupECLWorkunit } ,
78
- { key : "backupDFUWorkUnit" , text : nlsHPCC . BackupDFUWorkunit }
79
- ] }
80
- styles = { { dropdown : { width : 400 } } }
81
- />
82
- { [ "restoreECLWorkUnit" , "restoreDFUWorkUnit" , "archiveECLWorkUnit" , "archiveDFUWorkUnit" , "backupECLWorkUnit" , "backupDFUWorkUnit" ] . includes ( selectedOption ) && (
83
- < div >
84
- < TextField
85
- label = { nlsHPCC . WUID }
86
- value = { wuid }
87
- onChange = { ( event : React . FormEvent < HTMLInputElement > , newValue ?: string ) => setWuid ( newValue || "" ) }
88
- styles = { { fieldGroup : { width : 400 } } }
89
- />
90
- </ div >
91
- ) }
92
- < PrimaryButton type = "submit" > { nlsHPCC . Submit } </ PrimaryButton >
93
- { defaultValue }
94
- { result && < div > { nlsHPCC . Results } : { result } </ div > }
123
+ < Stack tokens = { { childrenGap : 15 , padding : 10 } } >
124
+ < Dropdown
125
+ placeholder = { nlsHPCC . SelectAnOption }
126
+ selectedKey = { selectedOption }
127
+ onChange = { handleOptionChange }
128
+ options = { [
129
+ { key : "" , text : nlsHPCC . SelectAnOption } ,
130
+ { key : "getVersion" , text : nlsHPCC . GetVersion } ,
131
+ { key : "getLastServerMessage" , text : nlsHPCC . GetLastServerMessage } ,
132
+ { key : "restoreECLWorkUnit" , text : nlsHPCC . RestoreECLWorkunit } ,
133
+ { key : "restoreDFUWorkUnit" , text : nlsHPCC . RestoreDFUWorkunit } ,
134
+ { key : "archiveECLWorkUnit" , text : nlsHPCC . ArchiveECLWorkunit } ,
135
+ { key : "archiveDFUWorkUnit" , text : nlsHPCC . ArchiveDFUWorkunit } ,
136
+ { key : "listECLWorkunit" , text : nlsHPCC . ListECLWorkunit } ,
137
+ { key : "listDFUWorkunit" , text : nlsHPCC . ListDFUWorkunit }
138
+ ] }
139
+ styles = { { dropdown : { width : 400 } } }
140
+ />
141
+
142
+ { [ "listECLWorkunit" , "listDFUWorkunit" ] . includes ( selectedOption ) ? (
143
+ < Stack tokens = { { childrenGap : 10 } } >
144
+ < TextField
145
+ label = { nlsHPCC . WUID }
146
+ value = { wuid }
147
+ onChange = { ( event , newValue ?: string ) => setWuid ( newValue || "" ) }
148
+ styles = { { fieldGroup : { width : 400 } } }
149
+ />
150
+ < TextField
151
+ label = "Cluster"
152
+ value = { cluster }
153
+ onChange = { ( event , newValue ?: string ) => setCluster ( newValue || "" ) }
154
+ styles = { { fieldGroup : { width : 400 } } }
155
+ />
156
+ < TextField
157
+ label = "Owner"
158
+ value = { owner }
159
+ onChange = { ( event , newValue ?: string ) => setOwner ( newValue || "" ) }
160
+ styles = { { fieldGroup : { width : 400 } } }
161
+ />
162
+ < TextField
163
+ label = "Job Name"
164
+ value = { jobName }
165
+ onChange = { ( event , newValue ?: string ) => setJobName ( newValue || "" ) }
166
+ styles = { { fieldGroup : { width : 400 } } }
167
+ />
168
+ < TextField
169
+ label = "State"
170
+ value = { stateFilter }
171
+ onChange = { ( event , newValue ?: string ) => setStateFilter ( newValue || "" ) }
172
+ styles = { { fieldGroup : { width : 400 } } }
173
+ />
174
+ < TextField
175
+ label = "From Date"
176
+ value = { fromDate }
177
+ onChange = { ( event , newValue ?: string ) => setFromDate ( newValue || "" ) }
178
+ styles = { { fieldGroup : { width : 400 } } }
179
+ />
180
+ < TextField
181
+ label = "To Date"
182
+ value = { toDate }
183
+ onChange = { ( event , newValue ?: string ) => setToDate ( newValue || "" ) }
184
+ styles = { { fieldGroup : { width : 400 } } }
185
+ />
186
+ < TextField
187
+ label = "Before WU"
188
+ value = { beforeWU }
189
+ onChange = { ( event , newValue ?: string ) => setBeforeWU ( newValue || "" ) }
190
+ styles = { { fieldGroup : { width : 400 } } }
191
+ />
192
+ < TextField
193
+ label = "After WU"
194
+ value = { afterWU }
195
+ onChange = { ( event , newValue ?: string ) => setAfterWU ( newValue || "" ) }
196
+ styles = { { fieldGroup : { width : 400 } } }
197
+ />
198
+ < TextField
199
+ label = "Output Fields"
200
+ value = { outputFields }
201
+ onChange = { ( event , newValue ?: string ) => setOutputFields ( newValue || "" ) }
202
+ styles = { { fieldGroup : { width : 400 } } }
203
+ />
204
+ < Stack horizontal tokens = { { childrenGap : 20 } } >
205
+ < Checkbox
206
+ label = "Archived"
207
+ checked = { archived }
208
+ onChange = { ( e , checked ) => setArchived ( ! ! checked ) }
209
+ />
210
+ < Checkbox
211
+ label = "Online"
212
+ checked = { online }
213
+ onChange = { ( e , checked ) => setOnline ( ! ! checked ) }
214
+ />
215
+ < Checkbox
216
+ label = "Include DT"
217
+ checked = { includeDT }
218
+ onChange = { ( e , checked ) => setIncludeDT ( ! ! checked ) }
219
+ />
220
+ < Checkbox
221
+ label = "Descending"
222
+ checked = { descending }
223
+ onChange = { ( e , checked ) => setDescending ( ! ! checked ) }
224
+ />
225
+ </ Stack >
226
+ </ Stack >
227
+ ) : (
228
+ ( [ "restoreECLWorkUnit" , "restoreDFUWorkUnit" , "archiveECLWorkUnit" , "archiveDFUWorkUnit" ] . includes ( selectedOption ) ) && (
229
+ < TextField
230
+ label = { nlsHPCC . WUID }
231
+ value = { wuid }
232
+ onChange = { ( event , newValue ?: string ) => setWuid ( newValue || "" ) }
233
+ styles = { { fieldGroup : { width : 400 } } }
234
+ />
235
+ )
236
+ ) }
237
+
238
+ < PrimaryButton type = "submit" > { nlsHPCC . Submit } </ PrimaryButton >
239
+ { defaultValue }
240
+ { result && < div > { nlsHPCC . Results } : { result } </ div > }
241
+ </ Stack >
95
242
</ form >
96
243
</ div >
97
244
) ;
0 commit comments