summaryrefslogtreecommitdiff
path: root/frontend/src/sagas/topology.js
diff options
context:
space:
mode:
authorGeorgios Andreadis <info@gandreadis.com>2020-07-22 14:31:03 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2020-08-24 19:48:19 +0200
commitd8eb2d7fd4cf15706bced6c6ceca320cfaecb2f7 (patch)
treecc883f95b5580a4f399e665bcda16d52aa04bb32 /frontend/src/sagas/topology.js
parent92ce9387f5c3ce54b4077ef6a5f604fc2cfe6ade (diff)
Implement topology duplication
Diffstat (limited to 'frontend/src/sagas/topology.js')
-rw-r--r--frontend/src/sagas/topology.js11
1 files changed, 9 insertions, 2 deletions
diff --git a/frontend/src/sagas/topology.js b/frontend/src/sagas/topology.js
index 14c1ed2d..8b67c196 100644
--- a/frontend/src/sagas/topology.js
+++ b/frontend/src/sagas/topology.js
@@ -16,7 +16,7 @@ import {
DEFAULT_RACK_SLOT_CAPACITY,
MAX_NUM_UNITS_PER_MACHINE,
} from '../components/app/map/MapConstants'
-import { fetchAndStoreTopology, updateTopologyOnServer } from './objects'
+import { fetchAndStoreTopology, getTopologyAsObject, updateTopologyOnServer } from './objects'
import { uuid } from 'uuidv4'
import { addTopology, deleteTopology } from '../api/routes/topologies'
@@ -40,9 +40,16 @@ export function* onAddTopology(action) {
try {
const currentProjectId = yield select((state) => state.currentProjectId)
+ let topologyToBeCreated
+ if (action.duplicateId) {
+ topologyToBeCreated = yield getTopologyAsObject(action.duplicateId, false)
+ } else {
+ topologyToBeCreated = { name: action.name, rooms: [] }
+ }
+
const topology = yield call(
addTopology,
- Object.assign({}, action.topology, {
+ Object.assign({}, topologyToBeCreated, {
projectId: currentProjectId,
})
)