Skip to content

Commit e2dcbe8

Browse files
committed
feat(ui): Consistent param handling in URLs
Not all params need to be escaped/encoded.
1 parent 3e08185 commit e2dcbe8

File tree

4 files changed

+19
-32
lines changed

4 files changed

+19
-32
lines changed

ui/src/components/WMWorkerPoolEditor/index.jsx

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -414,49 +414,43 @@ export default class WMWorkerPoolEditor extends Component {
414414
joinWorkerPoolId(workerPool.workerPoolId1, workerPool.workerPoolId2) !==
415415
workerPoolId;
416416
const { provisionerId, workerType } = splitWorkerPoolId(workerPoolId);
417+
const workerTypeUrl = `/provisioners/${provisionerId}/worker-types/${workerType}`;
418+
const workerPoolUrl = `/worker-manager/${encodeURIComponent(workerPoolId)}`;
417419
const workerPoolStats = [
418420
{
419421
label: 'Pending Tasks',
420422
value: pendingTasks,
421423
className: 'pendingTasks',
422424
Icon: ClockOutlineIcon,
423-
href: `/worker-manager/${encodeURIComponent(
424-
workerPoolId
425-
)}/pending-tasks`,
425+
href: `${workerTypeUrl}/pending-tasks`,
426426
},
427427
{
428428
label: 'Requested Capacity',
429429
value: requestedCapacity,
430430
className: 'requestedCapacity',
431431
Icon: TimerSandIcon,
432-
href: `/provisioners/${encodeURIComponent(
433-
provisionerId
434-
)}/worker-types/${encodeURIComponent(workerType)}?filterBy=requested`,
432+
href: `${workerTypeUrl}?filterBy=requested`,
435433
},
436434
{
437435
label: 'Running Capacity',
438436
value: runningCapacity,
439437
className: 'runningCapacity',
440438
Icon: RunIcon,
441-
href: `/provisioners/${encodeURIComponent(
442-
provisionerId
443-
)}/worker-types/${encodeURIComponent(workerType)}?filterBy=running`,
439+
href: `${workerTypeUrl}?filterBy=running`,
444440
},
445441
{
446442
label: 'Stopping Capacity',
447443
value: stoppingCapacity,
448444
className: 'stoppingCapacity',
449445
Icon: CloseIcon,
450-
href: `/provisioners/${encodeURIComponent(
451-
provisionerId
452-
)}/worker-types/${encodeURIComponent(workerType)}?filterBy=stopping`,
446+
href: `${workerTypeUrl}?filterBy=stopping`,
453447
},
454448
{
455449
label: 'Errors',
456450
value: errorStats?.totals?.total,
457451
className: 'errorsTile',
458452
Icon: MessageAlertIcon,
459-
href: `/worker-manager/${encodeURIComponent(workerPoolId)}/errors`,
453+
href: `${workerPoolUrl}/errors`,
460454
},
461455
];
462456

@@ -515,9 +509,7 @@ export default class WMWorkerPoolEditor extends Component {
515509
label="Workers (Queue View)"
516510
component={Link}
517511
clickable
518-
to={`/provisioners/${encodeURIComponent(
519-
provisionerId
520-
)}/worker-types/${encodeURIComponent(workerType)}`}
512+
to={workerTypeUrl}
521513
/>
522514
<Chip
523515
size="medium"
@@ -526,9 +518,7 @@ export default class WMWorkerPoolEditor extends Component {
526518
label="Workers (Worker Manager View)"
527519
component={Link}
528520
clickable
529-
to={`/worker-manager/${encodeURIComponent(
530-
workerPoolId
531-
)}/workers`}
521+
to={`${workerPoolUrl}/workers`}
532522
/>
533523
</div>
534524
</Fragment>

ui/src/components/WMWorkerPoolsTable/index.jsx

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,12 @@ export default class WorkerManagerWorkerPoolsTable extends Component {
193193
});
194194
};
195195

196+
getPendingTasksLink(workerPoolId) {
197+
const { provisionerId, workerType } = splitWorkerPoolId(workerPoolId);
198+
199+
return `/provisioners/${provisionerId}/worker-types/${workerType}/pending-tasks`;
200+
}
201+
196202
renderRow = ({ node: workerPool }) => {
197203
const {
198204
match: { path },
@@ -238,10 +244,7 @@ export default class WorkerManagerWorkerPoolsTable extends Component {
238244
</TableCell>
239245

240246
<TableCell>
241-
<Link
242-
to={`${path}/${encodeURIComponent(
243-
workerPool.workerPoolId
244-
)}/pending-tasks`}>
247+
<Link to={this.getPendingTasksLink(workerPool.workerPoolId)}>
245248
<TableCellItem button>
246249
<Hidden lgUp implementation="css" className={classes.hiddenLabel}>
247250
Pending Tasks:
@@ -278,9 +281,7 @@ export default class WorkerManagerWorkerPoolsTable extends Component {
278281

279282
<TableCell>
280283
<Link
281-
to={`/provisioners/${encodeURIComponent(
282-
provisionerId
283-
)}/worker-types/${encodeURIComponent(workerType)}`}>
284+
to={`/provisioners/${provisionerId}/worker-types/${workerType}`}>
284285
<Button
285286
className={classes.linksButton}
286287
variant="outlined"

ui/src/views/Provisioners/ClaimedTasks/index.jsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,7 @@ export default class WMViewClaimedTasks extends Component {
5656
get workersLink() {
5757
const { provisionerId, workerType } = this.props.match.params;
5858

59-
return `/provisioners/${encodeURIComponent(
60-
provisionerId
61-
)}/worker-types/${encodeURIComponent(workerType)}`;
59+
return `/provisioners/${provisionerId}/worker-types/${workerType}`;
6260
}
6361

6462
renderRow({ node: { taskId, runId, claimed, task, workerGroup, workerId } }) {

ui/src/views/Provisioners/PendingTasks/index.jsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,7 @@ export default class WMViewPendingTasks extends Component {
5757
get workersLink() {
5858
const { provisionerId, workerType } = this.props.match.params;
5959

60-
return `/provisioners/${encodeURIComponent(
61-
provisionerId
62-
)}/worker-types/${encodeURIComponent(workerType)}`;
60+
return `/provisioners/${provisionerId}/worker-types/${workerType}`;
6361
}
6462

6563
renderRow({ node: { taskId, runId, inserted, task } }) {

0 commit comments

Comments
 (0)