From e7d5c086832a24f3c6b98258b0b8eb1fbbd3336a Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Sun, 26 Mar 2023 22:16:29 +0100 Subject: bug(web): Fix rack deletion This change fixes #139 which reports that racks cannot be deleted. This was due to the tileId property being dropped in the backend for racks. Instead, we use the tileId passed in the action directly. --- opendc-web/opendc-web-ui/src/redux/actions/topology/room.js | 2 +- opendc-web/opendc-web-ui/src/redux/reducers/topology/index.js | 2 +- opendc-web/opendc-web-ui/src/redux/reducers/topology/tile.js | 11 +++++------ 3 files changed, 7 insertions(+), 8 deletions(-) (limited to 'opendc-web') 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 index 350c1d92..14cc126c 100644 --- a/opendc-web/opendc-web-ui/src/redux/actions/topology/room.js +++ b/opendc-web/opendc-web-ui/src/redux/actions/topology/room.js @@ -53,10 +53,10 @@ export function addRackToTile(positionX, positionY) { if (tile !== null) { dispatch({ type: ADD_RACK_TO_TILE, + tileId: tile.id, rack: { id: uuid(), name: 'Rack', - tileId: tile.id, capacity: DEFAULT_RACK_SLOT_CAPACITY, powerCapacityW: DEFAULT_RACK_POWER_CAPACITY, machines: [], diff --git a/opendc-web/opendc-web-ui/src/redux/reducers/topology/index.js b/opendc-web/opendc-web-ui/src/redux/reducers/topology/index.js index b1c7d29e..2c849387 100644 --- a/opendc-web/opendc-web-ui/src/redux/reducers/topology/index.js +++ b/opendc-web/opendc-web-ui/src/redux/reducers/topology/index.js @@ -35,7 +35,7 @@ function objects(state = {}, action) { storages: STORAGE_UNITS, machines: machine(state.machines, action, state), racks: rack(state.racks, action, state), - tiles: tile(state.tiles, action, state), + tiles: tile(state.tiles, action), rooms: room(state.rooms, action, state), root: topology(state.root, action, state), } diff --git a/opendc-web/opendc-web-ui/src/redux/reducers/topology/tile.js b/opendc-web/opendc-web-ui/src/redux/reducers/topology/tile.js index 8e5ecd6e..24c0e20c 100644 --- a/opendc-web/opendc-web-ui/src/redux/reducers/topology/tile.js +++ b/opendc-web/opendc-web-ui/src/redux/reducers/topology/tile.js @@ -26,7 +26,7 @@ import { ADD_TILE, DELETE_TILE } from '../../actions/topology/building' import { DELETE_RACK } from '../../actions/topology/rack' import { ADD_RACK_TO_TILE } from '../../actions/topology/room' -function tile(state = {}, action, { racks }) { +function tile(state = {}, action) { switch (action.type) { case STORE_TOPOLOGY: return action.entities.tiles || {} @@ -42,14 +42,13 @@ function tile(state = {}, action, { racks }) { }) case ADD_RACK_TO_TILE: return produce(state, (draft) => { - const { rack } = action - draft[rack.tileId].rack = rack.id + const { rack, tileId } = action + draft[tileId].rack = rack.id }) case DELETE_RACK: return produce(state, (draft) => { - const { rackId } = action - const rack = racks[rackId] - draft[rack.tileId].rack = undefined + const { tileId } = action + draft[tileId].rack = undefined }) default: return state -- cgit v1.2.3