Skip to content

Commit 2bb2550

Browse files
committed
Allow steps to be opened in new tabs, simplify code
1 parent 60cdbff commit 2bb2550

File tree

4 files changed

+18
-8
lines changed

4 files changed

+18
-8
lines changed

src/main/frontend/pipeline-console-view/pipeline-console/main/ConsoleLogCard.tsx

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,17 @@ export default function ConsoleLogCard(props: ConsoleLogCardProps) {
2020
}
2121
}, [props.isExpanded]);
2222

23-
const handleToggle = (event: React.MouseEvent<HTMLElement>) => {
24-
props.handleStepToggle(event, props.step.id);
23+
const handleToggle = (e: React.MouseEvent<HTMLElement>) => {
24+
// Only prevent left clicks
25+
if (e.button !== 0 || e.metaKey || e.ctrlKey) {
26+
return;
27+
}
28+
29+
e.preventDefault();
30+
31+
history.replaceState({}, "", `?selected-node=` + props.step.id);
32+
33+
props.handleStepToggle(props.step.id);
2534
};
2635

2736
const showMoreLogs = () => {
@@ -59,7 +68,8 @@ export default function ConsoleLogCard(props: ConsoleLogCardProps) {
5968

6069
return (
6170
<div className={"pgv-step-detail-group"} key={`step-card-${props.step.id}`}>
62-
<button
71+
<a
72+
href={`?selected-node=` + props.step.id}
6373
onClick={handleToggle}
6474
className={classNames("pgv-step-detail-header", "jenkins-button", {
6575
"jenkins-button--tertiary": !props.isExpanded,
@@ -108,7 +118,7 @@ export default function ConsoleLogCard(props: ConsoleLogCardProps) {
108118
/>
109119
</svg>
110120
</div>
111-
</button>
121+
</a>
112122

113123
{props.isExpanded && (
114124
<div style={{ paddingTop: "0.5rem" }}>
@@ -131,7 +141,7 @@ export type ConsoleLogCardProps = {
131141
step: StepInfo;
132142
stepBuffer: StepLogBufferInfo;
133143
isExpanded: boolean;
134-
handleStepToggle: (event: React.SyntheticEvent<{}>, nodeId: string) => void;
144+
handleStepToggle: (nodeId: string) => void;
135145
handleMoreConsoleClick: (nodeId: string, startByte: number) => void;
136146
scrollParentId: string;
137147
};

src/main/frontend/pipeline-console-view/pipeline-console/main/StageView.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export interface StageViewProps {
2626
steps: Array<StepInfo>;
2727
stepBuffers: Map<string, StepLogBufferInfo>;
2828
expandedSteps: string[];
29-
handleStepToggle: (event: React.SyntheticEvent<{}>, nodeId: string) => void;
29+
handleStepToggle: (nodeId: string) => void;
3030
handleMoreConsoleClick: (nodeId: string, startByte: number) => void;
3131
// Id of the element whose scroll bar we wish to use.
3232
scrollParentId: string;

src/main/frontend/pipeline-console-view/pipeline-console/main/stage-steps.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ interface StageStepsProps {
5353
steps: Array<StepInfo>;
5454
stepBuffers: Map<string, StepLogBufferInfo>;
5555
expandedSteps: string[];
56-
handleStepToggle: (event: React.SyntheticEvent<{}>, nodeId: string) => void;
56+
handleStepToggle: (nodeId: string) => void;
5757
handleMoreConsoleClick: (nodeId: string, startByte: number) => void;
5858
// Id of the element whose scroll bar we wish to use.
5959
scrollParentId: string;

src/main/frontend/pipeline-console-view/pipeline-console/main/steps-poller.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ export function useStepsPoller(props: RunPollerProps) {
147147
[openStage, steps, updateStepConsoleOffset],
148148
);
149149

150-
const handleStepToggle = (_: any, nodeId: string) => {
150+
const handleStepToggle = (nodeId: string) => {
151151
if (!expandedSteps.includes(nodeId)) {
152152
setExpandedSteps((prev) => [...prev, nodeId]);
153153
updateStepConsoleOffset(nodeId, false, 0 - LOG_FETCH_SIZE);

0 commit comments

Comments
 (0)