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