2
2
3
3
require ' ./StepRow.scss'
4
4
require ' react-datetime/css/react-datetime.css'
5
- require ' react-select/dist/react-select.css'
6
-
7
- React = require ' react'
8
- PropTypes = React .PropTypes
9
- DateTime = require ' react-datetime'
10
- Select = require ' react-select'
11
- classNames = require ' classnames'
12
- find = require ' lodash/find'
13
-
14
- types = [
15
- label : ' Design Concepts'
16
- value : ' designConcepts'
17
- ,
18
- label : ' Complete Designs'
19
- value : ' completeDesigns'
20
- ,
21
- label : ' Final Fixes'
22
- value : ' finalFixes'
23
- ,
24
- label : ' Development'
25
- value : ' code'
26
- ]
27
-
28
- statuses = [
29
- label : ' Project Launched'
30
- value : ' PROJECT_LAUNCHED'
31
- ,
32
- label : ' Scheduled'
33
- value : ' SCHEDULED'
34
- ,
35
- label : ' In Progress'
36
- value : ' OPEN'
37
- ,
38
- label : ' Closed'
39
- value : ' CLOSED'
40
- ]
5
+
6
+ React = require ' react'
7
+ PropTypes = React .PropTypes
8
+ DateTime = require ' react-datetime'
9
+ classNames = require ' classnames'
10
+ StepTypeSelect = require ' ./StepTypeSelect'
11
+ StatusSelect = require ' ./StatusSelect'
41
12
42
13
StepRow = ({
43
14
fields : { name, startsAt, details, endsAt, stepType, status }
44
15
handleSubmit
45
16
submitting
46
17
dirty
47
18
isNew
19
+ permissions
48
20
}) ->
49
- loader = <loader />
50
- showPicker = null
51
- typeLabel = find (types, (t ) -> t .value == stepType .value )? .label
21
+ editable = permissions .indexOf (' UPDATE' ) > - 1
22
+ isNew = isNew || false
52
23
53
24
submitClassNames = classNames
54
25
' icon' : true
@@ -57,45 +28,48 @@ StepRow = ({
57
28
' plus' : isNew
58
29
' checkmark' : ! isNew
59
30
60
- if isNew
61
- StepType = <Select
62
- {... stepType}
63
- className = " types"
64
- options = {types}
65
- clearable = false
66
- placeholder = " Step Type"
67
- onBlur = { (event ) ->
68
- status .onBlur (status .value ) }
69
- />
70
- else
71
- StepType = <p className = " types" >{typeLabel}</p >
72
-
73
31
<form className = " StepRow flex middle" onSubmit = {handleSubmit}>
74
- {# loader }
32
+ {
33
+ if editable
34
+ <div className = " flex middle" >
35
+ <input type = " text" className = " name" {... name} />
36
+
37
+ <DateTime className = " DateTime" {... startsAt} />
38
+
39
+ <DateTime className = " DateTime" {... details .submissionsDueBy } />
75
40
76
- <input type = " text" className = " name" {... name} />
41
+ <DateTime className = " DateTime" {... endsAt} />
42
+ </div >
43
+ else
44
+ if isNew
45
+ <div className = " flex middle" >
46
+ <input type = " text" className = " name" disabled = true placeholder = " Name edit disabled" />
77
47
78
- < DateTime className = " DateTime" { ... startsAt} />
48
+ < input type = " text " className = " DateTime disabled " disabled = true placeholder = " Date edit disabled " />
79
49
80
- < DateTime className = " DateTime" { ... details . submissionsDueBy } />
50
+ < input type = " text " className = " DateTime disabled " disabled = true placeholder = " Date edit disabled " />
81
51
82
- <DateTime className = " DateTime" {... endsAt} />
52
+ <input type = " text" className = " DateTime disabled" disabled = true placeholder = " Date edit disabled" />
53
+ </div >
54
+ else
55
+ <div className = " flex middle" >
56
+ <p className = " name" >{name .value }</p >
57
+
58
+ <p className = " DateTime disabled" >{startsAt .value }</p >
59
+
60
+ <p className = " DateTime disabled" >{details .submissionsDueBy .value }</p >
61
+
62
+ <p className = " DateTime disabled" >{endsAt .value }</p >
63
+ </div >
64
+ }
83
65
84
- {StepType}
66
+ < StepTypeSelect isNew = {isNew} formProps = {stepType} editable = {editable} />
85
67
86
- <Select
87
- {... status}
88
- className = " statuses"
89
- options = {statuses}
90
- clearable = false
91
- placeholder = " Status"
92
- onBlur = { (event ) ->
93
- status .onBlur (status .value ) }
94
- />
68
+ <StatusSelect isNew = {isNew} formProps = {status} editable = {editable} />
95
69
96
70
{
97
- if dirty || isNew
98
- <button className = " clean" type = " submit" >
71
+ if editable && ( dirty || isNew)
72
+ <button className = " clean addButton " type = " submit" >
99
73
<div className = {submitClassNames} />
100
74
</button >
101
75
}
@@ -105,6 +79,7 @@ StepRow.propTypes =
105
79
fields : PropTypes .object .isRequired
106
80
handleSubmit : PropTypes .func .isRequired
107
81
submitting : PropTypes .bool .isRequired
82
+ permissions : PropTypes .array .isRequired
108
83
dirty : PropTypes .bool
109
84
isNew : PropTypes .bool
110
85
0 commit comments