summaryrefslogtreecommitdiff
path: root/frontend/src/containers/projects
diff options
context:
space:
mode:
authorGeorgios Andreadis <info@gandreadis.com>2020-07-07 09:55:10 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2020-08-24 19:47:25 +0200
commitb4bdf9fde013bb7ff9579693b64ff575f7b00e44 (patch)
tree5e05ceba918849391a639bbeeab37d290a86523c /frontend/src/containers/projects
parent7331e9baf2cfe7bdfb24effcf0a4801da1e7ea4d (diff)
Rename simulations to projects and remove experiment view
Diffstat (limited to 'frontend/src/containers/projects')
-rw-r--r--frontend/src/containers/projects/FilterLink.js19
-rw-r--r--frontend/src/containers/projects/NewProjectButtonContainer.js15
-rw-r--r--frontend/src/containers/projects/ProjectActions.js23
-rw-r--r--frontend/src/containers/projects/VisibleProjectAuthList.js42
4 files changed, 99 insertions, 0 deletions
diff --git a/frontend/src/containers/projects/FilterLink.js b/frontend/src/containers/projects/FilterLink.js
new file mode 100644
index 00000000..dfd6affe
--- /dev/null
+++ b/frontend/src/containers/projects/FilterLink.js
@@ -0,0 +1,19 @@
+import { connect } from 'react-redux'
+import { setAuthVisibilityFilter } from '../../actions/projects'
+import FilterButton from '../../components/projects/FilterButton'
+
+const mapStateToProps = (state, ownProps) => {
+ return {
+ active: state.projectList.authVisibilityFilter === ownProps.filter,
+ }
+}
+
+const mapDispatchToProps = (dispatch, ownProps) => {
+ return {
+ onClick: () => dispatch(setAuthVisibilityFilter(ownProps.filter)),
+ }
+}
+
+const FilterLink = connect(mapStateToProps, mapDispatchToProps)(FilterButton)
+
+export default FilterLink
diff --git a/frontend/src/containers/projects/NewProjectButtonContainer.js b/frontend/src/containers/projects/NewProjectButtonContainer.js
new file mode 100644
index 00000000..f1d83ea3
--- /dev/null
+++ b/frontend/src/containers/projects/NewProjectButtonContainer.js
@@ -0,0 +1,15 @@
+import { connect } from 'react-redux'
+import { openNewProjectModal } from '../../actions/modals/projects'
+import NewProjectButtonComponent from '../../components/projects/NewProjectButtonComponent'
+
+const mapDispatchToProps = dispatch => {
+ return {
+ onClick: () => dispatch(openNewProjectModal()),
+ }
+}
+
+const NewProjectButtonContainer = connect(undefined, mapDispatchToProps)(
+ NewProjectButtonComponent,
+)
+
+export default NewProjectButtonContainer
diff --git a/frontend/src/containers/projects/ProjectActions.js b/frontend/src/containers/projects/ProjectActions.js
new file mode 100644
index 00000000..b9f9a534
--- /dev/null
+++ b/frontend/src/containers/projects/ProjectActions.js
@@ -0,0 +1,23 @@
+import { connect } from 'react-redux'
+import { deleteProject } from '../../actions/projects'
+import ProjectActionButtons from '../../components/projects/ProjectActionButtons'
+
+const mapStateToProps = (state, ownProps) => {
+ return {
+ projectId: ownProps.projectId,
+ }
+}
+
+const mapDispatchToProps = dispatch => {
+ return {
+ onViewUsers: id => {
+ }, // TODO implement user viewing
+ onDelete: id => dispatch(deleteProject(id)),
+ }
+}
+
+const ProjectActions = connect(mapStateToProps, mapDispatchToProps)(
+ ProjectActionButtons,
+)
+
+export default ProjectActions
diff --git a/frontend/src/containers/projects/VisibleProjectAuthList.js b/frontend/src/containers/projects/VisibleProjectAuthList.js
new file mode 100644
index 00000000..b7ef6d24
--- /dev/null
+++ b/frontend/src/containers/projects/VisibleProjectAuthList.js
@@ -0,0 +1,42 @@
+import { connect } from 'react-redux'
+import ProjectList from '../../components/projects/ProjectAuthList'
+
+const getVisibleProjectAuths = (projectAuths, filter) => {
+ switch (filter) {
+ case 'SHOW_ALL':
+ return projectAuths
+ case 'SHOW_OWN':
+ return projectAuths.filter(
+ projectAuth => projectAuth.authorizationLevel === 'OWN',
+ )
+ case 'SHOW_SHARED':
+ return projectAuths.filter(
+ projectAuth => projectAuth.authorizationLevel !== 'OWN',
+ )
+ default:
+ return projectAuths
+ }
+}
+
+const mapStateToProps = state => {
+ const denormalizedAuthorizations = state.projectList.authorizationsOfCurrentUser.map(
+ authorizationIds => {
+ const authorization = state.objects.authorization[authorizationIds]
+ authorization.user = state.objects.user[authorization.userId]
+ authorization.project =
+ state.objects.project[authorization.projectId]
+ return authorization
+ },
+ )
+
+ return {
+ authorizations: getVisibleProjectAuths(
+ denormalizedAuthorizations,
+ state.projectList.authVisibilityFilter,
+ ),
+ }
+}
+
+const VisibleProjectAuthList = connect(mapStateToProps)(ProjectList)
+
+export default VisibleProjectAuthList