summaryrefslogtreecommitdiff
path: root/src/containers
diff options
context:
space:
mode:
authorGeorgios Andreadis <g.andreadis@student.tudelft.nl>2017-09-14 14:07:21 +0200
committerGeorgios Andreadis <g.andreadis@student.tudelft.nl>2017-09-23 10:06:02 +0200
commitf604406453f95c82c3e5e4294a51245661868bbe (patch)
tree6282cc3eb3164ddd94052175f872c8fc2ee2f623 /src/containers
parent7151ae60cf587a502a7e09d19ebd0fd33e761bf2 (diff)
First attempt at experiment list UI
Diffstat (limited to 'src/containers')
-rw-r--r--src/containers/experiments/ExperimentListContainer.js27
-rw-r--r--src/containers/experiments/ExperimentRowContainer.js19
-rw-r--r--src/containers/modals/NewExperimentModal.js36
3 files changed, 82 insertions, 0 deletions
diff --git a/src/containers/experiments/ExperimentListContainer.js b/src/containers/experiments/ExperimentListContainer.js
new file mode 100644
index 00000000..38e5a9f6
--- /dev/null
+++ b/src/containers/experiments/ExperimentListContainer.js
@@ -0,0 +1,27 @@
+import {connect} from "react-redux";
+import ExperimentListComponent from "../../components/experiments/ExperimentListComponent";
+
+const mapStateToProps = state => {
+ if (!state.currentSimulationId) {
+ return {
+ experimentIds: [],
+ };
+ }
+
+ const experimentIds = state.objects.simulation[state.currentSimulationId].experimentIds;
+ if (experimentIds) {
+ return {
+ experimentIds,
+ };
+ }
+
+ return {
+ experimentIds: [],
+ };
+};
+
+const ExperimentListContainer = connect(
+ mapStateToProps
+)(ExperimentListComponent);
+
+export default ExperimentListContainer;
diff --git a/src/containers/experiments/ExperimentRowContainer.js b/src/containers/experiments/ExperimentRowContainer.js
new file mode 100644
index 00000000..99b35779
--- /dev/null
+++ b/src/containers/experiments/ExperimentRowContainer.js
@@ -0,0 +1,19 @@
+import {connect} from "react-redux";
+import ExperimentRowComponent from "../../components/experiments/ExperimentRowComponent";
+
+const mapStateToProps = (state, ownProps) => {
+ const experiment = Object.assign({}, state.objects.experiment[ownProps.experimentId]);
+ experiment.trace = state.objects.trace[experiment.traceId];
+ experiment.scheduler = state.objects.scheduler[experiment.schedulerName];
+ experiment.path = state.objects.path[experiment.pathId];
+
+ return {
+ experiment,
+ };
+};
+
+const ExperimentRowContainer = connect(
+ mapStateToProps
+)(ExperimentRowComponent);
+
+export default ExperimentRowContainer;
diff --git a/src/containers/modals/NewExperimentModal.js b/src/containers/modals/NewExperimentModal.js
new file mode 100644
index 00000000..13aed74d
--- /dev/null
+++ b/src/containers/modals/NewExperimentModal.js
@@ -0,0 +1,36 @@
+import {connect} from "react-redux";
+import {addExperiment} from "../../actions/experiments";
+import {closeNewExperimentModal} from "../../actions/modals/experiments";
+import NewExperimentModalComponent from "../../components/modals/custom-components/NewExperimentModalComponent";
+
+const mapStateToProps = state => {
+ return {
+ show: state.modals.newExperimentModalVisible,
+ paths: Object.values(state.objects.path).filter(path => path.simulationId === state.currentSimulationId),
+ traces: Object.values(state.objects.trace),
+ schedulers: Object.values(state.objects.scheduler),
+ };
+};
+
+const mapDispatchToProps = dispatch => {
+ return {
+ callback: (name, pathId, traceId, schedulerName) => {
+ if (name) {
+ dispatch(addExperiment({
+ name,
+ pathId,
+ traceId,
+ schedulerName
+ }));
+ }
+ dispatch(closeNewExperimentModal());
+ }
+ };
+};
+
+const NewExperimentModal = connect(
+ mapStateToProps,
+ mapDispatchToProps
+)(NewExperimentModalComponent);
+
+export default NewExperimentModal;