summaryrefslogtreecommitdiff
path: root/src/actions
diff options
context:
space:
mode:
Diffstat (limited to 'src/actions')
-rw-r--r--src/actions/interaction-level.js14
-rw-r--r--src/actions/modals/topology.js14
-rw-r--r--src/actions/topology.js18
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}));
+ };
+}