From 210959716ea0717dfff209ac61b61450594d505e Mon Sep 17 00:00:00 2001 From: Erwin Dondorp Date: Thu, 25 Apr 2024 21:07:42 +0200 Subject: [PATCH] ALT-key to open in new window --- saltgui/static/scripts/Router.js | 7 ++++++- saltgui/static/scripts/panels/Beacons.js | 6 +++--- saltgui/static/scripts/panels/Grains.js | 6 +++--- saltgui/static/scripts/panels/HighState.js | 8 ++++---- saltgui/static/scripts/panels/Job.js | 2 +- saltgui/static/scripts/panels/JobsDetails.js | 6 +++--- saltgui/static/scripts/panels/JobsSummary.js | 6 +++--- saltgui/static/scripts/panels/Minions.js | 16 ++++++++-------- saltgui/static/scripts/panels/Nodegroups.js | 20 ++++++++++---------- saltgui/static/scripts/panels/Pillars.js | 6 +++--- saltgui/static/scripts/panels/Schedules.js | 6 +++--- 11 files changed, 47 insertions(+), 42 deletions(-) diff --git a/saltgui/static/scripts/Router.js b/saltgui/static/scripts/Router.js index 24c8d627f..07c405fa4 100644 --- a/saltgui/static/scripts/Router.js +++ b/saltgui/static/scripts/Router.js @@ -300,7 +300,7 @@ export class Router { // pForward = 0 --> normal navigation // pForward = 1 --> back navigation using regular gui // pForward = 2 --> back navigation using browser - goTo (pHash, pQuery = {}, pForward = 0) { + goTo (pHash, pQuery = {}, pForward = 0, pAltKey = false) { // close the command-box when it is stil open CommandBox.hideManualRun(); @@ -359,6 +359,11 @@ export class Router { window.history.replaceState({}, undefined, url); } else if (pForward === 0) { // forward navigation + if (pAltKey) { + // in a new window + window.open(url); + return; + } window.history.pushState({}, undefined, url); route.parentHash = parentHash; route.parentQuery = parentQuery; diff --git a/saltgui/static/scripts/panels/Beacons.js b/saltgui/static/scripts/panels/Beacons.js index dea12ac05..836ea4ff0 100644 --- a/saltgui/static/scripts/panels/Beacons.js +++ b/saltgui/static/scripts/panels/Beacons.js @@ -97,7 +97,7 @@ export class BeaconsPanel extends Panel { this._addMenuItemShowBeacons(menu, minionId); minionTr.addEventListener("click", (pClickEvent) => { - this.router.goTo("beacons-minion", {"minionid": minionId}); + this.router.goTo("beacons-minion", {"minionid": minionId}, undefined, pClickEvent.altKey); pClickEvent.stopPropagation(); }); } @@ -144,8 +144,8 @@ export class BeaconsPanel extends Panel { } _addMenuItemShowBeacons (pMenu, pMinionId) { - pMenu.addMenuItem("Show beacons", () => { - this.router.goTo("beacons-minion", {"minionid": pMinionId}); + pMenu.addMenuItem("Show beacons", (pClickEvent) => { + this.router.goTo("beacons-minion", {"minionid": pMinionId}, undefined, pClickEvent.altKey); }); } } diff --git a/saltgui/static/scripts/panels/Grains.js b/saltgui/static/scripts/panels/Grains.js index e80a779cb..6197378d3 100644 --- a/saltgui/static/scripts/panels/Grains.js +++ b/saltgui/static/scripts/panels/Grains.js @@ -94,7 +94,7 @@ export class GrainsPanel extends Panel { } minionTr.addEventListener("click", (pClickEvent) => { - this.router.goTo("grains-minion", {"minionid": minionId}); + this.router.goTo("grains-minion", {"minionid": minionId}, undefined, pClickEvent.altKey); pClickEvent.stopPropagation(); }); } @@ -173,8 +173,8 @@ export class GrainsPanel extends Panel { } _addMenuItemShowGrains (pMenu, pMinionId) { - pMenu.addMenuItem("Show grains", () => { - this.router.goTo("grains-minion", {"minionid": pMinionId}); + pMenu.addMenuItem("Show grains", (pClickEvent) => { + this.router.goTo("grains-minion", {"minionid": pMinionId}, undefined, pClickEvent.altKey); }); } } diff --git a/saltgui/static/scripts/panels/HighState.js b/saltgui/static/scripts/panels/HighState.js index a26ae0843..f54678151 100644 --- a/saltgui/static/scripts/panels/HighState.js +++ b/saltgui/static/scripts/panels/HighState.js @@ -370,7 +370,7 @@ export class HighStatePanel extends Panel { const jobIdTd = Utils.createTd(); const jobIdSpan = Utils.createSpan("tooltip", pJobId); jobIdSpan.addEventListener("click", (pClickEvent) => { - this.router.goTo("job", {"id": pJobId, "minionid": minionId}); + this.router.goTo("job", {"id": pJobId, "minionid": minionId}, undefined, pClickEvent.altKey); pClickEvent.stopPropagation(); }); jobIdTd.appendChild(jobIdSpan); @@ -512,7 +512,7 @@ export class HighStatePanel extends Panel { // allow similar navigation, but just only to the job level summarySpan.addEventListener("click", (pClickEvent) => { - this.router.goTo("job", {"id": pJobId, "minionid": minionId}); + this.router.goTo("job", {"id": pJobId, "minionid": minionId}, undefined, pClickEvent.altKey); pClickEvent.stopPropagation(); }); @@ -526,8 +526,8 @@ export class HighStatePanel extends Panel { } _addJobsMenuItemShowDetails (pMenu, pJob, pMinionId) { - pMenu.addMenuItem("Show details", () => { - this.router.goTo("job", {"id": pJob.jid, "minionid": pMinionId}); + pMenu.addMenuItem("Show details", (pClickEvent) => { + this.router.goTo("job", {"id": pJob.jid, "minionid": pMinionId}, undefined, pClickEvent.altKey); }); } } diff --git a/saltgui/static/scripts/panels/Job.js b/saltgui/static/scripts/panels/Job.js index e9bddbfc7..d3c79934b 100644 --- a/saltgui/static/scripts/panels/Job.js +++ b/saltgui/static/scripts/panels/Job.js @@ -267,7 +267,7 @@ export class JobPanel extends Panel { Utils.addToolTip(link, "this job"); } else { link.addEventListener("click", (pClickEvent) => { - this.router.goTo("job", {"id": linkToJid}); + this.router.goTo("job", {"id": linkToJid}, undefined, pClickEvent.altKey); pClickEvent.stopPropagation(); }); } diff --git a/saltgui/static/scripts/panels/JobsDetails.js b/saltgui/static/scripts/panels/JobsDetails.js index b18ca67be..7a022b988 100644 --- a/saltgui/static/scripts/panels/JobsDetails.js +++ b/saltgui/static/scripts/panels/JobsDetails.js @@ -402,14 +402,14 @@ export class JobsDetailsPanel extends JobsPanel { tbody.appendChild(tr); tr.addEventListener("click", (pClickEvent) => { - this.router.goTo("job", {"id": job.id}); + this.router.goTo("job", {"id": job.id}, undefined, pClickEvent.altKey); pClickEvent.stopPropagation(); }); } _addJobsMenuItemShowDetails (pMenu, job) { - pMenu.addMenuItem("Show details", () => { - this.router.goTo("job", {"id": job.id}); + pMenu.addMenuItem("Show details", (pClickEvent) => { + this.router.goTo("job", {"id": job.id}, undefined, pClickEvent.altKey); }); } diff --git a/saltgui/static/scripts/panels/JobsSummary.js b/saltgui/static/scripts/panels/JobsSummary.js index 152934847..da5dbb623 100644 --- a/saltgui/static/scripts/panels/JobsSummary.js +++ b/saltgui/static/scripts/panels/JobsSummary.js @@ -78,14 +78,14 @@ export class JobsSummaryPanel extends JobsPanel { tbody.appendChild(tr); tr.addEventListener("click", (pClickEvent) => { - this.router.goTo("job", {"id": job.id}); + this.router.goTo("job", {"id": job.id}, undefined, pClickEvent.altKey); pClickEvent.stopPropagation(); }); } _addMenuItemShowDetails (pMenu, job) { - pMenu.addMenuItem("Show details", () => { - this.router.goTo("job", {"id": job.id}); + pMenu.addMenuItem("Show details", (pClickEvent) => { + this.router.goTo("job", {"id": job.id}, undefined, pClickEvent.altKey); }); } diff --git a/saltgui/static/scripts/panels/Minions.js b/saltgui/static/scripts/panels/Minions.js index 94c9c1c46..3cedfb8fc 100644 --- a/saltgui/static/scripts/panels/Minions.js +++ b/saltgui/static/scripts/panels/Minions.js @@ -220,26 +220,26 @@ export class MinionsPanel extends Panel { } _addMenuItemShowGrains (pMenu, pMinionId) { - pMenu.addMenuItem("Show grains", () => { - this.router.goTo("grains-minion", {"minionid": pMinionId}); + pMenu.addMenuItem("Show grains", (pClickEvent) => { + this.router.goTo("grains-minion", {"minionid": pMinionId}, undefined, pClickEvent.altKey); }); } _addMenuItemShowSchedules (pMenu, pMinionId) { - pMenu.addMenuItem("Show schedules", () => { - this.router.goTo("schedules-minion", {"minionid": pMinionId}); + pMenu.addMenuItem("Show schedules", (pClickEvent) => { + this.router.goTo("schedules-minion", {"minionid": pMinionId}, undefined, pClickEvent.altKey); }); } _addMenuItemShowPillars (pMenu, pMinionId) { - pMenu.addMenuItem("Show pillars", () => { - this.router.goTo("pillars-minion", {"minionid": pMinionId}); + pMenu.addMenuItem("Show pillars", (pClickEvent) => { + this.router.goTo("pillars-minion", {"minionid": pMinionId}, undefined, pClickEvent.altKey); }); } _addMenuItemShowBeacons (pMenu, pMinionId) { - pMenu.addMenuItem("Show beacons", () => { - this.router.goTo("beacons-minion", {"minionid": pMinionId}); + pMenu.addMenuItem("Show beacons", (pClickEvent) => { + this.router.goTo("beacons-minion", {"minionid": pMinionId}, undefined, pClickEvent.altKey); }); } diff --git a/saltgui/static/scripts/panels/Nodegroups.js b/saltgui/static/scripts/panels/Nodegroups.js index 207fb304a..c496e4c62 100644 --- a/saltgui/static/scripts/panels/Nodegroups.js +++ b/saltgui/static/scripts/panels/Nodegroups.js @@ -416,32 +416,32 @@ export class NodegroupsPanel extends Panel { } _addMenuItemShowKeys (pMenu) { - pMenu.addMenuItem("Show keys", () => { - this.router.goTo("keys"); + pMenu.addMenuItem("Show keys", (pClickEvent) => { + this.router.goTo("keys", undefined, undefined, pClickEvent.altKey); }); } _addMenuItemShowGrains (pMenu, pMinionId) { - pMenu.addMenuItem("Show grains", () => { - this.router.goTo("grains-minion", {"minionid": pMinionId}); + pMenu.addMenuItem("Show grains", (pClickEvent) => { + this.router.goTo("grains-minion", {"minionid": pMinionId}, undefined, pClickEvent.altKey); }); } _addMenuItemShowSchedules (pMenu, pMinionId) { - pMenu.addMenuItem("Show schedules", () => { - this.router.goTo("schedules-minion", {"minionid": pMinionId}); + pMenu.addMenuItem("Show schedules", (pClickEvent) => { + this.router.goTo("schedules-minion", {"minionid": pMinionId}, undefined, pClickEvent.altKey); }); } _addMenuItemShowPillars (pMenu, pMinionId) { - pMenu.addMenuItem("Show pillars", () => { - this.router.goTo("pillars-minion", {"minionid": pMinionId}); + pMenu.addMenuItem("Show pillars", (pClickEvent) => { + this.router.goTo("pillars-minion", {"minionid": pMinionId}, undefined, pClickEvent.altKey); }); } _addMenuItemShowBeacons (pMenu, pMinionId) { - pMenu.addMenuItem("Show beacons", () => { - this.router.goTo("beacons-minion", {"minionid": pMinionId}); + pMenu.addMenuItem("Show beacons", (pClickEvent) => { + this.router.goTo("beacons-minion", {"minionid": pMinionId}, undefined, pClickEvent.altKey); }); } } diff --git a/saltgui/static/scripts/panels/Pillars.js b/saltgui/static/scripts/panels/Pillars.js index 6797b3bb2..45c551659 100644 --- a/saltgui/static/scripts/panels/Pillars.js +++ b/saltgui/static/scripts/panels/Pillars.js @@ -63,7 +63,7 @@ export class PillarsPanel extends Panel { this._addMenuItemShowPillars(menu, minionId); minionTr.addEventListener("click", (pClickEvent) => { - this.router.goTo("pillars-minion", {"minionid": minionId}); + this.router.goTo("pillars-minion", {"minionid": minionId}, undefined, pClickEvent.altKey); pClickEvent.stopPropagation(); }); } @@ -108,8 +108,8 @@ export class PillarsPanel extends Panel { } _addMenuItemShowPillars (pMenu, pMinionId) { - pMenu.addMenuItem("Show pillars", () => { - this.router.goTo("pillars-minion", {"minionid": pMinionId}); + pMenu.addMenuItem("Show pillars", (pClickEvent) => { + this.router.goTo("pillars-minion", {"minionid": pMinionId}, undefined, pClickEvent.altKey); }); } } diff --git a/saltgui/static/scripts/panels/Schedules.js b/saltgui/static/scripts/panels/Schedules.js index 6c7212184..085af6e9d 100644 --- a/saltgui/static/scripts/panels/Schedules.js +++ b/saltgui/static/scripts/panels/Schedules.js @@ -93,7 +93,7 @@ export class SchedulesPanel extends Panel { this._addMenuItemShowSchedules(menu, minionId); minionTr.addEventListener("click", (pClickEvent) => { - this.router.goTo("schedules-minion", {"minionid": minionId}); + this.router.goTo("schedules-minion", {"minionid": minionId}, undefined, pClickEvent.altKey); pClickEvent.stopPropagation(); }); } @@ -151,8 +151,8 @@ export class SchedulesPanel extends Panel { } _addMenuItemShowSchedules (pMenu, pMinionId) { - pMenu.addMenuItem("Show schedules", () => { - this.router.goTo("schedules-minion", {"minionid": pMinionId}); + pMenu.addMenuItem("Show schedules", (pClickEvent) => { + this.router.goTo("schedules-minion", {"minionid": pMinionId}, undefined, pClickEvent.altKey); }); } }