diff options
Diffstat (limited to 'src/actions')
| -rw-r--r-- | src/actions/interaction-level.js | 6 | ||||
| -rw-r--r-- | src/actions/modals/topology.js | 28 | ||||
| -rw-r--r-- | src/actions/topology.js | 63 |
3 files changed, 87 insertions, 10 deletions
diff --git a/src/actions/interaction-level.js b/src/actions/interaction-level.js index 884f1988..5ceff500 100644 --- a/src/actions/interaction-level.js +++ b/src/actions/interaction-level.js @@ -1,5 +1,5 @@ export const GO_FROM_BUILDING_TO_ROOM = "GO_FROM_BUILDING_TO_ROOM"; -export const GO_FROM_ROOM_TO_OBJECT = "GO_FROM_ROOM_TO_OBJECT"; +export const GO_FROM_ROOM_TO_RACK = "GO_FROM_ROOM_TO_RACK"; export const GO_DOWN_ONE_INTERACTION_LEVEL = "GO_DOWN_ONE_INTERACTION_LEVEL"; export function goFromBuildingToRoom(roomId) { @@ -16,14 +16,14 @@ export function goFromBuildingToRoom(roomId) { }; } -export function goFromRoomToObject(tileId) { +export function goFromRoomToRack(tileId) { return (dispatch, getState) => { const {interactionLevel} = getState(); if (interactionLevel.mode !== "ROOM") { return; } dispatch({ - type: GO_FROM_ROOM_TO_OBJECT, + type: GO_FROM_ROOM_TO_RACK, tileId }); }; diff --git a/src/actions/modals/topology.js b/src/actions/modals/topology.js index ded8771a..507c1de6 100644 --- a/src/actions/modals/topology.js +++ b/src/actions/modals/topology.js @@ -2,6 +2,10 @@ export const OPEN_EDIT_ROOM_NAME_MODAL = "OPEN_EDIT_ROOM_NAME_MODAL"; export const CLOSE_EDIT_ROOM_NAME_MODAL = "CLOSE_EDIT_ROOM_NAME_MODAL"; export const OPEN_DELETE_ROOM_MODAL = "OPEN_DELETE_ROOM_MODAL"; export const CLOSE_DELETE_ROOM_MODAL = "CLOSE_DELETE_ROOM_MODAL"; +export const OPEN_EDIT_RACK_NAME_MODAL = "OPEN_EDIT_RACK_NAME_MODAL"; +export const CLOSE_EDIT_RACK_NAME_MODAL = "CLOSE_EDIT_RACK_NAME_MODAL"; +export const OPEN_DELETE_RACK_MODAL = "OPEN_DELETE_RACK_MODAL"; +export const CLOSE_DELETE_RACK_MODAL = "CLOSE_DELETE_RACK_MODAL"; export function openEditRoomNameModal() { return { @@ -26,3 +30,27 @@ export function closeDeleteRoomModal() { type: CLOSE_DELETE_ROOM_MODAL }; } + +export function openEditRackNameModal() { + return { + type: OPEN_EDIT_RACK_NAME_MODAL + }; +} + +export function closeEditRackNameModal() { + return { + type: CLOSE_EDIT_RACK_NAME_MODAL + }; +} + +export function openDeleteRackModal() { + return { + type: OPEN_DELETE_RACK_MODAL + }; +} + +export function closeDeleteRackModal() { + return { + type: CLOSE_DELETE_RACK_MODAL + }; +} diff --git a/src/actions/topology.js b/src/actions/topology.js index ec614c1c..4d9f1e52 100644 --- a/src/actions/topology.js +++ b/src/actions/topology.js @@ -16,10 +16,12 @@ export const ADD_TILE = "ADD_TILE"; export const DELETE_TILE = "DELETE_TILE"; export const EDIT_ROOM_NAME = "EDIT_ROOM_NAME"; export const DELETE_ROOM = "DELETE_ROOM"; -export const START_OBJECT_CONSTRUCTION = "START_OBJECT_CONSTRUCTION"; -export const STOP_OBJECT_CONSTRUCTION = "STOP_OBJECT_CONSTRUCTION"; +export const EDIT_RACK_NAME = "EDIT_RACK_NAME"; +export const DELETE_RACK = "DELETE_RACK"; +export const START_RACK_CONSTRUCTION = "START_RACK_CONSTRUCTION"; +export const STOP_RACK_CONSTRUCTION = "STOP_RACK_CONSTRUCTION"; export const ADD_RACK_TO_TILE = "ADD_RACK_TO_TILE"; -export const ADD_RACK_TO_TILE_SUCCEEDED = "ADD_RACK_TO_TILE_SUCCEEDED"; +export const ADD_MACHINE = "ADD_MACHINE"; export function fetchLatestDatacenter() { return (dispatch, getState) => { @@ -151,15 +153,15 @@ export function editRoomNameSucceeded(name) { }; } -export function startObjectConstruction() { +export function startRackConstruction() { return { - type: START_OBJECT_CONSTRUCTION + type: START_RACK_CONSTRUCTION }; } -export function stopObjectConstruction() { +export function stopRackConstruction() { return { - type: STOP_OBJECT_CONSTRUCTION + type: STOP_RACK_CONSTRUCTION }; } @@ -200,3 +202,50 @@ export function deleteRoomSucceeded() { dispatch(removeIdFromStoreObjectListProp("datacenter", currentDatacenterId, "roomIds", currentRoomId)); }; } + +export function editRackName(name) { + return { + type: EDIT_RACK_NAME, + name + }; +} + +export function editRackNameSucceeded(name) { + return (dispatch, getState) => { + const {objects, interactionLevel} = getState(); + dispatch(addPropToStoreObject("rack", objects.tile[interactionLevel.tileId].objectId, {name})); + }; +} + +export function deleteRack() { + return { + type: DELETE_RACK + }; +} + +export function deleteRackSucceeded() { + return (dispatch, getState) => { + const {interactionLevel} = getState(); + const currentTileId = interactionLevel.tileId; + dispatch(goDownOneInteractionLevel()); + dispatch(addPropToStoreObject("tile", currentTileId, {objectType: undefined})); + dispatch(addPropToStoreObject("tile", currentTileId, {objectId: undefined})); + }; +} + +export function addMachine(position) { + return { + type: ADD_MACHINE, + position + }; +} + +export function addMachineSucceeded(machine) { + return (dispatch, getState) => { + const {objects, interactionLevel} = getState(); + const rack = objects.rack[objects.tile[interactionLevel.tileId].objectId]; + const machineIds = [...rack.machineIds]; + machineIds[machine.position] = machine.id; + dispatch(addPropToStoreObject("rack", rack.id, {machineIds})); + }; +} |
