diff --git a/src/projects/detail/ProjectDetail.jsx b/src/projects/detail/ProjectDetail.jsx
index 902410038..d482e17c6 100644
--- a/src/projects/detail/ProjectDetail.jsx
+++ b/src/projects/detail/ProjectDetail.jsx
@@ -5,7 +5,10 @@ import { connect } from 'react-redux'
import _ from 'lodash'
import { renderComponent, branch, compose, withProps } from 'recompose'
import { loadProjectDashboard } from '../actions/projectDashboard'
-import { LOAD_PROJECT_FAILURE, PROJECT_ROLE_CUSTOMER, PROJECT_ROLE_OWNER } from '../../config/constants'
+import {
+ LOAD_PROJECT_FAILURE, PROJECT_ROLE_CUSTOMER, PROJECT_ROLE_OWNER,
+ ROLE_ADMINISTRATOR, ROLE_CONNECT_MANAGER
+} from '../../config/constants'
import spinnerWhileLoading from '../../components/LoadingSpinner'
import CoderBot from '../../components/CoderBot/CoderBot'
@@ -26,7 +29,8 @@ const ProjectDetailView = (props) => {
const children = React.Children.map(props.children, (child) => {
return React.cloneElement(child, {
project: props.project,
- currentMemberRole: props.currentMemberRole
+ currentMemberRole: props.currentMemberRole,
+ isManager: props.isManager
})
})
return
{children}
@@ -67,7 +71,15 @@ class ProjectDetail extends Component {
render() {
const currentMemberRole = this.getProjectRoleForCurrentUser(this.props)
- return
+ const managerRoles = [ROLE_ADMINISTRATOR, ROLE_CONNECT_MANAGER]
+ const isManager = this.props.currentUserRoles.some((role) => managerRoles.indexOf(role) !== -1)
+ return (
+
+ )
}
}
@@ -77,9 +89,11 @@ const mapStateToProps = ({projectState, projectDashboard, loadUser}) => {
isLoading: projectDashboard.isLoading,
isProcessing: projectState.processing,
error: projectState.error,
- project: projectState.project
+ project: projectState.project,
+ currentUserRoles: loadUser.user.roles
}
}
+
const mapDispatchToProps = { loadProjectDashboard }
ProjectDetail.propTypes = {
diff --git a/src/projects/detail/containers/ProjectInfoContainer.js b/src/projects/detail/containers/ProjectInfoContainer.js
index c20fd9b8a..4d185cdb0 100644
--- a/src/projects/detail/containers/ProjectInfoContainer.js
+++ b/src/projects/detail/containers/ProjectInfoContainer.js
@@ -74,8 +74,7 @@ class ProjectInfoContainer extends React.Component {
render() {
const { duration } = this.state
- const { project, currentMemberRole } = this.props
-
+ const { project, currentMemberRole, isManager } = this.props
let directLinks = null
// check if direct links need to be added
const isMemberOrCopilot = _.indexOf([PROJECT_ROLE_COPILOT, PROJECT_ROLE_MANAGER], currentMemberRole) > -1
@@ -108,6 +107,7 @@ class ProjectInfoContainer extends React.Component {
onDeleteProject={this.onDeleteProject}
onChangeStatus={this.onChangeStatus}
directLinks={directLinks}
+ isManager={isManager}
/>
-1
+
+ const canEdit = isManager || (currentMemberRole
+ && (_.indexOf([PROJECT_ROLE_COPILOT], currentMemberRole) > -1))
return (
@@ -26,7 +27,7 @@ function ProjectCardBody({ project, duration, currentMemberRole, descLinesCount
textTruncateChild={
read more }
/>
- {project.status !== PROJECT_STATUS_ACTIVE &&
+ {(duration && duration.percent === 0) &&
}
- {project.status === PROJECT_STATUS_ACTIVE &&
+ {(project.status === PROJECT_STATUS_ACTIVE && duration && duration.percent !== 0) &&
{duration.percent}% completed
diff --git a/src/projects/list/components/Projects/ProjectCardBody.scss b/src/projects/list/components/Projects/ProjectCardBody.scss
index 238940d5b..df6eff349 100644
--- a/src/projects/list/components/Projects/ProjectCardBody.scss
+++ b/src/projects/list/components/Projects/ProjectCardBody.scss
@@ -18,7 +18,6 @@
.project-status {
border-top: 1px solid $tc-gray-10;
border-bottom: 1px solid $tc-gray-10;
- padding: 10px 0px;
display: flex;
justify-content: center;
margin-top: 20px;
diff --git a/src/projects/list/components/Projects/ProjectDirectLinks.scss b/src/projects/list/components/Projects/ProjectDirectLinks.scss
index 6237cf90d..8f2155fa7 100644
--- a/src/projects/list/components/Projects/ProjectDirectLinks.scss
+++ b/src/projects/list/components/Projects/ProjectDirectLinks.scss
@@ -6,6 +6,8 @@
color: $tc-gray-40;
line-height: $base-unit*6;
padding-top: 2 * $base_unit;
+ padding-left: 4 * $base_unit;
+ padding-right: 4 * $base_unit;
ul {
padding: 0;
li {