From a1d95b3685cffb6a9344d0d1e5505dd391193f16 Mon Sep 17 00:00:00 2001 From: Georgios Andreadis Date: Fri, 15 Sep 2017 12:53:26 +0200 Subject: Implement experiment list and add --- src/api/routes/jobs.js | 6 +- src/api/routes/tasks.js | 5 -- .../experiments/ExperimentListComponent.js | 44 ++++++++----- .../experiments/ExperimentRowComponent.js | 2 +- .../experiments/NewExperimentButtonComponent.js | 17 +++++ src/components/modals/TextInputModal.js | 2 +- .../NewExperimentModalComponent.js | 18 +++--- src/components/simulations/FilterButton.js | 7 +-- src/components/simulations/FilterButton.sass | 18 ------ src/components/simulations/FilterPanel.js | 10 ++- src/components/simulations/FilterPanel.sass | 23 ++----- src/components/simulations/NewSimulationButton.js | 16 ----- .../simulations/NewSimulationButton.sass | 31 ---------- .../simulations/NewSimulationButtonComponent.js | 17 +++++ src/components/simulations/NoSimulationsAlert.js | 11 ---- src/components/simulations/NoSimulationsAlert.sass | 10 --- .../simulations/SimulationActionButtons.js | 4 +- src/components/simulations/SimulationAuth.js | 24 -------- src/components/simulations/SimulationAuthList.js | 40 +++++++----- src/components/simulations/SimulationAuthList.sass | 72 ++-------------------- src/components/simulations/SimulationAuthRow.js | 24 ++++++++ .../experiments/ExperimentListContainer.js | 6 +- .../experiments/NewExperimentButtonContainer.js | 16 +++++ .../simulations/NewSimulationButtonContainer.js | 16 +++++ .../simulations/VisibleSimulationAuthList.js | 10 +-- src/index.sass | 10 +++ src/pages/Experiments.js | 2 + src/pages/Simulations.js | 4 +- src/reducers/objects.js | 5 ++ src/sagas/experiments.js | 32 ++++------ src/sagas/index.js | 6 +- src/sagas/objects.js | 18 +++--- src/sagas/profile.js | 2 +- src/sagas/simulations.js | 15 ++++- src/sagas/topology.js | 32 +++++----- src/sagas/users.js | 4 +- src/shapes/index.js | 2 +- 37 files changed, 256 insertions(+), 325 deletions(-) delete mode 100644 src/api/routes/tasks.js create mode 100644 src/components/experiments/NewExperimentButtonComponent.js delete mode 100644 src/components/simulations/FilterButton.sass delete mode 100644 src/components/simulations/NewSimulationButton.js delete mode 100644 src/components/simulations/NewSimulationButton.sass create mode 100644 src/components/simulations/NewSimulationButtonComponent.js delete mode 100644 src/components/simulations/NoSimulationsAlert.js delete mode 100644 src/components/simulations/NoSimulationsAlert.sass delete mode 100644 src/components/simulations/SimulationAuth.js create mode 100644 src/components/simulations/SimulationAuthRow.js create mode 100644 src/containers/experiments/NewExperimentButtonContainer.js create mode 100644 src/containers/simulations/NewSimulationButtonContainer.js (limited to 'src') diff --git a/src/api/routes/jobs.js b/src/api/routes/jobs.js index 90947a51..e96c12ba 100644 --- a/src/api/routes/jobs.js +++ b/src/api/routes/jobs.js @@ -1,8 +1,4 @@ -import {getAll, getById} from "./util"; - -export function getAllJobs() { - return getAll("/jobs"); -} +import {getById} from "./util"; export function getTasksOfJob(jobId) { return getById("/jobs/{jobId}/tasks", {jobId}); diff --git a/src/api/routes/tasks.js b/src/api/routes/tasks.js deleted file mode 100644 index 69736af8..00000000 --- a/src/api/routes/tasks.js +++ /dev/null @@ -1,5 +0,0 @@ -import {getAll} from "./util"; - -export function getAllTasks() { - return getAll("/tasks"); -} diff --git a/src/components/experiments/ExperimentListComponent.js b/src/components/experiments/ExperimentListComponent.js index 001b0e32..473a7651 100644 --- a/src/components/experiments/ExperimentListComponent.js +++ b/src/components/experiments/ExperimentListComponent.js @@ -2,23 +2,33 @@ import PropTypes from "prop-types"; import React from "react"; import ExperimentRowContainer from "../../containers/experiments/ExperimentRowContainer"; -const ExperimentListComponent = ({experimentIds}) => ( - - - - - - - - - - - {experimentIds.map(experimentId => ( - - ))} - -
NamePathTraceScheduler
-); +const ExperimentListComponent = ({experimentIds}) => { + return ( +
+ {experimentIds.length === 0 ? +
+ + No experiments here yet... Add some with the button below! +
: + + + + + + + + + + + {experimentIds.map(experimentId => ( + + ))} + +
NamePathTraceScheduler
+ } +
+ ); +}; ExperimentListComponent.propTypes = { experimentIds: PropTypes.arrayOf(PropTypes.number).isRequired, diff --git a/src/components/experiments/ExperimentRowComponent.js b/src/components/experiments/ExperimentRowComponent.js index 79ce3eea..fbb0aac7 100644 --- a/src/components/experiments/ExperimentRowComponent.js +++ b/src/components/experiments/ExperimentRowComponent.js @@ -4,7 +4,7 @@ import Shapes from "../../shapes/index"; const ExperimentRowComponent = ({experiment}) => ( {experiment.name} - {experiment.path.name} + {experiment.path.name ? experiment.path.name : "Path " + experiment.path.id} {experiment.trace.name} {experiment.scheduler.name} diff --git a/src/components/experiments/NewExperimentButtonComponent.js b/src/components/experiments/NewExperimentButtonComponent.js new file mode 100644 index 00000000..559a7218 --- /dev/null +++ b/src/components/experiments/NewExperimentButtonComponent.js @@ -0,0 +1,17 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +const NewExperimentButtonComponent = ({onClick}) => ( +
+
+ + New Experiment +
+
+); + +NewExperimentButtonComponent.propTypes = { + onClick: PropTypes.func.isRequired, +}; + +export default NewExperimentButtonComponent; diff --git a/src/components/modals/TextInputModal.js b/src/components/modals/TextInputModal.js index e4a55372..132df9fe 100644 --- a/src/components/modals/TextInputModal.js +++ b/src/components/modals/TextInputModal.js @@ -38,7 +38,7 @@ class TextInputModal extends React.Component { this.onSubmit(); }}>
- + this.textInput = textInput}/>
diff --git a/src/components/modals/custom-components/NewExperimentModalComponent.js b/src/components/modals/custom-components/NewExperimentModalComponent.js index 9efccc8a..d56d2316 100644 --- a/src/components/modals/custom-components/NewExperimentModalComponent.js +++ b/src/components/modals/custom-components/NewExperimentModalComponent.js @@ -20,8 +20,12 @@ class NewExperimentModalComponent extends React.Component { } onSubmit() { - this.props.callback(this.textInput.value, this.pathSelect.value, this.traceSelect.value, - this.schedulerSelect.value); + this.props.callback( + this.textInput.value, + parseInt(this.pathSelect.value, 10), + parseInt(this.traceSelect.value, 10), + this.schedulerSelect.value + ); this.reset(); } @@ -41,23 +45,23 @@ class NewExperimentModalComponent extends React.Component { this.onSubmit(); }}>
- + this.textInput = textInput}/>
- +
- +
- +