summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorgios Andreadis <g.andreadis@student.tudelft.nl>2017-09-15 13:39:36 +0200
committerGeorgios Andreadis <g.andreadis@student.tudelft.nl>2017-09-23 10:06:03 +0200
commit653290da64e3d85f422d1f00407b74011999a5fa (patch)
tree756218498f26fc17963a94c4e8f84177dea05f15
parent2c8b84b393caaec7da5a89fb15908a2c1f262c50 (diff)
Rebrand simulation and experiment row buttons
-rw-r--r--src/components/experiments/ExperimentListComponent.js3
-rw-r--r--src/components/experiments/ExperimentRowComponent.js23
-rw-r--r--src/components/simulations/SimulationActionButtons.js8
-rw-r--r--src/components/simulations/SimulationAuthList.js3
-rw-r--r--src/components/simulations/SimulationAuthList.sass53
-rw-r--r--src/containers/experiments/ExperimentRowContainer.js11
-rw-r--r--src/sagas/experiments.js4
7 files changed, 40 insertions, 65 deletions
diff --git a/src/components/experiments/ExperimentListComponent.js b/src/components/experiments/ExperimentListComponent.js
index 473a7651..f315ebbf 100644
--- a/src/components/experiments/ExperimentListComponent.js
+++ b/src/components/experiments/ExperimentListComponent.js
@@ -10,13 +10,14 @@ const ExperimentListComponent = ({experimentIds}) => {
<span className="info-icon fa fa-question-circle mr-2"/>
<strong>No experiments here yet...</strong> Add some with the button below!
</div> :
- <table className="table">
+ <table className="table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Path</th>
<th>Trace</th>
<th>Scheduler</th>
+ <th/>
</tr>
</thead>
<tbody>
diff --git a/src/components/experiments/ExperimentRowComponent.js b/src/components/experiments/ExperimentRowComponent.js
index fbb0aac7..b7468ac7 100644
--- a/src/components/experiments/ExperimentRowComponent.js
+++ b/src/components/experiments/ExperimentRowComponent.js
@@ -1,17 +1,36 @@
+import PropTypes from "prop-types";
import React from "react";
+import {Link} from "react-router-dom";
import Shapes from "../../shapes/index";
-const ExperimentRowComponent = ({experiment}) => (
+const ExperimentRowComponent = ({experiment, simulationId, onDelete}) => (
<tr>
<td>{experiment.name}</td>
<td>{experiment.path.name ? experiment.path.name : "Path " + experiment.path.id}</td>
<td>{experiment.trace.name}</td>
<td>{experiment.scheduler.name}</td>
+ <td className="text-right">
+ <Link
+ to={"/simulations/" + simulationId + "/experiments/" + experiment.id}
+ className="btn btn-outline-primary mr-1"
+ title="Open this experiment"
+ >
+ <span className="fa fa-play"/>
+ </Link>
+ <div
+ className="btn btn-outline-danger"
+ title="Delete this experiment"
+ onClick={() => onDelete(experiment.id)}
+ >
+ <span className="fa fa-trash"/>
+ </div>
+ </td>
</tr>
);
ExperimentRowComponent.propTypes = {
- experiment: Shapes.Experiment
+ experiment: Shapes.Experiment.isRequired,
+ simulationId: PropTypes.number.isRequired,
};
export default ExperimentRowComponent;
diff --git a/src/components/simulations/SimulationActionButtons.js b/src/components/simulations/SimulationActionButtons.js
index 1cb80c94..448944c8 100644
--- a/src/components/simulations/SimulationActionButtons.js
+++ b/src/components/simulations/SimulationActionButtons.js
@@ -3,15 +3,15 @@ import React from 'react';
import {Link} from "react-router-dom";
const SimulationActionButtons = ({simulationId, onViewUsers, onDelete}) => (
- <td className="simulation-icons">
- <Link to={"/simulations/" + simulationId} className="open" title="Open this simulation">
+ <td className="text-right">
+ <Link to={"/simulations/" + simulationId} className="btn btn-outline-primary mr-1" title="Open this simulation">
<span className="fa fa-play"/>
</Link>
- <div className="users" title="View and edit collaborators"
+ <div className="btn btn-outline-success mr-1" title="View and edit collaborators"
onClick={() => onViewUsers(simulationId)}>
<span className="fa fa-users"/>
</div>
- <div className="delete" title="Delete this simulation" onClick={() => onDelete(simulationId)}>
+ <div className="btn btn-outline-danger" title="Delete this simulation" onClick={() => onDelete(simulationId)}>
<span className="fa fa-trash"/>
</div>
</td>
diff --git a/src/components/simulations/SimulationAuthList.js b/src/components/simulations/SimulationAuthList.js
index fd5173a8..27b141fe 100644
--- a/src/components/simulations/SimulationAuthList.js
+++ b/src/components/simulations/SimulationAuthList.js
@@ -1,7 +1,6 @@
import PropTypes from 'prop-types';
import React from 'react';
import Shapes from "../../shapes/index";
-import "./SimulationAuthList.css";
import SimulationAuthRow from "./SimulationAuthRow";
const SimulationAuthList = ({authorizations}) => {
@@ -12,7 +11,7 @@ const SimulationAuthList = ({authorizations}) => {
<span className="info-icon fa fa-question-circle mr-2"/>
<strong>No simulations here yet...</strong> Add some with the 'New Simulation' button!
</div> :
- <table className="table">
+ <table className="table table-striped">
<thead>
<tr>
<th>Simulation name</th>
diff --git a/src/components/simulations/SimulationAuthList.sass b/src/components/simulations/SimulationAuthList.sass
deleted file mode 100644
index b09c7869..00000000
--- a/src/components/simulations/SimulationAuthList.sass
+++ /dev/null
@@ -1,53 +0,0 @@
-@import ../../style-globals/_mixins.sass
-@import ../../style-globals/_variables.sass
-
-.simulation-icons
- text-align: right
-
-.simulation-icons div, .simulation-icons a
- display: inline-block
- width: 35px
- height: 35px
- margin-right: 5px
- padding: 5px
- font-size: 12pt
- color: white
- +border-radius(100%)
- +clickable
- +transition(background, $transition-length)
-
- span
- position: relative
- left: -6px
-
- background-color: $blue-dark
-
- &.open
- $icon-color: #0a00bf
-
- &:hover
- background: lighten($icon-color, 10%)
-
- &:active
- background: darken($icon-color, 10%)
-
- &.users
- $icon-color: #17bf55
-
- span
- left: -3px
-
- &:hover
- background: $icon-color
-
- &:active
- background: darken($icon-color, 10%)
-
- &.delete
- $icon-color: #e3474d
-
- &:hover
- background: $icon-color
-
- &:active
- background: darken($icon-color, 10%)
diff --git a/src/containers/experiments/ExperimentRowContainer.js b/src/containers/experiments/ExperimentRowContainer.js
index 99b35779..1db89b7d 100644
--- a/src/containers/experiments/ExperimentRowContainer.js
+++ b/src/containers/experiments/ExperimentRowContainer.js
@@ -1,4 +1,5 @@
import {connect} from "react-redux";
+import {deleteExperiment} from "../../actions/experiments";
import ExperimentRowComponent from "../../components/experiments/ExperimentRowComponent";
const mapStateToProps = (state, ownProps) => {
@@ -9,11 +10,19 @@ const mapStateToProps = (state, ownProps) => {
return {
experiment,
+ simulationId: state.currentSimulationId,
+ };
+};
+
+const mapDispatchToProps = dispatch => {
+ return {
+ onDelete: id => dispatch(deleteExperiment(id))
};
};
const ExperimentRowContainer = connect(
- mapStateToProps
+ mapStateToProps,
+ mapDispatchToProps
)(ExperimentRowComponent);
export default ExperimentRowContainer;
diff --git a/src/sagas/experiments.js b/src/sagas/experiments.js
index 2c5395e8..d1334759 100644
--- a/src/sagas/experiments.js
+++ b/src/sagas/experiments.js
@@ -44,7 +44,7 @@ export function* onAddExperiment(action) {
);
yield put(addToStore("experiment", experiment));
- const experimentIds = (yield select(state => state.objects.simulation[currentSimulationId])).experimentIds;
+ const experimentIds = yield select(state => state.objects.simulation[currentSimulationId].experimentIds);
yield put(addPropToStoreObject("simulation", currentSimulationId,
{experimentIds: experimentIds.concat([experiment.id])}));
} catch (error) {
@@ -57,7 +57,7 @@ export function* onDeleteExperiment(action) {
yield call(deleteExperiment, action.id);
const currentSimulationId = yield select(state => state.currentSimulationId);
- const experimentIds = yield select(state => state.objects.simulation[currentSimulationId]);
+ const experimentIds = yield select(state => state.objects.simulation[currentSimulationId].experimentIds);
yield put(addPropToStoreObject("simulation", currentSimulationId,
{experimentIds: experimentIds.filter(id => id !== action.id)}));