From cea7a5cde78189d43fdd4d43d6a5cb12cd29e1c5 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Thu, 14 Dec 2017 16:49:50 +0100 Subject: feat(Service): Add option to completely disable message badges --- .../settings/services/EditServiceForm.js | 52 ++++++++++++++++------ src/containers/settings/EditServiceScreen.js | 9 ++++ src/i18n/locales/en-US.json | 4 ++ src/models/Service.js | 1 + src/styles/settings.scss | 23 +++++++--- 5 files changed, 69 insertions(+), 20 deletions(-) diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js index 36cefe87c..32f9d72f0 100644 --- a/src/components/settings/services/EditServiceForm.js +++ b/src/components/settings/services/EditServiceForm.js @@ -67,6 +67,18 @@ const messages = defineMessages({ id: 'settings.service.form.isMutedInfo', defaultMessage: '!!!When disabled, all notification sounds and audio playback are muted', }, + headlineNotifications: { + id: 'settings.service.form.headlineNotifications', + defaultMessage: '!!!Notifications', + }, + headlineBadges: { + id: 'settings.service.form.headlineBadges', + defaultMessage: '!!!Unread message dadges', + }, + headlineGeneral: { + id: 'settings.service.form.headlineGeneral', + defaultMessage: '!!!General', + }, }); @observer @@ -231,20 +243,32 @@ export default class EditServiceForm extends Component { )}
- - {recipe.hasIndirectMessages && ( -
- -

- {intl.formatMessage(messages.indirectMessageInfo)} -

-
- )} - -

- {intl.formatMessage(messages.isMutedInfo)} -

- +
+

{intl.formatMessage(messages.headlineNotifications)}

+ + +

+ {intl.formatMessage(messages.isMutedInfo)} +

+
+ +
+

{intl.formatMessage(messages.headlineBadges)}

+ + {recipe.hasIndirectMessages && form.$('isBadgeEnabled').value && ( +
+ +

+ {intl.formatMessage(messages.indirectMessageInfo)} +

+
+ )} +
+ +
+

{intl.formatMessage(messages.headlineGeneral)}

+ +
{recipe.message && (

diff --git a/src/containers/settings/EditServiceScreen.js b/src/containers/settings/EditServiceScreen.js index 191ef447b..cdde292b0 100644 --- a/src/containers/settings/EditServiceScreen.js +++ b/src/containers/settings/EditServiceScreen.js @@ -26,6 +26,10 @@ const messages = defineMessages({ id: 'settings.service.form.enableNotification', defaultMessage: '!!!Enable Notifications', }, + enableBadge: { + id: 'settings.service.form.enableBadge', + defaultMessage: '!!!Show unread message badges', + }, enableAudio: { id: 'settings.service.form.enableAudio', defaultMessage: '!!!Enable audio', @@ -88,6 +92,11 @@ export default class EditServiceScreen extends Component { value: service.isNotificationEnabled, default: true, }, + isBadgeEnabled: { + label: intl.formatMessage(messages.enableBadge), + value: service.isBadgeEnabled, + default: true, + }, isMuted: { label: intl.formatMessage(messages.enableAudio), value: !service.isMuted, diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 48b408e59..a6da0f61d 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -117,11 +117,15 @@ "settings.service.form.name": "Name", "settings.service.form.enableService": "Enable service", "settings.service.form.enableNotification": "Enable notifications", + "settings.service.form.enableBadge": "Show unread message badges", "settings.service.form.team": "Team", "settings.service.form.customUrl": "Custom server", "settings.service.form.indirectMessages": "Show message badge for all new messages", "settings.service.form.enableAudio": "Enable audio", "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", + "settings.service.form.headlineNotifications": "Notifications", + "settings.service.form.headlineBadges": "Unread message badges", + "settings.service.form.headlineGeneral": "General", "settings.service.error.headline": "Error", "settings.service.error.goBack": "Back to services", "settings.service.error.message": "Could not load service recipe.", diff --git a/src/models/Service.js b/src/models/Service.js index 958e4b11e..820cf4506 100644 --- a/src/models/Service.js +++ b/src/models/Service.js @@ -22,6 +22,7 @@ export default class Service { @observable team = ''; @observable customUrl = ''; @observable isNotificationEnabled = true; + @observable isBadgeEnabled = true; @observable isIndirectMessageBadgeEnabled = true; @observable customIconUrl = ''; @observable hasCrashed = false; diff --git a/src/styles/settings.scss b/src/styles/settings.scss index 73cef0813..b29ed5468 100644 --- a/src/styles/settings.scss +++ b/src/styles/settings.scss @@ -151,8 +151,23 @@ } } - .settings__options { - margin-top: 30px; + &__options { + margin-top: 20px; + } + + &__settings-group { + margin-top: 10px; + + h3 { + font-weight: bold; + margin: 25px 0 15px; + color: $theme-gray-light; + letter-spacing: -0.1px; + + &:first-of-type { + margin-top: 0; + } + } } .settings__message { @@ -173,10 +188,6 @@ margin: -10px 0 20px 55px;; font-size: 12px; color: $theme-gray-light; - - &:last-of-type { - margin-bottom: 30px; - } } .settings__controls { -- cgit v1.2.3-54-g00ecf