diff options
| author | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2017-09-07 19:27:13 +0200 |
|---|---|---|
| committer | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2017-09-23 10:05:58 +0200 |
| commit | 8218c3d3c21bfa7c4f3ee4872722b9b1261576fb (patch) | |
| tree | 16b8d0b8813aed0c846310a3fa4a01bd8ad18c60 /src/actions | |
| parent | a7d2ac48224c4226003d67f77143738cc72aa016 (diff) | |
Add machine mode with title and delete options
Diffstat (limited to 'src/actions')
| -rw-r--r-- | src/actions/interaction-level.js | 14 | ||||
| -rw-r--r-- | src/actions/modals/topology.js | 14 | ||||
| -rw-r--r-- | src/actions/topology.js | 18 |
3 files changed, 46 insertions, 0 deletions
diff --git a/src/actions/interaction-level.js b/src/actions/interaction-level.js index 5ceff500..2003f45e 100644 --- a/src/actions/interaction-level.js +++ b/src/actions/interaction-level.js @@ -1,5 +1,6 @@ export const GO_FROM_BUILDING_TO_ROOM = "GO_FROM_BUILDING_TO_ROOM"; export const GO_FROM_ROOM_TO_RACK = "GO_FROM_ROOM_TO_RACK"; +export const GO_FROM_RACK_TO_MACHINE = "GO_FROM_RACK_TO_MACHINE"; export const GO_DOWN_ONE_INTERACTION_LEVEL = "GO_DOWN_ONE_INTERACTION_LEVEL"; export function goFromBuildingToRoom(roomId) { @@ -29,6 +30,19 @@ export function goFromRoomToRack(tileId) { }; } +export function goFromRackToMachine(position) { + return (dispatch, getState) => { + const {interactionLevel} = getState(); + if (interactionLevel.mode !== "RACK") { + return; + } + dispatch({ + type: GO_FROM_RACK_TO_MACHINE, + position + }); + }; +} + export function goDownOneInteractionLevel() { return { type: GO_DOWN_ONE_INTERACTION_LEVEL diff --git a/src/actions/modals/topology.js b/src/actions/modals/topology.js index 507c1de6..b8e297e0 100644 --- a/src/actions/modals/topology.js +++ b/src/actions/modals/topology.js @@ -6,6 +6,8 @@ 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 const OPEN_DELETE_MACHINE_MODAL = "OPEN_DELETE_MACHINE_MODAL"; +export const CLOSE_DELETE_MACHINE_MODAL = "CLOSE_DELETE_MACHINE_MODAL"; export function openEditRoomNameModal() { return { @@ -54,3 +56,15 @@ export function closeDeleteRackModal() { type: CLOSE_DELETE_RACK_MODAL }; } + +export function openDeleteMachineModal() { + return { + type: OPEN_DELETE_MACHINE_MODAL + }; +} + +export function closeDeleteMachineModal() { + return { + type: CLOSE_DELETE_MACHINE_MODAL + }; +} diff --git a/src/actions/topology.js b/src/actions/topology.js index 04d9f102..d5812ece 100644 --- a/src/actions/topology.js +++ b/src/actions/topology.js @@ -22,6 +22,7 @@ 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_MACHINE = "ADD_MACHINE"; +export const DELETE_MACHINE = "DELETE_MACHINE"; export function fetchLatestDatacenter() { return (dispatch, getState) => { @@ -249,3 +250,20 @@ export function addMachineSucceeded(machine) { dispatch(addPropToStoreObject("rack", rack.id, {machineIds})); }; } + +export function deleteMachine() { + return { + type: DELETE_MACHINE + }; +} + +export function deleteMachineSucceeded() { + return (dispatch, getState) => { + const {interactionLevel, objects} = getState(); + const rack = objects.rack[objects.tile[interactionLevel.tileId].objectId]; + const machineIds = [...rack.machineIds]; + machineIds[interactionLevel.position - 1] = null; + dispatch(goDownOneInteractionLevel()); + dispatch(addPropToStoreObject("rack", rack.id, {machineIds})); + }; +} |
