diff --git a/src/renderer/components/HelmetProject/HelmetProject.jsx b/src/renderer/components/HelmetProject/HelmetProject.jsx index f85ad2ad..beaaa130 100644 --- a/src/renderer/components/HelmetProject/HelmetProject.jsx +++ b/src/renderer/components/HelmetProject/HelmetProject.jsx @@ -165,6 +165,16 @@ const HelmetProject = ({ } }; + const duplicateScenario = (scenario) => { + var duplicatedScenario = structuredClone(scenario); + //Change ID and rename the scenario to avoid conflicts. + duplicatedScenario.id = uuidv4(); + duplicatedScenario.name += `(${duplicatedScenario.id.split('-')[0]})`; + setScenarios(scenarios.concat(duplicatedScenario)); + configStores.current[duplicatedScenario.id] = new Store({cwd: projectPath, name: duplicatedScenario.name}); + configStores.current[duplicatedScenario.id].set(duplicatedScenario); + } + const _runAllActiveScenarios = (activeScenarioIDs) => { const scenariosToRun = scenarios.filter((s) => activeScenarioIDs.includes(s.id)).sort((a, b) => scenarioIDsToRun.indexOf(a.id) - scenarioIDsToRun.indexOf(b.id)); @@ -349,6 +359,7 @@ const HelmetProject = ({ statusIterationsTotal={statusIterationsTotal} statusIterationsCompleted={statusIterationsCompleted} statusReadyScenariosLogfiles={statusReadyScenariosLogfiles} + duplicateScenario={duplicateScenario} /> { return (
@@ -58,6 +58,12 @@ const Runtime = ({
runningScenarioID ? undefined : deleteScenario(s)} >
+   +
duplicateScenario(s)} + > + +
) })} diff --git a/src/renderer/icons/CopyIcon.jsx b/src/renderer/icons/CopyIcon.jsx new file mode 100644 index 00000000..3d9ee351 --- /dev/null +++ b/src/renderer/icons/CopyIcon.jsx @@ -0,0 +1,9 @@ +import React from 'react'; + +const CopyIcon = () => { + return ( + + + + ) +} \ No newline at end of file diff --git a/src/renderer/index.html b/src/renderer/index.html index 8a8a0473..9fdfa259 100644 --- a/src/renderer/index.html +++ b/src/renderer/index.html @@ -34,6 +34,7 @@ window.useMockAssignment = function() {aliasIpcRenderer.send('message-from-ui-to-disable-emme')}; window.useEmmeAssignment = function () {aliasIpcRenderer.send('message-from-ui-to-enable-emme')}; +