aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/settings/services/EditServiceForm.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/settings/services/EditServiceForm.js')
-rw-r--r--src/components/settings/services/EditServiceForm.js77
1 files changed, 51 insertions, 26 deletions
diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js
index 4458c4c5a..f6f2df2f3 100644
--- a/src/components/settings/services/EditServiceForm.js
+++ b/src/components/settings/services/EditServiceForm.js
@@ -13,6 +13,7 @@ import Tabs, { TabItem } from '../../ui/Tabs';
13import Input from '../../ui/Input'; 13import Input from '../../ui/Input';
14import Toggle from '../../ui/Toggle'; 14import Toggle from '../../ui/Toggle';
15import Button from '../../ui/Button'; 15import Button from '../../ui/Button';
16import ImageUpload from '../../ui/ImageUpload';
16 17
17const messages = defineMessages({ 18const messages = defineMessages({
18 saveService: { 19 saveService: {
@@ -77,12 +78,20 @@ const messages = defineMessages({
77 }, 78 },
78 headlineBadges: { 79 headlineBadges: {
79 id: 'settings.service.form.headlineBadges', 80 id: 'settings.service.form.headlineBadges',
80 defaultMessage: '!!!Unread message dadges', 81 defaultMessage: '!!!Unread message badges',
81 }, 82 },
82 headlineGeneral: { 83 headlineGeneral: {
83 id: 'settings.service.form.headlineGeneral', 84 id: 'settings.service.form.headlineGeneral',
84 defaultMessage: '!!!General', 85 defaultMessage: '!!!General',
85 }, 86 },
87 iconDelete: {
88 id: 'settings.service.form.iconDelete',
89 defaultMessage: '!!!Delete',
90 },
91 iconUpload: {
92 id: 'settings.service.form.iconUpload',
93 defaultMessage: '!!!Drop your image, or click here',
94 },
86}); 95});
87 96
88@observer 97@observer
@@ -126,6 +135,11 @@ export default class EditServiceForm extends Component {
126 const values = form.values(); 135 const values = form.values();
127 let isValid = true; 136 let isValid = true;
128 137
138 const files = form.$('customIcon').files;
139 if (files) {
140 values.iconFile = files[0];
141 }
142
129 if (recipe.validateUrl && values.customUrl) { 143 if (recipe.validateUrl && values.customUrl) {
130 this.setState({ isValidatingCustomUrl: true }); 144 this.setState({ isValidatingCustomUrl: true });
131 try { 145 try {
@@ -217,7 +231,9 @@ export default class EditServiceForm extends Component {
217 </div> 231 </div>
218 <div className="settings__body"> 232 <div className="settings__body">
219 <form onSubmit={e => this.submit(e)} id="form"> 233 <form onSubmit={e => this.submit(e)} id="form">
220 <Input field={form.$('name')} focus /> 234 <div className="service-name">
235 <Input field={form.$('name')} focus />
236 </div>
221 {(recipe.hasTeamId || recipe.hasCustomUrl) && ( 237 {(recipe.hasTeamId || recipe.hasCustomUrl) && (
222 <Tabs 238 <Tabs
223 active={activeTabIndex} 239 active={activeTabIndex}
@@ -261,32 +277,41 @@ export default class EditServiceForm extends Component {
261 )} 277 )}
262 </Tabs> 278 </Tabs>
263 )} 279 )}
264 <div className="settings__options"> 280 <div className="service-flex-grid">
265 <div className="settings__settings-group"> 281 <div className="settings__options">
266 <h3>{intl.formatMessage(messages.headlineNotifications)}</h3> 282 <div className="settings__settings-group">
267 <Toggle field={form.$('isNotificationEnabled')} /> 283 <h3>{intl.formatMessage(messages.headlineNotifications)}</h3>
268 <Toggle field={form.$('isMuted')} /> 284 <Toggle field={form.$('isNotificationEnabled')} />
269 <p className="settings__help"> 285 <Toggle field={form.$('isMuted')} />
270 {intl.formatMessage(messages.isMutedInfo)} 286 <p className="settings__help">
271 </p> 287 {intl.formatMessage(messages.isMutedInfo)}
272 </div> 288 </p>
289 </div>
273 290
274 <div className="settings__settings-group"> 291 <div className="settings__settings-group">
275 <h3>{intl.formatMessage(messages.headlineBadges)}</h3> 292 <h3>{intl.formatMessage(messages.headlineBadges)}</h3>
276 <Toggle field={form.$('isBadgeEnabled')} /> 293 <Toggle field={form.$('isBadgeEnabled')} />
277 {recipe.hasIndirectMessages && form.$('isBadgeEnabled').value && ( 294 {recipe.hasIndirectMessages && form.$('isBadgeEnabled').value && (
278 <div> 295 <div>
279 <Toggle field={form.$('isIndirectMessageBadgeEnabled')} /> 296 <Toggle field={form.$('isIndirectMessageBadgeEnabled')} />
280 <p className="settings__help"> 297 <p className="settings__help">
281 {intl.formatMessage(messages.indirectMessageInfo)} 298 {intl.formatMessage(messages.indirectMessageInfo)}
282 </p> 299 </p>
283 </div> 300 </div>
284 )} 301 )}
285 </div> 302 </div>
286 303
287 <div className="settings__settings-group"> 304 <div className="settings__settings-group">
288 <h3>{intl.formatMessage(messages.headlineGeneral)}</h3> 305 <h3>{intl.formatMessage(messages.headlineGeneral)}</h3>
289 <Toggle field={form.$('isEnabled')} /> 306 <Toggle field={form.$('isEnabled')} />
307 </div>
308 </div>
309 <div className="service-icon">
310 <ImageUpload
311 field={form.$('customIcon')}
312 textDelete={intl.formatMessage(messages.iconDelete)}
313 textUpload={intl.formatMessage(messages.iconUpload)}
314 />
290 </div> 315 </div>
291 </div> 316 </div>
292 {recipe.message && ( 317 {recipe.message && (