Skip to content

Commit 94f1ab7

Browse files
committed
feat: add restart button to node detail
1 parent f89db97 commit 94f1ab7

File tree

2 files changed

+40
-4
lines changed

2 files changed

+40
-4
lines changed

src/components/ResourceBrowser/ResourceList/ResourceBrowserActionMenu.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,14 +173,15 @@ const ResourceBrowserActionMenu = forwardRef(
173173
label: 'Events',
174174
startIcon: { name: 'ic-calendar' },
175175
},
176-
...(window._env_.FEATURE_BULK_RESTART_WORKLOADS_FROM_RB.includes(
176+
...(RBRestartWorkloadModal &&
177+
window._env_.FEATURE_BULK_RESTART_WORKLOADS_FROM_RB.includes(
177178
selectedResource?.gvk?.Kind.toLowerCase(),
178179
)
179180
? [
180181
{
181182
id: ResourceBrowserActionMenuEnum.restart,
182183
label: 'Restart',
183-
startIcon: { name: 'ic-arrows-clockwise' },
184+
startIcon: { name: 'ic-arrow-clockwise' },
184185
} as ActionMenuItemType<ResourceBrowserActionMenuEnum>,
185186
]
186187
: []),
@@ -254,7 +255,7 @@ const ResourceBrowserActionMenu = forwardRef(
254255
/>
255256
)}
256257

257-
{showRestartModal && (
258+
{RBRestartWorkloadModal && showRestartModal && (
258259
<RBRestartWorkloadModal
259260
resource={resource}
260261
getManifestResource={getManifestResource}

src/components/v2/appDetails/k8Resource/nodeDetail/NodeDetail.component.tsx

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import React, { useEffect, useMemo, useRef, useState } from 'react'
1818
import { Redirect, Route, Switch, useLocation, useParams, useRouteMatch } from 'react-router-dom'
1919

2020
import {
21+
Button,
22+
ButtonVariantType,
2123
capitalizeFirstLetter,
2224
Checkbox,
2325
CHECKBOX_VALUE,
@@ -26,6 +28,7 @@ import {
2628
DeploymentAppTypes,
2729
FormProps,
2830
getAIAnalyticsEvents,
31+
Icon,
2932
noop,
3033
OptionsBase,
3134
OptionType,
@@ -67,7 +70,7 @@ import LogsComponent from './NodeDetailTabs/Logs.component'
6770
import ManifestComponent from './NodeDetailTabs/Manifest.component'
6871
import TerminalComponent from './NodeDetailTabs/Terminal.component'
6972
import EphemeralContainerDrawer from './EphemeralContainerDrawer'
70-
import { getManifestResource } from './nodeDetail.api'
73+
import { getManifestResource, updateManifestResourceHelmApps } from './nodeDetail.api'
7174
import { NodeDetailTab, ParamsType } from './nodeDetail.type'
7275
import { getContainersData, getNodeDetailTabs } from './nodeDetail.util'
7376

@@ -79,6 +82,7 @@ const ToggleManifestConfigurationMode = importComponentFromFELibrary(
7982
null,
8083
'function',
8184
)
85+
const RBRestartWorkloadModal = importComponentFromFELibrary('RBRestartWorkloadModal', null, 'function')
8286

8387
const NodeDetailComponent = ({
8488
loadingResources,
@@ -106,6 +110,7 @@ const NodeDetailComponent = ({
106110
const [fetchingResource, setFetchingResource] = useState(
107111
isResourceBrowserView && nodeType === Nodes.Pod.toLowerCase(),
108112
)
113+
const [showRestartModal, setShowRestartModal] = useState(false)
109114
const [selectedContainer, setSelectedContainer] = useState<Map<string, string>>(new Map())
110115
const [showEphemeralContainerDrawer, setShowEphemeralContainerDrawer] = useState<boolean>(false)
111116
const [ephemeralContainerType, setEphemeralContainerType] = useState<string>(EDITOR_VIEW.BASIC)
@@ -375,6 +380,10 @@ const NodeDetailComponent = ({
375380
setManifestCodeEditorMode(ManifestCodeEditorMode.REVIEW)
376381
}
377382

383+
const onRestartWorkloadModalClose = () => {
384+
setShowRestartModal(false)
385+
}
386+
378387
const handleManifestCompareWithDesired = () => setShowManifestCompareView(true)
379388

380389
const renderPodTerminal = (): JSX.Element => {
@@ -518,6 +527,10 @@ const NodeDetailComponent = ({
518527
},
519528
}))
520529

530+
const onRestartWorkloadButtonClick = () => {
531+
setShowRestartModal(true)
532+
}
533+
521534
return (
522535
<>
523536
<div className="w-100 pr-20 pl-20 bg__primary flex border__secondary--bottom dc__content-space h-32">
@@ -550,6 +563,20 @@ const NodeDetailComponent = ({
550563
</>
551564
)}
552565
{selectedTabName === NodeDetailTab.MANIFEST && renderManifestTabHeader()}
566+
{RBRestartWorkloadModal &&
567+
window._env_.FEATURE_BULK_RESTART_WORKLOADS_FROM_RB.includes(nodeType.toLowerCase()) && (
568+
<>
569+
<div className="ml-12 mr-12 tab-cell-border" />
570+
<Button
571+
dataTestId="restart-workload-button"
572+
variant={ButtonVariantType.text}
573+
size={ComponentSizeType.small}
574+
startIcon={<Icon name="ic-arrow-clockwise" color={null} />}
575+
onClick={onRestartWorkloadButtonClick}
576+
text="Restart"
577+
/>
578+
</>
579+
)}
553580
</div>
554581
{isResourceBrowserView &&
555582
!hideDeleteButton && ( // hide delete button if resource is deleted or user is not authorized
@@ -670,6 +697,14 @@ const NodeDetailComponent = ({
670697
handleClearBulkSelection={noop}
671698
/>
672699
)}
700+
{RBRestartWorkloadModal && showRestartModal && (
701+
<RBRestartWorkloadModal
702+
resource={selectedResource}
703+
getManifestResource={getManifestResource}
704+
updateManifestResourceHelmApps={updateManifestResourceHelmApps}
705+
onClose={onRestartWorkloadModalClose}
706+
/>
707+
)}
673708
</>
674709
)
675710
}

0 commit comments

Comments
 (0)