diff options
Diffstat (limited to 'src/features/workspaces/components/EditWorkspaceForm.js')
-rw-r--r-- | src/features/workspaces/components/EditWorkspaceForm.js | 59 |
1 files changed, 24 insertions, 35 deletions
diff --git a/src/features/workspaces/components/EditWorkspaceForm.js b/src/features/workspaces/components/EditWorkspaceForm.js index 48090f608..a9fd4d21c 100644 --- a/src/features/workspaces/components/EditWorkspaceForm.js +++ b/src/features/workspaces/components/EditWorkspaceForm.js | |||
@@ -11,6 +11,7 @@ import Service from '../../../models/Service'; | |||
11 | import Form from '../../../lib/Form'; | 11 | import Form from '../../../lib/Form'; |
12 | import { required } from '../../../helpers/validation-helpers'; | 12 | import { required } from '../../../helpers/validation-helpers'; |
13 | import ServiceListItem from './ServiceListItem'; | 13 | import ServiceListItem from './ServiceListItem'; |
14 | import Request from '../../../stores/lib/Request'; | ||
14 | 15 | ||
15 | const messages = defineMessages({ | 16 | const messages = defineMessages({ |
16 | buttonDelete: { | 17 | buttonDelete: { |
@@ -52,12 +53,12 @@ class EditWorkspaceForm extends Component { | |||
52 | 53 | ||
53 | static propTypes = { | 54 | static propTypes = { |
54 | classes: PropTypes.object.isRequired, | 55 | classes: PropTypes.object.isRequired, |
55 | isDeleting: PropTypes.bool.isRequired, | ||
56 | isSaving: PropTypes.bool.isRequired, | ||
57 | onDelete: PropTypes.func.isRequired, | 56 | onDelete: PropTypes.func.isRequired, |
58 | onSave: PropTypes.func.isRequired, | 57 | onSave: PropTypes.func.isRequired, |
59 | services: PropTypes.arrayOf(PropTypes.instanceOf(Service)).isRequired, | 58 | services: PropTypes.arrayOf(PropTypes.instanceOf(Service)).isRequired, |
60 | workspace: PropTypes.instanceOf(Workspace).isRequired, | 59 | workspace: PropTypes.instanceOf(Workspace).isRequired, |
60 | updateWorkspaceRequest: PropTypes.instanceOf(Request).isRequired, | ||
61 | deleteWorkspaceRequest: PropTypes.instanceOf(Request).isRequired, | ||
61 | }; | 62 | }; |
62 | 63 | ||
63 | form = this.prepareWorkspaceForm(this.props.workspace); | 64 | form = this.prepareWorkspaceForm(this.props.workspace); |
@@ -112,14 +113,16 @@ class EditWorkspaceForm extends Component { | |||
112 | const { intl } = this.context; | 113 | const { intl } = this.context; |
113 | const { | 114 | const { |
114 | classes, | 115 | classes, |
115 | isDeleting, | ||
116 | isSaving, | ||
117 | onDelete, | 116 | onDelete, |
118 | workspace, | 117 | workspace, |
119 | services, | 118 | services, |
119 | deleteWorkspaceRequest, | ||
120 | updateWorkspaceRequest, | ||
120 | } = this.props; | 121 | } = this.props; |
121 | const { form } = this; | 122 | const { form } = this; |
122 | const workspaceServices = form.$('services').value; | 123 | const workspaceServices = form.$('services').value; |
124 | const isDeleting = deleteWorkspaceRequest.isExecuting; | ||
125 | const isSaving = updateWorkspaceRequest.isExecuting; | ||
123 | return ( | 126 | return ( |
124 | <div className="settings__main"> | 127 | <div className="settings__main"> |
125 | <div className="settings__header"> | 128 | <div className="settings__header"> |
@@ -151,38 +154,24 @@ class EditWorkspaceForm extends Component { | |||
151 | </div> | 154 | </div> |
152 | <div className="settings__controls"> | 155 | <div className="settings__controls"> |
153 | {/* ===== Delete Button ===== */} | 156 | {/* ===== Delete Button ===== */} |
154 | {isDeleting ? ( | 157 | <Button |
155 | <Button | 158 | label={intl.formatMessage(messages.buttonDelete)} |
156 | label={intl.formatMessage(messages.buttonDelete)} | 159 | loaded={false} |
157 | loaded={false} | 160 | busy={isDeleting} |
158 | buttonType="secondary" | 161 | buttonType={isDeleting ? 'secondary' : 'danger'} |
159 | className="settings__delete-button" | 162 | className="settings__delete-button" |
160 | disabled | 163 | disabled={isDeleting} |
161 | /> | 164 | onClick={onDelete} |
162 | ) : ( | 165 | /> |
163 | <Button | ||
164 | buttonType="danger" | ||
165 | label={intl.formatMessage(messages.buttonDelete)} | ||
166 | className="settings__delete-button" | ||
167 | onClick={onDelete} | ||
168 | /> | ||
169 | )} | ||
170 | {/* ===== Save Button ===== */} | 166 | {/* ===== Save Button ===== */} |
171 | {isSaving ? ( | 167 | <Button |
172 | <Button | 168 | type="submit" |
173 | type="submit" | 169 | label={intl.formatMessage(messages.buttonSave)} |
174 | label={intl.formatMessage(messages.buttonSave)} | 170 | busy={isSaving} |
175 | loaded={!isSaving} | 171 | buttonType={isSaving ? 'secondary' : 'primary'} |
176 | buttonType="secondary" | 172 | onClick={this.submitForm.bind(this, form)} |
177 | disabled | 173 | disabled={isSaving} |
178 | /> | 174 | /> |
179 | ) : ( | ||
180 | <Button | ||
181 | type="submit" | ||
182 | label={intl.formatMessage(messages.buttonSave)} | ||
183 | onClick={this.submitForm.bind(this, form)} | ||
184 | /> | ||
185 | )} | ||
186 | </div> | 175 | </div> |
187 | </div> | 176 | </div> |
188 | ); | 177 | ); |