import { CommandContext } from "./Models/CommandContext.js";
import { PSCoreCommandResult } from "./Models/PSCoreCommandResult.js";
import * as DataGrid from "./DataGrid.js";
import { GenericCommandResult } from "./Models/GenericCommandResult.js";
import { ConsoleOutputDiv, TabContentWrapper, ConsoleFrame } from "./UI.js";
export function CreateCommandHarness(context: CommandContext): HTMLDivElement {
var collapseClass = context.TargetDeviceIDs.length > 1 ? "collapse" : "collapse show";
var commandHarness = document.createElement("div");
var contextID = "c" + context.ID;
commandHarness.id = contextID;
commandHarness.classList.add("command-harness");
commandHarness.innerHTML = `
Host Output:
${result.HostOutput.replace(/\n/g, "
").replace(/ /g, " ")}
Debug Output:
${result.DebugOutput.join("
").replace(/ /g, " ")}
Verbose Output:
${result.VerboseOutput.join("
").replace(/ /g, " ")}
Information Output:
${result.InformationOutput.join("
").replace(/ /g, " ")}
Error Output:
${result.ErrorOutput.join("
").replace(/ /g, " ")}
`;
if (result.ErrorOutput.length > 0) {
var errorSpan = document.getElementById(contextID + "-errors");
var currentErrors = parseInt(errorSpan.innerText);
currentErrors += 1;
errorSpan.innerText = String(currentErrors);
}
resultsWrapper.appendChild(resultDiv);
ConsoleFrame.scrollTop = ConsoleFrame.scrollHeight;
}
export function AddCommandResultsHarness(result: GenericCommandResult) {
var contextID = "c" + result.CommandContextID;
var deviceName = DataGrid.DataSource.find(x => x.ID == result.DeviceID).DeviceName;
var resultsWrapper = document.getElementById(contextID + "-results");
var totalDevices = parseInt(document.getElementById(contextID + "-totaldevices").innerText);
var collapseClass = totalDevices > 1 ? "collapse" : "collapse show";
var resultDiv = document.createElement("div");
resultDiv.innerHTML = `
Standard Output:
${result.StandardOutput.replace(/\n/g, "
").replace(/ /g, " ")}
Error Output:
${result.ErrorOutput.replace(/\n/g, "
").replace(/ /g, " ")}
`;
if (result.ErrorOutput.length > 0) {
var errorSpan = document.getElementById(`${contextID}-errors`);
var currentErrors = parseInt(errorSpan.innerText);
currentErrors += 1;
errorSpan.innerText = String(currentErrors);
}
resultsWrapper.appendChild(resultDiv);
ConsoleFrame.scrollTop = ConsoleFrame.scrollHeight;
}
export function UpdateResultsCount(commandContextID: string) {
var contextID = "c" + commandContextID;
var totalDevices = parseInt(document.getElementById(`${contextID}-totaldevices`).innerText);
var percentComplete = Math.round(document.getElementById(`${contextID}-results`).children.length / totalDevices * 100);
document.getElementById(`${contextID}-completed`).innerText = String(percentComplete) + "%";
}