@@ -53,6 +53,18 @@ import {
53
53
TopbarIconButton ,
54
54
} from "components/FullPageLayout/Topbar" ;
55
55
import { Sidebar } from "components/FullPageLayout/Sidebar" ;
56
+ import ButtonGroup from "@mui/material/ButtonGroup" ;
57
+ import {
58
+ Popover ,
59
+ PopoverContent ,
60
+ PopoverTrigger ,
61
+ } from "components/Popover/Popover" ;
62
+ import { HelpTooltipTitle , HelpTooltipText , HelpTooltipLinksGroup , HelpTooltipLink } from "components/HelpTooltip/HelpTooltip" ;
63
+ import { docs } from "utils/docs" ;
64
+ import ExpandMoreOutlined from "@mui/icons-material/ExpandMoreOutlined" ;
65
+ import { ProvisionerTag } from "pages/HealthPage/ProvisionerDaemonsPage" ;
66
+ import { Stack } from "components/Stack/Stack" ;
67
+ import { additionalTags } from "utils/provisionertags" ;
56
68
57
69
type Tab = "logs" | "resources" | undefined ; // Undefined is to hide the tab
58
70
@@ -181,6 +193,16 @@ export const TemplateVersionEditor: FC<TemplateVersionEditorProps> = ({
181
193
}
182
194
} , [ buildLogs ] ) ;
183
195
196
+ const disabled = false ;
197
+ const extraTags = additionalTags ( templateVersion . job . tags ) ;
198
+ // const extraTags = {
199
+ // "key1": "value1",
200
+ // "1": "2",
201
+ // "3": "true",
202
+ // "5": "6",
203
+ // "seven": "0",
204
+ // } as Record<string,string>;
205
+
184
206
return (
185
207
< >
186
208
< div css = { { height : "100%" , display : "flex" , flexDirection : "column" } } >
@@ -236,20 +258,69 @@ export const TemplateVersionEditor: FC<TemplateVersionEditorProps> = ({
236
258
< TemplateVersionStatusBadge version = { templateVersion } />
237
259
) }
238
260
239
- < TopbarButton
240
- startIcon = {
241
- < PlayArrowOutlined
242
- css = { { color : theme . palette . success . light } }
243
- />
244
- }
245
- title = "Build template (Ctrl + Enter)"
246
- disabled = { disablePreview }
247
- onClick = { ( ) => {
248
- triggerPreview ( ) ;
261
+ < ButtonGroup
262
+ variant = "outlined"
263
+ css = { {
264
+ // Workaround to make the border transitions smoothly on button groups
265
+ "& > button:hover + button" : {
266
+ borderLeft : "1px solid #FFF" ,
267
+ } ,
249
268
} }
269
+ disabled = { disabled }
250
270
>
251
- Build
252
- </ TopbarButton >
271
+ < TopbarButton
272
+ startIcon = {
273
+ < PlayArrowOutlined
274
+ css = { { color : theme . palette . success . light } }
275
+ />
276
+ }
277
+ title = "Build template (Ctrl + Enter)"
278
+ disabled = { disablePreview }
279
+ onClick = { ( ) => {
280
+ triggerPreview ( ) ;
281
+ } }
282
+ >
283
+ Build
284
+ </ TopbarButton >
285
+ < Popover isDefaultOpen = { false } >
286
+ < PopoverTrigger >
287
+ < TopbarButton
288
+ data-testid = "build-parameters-button"
289
+ disabled = { disabled }
290
+ color = "neutral"
291
+ css = { { paddingLeft : 0 , paddingRight : 0 , minWidth : "28px !important" } }
292
+ >
293
+ < ExpandMoreOutlined css = { { fontSize : 14 } } />
294
+ </ TopbarButton >
295
+ </ PopoverTrigger >
296
+ < PopoverContent
297
+ horizontal = "right"
298
+ css = { { ".MuiPaper-root" : { width : 300 } } }
299
+ >
300
+ < div
301
+ css = { {
302
+ color : theme . palette . text . secondary ,
303
+ padding : 20 ,
304
+ borderBottom : `1px solid ${ theme . palette . divider } ` ,
305
+ } }
306
+ >
307
+ < HelpTooltipTitle > Provisioner Tags</ HelpTooltipTitle >
308
+ < HelpTooltipText >
309
+ { Object . keys ( extraTags ) . length > 0 ? (
310
+ < Stack direction = "row" spacing = { 1 } wrap = "wrap" >
311
+ { Object . keys ( extraTags ) . map ( ( k ) =>
312
+ < ProvisionerTag key = { k } k = { k } v = { extraTags [ k ] } />
313
+ ) }
314
+ </ Stack >
315
+ ) : (
316
+ "No tags"
317
+ ) }
318
+
319
+ </ HelpTooltipText >
320
+ </ div >
321
+ </ PopoverContent >
322
+ </ Popover >
323
+ </ ButtonGroup >
253
324
254
325
< TopbarButton
255
326
variant = "contained"
0 commit comments