diff --git a/saltgui/static/scripts/CommandBox.js b/saltgui/static/scripts/CommandBox.js index 2dfe498cc..0310a7b29 100644 --- a/saltgui/static/scripts/CommandBox.js +++ b/saltgui/static/scripts/CommandBox.js @@ -398,7 +398,7 @@ export class CommandBox { minions = ["WHEEL"]; } // do not suppress the jobId (even when we can) - Output.addResponseOutput(outputContainer, null, minions, pResponse, pCommand, "done", undefined); + Output.addResponseOutput(outputContainer, null, minions, pResponse, pCommand, "done", undefined, undefined); const targetField = document.getElementById("target"); const commandField = document.getElementById("command"); const button = document.querySelector(".run-command input[type='submit']"); diff --git a/saltgui/static/scripts/output/Output.js b/saltgui/static/scripts/output/Output.js index 0e5167a86..06eb1880f 100644 --- a/saltgui/static/scripts/output/Output.js +++ b/saltgui/static/scripts/output/Output.js @@ -615,7 +615,7 @@ export class Output { // the orchestrator for the output // determines what format should be used and uses that - static addResponseOutput (pOutputContainer, pJobId, pMinionData, pResponse, pCommand, pInitialStatus, pHighlightMinionId) { + static addResponseOutput (pOutputContainer, pJobId, pMinionData, pResponse, pCommand, pInitialStatus, pHighlightMinionId, pArguments) { // remove old content pOutputContainer.innerText = ""; @@ -737,6 +737,12 @@ export class Output { topSummaryDiv.appendChild(summaryJobsListJobSpan); } + if (pArguments) { + const div = Utils.createDiv("", pArguments); + div.style.lineBreak = "anywhere"; + pOutputContainer.appendChild(div); + } + const masterTriangle = Utils.createSpan(); // use cntMinions instead of cntResponses to be predictable // hide details when there are many minions to show diff --git a/saltgui/static/scripts/panels/Job.js b/saltgui/static/scripts/panels/Job.js index 19d642d7c..cc00bf518 100644 --- a/saltgui/static/scripts/panels/Job.js +++ b/saltgui/static/scripts/panels/Job.js @@ -178,8 +178,7 @@ export class JobPanel extends Panel { this.output.innerText = ""; // use same formatter as direct commands - const argumentsText = JobPanel.decodeArgumentsArray(info.Arguments); - const commandText = info.Function + argumentsText; + let argumentsText = JobPanel.decodeArgumentsArray(info.Arguments); this.targettype = info["Target-type"]; if (Array.isArray(info.Target)) { @@ -187,7 +186,7 @@ export class JobPanel extends Panel { } else { this.target = info.Target; } - this.commandtext = commandText; + this.commandtext = info.Function + argumentsText; this.jobid = pJobId; this.minions = info.Minions; this.result = info.Result; @@ -197,7 +196,15 @@ export class JobPanel extends Panel { // ============================ - const functionText = commandText + " on " + + const maxTextLength = 50; + let displayArguments = null; + if (argumentsText.length > maxTextLength) { + // prevent column becoming too wide + displayArguments = this.commandtext; + argumentsText = argumentsText.substring(0, maxTextLength) + "..."; + } + + const functionText = info.Function + argumentsText + " on " + TargetType.makeTargetText(info); this.updateTitle(functionText); @@ -229,7 +236,7 @@ export class JobPanel extends Panel { initialStatus = "(loading)"; this.jobIsTerminated = false; } - Output.addResponseOutput(this.output, pJobId, minions, info.Result, info.Function, initialStatus, pMinionId); + Output.addResponseOutput(this.output, pJobId, minions, info.Result, info.Function, initialStatus, pMinionId, displayArguments); // replace any jobid // Don't do this with output.innerHTML as there are already