Skip to content

Commit 38bf8ef

Browse files
authored
Merge pull request #1027 from nursoltan-s/nursoltan-1017
added assign to me button
2 parents 7dc52df + f35be7f commit 38bf8ef

File tree

4 files changed

+41
-4
lines changed

4 files changed

+41
-4
lines changed

src/components/ChallengeEditor/AssignedMember-Field/AssignedMember-Field.module.scss

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,10 @@
4545
.readOnlyValue {
4646
margin-bottom: 0.5rem; // the same like `label` to be aligned
4747
}
48+
49+
.assignSelfField {
50+
margin-left: 20px;
51+
padding-top: 6px;
52+
}
4853
}
4954

src/components/ChallengeEditor/AssignedMember-Field/index.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ import cn from 'classnames'
77
import styles from './AssignedMember-Field.module.scss'
88
import SelectUserAutocomplete from '../../SelectUserAutocomplete'
99

10-
const AssignedMemberField = ({ challenge, onChange, assignedMemberDetails, readOnly }) => {
10+
const AssignedMemberField = ({ challenge, onAssignSelf, onChange, assignedMemberDetails, readOnly }) => {
1111
const value = assignedMemberDetails ? {
1212
// if we know assigned member details, then show user `handle`, otherwise fallback to `userId`
1313
label: assignedMemberDetails.handle,
1414
value: assignedMemberDetails.userId + ''
1515
} : null
16+
1617
return (
1718
<div className={styles.row}>
1819
<div className={cn(styles.field, styles.col1)}>
@@ -28,6 +29,15 @@ const AssignedMemberField = ({ challenge, onChange, assignedMemberDetails, readO
2829
/>
2930
)}
3031
</div>
32+
{
33+
!readOnly &&
34+
<div className={styles.assignSelfField}>
35+
<a href='#' onClick={(e) => {
36+
e.preventDefault()
37+
onAssignSelf()
38+
}}>Assign to me</a>
39+
</div>
40+
}
3141
</div>
3242
)
3343
}
@@ -41,7 +51,8 @@ AssignedMemberField.propTypes = {
4151
challenge: PropTypes.shape().isRequired,
4252
onChange: PropTypes.func,
4353
assignedMemberDetails: PropTypes.shape(),
44-
readOnly: PropTypes.bool
54+
readOnly: PropTypes.bool,
55+
onAssignSelf: PropTypes.func
4556
}
4657

4758
export default AssignedMemberField

src/components/ChallengeEditor/index.js

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ class ChallengeEditor extends Component {
9090
this.onUpdateOthers = this.onUpdateOthers.bind(this)
9191
this.onUpdateCheckbox = this.onUpdateCheckbox.bind(this)
9292
this.onUpdateAssignedMember = this.onUpdateAssignedMember.bind(this)
93+
this.onAssignSelf = this.onAssignSelf.bind(this)
9394
this.addFileType = this.addFileType.bind(this)
9495
this.removeFileType = this.removeFileType.bind(this)
9596
this.updateFileTypesMetadata = this.updateFileTypesMetadata.bind(this)
@@ -335,6 +336,22 @@ class ChallengeEditor extends Component {
335336
})
336337
}
337338

339+
/**
340+
* Update Assigned Member to Current User
341+
*/
342+
onAssignSelf () {
343+
const { loggedInUser } = this.props
344+
345+
const assignedMemberDetails = {
346+
handle: loggedInUser.handle,
347+
userId: loggedInUser.userId
348+
}
349+
350+
this.setState({
351+
assignedMemberDetails
352+
})
353+
}
354+
338355
/**
339356
* Update Single Select
340357
* @param option The select option
@@ -1326,6 +1343,7 @@ class ChallengeEditor extends Component {
13261343
challenge={challenge}
13271344
onChange={this.onUpdateAssignedMember}
13281345
assignedMemberDetails={assignedMemberDetails}
1346+
onAssignSelf={this.onAssignSelf}
13291347
/>
13301348
)}
13311349
<CopilotField challenge={challenge} copilots={metadata.members} onUpdateOthers={this.onUpdateOthers} />
@@ -1469,7 +1487,8 @@ ChallengeEditor.propTypes = {
14691487
updateChallengeDetails: PropTypes.func.isRequired,
14701488
createChallenge: PropTypes.func,
14711489
replaceResourceInRole: PropTypes.func,
1472-
partiallyUpdateChallengeDetails: PropTypes.func.isRequired
1490+
partiallyUpdateChallengeDetails: PropTypes.func.isRequired,
1491+
loggedInUser: PropTypes.shape().isRequired
14731492
}
14741493

14751494
export default withRouter(ChallengeEditor)

src/containers/ChallengeEditor/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,8 @@ class ChallengeEditor extends Component {
229229
updateChallengeDetails,
230230
partiallyUpdateChallengeDetails,
231231
createChallenge,
232-
replaceResourceInRole
232+
replaceResourceInRole,
233+
loggedInUser
233234
// members
234235
} = this.props
235236
const {
@@ -335,6 +336,7 @@ class ChallengeEditor extends Component {
335336
updateChallengeDetails={updateChallengeDetails}
336337
replaceResourceInRole={replaceResourceInRole}
337338
partiallyUpdateChallengeDetails={partiallyUpdateChallengeDetails}
339+
loggedInUser={loggedInUser}
338340
/>
339341
))
340342
} />

0 commit comments

Comments
 (0)