summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-ui/src/redux/reducers
diff options
context:
space:
mode:
Diffstat (limited to 'opendc-web/opendc-web-ui/src/redux/reducers')
-rw-r--r--opendc-web/opendc-web-ui/src/redux/reducers/construction-mode.js6
-rw-r--r--opendc-web/opendc-web-ui/src/redux/reducers/current-ids.js44
-rw-r--r--opendc-web/opendc-web-ui/src/redux/reducers/index.js7
-rw-r--r--opendc-web/opendc-web-ui/src/redux/reducers/interaction-level.js6
-rw-r--r--opendc-web/opendc-web-ui/src/redux/reducers/objects.js20
-rw-r--r--opendc-web/opendc-web-ui/src/redux/reducers/projects.js14
6 files changed, 7 insertions, 90 deletions
diff --git a/opendc-web/opendc-web-ui/src/redux/reducers/construction-mode.js b/opendc-web/opendc-web-ui/src/redux/reducers/construction-mode.js
index 257dddd2..5bac7fea 100644
--- a/opendc-web/opendc-web-ui/src/redux/reducers/construction-mode.js
+++ b/opendc-web/opendc-web-ui/src/redux/reducers/construction-mode.js
@@ -9,8 +9,6 @@ import {
START_ROOM_EDIT,
} from '../actions/topology/building'
import { DELETE_ROOM, START_RACK_CONSTRUCTION, STOP_RACK_CONSTRUCTION } from '../actions/topology/room'
-import { OPEN_PORTFOLIO_SUCCEEDED } from '../actions/portfolios'
-import { OPEN_SCENARIO_SUCCEEDED } from '../actions/scenarios'
export function currentRoomInConstruction(state = '-1', action) {
switch (action.type) {
@@ -20,8 +18,6 @@ export function currentRoomInConstruction(state = '-1', action) {
return action.roomId
case CANCEL_NEW_ROOM_CONSTRUCTION_SUCCEEDED:
case FINISH_NEW_ROOM_CONSTRUCTION:
- case OPEN_PORTFOLIO_SUCCEEDED:
- case OPEN_SCENARIO_SUCCEEDED:
case FINISH_ROOM_EDIT:
case SET_CURRENT_TOPOLOGY:
case DELETE_ROOM:
@@ -36,8 +32,6 @@ export function inRackConstructionMode(state = false, action) {
case START_RACK_CONSTRUCTION:
return true
case STOP_RACK_CONSTRUCTION:
- case OPEN_PORTFOLIO_SUCCEEDED:
- case OPEN_SCENARIO_SUCCEEDED:
case SET_CURRENT_TOPOLOGY:
case GO_DOWN_ONE_INTERACTION_LEVEL:
return false
diff --git a/opendc-web/opendc-web-ui/src/redux/reducers/current-ids.js b/opendc-web/opendc-web-ui/src/redux/reducers/current-ids.js
index 9b46aa60..c0baf567 100644
--- a/opendc-web/opendc-web-ui/src/redux/reducers/current-ids.js
+++ b/opendc-web/opendc-web-ui/src/redux/reducers/current-ids.js
@@ -1,7 +1,4 @@
-import { OPEN_PORTFOLIO_SUCCEEDED, SET_CURRENT_PORTFOLIO } from '../actions/portfolios'
-import { OPEN_PROJECT_SUCCEEDED } from '../actions/projects'
import { SET_CURRENT_TOPOLOGY } from '../actions/topology/building'
-import { OPEN_SCENARIO_SUCCEEDED, SET_CURRENT_SCENARIO } from '../actions/scenarios'
export function currentTopologyId(state = '-1', action) {
switch (action.type) {
@@ -11,44 +8,3 @@ export function currentTopologyId(state = '-1', action) {
return state
}
}
-
-export function currentProjectId(state = '-1', action) {
- switch (action.type) {
- case OPEN_PROJECT_SUCCEEDED:
- return action.id
- case OPEN_PORTFOLIO_SUCCEEDED:
- case OPEN_SCENARIO_SUCCEEDED:
- return action.projectId
- default:
- return state
- }
-}
-
-export function currentPortfolioId(state = '-1', action) {
- switch (action.type) {
- case OPEN_PORTFOLIO_SUCCEEDED:
- case SET_CURRENT_PORTFOLIO:
- case SET_CURRENT_SCENARIO:
- return action.portfolioId
- case OPEN_SCENARIO_SUCCEEDED:
- return action.portfolioId
- case OPEN_PROJECT_SUCCEEDED:
- case SET_CURRENT_TOPOLOGY:
- return '-1'
- default:
- return state
- }
-}
-export function currentScenarioId(state = '-1', action) {
- switch (action.type) {
- case OPEN_SCENARIO_SUCCEEDED:
- case SET_CURRENT_SCENARIO:
- return action.scenarioId
- case OPEN_PORTFOLIO_SUCCEEDED:
- case SET_CURRENT_TOPOLOGY:
- case OPEN_PROJECT_SUCCEEDED:
- return '-1'
- default:
- return state
- }
-}
diff --git a/opendc-web/opendc-web-ui/src/redux/reducers/index.js b/opendc-web/opendc-web-ui/src/redux/reducers/index.js
index b143d417..1b17a206 100644
--- a/opendc-web/opendc-web-ui/src/redux/reducers/index.js
+++ b/opendc-web/opendc-web-ui/src/redux/reducers/index.js
@@ -1,20 +1,15 @@
import { combineReducers } from 'redux'
import { construction } from './construction-mode'
-import { currentPortfolioId, currentProjectId, currentScenarioId, currentTopologyId } from './current-ids'
+import { currentTopologyId } from './current-ids'
import { interactionLevel } from './interaction-level'
import { map } from './map'
import { objects } from './objects'
-import { projects } from './projects'
const rootReducer = combineReducers({
objects,
- projects,
construction,
map,
- currentProjectId,
currentTopologyId,
- currentPortfolioId,
- currentScenarioId,
interactionLevel,
})
diff --git a/opendc-web/opendc-web-ui/src/redux/reducers/interaction-level.js b/opendc-web/opendc-web-ui/src/redux/reducers/interaction-level.js
index eafcb269..9f23949f 100644
--- a/opendc-web/opendc-web-ui/src/redux/reducers/interaction-level.js
+++ b/opendc-web/opendc-web-ui/src/redux/reducers/interaction-level.js
@@ -1,19 +1,13 @@
-import { OPEN_PORTFOLIO_SUCCEEDED } from '../actions/portfolios'
import {
GO_DOWN_ONE_INTERACTION_LEVEL,
GO_FROM_BUILDING_TO_ROOM,
GO_FROM_RACK_TO_MACHINE,
GO_FROM_ROOM_TO_RACK,
} from '../actions/interaction-level'
-import { OPEN_PROJECT_SUCCEEDED } from '../actions/projects'
import { SET_CURRENT_TOPOLOGY } from '../actions/topology/building'
-import { OPEN_SCENARIO_SUCCEEDED } from '../actions/scenarios'
export function interactionLevel(state = { mode: 'BUILDING' }, action) {
switch (action.type) {
- case OPEN_PORTFOLIO_SUCCEEDED:
- case OPEN_SCENARIO_SUCCEEDED:
- case OPEN_PROJECT_SUCCEEDED:
case SET_CURRENT_TOPOLOGY:
return {
mode: 'BUILDING',
diff --git a/opendc-web/opendc-web-ui/src/redux/reducers/objects.js b/opendc-web/opendc-web-ui/src/redux/reducers/objects.js
index a2483b43..11f6d353 100644
--- a/opendc-web/opendc-web-ui/src/redux/reducers/objects.js
+++ b/opendc-web/opendc-web-ui/src/redux/reducers/objects.js
@@ -6,11 +6,9 @@ import {
REMOVE_ID_FROM_STORE_OBJECT_LIST_PROP,
} from '../actions/objects'
import { CPU_UNITS, GPU_UNITS, MEMORY_UNITS, STORAGE_UNITS } from '../../util/unit-specifications'
+import { STORE_TOPOLOGY } from '../actions/topologies'
export const objects = combineReducers({
- project: object('project'),
- user: object('user'),
- authorization: objectWithId('authorization', (object) => [object.userId, object.projectId]),
cpu: object('cpu', CPU_UNITS),
gpu: object('gpu', GPU_UNITS),
memory: object('memory', MEMORY_UNITS),
@@ -20,10 +18,6 @@ export const objects = combineReducers({
tile: object('tile'),
room: object('room'),
topology: object('topology'),
- trace: object('trace'),
- scheduler: object('scheduler'),
- portfolio: object('portfolio'),
- scenario: object('scenario'),
prefab: object('prefab'),
})
@@ -33,18 +27,16 @@ function object(type, defaultState = {}) {
function objectWithId(type, getId, defaultState = {}) {
return (state = defaultState, action) => {
- if (action.objectType !== type) {
+ if (action.type === STORE_TOPOLOGY) {
+ return { ...state, ...action.entities[type] }
+ } else if (action.objectType !== type) {
return state
}
if (action.type === ADD_TO_STORE) {
- return Object.assign({}, state, {
- [getId(action.object)]: action.object,
- })
+ return { ...state, [getId(action.object)]: action.object }
} else if (action.type === ADD_PROP_TO_STORE_OBJECT) {
- return Object.assign({}, state, {
- [action.objectId]: Object.assign({}, state[action.objectId], action.propObject),
- })
+ return { ...state, [action.objectId]: { ...state[action.objectId], ...action.propObject } }
} else if (action.type === ADD_ID_TO_STORE_OBJECT_LIST_PROP) {
return Object.assign({}, state, {
[action.objectId]: Object.assign({}, state[action.objectId], {
diff --git a/opendc-web/opendc-web-ui/src/redux/reducers/projects.js b/opendc-web/opendc-web-ui/src/redux/reducers/projects.js
deleted file mode 100644
index a920e47f..00000000
--- a/opendc-web/opendc-web-ui/src/redux/reducers/projects.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import { ADD_PROJECT_SUCCEEDED, DELETE_PROJECT_SUCCEEDED, FETCH_PROJECTS_SUCCEEDED } from '../actions/projects'
-
-export function projects(state = [], action) {
- switch (action.type) {
- case FETCH_PROJECTS_SUCCEEDED:
- return action.projects
- case ADD_PROJECT_SUCCEEDED:
- return [...state, action.project]
- case DELETE_PROJECT_SUCCEEDED:
- return state.filter((project) => project._id !== action.id)
- default:
- return state
- }
-}