summaryrefslogtreecommitdiff
path: root/frontend/src
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src')
-rw-r--r--frontend/src/actions/modals/prefabs.js14
-rw-r--r--frontend/src/actions/prefabs.js33
-rw-r--r--frontend/src/api/routes/prefabs.js40
-rw-r--r--frontend/src/reducers/objects.js4
4 files changed, 91 insertions, 0 deletions
diff --git a/frontend/src/actions/modals/prefabs.js b/frontend/src/actions/modals/prefabs.js
new file mode 100644
index 00000000..826565d2
--- /dev/null
+++ b/frontend/src/actions/modals/prefabs.js
@@ -0,0 +1,14 @@
+export const OPEN_NEW_PREFAB_MODAL = 'OPEN_NEW_PREFAB_MODAL'
+export const CLOSE_NEW_PREFAB_MODAL = 'CLOSE_PREFAB_MODAL'
+
+export function openNewPrefabModal() {
+ return {
+ type: OPEN_NEW_PREFAB_MODAL,
+ }
+}
+
+export function closeNewPrefabModal() {
+ return {
+ type: CLOSE_NEW_PREFAB_MODAL,
+ }
+}
diff --git a/frontend/src/actions/prefabs.js b/frontend/src/actions/prefabs.js
new file mode 100644
index 00000000..8d262772
--- /dev/null
+++ b/frontend/src/actions/prefabs.js
@@ -0,0 +1,33 @@
+export const ADD_PREFAB = 'ADD_PREFAB'
+export const DELETE_PREFAB = 'DELETE_PREFAB'
+export const DELETE_PREFAB_SUCCEEDED = 'DELETE_PREFAB_SUCCEEDED'
+export const OPEN_PREFAB_SUCCEEDED = 'OPEN_PREFAB_SUCCEEDED'
+
+//infer rackID from state in saga later
+export function addPrefab(name) {
+ return {
+ type: ADD_PREFAB,
+ name,
+ }
+}
+
+export function deletePrefab(id) {
+ return {
+ type: DELETE_PREFAB,
+ id,
+ }
+}
+
+export function deletePrefabSucceeded(id) {
+ return {
+ type: DELETE_PREFAB_SUCCEEDED,
+ id,
+ }
+}
+
+export function openPrefabSucceeded(id) {
+ return {
+ type: OPEN_PREFAB_SUCCEEDED,
+ id,
+ }
+}
diff --git a/frontend/src/api/routes/prefabs.js b/frontend/src/api/routes/prefabs.js
new file mode 100644
index 00000000..8a1debfa
--- /dev/null
+++ b/frontend/src/api/routes/prefabs.js
@@ -0,0 +1,40 @@
+import { sendRequest } from '../index'
+import { deleteById, getById } from './util'
+
+export function getPrefab(prefabId) {
+ return getById('/prefabs/{prefabId}', { prefabId })
+}
+
+export function addPrefab(prefab) {
+ return sendRequest({
+ path: '/prefabs',
+ method: 'POST',
+ parameters: {
+ body: {
+ prefab,
+ },
+ path: {},
+ query: {},
+ },
+ })
+}
+
+export function updatePrefab(prefab) {
+ return sendRequest({
+ path: '/prefabs/{prefabId}',
+ method: 'PUT',
+ parameters: {
+ body: {
+ prefab,
+ },
+ path: {
+ prefabId: prefab._id,
+ },
+ query: {},
+ },
+ })
+}
+
+export function deletePrefab(prefabId) {
+ return deleteById('/prefabs/{prefabId}', { prefabId })
+}
diff --git a/frontend/src/reducers/objects.js b/frontend/src/reducers/objects.js
index b4db0a6b..dd2b61cb 100644
--- a/frontend/src/reducers/objects.js
+++ b/frontend/src/reducers/objects.js
@@ -1,3 +1,6 @@
+//TODO: add prefabs
+
+
import { combineReducers } from 'redux'
import {
ADD_ID_TO_STORE_OBJECT_LIST_PROP,
@@ -24,6 +27,7 @@ export const objects = combineReducers({
scheduler: object('scheduler'),
portfolio: object('portfolio'),
scenario: object('scenario'),
+ prefab: object('prefab'),
})
function object(type, defaultState = {}) {