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 }
@@ -47,10 +18,8 @@ StepRow = ({
47
18
isNew
48
19
permissions
49
20
}) ->
50
- loader = <loader />
51
- showPicker = null
52
- typeLabel = find (types, (t ) -> t .value == stepType .value )? .label
53
- statusLabel = find (statuses, (s ) -> s .value == status .value )? .label
21
+ editable = permissions .indexOf (' UPDATE' ) > - 1
22
+ isNew = isNew || false
54
23
55
24
submitClassNames = classNames
56
25
' icon' : true
@@ -59,40 +28,9 @@ StepRow = ({
59
28
' plus' : isNew
60
29
' checkmark' : ! isNew
61
30
62
- if isNew
63
- if permissions .indexOf (' UPDATE' ) > - 1
64
- StepType = <Select
65
- {... stepType}
66
- className = " types"
67
- options = {types}
68
- clearable = false
69
- placeholder = " Step Type"
70
- onBlur = { (event ) ->
71
- status .onBlur (status .value ) }
72
- />
73
-
74
- Status = <Select
75
- {... status}
76
- className = " statuses"
77
- options = {statuses}
78
- clearable = false
79
- placeholder = " Status"
80
- onBlur = { (event ) ->
81
- status .onBlur (status .value ) }
82
- />
83
- else
84
- StepType = <Select className = " types" placeholder = " Type disabled" disabled />
85
-
86
- Status = <Select className = " status" placeholder = " Status disabled" disabled />
87
- else
88
- StepType = <p className = " types" >{typeLabel}</p >
89
-
90
- Status = <p className = " status" >{statusLabel}</p >
91
-
92
31
<form className = " StepRow flex middle" onSubmit = {handleSubmit}>
93
- {# loader }
94
32
{
95
- if permissions . indexOf ( ' UPDATE ' ) > - 1
33
+ if editable
96
34
<div className = " flex middle" >
97
35
<input type = " text" className = " name" {... name} />
98
36
@@ -115,7 +53,7 @@ StepRow = ({
115
53
</div >
116
54
else
117
55
<div className = " flex middle" >
118
- <input type = " text " className = " name" disabled = true { ... name} / >
56
+ <p className = " name" >{ name . value }</ p >
119
57
120
58
<p className = " DateTime disabled" >{startsAt .value }</p >
121
59
@@ -125,20 +63,15 @@ StepRow = ({
125
63
</div >
126
64
}
127
65
128
- {StepType}
66
+ < StepTypeSelect isNew = {isNew} formProps = {stepType} editable = {editable} />
129
67
130
- {Status}
68
+ < StatusSelect isNew = {isNew} formProps = {status} editable = {editable} />
131
69
132
70
{
133
- if dirty || isNew
134
- if permissions .indexOf (' UPDATE' ) > - 1
135
- <button className = " clean addButton" type = " submit" >
136
- <div className = {submitClassNames} />
137
- </button >
138
- else
139
- <button className = " clean addButton" disabled = true>
140
- <div className = {submitClassNames} />
141
- </button >
71
+ if editable && (dirty || isNew)
72
+ <button className = " clean addButton" type = " submit" >
73
+ <div className = {submitClassNames} />
74
+ </button >
142
75
}
143
76
</form >
144
77
0 commit comments