summaryrefslogtreecommitdiff
path: root/src/actions/topology/rack.js
diff options
context:
space:
mode:
authorGeorgios Andreadis <g.andreadis@student.tudelft.nl>2017-09-07 22:15:17 +0200
committerGeorgios Andreadis <g.andreadis@student.tudelft.nl>2017-09-23 10:05:58 +0200
commit1b5d2658f9ec06308b2a5ed062f6f5b4798ed733 (patch)
tree84d35684a50f897fc4c5f460bed595adf22c9e66 /src/actions/topology/rack.js
parent8218c3d3c21bfa7c4f3ee4872722b9b1261576fb (diff)
Reorganize actions and state tree
Diffstat (limited to 'src/actions/topology/rack.js')
-rw-r--r--src/actions/topology/rack.js53
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}));
+ };
+}