diff --git a/src/components/ProjectInfo/ProjectInfo.jsx b/src/components/ProjectInfo/ProjectInfo.jsx index 25971f4c7..253d2b68a 100644 --- a/src/components/ProjectInfo/ProjectInfo.jsx +++ b/src/components/ProjectInfo/ProjectInfo.jsx @@ -28,7 +28,7 @@ class ProjectInfo extends Component { } render() { - const { project, currentMemberRole, duration, canDeleteProject, onChangeStatus, directLinks } = this.props + const { project, currentMemberRole, duration, canDeleteProject, onChangeStatus, directLinks, isManager } = this.props const { showDeleteConfirm } = this.state return (
@@ -54,6 +54,7 @@ class ProjectInfo extends Component { duration={duration} descLinesCount={4} onChangeStatus={onChangeStatus} + isManager={isManager} /> ( +const DashboardView = ({project, currentMemberRole, route, params, isManager }) => (
- +
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 {