diff options
| author | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2017-09-07 22:15:17 +0200 |
|---|---|---|
| committer | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2017-09-23 10:05:58 +0200 |
| commit | 1b5d2658f9ec06308b2a5ed062f6f5b4798ed733 (patch) | |
| tree | 84d35684a50f897fc4c5f460bed595adf22c9e66 /src/actions/topology/rack.js | |
| parent | 8218c3d3c21bfa7c4f3ee4872722b9b1261576fb (diff) | |
Reorganize actions and state tree
Diffstat (limited to 'src/actions/topology/rack.js')
| -rw-r--r-- | src/actions/topology/rack.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/actions/topology/rack.js b/src/actions/topology/rack.js new file mode 100644 index 00000000..cb6ec387 --- /dev/null +++ b/src/actions/topology/rack.js @@ -0,0 +1,53 @@ +import {goDownOneInteractionLevel} from "../interaction-level"; +import {addPropToStoreObject} from "../objects"; + +export const EDIT_RACK_NAME = "EDIT_RACK_NAME"; +export const DELETE_RACK = "DELETE_RACK"; +export const ADD_MACHINE = "ADD_MACHINE"; + +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 - 1] = machine.id; + dispatch(addPropToStoreObject("rack", rack.id, {machineIds})); + }; +} |
