diff options
Diffstat (limited to 'src/containers/settings/EditServiceScreen.js')
-rw-r--r-- | src/containers/settings/EditServiceScreen.js | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/containers/settings/EditServiceScreen.js b/src/containers/settings/EditServiceScreen.js index 52a9fa6db..8827896ef 100644 --- a/src/containers/settings/EditServiceScreen.js +++ b/src/containers/settings/EditServiceScreen.js | |||
@@ -26,6 +26,10 @@ const messages = defineMessages({ | |||
26 | id: 'settings.service.form.enableNotification', | 26 | id: 'settings.service.form.enableNotification', |
27 | defaultMessage: '!!!Enable Notifications', | 27 | defaultMessage: '!!!Enable Notifications', |
28 | }, | 28 | }, |
29 | enableBadge: { | ||
30 | id: 'settings.service.form.enableBadge', | ||
31 | defaultMessage: '!!!Show unread message badges', | ||
32 | }, | ||
29 | enableAudio: { | 33 | enableAudio: { |
30 | id: 'settings.service.form.enableAudio', | 34 | id: 'settings.service.form.enableAudio', |
31 | defaultMessage: '!!!Enable audio', | 35 | defaultMessage: '!!!Enable audio', |
@@ -92,6 +96,11 @@ export default class EditServiceScreen extends Component { | |||
92 | value: service.isNotificationEnabled, | 96 | value: service.isNotificationEnabled, |
93 | default: true, | 97 | default: true, |
94 | }, | 98 | }, |
99 | isBadgeEnabled: { | ||
100 | label: intl.formatMessage(messages.enableBadge), | ||
101 | value: service.isBadgeEnabled, | ||
102 | default: true, | ||
103 | }, | ||
95 | isMuted: { | 104 | isMuted: { |
96 | label: intl.formatMessage(messages.enableAudio), | 105 | label: intl.formatMessage(messages.enableAudio), |
97 | value: !service.isMuted, | 106 | value: !service.isMuted, |
@@ -127,11 +136,22 @@ export default class EditServiceScreen extends Component { | |||
127 | }); | 136 | }); |
128 | } | 137 | } |
129 | 138 | ||
139 | // More fine grained and use case specific validation rules | ||
130 | if (recipe.hasTeamId && recipe.hasCustomUrl) { | 140 | if (recipe.hasTeamId && recipe.hasCustomUrl) { |
131 | config.fields.team.validate = [oneRequired(['team', 'customUrl'])]; | 141 | config.fields.team.validate = [oneRequired(['team', 'customUrl'])]; |
132 | config.fields.customUrl.validate = [url, oneRequired(['team', 'customUrl'])]; | 142 | config.fields.customUrl.validate = [url, oneRequired(['team', 'customUrl'])]; |
133 | } | 143 | } |
134 | 144 | ||
145 | // If a service can be hosted and has a teamId or customUrl | ||
146 | if (recipe.hasHostedOption && (recipe.hasTeamId || recipe.hasCustomUrl)) { | ||
147 | if (config.fields.team) { | ||
148 | config.fields.team.validate = []; | ||
149 | } | ||
150 | if (config.fields.customUrl) { | ||
151 | config.fields.customUrl.validate = [url]; | ||
152 | } | ||
153 | } | ||
154 | |||
135 | if (recipe.hasIndirectMessages) { | 155 | if (recipe.hasIndirectMessages) { |
136 | Object.assign(config.fields, { | 156 | Object.assign(config.fields, { |
137 | isIndirectMessageBadgeEnabled: { | 157 | isIndirectMessageBadgeEnabled: { |