diff --git a/.circleci/config.yml b/.circleci/config.yml index 9711ba7ed..76c515c40 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -128,7 +128,7 @@ workflows: - build-dev filters: branches: - only: ['dev', 'feature/project-plan-simplification-0'] + only: ['dev', 'feature/cf-2.20'] - deployTest01: context : org-global diff --git a/src/components/TeamManagement/TeamManagement.jsx b/src/components/TeamManagement/TeamManagement.jsx index 6752ac5c2..019b26d88 100644 --- a/src/components/TeamManagement/TeamManagement.jsx +++ b/src/components/TeamManagement/TeamManagement.jsx @@ -114,8 +114,10 @@ class TeamManagement extends React.Component { const copilotRemoveAction = hasPermission(PERMISSIONS.REMOVE_COPILOTS) const copilotViewAction = hasPermission(PERMISSIONS.VIEW_COPILOTS) const canRequestCopilot = hasPermission(PERMISSIONS.REQUEST_COPILOTS) + const canManageCopilots = hasPermission(PERMISSIONS.MANAGE_COPILOTS) const copilotRequestLink = `https://topcoder.typeform.com/to/YJ7AL4p8#handle=${currentUser.handle}&projectid=${projectId}` const canJoinTopcoderTeam = !currentMember && hasPermission(PERMISSIONS.JOIN_TOPCODER_TEAM) + const hasCopilot = members.some(member => member.role === 'copilot') const sortedMembers = members let projectTeamInviteCount = 0 @@ -194,7 +196,7 @@ class TeamManagement extends React.Component {
Copilot - {(copilotTeamManageAction || copilotRemoveAction || copilotViewAction) && + {((copilotTeamManageAction || copilotRemoveAction || copilotViewAction) && (canManageCopilots || hasCopilot)) && onShowCopilotDialog(true)}> {(copilotTeamManageAction || copilotRemoveAction) ? 'Manage' : 'View'} diff --git a/src/components/TeamManagement/TeamManagement.scss b/src/components/TeamManagement/TeamManagement.scss index 2d5b387a6..4823249ec 100644 --- a/src/components/TeamManagement/TeamManagement.scss +++ b/src/components/TeamManagement/TeamManagement.scss @@ -457,6 +457,10 @@ display: flex; flex-wrap: wrap; flex-direction: column; + + div { + align-items: center; + } } } } diff --git a/src/projects/detail/components/CreatePhaseForm/CreatePhaseForm.jsx b/src/projects/detail/components/CreatePhaseForm/CreatePhaseForm.jsx index a9547b40e..aec531f1a 100644 --- a/src/projects/detail/components/CreatePhaseForm/CreatePhaseForm.jsx +++ b/src/projects/detail/components/CreatePhaseForm/CreatePhaseForm.jsx @@ -120,11 +120,14 @@ class CreatePhaseForm extends React.Component { const phaseData = { title: model.title, - description: model.description || ' ', startDate: moment(model.startDate), endDate: moment(model.endDate), } + if (model.description.trim()) { + phaseData.description = model.description + } + const apiMilestones = milestones.map((milestone, index) => ({ // default values ...MILESTONE_DEFAULT_VALUES[milestone.type], diff --git a/src/projects/detail/components/PhaseCard/EditStageForm.jsx b/src/projects/detail/components/PhaseCard/EditStageForm.jsx index 1d2c98afe..f7c04504f 100644 --- a/src/projects/detail/components/PhaseCard/EditStageForm.jsx +++ b/src/projects/detail/components/PhaseCard/EditStageForm.jsx @@ -86,8 +86,10 @@ class EditStageForm extends React.Component { if (publishClicked && phase.status === PHASE_STATUS_DRAFT) { newStatus = PHASE_STATUS_ACTIVE } + if (!model.description.trim()) { + delete model.description + } const updateParam = _.assign({}, model, { - description: model.description || ' ', startDate: updatedStartDate, endDate: updatedEndDate || '', status: newStatus @@ -285,7 +287,7 @@ class EditStageForm extends React.Component { wrapperClass={`${styles['input-row']}`} label="Description" name="description" - value={phase.description ? phase.description.trim() : ''} + value={phase.description} maxLength={255} /> diff --git a/src/projects/detail/components/timeline/CreateMilestoneForm/CreateMilestoneForm.jsx b/src/projects/detail/components/timeline/CreateMilestoneForm/CreateMilestoneForm.jsx index c5e59db9e..7a609a8a0 100644 --- a/src/projects/detail/components/timeline/CreateMilestoneForm/CreateMilestoneForm.jsx +++ b/src/projects/detail/components/timeline/CreateMilestoneForm/CreateMilestoneForm.jsx @@ -34,13 +34,13 @@ class CreateMilestoneForm extends React.Component { cancelEdit() { const { previousMilestone } = this.props const startDate = previousMilestone ? moment.utc(previousMilestone.completionDate || previousMilestone.endDate) : moment.utc() - this.state = { + this.setState({ isEditing: false, type: '', name: '', startDate: startDate.format('YYYY-MM-DD'), endDate: startDate.add(3, 'days').format('YYYY-MM-DD') - } + }) } onAddClick() {