aboutsummaryrefslogtreecommitdiffstats
path: root/src/containers/settings/EditServiceScreen.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/containers/settings/EditServiceScreen.js')
-rw-r--r--src/containers/settings/EditServiceScreen.js20
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: {