Skip to content

Commit 1ff77cc

Browse files
authored
Merge pull request #4064 from appirio-tech/feature/removed_dependency_on_phaseStatus_to_change_projectStatus
Feature/removed dependency on phase status to change project status
2 parents 812731d + 89d03c0 commit 1ff77cc

File tree

4 files changed

+9
-67
lines changed

4 files changed

+9
-67
lines changed

src/components/ProjectInfo/ProjectInfo.jsx

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import DeleteProjectModal from './DeleteProjectModal'
77
import ProjectCardBody from '../../projects/components/projectsCard/ProjectCardBody'
88
import MobileExpandable from '../MobileExpandable/MobileExpandable'
99
import MediaQuery from 'react-responsive'
10-
import { SCREEN_BREAKPOINT_MD, PROJECT_STATUS_ACTIVE, PHASE_STATUS_ACTIVE, PHASE_STATUS_REVIEWED, PROJECT_ROLE_OWNER, PROJECT_ROLE_CUSTOMER } from '../../config/constants'
10+
import { SCREEN_BREAKPOINT_MD, PROJECT_ROLE_OWNER, PROJECT_ROLE_CUSTOMER } from '../../config/constants'
1111
import ReviewProjectButton from '../../projects/detail/components/ReviewProjectButton'
1212
import Tooltip from 'appirio-tech-react-components/components/Tooltip/Tooltip'
1313
import { TOOLTIP_DEFAULT_DELAY } from '../../config/constants'
@@ -24,17 +24,11 @@ class ProjectInfo extends Component {
2424

2525
render() {
2626
const { project, currentMemberRole,
27-
onChangeStatus, isSuperUser, phases, onSubmitForReview, isProjectProcessing,
27+
onChangeStatus, isSuperUser, onSubmitForReview, isProjectProcessing,
2828
showDeleteConfirm, toggleProjectDelete, onConfirmDelete, projectTemplates } = this.props
2929

3030
const code = _.get(project, 'details.utm.code', '')
3131

32-
const hasReviewedOrActivePhases = !!_.find(phases, (phase) => _.includes([PHASE_STATUS_REVIEWED, PHASE_STATUS_ACTIVE], phase.status))
33-
const isProjectActive = project.status === PROJECT_STATUS_ACTIVE
34-
const isV3Project = project.version === 'v3'
35-
const projectCanBeActive = !isV3Project || (!isProjectActive && hasReviewedOrActivePhases) || isProjectActive
36-
37-
3832
// prepare review button
3933
const showReviewBtn = project.status === 'draft' &&
4034
_.indexOf([PROJECT_ROLE_OWNER, PROJECT_ROLE_CUSTOMER], currentMemberRole) > -1
@@ -108,7 +102,6 @@ class ProjectInfo extends Component {
108102
{matches => (
109103
<ProjectCardBody
110104
project={project}
111-
projectCanBeActive={projectCanBeActive}
112105
currentMemberRole={currentMemberRole}
113106
descLinesCount={
114107
/* has to be not too big value here,

src/components/ProjectStatus/ProjectStatus.scss

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -171,22 +171,6 @@
171171
&.active {
172172
background: $tc-gray-10;
173173
}
174-
175-
&.disabled {
176-
cursor: default;
177-
178-
svg {
179-
filter: grayscale(1);
180-
}
181-
182-
span {
183-
color: $tc-gray-30;
184-
}
185-
186-
&:hover {
187-
background: transparent;
188-
}
189-
}
190174

191175
svg {
192176
margin-top: 7px;

src/components/ProjectStatus/editableProjectStatus.js

Lines changed: 6 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,16 @@ import ProjectStatusChangeConfirmation from './ProjectStatusChangeConfirmation'
44
import cn from 'classnames'
55
import _ from 'lodash'
66
import enhanceDropdown from 'appirio-tech-react-components/components/Dropdown/enhanceDropdown'
7-
import Tooltip from 'appirio-tech-react-components/components/Tooltip/Tooltip'
87
import {
98
PROJECT_STATUS,
10-
PROJECT_STATUS_ACTIVE,
119
PROJECT_STATUS_COMPLETED,
1210
PROJECT_STATUS_CANCELLED,
13-
TOOLTIP_DEFAULT_DELAY,
1411
PROJECT_STATUS_DRAFT
1512
} from '../../config/constants'
1613
import CarretDownNormal9px from '../../assets/icons/arrow-9px-carret-down-normal.svg'
1714

1815

19-
const hocStatusDropdown = (CompositeComponent, statusList, projectCanBeActive) => {
16+
const hocStatusDropdown = (CompositeComponent, statusList) => {
2017
class StatusDropdown extends Component {
2118
shouldDropdownUp() {
2219
if (this.refs.dropdown) {
@@ -36,12 +33,6 @@ const hocStatusDropdown = (CompositeComponent, statusList, projectCanBeActive) =
3633
return null
3734
}
3835

39-
const activestatusList = statusList.map((status) => ({
40-
...status,
41-
disabled: !projectCanBeActive && status.value === PROJECT_STATUS_ACTIVE,
42-
toolTipMessage: (!projectCanBeActive && status.value === PROJECT_STATUS_ACTIVE) ? 'To activate project there should be at least one phase in "Planned" status. Please, check "Project Plan" tab.' : null,
43-
}))
44-
4536
this.shouldDropdownUp()
4637
return (
4738
<div className="project-status-dropdown" ref="dropdown">
@@ -64,28 +55,8 @@ const hocStatusDropdown = (CompositeComponent, statusList, projectCanBeActive) =
6455
<div className="status-header">Project Status</div>
6556
<ul>
6657
{
67-
activestatusList.sort((a, b) => a.order - b.order).map((item) =>
68-
item.toolTipMessage ? (
69-
<Tooltip key={item.value} theme="light" tooltipDelay={TOOLTIP_DEFAULT_DELAY}>
70-
<div className="tooltip-target">
71-
<li>
72-
<a
73-
href="javascript:"
74-
className={cn('status-option', 'status-' + item.value, { active: item.value === status, disabled: item.disabled })}
75-
onClick={(e) => {
76-
if (!item.disabled)
77-
onItemSelect(item.value, e)
78-
}}
79-
>
80-
<CompositeComponent status={item} showText />
81-
</a>
82-
</li>
83-
</div>
84-
<div className="tooltip-body">
85-
{item.toolTipMessage}
86-
</div>
87-
</Tooltip>
88-
) : (
58+
statusList.sort((a, b) => a.order - b.order).map((item) =>
59+
(
8960
<div key={item.value} className="tooltip-target">
9061
<li>
9162
<a
@@ -169,11 +140,11 @@ const editableProjectStatus = (CompositeComponent) => class extends Component {
169140

170141
render() {
171142
const { showStatusChangeDialog, newStatus, statusChangeReason } = this.state
172-
const { canEdit, projectCanBeActive, status } = this.props
143+
const { canEdit, status } = this.props
173144
const PROJECT_STATUS_VALUES = this.getProjectStatusDropdownValues(status)
174145
const StatusDropdown = canEdit
175-
? enhanceDropdown(hocStatusDropdown(CompositeComponent, PROJECT_STATUS_VALUES, projectCanBeActive))
176-
: hocStatusDropdown(CompositeComponent, PROJECT_STATUS_VALUES, projectCanBeActive)
146+
? enhanceDropdown(hocStatusDropdown(CompositeComponent, PROJECT_STATUS_VALUES))
147+
: hocStatusDropdown(CompositeComponent, PROJECT_STATUS_VALUES)
177148
return (
178149
<div className={cn('EditableProjectStatus', {'modal-active': showStatusChangeDialog})}>
179150
<div className="modal-overlay" onClick={ this.hideStatusChangeDialog }/>
@@ -197,10 +168,6 @@ editableProjectStatus.propTypes = {
197168
* Boolean flag to control editability of the project status. It does not render the dropdown if it is not editable.
198169
*/
199170
canEdit: PropTypes.bool,
200-
/**
201-
* Boolean flag to control if project status can be switched to active.
202-
*/
203-
projectCanBeActive: PropTypes.bool,
204171
/**
205172
* String representing project status
206173
*/

src/projects/components/projectsCard/ProjectCardBody.jsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import _ from 'lodash'
1616

1717
const EnhancedProjectStatus = editableProjectStatus(ProjectStatus)
1818

19-
function ProjectCardBody({ project, projectCanBeActive, currentMemberRole, descLinesCount = 8,
19+
function ProjectCardBody({ project, currentMemberRole, descLinesCount = 8,
2020
onChangeStatus, isSuperUser, showLink, showLinkURL, canEditStatus = true, hideStatus, history }) {
2121
if (!project) return null
2222

@@ -57,7 +57,6 @@ function ProjectCardBody({ project, projectCanBeActive, currentMemberRole, descL
5757
{(project.status !== PROJECT_STATUS_ACTIVE || progress === 0) &&
5858
<EnhancedProjectStatus
5959
status={project.status}
60-
projectCanBeActive={projectCanBeActive}
6160
showText
6261
withoutLabel
6362
currentMemberRole={currentMemberRole}
@@ -81,7 +80,6 @@ ProjectCardBody.defaultTypes = {
8180

8281
ProjectCardBody.propTypes = {
8382
project: PT.object.isRequired,
84-
projectCanBeActive: PT.bool,
8583
currentMemberRole: PT.string,
8684
showLink: PT.bool,
8785
showLinkURL: PT.string,

0 commit comments

Comments
 (0)