summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-ui/src/redux/actions/topology/room.js
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-05-16 17:07:58 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-05-17 17:06:50 +0200
commitd9e65dceb38cdb8dc4e464d388755f9456620566 (patch)
treedbc369de8c4a0effce95ca4a54ff6dbfad2b47f5 /opendc-web/opendc-web-ui/src/redux/actions/topology/room.js
parent1edbae1a0224e30bafb98638f419e1f967a9286f (diff)
ui: Restructure OpenDC frontend
This change updates the structure of the OpenDC frontend in order to improve the maintainability of the frontend.
Diffstat (limited to 'opendc-web/opendc-web-ui/src/redux/actions/topology/room.js')
-rw-r--r--opendc-web/opendc-web-ui/src/redux/actions/topology/room.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/opendc-web/opendc-web-ui/src/redux/actions/topology/room.js b/opendc-web/opendc-web-ui/src/redux/actions/topology/room.js
new file mode 100644
index 00000000..61eea7fe
--- /dev/null
+++ b/opendc-web/opendc-web-ui/src/redux/actions/topology/room.js
@@ -0,0 +1,48 @@
+import { findTileWithPosition } from '../../../util/tile-calculations'
+
+export const EDIT_ROOM_NAME = 'EDIT_ROOM_NAME'
+export const DELETE_ROOM = 'DELETE_ROOM'
+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 function editRoomName(name) {
+ return {
+ type: EDIT_ROOM_NAME,
+ name,
+ }
+}
+
+export function startRackConstruction() {
+ return {
+ type: START_RACK_CONSTRUCTION,
+ }
+}
+
+export function stopRackConstruction() {
+ return {
+ type: STOP_RACK_CONSTRUCTION,
+ }
+}
+
+export function addRackToTile(positionX, positionY) {
+ return (dispatch, getState) => {
+ const { objects, interactionLevel } = getState()
+ const currentRoom = objects.room[interactionLevel.roomId]
+ const tiles = currentRoom.tileIds.map((tileId) => objects.tile[tileId])
+ const tile = findTileWithPosition(tiles, positionX, positionY)
+
+ if (tile !== null) {
+ dispatch({
+ type: ADD_RACK_TO_TILE,
+ tileId: tile._id,
+ })
+ }
+ }
+}
+
+export function deleteRoom() {
+ return {
+ type: DELETE_ROOM,
+ }
+}